@3fn/core 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2547) hide show
  1. package/.kiro/agents/ada-prompt.md +265 -0
  2. package/.kiro/agents/ada.json +87 -0
  3. package/.kiro/agents/data-prompt.md +315 -0
  4. package/.kiro/agents/data.json +58 -0
  5. package/.kiro/agents/kenya-prompt.md +298 -0
  6. package/.kiro/agents/kenya.json +54 -0
  7. package/.kiro/agents/leonardo-prompt.md +417 -0
  8. package/.kiro/agents/leonardo.json +55 -0
  9. package/.kiro/agents/lina-prompt.md +385 -0
  10. package/.kiro/agents/lina.json +77 -0
  11. package/.kiro/agents/sparky-prompt.md +295 -0
  12. package/.kiro/agents/sparky.json +56 -0
  13. package/.kiro/agents/stacy-prompt.md +278 -0
  14. package/.kiro/agents/stacy.json +48 -0
  15. package/.kiro/agents/thurgood-prompt.md +407 -0
  16. package/.kiro/agents/thurgood.json +51 -0
  17. package/.kiro/steering/AI-Collaboration-Principles.md +105 -0
  18. package/.kiro/steering/Agent-Directory.md +141 -0
  19. package/.kiro/steering/Civitas-System-Overview.md +134 -0
  20. package/.kiro/steering/DesignerPunk-Systems-Overview.md +318 -0
  21. package/.kiro/steering/Spec-Feedback-Protocol.md +242 -0
  22. package/.kiro/steering/Task-Completion-Protocol.md +73 -0
  23. package/.kiro/steering/core-goals.md +91 -0
  24. package/.kiro/steering/personal-note.md +35 -0
  25. package/.kiro/steering/start-up-tasks.md +114 -0
  26. package/LICENSE +201 -0
  27. package/README.md +184 -0
  28. package/application-mcp-server/package.json +34 -0
  29. package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-server.js +25 -0
  30. package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-stdio.js +11 -0
  31. package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-types.js +14 -0
  32. package/application-mcp-server/src/__tests__/tool-boundary.contract.test.ts +1086 -0
  33. package/application-mcp-server/src/index.ts +607 -0
  34. package/application-mcp-server/src/indexer/ComponentIndexer.ts +631 -0
  35. package/application-mcp-server/src/indexer/CompositionChecker.ts +109 -0
  36. package/application-mcp-server/src/indexer/ContractTokenDeriver.ts +68 -0
  37. package/application-mcp-server/src/indexer/DesignPhilosophyIndexer.ts +114 -0
  38. package/application-mcp-server/src/indexer/FamilyGuidanceIndexer.ts +248 -0
  39. package/application-mcp-server/src/indexer/InheritanceResolver.ts +154 -0
  40. package/application-mcp-server/src/indexer/LayoutTemplateIndexer.ts +254 -0
  41. package/application-mcp-server/src/indexer/ModeClassifier.ts +102 -0
  42. package/application-mcp-server/src/indexer/PatternIndexer.ts +195 -0
  43. package/application-mcp-server/src/indexer/TokenIndexer.ts +210 -0
  44. package/application-mcp-server/src/indexer/TokenRefResolver.ts +187 -0
  45. package/application-mcp-server/src/indexer/__tests__/ComponentIndexer.test.ts +141 -0
  46. package/application-mcp-server/src/indexer/__tests__/CompositionChecker.test.ts +148 -0
  47. package/application-mcp-server/src/indexer/__tests__/ContractTokenDeriver.test.ts +111 -0
  48. package/application-mcp-server/src/indexer/__tests__/CoverageDrift.test.ts +53 -0
  49. package/application-mcp-server/src/indexer/__tests__/DesignPhilosophyIndexer.test.ts +102 -0
  50. package/application-mcp-server/src/indexer/__tests__/FamilyGuidanceIndexer.test.ts +316 -0
  51. package/application-mcp-server/src/indexer/__tests__/FamilyNameValidation.test.ts +98 -0
  52. package/application-mcp-server/src/indexer/__tests__/GuidanceCompleteness.test.ts +63 -0
  53. package/application-mcp-server/src/indexer/__tests__/HealthStates.test.ts +129 -0
  54. package/application-mcp-server/src/indexer/__tests__/InheritanceResolver.test.ts +145 -0
  55. package/application-mcp-server/src/indexer/__tests__/LayoutTemplateIndexer.test.ts +378 -0
  56. package/application-mcp-server/src/indexer/__tests__/PatternIndexer.test.ts +323 -0
  57. package/application-mcp-server/src/indexer/__tests__/ReadinessCompliance.test.ts +212 -0
  58. package/application-mcp-server/src/indexer/__tests__/TokenIndexer.test.ts +131 -0
  59. package/application-mcp-server/src/indexer/__tests__/fixtures/design-philosophy.yaml +40 -0
  60. package/application-mcp-server/src/indexer/__tests__/parsers.test.ts +102 -0
  61. package/application-mcp-server/src/indexer/parsers.ts +284 -0
  62. package/application-mcp-server/src/models/index.ts +449 -0
  63. package/application-mcp-server/src/query/QueryEngine.ts +477 -0
  64. package/application-mcp-server/src/query/__tests__/QueryEngine.test.ts +282 -0
  65. package/application-mcp-server/src/query/__tests__/deriveMatchConfidence.test.ts +83 -0
  66. package/application-mcp-server/src/staleness/StalenessGate.ts +112 -0
  67. package/application-mcp-server/src/staleness/__tests__/GateIntegration.test.ts +141 -0
  68. package/application-mcp-server/src/staleness/__tests__/StalenessGate.test.ts +214 -0
  69. package/application-mcp-server/src/validation/AccessibilityChecker.ts +72 -0
  70. package/application-mcp-server/src/validation/AssemblyValidator.ts +77 -0
  71. package/application-mcp-server/src/validation/__tests__/AccessibilityChecker.test.ts +105 -0
  72. package/application-mcp-server/src/validation/__tests__/AssemblyValidator.test.ts +140 -0
  73. package/application-mcp-server/src/watcher/FileWatcher.ts +104 -0
  74. package/application-mcp-server/src/watcher/__tests__/FileWatcher.test.ts +59 -0
  75. package/application-mcp-server/tsconfig.json +24 -0
  76. package/bin/designerpunk.js +45 -0
  77. package/design-language/design-philosophy.yaml +139 -0
  78. package/designerpunk.config.ts +27 -0
  79. package/dist/ComponentTokens.android.kt +105 -0
  80. package/dist/ComponentTokens.ios.swift +105 -0
  81. package/dist/ComponentTokens.web.css +92 -0
  82. package/dist/DesignTokens.android.kt +696 -0
  83. package/dist/DesignTokens.dtcg.json +5759 -0
  84. package/dist/DesignTokens.figma.json +5053 -0
  85. package/dist/DesignTokens.ios.swift +696 -0
  86. package/dist/DesignTokens.web.css +940 -0
  87. package/dist/TokenEngine.d.ts +200 -0
  88. package/dist/TokenEngine.js +480 -0
  89. package/dist/__tests__/fixtures/acknowledged-differences.json +127 -0
  90. package/dist/analytics/PrimitiveTokenFallbackTracker.d.ts +91 -0
  91. package/dist/analytics/PrimitiveTokenFallbackTracker.js +168 -0
  92. package/dist/analytics/SemanticTokenUsageTracker.d.ts +79 -0
  93. package/dist/analytics/SemanticTokenUsageTracker.js +142 -0
  94. package/dist/analytics/StrategicFlexibilityTracker.d.ts +99 -0
  95. package/dist/analytics/StrategicFlexibilityTracker.js +165 -0
  96. package/dist/analytics/TokenUsageTracker.d.ts +87 -0
  97. package/dist/analytics/TokenUsageTracker.js +128 -0
  98. package/dist/analytics/UsagePatternAnalyzer.d.ts +64 -0
  99. package/dist/analytics/UsagePatternAnalyzer.js +126 -0
  100. package/dist/analytics/index.d.ts +15 -0
  101. package/dist/analytics/index.js +27 -0
  102. package/dist/android/DesignTokens.android.kt +695 -0
  103. package/dist/blend/BlendCalculator.d.ts +65 -0
  104. package/dist/blend/BlendCalculator.js +98 -0
  105. package/dist/blend/ColorSpaceUtils.d.ts +164 -0
  106. package/dist/blend/ColorSpaceUtils.js +292 -0
  107. package/dist/blend/OklchBlendCalculator.d.ts +64 -0
  108. package/dist/blend/OklchBlendCalculator.js +77 -0
  109. package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +202 -0
  110. package/dist/blend/ThemeAwareBlendUtilities.web.js +212 -0
  111. package/dist/blend/index.d.ts +12 -0
  112. package/dist/blend/index.js +30 -0
  113. package/dist/browser/demo-styles.css +492 -0
  114. package/dist/browser/designerpunk.esm.js +18472 -0
  115. package/dist/browser/designerpunk.esm.min.js +705 -0
  116. package/dist/browser/designerpunk.umd.js +18540 -0
  117. package/dist/browser/designerpunk.umd.min.js +705 -0
  118. package/dist/browser/tokens.css +1028 -0
  119. package/dist/browser-entry.d.ts +82 -0
  120. package/dist/browser-entry.js +297 -0
  121. package/dist/build/BuildOrchestrator.d.ts +89 -0
  122. package/dist/build/BuildOrchestrator.js +583 -0
  123. package/dist/build/errors/BuildError.d.ts +87 -0
  124. package/dist/build/errors/BuildError.js +67 -0
  125. package/dist/build/errors/ErrorDocumentation.d.ts +66 -0
  126. package/dist/build/errors/ErrorDocumentation.js +557 -0
  127. package/dist/build/errors/ErrorHandler.d.ts +120 -0
  128. package/dist/build/errors/ErrorHandler.js +299 -0
  129. package/dist/build/errors/ErrorReporter.d.ts +102 -0
  130. package/dist/build/errors/ErrorReporter.js +397 -0
  131. package/dist/build/errors/PlatformGenerationError.d.ts +73 -0
  132. package/dist/build/errors/PlatformGenerationError.js +163 -0
  133. package/dist/build/errors/RecoveryStrategy.d.ts +145 -0
  134. package/dist/build/errors/RecoveryStrategy.js +297 -0
  135. package/dist/build/errors/TokenGenerationError.d.ts +65 -0
  136. package/dist/build/errors/TokenGenerationError.js +161 -0
  137. package/dist/build/errors/TokenReferenceError.d.ts +65 -0
  138. package/dist/build/errors/TokenReferenceError.js +168 -0
  139. package/dist/build/errors/index.d.ts +18 -0
  140. package/dist/build/errors/index.js +63 -0
  141. package/dist/build/index.d.ts +19 -0
  142. package/dist/build/index.js +26 -0
  143. package/dist/build/orchestration/IncrementalBuilder.d.ts +180 -0
  144. package/dist/build/orchestration/IncrementalBuilder.js +393 -0
  145. package/dist/build/orchestration/ParallelExecutor.d.ts +87 -0
  146. package/dist/build/orchestration/ParallelExecutor.js +242 -0
  147. package/dist/build/orchestration/ProgressTracker.d.ts +181 -0
  148. package/dist/build/orchestration/ProgressTracker.js +371 -0
  149. package/dist/build/orchestration/SequentialExecutor.d.ts +96 -0
  150. package/dist/build/orchestration/SequentialExecutor.js +211 -0
  151. package/dist/build/orchestration/index.d.ts +10 -0
  152. package/dist/build/orchestration/index.js +17 -0
  153. package/dist/build/platforms/AndroidBuilder.d.ts +288 -0
  154. package/dist/build/platforms/AndroidBuilder.js +1134 -0
  155. package/dist/build/platforms/AndroidShadowGenerator.d.ts +101 -0
  156. package/dist/build/platforms/AndroidShadowGenerator.js +298 -0
  157. package/dist/build/platforms/IOSShadowGenerator.d.ts +84 -0
  158. package/dist/build/platforms/IOSShadowGenerator.js +254 -0
  159. package/dist/build/platforms/PlatformBuilder.d.ts +111 -0
  160. package/dist/build/platforms/PlatformBuilder.js +10 -0
  161. package/dist/build/platforms/WebBuilder.d.ts +294 -0
  162. package/dist/build/platforms/WebBuilder.js +1133 -0
  163. package/dist/build/platforms/WebShadowGenerator.d.ts +78 -0
  164. package/dist/build/platforms/WebShadowGenerator.js +226 -0
  165. package/dist/build/platforms/iOSBuilder.d.ts +352 -0
  166. package/dist/build/platforms/iOSBuilder.js +1461 -0
  167. package/dist/build/platforms/index.d.ts +8 -0
  168. package/dist/build/platforms/index.js +24 -0
  169. package/dist/build/product/ProductTokenGenerator.d.ts +62 -0
  170. package/dist/build/product/ProductTokenGenerator.js +141 -0
  171. package/dist/build/product/TokenIndexReader.d.ts +28 -0
  172. package/dist/build/product/TokenIndexReader.js +101 -0
  173. package/dist/build/product/emitters/KotlinEmitter.d.ts +8 -0
  174. package/dist/build/product/emitters/KotlinEmitter.js +80 -0
  175. package/dist/build/product/emitters/SwiftEmitter.d.ts +8 -0
  176. package/dist/build/product/emitters/SwiftEmitter.js +87 -0
  177. package/dist/build/product/emitters/WebEmitter.d.ts +8 -0
  178. package/dist/build/product/emitters/WebEmitter.js +66 -0
  179. package/dist/build/tokens/ComponentToken.d.ts +239 -0
  180. package/dist/build/tokens/ComponentToken.js +51 -0
  181. package/dist/build/tokens/ComponentTokenGenerator.d.ts +117 -0
  182. package/dist/build/tokens/ComponentTokenGenerator.js +324 -0
  183. package/dist/build/tokens/PlatformTokens.d.ts +144 -0
  184. package/dist/build/tokens/PlatformTokens.js +9 -0
  185. package/dist/build/tokens/TokenIntegrator.d.ts +156 -0
  186. package/dist/build/tokens/TokenIntegrator.js +259 -0
  187. package/dist/build/tokens/TokenSelection.d.ts +105 -0
  188. package/dist/build/tokens/TokenSelection.js +9 -0
  189. package/dist/build/tokens/TokenSelector.d.ts +73 -0
  190. package/dist/build/tokens/TokenSelector.js +336 -0
  191. package/dist/build/tokens/UnitConverter.d.ts +126 -0
  192. package/dist/build/tokens/UnitConverter.js +222 -0
  193. package/dist/build/tokens/defineComponentTokens.d.ts +186 -0
  194. package/dist/build/tokens/defineComponentTokens.js +193 -0
  195. package/dist/build/tokens/index.d.ts +18 -0
  196. package/dist/build/tokens/index.js +23 -0
  197. package/dist/build/tokens/types.d.ts +24 -0
  198. package/dist/build/tokens/types.js +8 -0
  199. package/dist/build/types/BuildConfig.d.ts +92 -0
  200. package/dist/build/types/BuildConfig.js +28 -0
  201. package/dist/build/types/BuildOrchestrator.d.ts +95 -0
  202. package/dist/build/types/BuildOrchestrator.js +9 -0
  203. package/dist/build/types/BuildResult.d.ts +91 -0
  204. package/dist/build/types/BuildResult.js +10 -0
  205. package/dist/build/types/Platform.d.ts +25 -0
  206. package/dist/build/types/Platform.js +39 -0
  207. package/dist/build/types/index.d.ts +14 -0
  208. package/dist/build/types/index.js +15 -0
  209. package/dist/build/validation/AndroidBuildValidator.d.ts +77 -0
  210. package/dist/build/validation/AndroidBuildValidator.js +562 -0
  211. package/dist/build/validation/CrossPlatformValidationReporter.d.ts +295 -0
  212. package/dist/build/validation/CrossPlatformValidationReporter.js +817 -0
  213. package/dist/build/validation/InterfaceContractValidator.d.ts +102 -0
  214. package/dist/build/validation/InterfaceContractValidator.js +303 -0
  215. package/dist/build/validation/InterfaceValidator.d.ts +48 -0
  216. package/dist/build/validation/InterfaceValidator.js +214 -0
  217. package/dist/build/validation/MathematicalConsistencyValidator.d.ts +194 -0
  218. package/dist/build/validation/MathematicalConsistencyValidator.js +656 -0
  219. package/dist/build/validation/MethodSignatureValidator.d.ts +72 -0
  220. package/dist/build/validation/MethodSignatureValidator.js +283 -0
  221. package/dist/build/validation/PropertyTypeValidator.d.ts +73 -0
  222. package/dist/build/validation/PropertyTypeValidator.js +241 -0
  223. package/dist/build/validation/TokenComparator.d.ts +221 -0
  224. package/dist/build/validation/TokenComparator.js +478 -0
  225. package/dist/build/validation/ValidationReporter.d.ts +173 -0
  226. package/dist/build/validation/ValidationReporter.example.d.ts +17 -0
  227. package/dist/build/validation/ValidationReporter.example.js +259 -0
  228. package/dist/build/validation/ValidationReporter.js +517 -0
  229. package/dist/build/validation/WebBuildValidator.d.ts +112 -0
  230. package/dist/build/validation/WebBuildValidator.js +470 -0
  231. package/dist/build/validation/iOSBuildValidator.d.ts +155 -0
  232. package/dist/build/validation/iOSBuildValidator.js +670 -0
  233. package/dist/build/validation/index.d.ts +26 -0
  234. package/dist/build/validation/index.js +34 -0
  235. package/dist/build/validation/types/InterfaceDefinition.d.ts +74 -0
  236. package/dist/build/validation/types/InterfaceDefinition.js +9 -0
  237. package/dist/build/validation/types/ValidationResult.d.ts +74 -0
  238. package/dist/build/validation/types/ValidationResult.js +9 -0
  239. package/dist/build/workflow/BuildMode.d.ts +147 -0
  240. package/dist/build/workflow/BuildMode.js +205 -0
  241. package/dist/build/workflow/CICDIntegration.d.ts +179 -0
  242. package/dist/build/workflow/CICDIntegration.js +347 -0
  243. package/dist/build/workflow/ConfigHelpers.d.ts +139 -0
  244. package/dist/build/workflow/ConfigHelpers.example.d.ts +8 -0
  245. package/dist/build/workflow/ConfigHelpers.example.js +269 -0
  246. package/dist/build/workflow/ConfigHelpers.js +714 -0
  247. package/dist/build/workflow/SourceMapGenerator.d.ts +89 -0
  248. package/dist/build/workflow/SourceMapGenerator.js +268 -0
  249. package/dist/build/workflow/index.d.ts +13 -0
  250. package/dist/build/workflow/index.js +23 -0
  251. package/dist/cli/designerpunk.d.ts +20 -0
  252. package/dist/cli/designerpunk.js +416 -0
  253. package/dist/cli/figma-extract.d.ts +64 -0
  254. package/dist/cli/figma-extract.js +338 -0
  255. package/dist/cli/figma-push.d.ts +63 -0
  256. package/dist/cli/figma-push.js +292 -0
  257. package/dist/cli/generateProductTokens.d.ts +11 -0
  258. package/dist/cli/generateProductTokens.js +96 -0
  259. package/dist/cli/init.d.ts +11 -0
  260. package/dist/cli/init.js +385 -0
  261. package/dist/cli/loadComponentTokens.d.ts +46 -0
  262. package/dist/cli/loadComponentTokens.js +163 -0
  263. package/dist/cli/resolveTokens.d.ts +40 -0
  264. package/dist/cli/resolveTokens.js +94 -0
  265. package/dist/cli/shared/mcpDataRoots.d.ts +38 -0
  266. package/dist/cli/shared/mcpDataRoots.js +75 -0
  267. package/dist/cli/shared/resolvePackageRoot.d.ts +2 -0
  268. package/dist/cli/shared/resolvePackageRoot.js +50 -0
  269. package/dist/cli/shared/transforms.d.ts +13 -0
  270. package/dist/cli/shared/transforms.js +18 -0
  271. package/dist/cli/staleness.d.ts +23 -0
  272. package/dist/cli/staleness.js +113 -0
  273. package/dist/cli/sync/Applier.d.ts +32 -0
  274. package/dist/cli/sync/Applier.js +127 -0
  275. package/dist/cli/sync/Classifier.d.ts +27 -0
  276. package/dist/cli/sync/Classifier.js +103 -0
  277. package/dist/cli/sync/FileScanner.d.ts +19 -0
  278. package/dist/cli/sync/FileScanner.js +82 -0
  279. package/dist/cli/sync/IgnoreFilter.d.ts +10 -0
  280. package/dist/cli/sync/IgnoreFilter.js +70 -0
  281. package/dist/cli/sync/Manifest.d.ts +24 -0
  282. package/dist/cli/sync/Manifest.js +85 -0
  283. package/dist/cli/sync/PackageResolver.d.ts +14 -0
  284. package/dist/cli/sync/PackageResolver.js +67 -0
  285. package/dist/cli/sync/Prompter.d.ts +22 -0
  286. package/dist/cli/sync/Prompter.js +169 -0
  287. package/dist/cli/sync/Reporter.d.ts +11 -0
  288. package/dist/cli/sync/Reporter.js +66 -0
  289. package/dist/cli/sync/SteeringDirCheck.d.ts +50 -0
  290. package/dist/cli/sync/SteeringDirCheck.js +174 -0
  291. package/dist/cli/sync/index.d.ts +14 -0
  292. package/dist/cli/sync/index.js +94 -0
  293. package/dist/cli/validate.d.ts +18 -0
  294. package/dist/cli/validate.js +147 -0
  295. package/dist/cli/validateProductTokens.d.ts +10 -0
  296. package/dist/cli/validateProductTokens.js +84 -0
  297. package/dist/color/OklchConverter.d.ts +50 -0
  298. package/dist/color/OklchConverter.js +242 -0
  299. package/dist/color/OklchValidator.d.ts +49 -0
  300. package/dist/color/OklchValidator.js +147 -0
  301. package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +327 -0
  302. package/dist/components/core/Avatar-Base/avatar.tokens.js +344 -0
  303. package/dist/components/core/Avatar-Base/index.d.ts +12 -0
  304. package/dist/components/core/Avatar-Base/index.js +24 -0
  305. package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.d.ts +315 -0
  306. package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +803 -0
  307. package/dist/components/core/Avatar-Base/types.d.ts +72 -0
  308. package/dist/components/core/Avatar-Base/types.js +21 -0
  309. package/dist/components/core/Badge-Count-Base/index.d.ts +24 -0
  310. package/dist/components/core/Badge-Count-Base/index.js +36 -0
  311. package/dist/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.d.ts +192 -0
  312. package/dist/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.js +337 -0
  313. package/dist/components/core/Badge-Count-Base/types.d.ts +137 -0
  314. package/dist/components/core/Badge-Count-Base/types.js +67 -0
  315. package/dist/components/core/Badge-Count-Notification/index.d.ts +33 -0
  316. package/dist/components/core/Badge-Count-Notification/index.js +56 -0
  317. package/dist/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.d.ts +179 -0
  318. package/dist/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.js +365 -0
  319. package/dist/components/core/Badge-Count-Notification/tokens.d.ts +118 -0
  320. package/dist/components/core/Badge-Count-Notification/tokens.js +120 -0
  321. package/dist/components/core/Badge-Count-Notification/types.d.ts +112 -0
  322. package/dist/components/core/Badge-Count-Notification/types.js +33 -0
  323. package/dist/components/core/Badge-Label-Base/index.d.ts +24 -0
  324. package/dist/components/core/Badge-Label-Base/index.js +39 -0
  325. package/dist/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.d.ts +178 -0
  326. package/dist/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.js +315 -0
  327. package/dist/components/core/Badge-Label-Base/tokens.d.ts +69 -0
  328. package/dist/components/core/Badge-Label-Base/tokens.js +81 -0
  329. package/dist/components/core/Badge-Label-Base/types.d.ts +139 -0
  330. package/dist/components/core/Badge-Label-Base/types.js +61 -0
  331. package/dist/components/core/Button-CTA/Button-CTA.tokens.d.ts +73 -0
  332. package/dist/components/core/Button-CTA/Button-CTA.tokens.js +75 -0
  333. package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +146 -0
  334. package/dist/components/core/Button-CTA/examples/BasicUsage.js +231 -0
  335. package/dist/components/core/Button-CTA/index.d.ts +14 -0
  336. package/dist/components/core/Button-CTA/index.js +20 -0
  337. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +273 -0
  338. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +635 -0
  339. package/dist/components/core/Button-CTA/types.d.ts +247 -0
  340. package/dist/components/core/Button-CTA/types.js +14 -0
  341. package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +171 -0
  342. package/dist/components/core/Button-Icon/buttonIcon.tokens.js +188 -0
  343. package/dist/components/core/Button-Icon/platforms/web/ButtonIcon.web.d.ts +267 -0
  344. package/dist/components/core/Button-Icon/platforms/web/ButtonIcon.web.js +570 -0
  345. package/dist/components/core/Button-Icon/types.d.ts +177 -0
  346. package/dist/components/core/Button-Icon/types.js +35 -0
  347. package/dist/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.d.ts +96 -0
  348. package/dist/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.js +107 -0
  349. package/dist/components/core/Button-VerticalList-Item/index.d.ts +19 -0
  350. package/dist/components/core/Button-VerticalList-Item/index.js +39 -0
  351. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.d.ts +378 -0
  352. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.js +916 -0
  353. package/dist/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.d.ts +227 -0
  354. package/dist/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.js +370 -0
  355. package/dist/components/core/Button-VerticalList-Item/types.d.ts +301 -0
  356. package/dist/components/core/Button-VerticalList-Item/types.js +16 -0
  357. package/dist/components/core/Button-VerticalList-Set/index.d.ts +16 -0
  358. package/dist/components/core/Button-VerticalList-Set/index.js +26 -0
  359. package/dist/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.d.ts +492 -0
  360. package/dist/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.js +1263 -0
  361. package/dist/components/core/Button-VerticalList-Set/types.d.ts +586 -0
  362. package/dist/components/core/Button-VerticalList-Set/types.js +375 -0
  363. package/dist/components/core/Chip-Base/index.d.ts +28 -0
  364. package/dist/components/core/Chip-Base/index.js +40 -0
  365. package/dist/components/core/Chip-Base/platforms/web/ChipBase.web.d.ts +214 -0
  366. package/dist/components/core/Chip-Base/platforms/web/ChipBase.web.js +434 -0
  367. package/dist/components/core/Chip-Base/types.d.ts +174 -0
  368. package/dist/components/core/Chip-Base/types.js +34 -0
  369. package/dist/components/core/Chip-Filter/index.d.ts +22 -0
  370. package/dist/components/core/Chip-Filter/index.js +31 -0
  371. package/dist/components/core/Chip-Filter/platforms/web/ChipFilter.web.d.ts +222 -0
  372. package/dist/components/core/Chip-Filter/platforms/web/ChipFilter.web.js +467 -0
  373. package/dist/components/core/Chip-Filter/types.d.ts +45 -0
  374. package/dist/components/core/Chip-Filter/types.js +19 -0
  375. package/dist/components/core/Chip-Input/index.d.ts +22 -0
  376. package/dist/components/core/Chip-Input/index.js +31 -0
  377. package/dist/components/core/Chip-Input/platforms/web/ChipInput.web.d.ts +205 -0
  378. package/dist/components/core/Chip-Input/platforms/web/ChipInput.web.js +419 -0
  379. package/dist/components/core/Chip-Input/types.d.ts +34 -0
  380. package/dist/components/core/Chip-Input/types.js +19 -0
  381. package/dist/components/core/Container-Base/index.d.ts +19 -0
  382. package/dist/components/core/Container-Base/index.js +34 -0
  383. package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.d.ts +128 -0
  384. package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.js +349 -0
  385. package/dist/components/core/Container-Base/platforms/web/token-mapping.d.ts +357 -0
  386. package/dist/components/core/Container-Base/platforms/web/token-mapping.js +518 -0
  387. package/dist/components/core/Container-Base/tokens.d.ts +179 -0
  388. package/dist/components/core/Container-Base/tokens.js +221 -0
  389. package/dist/components/core/Container-Base/types.d.ts +237 -0
  390. package/dist/components/core/Container-Base/types.js +50 -0
  391. package/dist/components/core/Container-Card-Base/index.d.ts +18 -0
  392. package/dist/components/core/Container-Card-Base/index.js +49 -0
  393. package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.d.ts +58 -0
  394. package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.js +324 -0
  395. package/dist/components/core/Container-Card-Base/tokens.d.ts +149 -0
  396. package/dist/components/core/Container-Card-Base/tokens.js +207 -0
  397. package/dist/components/core/Container-Card-Base/types.d.ts +268 -0
  398. package/dist/components/core/Container-Card-Base/types.js +85 -0
  399. package/dist/components/core/Icon-Base/index.d.ts +14 -0
  400. package/dist/components/core/Icon-Base/index.js +27 -0
  401. package/dist/components/core/Icon-Base/platforms/web/IconBase.web.d.ts +175 -0
  402. package/dist/components/core/Icon-Base/platforms/web/IconBase.web.js +503 -0
  403. package/dist/components/core/Icon-Base/types.d.ts +276 -0
  404. package/dist/components/core/Icon-Base/types.js +69 -0
  405. package/dist/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.d.ts +30 -0
  406. package/dist/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.js +39 -0
  407. package/dist/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.d.ts +147 -0
  408. package/dist/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.js +486 -0
  409. package/dist/components/core/Input-Checkbox-Base/types.d.ts +357 -0
  410. package/dist/components/core/Input-Checkbox-Base/types.js +60 -0
  411. package/dist/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.d.ts +110 -0
  412. package/dist/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.js +423 -0
  413. package/dist/components/core/Input-Checkbox-Legal/types.d.ts +311 -0
  414. package/dist/components/core/Input-Checkbox-Legal/types.js +69 -0
  415. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.d.ts +250 -0
  416. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.js +564 -0
  417. package/dist/components/core/Input-Radio-Base/radio-sizing.tokens.d.ts +30 -0
  418. package/dist/components/core/Input-Radio-Base/radio-sizing.tokens.js +39 -0
  419. package/dist/components/core/Input-Radio-Base/types.d.ts +327 -0
  420. package/dist/components/core/Input-Radio-Base/types.js +63 -0
  421. package/dist/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.d.ts +304 -0
  422. package/dist/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.js +691 -0
  423. package/dist/components/core/Input-Radio-Set/types.d.ts +275 -0
  424. package/dist/components/core/Input-Radio-Set/types.js +70 -0
  425. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.d.ts +26 -0
  426. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.js +224 -0
  427. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.d.ts +116 -0
  428. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.js +394 -0
  429. package/dist/components/core/Input-Text-Base/stateManagement.d.ts +172 -0
  430. package/dist/components/core/Input-Text-Base/stateManagement.js +224 -0
  431. package/dist/components/core/Input-Text-Base/tokens.d.ts +331 -0
  432. package/dist/components/core/Input-Text-Base/tokens.js +164 -0
  433. package/dist/components/core/Input-Text-Base/types.d.ts +77 -0
  434. package/dist/components/core/Input-Text-Base/types.js +13 -0
  435. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.d.ts +30 -0
  436. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.js +254 -0
  437. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.d.ts +105 -0
  438. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.js +279 -0
  439. package/dist/components/core/Input-Text-Email/stateManagement.d.ts +79 -0
  440. package/dist/components/core/Input-Text-Email/stateManagement.js +136 -0
  441. package/dist/components/core/Input-Text-Email/tokens.d.ts +20 -0
  442. package/dist/components/core/Input-Text-Email/tokens.js +34 -0
  443. package/dist/components/core/Input-Text-Email/types.d.ts +63 -0
  444. package/dist/components/core/Input-Text-Email/types.js +13 -0
  445. package/dist/components/core/Input-Text-Email/validation.d.ts +68 -0
  446. package/dist/components/core/Input-Text-Email/validation.js +115 -0
  447. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.d.ts +44 -0
  448. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.js +376 -0
  449. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.d.ts +137 -0
  450. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +447 -0
  451. package/dist/components/core/Input-Text-Password/stateManagement.d.ts +119 -0
  452. package/dist/components/core/Input-Text-Password/stateManagement.js +200 -0
  453. package/dist/components/core/Input-Text-Password/tokens.d.ts +20 -0
  454. package/dist/components/core/Input-Text-Password/tokens.js +34 -0
  455. package/dist/components/core/Input-Text-Password/types.d.ts +145 -0
  456. package/dist/components/core/Input-Text-Password/types.js +13 -0
  457. package/dist/components/core/Input-Text-Password/validation.d.ts +81 -0
  458. package/dist/components/core/Input-Text-Password/validation.js +170 -0
  459. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.d.ts +38 -0
  460. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.js +328 -0
  461. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.d.ts +125 -0
  462. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.js +334 -0
  463. package/dist/components/core/Input-Text-PhoneNumber/stateManagement.d.ts +114 -0
  464. package/dist/components/core/Input-Text-PhoneNumber/stateManagement.js +200 -0
  465. package/dist/components/core/Input-Text-PhoneNumber/tokens.d.ts +20 -0
  466. package/dist/components/core/Input-Text-PhoneNumber/tokens.js +34 -0
  467. package/dist/components/core/Input-Text-PhoneNumber/types.d.ts +111 -0
  468. package/dist/components/core/Input-Text-PhoneNumber/types.js +13 -0
  469. package/dist/components/core/Input-Text-PhoneNumber/validation.d.ts +120 -0
  470. package/dist/components/core/Input-Text-PhoneNumber/validation.js +278 -0
  471. package/dist/components/core/Nav-Header-App/index.d.ts +6 -0
  472. package/dist/components/core/Nav-Header-App/index.js +3 -0
  473. package/dist/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.d.ts +12 -0
  474. package/dist/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.js +34 -0
  475. package/dist/components/core/Nav-Header-App/types.d.ts +27 -0
  476. package/dist/components/core/Nav-Header-App/types.js +15 -0
  477. package/dist/components/core/Nav-Header-Base/index.d.ts +7 -0
  478. package/dist/components/core/Nav-Header-Base/index.js +8 -0
  479. package/dist/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.d.ts +26 -0
  480. package/dist/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.js +105 -0
  481. package/dist/components/core/Nav-Header-Base/types.d.ts +63 -0
  482. package/dist/components/core/Nav-Header-Base/types.js +17 -0
  483. package/dist/components/core/Nav-Header-Page/index.d.ts +7 -0
  484. package/dist/components/core/Nav-Header-Page/index.js +8 -0
  485. package/dist/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.d.ts +31 -0
  486. package/dist/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.js +148 -0
  487. package/dist/components/core/Nav-Header-Page/types.d.ts +46 -0
  488. package/dist/components/core/Nav-Header-Page/types.js +16 -0
  489. package/dist/components/core/Nav-SegmentedChoice-Base/index.d.ts +25 -0
  490. package/dist/components/core/Nav-SegmentedChoice-Base/index.js +33 -0
  491. package/dist/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.d.ts +112 -0
  492. package/dist/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.js +421 -0
  493. package/dist/components/core/Nav-SegmentedChoice-Base/types.d.ts +54 -0
  494. package/dist/components/core/Nav-SegmentedChoice-Base/types.js +22 -0
  495. package/dist/components/core/Nav-TabBar-Base/examples/BasicUsage.d.ts +1 -0
  496. package/dist/components/core/Nav-TabBar-Base/examples/BasicUsage.js +4 -0
  497. package/dist/components/core/Nav-TabBar-Base/index.d.ts +14 -0
  498. package/dist/components/core/Nav-TabBar-Base/index.js +18 -0
  499. package/dist/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.d.ts +82 -0
  500. package/dist/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.js +372 -0
  501. package/dist/components/core/Nav-TabBar-Base/types.d.ts +38 -0
  502. package/dist/components/core/Nav-TabBar-Base/types.js +17 -0
  503. package/dist/components/core/Progress-Bar-Base/index.d.ts +7 -0
  504. package/dist/components/core/Progress-Bar-Base/index.js +6 -0
  505. package/dist/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.d.ts +24 -0
  506. package/dist/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.js +121 -0
  507. package/dist/components/core/Progress-Bar-Base/types.d.ts +44 -0
  508. package/dist/components/core/Progress-Bar-Base/types.js +23 -0
  509. package/dist/components/core/Progress-Indicator-Connector-Base/index.d.ts +23 -0
  510. package/dist/components/core/Progress-Indicator-Connector-Base/index.js +32 -0
  511. package/dist/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.d.ts +61 -0
  512. package/dist/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.js +128 -0
  513. package/dist/components/core/Progress-Indicator-Connector-Base/types.d.ts +64 -0
  514. package/dist/components/core/Progress-Indicator-Connector-Base/types.js +26 -0
  515. package/dist/components/core/Progress-Indicator-Label-Base/index.d.ts +22 -0
  516. package/dist/components/core/Progress-Indicator-Label-Base/index.js +29 -0
  517. package/dist/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.d.ts +71 -0
  518. package/dist/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.js +160 -0
  519. package/dist/components/core/Progress-Indicator-Label-Base/types.d.ts +61 -0
  520. package/dist/components/core/Progress-Indicator-Label-Base/types.js +18 -0
  521. package/dist/components/core/Progress-Indicator-Node-Base/index.d.ts +23 -0
  522. package/dist/components/core/Progress-Indicator-Node-Base/index.js +33 -0
  523. package/dist/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.d.ts +85 -0
  524. package/dist/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.js +206 -0
  525. package/dist/components/core/Progress-Indicator-Node-Base/types.d.ts +141 -0
  526. package/dist/components/core/Progress-Indicator-Node-Base/types.js +46 -0
  527. package/dist/components/core/Progress-Pagination-Base/index.d.ts +26 -0
  528. package/dist/components/core/Progress-Pagination-Base/index.js +37 -0
  529. package/dist/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.d.ts +86 -0
  530. package/dist/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.js +256 -0
  531. package/dist/components/core/Progress-Pagination-Base/types.d.ts +97 -0
  532. package/dist/components/core/Progress-Pagination-Base/types.js +57 -0
  533. package/dist/components/core/Progress-Stepper-Base/index.d.ts +26 -0
  534. package/dist/components/core/Progress-Stepper-Base/index.js +40 -0
  535. package/dist/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.d.ts +93 -0
  536. package/dist/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.js +247 -0
  537. package/dist/components/core/Progress-Stepper-Base/types.d.ts +138 -0
  538. package/dist/components/core/Progress-Stepper-Base/types.js +98 -0
  539. package/dist/components/core/Progress-Stepper-Detailed/index.d.ts +27 -0
  540. package/dist/components/core/Progress-Stepper-Detailed/index.js +41 -0
  541. package/dist/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.d.ts +97 -0
  542. package/dist/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.js +290 -0
  543. package/dist/components/core/Progress-Stepper-Detailed/types.d.ts +152 -0
  544. package/dist/components/core/Progress-Stepper-Detailed/types.js +102 -0
  545. package/dist/composition/BlendComposition.d.ts +39 -0
  546. package/dist/composition/BlendComposition.js +15 -0
  547. package/dist/composition/BlendCompositionParser.d.ts +63 -0
  548. package/dist/composition/BlendCompositionParser.js +185 -0
  549. package/dist/composition/OpacityComposition.d.ts +52 -0
  550. package/dist/composition/OpacityComposition.js +14 -0
  551. package/dist/composition/OpacityCompositionParser.d.ts +82 -0
  552. package/dist/composition/OpacityCompositionParser.js +267 -0
  553. package/dist/composition/index.d.ts +10 -0
  554. package/dist/composition/index.js +13 -0
  555. package/dist/config/ConfigLoader.d.ts +71 -0
  556. package/dist/config/ConfigLoader.js +140 -0
  557. package/dist/config/defineConfig.d.ts +66 -0
  558. package/dist/config/defineConfig.js +35 -0
  559. package/dist/config/index.d.ts +8 -0
  560. package/dist/config/index.js +11 -0
  561. package/dist/config/scopedTsRequire.d.ts +45 -0
  562. package/dist/config/scopedTsRequire.js +50 -0
  563. package/dist/constants/BaselineGrid.d.ts +31 -0
  564. package/dist/constants/BaselineGrid.js +39 -0
  565. package/dist/constants/SpacingTokens.d.ts +45 -0
  566. package/dist/constants/SpacingTokens.js +56 -0
  567. package/dist/constants/StrategicFlexibilityTokens.d.ts +121 -0
  568. package/dist/constants/StrategicFlexibilityTokens.js +93 -0
  569. package/dist/figma/ComponentAnalysis.d.ts +233 -0
  570. package/dist/figma/ComponentAnalysis.js +15 -0
  571. package/dist/figma/ComponentAnalysisGenerator.d.ts +79 -0
  572. package/dist/figma/ComponentAnalysisGenerator.js +391 -0
  573. package/dist/figma/ConsoleMCPClient.d.ts +147 -0
  574. package/dist/figma/ConsoleMCPClient.js +12 -0
  575. package/dist/figma/ConsoleMCPClientImpl.d.ts +159 -0
  576. package/dist/figma/ConsoleMCPClientImpl.js +918 -0
  577. package/dist/figma/DesignExtractor.d.ts +971 -0
  578. package/dist/figma/DesignExtractor.js +2838 -0
  579. package/dist/figma/TokenSyncWorkflow.d.ts +277 -0
  580. package/dist/figma/TokenSyncWorkflow.js +678 -0
  581. package/dist/figma/TokenTranslator.d.ts +261 -0
  582. package/dist/figma/TokenTranslator.js +713 -0
  583. package/dist/figma/VariantAnalyzer.d.ts +233 -0
  584. package/dist/figma/VariantAnalyzer.js +505 -0
  585. package/dist/figma/error-reporting.d.ts +89 -0
  586. package/dist/figma/error-reporting.js +189 -0
  587. package/dist/figma/index.d.ts +26 -0
  588. package/dist/figma/index.js +37 -0
  589. package/dist/figma/portCleanup.d.ts +21 -0
  590. package/dist/figma/portCleanup.js +76 -0
  591. package/dist/figma/preflight.d.ts +34 -0
  592. package/dist/figma/preflight.js +105 -0
  593. package/dist/generators/BlendUtilityGenerator.d.ts +80 -0
  594. package/dist/generators/BlendUtilityGenerator.js +788 -0
  595. package/dist/generators/BlendValueGenerator.d.ts +52 -0
  596. package/dist/generators/BlendValueGenerator.js +159 -0
  597. package/dist/generators/DTCGFormatGenerator.d.ts +332 -0
  598. package/dist/generators/DTCGFormatGenerator.js +1224 -0
  599. package/dist/generators/DTCGGeneratorConfig.d.ts +41 -0
  600. package/dist/generators/DTCGGeneratorConfig.js +29 -0
  601. package/dist/generators/ModeResolvedTokens.d.ts +53 -0
  602. package/dist/generators/ModeResolvedTokens.js +14 -0
  603. package/dist/generators/ResponsiveGridGenerator.d.ts +64 -0
  604. package/dist/generators/ResponsiveGridGenerator.js +234 -0
  605. package/dist/generators/TokenFileGenerator.d.ts +401 -0
  606. package/dist/generators/TokenFileGenerator.js +1666 -0
  607. package/dist/generators/generateTokenFiles.d.ts +24 -0
  608. package/dist/generators/generateTokenFiles.js +343 -0
  609. package/dist/generators/generateTokenIndex.d.ts +47 -0
  610. package/dist/generators/generateTokenIndex.js +226 -0
  611. package/dist/generators/oklch/OklchExportUtils.d.ts +34 -0
  612. package/dist/generators/oklch/OklchExportUtils.js +48 -0
  613. package/dist/generators/oklch/OklchTokenIndexMetadata.d.ts +23 -0
  614. package/dist/generators/oklch/OklchTokenIndexMetadata.js +21 -0
  615. package/dist/generators/transformers/FigmaTransformer.d.ts +263 -0
  616. package/dist/generators/transformers/FigmaTransformer.js +681 -0
  617. package/dist/generators/transformers/ITokenTransformer.d.ts +51 -0
  618. package/dist/generators/transformers/ITokenTransformer.js +13 -0
  619. package/dist/generators/transformers/TransformerRegistry.d.ts +33 -0
  620. package/dist/generators/transformers/TransformerRegistry.js +59 -0
  621. package/dist/generators/transformers/index.d.ts +39 -0
  622. package/dist/generators/transformers/index.js +45 -0
  623. package/dist/generators/types/DTCGTypes.d.ts +101 -0
  624. package/dist/generators/types/DTCGTypes.js +12 -0
  625. package/dist/integration/BuildErrorHandler.d.ts +140 -0
  626. package/dist/integration/BuildErrorHandler.js +277 -0
  627. package/dist/integration/BuildSystemInterface.d.ts +107 -0
  628. package/dist/integration/BuildSystemInterface.js +205 -0
  629. package/dist/integration/PlatformFileSelector.d.ts +84 -0
  630. package/dist/integration/PlatformFileSelector.js +215 -0
  631. package/dist/integration/RegistryCoordinator.d.ts +133 -0
  632. package/dist/integration/RegistryCoordinator.js +298 -0
  633. package/dist/integration/TranslationCoordinator.d.ts +118 -0
  634. package/dist/integration/TranslationCoordinator.js +352 -0
  635. package/dist/integration/TreeShakingOptimizer.d.ts +111 -0
  636. package/dist/integration/TreeShakingOptimizer.js +224 -0
  637. package/dist/integration/ValidationCoordinator.d.ts +268 -0
  638. package/dist/integration/ValidationCoordinator.js +567 -0
  639. package/dist/integration/index.d.ts +21 -0
  640. package/dist/integration/index.js +28 -0
  641. package/dist/ios/DesignTokens.ios.swift +697 -0
  642. package/dist/mcp/application-mcp.js +19434 -0
  643. package/dist/mcp/docs-mcp.js +16895 -0
  644. package/dist/mcp/product-mcp.js +24828 -0
  645. package/dist/naming/NamingConventionManager.d.ts +94 -0
  646. package/dist/naming/NamingConventionManager.js +193 -0
  647. package/dist/naming/PlatformNamingRules.d.ts +62 -0
  648. package/dist/naming/PlatformNamingRules.js +174 -0
  649. package/dist/naming/index.d.ts +9 -0
  650. package/dist/naming/index.js +18 -0
  651. package/dist/performance/CachingStrategy.d.ts +131 -0
  652. package/dist/performance/CachingStrategy.js +348 -0
  653. package/dist/performance/FileGenerationOptimizer.d.ts +91 -0
  654. package/dist/performance/FileGenerationOptimizer.js +201 -0
  655. package/dist/performance/PerformanceMonitor.d.ts +79 -0
  656. package/dist/performance/PerformanceMonitor.js +142 -0
  657. package/dist/performance/PerformanceOptimizer.d.ts +106 -0
  658. package/dist/performance/PerformanceOptimizer.js +241 -0
  659. package/dist/performance/index.d.ts +14 -0
  660. package/dist/performance/index.js +17 -0
  661. package/dist/providers/AndroidFileOrganizer.d.ts +56 -0
  662. package/dist/providers/AndroidFileOrganizer.js +225 -0
  663. package/dist/providers/AndroidFormatGenerator.d.ts +151 -0
  664. package/dist/providers/AndroidFormatGenerator.js +673 -0
  665. package/dist/providers/AndroidUnitConverter.d.ts +54 -0
  666. package/dist/providers/AndroidUnitConverter.js +151 -0
  667. package/dist/providers/FormatProvider.d.ts +103 -0
  668. package/dist/providers/FormatProvider.js +67 -0
  669. package/dist/providers/PathProvider.d.ts +114 -0
  670. package/dist/providers/PathProvider.js +64 -0
  671. package/dist/providers/UnitProvider.d.ts +65 -0
  672. package/dist/providers/UnitProvider.js +46 -0
  673. package/dist/providers/WebFileOrganizer.d.ts +35 -0
  674. package/dist/providers/WebFileOrganizer.js +113 -0
  675. package/dist/providers/WebFormatGenerator.d.ts +146 -0
  676. package/dist/providers/WebFormatGenerator.js +522 -0
  677. package/dist/providers/WebUnitConverter.d.ts +29 -0
  678. package/dist/providers/WebUnitConverter.js +99 -0
  679. package/dist/providers/iOSFileOrganizer.d.ts +42 -0
  680. package/dist/providers/iOSFileOrganizer.js +148 -0
  681. package/dist/providers/iOSFormatGenerator.d.ts +130 -0
  682. package/dist/providers/iOSFormatGenerator.js +512 -0
  683. package/dist/providers/iOSUnitConverter.d.ts +35 -0
  684. package/dist/providers/iOSUnitConverter.js +108 -0
  685. package/dist/providers/index.d.ts +14 -0
  686. package/dist/providers/index.js +35 -0
  687. package/dist/registries/ComponentTokenRegistry.d.ts +176 -0
  688. package/dist/registries/ComponentTokenRegistry.js +222 -0
  689. package/dist/registries/IRegistry.d.ts +166 -0
  690. package/dist/registries/IRegistry.js +3 -0
  691. package/dist/registries/PrimitiveTokenRegistry.d.ts +83 -0
  692. package/dist/registries/PrimitiveTokenRegistry.js +158 -0
  693. package/dist/registries/SemanticTokenRegistry.d.ts +92 -0
  694. package/dist/registries/SemanticTokenRegistry.js +188 -0
  695. package/dist/resolvers/AndroidColorResolver.d.ts +111 -0
  696. package/dist/resolvers/AndroidColorResolver.js +255 -0
  697. package/dist/resolvers/ModeThemeResolver.d.ts +82 -0
  698. package/dist/resolvers/ModeThemeResolver.js +113 -0
  699. package/dist/resolvers/SemanticOverrideResolver.d.ts +59 -0
  700. package/dist/resolvers/SemanticOverrideResolver.js +124 -0
  701. package/dist/resolvers/SemanticValueResolver.d.ts +20 -0
  702. package/dist/resolvers/SemanticValueResolver.js +122 -0
  703. package/dist/resolvers/WebColorResolver.d.ts +63 -0
  704. package/dist/resolvers/WebColorResolver.js +181 -0
  705. package/dist/resolvers/iOSColorResolver.d.ts +67 -0
  706. package/dist/resolvers/iOSColorResolver.js +175 -0
  707. package/dist/resolvers/index.d.ts +11 -0
  708. package/dist/resolvers/index.js +18 -0
  709. package/dist/security/AIAgentRestrictions.d.ts +115 -0
  710. package/dist/security/AIAgentRestrictions.js +185 -0
  711. package/dist/security/ContaminationAuditor.d.ts +96 -0
  712. package/dist/security/ContaminationAuditor.js +293 -0
  713. package/dist/security/ContaminationPrevention.d.ts +73 -0
  714. package/dist/security/ContaminationPrevention.js +222 -0
  715. package/dist/security/DocumentationGuard.d.ts +76 -0
  716. package/dist/security/DocumentationGuard.js +199 -0
  717. package/dist/security/FlexibilityTokenGuard.d.ts +136 -0
  718. package/dist/security/FlexibilityTokenGuard.js +187 -0
  719. package/dist/security/HumanApprovalWorkflow.d.ts +129 -0
  720. package/dist/security/HumanApprovalWorkflow.js +213 -0
  721. package/dist/security/index.d.ts +19 -0
  722. package/dist/security/index.js +23 -0
  723. package/dist/testing/index.d.ts +74 -0
  724. package/dist/testing/index.js +142 -0
  725. package/dist/testing/jest-preset.d.ts +27 -0
  726. package/dist/testing/jest-preset.js +94 -0
  727. package/dist/testing/style-mock.d.ts +1 -0
  728. package/dist/testing/style-mock.js +9 -0
  729. package/dist/testing/validators.d.ts +10 -0
  730. package/dist/testing/validators.js +26 -0
  731. package/dist/themes/ResolvedThemeSet.d.ts +21 -0
  732. package/dist/themes/ResolvedThemeSet.js +8 -0
  733. package/dist/themes/ThemeRegistry.d.ts +52 -0
  734. package/dist/themes/ThemeRegistry.js +77 -0
  735. package/dist/tokens/BlendTokens.d.ts +45 -0
  736. package/dist/tokens/BlendTokens.js +127 -0
  737. package/dist/tokens/BlurTokens.d.ts +28 -0
  738. package/dist/tokens/BlurTokens.js +153 -0
  739. package/dist/tokens/BorderWidthTokens.d.ts +29 -0
  740. package/dist/tokens/BorderWidthTokens.js +97 -0
  741. package/dist/tokens/BreakpointTokens.d.ts +29 -0
  742. package/dist/tokens/BreakpointTokens.js +97 -0
  743. package/dist/tokens/ColorTokens.d.ts +270 -0
  744. package/dist/tokens/ColorTokens.js +2085 -0
  745. package/dist/tokens/DensityTokens.d.ts +36 -0
  746. package/dist/tokens/DensityTokens.js +113 -0
  747. package/dist/tokens/DurationTokens.d.ts +47 -0
  748. package/dist/tokens/DurationTokens.js +108 -0
  749. package/dist/tokens/EasingTokens.d.ts +47 -0
  750. package/dist/tokens/EasingTokens.js +159 -0
  751. package/dist/tokens/FontFamilyTokens.d.ts +24 -0
  752. package/dist/tokens/FontFamilyTokens.js +92 -0
  753. package/dist/tokens/FontSizeTokens.d.ts +33 -0
  754. package/dist/tokens/FontSizeTokens.js +185 -0
  755. package/dist/tokens/FontWeightTokens.d.ts +29 -0
  756. package/dist/tokens/FontWeightTokens.js +157 -0
  757. package/dist/tokens/GlowOpacityTokens.d.ts +41 -0
  758. package/dist/tokens/GlowOpacityTokens.js +109 -0
  759. package/dist/tokens/LetterSpacingTokens.d.ts +29 -0
  760. package/dist/tokens/LetterSpacingTokens.js +109 -0
  761. package/dist/tokens/LineHeightTokens.d.ts +34 -0
  762. package/dist/tokens/LineHeightTokens.js +189 -0
  763. package/dist/tokens/OpacityTokens.d.ts +30 -0
  764. package/dist/tokens/OpacityTokens.js +219 -0
  765. package/dist/tokens/RadiusTokens.d.ts +37 -0
  766. package/dist/tokens/RadiusTokens.js +223 -0
  767. package/dist/tokens/ScaleTokens.d.ts +62 -0
  768. package/dist/tokens/ScaleTokens.js +161 -0
  769. package/dist/tokens/ShadowOffsetTokens.d.ts +69 -0
  770. package/dist/tokens/ShadowOffsetTokens.js +264 -0
  771. package/dist/tokens/ShadowOpacityTokens.d.ts +22 -0
  772. package/dist/tokens/ShadowOpacityTokens.js +112 -0
  773. package/dist/tokens/SizingTokens.d.ts +35 -0
  774. package/dist/tokens/SizingTokens.js +220 -0
  775. package/dist/tokens/SpacingTokens.d.ts +29 -0
  776. package/dist/tokens/SpacingTokens.js +239 -0
  777. package/dist/tokens/TapAreaTokens.d.ts +38 -0
  778. package/dist/tokens/TapAreaTokens.js +115 -0
  779. package/dist/tokens/color/channels/chroma/chromatic.d.ts +61 -0
  780. package/dist/tokens/color/channels/chroma/chromatic.js +64 -0
  781. package/dist/tokens/color/channels/chroma/neutral.d.ts +33 -0
  782. package/dist/tokens/color/channels/chroma/neutral.js +36 -0
  783. package/dist/tokens/color/channels/hues.d.ts +27 -0
  784. package/dist/tokens/color/channels/hues.js +29 -0
  785. package/dist/tokens/color/channels/index.d.ts +11 -0
  786. package/dist/tokens/color/channels/index.js +36 -0
  787. package/dist/tokens/color/channels/lightness/chromatic.d.ts +62 -0
  788. package/dist/tokens/color/channels/lightness/chromatic.js +65 -0
  789. package/dist/tokens/color/channels/lightness/neutral.d.ts +34 -0
  790. package/dist/tokens/color/channels/lightness/neutral.js +37 -0
  791. package/dist/tokens/color/index.d.ts +16 -0
  792. package/dist/tokens/color/index.js +47 -0
  793. package/dist/tokens/color/primitives/chromatic.d.ts +24 -0
  794. package/dist/tokens/color/primitives/chromatic.js +42 -0
  795. package/dist/tokens/color/primitives/neutral.d.ts +12 -0
  796. package/dist/tokens/color/primitives/neutral.js +37 -0
  797. package/dist/tokens/component/progress.d.ts +101 -0
  798. package/dist/tokens/component/progress.js +145 -0
  799. package/dist/tokens/index.d.ts +167 -0
  800. package/dist/tokens/index.js +341 -0
  801. package/dist/tokens/semantic/AccessibilityTokens.d.ts +112 -0
  802. package/dist/tokens/semantic/AccessibilityTokens.js +175 -0
  803. package/dist/tokens/semantic/BlendTokens.d.ts +112 -0
  804. package/dist/tokens/semantic/BlendTokens.js +191 -0
  805. package/dist/tokens/semantic/BorderWidthTokens.d.ts +156 -0
  806. package/dist/tokens/semantic/BorderWidthTokens.js +147 -0
  807. package/dist/tokens/semantic/ColorTokens.d.ts +157 -0
  808. package/dist/tokens/semantic/ColorTokens.js +791 -0
  809. package/dist/tokens/semantic/ElevationTokens.d.ts +98 -0
  810. package/dist/tokens/semantic/ElevationTokens.js +158 -0
  811. package/dist/tokens/semantic/GridSpacingTokens.d.ts +36 -0
  812. package/dist/tokens/semantic/GridSpacingTokens.js +139 -0
  813. package/dist/tokens/semantic/IconTokens.d.ts +70 -0
  814. package/dist/tokens/semantic/IconTokens.js +309 -0
  815. package/dist/tokens/semantic/LayeringTokens.d.ts +135 -0
  816. package/dist/tokens/semantic/LayeringTokens.js +163 -0
  817. package/dist/tokens/semantic/MotionTokens.d.ts +74 -0
  818. package/dist/tokens/semantic/MotionTokens.js +131 -0
  819. package/dist/tokens/semantic/OpacityTokens.d.ts +40 -0
  820. package/dist/tokens/semantic/OpacityTokens.js +87 -0
  821. package/dist/tokens/semantic/RadiusTokens.d.ts +233 -0
  822. package/dist/tokens/semantic/RadiusTokens.js +224 -0
  823. package/dist/tokens/semantic/ShadowTokens.d.ts +55 -0
  824. package/dist/tokens/semantic/ShadowTokens.js +409 -0
  825. package/dist/tokens/semantic/SpacingTokens.d.ts +397 -0
  826. package/dist/tokens/semantic/SpacingTokens.js +243 -0
  827. package/dist/tokens/semantic/StyleTokens.d.ts +19 -0
  828. package/dist/tokens/semantic/StyleTokens.js +25 -0
  829. package/dist/tokens/semantic/TypographyTokens.d.ts +32 -0
  830. package/dist/tokens/semantic/TypographyTokens.js +376 -0
  831. package/dist/tokens/semantic/ZIndexTokens.d.ts +61 -0
  832. package/dist/tokens/semantic/ZIndexTokens.js +107 -0
  833. package/dist/tokens/semantic/index.d.ts +94 -0
  834. package/dist/tokens/semantic/index.js +547 -0
  835. package/dist/tokens/themes/dark/SemanticOverrides.d.ts +16 -0
  836. package/dist/tokens/themes/dark/SemanticOverrides.js +149 -0
  837. package/dist/tokens/themes/dark-wcag/SemanticOverrides.d.ts +14 -0
  838. package/dist/tokens/themes/dark-wcag/SemanticOverrides.js +21 -0
  839. package/dist/tokens/themes/types.d.ts +22 -0
  840. package/dist/tokens/themes/types.js +10 -0
  841. package/dist/tokens/themes/wcag/SemanticOverrides.d.ts +12 -0
  842. package/dist/tokens/themes/wcag/SemanticOverrides.js +26 -0
  843. package/dist/tools/ThemeFileGenerator.d.ts +16 -0
  844. package/dist/tools/ThemeFileGenerator.js +103 -0
  845. package/dist/tools/integrity/DiskFreshGenerator.d.ts +19 -0
  846. package/dist/tools/integrity/DiskFreshGenerator.js +68 -0
  847. package/dist/tools/integrity/GenerationIntegrityCheck.d.ts +31 -0
  848. package/dist/tools/integrity/GenerationIntegrityCheck.js +137 -0
  849. package/dist/tools/integrity/Invariants.d.ts +82 -0
  850. package/dist/tools/integrity/Invariants.js +231 -0
  851. package/dist/tools/integrity/Normalizer.d.ts +28 -0
  852. package/dist/tools/integrity/Normalizer.js +122 -0
  853. package/dist/tools/integrity/ParityNormalizationRules.d.ts +55 -0
  854. package/dist/tools/integrity/ParityNormalizationRules.js +163 -0
  855. package/dist/tools/integrity/ParityOrchestrator.d.ts +97 -0
  856. package/dist/tools/integrity/ParityOrchestrator.js +234 -0
  857. package/dist/tools/integrity/SemanticComparator.d.ts +24 -0
  858. package/dist/tools/integrity/SemanticComparator.js +108 -0
  859. package/dist/tools/integrity/cli/run-audit.d.ts +21 -0
  860. package/dist/tools/integrity/cli/run-audit.js +178 -0
  861. package/dist/tools/integrity/inventory.d.ts +26 -0
  862. package/dist/tools/integrity/inventory.js +48 -0
  863. package/dist/tools/integrity/manifest.d.ts +44 -0
  864. package/dist/tools/integrity/manifest.js +54 -0
  865. package/dist/tools/integrity/types/index.d.ts +146 -0
  866. package/dist/tools/integrity/types/index.js +21 -0
  867. package/dist/tools/release/cli/ReleasePipeline.d.ts +28 -0
  868. package/dist/tools/release/cli/ReleasePipeline.js +184 -0
  869. package/dist/tools/release/cli/release-tool.d.ts +11 -0
  870. package/dist/tools/release/cli/release-tool.js +98 -0
  871. package/dist/tools/release/pipeline/ChangeClassifier.d.ts +13 -0
  872. package/dist/tools/release/pipeline/ChangeClassifier.js +53 -0
  873. package/dist/tools/release/pipeline/ChangeExtractor.d.ts +16 -0
  874. package/dist/tools/release/pipeline/ChangeExtractor.js +80 -0
  875. package/dist/tools/release/pipeline/NotesRenderer.d.ts +15 -0
  876. package/dist/tools/release/pipeline/NotesRenderer.js +62 -0
  877. package/dist/tools/release/pipeline/SummaryScanner.d.ts +16 -0
  878. package/dist/tools/release/pipeline/SummaryScanner.js +94 -0
  879. package/dist/tools/release/pipeline/TagResolver.d.ts +15 -0
  880. package/dist/tools/release/pipeline/TagResolver.js +37 -0
  881. package/dist/tools/release/pipeline/VersionCalculator.d.ts +34 -0
  882. package/dist/tools/release/pipeline/VersionCalculator.js +325 -0
  883. package/dist/tools/release/publishers/GitHubPublisher.d.ts +33 -0
  884. package/dist/tools/release/publishers/GitHubPublisher.js +239 -0
  885. package/dist/tools/release/publishers/NpmPublisher.d.ts +49 -0
  886. package/dist/tools/release/publishers/NpmPublisher.js +226 -0
  887. package/dist/tools/release/types/index.d.ts +239 -0
  888. package/dist/tools/release/types/index.js +11 -0
  889. package/dist/tools/release/validators/SemanticVersionValidator.d.ts +18 -0
  890. package/dist/tools/release/validators/SemanticVersionValidator.js +56 -0
  891. package/dist/types/ComponentTypes.d.ts +70 -0
  892. package/dist/types/ComponentTypes.js +12 -0
  893. package/dist/types/PrimitiveToken.d.ts +105 -0
  894. package/dist/types/PrimitiveToken.js +38 -0
  895. package/dist/types/SemanticToken.d.ts +79 -0
  896. package/dist/types/SemanticToken.js +27 -0
  897. package/dist/types/TranslationOutput.d.ts +80 -0
  898. package/dist/types/TranslationOutput.js +9 -0
  899. package/dist/types/ValidationResult.d.ts +58 -0
  900. package/dist/types/ValidationResult.js +9 -0
  901. package/dist/types/generated/TokenTypes.d.ts +48 -0
  902. package/dist/types/generated/TokenTypes.js +35 -0
  903. package/dist/types/index.d.ts +15 -0
  904. package/dist/types/index.js +14 -0
  905. package/dist/validators/BaselineGridValidator.d.ts +55 -0
  906. package/dist/validators/BaselineGridValidator.js +96 -0
  907. package/dist/validators/CompositionPatternValidator.d.ts +75 -0
  908. package/dist/validators/CompositionPatternValidator.js +178 -0
  909. package/dist/validators/CrossPlatformConsistencyValidator.d.ts +112 -0
  910. package/dist/validators/CrossPlatformConsistencyValidator.js +313 -0
  911. package/dist/validators/ErrorValidator.d.ts +161 -0
  912. package/dist/validators/ErrorValidator.js +652 -0
  913. package/dist/validators/IValidator.d.ts +260 -0
  914. package/dist/validators/IValidator.js +43 -0
  915. package/dist/validators/MathematicalRelationshipParser.d.ts +112 -0
  916. package/dist/validators/MathematicalRelationshipParser.js +325 -0
  917. package/dist/validators/ModeParity.d.ts +37 -0
  918. package/dist/validators/ModeParity.js +133 -0
  919. package/dist/validators/PassValidator.d.ts +100 -0
  920. package/dist/validators/PassValidator.js +400 -0
  921. package/dist/validators/PlatformConstraintHandler.d.ts +103 -0
  922. package/dist/validators/PlatformConstraintHandler.js +309 -0
  923. package/dist/validators/PrimitiveReferenceValidator.d.ts +68 -0
  924. package/dist/validators/PrimitiveReferenceValidator.js +244 -0
  925. package/dist/validators/SemanticTokenValidator.d.ts +120 -0
  926. package/dist/validators/SemanticTokenValidator.js +382 -0
  927. package/dist/validators/StemmaComponentNamingValidator.d.ts +145 -0
  928. package/dist/validators/StemmaComponentNamingValidator.js +392 -0
  929. package/dist/validators/StemmaErrorGuidanceSystem.d.ts +292 -0
  930. package/dist/validators/StemmaErrorGuidanceSystem.js +1287 -0
  931. package/dist/validators/StemmaPropertyAccessibilityValidator.d.ts +250 -0
  932. package/dist/validators/StemmaPropertyAccessibilityValidator.js +642 -0
  933. package/dist/validators/StemmaTokenUsageValidator.d.ts +135 -0
  934. package/dist/validators/StemmaTokenUsageValidator.js +503 -0
  935. package/dist/validators/SyntaxValidator.d.ts +116 -0
  936. package/dist/validators/SyntaxValidator.js +369 -0
  937. package/dist/validators/ThreeTierValidator.d.ts +289 -0
  938. package/dist/validators/ThreeTierValidator.js +533 -0
  939. package/dist/validators/ToleranceCalculator.d.ts +104 -0
  940. package/dist/validators/ToleranceCalculator.js +222 -0
  941. package/dist/validators/ValidationReasoning.d.ts +104 -0
  942. package/dist/validators/ValidationReasoning.js +307 -0
  943. package/dist/validators/WCAGValidator.d.ts +108 -0
  944. package/dist/validators/WCAGValidator.js +188 -0
  945. package/dist/validators/WarningValidator.d.ts +125 -0
  946. package/dist/validators/WarningValidator.js +383 -0
  947. package/dist/validators/buildValidation.d.ts +34 -0
  948. package/dist/validators/buildValidation.js +135 -0
  949. package/dist/validators/index.d.ts +32 -0
  950. package/dist/validators/index.js +105 -0
  951. package/dist/web/DesignTokens.web.css +929 -0
  952. package/dist/workflows/ConsistencyValidator.d.ts +91 -0
  953. package/dist/workflows/ConsistencyValidator.js +272 -0
  954. package/dist/workflows/TokenGenerationWorkflow.d.ts +129 -0
  955. package/dist/workflows/TokenGenerationWorkflow.js +316 -0
  956. package/dist/workflows/ValidationPipeline.d.ts +103 -0
  957. package/dist/workflows/ValidationPipeline.js +213 -0
  958. package/dist/workflows/WorkflowErrorHandler.d.ts +141 -0
  959. package/dist/workflows/WorkflowErrorHandler.js +357 -0
  960. package/experience-patterns/README.md +160 -0
  961. package/experience-patterns/content-preview.yaml +48 -0
  962. package/experience-patterns/dashboard.yaml +97 -0
  963. package/experience-patterns/empty-state.yaml +50 -0
  964. package/experience-patterns/multi-section-form.yaml +105 -0
  965. package/experience-patterns/notification-list.yaml +109 -0
  966. package/experience-patterns/onboarding.yaml +197 -0
  967. package/experience-patterns/settings.yaml +98 -0
  968. package/experience-patterns/simple-form.yaml +41 -0
  969. package/experience-patterns/view-edit-screen.yaml +125 -0
  970. package/family-guidance/README.md +115 -0
  971. package/family-guidance/avatars.yaml +63 -0
  972. package/family-guidance/badges.yaml +76 -0
  973. package/family-guidance/button.yaml +108 -0
  974. package/family-guidance/chips.yaml +82 -0
  975. package/family-guidance/container.yaml +69 -0
  976. package/family-guidance/form-inputs.yaml +104 -0
  977. package/family-guidance/icons.yaml +87 -0
  978. package/family-guidance/navigation.yaml +96 -0
  979. package/family-guidance/progress.yaml +85 -0
  980. package/family-registry.yaml +49 -0
  981. package/governance/AI-Collaboration-Framework.md +305 -0
  982. package/governance/BUILD-SYSTEM-SETUP.md +233 -0
  983. package/governance/Component-Development-Guide.md +1876 -0
  984. package/governance/Component-Development-Standards.md +1189 -0
  985. package/governance/Component-Family-Avatar.md +290 -0
  986. package/governance/Component-Family-Badge.md +479 -0
  987. package/governance/Component-Family-Button.md +671 -0
  988. package/governance/Component-Family-Chip.md +431 -0
  989. package/governance/Component-Family-Container.md +671 -0
  990. package/governance/Component-Family-Data-Display.md +149 -0
  991. package/governance/Component-Family-Divider.md +138 -0
  992. package/governance/Component-Family-Form-Inputs.md +1365 -0
  993. package/governance/Component-Family-Icon.md +364 -0
  994. package/governance/Component-Family-Loading.md +143 -0
  995. package/governance/Component-Family-Modal.md +151 -0
  996. package/governance/Component-Family-Navigation.md +266 -0
  997. package/governance/Component-Family-Progress.md +488 -0
  998. package/governance/Component-Inheritance-Structures.md +687 -0
  999. package/governance/Component-MCP-Document-Template.md +722 -0
  1000. package/governance/Component-Meta-Data-Shapes-Governance.md +120 -0
  1001. package/governance/Component-Primitive-vs-Semantic-Philosophy.md +404 -0
  1002. package/governance/Component-Quick-Reference.md +304 -0
  1003. package/governance/Component-Readiness-Status.md +660 -0
  1004. package/governance/Component-Schema-Format.md +379 -0
  1005. package/governance/Component-Templates.md +1118 -0
  1006. package/governance/Contract-System-Reference.md +255 -0
  1007. package/governance/DTCG-Integration-Guide.md +573 -0
  1008. package/governance/DesignerPunk-Integration-Guide.md +1005 -0
  1009. package/governance/Figma-Workflow-Guide.md +479 -0
  1010. package/governance/Layout-Specification-Vocabulary.md +550 -0
  1011. package/governance/MCP-Evolution-Roadmap.md +228 -0
  1012. package/governance/MCP-Integration-Guide.md +509 -0
  1013. package/governance/MCP-Relationship-Model.md +363 -0
  1014. package/governance/Platform-Resource-Map.md +70 -0
  1015. package/governance/Process-Cross-Reference-Standards.md +665 -0
  1016. package/governance/Process-Development-Workflow.md +310 -0
  1017. package/governance/Process-File-Organization.md +693 -0
  1018. package/governance/Process-Hook-Operations.md +1196 -0
  1019. package/governance/Process-Integration-Methodology.md +142 -0
  1020. package/governance/Process-Spec-Planning.md +2988 -0
  1021. package/governance/Process-Task-Type-Definitions.md +378 -0
  1022. package/governance/Product-Handoff-Protocol.md +258 -0
  1023. package/governance/Product-Token-Governance.md +307 -0
  1024. package/governance/Rosetta-System-Architecture.md +648 -0
  1025. package/governance/Steering-Addressing-Conventions.md +105 -0
  1026. package/governance/Test-Behavioral-Contract-Validation.md +638 -0
  1027. package/governance/Test-Development-Standards.md +2094 -0
  1028. package/governance/Test-Failure-Audit-Methodology.md +1475 -0
  1029. package/governance/Token-Family-Accessibility.md +656 -0
  1030. package/governance/Token-Family-Blend.md +503 -0
  1031. package/governance/Token-Family-Blur.md +115 -0
  1032. package/governance/Token-Family-Border.md +477 -0
  1033. package/governance/Token-Family-Color.md +317 -0
  1034. package/governance/Token-Family-Glow.md +473 -0
  1035. package/governance/Token-Family-Layering.md +685 -0
  1036. package/governance/Token-Family-Motion.md +690 -0
  1037. package/governance/Token-Family-Opacity.md +578 -0
  1038. package/governance/Token-Family-Radius.md +428 -0
  1039. package/governance/Token-Family-Responsive.md +798 -0
  1040. package/governance/Token-Family-Shadow.md +758 -0
  1041. package/governance/Token-Family-Sizing.md +102 -0
  1042. package/governance/Token-Family-Spacing.md +632 -0
  1043. package/governance/Token-Family-Typography.md +598 -0
  1044. package/governance/Token-Governance.md +658 -0
  1045. package/governance/Token-Quick-Reference.md +382 -0
  1046. package/governance/Token-Resolution-Patterns.md +537 -0
  1047. package/governance/Token-Semantic-Structure.md +776 -0
  1048. package/governance/Transformer-Development-Guide.md +490 -0
  1049. package/governance/Web-Authoring-Standards.md +403 -0
  1050. package/governance/a-vision-of-the-future.md +686 -0
  1051. package/governance/browser-distribution-guide.md +580 -0
  1052. package/governance/completion-documentation-guide.md +371 -0
  1053. package/governance/component-mcp-query-guide.md +500 -0
  1054. package/governance/component-meta-authoring-guide.md +235 -0
  1055. package/governance/component-metadata-schema-reference.md +227 -0
  1056. package/governance/cross-platform-vs-platform-specific-decision-framework.md +355 -0
  1057. package/governance/platform-implementation-guidelines.md +818 -0
  1058. package/governance/release-management-system.md +89 -0
  1059. package/governance/rosetta-system-principles.md +593 -0
  1060. package/governance/stemma-system-principles.md +900 -0
  1061. package/governance/technology-stack.md +97 -0
  1062. package/layout-templates/centered-content-page.yaml +26 -0
  1063. package/layout-templates/full-width-page.yaml +24 -0
  1064. package/layout-templates/multi-zone-page.yaml +56 -0
  1065. package/layout-templates/sidebar-page.yaml +41 -0
  1066. package/mcp-server/package.json +33 -0
  1067. package/mcp-server/src/discovery-dry-run/__tests__/discovery-dry-run.test.ts +210 -0
  1068. package/mcp-server/src/discovery-dry-run/discovery-dry-run.ts +224 -0
  1069. package/mcp-server/src/id-guard/__tests__/backfill-doc-ids.test.ts +123 -0
  1070. package/mcp-server/src/id-guard/__tests__/check-id-uniqueness.test.ts +138 -0
  1071. package/mcp-server/src/id-guard/backfill-doc-ids.ts +180 -0
  1072. package/mcp-server/src/id-guard/check-id-uniqueness.ts +165 -0
  1073. package/mcp-server/src/id-guard/manifest-consistency.ts +77 -0
  1074. package/mcp-server/src/index.ts +439 -0
  1075. package/mcp-server/src/indexer/DocumentIndexer.ts +808 -0
  1076. package/mcp-server/src/indexer/__tests__/DocumentIndexer.resolver.test.ts +298 -0
  1077. package/mcp-server/src/indexer/__tests__/DocumentIndexer.test.ts +682 -0
  1078. package/mcp-server/src/indexer/__tests__/conditional-filter.test.ts +367 -0
  1079. package/mcp-server/src/indexer/__tests__/cross-ref-parser.test.ts +331 -0
  1080. package/mcp-server/src/indexer/__tests__/frontmatter-parser.test.ts +192 -0
  1081. package/mcp-server/src/indexer/__tests__/heading-parser.test.ts +227 -0
  1082. package/mcp-server/src/indexer/__tests__/index-health.test.ts +393 -0
  1083. package/mcp-server/src/indexer/__tests__/metadata-parser.test.ts +234 -0
  1084. package/mcp-server/src/indexer/__tests__/section-parser.test.ts +494 -0
  1085. package/mcp-server/src/indexer/conditional-filter.ts +282 -0
  1086. package/mcp-server/src/indexer/cross-ref-parser.ts +65 -0
  1087. package/mcp-server/src/indexer/frontmatter-parser.ts +192 -0
  1088. package/mcp-server/src/indexer/heading-parser.ts +65 -0
  1089. package/mcp-server/src/indexer/index-health.ts +228 -0
  1090. package/mcp-server/src/indexer/metadata-parser.ts +81 -0
  1091. package/mcp-server/src/indexer/section-parser.ts +296 -0
  1092. package/mcp-server/src/legacy-path/__tests__/generate-manifest.test.ts +188 -0
  1093. package/mcp-server/src/legacy-path/__tests__/reseed-integration.test.ts +113 -0
  1094. package/mcp-server/src/legacy-path/generate-manifest.ts +214 -0
  1095. package/mcp-server/src/legacy-path/index.ts +48 -0
  1096. package/mcp-server/src/legacy-path/legacy-path-manifest.ts +160 -0
  1097. package/mcp-server/src/models/CrossReference.ts +19 -0
  1098. package/mcp-server/src/models/DocumentFull.ts +26 -0
  1099. package/mcp-server/src/models/DocumentSummary.ts +53 -0
  1100. package/mcp-server/src/models/DocumentationMap.ts +90 -0
  1101. package/mcp-server/src/models/IndexHealth.ts +44 -0
  1102. package/mcp-server/src/models/LegacyPathManifest.ts +37 -0
  1103. package/mcp-server/src/models/MetadataValidation.ts +30 -0
  1104. package/mcp-server/src/models/Section.ts +38 -0
  1105. package/mcp-server/src/models/index.ts +14 -0
  1106. package/mcp-server/src/query/QueryEngine.ts +860 -0
  1107. package/mcp-server/src/query/__tests__/QueryEngine.test.ts +438 -0
  1108. package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +406 -0
  1109. package/mcp-server/src/query/__tests__/find-docs-rubric.test.ts +227 -0
  1110. package/mcp-server/src/query/__tests__/stop-words.test.ts +40 -0
  1111. package/mcp-server/src/query/stop-words.ts +74 -0
  1112. package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +236 -0
  1113. package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +637 -0
  1114. package/mcp-server/src/rules/workflow-rules.ts +105 -0
  1115. package/mcp-server/src/staleness/StalenessGate.ts +112 -0
  1116. package/mcp-server/src/staleness/__tests__/StalenessGate.test.ts +214 -0
  1117. package/mcp-server/src/tools/__tests__/get-document-full.test.ts +256 -0
  1118. package/mcp-server/src/tools/__tests__/get-document-summary.test.ts +273 -0
  1119. package/mcp-server/src/tools/__tests__/get-documentation-map.test.ts +357 -0
  1120. package/mcp-server/src/tools/__tests__/get-health-status.test.ts +223 -0
  1121. package/mcp-server/src/tools/__tests__/get-index-health.test.ts +184 -0
  1122. package/mcp-server/src/tools/__tests__/get-section.test.ts +457 -0
  1123. package/mcp-server/src/tools/__tests__/list-cross-references.test.ts +279 -0
  1124. package/mcp-server/src/tools/__tests__/rebuild-index.test.ts +214 -0
  1125. package/mcp-server/src/tools/__tests__/validate-metadata.test.ts +296 -0
  1126. package/mcp-server/src/tools/find-docs.ts +154 -0
  1127. package/mcp-server/src/tools/get-document-full.ts +165 -0
  1128. package/mcp-server/src/tools/get-document-summary.ts +198 -0
  1129. package/mcp-server/src/tools/get-health-status.ts +137 -0
  1130. package/mcp-server/src/tools/get-index-health.ts +100 -0
  1131. package/mcp-server/src/tools/get-section.ts +308 -0
  1132. package/mcp-server/src/tools/index.ts +106 -0
  1133. package/mcp-server/src/tools/list-cross-references.ts +167 -0
  1134. package/mcp-server/src/tools/rebuild-index.ts +101 -0
  1135. package/mcp-server/src/tools/validate-metadata.ts +167 -0
  1136. package/mcp-server/src/utils/__tests__/error-handler.test.ts +256 -0
  1137. package/mcp-server/src/utils/__tests__/token-estimator.test.ts +87 -0
  1138. package/mcp-server/src/utils/error-handler.ts +261 -0
  1139. package/mcp-server/src/utils/token-estimator.ts +35 -0
  1140. package/mcp-server/src/watcher/FileWatcher.ts +156 -0
  1141. package/mcp-server/src/watcher/__tests__/FileWatcher.test.ts +293 -0
  1142. package/mcp-server/src/watcher/index.ts +1 -0
  1143. package/mcp-server/tsconfig.json +24 -0
  1144. package/package.json +167 -0
  1145. package/product-template/agents/README.md +73 -0
  1146. package/product-template/agents/ada-prompt.md +83 -0
  1147. package/product-template/agents/data-prompt.md +74 -0
  1148. package/product-template/agents/kenya-prompt.md +74 -0
  1149. package/product-template/agents/leonardo-prompt.md +99 -0
  1150. package/product-template/agents/lina-prompt.md +61 -0
  1151. package/product-template/agents/sparky-prompt.md +66 -0
  1152. package/product-template/agents/stacy-prompt.md +51 -0
  1153. package/product-template/agents/thurgood-prompt.md +64 -0
  1154. package/src/TokenEngine.ts +628 -0
  1155. package/src/__tests__/BuildSystemIntegration.test.ts +485 -0
  1156. package/src/__tests__/ProductMCPIntegration.test.ts +204 -0
  1157. package/src/__tests__/__mocks__/styleMock.js +18 -0
  1158. package/src/__tests__/browser-distribution/build-error-handling.test.ts +143 -0
  1159. package/src/__tests__/browser-distribution/bundle-loading.test.ts +353 -0
  1160. package/src/__tests__/browser-distribution/bundler-resolution.test.ts +223 -0
  1161. package/src/__tests__/browser-distribution/component-registration.test.ts +217 -0
  1162. package/src/__tests__/browser-distribution/css-bundling.test.ts +231 -0
  1163. package/src/__tests__/browser-distribution/demo-system.test.ts +588 -0
  1164. package/src/__tests__/browser-distribution/mcp-format-compliance.property.test.ts +379 -0
  1165. package/src/__tests__/browser-distribution/mcp-queryability.test.ts +342 -0
  1166. package/src/__tests__/browser-distribution/minification-effectiveness.property.test.ts +188 -0
  1167. package/src/__tests__/browser-distribution/registration-idempotency.property.test.ts +372 -0
  1168. package/src/__tests__/browser-distribution/soft-ceiling-warning.test.ts +161 -0
  1169. package/src/__tests__/browser-distribution/token-completeness.property.test.ts +412 -0
  1170. package/src/__tests__/browser-distribution/token-loading.test.ts +344 -0
  1171. package/src/__tests__/browser-distribution/umd-bundle-loading.test.ts +169 -0
  1172. package/src/__tests__/examples/improved-test-example.test.ts +120 -0
  1173. package/src/__tests__/expected-exports.json +66 -0
  1174. package/src/__tests__/export-contracts.test.ts +83 -0
  1175. package/src/__tests__/fixtures/acknowledged-differences.json +127 -0
  1176. package/src/__tests__/fixtures/acknowledged-differences.schema.json +113 -0
  1177. package/src/__tests__/fixtures/acknowledged-differences.types.ts +230 -0
  1178. package/src/__tests__/fixtures/tokenFixtures.ts +248 -0
  1179. package/src/__tests__/helpers/configModuleLoader.ts +20 -0
  1180. package/src/__tests__/helpers/tsModuleLoader.ts +24 -0
  1181. package/src/__tests__/helpers/web-component-test-utils.ts +39 -0
  1182. package/src/__tests__/integration/BlendCrossPlatformConsistency.test.ts +505 -0
  1183. package/src/__tests__/integration/BuildSystemCompatibility.test.ts +551 -0
  1184. package/src/__tests__/integration/CrossPlatformConsistency.test.ts +855 -0
  1185. package/src/__tests__/integration/EndToEndWorkflow.test.ts +601 -0
  1186. package/src/__tests__/integration/ErrorHandling.test.ts +459 -0
  1187. package/src/__tests__/integration/OpacityPlatformTranslation.test.ts +364 -0
  1188. package/src/__tests__/integration/PerformanceValidation.test.ts +887 -0
  1189. package/src/__tests__/integration/SemanticTokenGeneration.test.ts +451 -0
  1190. package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +123 -0
  1191. package/src/__tests__/integration/TokenSystemIntegration.test.ts +890 -0
  1192. package/src/__tests__/integration/ValidationPipeline.test.ts +404 -0
  1193. package/src/__tests__/package-drift-validation.test.ts +249 -0
  1194. package/src/__tests__/performance/GenerationPerformance.test.ts +409 -0
  1195. package/src/__tests__/performance/OptimizationValidation.test.ts +509 -0
  1196. package/src/__tests__/platform-parity/ProgressPlatformParity.test.ts +546 -0
  1197. package/src/__tests__/spec073-opacity-architecture.test.ts +344 -0
  1198. package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +467 -0
  1199. package/src/__tests__/stemma-system/composition-compliance-validation.test.ts +162 -0
  1200. package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +156 -0
  1201. package/src/__tests__/stemma-system/contract-existence-validation.test.ts +43 -0
  1202. package/src/__tests__/stemma-system/contract-test-reporter.ts +269 -0
  1203. package/src/__tests__/stemma-system/cross-platform-consistency.test.ts +564 -0
  1204. package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +503 -0
  1205. package/src/__tests__/stemma-system/mcp-component-integration.test.ts +445 -0
  1206. package/src/analytics/PrimitiveTokenFallbackTracker.ts +228 -0
  1207. package/src/analytics/SemanticTokenUsageTracker.ts +193 -0
  1208. package/src/analytics/StrategicFlexibilityTracker.ts +226 -0
  1209. package/src/analytics/TokenUsageTracker.ts +177 -0
  1210. package/src/analytics/UsagePatternAnalyzer.ts +177 -0
  1211. package/src/analytics/__tests__/UsageTracking.test.ts +647 -0
  1212. package/src/analytics/index.ts +42 -0
  1213. package/src/assets/fonts/__tests__/androidFontLoadingValidation.test.ts +600 -0
  1214. package/src/assets/fonts/__tests__/fontLoading.test.ts +341 -0
  1215. package/src/assets/fonts/__tests__/iosFontConfiguration.test.ts +256 -0
  1216. package/src/assets/fonts/__tests__/iosFontLoadingValidation.test.ts +465 -0
  1217. package/src/assets/fonts/commit-mono/CommitMono-400-Italic.otf +0 -0
  1218. package/src/assets/fonts/commit-mono/CommitMono-400-Regular.otf +0 -0
  1219. package/src/assets/fonts/commit-mono/CommitMono-700-Italic.otf +0 -0
  1220. package/src/assets/fonts/commit-mono/CommitMono-700-Regular.otf +0 -0
  1221. package/src/assets/fonts/commit-mono/commit-mono.css +45 -0
  1222. package/src/assets/fonts/commit-mono/custom-settings.json +1 -0
  1223. package/src/assets/fonts/commit-mono/installation.txt +11 -0
  1224. package/src/assets/fonts/commit-mono/license.txt +92 -0
  1225. package/src/assets/fonts/figtree/Figtree-Italic-VariableFont_wght.ttf +0 -0
  1226. package/src/assets/fonts/figtree/Figtree-VariableFont_wght.ttf +0 -0
  1227. package/src/assets/fonts/figtree/OFL.txt +93 -0
  1228. package/src/assets/fonts/figtree/README.txt +77 -0
  1229. package/src/assets/fonts/figtree/figtree.css +27 -0
  1230. package/src/assets/fonts/figtree/static/Figtree-Black.ttf +0 -0
  1231. package/src/assets/fonts/figtree/static/Figtree-BlackItalic.ttf +0 -0
  1232. package/src/assets/fonts/figtree/static/Figtree-Bold.ttf +0 -0
  1233. package/src/assets/fonts/figtree/static/Figtree-BoldItalic.ttf +0 -0
  1234. package/src/assets/fonts/figtree/static/Figtree-ExtraBold.ttf +0 -0
  1235. package/src/assets/fonts/figtree/static/Figtree-ExtraBoldItalic.ttf +0 -0
  1236. package/src/assets/fonts/figtree/static/Figtree-Italic.ttf +0 -0
  1237. package/src/assets/fonts/figtree/static/Figtree-Light.ttf +0 -0
  1238. package/src/assets/fonts/figtree/static/Figtree-LightItalic.ttf +0 -0
  1239. package/src/assets/fonts/figtree/static/Figtree-Medium.ttf +0 -0
  1240. package/src/assets/fonts/figtree/static/Figtree-MediumItalic.ttf +0 -0
  1241. package/src/assets/fonts/figtree/static/Figtree-Regular.ttf +0 -0
  1242. package/src/assets/fonts/figtree/static/Figtree-SemiBold.ttf +0 -0
  1243. package/src/assets/fonts/figtree/static/Figtree-SemiBoldItalic.ttf +0 -0
  1244. package/src/assets/fonts/inter/Inter-Bold.ttf +0 -0
  1245. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  1246. package/src/assets/fonts/inter/Inter-Medium.ttf +0 -0
  1247. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  1248. package/src/assets/fonts/inter/Inter-Regular.ttf +0 -0
  1249. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  1250. package/src/assets/fonts/inter/Inter-SemiBold.ttf +0 -0
  1251. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  1252. package/src/assets/fonts/inter/inter.css +49 -0
  1253. package/src/assets/fonts/rajdhani/OFL.txt +91 -0
  1254. package/src/assets/fonts/rajdhani/Rajdhani-Bold.ttf +0 -0
  1255. package/src/assets/fonts/rajdhani/Rajdhani-Bold.woff +0 -0
  1256. package/src/assets/fonts/rajdhani/Rajdhani-Bold.woff2 +0 -0
  1257. package/src/assets/fonts/rajdhani/Rajdhani-Light.ttf +0 -0
  1258. package/src/assets/fonts/rajdhani/Rajdhani-Medium.ttf +0 -0
  1259. package/src/assets/fonts/rajdhani/Rajdhani-Medium.woff +0 -0
  1260. package/src/assets/fonts/rajdhani/Rajdhani-Medium.woff2 +0 -0
  1261. package/src/assets/fonts/rajdhani/Rajdhani-Regular.ttf +0 -0
  1262. package/src/assets/fonts/rajdhani/Rajdhani-Regular.woff +0 -0
  1263. package/src/assets/fonts/rajdhani/Rajdhani-Regular.woff2 +0 -0
  1264. package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.ttf +0 -0
  1265. package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.woff +0 -0
  1266. package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.woff2 +0 -0
  1267. package/src/assets/fonts/rajdhani/rajdhani.css +53 -0
  1268. package/src/blend/BlendCalculator.ts +120 -0
  1269. package/src/blend/ColorSpaceUtils.ts +325 -0
  1270. package/src/blend/OklchBlendCalculator.ts +79 -0
  1271. package/src/blend/ThemeAwareBlendUtilities.android.kt +367 -0
  1272. package/src/blend/ThemeAwareBlendUtilities.ios.swift +325 -0
  1273. package/src/blend/ThemeAwareBlendUtilities.web.ts +315 -0
  1274. package/src/blend/__tests__/BlendCalculator.test.ts +393 -0
  1275. package/src/blend/__tests__/BlendUtilities.property.test.ts +600 -0
  1276. package/src/blend/__tests__/ColorSpaceUtils.test.ts +885 -0
  1277. package/src/blend/__tests__/InteractionStateAudit.test.ts +235 -0
  1278. package/src/blend/__tests__/OklchBlendCalculator.test.ts +134 -0
  1279. package/src/blend/__tests__/ThemeAwareBlendUtilities.test.ts +200 -0
  1280. package/src/blend/__tests__/ThemeSwitching.test.ts +508 -0
  1281. package/src/blend/index.ts +37 -0
  1282. package/src/browser-entry.ts +270 -0
  1283. package/src/build/.gitkeep +1 -0
  1284. package/src/build/BuildOrchestrator.ts +663 -0
  1285. package/src/build/__tests__/AndroidBuildIntegration.test.ts +437 -0
  1286. package/src/build/__tests__/AndroidMotionTokenGeneration.test.ts +256 -0
  1287. package/src/build/__tests__/BuildOrchestrator.test.ts +562 -0
  1288. package/src/build/__tests__/MotionTokenCrossPlatformIntegration.test.ts +424 -0
  1289. package/src/build/__tests__/WebCSSTokenGeneration.test.ts +271 -0
  1290. package/src/build/__tests__/WebMotionTokenGeneration.test.ts +305 -0
  1291. package/src/build/__tests__/WebNPMPackageStructure.test.ts +447 -0
  1292. package/src/build/__tests__/iOSMotionTokenGeneration.test.ts +298 -0
  1293. package/src/build/errors/BuildError.ts +140 -0
  1294. package/src/build/errors/ErrorDocumentation.ts +638 -0
  1295. package/src/build/errors/ErrorHandler.ts +406 -0
  1296. package/src/build/errors/ErrorReporter.ts +573 -0
  1297. package/src/build/errors/PlatformGenerationError.ts +201 -0
  1298. package/src/build/errors/README.md +486 -0
  1299. package/src/build/errors/RecoveryStrategy.ts +393 -0
  1300. package/src/build/errors/TokenGenerationError.ts +196 -0
  1301. package/src/build/errors/TokenReferenceError.ts +204 -0
  1302. package/src/build/errors/__tests__/BuildError.test.ts +212 -0
  1303. package/src/build/errors/__tests__/ErrorDocumentation.example.ts +272 -0
  1304. package/src/build/errors/__tests__/ErrorDocumentation.test.ts +458 -0
  1305. package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +295 -0
  1306. package/src/build/errors/__tests__/ErrorHandler.test.ts +497 -0
  1307. package/src/build/errors/__tests__/ErrorReporter.test.ts +581 -0
  1308. package/src/build/errors/__tests__/MotionTokenErrors.test.ts +392 -0
  1309. package/src/build/errors/__tests__/RecoveryStrategy.test.ts +643 -0
  1310. package/src/build/errors/index.ts +90 -0
  1311. package/src/build/index.ts +73 -0
  1312. package/src/build/orchestration/IncrementalBuilder.ts +532 -0
  1313. package/src/build/orchestration/ParallelExecutor.ts +336 -0
  1314. package/src/build/orchestration/ProgressTracker.ts +582 -0
  1315. package/src/build/orchestration/SequentialExecutor.ts +305 -0
  1316. package/src/build/orchestration/__tests__/IncrementalBuilder.test.ts +354 -0
  1317. package/src/build/orchestration/__tests__/ParallelExecutor.integration.test.ts +295 -0
  1318. package/src/build/orchestration/__tests__/ParallelExecutor.test.ts +493 -0
  1319. package/src/build/orchestration/__tests__/ProgressTracker.test.ts +529 -0
  1320. package/src/build/orchestration/__tests__/SequentialExecutor.integration.test.ts +202 -0
  1321. package/src/build/orchestration/__tests__/SequentialExecutor.test.ts +232 -0
  1322. package/src/build/orchestration/index.ts +35 -0
  1323. package/src/build/platforms/.gitkeep +1 -0
  1324. package/src/build/platforms/AndroidBuilder.ts +1366 -0
  1325. package/src/build/platforms/AndroidShadowGenerator.ts +394 -0
  1326. package/src/build/platforms/IOSShadowGenerator.ts +324 -0
  1327. package/src/build/platforms/PlatformBuilder.ts +131 -0
  1328. package/src/build/platforms/WebBuilder.ts +1414 -0
  1329. package/src/build/platforms/WebShadowGenerator.ts +288 -0
  1330. package/src/build/platforms/__tests__/AndroidBuilder.tokenGeneration.test.ts +146 -0
  1331. package/src/build/platforms/__tests__/AndroidShadowGenerator.test.ts +195 -0
  1332. package/src/build/platforms/__tests__/IOSShadowGenerator.test.ts +156 -0
  1333. package/src/build/platforms/__tests__/WebShadowGenerator.test.ts +123 -0
  1334. package/src/build/platforms/__tests__/iOSBuilder.test.ts +1599 -0
  1335. package/src/build/platforms/iOSBuilder.ts +1746 -0
  1336. package/src/build/platforms/index.ts +9 -0
  1337. package/src/build/product/ProductTokenGenerator.ts +162 -0
  1338. package/src/build/product/TokenIndexReader.ts +78 -0
  1339. package/src/build/product/__tests__/KotlinEmitter.test.ts +109 -0
  1340. package/src/build/product/__tests__/ProductTokenGenerator.test.ts +135 -0
  1341. package/src/build/product/__tests__/SwiftEmitter.test.ts +90 -0
  1342. package/src/build/product/__tests__/TokenIndexReader.test.ts +85 -0
  1343. package/src/build/product/__tests__/WebEmitter.test.ts +111 -0
  1344. package/src/build/product/__tests__/fixtures/tokens/layout.yaml +21 -0
  1345. package/src/build/product/__tests__/fixtures/tokens/motion.yaml +11 -0
  1346. package/src/build/product/__tests__/fixtures/tokens/visualization.yaml +8 -0
  1347. package/src/build/product/emitters/KotlinEmitter.ts +83 -0
  1348. package/src/build/product/emitters/SwiftEmitter.ts +95 -0
  1349. package/src/build/product/emitters/WebEmitter.ts +69 -0
  1350. package/src/build/tokens/.gitkeep +1 -0
  1351. package/src/build/tokens/ComponentToken.ts +285 -0
  1352. package/src/build/tokens/ComponentTokenGenerator.ts +376 -0
  1353. package/src/build/tokens/PlatformTokens.ts +188 -0
  1354. package/src/build/tokens/TokenIntegrator.ts +410 -0
  1355. package/src/build/tokens/TokenSelection.ts +130 -0
  1356. package/src/build/tokens/TokenSelector.ts +394 -0
  1357. package/src/build/tokens/UnitConverter.ts +320 -0
  1358. package/src/build/tokens/__tests__/ClassInvariantGuard.test.ts +167 -0
  1359. package/src/build/tokens/__tests__/ComponentTokenGenerator.test.ts +285 -0
  1360. package/src/build/tokens/__tests__/TokenIntegrator.test.ts +319 -0
  1361. package/src/build/tokens/__tests__/TokenSelector.test.ts +264 -0
  1362. package/src/build/tokens/__tests__/UnitConverter.applyScaleWithRounding.test.ts +160 -0
  1363. package/src/build/tokens/__tests__/UnitConverter.test.ts +331 -0
  1364. package/src/build/tokens/__tests__/brand-dual-instance.test.ts +135 -0
  1365. package/src/build/tokens/__tests__/defineComponentTokens.test.ts +440 -0
  1366. package/src/build/tokens/defineComponentTokens.ts +286 -0
  1367. package/src/build/tokens/index.ts +44 -0
  1368. package/src/build/tokens/types.ts +26 -0
  1369. package/src/build/types/.gitkeep +1 -0
  1370. package/src/build/types/BuildConfig.ts +123 -0
  1371. package/src/build/types/BuildOrchestrator.ts +114 -0
  1372. package/src/build/types/BuildResult.ts +125 -0
  1373. package/src/build/types/Platform.ts +49 -0
  1374. package/src/build/types/index.ts +39 -0
  1375. package/src/build/validation/.gitkeep +1 -0
  1376. package/src/build/validation/AndroidBuildValidator.ts +630 -0
  1377. package/src/build/validation/CrossPlatformValidationReporter.ts +1267 -0
  1378. package/src/build/validation/InterfaceContractValidator.ts +417 -0
  1379. package/src/build/validation/InterfaceValidator.ts +326 -0
  1380. package/src/build/validation/MathematicalConsistencyValidator.ts +874 -0
  1381. package/src/build/validation/MethodSignatureValidator.ts +374 -0
  1382. package/src/build/validation/PropertyTypeValidator.ts +312 -0
  1383. package/src/build/validation/TokenComparator.ts +796 -0
  1384. package/src/build/validation/ValidationReporter.example.ts +310 -0
  1385. package/src/build/validation/ValidationReporter.ts +745 -0
  1386. package/src/build/validation/WebBuildValidator.ts +583 -0
  1387. package/src/build/validation/__tests__/AndroidBuildValidator.test.ts +522 -0
  1388. package/src/build/validation/__tests__/CrossPlatformValidationReporter.test.ts +593 -0
  1389. package/src/build/validation/__tests__/InterfaceContractValidator.test.ts +647 -0
  1390. package/src/build/validation/__tests__/InterfaceValidation.functional.test.ts +360 -0
  1391. package/src/build/validation/__tests__/InterfaceValidator.test.ts +318 -0
  1392. package/src/build/validation/__tests__/MethodSignatureValidator.test.ts +625 -0
  1393. package/src/build/validation/__tests__/MotionTokenCrossPlatformValidation.test.ts +305 -0
  1394. package/src/build/validation/__tests__/MotionTokenValidation.test.ts +309 -0
  1395. package/src/build/validation/__tests__/PropertyTypeValidator.test.ts +557 -0
  1396. package/src/build/validation/__tests__/TokenComparator.test.ts +358 -0
  1397. package/src/build/validation/__tests__/ValidationReporter.integration.test.ts +424 -0
  1398. package/src/build/validation/__tests__/ValidationReporter.test.ts +793 -0
  1399. package/src/build/validation/__tests__/WebBuildValidator.test.ts +495 -0
  1400. package/src/build/validation/iOSBuildValidator.ts +783 -0
  1401. package/src/build/validation/index.ts +74 -0
  1402. package/src/build/validation/types/InterfaceDefinition.ts +101 -0
  1403. package/src/build/validation/types/ValidationResult.ts +114 -0
  1404. package/src/build/workflow/BuildMode.ts +336 -0
  1405. package/src/build/workflow/CICDIntegration.ts +503 -0
  1406. package/src/build/workflow/ConfigHelpers.example.ts +317 -0
  1407. package/src/build/workflow/ConfigHelpers.ts +834 -0
  1408. package/src/build/workflow/README.md +327 -0
  1409. package/src/build/workflow/SourceMapGenerator.ts +362 -0
  1410. package/src/build/workflow/__tests__/BuildMode.test.ts +544 -0
  1411. package/src/build/workflow/__tests__/CICDIntegration.test.ts +591 -0
  1412. package/src/build/workflow/__tests__/ConfigHelpers.test.ts +559 -0
  1413. package/src/build/workflow/__tests__/SourceMapGenerator.test.ts +421 -0
  1414. package/src/build/workflow/index.ts +42 -0
  1415. package/src/cli/__tests__/Applier.test.ts +202 -0
  1416. package/src/cli/__tests__/Classifier.test.ts +187 -0
  1417. package/src/cli/__tests__/FileScanner.test.ts +108 -0
  1418. package/src/cli/__tests__/IgnoreFilter.test.ts +92 -0
  1419. package/src/cli/__tests__/Manifest.test.ts +107 -0
  1420. package/src/cli/__tests__/PackageResolver.test.ts +66 -0
  1421. package/src/cli/__tests__/Prompter.test.ts +165 -0
  1422. package/src/cli/__tests__/Reporter.test.ts +128 -0
  1423. package/src/cli/__tests__/backward-compat.test.ts +142 -0
  1424. package/src/cli/__tests__/figma-extract.test.ts +342 -0
  1425. package/src/cli/__tests__/figma-push.test.ts +350 -0
  1426. package/src/cli/__tests__/init.test.ts +259 -0
  1427. package/src/cli/__tests__/loadComponentTokens.test.ts +187 -0
  1428. package/src/cli/__tests__/pipeline-independence.test.ts +127 -0
  1429. package/src/cli/__tests__/product-only.test.ts +130 -0
  1430. package/src/cli/__tests__/resolveTokens.test.ts +88 -0
  1431. package/src/cli/__tests__/staleness.test.ts +132 -0
  1432. package/src/cli/__tests__/sync.test.ts +199 -0
  1433. package/src/cli/__tests__/validate.test.ts +69 -0
  1434. package/src/cli/designerpunk.ts +410 -0
  1435. package/src/cli/figma-extract.ts +331 -0
  1436. package/src/cli/figma-push.ts +288 -0
  1437. package/src/cli/generateProductTokens.ts +69 -0
  1438. package/src/cli/init.ts +481 -0
  1439. package/src/cli/loadComponentTokens.ts +145 -0
  1440. package/src/cli/resolveTokens.ts +123 -0
  1441. package/src/cli/shared/mcpDataRoots.ts +122 -0
  1442. package/src/cli/shared/resolvePackageRoot.ts +58 -0
  1443. package/src/cli/shared/transforms.ts +18 -0
  1444. package/src/cli/staleness.ts +81 -0
  1445. package/src/cli/sync/Applier.ts +128 -0
  1446. package/src/cli/sync/Classifier.ts +130 -0
  1447. package/src/cli/sync/FileScanner.ts +64 -0
  1448. package/src/cli/sync/IgnoreFilter.ts +44 -0
  1449. package/src/cli/sync/Manifest.ts +64 -0
  1450. package/src/cli/sync/PackageResolver.ts +40 -0
  1451. package/src/cli/sync/Prompter.ts +173 -0
  1452. package/src/cli/sync/Reporter.ts +78 -0
  1453. package/src/cli/sync/SteeringDirCheck.ts +166 -0
  1454. package/src/cli/sync/index.ts +115 -0
  1455. package/src/cli/templates/mcp-config.json.template +46 -0
  1456. package/src/cli/validate.ts +135 -0
  1457. package/src/cli/validateProductTokens.ts +55 -0
  1458. package/src/color/OklchConverter.ts +284 -0
  1459. package/src/color/OklchValidator.ts +186 -0
  1460. package/src/color/__tests__/OklchConverter.test.ts +232 -0
  1461. package/src/color/__tests__/OklchRegression.test.ts +101 -0
  1462. package/src/color/__tests__/OklchValidator.test.ts +199 -0
  1463. package/src/color/__tests__/WcagContrast.test.ts +76 -0
  1464. package/src/components/__tests__/BlendTokenUsageValidation.test.ts +726 -0
  1465. package/src/components/__tests__/DynamicImportGuard.test.ts +226 -0
  1466. package/src/components/__tests__/ExtensionLintPolicy.test.ts +113 -0
  1467. package/src/components/__tests__/TokenCompliance.test.ts +921 -0
  1468. package/src/components/__tests__/colorInheritanceValidation.test.ts +267 -0
  1469. package/src/components/__tests__/componentTypographyInheritance.test.ts +326 -0
  1470. package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +113 -0
  1471. package/src/components/core/Avatar-Base/README.md +366 -0
  1472. package/src/components/core/Avatar-Base/__tests__/.gitkeep +3 -0
  1473. package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +483 -0
  1474. package/src/components/core/Avatar-Base/__tests__/Avatar.icon-integration.test.ts +656 -0
  1475. package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +393 -0
  1476. package/src/components/core/Avatar-Base/__tests__/Avatar.lifecycle.test.ts +545 -0
  1477. package/src/components/core/Avatar-Base/__tests__/Avatar.rendering.test.ts +505 -0
  1478. package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +692 -0
  1479. package/src/components/core/Avatar-Base/avatar.tokens.ts +376 -0
  1480. package/src/components/core/Avatar-Base/component-meta.yaml +20 -0
  1481. package/src/components/core/Avatar-Base/contracts.yaml +212 -0
  1482. package/src/components/core/Avatar-Base/index.ts +25 -0
  1483. package/src/components/core/Avatar-Base/platforms/android/.gitkeep +3 -0
  1484. package/src/components/core/Avatar-Base/platforms/android/Avatar.android.kt +593 -0
  1485. package/src/components/core/Avatar-Base/platforms/android/AvatarPreview.kt +1106 -0
  1486. package/src/components/core/Avatar-Base/platforms/android/HexagonShape.kt +297 -0
  1487. package/src/components/core/Avatar-Base/platforms/ios/.gitkeep +3 -0
  1488. package/src/components/core/Avatar-Base/platforms/ios/Avatar.ios.swift +815 -0
  1489. package/src/components/core/Avatar-Base/platforms/ios/AvatarPreview.swift +773 -0
  1490. package/src/components/core/Avatar-Base/platforms/ios/RoundedPointyTopHexagon.swift +360 -0
  1491. package/src/components/core/Avatar-Base/platforms/web/.gitkeep +3 -0
  1492. package/src/components/core/Avatar-Base/platforms/web/Avatar.styles.css +595 -0
  1493. package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +873 -0
  1494. package/src/components/core/Avatar-Base/platforms/web/hexagon-clip.svg +87 -0
  1495. package/src/components/core/Avatar-Base/tokens/.gitkeep +4 -0
  1496. package/src/components/core/Avatar-Base/types.ts +86 -0
  1497. package/src/components/core/Badge-Count-Base/Badge-Count-Base.schema.yaml +122 -0
  1498. package/src/components/core/Badge-Count-Base/README.md +323 -0
  1499. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.stemma.test.ts +548 -0
  1500. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.test.ts +452 -0
  1501. package/src/components/core/Badge-Count-Base/__tests__/test-utils.ts +244 -0
  1502. package/src/components/core/Badge-Count-Base/component-meta.yaml +23 -0
  1503. package/src/components/core/Badge-Count-Base/contracts.yaml +173 -0
  1504. package/src/components/core/Badge-Count-Base/index.ts +37 -0
  1505. package/src/components/core/Badge-Count-Base/platforms/android/.gitkeep +1 -0
  1506. package/src/components/core/Badge-Count-Base/platforms/android/BadgeCountBase.android.kt +581 -0
  1507. package/src/components/core/Badge-Count-Base/platforms/ios/.gitkeep +1 -0
  1508. package/src/components/core/Badge-Count-Base/platforms/ios/BadgeCountBase.ios.swift +502 -0
  1509. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.styles.css +148 -0
  1510. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.ts +363 -0
  1511. package/src/components/core/Badge-Count-Base/types.ts +150 -0
  1512. package/src/components/core/Badge-Count-Notification/Badge-Count-Notification.schema.yaml +108 -0
  1513. package/src/components/core/Badge-Count-Notification/README.md +396 -0
  1514. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.stemma.test.ts +571 -0
  1515. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.test.ts +490 -0
  1516. package/src/components/core/Badge-Count-Notification/__tests__/test-utils.ts +256 -0
  1517. package/src/components/core/Badge-Count-Notification/component-meta.yaml +20 -0
  1518. package/src/components/core/Badge-Count-Notification/contracts.yaml +92 -0
  1519. package/src/components/core/Badge-Count-Notification/index.ts +60 -0
  1520. package/src/components/core/Badge-Count-Notification/platforms/android/.gitkeep +2 -0
  1521. package/src/components/core/Badge-Count-Notification/platforms/android/BadgeCountNotification.android.kt +818 -0
  1522. package/src/components/core/Badge-Count-Notification/platforms/ios/BadgeCountNotification.ios.swift +660 -0
  1523. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.styles.css +182 -0
  1524. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.ts +401 -0
  1525. package/src/components/core/Badge-Count-Notification/tokens.ts +124 -0
  1526. package/src/components/core/Badge-Count-Notification/types.ts +119 -0
  1527. package/src/components/core/Badge-Label-Base/Badge-Label-Base.schema.yaml +131 -0
  1528. package/src/components/core/Badge-Label-Base/README.md +251 -0
  1529. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.stemma.test.ts +549 -0
  1530. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.test.ts +439 -0
  1531. package/src/components/core/Badge-Label-Base/__tests__/test-utils.ts +269 -0
  1532. package/src/components/core/Badge-Label-Base/__tests__/tokens.test.ts +88 -0
  1533. package/src/components/core/Badge-Label-Base/component-meta.yaml +21 -0
  1534. package/src/components/core/Badge-Label-Base/contracts.yaml +148 -0
  1535. package/src/components/core/Badge-Label-Base/index.ts +41 -0
  1536. package/src/components/core/Badge-Label-Base/platforms/android/BadgeLabelBase.android.kt +452 -0
  1537. package/src/components/core/Badge-Label-Base/platforms/ios/BadgeLabelBase.ios.swift +483 -0
  1538. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.styles.css +166 -0
  1539. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.ts +340 -0
  1540. package/src/components/core/Badge-Label-Base/tokens.ts +80 -0
  1541. package/src/components/core/Badge-Label-Base/types.ts +148 -0
  1542. package/src/components/core/Button-CTA/Button-CTA.schema.yaml +259 -0
  1543. package/src/components/core/Button-CTA/Button-CTA.tokens.ts +79 -0
  1544. package/src/components/core/Button-CTA/README.md +296 -0
  1545. package/src/components/core/Button-CTA/__tests__/ButtonCTA.alignment.test.ts +355 -0
  1546. package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +752 -0
  1547. package/src/components/core/Button-CTA/__tests__/ButtonCTA.tokens.test.ts +89 -0
  1548. package/src/components/core/Button-CTA/__tests__/setup.test.ts +211 -0
  1549. package/src/components/core/Button-CTA/__tests__/test-utils.ts +187 -0
  1550. package/src/components/core/Button-CTA/component-meta.yaml +25 -0
  1551. package/src/components/core/Button-CTA/contracts.yaml +140 -0
  1552. package/src/components/core/Button-CTA/examples/BasicUsage.html +145 -0
  1553. package/src/components/core/Button-CTA/examples/BasicUsage.tsx +246 -0
  1554. package/src/components/core/Button-CTA/examples/Variants.html +263 -0
  1555. package/src/components/core/Button-CTA/examples/WithIcon.html +166 -0
  1556. package/src/components/core/Button-CTA/index.ts +20 -0
  1557. package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +405 -0
  1558. package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +552 -0
  1559. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +419 -0
  1560. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +697 -0
  1561. package/src/components/core/Button-CTA/platforms/web/__tests__/ButtonCTA.icon-integration.test.ts +476 -0
  1562. package/src/components/core/Button-CTA/types.ts +257 -0
  1563. package/src/components/core/Button-Icon/Button-Icon.schema.yaml +114 -0
  1564. package/src/components/core/Button-Icon/README.md +371 -0
  1565. package/src/components/core/Button-Icon/__tests__/ButtonIcon.alignment.test.ts +358 -0
  1566. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties-8-13.test.ts +953 -0
  1567. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties.test.ts +920 -0
  1568. package/src/components/core/Button-Icon/__tests__/ButtonIcon.stemma.test.ts +622 -0
  1569. package/src/components/core/Button-Icon/__tests__/ButtonIcon.unit.test.ts +560 -0
  1570. package/src/components/core/Button-Icon/__tests__/setup.test.ts +361 -0
  1571. package/src/components/core/Button-Icon/__tests__/test-utils.ts +248 -0
  1572. package/src/components/core/Button-Icon/buttonIcon.tokens.ts +202 -0
  1573. package/src/components/core/Button-Icon/component-meta.yaml +24 -0
  1574. package/src/components/core/Button-Icon/contracts.yaml +228 -0
  1575. package/src/components/core/Button-Icon/platforms/android/ButtonIcon.android.kt +548 -0
  1576. package/src/components/core/Button-Icon/platforms/ios/ButtonIcon.ios.swift +482 -0
  1577. package/src/components/core/Button-Icon/platforms/web/.gitkeep +4 -0
  1578. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.css +600 -0
  1579. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.ts +625 -0
  1580. package/src/components/core/Button-Icon/types.ts +186 -0
  1581. package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.schema.yaml +138 -0
  1582. package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.ts +112 -0
  1583. package/src/components/core/Button-VerticalList-Item/README.md +450 -0
  1584. package/src/components/core/Button-VerticalList-Item/__tests__/.gitkeep +2 -0
  1585. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.alignment.test.ts +271 -0
  1586. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.failLoudly.test.ts +106 -0
  1587. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.integration.test.ts +480 -0
  1588. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.properties.test.ts +634 -0
  1589. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.unit.test.ts +746 -0
  1590. package/src/components/core/Button-VerticalList-Item/__tests__/rtlSupport.test.ts +206 -0
  1591. package/src/components/core/Button-VerticalList-Item/__tests__/test-utils.ts +297 -0
  1592. package/src/components/core/Button-VerticalList-Item/__tests__/visualStateMapping.test.ts +419 -0
  1593. package/src/components/core/Button-VerticalList-Item/component-meta.yaml +24 -0
  1594. package/src/components/core/Button-VerticalList-Item/contracts.yaml +138 -0
  1595. package/src/components/core/Button-VerticalList-Item/index.ts +49 -0
  1596. package/src/components/core/Button-VerticalList-Item/platforms/android/.gitkeep +2 -0
  1597. package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItem.android.kt +594 -0
  1598. package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItemTest.kt +1109 -0
  1599. package/src/components/core/Button-VerticalList-Item/platforms/android/VisualStateStyles.kt +585 -0
  1600. package/src/components/core/Button-VerticalList-Item/platforms/ios/.gitkeep +2 -0
  1601. package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItem.ios.swift +853 -0
  1602. package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItemTests.swift +794 -0
  1603. package/src/components/core/Button-VerticalList-Item/platforms/ios/VisualStateStyles.swift +453 -0
  1604. package/src/components/core/Button-VerticalList-Item/platforms/web/.gitkeep +2 -0
  1605. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.styles.css +459 -0
  1606. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts +1030 -0
  1607. package/src/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.ts +411 -0
  1608. package/src/components/core/Button-VerticalList-Item/types.ts +338 -0
  1609. package/src/components/core/Button-VerticalList-Set/Button-VerticalList-Set.schema.yaml +110 -0
  1610. package/src/components/core/Button-VerticalList-Set/README.md +578 -0
  1611. package/src/components/core/Button-VerticalList-Set/__tests__/.gitkeep +5 -0
  1612. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.integration.test.ts +676 -0
  1613. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property.test.ts +786 -0
  1614. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property2.test.ts +1109 -0
  1615. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.unit.test.ts +924 -0
  1616. package/src/components/core/Button-VerticalList-Set/__tests__/animationTiming.test.ts +182 -0
  1617. package/src/components/core/Button-VerticalList-Set/__tests__/crossPlatformConsistency.test.ts +685 -0
  1618. package/src/components/core/Button-VerticalList-Set/__tests__/deriveItemStates.test.ts +179 -0
  1619. package/src/components/core/Button-VerticalList-Set/__tests__/validation.test.ts +275 -0
  1620. package/src/components/core/Button-VerticalList-Set/component-meta.yaml +22 -0
  1621. package/src/components/core/Button-VerticalList-Set/contracts.yaml +170 -0
  1622. package/src/components/core/Button-VerticalList-Set/index.ts +32 -0
  1623. package/src/components/core/Button-VerticalList-Set/platforms/android/.gitkeep +0 -0
  1624. package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSet.android.kt +805 -0
  1625. package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetPreview.kt +390 -0
  1626. package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetTest.kt +961 -0
  1627. package/src/components/core/Button-VerticalList-Set/platforms/ios/.gitkeep +0 -0
  1628. package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSet.ios.swift +1127 -0
  1629. package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetPreview.swift +664 -0
  1630. package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetTests.swift +475 -0
  1631. package/src/components/core/Button-VerticalList-Set/platforms/web/.gitkeep +4 -0
  1632. package/src/components/core/Button-VerticalList-Set/platforms/web/Button-VerticalList-Set.styles.css +167 -0
  1633. package/src/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.ts +1446 -0
  1634. package/src/components/core/Button-VerticalList-Set/types.ts +788 -0
  1635. package/src/components/core/Chip-Base/Chip-Base.schema.yaml +214 -0
  1636. package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +521 -0
  1637. package/src/components/core/Chip-Base/component-meta.yaml +25 -0
  1638. package/src/components/core/Chip-Base/contracts.yaml +201 -0
  1639. package/src/components/core/Chip-Base/index.ts +40 -0
  1640. package/src/components/core/Chip-Base/platforms/android/ChipBase.android.kt +379 -0
  1641. package/src/components/core/Chip-Base/platforms/ios/.gitkeep +3 -0
  1642. package/src/components/core/Chip-Base/platforms/ios/ChipBase.ios.swift +420 -0
  1643. package/src/components/core/Chip-Base/platforms/web/.gitkeep +5 -0
  1644. package/src/components/core/Chip-Base/platforms/web/ChipBase.styles.css +280 -0
  1645. package/src/components/core/Chip-Base/platforms/web/ChipBase.web.ts +480 -0
  1646. package/src/components/core/Chip-Base/types.ts +189 -0
  1647. package/src/components/core/Chip-Filter/Chip-Filter.schema.yaml +181 -0
  1648. package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +579 -0
  1649. package/src/components/core/Chip-Filter/component-meta.yaml +20 -0
  1650. package/src/components/core/Chip-Filter/contracts.yaml +76 -0
  1651. package/src/components/core/Chip-Filter/index.ts +34 -0
  1652. package/src/components/core/Chip-Filter/platforms/android/ChipFilter.android.kt +484 -0
  1653. package/src/components/core/Chip-Filter/platforms/ios/ChipFilter.ios.swift +510 -0
  1654. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.styles.css +105 -0
  1655. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.web.ts +539 -0
  1656. package/src/components/core/Chip-Filter/types.ts +47 -0
  1657. package/src/components/core/Chip-Input/Chip-Input.schema.yaml +173 -0
  1658. package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +459 -0
  1659. package/src/components/core/Chip-Input/component-meta.yaml +20 -0
  1660. package/src/components/core/Chip-Input/contracts.yaml +75 -0
  1661. package/src/components/core/Chip-Input/index.ts +35 -0
  1662. package/src/components/core/Chip-Input/platforms/android/.gitkeep +3 -0
  1663. package/src/components/core/Chip-Input/platforms/android/ChipInput.android.kt +409 -0
  1664. package/src/components/core/Chip-Input/platforms/ios/.gitkeep +3 -0
  1665. package/src/components/core/Chip-Input/platforms/ios/ChipInput.ios.swift +449 -0
  1666. package/src/components/core/Chip-Input/platforms/web/ChipInput.styles.css +99 -0
  1667. package/src/components/core/Chip-Input/platforms/web/ChipInput.web.ts +485 -0
  1668. package/src/components/core/Chip-Input/types.ts +35 -0
  1669. package/src/components/core/Container-Base/Container-Base.schema.yaml +411 -0
  1670. package/src/components/core/Container-Base/README.md +450 -0
  1671. package/src/components/core/Container-Base/__tests__/ContainerBase.test.ts +712 -0
  1672. package/src/components/core/Container-Base/component-meta.yaml +22 -0
  1673. package/src/components/core/Container-Base/contracts.yaml +118 -0
  1674. package/src/components/core/Container-Base/index.ts +47 -0
  1675. package/src/components/core/Container-Base/platforms/android/ContainerBase.android.kt +654 -0
  1676. package/src/components/core/Container-Base/platforms/android/TokenMapping.kt +558 -0
  1677. package/src/components/core/Container-Base/platforms/ios/ContainerBase.ios.swift +699 -0
  1678. package/src/components/core/Container-Base/platforms/ios/TokenMapping.swift +493 -0
  1679. package/src/components/core/Container-Base/platforms/web/ContainerBase.web.ts +405 -0
  1680. package/src/components/core/Container-Base/platforms/web/styles.css +198 -0
  1681. package/src/components/core/Container-Base/platforms/web/token-mapping.ts +573 -0
  1682. package/src/components/core/Container-Base/tokens.ts +241 -0
  1683. package/src/components/core/Container-Base/types.ts +307 -0
  1684. package/src/components/core/Container-Card-Base/Container-Card-Base.schema.yaml +374 -0
  1685. package/src/components/core/Container-Card-Base/README.md +506 -0
  1686. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.composition.test.ts +167 -0
  1687. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.test.ts +646 -0
  1688. package/src/components/core/Container-Card-Base/component-meta.yaml +21 -0
  1689. package/src/components/core/Container-Card-Base/contracts.yaml +129 -0
  1690. package/src/components/core/Container-Card-Base/index.ts +64 -0
  1691. package/src/components/core/Container-Card-Base/platforms/android/ContainerCardBase.android.kt +800 -0
  1692. package/src/components/core/Container-Card-Base/platforms/ios/ContainerCardBase.ios.swift +962 -0
  1693. package/src/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.ts +373 -0
  1694. package/src/components/core/Container-Card-Base/tokens.ts +224 -0
  1695. package/src/components/core/Container-Card-Base/types.ts +332 -0
  1696. package/src/components/core/Icon-Base/Icon-Base.schema.yaml +206 -0
  1697. package/src/components/core/Icon-Base/README.md +168 -0
  1698. package/src/components/core/Icon-Base/__tests__/IconBase.test.ts +192 -0
  1699. package/src/components/core/Icon-Base/component-meta.yaml +22 -0
  1700. package/src/components/core/Icon-Base/contracts.yaml +89 -0
  1701. package/src/components/core/Icon-Base/index.ts +34 -0
  1702. package/src/components/core/Icon-Base/platforms/android/IconBase.android.kt +240 -0
  1703. package/src/components/core/Icon-Base/platforms/android/res/drawable/README.md +255 -0
  1704. package/src/components/core/Icon-Base/platforms/android/res/drawable/alert_circle.xml +27 -0
  1705. package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_down.xml +17 -0
  1706. package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_left.xml +17 -0
  1707. package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_right.xml +17 -0
  1708. package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_up.xml +17 -0
  1709. package/src/components/core/Icon-Base/platforms/android/res/drawable/award.xml +20 -0
  1710. package/src/components/core/Icon-Base/platforms/android/res/drawable/bell.xml +20 -0
  1711. package/src/components/core/Icon-Base/platforms/android/res/drawable/briefcase.xml +20 -0
  1712. package/src/components/core/Icon-Base/platforms/android/res/drawable/calendar.xml +34 -0
  1713. package/src/components/core/Icon-Base/platforms/android/res/drawable/check.xml +13 -0
  1714. package/src/components/core/Icon-Base/platforms/android/res/drawable/check_circle.xml +20 -0
  1715. package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_down.xml +13 -0
  1716. package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_left.xml +13 -0
  1717. package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_right.xml +12 -0
  1718. package/src/components/core/Icon-Base/platforms/android/res/drawable/circle.xml +13 -0
  1719. package/src/components/core/Icon-Base/platforms/android/res/drawable/clock.xml +20 -0
  1720. package/src/components/core/Icon-Base/platforms/android/res/drawable/credit_card.xml +20 -0
  1721. package/src/components/core/Icon-Base/platforms/android/res/drawable/dollar_sign.xml +20 -0
  1722. package/src/components/core/Icon-Base/platforms/android/res/drawable/external_link.xml +27 -0
  1723. package/src/components/core/Icon-Base/platforms/android/res/drawable/eye.xml +20 -0
  1724. package/src/components/core/Icon-Base/platforms/android/res/drawable/eye_off.xml +20 -0
  1725. package/src/components/core/Icon-Base/platforms/android/res/drawable/file_text.xml +41 -0
  1726. package/src/components/core/Icon-Base/platforms/android/res/drawable/filter.xml +13 -0
  1727. package/src/components/core/Icon-Base/platforms/android/res/drawable/globe.xml +27 -0
  1728. package/src/components/core/Icon-Base/platforms/android/res/drawable/heart.xml +13 -0
  1729. package/src/components/core/Icon-Base/platforms/android/res/drawable/info.xml +27 -0
  1730. package/src/components/core/Icon-Base/platforms/android/res/drawable/mail.xml +20 -0
  1731. package/src/components/core/Icon-Base/platforms/android/res/drawable/map_pin.xml +20 -0
  1732. package/src/components/core/Icon-Base/platforms/android/res/drawable/minus.xml +13 -0
  1733. package/src/components/core/Icon-Base/platforms/android/res/drawable/more_horizontal.xml +27 -0
  1734. package/src/components/core/Icon-Base/platforms/android/res/drawable/more_vertical.xml +27 -0
  1735. package/src/components/core/Icon-Base/platforms/android/res/drawable/phone.xml +13 -0
  1736. package/src/components/core/Icon-Base/platforms/android/res/drawable/plus.xml +20 -0
  1737. package/src/components/core/Icon-Base/platforms/android/res/drawable/refresh_cw.xml +27 -0
  1738. package/src/components/core/Icon-Base/platforms/android/res/drawable/save.xml +27 -0
  1739. package/src/components/core/Icon-Base/platforms/android/res/drawable/search.xml +20 -0
  1740. package/src/components/core/Icon-Base/platforms/android/res/drawable/settings.xml +20 -0
  1741. package/src/components/core/Icon-Base/platforms/android/res/drawable/share.xml +27 -0
  1742. package/src/components/core/Icon-Base/platforms/android/res/drawable/share_2.xml +41 -0
  1743. package/src/components/core/Icon-Base/platforms/android/res/drawable/shield.xml +13 -0
  1744. package/src/components/core/Icon-Base/platforms/android/res/drawable/smartphone.xml +20 -0
  1745. package/src/components/core/Icon-Base/platforms/android/res/drawable/smile.xml +34 -0
  1746. package/src/components/core/Icon-Base/platforms/android/res/drawable/star.xml +13 -0
  1747. package/src/components/core/Icon-Base/platforms/android/res/drawable/trending_up.xml +20 -0
  1748. package/src/components/core/Icon-Base/platforms/android/res/drawable/user.xml +20 -0
  1749. package/src/components/core/Icon-Base/platforms/android/res/drawable/user_check.xml +27 -0
  1750. package/src/components/core/Icon-Base/platforms/android/res/drawable/user_x.xml +34 -0
  1751. package/src/components/core/Icon-Base/platforms/android/res/drawable/users.xml +34 -0
  1752. package/src/components/core/Icon-Base/platforms/android/res/drawable/wifi.xml +34 -0
  1753. package/src/components/core/Icon-Base/platforms/android/res/drawable/x.xml +20 -0
  1754. package/src/components/core/Icon-Base/platforms/ios/ASSET_CATALOG_SETUP.md +239 -0
  1755. package/src/components/core/Icon-Base/platforms/ios/IconBase.ios.swift +296 -0
  1756. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Contents.json +6 -0
  1757. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/Contents.json +9 -0
  1758. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/Contents.json +15 -0
  1759. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/alert-circle.svg +1 -0
  1760. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/Contents.json +15 -0
  1761. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/arrow-down.svg +1 -0
  1762. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/Contents.json +15 -0
  1763. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/arrow-left.svg +1 -0
  1764. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/Contents.json +15 -0
  1765. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/arrow-right.svg +1 -0
  1766. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/Contents.json +15 -0
  1767. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/arrow-up.svg +1 -0
  1768. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/Contents.json +15 -0
  1769. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/award.svg +1 -0
  1770. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/Contents.json +15 -0
  1771. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/bell.svg +1 -0
  1772. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/Contents.json +15 -0
  1773. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/briefcase.svg +1 -0
  1774. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/Contents.json +15 -0
  1775. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/calendar.svg +1 -0
  1776. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/Contents.json +15 -0
  1777. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/check-circle.svg +1 -0
  1778. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/Contents.json +15 -0
  1779. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/check.svg +1 -0
  1780. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/Contents.json +15 -0
  1781. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/chevron-down.svg +1 -0
  1782. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/Contents.json +15 -0
  1783. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/chevron-left.svg +1 -0
  1784. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/Contents.json +15 -0
  1785. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/chevron-right.svg +1 -0
  1786. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/Contents.json +15 -0
  1787. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/circle.svg +1 -0
  1788. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/Contents.json +15 -0
  1789. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/clock.svg +1 -0
  1790. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/Contents.json +15 -0
  1791. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/credit-card.svg +1 -0
  1792. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/Contents.json +15 -0
  1793. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/dollar-sign.svg +1 -0
  1794. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/Contents.json +15 -0
  1795. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/external-link.svg +1 -0
  1796. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/Contents.json +15 -0
  1797. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/eye-off.svg +1 -0
  1798. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/Contents.json +15 -0
  1799. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/eye.svg +1 -0
  1800. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/Contents.json +15 -0
  1801. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/file-text.svg +1 -0
  1802. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/Contents.json +15 -0
  1803. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/filter.svg +1 -0
  1804. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/Contents.json +15 -0
  1805. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/globe.svg +1 -0
  1806. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/Contents.json +15 -0
  1807. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/heart.svg +1 -0
  1808. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/Contents.json +15 -0
  1809. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/info.svg +1 -0
  1810. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/Contents.json +15 -0
  1811. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/mail.svg +1 -0
  1812. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/Contents.json +15 -0
  1813. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/map-pin.svg +1 -0
  1814. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/Contents.json +15 -0
  1815. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/minus.svg +1 -0
  1816. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/Contents.json +15 -0
  1817. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/more-horizontal.svg +1 -0
  1818. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/Contents.json +15 -0
  1819. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/more-vertical.svg +1 -0
  1820. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/Contents.json +15 -0
  1821. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/phone.svg +1 -0
  1822. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/Contents.json +15 -0
  1823. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/plus.svg +1 -0
  1824. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/Contents.json +15 -0
  1825. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/refresh-cw.svg +1 -0
  1826. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/Contents.json +15 -0
  1827. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/save.svg +1 -0
  1828. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/Contents.json +15 -0
  1829. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/search.svg +1 -0
  1830. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/Contents.json +15 -0
  1831. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/settings.svg +1 -0
  1832. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/Contents.json +15 -0
  1833. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/share-2.svg +1 -0
  1834. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/Contents.json +15 -0
  1835. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/share.svg +1 -0
  1836. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/Contents.json +15 -0
  1837. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/shield.svg +1 -0
  1838. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/Contents.json +15 -0
  1839. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/smartphone.svg +1 -0
  1840. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/Contents.json +15 -0
  1841. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/smile.svg +1 -0
  1842. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/Contents.json +15 -0
  1843. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/star.svg +1 -0
  1844. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/Contents.json +15 -0
  1845. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/trending-up.svg +1 -0
  1846. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/Contents.json +15 -0
  1847. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/user-check.svg +1 -0
  1848. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/Contents.json +15 -0
  1849. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/user-x.svg +1 -0
  1850. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/Contents.json +15 -0
  1851. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/user.svg +1 -0
  1852. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/Contents.json +15 -0
  1853. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/users.svg +1 -0
  1854. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/Contents.json +15 -0
  1855. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/wifi.svg +1 -0
  1856. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/Contents.json +15 -0
  1857. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/x.svg +1 -0
  1858. package/src/components/core/Icon-Base/platforms/web/IconBase.web.ts +553 -0
  1859. package/src/components/core/Icon-Base/platforms/web/assets/alert-circle.svg +1 -0
  1860. package/src/components/core/Icon-Base/platforms/web/assets/arrow-down.svg +1 -0
  1861. package/src/components/core/Icon-Base/platforms/web/assets/arrow-left.svg +1 -0
  1862. package/src/components/core/Icon-Base/platforms/web/assets/arrow-right.svg +1 -0
  1863. package/src/components/core/Icon-Base/platforms/web/assets/arrow-up.svg +1 -0
  1864. package/src/components/core/Icon-Base/platforms/web/assets/award.svg +1 -0
  1865. package/src/components/core/Icon-Base/platforms/web/assets/bell.svg +1 -0
  1866. package/src/components/core/Icon-Base/platforms/web/assets/briefcase.svg +1 -0
  1867. package/src/components/core/Icon-Base/platforms/web/assets/calendar.svg +1 -0
  1868. package/src/components/core/Icon-Base/platforms/web/assets/check-circle.svg +1 -0
  1869. package/src/components/core/Icon-Base/platforms/web/assets/check.svg +1 -0
  1870. package/src/components/core/Icon-Base/platforms/web/assets/chevron-down.svg +1 -0
  1871. package/src/components/core/Icon-Base/platforms/web/assets/chevron-left.svg +1 -0
  1872. package/src/components/core/Icon-Base/platforms/web/assets/chevron-right.svg +1 -0
  1873. package/src/components/core/Icon-Base/platforms/web/assets/circle.svg +1 -0
  1874. package/src/components/core/Icon-Base/platforms/web/assets/clock.svg +1 -0
  1875. package/src/components/core/Icon-Base/platforms/web/assets/credit-card.svg +1 -0
  1876. package/src/components/core/Icon-Base/platforms/web/assets/dollar-sign.svg +1 -0
  1877. package/src/components/core/Icon-Base/platforms/web/assets/external-link.svg +1 -0
  1878. package/src/components/core/Icon-Base/platforms/web/assets/eye-off.svg +1 -0
  1879. package/src/components/core/Icon-Base/platforms/web/assets/eye.svg +1 -0
  1880. package/src/components/core/Icon-Base/platforms/web/assets/file-text.svg +1 -0
  1881. package/src/components/core/Icon-Base/platforms/web/assets/filter.svg +1 -0
  1882. package/src/components/core/Icon-Base/platforms/web/assets/globe.svg +1 -0
  1883. package/src/components/core/Icon-Base/platforms/web/assets/heart.svg +1 -0
  1884. package/src/components/core/Icon-Base/platforms/web/assets/info.svg +1 -0
  1885. package/src/components/core/Icon-Base/platforms/web/assets/mail.svg +1 -0
  1886. package/src/components/core/Icon-Base/platforms/web/assets/map-pin.svg +1 -0
  1887. package/src/components/core/Icon-Base/platforms/web/assets/minus.svg +1 -0
  1888. package/src/components/core/Icon-Base/platforms/web/assets/more-horizontal.svg +1 -0
  1889. package/src/components/core/Icon-Base/platforms/web/assets/more-vertical.svg +1 -0
  1890. package/src/components/core/Icon-Base/platforms/web/assets/phone.svg +1 -0
  1891. package/src/components/core/Icon-Base/platforms/web/assets/plus.svg +1 -0
  1892. package/src/components/core/Icon-Base/platforms/web/assets/refresh-cw.svg +1 -0
  1893. package/src/components/core/Icon-Base/platforms/web/assets/save.svg +1 -0
  1894. package/src/components/core/Icon-Base/platforms/web/assets/search.svg +1 -0
  1895. package/src/components/core/Icon-Base/platforms/web/assets/settings.svg +1 -0
  1896. package/src/components/core/Icon-Base/platforms/web/assets/share-2.svg +1 -0
  1897. package/src/components/core/Icon-Base/platforms/web/assets/share.svg +1 -0
  1898. package/src/components/core/Icon-Base/platforms/web/assets/shield.svg +1 -0
  1899. package/src/components/core/Icon-Base/platforms/web/assets/smartphone.svg +1 -0
  1900. package/src/components/core/Icon-Base/platforms/web/assets/smile.svg +1 -0
  1901. package/src/components/core/Icon-Base/platforms/web/assets/star.svg +1 -0
  1902. package/src/components/core/Icon-Base/platforms/web/assets/trending-up.svg +1 -0
  1903. package/src/components/core/Icon-Base/platforms/web/assets/user-check.svg +1 -0
  1904. package/src/components/core/Icon-Base/platforms/web/assets/user-x.svg +1 -0
  1905. package/src/components/core/Icon-Base/platforms/web/assets/user.svg +1 -0
  1906. package/src/components/core/Icon-Base/platforms/web/assets/users.svg +1 -0
  1907. package/src/components/core/Icon-Base/platforms/web/assets/wifi.svg +1 -0
  1908. package/src/components/core/Icon-Base/platforms/web/assets/x.svg +1 -0
  1909. package/src/components/core/Icon-Base/platforms/web/styles.css +203 -0
  1910. package/src/components/core/Icon-Base/types.ts +338 -0
  1911. package/src/components/core/Input-Checkbox-Base/Input-Checkbox-Base.schema.yaml +147 -0
  1912. package/src/components/core/Input-Checkbox-Base/README.md +390 -0
  1913. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.stemma.test.ts +552 -0
  1914. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.test.ts +878 -0
  1915. package/src/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.ts +37 -0
  1916. package/src/components/core/Input-Checkbox-Base/component-meta.yaml +39 -0
  1917. package/src/components/core/Input-Checkbox-Base/contracts.yaml +165 -0
  1918. package/src/components/core/Input-Checkbox-Base/platforms/android/InputCheckboxBase.android.kt +777 -0
  1919. package/src/components/core/Input-Checkbox-Base/platforms/ios/InputCheckboxBase.ios.swift +612 -0
  1920. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.css +477 -0
  1921. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.ts +561 -0
  1922. package/src/components/core/Input-Checkbox-Base/types.ts +399 -0
  1923. package/src/components/core/Input-Checkbox-Legal/Input-Checkbox-Legal.schema.yaml +81 -0
  1924. package/src/components/core/Input-Checkbox-Legal/README.md +554 -0
  1925. package/src/components/core/Input-Checkbox-Legal/__tests__/InputCheckboxLegal.test.ts +727 -0
  1926. package/src/components/core/Input-Checkbox-Legal/component-meta.yaml +39 -0
  1927. package/src/components/core/Input-Checkbox-Legal/contracts.yaml +55 -0
  1928. package/src/components/core/Input-Checkbox-Legal/platforms/android/.gitkeep +2 -0
  1929. package/src/components/core/Input-Checkbox-Legal/platforms/android/InputCheckboxLegal.android.kt +408 -0
  1930. package/src/components/core/Input-Checkbox-Legal/platforms/ios/.gitkeep +2 -0
  1931. package/src/components/core/Input-Checkbox-Legal/platforms/ios/InputCheckboxLegal.ios.swift +387 -0
  1932. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.css +112 -0
  1933. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.ts +505 -0
  1934. package/src/components/core/Input-Checkbox-Legal/types.ts +348 -0
  1935. package/src/components/core/Input-Radio-Base/.gitkeep +2 -0
  1936. package/src/components/core/Input-Radio-Base/Input-Radio-Base.schema.yaml +139 -0
  1937. package/src/components/core/Input-Radio-Base/README.md +427 -0
  1938. package/src/components/core/Input-Radio-Base/__tests__/.gitkeep +1 -0
  1939. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.form.test.ts +299 -0
  1940. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.stemma.test.ts +543 -0
  1941. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.test.ts +429 -0
  1942. package/src/components/core/Input-Radio-Base/component-meta.yaml +28 -0
  1943. package/src/components/core/Input-Radio-Base/contracts.yaml +140 -0
  1944. package/src/components/core/Input-Radio-Base/platforms/android/InputRadioBase.android.kt +685 -0
  1945. package/src/components/core/Input-Radio-Base/platforms/ios/.gitkeep +1 -0
  1946. package/src/components/core/Input-Radio-Base/platforms/ios/InputRadioBase.ios.swift +567 -0
  1947. package/src/components/core/Input-Radio-Base/platforms/web/.gitkeep +1 -0
  1948. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.css +504 -0
  1949. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.ts +648 -0
  1950. package/src/components/core/Input-Radio-Base/radio-sizing.tokens.ts +37 -0
  1951. package/src/components/core/Input-Radio-Base/types.ts +362 -0
  1952. package/src/components/core/Input-Radio-Set/Input-Radio-Set.schema.yaml +92 -0
  1953. package/src/components/core/Input-Radio-Set/README.md +373 -0
  1954. package/src/components/core/Input-Radio-Set/__tests__/.gitkeep +0 -0
  1955. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.stemma.test.ts +493 -0
  1956. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.test.ts +499 -0
  1957. package/src/components/core/Input-Radio-Set/component-meta.yaml +44 -0
  1958. package/src/components/core/Input-Radio-Set/contracts.yaml +100 -0
  1959. package/src/components/core/Input-Radio-Set/platforms/android/.gitkeep +0 -0
  1960. package/src/components/core/Input-Radio-Set/platforms/android/InputRadioSet.android.kt +363 -0
  1961. package/src/components/core/Input-Radio-Set/platforms/ios/InputRadioSet.ios.swift +330 -0
  1962. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.css +99 -0
  1963. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.ts +790 -0
  1964. package/src/components/core/Input-Radio-Set/types.ts +301 -0
  1965. package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +219 -0
  1966. package/src/components/core/Input-Text-Base/README.md +235 -0
  1967. package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +310 -0
  1968. package/src/components/core/Input-Text-Base/__tests__/keyboardNavigation.test.ts +444 -0
  1969. package/src/components/core/Input-Text-Base/__tests__/labelAssociation.test.ts +418 -0
  1970. package/src/components/core/Input-Text-Base/__tests__/screenReaderSupport.test.ts +405 -0
  1971. package/src/components/core/Input-Text-Base/__tests__/setup.ts +17 -0
  1972. package/src/components/core/Input-Text-Base/__tests__/stateManagement.test.ts +718 -0
  1973. package/src/components/core/Input-Text-Base/__tests__/test-utils.ts +81 -0
  1974. package/src/components/core/Input-Text-Base/__tests__/touchTargetSizing.test.ts +319 -0
  1975. package/src/components/core/Input-Text-Base/component-meta.yaml +38 -0
  1976. package/src/components/core/Input-Text-Base/contracts.yaml +149 -0
  1977. package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +481 -0
  1978. package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +507 -0
  1979. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.ts +241 -0
  1980. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.css +293 -0
  1981. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.ts +448 -0
  1982. package/src/components/core/Input-Text-Base/stateManagement.ts +267 -0
  1983. package/src/components/core/Input-Text-Base/tokens.ts +210 -0
  1984. package/src/components/core/Input-Text-Base/types.ts +102 -0
  1985. package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +247 -0
  1986. package/src/components/core/Input-Text-Email/README.md +251 -0
  1987. package/src/components/core/Input-Text-Email/__tests__/validation.test.ts +127 -0
  1988. package/src/components/core/Input-Text-Email/component-meta.yaml +27 -0
  1989. package/src/components/core/Input-Text-Email/contracts.yaml +47 -0
  1990. package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +197 -0
  1991. package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +291 -0
  1992. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.ts +276 -0
  1993. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.ts +319 -0
  1994. package/src/components/core/Input-Text-Email/stateManagement.ts +160 -0
  1995. package/src/components/core/Input-Text-Email/tokens.ts +33 -0
  1996. package/src/components/core/Input-Text-Email/types.ts +72 -0
  1997. package/src/components/core/Input-Text-Email/validation.ts +130 -0
  1998. package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +300 -0
  1999. package/src/components/core/Input-Text-Password/README.md +359 -0
  2000. package/src/components/core/Input-Text-Password/__tests__/validation.test.ts +362 -0
  2001. package/src/components/core/Input-Text-Password/component-meta.yaml +28 -0
  2002. package/src/components/core/Input-Text-Password/contracts.yaml +63 -0
  2003. package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +318 -0
  2004. package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +446 -0
  2005. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.ts +434 -0
  2006. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +503 -0
  2007. package/src/components/core/Input-Text-Password/stateManagement.ts +244 -0
  2008. package/src/components/core/Input-Text-Password/tokens.ts +32 -0
  2009. package/src/components/core/Input-Text-Password/types.ts +177 -0
  2010. package/src/components/core/Input-Text-Password/validation.ts +207 -0
  2011. package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +326 -0
  2012. package/src/components/core/Input-Text-PhoneNumber/README.md +275 -0
  2013. package/src/components/core/Input-Text-PhoneNumber/__tests__/validation.test.ts +301 -0
  2014. package/src/components/core/Input-Text-PhoneNumber/component-meta.yaml +28 -0
  2015. package/src/components/core/Input-Text-PhoneNumber/contracts.yaml +62 -0
  2016. package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +315 -0
  2017. package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +419 -0
  2018. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.ts +370 -0
  2019. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.ts +393 -0
  2020. package/src/components/core/Input-Text-PhoneNumber/stateManagement.ts +250 -0
  2021. package/src/components/core/Input-Text-PhoneNumber/tokens.ts +33 -0
  2022. package/src/components/core/Input-Text-PhoneNumber/types.ts +135 -0
  2023. package/src/components/core/Input-Text-PhoneNumber/validation.ts +302 -0
  2024. package/src/components/core/Nav-Header-App/Nav-Header-App.schema.yaml +87 -0
  2025. package/src/components/core/Nav-Header-App/README.md +29 -0
  2026. package/src/components/core/Nav-Header-App/component-meta.yaml +19 -0
  2027. package/src/components/core/Nav-Header-App/contracts.yaml +27 -0
  2028. package/src/components/core/Nav-Header-App/index.ts +5 -0
  2029. package/src/components/core/Nav-Header-App/platforms/android/NavHeaderApp.android.kt +28 -0
  2030. package/src/components/core/Nav-Header-App/platforms/ios/NavHeaderApp.ios.swift +27 -0
  2031. package/src/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.ts +37 -0
  2032. package/src/components/core/Nav-Header-App/types.ts +32 -0
  2033. package/src/components/core/Nav-Header-Base/Nav-Header-Base.schema.yaml +150 -0
  2034. package/src/components/core/Nav-Header-Base/README.md +21 -0
  2035. package/src/components/core/Nav-Header-Base/component-meta.yaml +15 -0
  2036. package/src/components/core/Nav-Header-Base/contracts.yaml +178 -0
  2037. package/src/components/core/Nav-Header-Base/index.ts +12 -0
  2038. package/src/components/core/Nav-Header-Base/platforms/android/NavHeaderBase.android.kt +127 -0
  2039. package/src/components/core/Nav-Header-Base/platforms/ios/NavHeaderBase.ios.swift +99 -0
  2040. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.styles.css +75 -0
  2041. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.ts +120 -0
  2042. package/src/components/core/Nav-Header-Base/types.ts +63 -0
  2043. package/src/components/core/Nav-Header-Page/Nav-Header-Page.schema.yaml +175 -0
  2044. package/src/components/core/Nav-Header-Page/README.md +34 -0
  2045. package/src/components/core/Nav-Header-Page/__tests__/NavHeaderPage.test.ts +250 -0
  2046. package/src/components/core/Nav-Header-Page/component-meta.yaml +23 -0
  2047. package/src/components/core/Nav-Header-Page/contracts.yaml +196 -0
  2048. package/src/components/core/Nav-Header-Page/index.ts +12 -0
  2049. package/src/components/core/Nav-Header-Page/platforms/android/NavHeaderPage.android.kt +169 -0
  2050. package/src/components/core/Nav-Header-Page/platforms/ios/NavHeaderPage.ios.swift +196 -0
  2051. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.styles.css +90 -0
  2052. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.ts +169 -0
  2053. package/src/components/core/Nav-Header-Page/types.ts +55 -0
  2054. package/src/components/core/Nav-SegmentedChoice-Base/Nav-SegmentedChoice-Base.schema.yaml +203 -0
  2055. package/src/components/core/Nav-SegmentedChoice-Base/README.md +327 -0
  2056. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.android.test.ts +218 -0
  2057. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.interaction.test.ts +419 -0
  2058. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.ios.test.ts +207 -0
  2059. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.visual.test.ts +371 -0
  2060. package/src/components/core/Nav-SegmentedChoice-Base/component-meta.yaml +20 -0
  2061. package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +435 -0
  2062. package/src/components/core/Nav-SegmentedChoice-Base/index.ts +38 -0
  2063. package/src/components/core/Nav-SegmentedChoice-Base/platforms/android/NavSegmentedChoiceBase.android.kt +389 -0
  2064. package/src/components/core/Nav-SegmentedChoice-Base/platforms/ios/NavSegmentedChoiceBase.ios.swift +373 -0
  2065. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.styles.css +160 -0
  2066. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.ts +477 -0
  2067. package/src/components/core/Nav-SegmentedChoice-Base/types.ts +65 -0
  2068. package/src/components/core/Nav-TabBar-Base/Nav-TabBar-Base.schema.yaml +196 -0
  2069. package/src/components/core/Nav-TabBar-Base/README.md +264 -0
  2070. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.android.test.ts +270 -0
  2071. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.ios.test.ts +221 -0
  2072. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.test.ts +421 -0
  2073. package/src/components/core/Nav-TabBar-Base/component-meta.yaml +20 -0
  2074. package/src/components/core/Nav-TabBar-Base/contracts.yaml +412 -0
  2075. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.html +2 -0
  2076. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.tsx +2 -0
  2077. package/src/components/core/Nav-TabBar-Base/index.ts +20 -0
  2078. package/src/components/core/Nav-TabBar-Base/platforms/android/NavTabBarBase.android.kt +375 -0
  2079. package/src/components/core/Nav-TabBar-Base/platforms/ios/NavTabBarBase.ios.swift +377 -0
  2080. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.styles.css +281 -0
  2081. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.ts +420 -0
  2082. package/src/components/core/Nav-TabBar-Base/types.ts +43 -0
  2083. package/src/components/core/Progress-Bar-Base/Progress-Bar-Base.schema.yaml +101 -0
  2084. package/src/components/core/Progress-Bar-Base/README.md +31 -0
  2085. package/src/components/core/Progress-Bar-Base/__tests__/ProgressBarBase.test.ts +202 -0
  2086. package/src/components/core/Progress-Bar-Base/component-meta.yaml +24 -0
  2087. package/src/components/core/Progress-Bar-Base/contracts.yaml +132 -0
  2088. package/src/components/core/Progress-Bar-Base/index.ts +6 -0
  2089. package/src/components/core/Progress-Bar-Base/platforms/android/ProgressBarBase.android.kt +181 -0
  2090. package/src/components/core/Progress-Bar-Base/platforms/ios/ProgressBarBase.ios.swift +141 -0
  2091. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.styles.css +52 -0
  2092. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.ts +135 -0
  2093. package/src/components/core/Progress-Bar-Base/types.ts +46 -0
  2094. package/src/components/core/Progress-Indicator-Connector-Base/Progress-Indicator-Connector-Base.schema.yaml +69 -0
  2095. package/src/components/core/Progress-Indicator-Connector-Base/README.md +169 -0
  2096. package/src/components/core/Progress-Indicator-Connector-Base/component-meta.yaml +18 -0
  2097. package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +70 -0
  2098. package/src/components/core/Progress-Indicator-Connector-Base/index.ts +33 -0
  2099. package/src/components/core/Progress-Indicator-Connector-Base/platforms/android/ProgressIndicatorConnectorBase.android.kt +163 -0
  2100. package/src/components/core/Progress-Indicator-Connector-Base/platforms/ios/ProgressIndicatorConnectorBase.ios.swift +154 -0
  2101. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.styles.css +50 -0
  2102. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.ts +141 -0
  2103. package/src/components/core/Progress-Indicator-Connector-Base/types.ts +67 -0
  2104. package/src/components/core/Progress-Indicator-Label-Base/Progress-Indicator-Label-Base.schema.yaml +78 -0
  2105. package/src/components/core/Progress-Indicator-Label-Base/README.md +191 -0
  2106. package/src/components/core/Progress-Indicator-Label-Base/component-meta.yaml +18 -0
  2107. package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +76 -0
  2108. package/src/components/core/Progress-Indicator-Label-Base/index.ts +28 -0
  2109. package/src/components/core/Progress-Indicator-Label-Base/platforms/android/ProgressIndicatorLabelBase.android.kt +153 -0
  2110. package/src/components/core/Progress-Indicator-Label-Base/platforms/ios/ProgressIndicatorLabelBase.ios.swift +153 -0
  2111. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.styles.css +81 -0
  2112. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.ts +174 -0
  2113. package/src/components/core/Progress-Indicator-Label-Base/types.ts +64 -0
  2114. package/src/components/core/Progress-Indicator-Node-Base/Progress-Indicator-Node-Base.schema.yaml +113 -0
  2115. package/src/components/core/Progress-Indicator-Node-Base/README.md +206 -0
  2116. package/src/components/core/Progress-Indicator-Node-Base/__tests__/VisualStates.test.ts +259 -0
  2117. package/src/components/core/Progress-Indicator-Node-Base/component-meta.yaml +18 -0
  2118. package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +96 -0
  2119. package/src/components/core/Progress-Indicator-Node-Base/index.ts +36 -0
  2120. package/src/components/core/Progress-Indicator-Node-Base/platforms/android/ProgressIndicatorNodeBase.android.kt +294 -0
  2121. package/src/components/core/Progress-Indicator-Node-Base/platforms/ios/ProgressIndicatorNodeBase.ios.swift +260 -0
  2122. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.styles.css +193 -0
  2123. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.ts +226 -0
  2124. package/src/components/core/Progress-Indicator-Node-Base/types.ts +142 -0
  2125. package/src/components/core/Progress-Pagination-Base/Progress-Pagination-Base.schema.yaml +106 -0
  2126. package/src/components/core/Progress-Pagination-Base/README.md +290 -0
  2127. package/src/components/core/Progress-Pagination-Base/__tests__/PaginationBase.test.ts +290 -0
  2128. package/src/components/core/Progress-Pagination-Base/component-meta.yaml +22 -0
  2129. package/src/components/core/Progress-Pagination-Base/contracts.yaml +103 -0
  2130. package/src/components/core/Progress-Pagination-Base/index.ts +40 -0
  2131. package/src/components/core/Progress-Pagination-Base/platforms/android/ProgressPaginationBase.android.kt +215 -0
  2132. package/src/components/core/Progress-Pagination-Base/platforms/ios/ProgressPaginationBase.ios.swift +214 -0
  2133. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.styles.css +80 -0
  2134. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.ts +293 -0
  2135. package/src/components/core/Progress-Pagination-Base/types.ts +112 -0
  2136. package/src/components/core/Progress-Stepper-Base/Progress-Stepper-Base.schema.yaml +105 -0
  2137. package/src/components/core/Progress-Stepper-Base/README.md +311 -0
  2138. package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +342 -0
  2139. package/src/components/core/Progress-Stepper-Base/component-meta.yaml +22 -0
  2140. package/src/components/core/Progress-Stepper-Base/contracts.yaml +101 -0
  2141. package/src/components/core/Progress-Stepper-Base/index.ts +43 -0
  2142. package/src/components/core/Progress-Stepper-Base/platforms/android/ProgressStepperBase.android.kt +244 -0
  2143. package/src/components/core/Progress-Stepper-Base/platforms/ios/ProgressStepperBase.ios.swift +240 -0
  2144. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.styles.css +49 -0
  2145. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.ts +288 -0
  2146. package/src/components/core/Progress-Stepper-Base/types.ts +175 -0
  2147. package/src/components/core/Progress-Stepper-Detailed/Progress-Stepper-Detailed.schema.yaml +107 -0
  2148. package/src/components/core/Progress-Stepper-Detailed/README.md +401 -0
  2149. package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +478 -0
  2150. package/src/components/core/Progress-Stepper-Detailed/component-meta.yaml +22 -0
  2151. package/src/components/core/Progress-Stepper-Detailed/contracts.yaml +122 -0
  2152. package/src/components/core/Progress-Stepper-Detailed/index.ts +48 -0
  2153. package/src/components/core/Progress-Stepper-Detailed/platforms/android/ProgressStepperDetailed.android.kt +352 -0
  2154. package/src/components/core/Progress-Stepper-Detailed/platforms/ios/ProgressStepperDetailed.ios.swift +353 -0
  2155. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.styles.css +106 -0
  2156. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.ts +336 -0
  2157. package/src/components/core/Progress-Stepper-Detailed/types.ts +195 -0
  2158. package/src/composition/BlendComposition.ts +46 -0
  2159. package/src/composition/BlendCompositionParser.ts +215 -0
  2160. package/src/composition/OpacityComposition.ts +62 -0
  2161. package/src/composition/OpacityCompositionParser.ts +308 -0
  2162. package/src/composition/__tests__/BlendCompositionParser.test.ts +431 -0
  2163. package/src/composition/__tests__/OpacityCompositionParser.test.ts +539 -0
  2164. package/src/composition/index.ts +20 -0
  2165. package/src/config/ConfigLoader.ts +143 -0
  2166. package/src/config/__resolution-matrix__/README.md +76 -0
  2167. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/compiled/defineConfig.js +9 -0
  2168. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/designerpunk.config.ts +20 -0
  2169. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/my-overrides.ts +8 -0
  2170. package/src/config/__resolution-matrix__/fixtures/faithful-esm/compiled/defineConfig.js +11 -0
  2171. package/src/config/__resolution-matrix__/fixtures/faithful-esm/designerpunk.config.ts +23 -0
  2172. package/src/config/__resolution-matrix__/fixtures/faithful-esm/my-overrides.ts +6 -0
  2173. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/designerpunk.config.ts +11 -0
  2174. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/src/config/index.ts +15 -0
  2175. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/designerpunk.config.ts +15 -0
  2176. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/src/config/index.ts +13 -0
  2177. package/src/config/__resolution-matrix__/run-matrix.js +107 -0
  2178. package/src/config/__resolution-matrix__/runner.js +153 -0
  2179. package/src/config/__resolution-matrix__/verify-real-loadconfig.js +122 -0
  2180. package/src/config/__tests__/ConfigLoader.test.ts +115 -0
  2181. package/src/config/defineConfig.ts +71 -0
  2182. package/src/config/index.ts +7 -0
  2183. package/src/config/scopedTsRequire.ts +62 -0
  2184. package/src/constants/BaselineGrid.ts +41 -0
  2185. package/src/constants/SpacingTokens.ts +55 -0
  2186. package/src/constants/StrategicFlexibilityTokens.ts +98 -0
  2187. package/src/figma/ComponentAnalysis.ts +292 -0
  2188. package/src/figma/ComponentAnalysisGenerator.ts +444 -0
  2189. package/src/figma/ConsoleMCPClient.ts +168 -0
  2190. package/src/figma/ConsoleMCPClientImpl.ts +1034 -0
  2191. package/src/figma/DesignExtractor.ts +3620 -0
  2192. package/src/figma/TokenSyncWorkflow.ts +915 -0
  2193. package/src/figma/TokenTranslator.ts +891 -0
  2194. package/src/figma/VariantAnalyzer.ts +712 -0
  2195. package/src/figma/__tests__/ComponentAnalysisGenerator.json.test.ts +429 -0
  2196. package/src/figma/__tests__/ComponentAnalysisGenerator.markdown.test.ts +428 -0
  2197. package/src/figma/__tests__/ConsoleMCPClient.bugfix.test.ts +261 -0
  2198. package/src/figma/__tests__/ConsoleMCPClient.preservation.test.ts +395 -0
  2199. package/src/figma/__tests__/ConsoleMCPClient.test.ts +375 -0
  2200. package/src/figma/__tests__/DesignExtractor.boundVariableResolution.test.ts +580 -0
  2201. package/src/figma/__tests__/DesignExtractor.buildNodeTree.test.ts +535 -0
  2202. package/src/figma/__tests__/DesignExtractor.captureComponentScreenshot.test.ts +176 -0
  2203. package/src/figma/__tests__/DesignExtractor.detectBehavioralContracts.test.ts +263 -0
  2204. package/src/figma/__tests__/DesignExtractor.detectComponentTokenDecisions.test.ts +379 -0
  2205. package/src/figma/__tests__/DesignExtractor.detectCompositionPatterns.test.ts +507 -0
  2206. package/src/figma/__tests__/DesignExtractor.detectPlatformParity.test.ts +406 -0
  2207. package/src/figma/__tests__/DesignExtractor.queryContext.test.ts +214 -0
  2208. package/src/figma/__tests__/DesignExtractor.readFigmaComponent.test.ts +431 -0
  2209. package/src/figma/__tests__/DesignExtractor.readStyles.test.ts +204 -0
  2210. package/src/figma/__tests__/DesignExtractor.readTokenBindings.test.ts +268 -0
  2211. package/src/figma/__tests__/DesignExtractor.reconstructCompositeTokens.test.ts +403 -0
  2212. package/src/figma/__tests__/DesignExtractor.resolveUnknownVariableIds.test.ts +259 -0
  2213. package/src/figma/__tests__/DesignExtractor.translateTokens.test.ts +433 -0
  2214. package/src/figma/__tests__/DesignExtractor.validateModes.test.ts +350 -0
  2215. package/src/figma/__tests__/TokenSyncWorkflow.batch.test.ts +277 -0
  2216. package/src/figma/__tests__/TokenSyncWorkflow.drift.test.ts +187 -0
  2217. package/src/figma/__tests__/TokenSyncWorkflow.preservation.test.ts +544 -0
  2218. package/src/figma/__tests__/TokenSyncWorkflow.styles.test.ts +245 -0
  2219. package/src/figma/__tests__/TokenSyncWorkflow.sync.test.ts +217 -0
  2220. package/src/figma/__tests__/TokenTranslator.test.ts +757 -0
  2221. package/src/figma/__tests__/VariantAnalyzer.detectConflicts.test.ts +126 -0
  2222. package/src/figma/__tests__/VariantAnalyzer.test.ts +633 -0
  2223. package/src/figma/__tests__/error-reporting.test.ts +254 -0
  2224. package/src/figma/__tests__/preflight.test.ts +94 -0
  2225. package/src/figma/error-reporting.ts +260 -0
  2226. package/src/figma/index.ts +98 -0
  2227. package/src/figma/portCleanup.ts +86 -0
  2228. package/src/figma/preflight.ts +120 -0
  2229. package/src/generators/BlendUtilityGenerator.ts +847 -0
  2230. package/src/generators/BlendValueGenerator.ts +198 -0
  2231. package/src/generators/DTCGFormatGenerator.ts +1349 -0
  2232. package/src/generators/DTCGGeneratorConfig.ts +46 -0
  2233. package/src/generators/ModeResolvedTokens.ts +58 -0
  2234. package/src/generators/ResponsiveGridGenerator.ts +273 -0
  2235. package/src/generators/TokenFileGenerator.ts +2070 -0
  2236. package/src/generators/__tests__/AccessibilityTokenGeneration.test.ts +350 -0
  2237. package/src/generators/__tests__/BlendUtilityGenerator.test.ts +829 -0
  2238. package/src/generators/__tests__/BlendValueGenerator.test.ts +200 -0
  2239. package/src/generators/__tests__/BreakpointTokenGeneration.test.ts +172 -0
  2240. package/src/generators/__tests__/CSSThemeScoping.test.ts +153 -0
  2241. package/src/generators/__tests__/DTCGConfigOptions.test.ts +262 -0
  2242. package/src/generators/__tests__/DTCGErrorHandling.test.ts +139 -0
  2243. package/src/generators/__tests__/DTCGFormatGenerator.integration.test.ts +346 -0
  2244. package/src/generators/__tests__/DTCGFormatGenerator.property.test.ts +497 -0
  2245. package/src/generators/__tests__/DTCGFormatGenerator.test.ts +469 -0
  2246. package/src/generators/__tests__/FigmaTransformer.styles.test.ts +398 -0
  2247. package/src/generators/__tests__/FigmaTransformer.variables.test.ts +540 -0
  2248. package/src/generators/__tests__/GridSpacingTokenGeneration.test.ts +254 -0
  2249. package/src/generators/__tests__/IconTokenGeneration.test.ts +452 -0
  2250. package/src/generators/__tests__/KotlinThemeTypes.test.ts +110 -0
  2251. package/src/generators/__tests__/ModeAwareGeneration.test.ts +160 -0
  2252. package/src/generators/__tests__/NativeOklchOutput.test.ts +56 -0
  2253. package/src/generators/__tests__/OklchExport.test.ts +71 -0
  2254. package/src/generators/__tests__/ProductRepoSimulation.test.ts +91 -0
  2255. package/src/generators/__tests__/ResponsiveGridGeneration.test.ts +291 -0
  2256. package/src/generators/__tests__/Spec076TokenMigration.test.ts +106 -0
  2257. package/src/generators/__tests__/Spec077ModesVerification.test.ts +52 -0
  2258. package/src/generators/__tests__/SwiftThemeTypes.test.ts +122 -0
  2259. package/src/generators/__tests__/TokenFileGenerator.test.ts +914 -0
  2260. package/src/generators/__tests__/TransformerRegistry.test.ts +118 -0
  2261. package/src/generators/__tests__/WcagValueExportSupport.test.ts +84 -0
  2262. package/src/generators/__tests__/WcagValueInfrastructure.test.ts +122 -0
  2263. package/src/generators/__tests__/WebOklchOutput.test.ts +72 -0
  2264. package/src/generators/__tests__/generateTokenIndex.test.ts +204 -0
  2265. package/src/generators/__tests__/helpers/defaultSemanticOptions.ts +24 -0
  2266. package/src/generators/generateTokenFiles.ts +337 -0
  2267. package/src/generators/generateTokenIndex.ts +258 -0
  2268. package/src/generators/oklch/OklchExportUtils.ts +57 -0
  2269. package/src/generators/oklch/OklchTokenIndexMetadata.ts +30 -0
  2270. package/src/generators/transformers/FigmaTransformer.ts +912 -0
  2271. package/src/generators/transformers/ITokenTransformer.ts +56 -0
  2272. package/src/generators/transformers/TransformerRegistry.ts +63 -0
  2273. package/src/generators/transformers/index.ts +52 -0
  2274. package/src/generators/types/DTCGTypes.ts +101 -0
  2275. package/src/integration/BuildErrorHandler.ts +440 -0
  2276. package/src/integration/BuildSystemInterface.ts +338 -0
  2277. package/src/integration/PlatformFileSelector.ts +288 -0
  2278. package/src/integration/RegistryCoordinator.ts +404 -0
  2279. package/src/integration/TranslationCoordinator.ts +458 -0
  2280. package/src/integration/TreeShakingOptimizer.ts +350 -0
  2281. package/src/integration/ValidationCoordinator.ts +780 -0
  2282. package/src/integration/__tests__/ComponentTokenValidation.test.ts +762 -0
  2283. package/src/integration/__tests__/ValidationCoordinator.test.ts +609 -0
  2284. package/src/integration/__tests__/performance/ComponentTokenValidationPerformance.test.ts +161 -0
  2285. package/src/integration/index.ts +55 -0
  2286. package/src/naming/NamingConventionManager.ts +318 -0
  2287. package/src/naming/PlatformNamingRules.ts +278 -0
  2288. package/src/naming/__tests__/NamingConventions.test.ts +224 -0
  2289. package/src/naming/index.ts +23 -0
  2290. package/src/parent-completion.md +1 -0
  2291. package/src/performance/CachingStrategy.ts +426 -0
  2292. package/src/performance/FileGenerationOptimizer.ts +294 -0
  2293. package/src/performance/PerformanceMonitor.ts +185 -0
  2294. package/src/performance/PerformanceOptimizer.ts +348 -0
  2295. package/src/performance/index.ts +30 -0
  2296. package/src/providers/AndroidFileOrganizer.ts +241 -0
  2297. package/src/providers/AndroidFormatGenerator.ts +750 -0
  2298. package/src/providers/AndroidUnitConverter.ts +177 -0
  2299. package/src/providers/FormatProvider.ts +187 -0
  2300. package/src/providers/PathProvider.ts +197 -0
  2301. package/src/providers/UnitProvider.ts +106 -0
  2302. package/src/providers/WebFileOrganizer.ts +121 -0
  2303. package/src/providers/WebFormatGenerator.ts +611 -0
  2304. package/src/providers/WebUnitConverter.ts +116 -0
  2305. package/src/providers/__tests__/AndroidAccessibilityTokens.test.ts +86 -0
  2306. package/src/providers/__tests__/AndroidFormatGenerator-semantic.test.ts +494 -0
  2307. package/src/providers/__tests__/FormatProviders.test.ts +828 -0
  2308. package/src/providers/__tests__/InsetTokenGeneration.test.ts +627 -0
  2309. package/src/providers/__tests__/PathProviders.test.ts +512 -0
  2310. package/src/providers/__tests__/PlatformOutputFormat.test.ts +252 -0
  2311. package/src/providers/__tests__/UnitProviders.test.ts +721 -0
  2312. package/src/providers/__tests__/WebFormatGenerator-semantic.test.ts +293 -0
  2313. package/src/providers/__tests__/iOSFormatGenerator-semantic.test.ts +410 -0
  2314. package/src/providers/iOSFileOrganizer.ts +162 -0
  2315. package/src/providers/iOSFormatGenerator.ts +599 -0
  2316. package/src/providers/iOSUnitConverter.ts +125 -0
  2317. package/src/providers/index.ts +26 -0
  2318. package/src/registries/ComponentTokenRegistry.ts +292 -0
  2319. package/src/registries/IRegistry.ts +170 -0
  2320. package/src/registries/PrimitiveTokenRegistry.ts +200 -0
  2321. package/src/registries/SemanticTokenRegistry.ts +237 -0
  2322. package/src/registries/__tests__/ComponentTokenRegistry.test.ts +446 -0
  2323. package/src/registries/__tests__/IRegistry.test.ts +250 -0
  2324. package/src/registries/__tests__/PrimitiveTokenRegistry.test.ts +342 -0
  2325. package/src/registries/__tests__/SemanticTokenRegistry.test.ts +444 -0
  2326. package/src/resolvers/AndroidColorResolver.ts +333 -0
  2327. package/src/resolvers/ModeThemeResolver.ts +152 -0
  2328. package/src/resolvers/SemanticOverrideResolver.ts +155 -0
  2329. package/src/resolvers/SemanticValueResolver.ts +133 -0
  2330. package/src/resolvers/WebColorResolver.ts +240 -0
  2331. package/src/resolvers/__tests__/AndroidColorResolver.test.ts +507 -0
  2332. package/src/resolvers/__tests__/ModeThemeResolver.test.ts +411 -0
  2333. package/src/resolvers/__tests__/SemanticOverrideResolver.test.ts +186 -0
  2334. package/src/resolvers/__tests__/WebColorResolver.test.ts +405 -0
  2335. package/src/resolvers/__tests__/iOSColorResolver.test.ts +432 -0
  2336. package/src/resolvers/iOSColorResolver.ts +224 -0
  2337. package/src/resolvers/index.ts +11 -0
  2338. package/src/security/AIAgentRestrictions.ts +298 -0
  2339. package/src/security/ContaminationAuditor.ts +393 -0
  2340. package/src/security/ContaminationPrevention.ts +275 -0
  2341. package/src/security/DocumentationGuard.ts +258 -0
  2342. package/src/security/FlexibilityTokenGuard.ts +256 -0
  2343. package/src/security/HumanApprovalWorkflow.ts +319 -0
  2344. package/src/security/__tests__/AIAgentRestrictions.test.ts +482 -0
  2345. package/src/security/__tests__/ContaminationPrevention.test.ts +424 -0
  2346. package/src/security/__tests__/SecurityIntegration.test.ts +505 -0
  2347. package/src/security/index.ts +48 -0
  2348. package/src/styles/responsive-grid-usage.md +992 -0
  2349. package/src/styles/responsive-grid.css +200 -0
  2350. package/src/testing/__tests__/utilities.test.ts +175 -0
  2351. package/src/testing/index.ts +154 -0
  2352. package/src/testing/jest-preset.ts +62 -0
  2353. package/src/testing/style-mock.ts +7 -0
  2354. package/src/testing/validators.ts +10 -0
  2355. package/src/themes/ResolvedThemeSet.ts +22 -0
  2356. package/src/themes/ThemeRegistry.ts +97 -0
  2357. package/src/themes/__tests__/ThemeRegistry.test.ts +162 -0
  2358. package/src/tokens/BlendTokens.ts +132 -0
  2359. package/src/tokens/BlurTokens.ts +154 -0
  2360. package/src/tokens/BorderWidthTokens.ts +101 -0
  2361. package/src/tokens/BreakpointTokens.ts +101 -0
  2362. package/src/tokens/ColorTokens.ts +2162 -0
  2363. package/src/tokens/DensityTokens.ts +119 -0
  2364. package/src/tokens/DurationTokens.ts +111 -0
  2365. package/src/tokens/EasingTokens.ts +163 -0
  2366. package/src/tokens/FontFamilyTokens.ts +95 -0
  2367. package/src/tokens/FontSizeTokens.ts +197 -0
  2368. package/src/tokens/FontWeightTokens.ts +166 -0
  2369. package/src/tokens/GlowOpacityTokens.ts +113 -0
  2370. package/src/tokens/LetterSpacingTokens.ts +114 -0
  2371. package/src/tokens/LineHeightTokens.ts +200 -0
  2372. package/src/tokens/OpacityTokens.ts +233 -0
  2373. package/src/tokens/RadiusTokens.ts +236 -0
  2374. package/src/tokens/ScaleTokens.ts +167 -0
  2375. package/src/tokens/ShadowOffsetTokens.ts +279 -0
  2376. package/src/tokens/ShadowOpacityTokens.ts +118 -0
  2377. package/src/tokens/SizingTokens.ts +221 -0
  2378. package/src/tokens/SpacingTokens.ts +255 -0
  2379. package/src/tokens/TapAreaTokens.ts +124 -0
  2380. package/src/tokens/__tests__/AIReadableMathematicalRelationships.test.ts +298 -0
  2381. package/src/tokens/__tests__/BlendTokens.test.ts +357 -0
  2382. package/src/tokens/__tests__/BlurTokens.test.ts +109 -0
  2383. package/src/tokens/__tests__/BorderWidthTokens.test.ts +394 -0
  2384. package/src/tokens/__tests__/ColorTokens.test.ts +847 -0
  2385. package/src/tokens/__tests__/FontFamilyTokens.test.ts +308 -0
  2386. package/src/tokens/__tests__/FontSizeTokensFormulaValidation.test.ts +176 -0
  2387. package/src/tokens/__tests__/FontWeightTokens.test.ts +336 -0
  2388. package/src/tokens/__tests__/LetterSpacingTokens.test.ts +359 -0
  2389. package/src/tokens/__tests__/LineHeightTokensFormulaValidation.test.ts +235 -0
  2390. package/src/tokens/__tests__/MotionTokens.property.test.ts +638 -0
  2391. package/src/tokens/__tests__/MotionTokens.test.ts +431 -0
  2392. package/src/tokens/__tests__/OpacityTokens.test.ts +370 -0
  2393. package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +163 -0
  2394. package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +93 -0
  2395. package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +170 -0
  2396. package/src/tokens/__tests__/RadiusStrategicFlexibilityValidation.test.ts +133 -0
  2397. package/src/tokens/__tests__/RadiusTokensFormulaValidation.test.ts +240 -0
  2398. package/src/tokens/__tests__/ShadowOffsetTokens.test.ts +407 -0
  2399. package/src/tokens/__tests__/SizingTokens.test.ts +132 -0
  2400. package/src/tokens/__tests__/SpacingTokensFormulaValidation.test.ts +205 -0
  2401. package/src/tokens/__tests__/TokenCategories.test.ts +602 -0
  2402. package/src/tokens/__tests__/chromatic-channels.test.ts +57 -0
  2403. package/src/tokens/__tests__/composed-colors.test.ts +62 -0
  2404. package/src/tokens/__tests__/neutral-partition.test.ts +119 -0
  2405. package/src/tokens/__tests__/portability-boundary.test.ts +60 -0
  2406. package/src/tokens/color/channels/chroma/chromatic.ts +67 -0
  2407. package/src/tokens/color/channels/chroma/neutral.ts +35 -0
  2408. package/src/tokens/color/channels/hues.ts +29 -0
  2409. package/src/tokens/color/channels/index.ts +21 -0
  2410. package/src/tokens/color/channels/lightness/chromatic.ts +68 -0
  2411. package/src/tokens/color/channels/lightness/neutral.ts +36 -0
  2412. package/src/tokens/color/index.ts +31 -0
  2413. package/src/tokens/color/primitives/chromatic.ts +64 -0
  2414. package/src/tokens/color/primitives/neutral.ts +45 -0
  2415. package/src/tokens/component/progress.ts +153 -0
  2416. package/src/tokens/index.ts +383 -0
  2417. package/src/tokens/platforms/android/MotionTokens.kt +322 -0
  2418. package/src/tokens/platforms/android/MotionTokens.md +0 -0
  2419. package/src/tokens/platforms/ios/MotionTokens.md +322 -0
  2420. package/src/tokens/platforms/ios/MotionTokens.swift +253 -0
  2421. package/src/tokens/semantic/AccessibilityTokens.README.md +1070 -0
  2422. package/src/tokens/semantic/AccessibilityTokens.ts +219 -0
  2423. package/src/tokens/semantic/BlendTokens.ts +225 -0
  2424. package/src/tokens/semantic/BorderWidthTokens.ts +162 -0
  2425. package/src/tokens/semantic/ColorTokens.ts +866 -0
  2426. package/src/tokens/semantic/ElevationTokens.ts +177 -0
  2427. package/src/tokens/semantic/GridSpacingTokens.ts +147 -0
  2428. package/src/tokens/semantic/IconTokens.ts +342 -0
  2429. package/src/tokens/semantic/LayeringTokens.ts +167 -0
  2430. package/src/tokens/semantic/MotionTokens.ts +143 -0
  2431. package/src/tokens/semantic/OpacityTokens.ts +89 -0
  2432. package/src/tokens/semantic/RadiusTokens.ts +242 -0
  2433. package/src/tokens/semantic/ShadowTokens.ts +442 -0
  2434. package/src/tokens/semantic/SpacingTokens.ts +274 -0
  2435. package/src/tokens/semantic/StyleTokens.ts +22 -0
  2436. package/src/tokens/semantic/TypographyTokens.ts +399 -0
  2437. package/src/tokens/semantic/ZIndexTokens.ts +124 -0
  2438. package/src/tokens/semantic/__tests__/AccessibilityTokens.test.ts +222 -0
  2439. package/src/tokens/semantic/__tests__/BlendTokens.test.ts +377 -0
  2440. package/src/tokens/semantic/__tests__/BorderWidthTokens.test.ts +141 -0
  2441. package/src/tokens/semantic/__tests__/ColorTokens.test.ts +1391 -0
  2442. package/src/tokens/semantic/__tests__/IconTokens.test.ts +769 -0
  2443. package/src/tokens/semantic/__tests__/MotionTokens.test.ts +313 -0
  2444. package/src/tokens/semantic/__tests__/OpacityTokens.test.ts +183 -0
  2445. package/src/tokens/semantic/__tests__/SemanticTokenIntegration.test.ts +426 -0
  2446. package/src/tokens/semantic/__tests__/ValidatePrimitiveReferences.test.ts +382 -0
  2447. package/src/tokens/semantic/index.ts +611 -0
  2448. package/src/tokens/themes/dark/SemanticOverrides.ts +168 -0
  2449. package/src/tokens/themes/dark-wcag/SemanticOverrides.ts +21 -0
  2450. package/src/tokens/themes/types.ts +26 -0
  2451. package/src/tokens/themes/wcag/SemanticOverrides.ts +28 -0
  2452. package/src/tools/ThemeFileGenerator.ts +109 -0
  2453. package/src/tools/integrity/DiskFreshGenerator.ts +36 -0
  2454. package/src/tools/integrity/GenerationIntegrityCheck.ts +132 -0
  2455. package/src/tools/integrity/Invariants.ts +228 -0
  2456. package/src/tools/integrity/Normalizer.ts +94 -0
  2457. package/src/tools/integrity/SemanticComparator.ts +127 -0
  2458. package/src/tools/integrity/__tests__/GenerationIntegrityCheck.test.ts +132 -0
  2459. package/src/tools/integrity/__tests__/Invariants.test.ts +142 -0
  2460. package/src/tools/integrity/__tests__/Normalizer.test.ts +65 -0
  2461. package/src/tools/integrity/__tests__/SemanticComparator.test.ts +62 -0
  2462. package/src/tools/integrity/__tests__/consumer-package-mode.test.ts +205 -0
  2463. package/src/tools/integrity/cli/run-audit.ts +150 -0
  2464. package/src/tools/integrity/inventory.ts +51 -0
  2465. package/src/tools/integrity/manifest.ts +56 -0
  2466. package/src/tools/integrity/types/index.ts +183 -0
  2467. package/src/tools/release/__tests__/ChangeClassifier.test.ts +133 -0
  2468. package/src/tools/release/__tests__/ChangeExtractor.test.ts +222 -0
  2469. package/src/tools/release/__tests__/GitHubPublisher.test.ts +240 -0
  2470. package/src/tools/release/__tests__/NotesRenderer.test.ts +142 -0
  2471. package/src/tools/release/__tests__/NpmPublisher.test.ts +289 -0
  2472. package/src/tools/release/__tests__/PipelineIntegration.test.ts +188 -0
  2473. package/src/tools/release/__tests__/ReleasePipeline.test.ts +192 -0
  2474. package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +49 -0
  2475. package/src/tools/release/__tests__/SummaryScanner.test.ts +141 -0
  2476. package/src/tools/release/__tests__/TagResolver.test.ts +91 -0
  2477. package/src/tools/release/__tests__/VersionCalculator.test.ts +270 -0
  2478. package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +80 -0
  2479. package/src/tools/release/cli/ReleasePipeline.ts +165 -0
  2480. package/src/tools/release/cli/release-tool.ts +107 -0
  2481. package/src/tools/release/pipeline/ChangeClassifier.ts +61 -0
  2482. package/src/tools/release/pipeline/ChangeExtractor.ts +87 -0
  2483. package/src/tools/release/pipeline/NotesRenderer.ts +66 -0
  2484. package/src/tools/release/pipeline/SummaryScanner.ts +70 -0
  2485. package/src/tools/release/pipeline/TagResolver.ts +40 -0
  2486. package/src/tools/release/pipeline/VersionCalculator.ts +375 -0
  2487. package/src/tools/release/publishers/GitHubPublisher.ts +228 -0
  2488. package/src/tools/release/publishers/NpmPublisher.ts +196 -0
  2489. package/src/tools/release/release-config.json +5 -0
  2490. package/src/tools/release/types/index.ts +282 -0
  2491. package/src/tools/release/validators/SemanticVersionValidator.ts +67 -0
  2492. package/src/types/ComponentTypes.ts +76 -0
  2493. package/src/types/PrimitiveToken.ts +112 -0
  2494. package/src/types/SemanticToken.ts +91 -0
  2495. package/src/types/TranslationOutput.ts +105 -0
  2496. package/src/types/ValidationResult.ts +74 -0
  2497. package/src/types/__tests__/ComponentTypes.test.ts +73 -0
  2498. package/src/types/css.d.ts +35 -0
  2499. package/src/types/generated/TokenTypes.ts +142 -0
  2500. package/src/types/index.ts +42 -0
  2501. package/src/validators/BaselineGridValidator.ts +119 -0
  2502. package/src/validators/CompositionPatternValidator.ts +259 -0
  2503. package/src/validators/CrossPlatformConsistencyValidator.ts +498 -0
  2504. package/src/validators/ErrorValidator.ts +998 -0
  2505. package/src/validators/IValidator.ts +273 -0
  2506. package/src/validators/MathematicalRelationshipParser.ts +434 -0
  2507. package/src/validators/ModeParity.ts +123 -0
  2508. package/src/validators/PassValidator.ts +533 -0
  2509. package/src/validators/PlatformConstraintHandler.ts +453 -0
  2510. package/src/validators/PrimitiveReferenceValidator.ts +284 -0
  2511. package/src/validators/SemanticTokenValidator.ts +496 -0
  2512. package/src/validators/StemmaComponentNamingValidator.ts +524 -0
  2513. package/src/validators/StemmaErrorGuidanceSystem.ts +1600 -0
  2514. package/src/validators/StemmaPropertyAccessibilityValidator.ts +823 -0
  2515. package/src/validators/StemmaTokenUsageValidator.ts +650 -0
  2516. package/src/validators/SyntaxValidator.ts +537 -0
  2517. package/src/validators/ThreeTierValidator.ts +822 -0
  2518. package/src/validators/ToleranceCalculator.ts +324 -0
  2519. package/src/validators/ValidationReasoning.ts +464 -0
  2520. package/src/validators/WCAGValidator.ts +219 -0
  2521. package/src/validators/WarningValidator.ts +626 -0
  2522. package/src/validators/__tests__/BaselineGridValidator.test.ts +292 -0
  2523. package/src/validators/__tests__/BorderWidthValidation.test.ts +595 -0
  2524. package/src/validators/__tests__/CompositionPatterns.test.ts +463 -0
  2525. package/src/validators/__tests__/CrossPlatformConsistency.test.ts +834 -0
  2526. package/src/validators/__tests__/IValidator.test.ts +258 -0
  2527. package/src/validators/__tests__/MathematicalRelationshipParser.test.ts +465 -0
  2528. package/src/validators/__tests__/PlatformConstraints.test.ts +486 -0
  2529. package/src/validators/__tests__/SemanticTokenValidator.test.ts +723 -0
  2530. package/src/validators/__tests__/StemmaComponentNamingValidator.test.ts +597 -0
  2531. package/src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts +717 -0
  2532. package/src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts +349 -0
  2533. package/src/validators/__tests__/StemmaTokenUsageValidator.test.ts +432 -0
  2534. package/src/validators/__tests__/SyntaxValidator.test.ts +360 -0
  2535. package/src/validators/__tests__/ThreeTierValidator.test.ts +906 -0
  2536. package/src/validators/__tests__/ValidationReasoning.test.ts +636 -0
  2537. package/src/validators/__tests__/WCAGValidator.test.ts +243 -0
  2538. package/src/validators/buildValidation.ts +170 -0
  2539. package/src/validators/index.ts +144 -0
  2540. package/src/workflows/ConsistencyValidator.ts +339 -0
  2541. package/src/workflows/TokenGenerationWorkflow.ts +460 -0
  2542. package/src/workflows/ValidationPipeline.ts +284 -0
  2543. package/src/workflows/WorkflowErrorHandler.ts +441 -0
  2544. package/token-index/README.md +32 -0
  2545. package/token-index/components.yaml +265 -0
  2546. package/token-index/primitives.yaml +2761 -0
  2547. package/token-index/semantics.yaml +2421 -0
@@ -0,0 +1,2094 @@
1
+ ---
2
+ id: test-development-standards
3
+ inclusion: manual
4
+ name: Test-Development-Standards
5
+ description: Sustainable test development practices — test categories, web component testing patterns, linting and testing integration, behavioral contract testing, and integrated workflow examples. Load when writing tests, debugging test failures, understanding test patterns, or using Stemma System validators.
6
+ ---
7
+
8
+ # Test Development Standards
9
+
10
+ **Date**: 2025-12-17
11
+ **Last Reviewed**: 2026-06-26
12
+ **Purpose**: Establish sustainable test development practices that support system evolution
13
+ **Organization**: process-standard
14
+ **Scope**: cross-project
15
+ **Layer**: 2
16
+ **Relevant Tasks**: all-tasks
17
+
18
+ ## AI Agent Reading Priorities
19
+
20
+ **This document contains essential testing guidance and specialized patterns. Read strategically based on your current work.**
21
+
22
+ **Layer Context**: This is a Layer 2 (Frameworks and Patterns) document that provides reusable testing standards. It's conditionally loaded and contains sections for different testing scenarios.
23
+
24
+ ### WHEN Writing New Tests THEN Read:
25
+ 1. ✅ **Test Categories** (understand evergreen vs temporary)
26
+ 2. ✅ **Testing Philosophy** (behavior vs implementation)
27
+ 3. ✅ **Test Lifecycle Management** (when to write/update/delete)
28
+ 4. ✅ **Anti-Patterns** (avoid common mistakes)
29
+ 5. ❌ **SKIP**: Web component patterns (unless testing web components)
30
+ 6. ❌ **SKIP**: Linting integration (unless using Stemma validators)
31
+
32
+ ### WHEN Testing Web Components THEN Read:
33
+ 1. ✅ **Web Component Testing Patterns** (JSDOM setup, async lifecycle)
34
+ 2. ✅ **Anti-Patterns** (web component specific issues)
35
+ 3. ✅ **Examples from Icon** (concrete patterns)
36
+ 4. ❌ **SKIP**: Integration testing patterns (unless also doing integration tests)
37
+
38
+ ### WHEN Writing Integration Tests THEN Read:
39
+ 1. ✅ **Integration Testing Patterns** (contracts vs implementation)
40
+ 2. ✅ **Testing Philosophy** (behavior vs philosophical preferences)
41
+ 3. ✅ **Anti-Patterns** (integration test specific issues)
42
+ 4. ❌ **SKIP**: Web component patterns (unless integrating web components)
43
+
44
+ ### WHEN Using Stemma System Validators THEN Read:
45
+ 1. ✅ **Linting and Testing Integration** (when to use linting vs testing)
46
+ 2. ✅ **Stemma System Validators** (available validators and usage)
47
+ 3. ✅ **Decision Framework: Linting vs Testing** (choose validation type)
48
+ 4. ✅ **Complementary Validation Patterns** (combine linting and testing)
49
+ 5. ✅ **Stemma System Validation Checklist** (complete validation workflow)
50
+
51
+ ### WHEN Debugging Test Failures THEN Read:
52
+ 1. ✅ **Anti-Patterns** (identify if test has known issues)
53
+ 2. ✅ **Examples from Icon** (see how similar issues were resolved)
54
+ 3. ✅ **Testing Philosophy** (understand if test is checking wrong things)
55
+ 4. ✅ **Relevant pattern section** (web component or integration)
56
+
57
+ ---
58
+
59
+ ## Overview
60
+
61
+ This document establishes standards for writing maintainable, meaningful tests that support system evolution rather than hinder it. The guidance comes from real-world experience fixing 30 failing Icon tests during the Component Token Compliance Audit (Spec 023).
62
+
63
+ **Core Principles**:
64
+ - Test behavior, not implementation details
65
+ - Distinguish evergreen tests from temporary tests
66
+ - Avoid testing philosophical preferences
67
+ - Manage test lifecycle explicitly
68
+ - Use appropriate patterns for web components and integration tests
69
+
70
+
71
+ ---
72
+
73
+ ## Test Categories
74
+
75
+ ### Evergreen Tests
76
+
77
+ **Definition**: Tests that should be maintained indefinitely because they verify core behavior and contracts.
78
+
79
+ **Characteristics**:
80
+ - Test public APIs and contracts
81
+ - Verify functional requirements from specs
82
+ - Survive refactoring and implementation changes
83
+ - Provide long-term value
84
+ - Focus on "what" the system does, not "how"
85
+
86
+ **Examples**:
87
+ - `Icon.test.ts` - Tests functional API (`createIcon()`, `Icon` class)
88
+ - `Icon.accessibility.test.ts` - Tests ARIA attributes and screen reader compatibility
89
+ - Component behavior tests that verify requirements
90
+
91
+ **When to Create**:
92
+ - During feature development
93
+ - When implementing new requirements
94
+ - When defining public APIs or contracts
95
+ - When adding accessibility features
96
+
97
+ **Maintenance**:
98
+ - Update when requirements change
99
+ - Update when contracts change
100
+ - Keep passing as implementation evolves
101
+ - Never delete unless feature is removed
102
+
103
+ ### Temporary Tests
104
+
105
+ **Definition**: Tests that serve a specific purpose and should be retired after that purpose is fulfilled.
106
+
107
+ **Characteristics**:
108
+ - Verify migration progress or temporary constraints
109
+ - Check specific cleanup or refactoring work
110
+ - Become maintenance burden after purpose served
111
+ - Have explicit retirement criteria
112
+ - Focus on temporary state, not permanent behavior
113
+
114
+ **Examples**:
115
+ - Token compliance tests during migration (retire after all components migrated)
116
+ - Hard-coded value detection tests during cleanup (retire after cleanup complete)
117
+ - Temporary constraint verification during refactoring
118
+
119
+ **When to Create**:
120
+ - During migrations or cleanup work
121
+ - When verifying temporary constraints
122
+ - When tracking progress toward a goal
123
+ - When validating spec-specific work
124
+
125
+ **Retirement Criteria**:
126
+ - Link to spec or task completion
127
+ - Document criteria in test comments
128
+ - Review after each spec completes
129
+ - Delete confidently when criteria met
130
+
131
+ **Example from Spec 017**:
132
+ ```typescript
133
+ /**
134
+ * TEMPORARY TEST - Delete after cleanup complete
135
+ * Validates ButtonCTA iOS color token replacements
136
+ */
137
+ describe('ButtonCTA Token Compliance', () => {
138
+ it('should use color tokens instead of hard-coded values', () => {
139
+ // Test implementation
140
+ });
141
+ });
142
+ ```
143
+
144
+
145
+ ### Decision Framework: Evergreen vs Temporary
146
+
147
+ **Ask these questions**:
148
+
149
+ 1. **Does this test verify permanent behavior?**
150
+ - Yes → Evergreen
151
+ - No → Consider temporary
152
+
153
+ 2. **Will this test provide value in 6 months?**
154
+ - Yes → Evergreen
155
+ - No → Temporary
156
+
157
+ 3. **Is this test checking a temporary constraint?**
158
+ - Yes → Temporary
159
+ - No → Evergreen
160
+
161
+ 4. **Does this test track migration or cleanup progress?**
162
+ - Yes → Temporary
163
+ - No → Evergreen
164
+
165
+ 5. **Would deleting this test after spec completion cause problems?**
166
+ - Yes → Evergreen
167
+ - No → Temporary
168
+
169
+ **Example Decision Process**:
170
+
171
+ **Test**: "Icon should use token-based sizing"
172
+ - Permanent behavior? Yes (design system principle)
173
+ - Value in 6 months? Yes (always want token compliance)
174
+ - Temporary constraint? No (permanent requirement)
175
+ - **Decision**: Evergreen
176
+
177
+ **Test**: "Icon should not have hard-coded 24px values"
178
+ - Permanent behavior? No (checking absence of specific anti-pattern)
179
+ - Value in 6 months? No (after migration, this is guaranteed)
180
+ - Temporary constraint? Yes (only matters during migration)
181
+ - **Decision**: Temporary (retire after Icon migration complete)
182
+
183
+ ---
184
+
185
+ ## Testing Philosophy
186
+
187
+ ### Test Behavior, Not Implementation
188
+
189
+ **Principle**: Tests should verify what the system does (behavior) rather than how it does it (implementation).
190
+
191
+ **Why This Matters**:
192
+ - Implementation can change while behavior stays the same
193
+ - Tests that check implementation details become brittle
194
+ - Refactoring breaks tests even when behavior is correct
195
+ - Maintenance burden increases unnecessarily
196
+
197
+ **Behavior vs Implementation**:
198
+
199
+ | Behavior (Test This) | Implementation (Don't Test This) |
200
+ |---------------------|----------------------------------|
201
+ | Icon renders at 24px size | Icon has `width="24"` attribute |
202
+ | Button responds to clicks | Button uses specific event handler |
203
+ | Component is accessible | Component uses specific ARIA pattern |
204
+ | Data is validated | Validation uses specific regex |
205
+
206
+ **Example from Icon Tests**:
207
+
208
+ ❌ **Bad - Tests Implementation**:
209
+ ```typescript
210
+ it('should have width and height attributes', () => {
211
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
212
+ expect(iconHTML).toContain('width="24"');
213
+ expect(iconHTML).toContain('height="24"');
214
+ });
215
+ ```
216
+
217
+ **Problem**: This test assumes Icon uses inline attributes. When Icon switched to CSS classes for token-based sizing, the test failed even though Icon still renders at 24px.
218
+
219
+ ✅ **Good - Tests Behavior**:
220
+ ```typescript
221
+ it('should render with correct size class', () => {
222
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
223
+ expect(iconHTML).toContain('icon--size-100');
224
+ });
225
+ ```
226
+
227
+ **Better**: This test verifies Icon applies the correct CSS class for 24px sizing, which is the actual contract.
228
+
229
+
230
+ ### Test Contracts, Not Details
231
+
232
+ **Principle**: Tests should verify the contract (interface, API, behavior) rather than internal details.
233
+
234
+ **Contract**: The agreement between a component and its consumers about what it provides and how to use it.
235
+
236
+ **Internal Details**: Implementation choices that don't affect the contract.
237
+
238
+ **Example from ButtonCTA Integration**:
239
+
240
+ **Contract**: ButtonCTA renders icons at appropriate sizes for button variants
241
+ - Small/medium buttons: 24px icons
242
+ - Large buttons: 32px icons
243
+
244
+ **Internal Detail**: How Icon implements sizing (CSS classes vs inline attributes)
245
+
246
+ ❌ **Bad - Tests Internal Detail**:
247
+ ```typescript
248
+ it('should use correct icon size for small buttons', () => {
249
+ const button = createButtonCTA({ size: 'small', icon: 'arrow-right' });
250
+ const iconSpan = button.querySelector('.button-cta__icon');
251
+
252
+ // Tests how Icon implements sizing (internal detail)
253
+ expect(iconSpan!.innerHTML).toContain('width="24"');
254
+ expect(iconSpan!.innerHTML).toContain('height="24"');
255
+ });
256
+ ```
257
+
258
+ ✅ **Good - Tests Contract**:
259
+ ```typescript
260
+ it('should use correct icon size for small buttons', () => {
261
+ const button = createButtonCTA({ size: 'small', icon: 'arrow-right' });
262
+ const iconSpan = button.querySelector('.button-cta__icon');
263
+
264
+ // Tests that Icon receives correct size (contract)
265
+ expect(iconSpan!.innerHTML).toContain('icon--size-100'); // 24px
266
+ });
267
+ ```
268
+
269
+ **Why This Matters**: When Icon changed from inline attributes to CSS classes, the contract didn't change (still renders 24px icons), but tests checking internal details failed.
270
+
271
+ ### Don't Test Philosophical Preferences
272
+
273
+ **Principle**: Avoid tests that check opinions about code structure rather than functional requirements.
274
+
275
+ **Philosophical Preference**: Opinion about how code should be organized or structured
276
+ **Functional Requirement**: Specification of what the system must do
277
+
278
+ **Examples of Philosophical Tests to Avoid**:
279
+
280
+ ❌ **"Components must use CSS classes for sizing"**
281
+ - This is a preference about implementation approach
282
+ - Not a functional requirement
283
+ - Becomes brittle if implementation changes
284
+
285
+ ❌ **"All values must come from tokens"**
286
+ - After migration, this is guaranteed by architecture
287
+ - Testing it becomes philosophical rather than functional
288
+ - Better to test that values are correct, not their source
289
+
290
+ ❌ **"Code must follow specific pattern"**
291
+ - Unless pattern affects behavior, this is preference
292
+ - Tests should verify behavior, not code style
293
+
294
+ **Examples of Functional Tests to Keep**:
295
+
296
+ ✅ **"Icon renders at 24px when size prop is 24"**
297
+ - Verifies functional behavior
298
+ - Doesn't care about implementation
299
+ - Survives refactoring
300
+
301
+ ✅ **"ButtonCTA icon matches button size variant"**
302
+ - Verifies integration contract
303
+ - Doesn't dictate how sizing is implemented
304
+ - Tests actual requirement
305
+
306
+ ✅ **"Components are accessible to screen readers"**
307
+ - Verifies functional requirement
308
+ - Doesn't dictate specific ARIA pattern
309
+ - Tests user-facing behavior
310
+
311
+
312
+ **Decision Framework: Functional vs Philosophical**:
313
+
314
+ 1. **Is this specified in requirements?**
315
+ - Yes → Functional (test it)
316
+ - No → Might be philosophical
317
+
318
+ 2. **Does this affect user-facing behavior?**
319
+ - Yes → Functional (test it)
320
+ - No → Likely philosophical (don't test)
321
+
322
+ 3. **Would changing this break the contract?**
323
+ - Yes → Functional (test it)
324
+ - No → Philosophical (don't test)
325
+
326
+ 4. **Is this an opinion about code structure?**
327
+ - Yes → Philosophical (don't test)
328
+ - No → Functional (test it)
329
+
330
+ **Example Decision Process**:
331
+
332
+ **Test**: "Icon should use CSS classes for sizing"
333
+ - Specified in requirements? No (requirements say "render at correct size")
334
+ - Affects user behavior? No (users see correct size either way)
335
+ - Breaks contract if changed? No (contract is "render at size X")
336
+ - Opinion about structure? Yes (preference for CSS over attributes)
337
+ - **Decision**: Philosophical - Don't test
338
+
339
+ **Test**: "Icon should render at correct size"
340
+ - Specified in requirements? Yes (size prop requirement)
341
+ - Affects user behavior? Yes (users see wrong size if broken)
342
+ - Breaks contract if changed? Yes (size is part of API contract)
343
+ - Opinion about structure? No (functional requirement)
344
+ - **Decision**: Functional - Test it
345
+
346
+ ---
347
+
348
+ ## Web Component Testing Patterns
349
+
350
+ ### JSDOM and Custom Elements
351
+
352
+ **Challenge**: Web components require proper setup in Jest/JSDOM test environment.
353
+
354
+ **Key Issues**:
355
+ - Custom element registration timing
356
+ - Async lifecycle callbacks (`connectedCallback`, `attributeChangedCallback`)
357
+ - Shadow DOM rendering
358
+ - `customElements.whenDefined()` usage
359
+
360
+ ### Pattern: Explicit Custom Element Registration
361
+
362
+ **Problem**: Tests fail because custom element isn't registered or ready when test runs.
363
+
364
+ **Solution**: Explicitly register and wait for custom element definition.
365
+
366
+ **Implementation**:
367
+
368
+ ```typescript
369
+ import { IconBaseElement } from '../Icon.web';
370
+
371
+ describe('Icon Web Component Lifecycle', () => {
372
+ beforeAll(() => {
373
+ // Ensure custom element is registered
374
+ if (!customElements.get('icon-base')) {
375
+ customElements.define('icon-base', IconBaseElement);
376
+ }
377
+ });
378
+
379
+ beforeEach(async () => {
380
+ // Wait for custom element to be defined
381
+ await customElements.whenDefined('icon-base');
382
+ });
383
+
384
+ it('should render icon when added to DOM', async () => {
385
+ const element = document.createElement('icon-base') as IconBaseElement;
386
+ element.setAttribute('name', 'arrow-right');
387
+ element.setAttribute('size', '24');
388
+
389
+ document.body.appendChild(element);
390
+
391
+ // Wait for connectedCallback to fire and render
392
+ await new Promise(resolve => setTimeout(resolve, 0));
393
+
394
+ const svg = element.shadowRoot?.querySelector('svg');
395
+ expect(svg).toBeTruthy();
396
+
397
+ // Cleanup
398
+ document.body.removeChild(element);
399
+ });
400
+ });
401
+ ```
402
+
403
+ **Key Elements**:
404
+ 1. **`beforeAll()`**: Register custom element once for all tests
405
+ 2. **`beforeEach()`**: Wait for element definition before each test
406
+ 3. **`async/await`**: Make tests async to handle lifecycle timing
407
+ 4. **`setTimeout(resolve, 0)`**: Wait one tick for `connectedCallback` to fire
408
+ 5. **Cleanup**: Remove elements from DOM after each test
409
+
410
+
411
+ ### Pattern: Shadow DOM Querying
412
+
413
+ **Problem**: `element.shadowRoot?.querySelector()` returns `undefined` even though element is in DOM.
414
+
415
+ **Root Cause**: Shadow DOM isn't rendered yet because `connectedCallback` hasn't fired or completed.
416
+
417
+ **Solution**: Wait for async lifecycle before querying shadow DOM.
418
+
419
+ **Implementation**:
420
+
421
+ ```typescript
422
+ it('should render SVG in shadow DOM', async () => {
423
+ await customElements.whenDefined('icon-base');
424
+
425
+ const element = document.createElement('icon-base') as IconBaseElement;
426
+ element.setAttribute('name', 'check');
427
+ document.body.appendChild(element);
428
+
429
+ // Critical: Wait for connectedCallback to complete
430
+ await new Promise(resolve => setTimeout(resolve, 0));
431
+
432
+ // Now shadow DOM is ready
433
+ const svg = element.shadowRoot?.querySelector('svg');
434
+ expect(svg).toBeTruthy();
435
+ expect(svg?.classList.contains('icon')).toBe(true);
436
+
437
+ document.body.removeChild(element);
438
+ });
439
+ ```
440
+
441
+ **Why This Works**:
442
+ - `customElements.whenDefined()` ensures element class is registered
443
+ - `appendChild()` triggers `connectedCallback` asynchronously
444
+ - `setTimeout(resolve, 0)` waits one event loop tick for callback to complete
445
+ - Shadow DOM is now rendered and queryable
446
+
447
+ ### Pattern: Attribute Change Testing
448
+
449
+ **Problem**: Tests for `attributeChangedCallback` fail because changes don't trigger re-render.
450
+
451
+ **Solution**: Wait after attribute changes for callback to fire.
452
+
453
+ **Implementation**:
454
+
455
+ ```typescript
456
+ it('should update when size attribute changes', async () => {
457
+ await customElements.whenDefined('icon-base');
458
+
459
+ const element = document.createElement('icon-base') as IconBaseElement;
460
+ element.setAttribute('name', 'arrow-right');
461
+ element.setAttribute('size', '24');
462
+ document.body.appendChild(element);
463
+
464
+ await new Promise(resolve => setTimeout(resolve, 0));
465
+
466
+ // Verify initial state
467
+ let svg = element.shadowRoot?.querySelector('svg');
468
+ expect(svg?.classList.contains('icon--size-100')).toBe(true);
469
+
470
+ // Change attribute
471
+ element.setAttribute('size', '32');
472
+
473
+ // Wait for attributeChangedCallback to fire
474
+ await new Promise(resolve => setTimeout(resolve, 0));
475
+
476
+ // Verify updated state
477
+ svg = element.shadowRoot?.querySelector('svg');
478
+ expect(svg?.classList.contains('icon--size-200')).toBe(true);
479
+
480
+ document.body.removeChild(element);
481
+ });
482
+ ```
483
+
484
+ **Key Points**:
485
+ - Wait after initial `appendChild()` for first render
486
+ - Wait after `setAttribute()` for re-render
487
+ - Query shadow DOM after each wait
488
+ - Verify state changes correctly
489
+
490
+ ### Common JSDOM Limitations
491
+
492
+ **What Works**:
493
+ - `customElements.define()` and `customElements.get()`
494
+ - Basic custom element creation with `document.createElement()`
495
+ - Shadow DOM attachment with `attachShadow()`
496
+ - `customElements.whenDefined()` promise
497
+
498
+ **What Has Limitations**:
499
+ - Lifecycle callbacks may not fire reliably without explicit waits
500
+ - Shadow DOM rendering may not work exactly like real browsers
501
+ - Timing issues with when custom elements become "defined"
502
+ - `connectedCallback` may not fire when element is added to document
503
+
504
+ **Best Practices**:
505
+ - Always use `customElements.whenDefined()` before creating elements
506
+ - Always wait after `appendChild()` before querying shadow DOM
507
+ - Always wait after `setAttribute()` before checking for changes
508
+ - Make all web component tests async
509
+ - Clean up elements after each test
510
+
511
+
512
+ ---
513
+
514
+ ## Integration Testing Patterns
515
+
516
+ ### What to Verify in Integration Tests
517
+
518
+ **Integration tests** verify that components work together correctly, not that individual components work in isolation.
519
+
520
+ **Focus on**:
521
+ - Component A correctly calls Component B's API
522
+ - Component A passes correct props/parameters to Component B
523
+ - Component A handles Component B's output correctly
524
+ - Integration contract is maintained
525
+
526
+ **Don't focus on**:
527
+ - How Component B implements its functionality
528
+ - Internal details of Component B's rendering
529
+ - Specific implementation choices in Component B
530
+
531
+ ### Pattern: Test Integration Contract
532
+
533
+ **Example from ButtonCTA + Icon Integration**:
534
+
535
+ **Contract**: ButtonCTA renders icons at appropriate sizes
536
+ - Small/medium buttons → 24px icons (`iconSizes.size100`)
537
+ - Large buttons → 32px icons (`iconSizes.size125`)
538
+
539
+ ✅ **Good - Tests Contract**:
540
+ ```typescript
541
+ it('should use correct icon size for small buttons', () => {
542
+ const button = createButtonCTA({
543
+ size: 'small',
544
+ icon: 'arrow-right',
545
+ label: 'Next'
546
+ });
547
+
548
+ const iconSpan = button.querySelector('.button-cta__icon');
549
+
550
+ // Verify ButtonCTA called createIcon with correct size
551
+ // Check for CSS class that corresponds to 24px
552
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
553
+ });
554
+
555
+ it('should use correct icon size for large buttons', () => {
556
+ const button = createButtonCTA({
557
+ size: 'large',
558
+ icon: 'arrow-right',
559
+ label: 'Next'
560
+ });
561
+
562
+ const iconSpan = button.querySelector('.button-cta__icon');
563
+
564
+ // Verify ButtonCTA called createIcon with correct size
565
+ // Check for CSS class that corresponds to 32px
566
+ expect(iconSpan!.innerHTML).toContain('icon--size-200');
567
+ });
568
+ ```
569
+
570
+ **What This Tests**:
571
+ - ✅ ButtonCTA imports and calls `createIcon` correctly
572
+ - ✅ ButtonCTA passes correct size parameter based on button size
573
+ - ✅ Icon markup is inserted into button's shadow DOM
574
+ - ✅ Integration contract is maintained
575
+
576
+ **What This Doesn't Test**:
577
+ - ❌ How Icon implements sizing (CSS classes vs attributes)
578
+ - ❌ Icon's internal rendering logic
579
+ - ❌ Specific pixel values in Icon's output
580
+
581
+ ### Pattern: Avoid Testing Implementation Details
582
+
583
+ ❌ **Bad - Tests Implementation Details**:
584
+ ```typescript
585
+ it('should render icon with inline width/height attributes', () => {
586
+ const button = createButtonCTA({
587
+ size: 'small',
588
+ icon: 'arrow-right',
589
+ label: 'Next'
590
+ });
591
+
592
+ const iconSpan = button.querySelector('.button-cta__icon');
593
+
594
+ // This tests HOW Icon implements sizing (implementation detail)
595
+ expect(iconSpan!.innerHTML).toContain('width="24"');
596
+ expect(iconSpan!.innerHTML).toContain('height="24"');
597
+ });
598
+ ```
599
+
600
+ **Problems**:
601
+ - Test assumes Icon uses inline attributes
602
+ - Test breaks when Icon changes to CSS-based sizing
603
+ - Test doesn't verify the actual contract (correct size)
604
+ - Test is brittle and creates maintenance burden
605
+
606
+ **Why This Failed**: When Icon switched from inline attributes to CSS classes for token-based sizing, these tests failed even though:
607
+ - ButtonCTA still works correctly
608
+ - Icons still render at correct sizes
609
+ - Integration contract is maintained
610
+ - No functional regression occurred
611
+
612
+
613
+ ### Pattern: Token-Based Design Considerations
614
+
615
+ **Challenge**: When components use token-based design, tests need to verify token usage without checking implementation details.
616
+
617
+ **Approach**: Test that correct token references are used, not specific pixel values.
618
+
619
+ **Example**:
620
+
621
+ ✅ **Good - Tests Token Usage**:
622
+ ```typescript
623
+ it('should use icon size tokens for sizing', () => {
624
+ const button = createButtonCTA({
625
+ size: 'small',
626
+ icon: 'arrow-right',
627
+ label: 'Next'
628
+ });
629
+
630
+ const iconSpan = button.querySelector('.button-cta__icon');
631
+
632
+ // Verify token-based CSS class is applied
633
+ // This tests the contract: "use token-based sizing"
634
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
635
+ });
636
+ ```
637
+
638
+ ❌ **Bad - Tests Pixel Values**:
639
+ ```typescript
640
+ it('should render 24px icon', () => {
641
+ const button = createButtonCTA({
642
+ size: 'small',
643
+ icon: 'arrow-right',
644
+ label: 'Next'
645
+ });
646
+
647
+ const iconSpan = button.querySelector('.button-cta__icon');
648
+
649
+ // This tests specific pixel value (implementation detail)
650
+ expect(iconSpan!.innerHTML).toContain('width="24"');
651
+ });
652
+ ```
653
+
654
+ **Why Token-Based Approach is Better**:
655
+ - Tests verify design system compliance
656
+ - Tests survive implementation changes
657
+ - Tests check actual contract (token usage)
658
+ - Tests align with design system principles
659
+
660
+ ### Integration Test Checklist
661
+
662
+ When writing integration tests, ask:
663
+
664
+ 1. **Am I testing the integration contract?**
665
+ - Yes → Good test
666
+ - No → Might be testing wrong thing
667
+
668
+ 2. **Am I testing how Component B works internally?**
669
+ - Yes → Bad test (test Component B directly instead)
670
+ - No → Good test
671
+
672
+ 3. **Would this test break if Component B's implementation changed but contract stayed the same?**
673
+ - Yes → Bad test (too brittle)
674
+ - No → Good test
675
+
676
+ 4. **Am I checking that Component A correctly uses Component B's API?**
677
+ - Yes → Good test
678
+ - No → Might be missing the point
679
+
680
+ 5. **Am I verifying specific implementation details?**
681
+ - Yes → Bad test (too coupled)
682
+ - No → Good test
683
+
684
+ ---
685
+
686
+ ## Anti-Patterns
687
+
688
+ ### Anti-Pattern 1: Testing Implementation Details
689
+
690
+ **Problem**: Tests check how something is implemented rather than what it does.
691
+
692
+ **Example from Icon Tests**:
693
+
694
+ ❌ **Bad**:
695
+ ```typescript
696
+ it('should have width and height attributes', () => {
697
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
698
+ expect(iconHTML).toContain('width="24"');
699
+ expect(iconHTML).toContain('height="24"');
700
+ });
701
+ ```
702
+
703
+ **Why This is Bad**:
704
+ - Assumes specific implementation (inline attributes)
705
+ - Breaks when implementation changes to CSS classes
706
+ - Doesn't test actual requirement (correct size)
707
+ - Creates maintenance burden
708
+
709
+ ✅ **Good**:
710
+ ```typescript
711
+ it('should apply correct size class', () => {
712
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
713
+ expect(iconHTML).toContain('icon--size-100');
714
+ });
715
+ ```
716
+
717
+ **Why This is Better**:
718
+ - Tests actual contract (CSS class for sizing)
719
+ - Survives implementation changes
720
+ - Verifies token-based design
721
+ - Aligns with design system principles
722
+
723
+
724
+ ### Anti-Pattern 2: Assuming Synchronous Web Component Rendering
725
+
726
+ **Problem**: Tests query shadow DOM immediately after creating element, before `connectedCallback` fires.
727
+
728
+ **Example from Icon Tests**:
729
+
730
+ ❌ **Bad**:
731
+ ```typescript
732
+ it('should render icon when added to DOM', () => {
733
+ const element = document.createElement('icon-base') as IconBaseElement;
734
+ element.setAttribute('name', 'arrow-right');
735
+ document.body.appendChild(element);
736
+
737
+ // This fails because connectedCallback hasn't fired yet
738
+ const svg = element.shadowRoot?.querySelector('svg');
739
+ expect(svg).toBeTruthy(); // FAILS - svg is undefined
740
+ });
741
+ ```
742
+
743
+ **Why This Fails**:
744
+ - Web component lifecycle is asynchronous
745
+ - `connectedCallback` doesn't fire immediately
746
+ - Shadow DOM isn't rendered yet
747
+ - `querySelector` returns `undefined`
748
+
749
+ ✅ **Good**:
750
+ ```typescript
751
+ it('should render icon when added to DOM', async () => {
752
+ await customElements.whenDefined('icon-base');
753
+
754
+ const element = document.createElement('icon-base') as IconBaseElement;
755
+ element.setAttribute('name', 'arrow-right');
756
+ document.body.appendChild(element);
757
+
758
+ // Wait for connectedCallback to fire
759
+ await new Promise(resolve => setTimeout(resolve, 0));
760
+
761
+ // Now shadow DOM is ready
762
+ const svg = element.shadowRoot?.querySelector('svg');
763
+ expect(svg).toBeTruthy(); // PASSES
764
+
765
+ document.body.removeChild(element);
766
+ });
767
+ ```
768
+
769
+ **Why This Works**:
770
+ - Uses `customElements.whenDefined()` to ensure element is registered
771
+ - Waits one tick after `appendChild()` for lifecycle to complete
772
+ - Shadow DOM is rendered before querying
773
+ - Cleans up after test
774
+
775
+ ### Anti-Pattern 3: Missing Custom Element Registration
776
+
777
+ **Problem**: Tests assume custom element is registered but don't verify or ensure it.
778
+
779
+ **Example from Icon Tests**:
780
+
781
+ ❌ **Bad**:
782
+ ```typescript
783
+ describe('Icon Web Component', () => {
784
+ it('should render', () => {
785
+ // Assumes icon-base is registered, but doesn't verify
786
+ const element = document.createElement('icon-base') as IconBaseElement;
787
+ // Test fails because element isn't actually an IconBaseElement instance
788
+ });
789
+ });
790
+ ```
791
+
792
+ **Why This Fails**:
793
+ - Custom element might not be registered in test environment
794
+ - `document.createElement('icon-base')` returns `HTMLElement`, not `IconBaseElement`
795
+ - Element doesn't have custom element behavior
796
+ - Tests fail with confusing errors
797
+
798
+ ✅ **Good**:
799
+ ```typescript
800
+ describe('Icon Web Component', () => {
801
+ beforeAll(() => {
802
+ // Explicitly register custom element
803
+ if (!customElements.get('icon-base')) {
804
+ customElements.define('icon-base', IconBaseElement);
805
+ }
806
+ });
807
+
808
+ beforeEach(async () => {
809
+ // Wait for element to be defined
810
+ await customElements.whenDefined('icon-base');
811
+ });
812
+
813
+ it('should render', async () => {
814
+ const element = document.createElement('icon-base') as IconBaseElement;
815
+ // Now element is actually an IconBaseElement instance
816
+ document.body.appendChild(element);
817
+ await new Promise(resolve => setTimeout(resolve, 0));
818
+
819
+ const svg = element.shadowRoot?.querySelector('svg');
820
+ expect(svg).toBeTruthy();
821
+
822
+ document.body.removeChild(element);
823
+ });
824
+ });
825
+ ```
826
+
827
+ **Why This Works**:
828
+ - Explicitly registers custom element before tests
829
+ - Waits for element definition before each test
830
+ - Element has correct type and behavior
831
+ - Tests are reliable and predictable
832
+
833
+
834
+ ### Anti-Pattern 4: Testing Before Design is Finalized
835
+
836
+ **Problem**: Writing tests based on assumptions about implementation before design is complete.
837
+
838
+ **Example from Icon Tests**:
839
+
840
+ ❌ **Bad Timing**:
841
+ ```typescript
842
+ // Written during initial development, assuming inline attributes
843
+ it('should have width and height attributes', () => {
844
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
845
+ expect(iconHTML).toContain('width="24"');
846
+ });
847
+
848
+ // Later, design changes to CSS-based sizing
849
+ // Test now fails even though Icon works correctly
850
+ ```
851
+
852
+ **Why This is Problematic**:
853
+ - Tests lock in implementation details too early
854
+ - Design evolution breaks tests unnecessarily
855
+ - Tests become maintenance burden
856
+ - Refactoring is harder
857
+
858
+ ✅ **Better Approach**:
859
+ ```typescript
860
+ // Wait until design is stable, then test contracts
861
+ it('should apply correct size class for token-based sizing', () => {
862
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
863
+ expect(iconHTML).toContain('icon--size-100');
864
+ });
865
+ ```
866
+
867
+ **Best Practices**:
868
+ - Write tests after design is finalized
869
+ - Test contracts and behavior, not implementation
870
+ - Update tests when design changes intentionally
871
+ - Delete tests that no longer serve a purpose
872
+
873
+ ### Anti-Pattern 5: Checking Wrong Integration Details
874
+
875
+ **Problem**: Integration tests check how integrated component works internally instead of checking integration contract.
876
+
877
+ **Example from ButtonCTA Integration Tests**:
878
+
879
+ ❌ **Bad**:
880
+ ```typescript
881
+ it('should render icon with inline attributes', () => {
882
+ const button = createButtonCTA({
883
+ size: 'small',
884
+ icon: 'arrow-right',
885
+ label: 'Next'
886
+ });
887
+
888
+ const iconSpan = button.querySelector('.button-cta__icon');
889
+
890
+ // Checks Icon's internal implementation
891
+ expect(iconSpan!.innerHTML).toContain('width="24"');
892
+ expect(iconSpan!.innerHTML).toContain('height="24"');
893
+ });
894
+ ```
895
+
896
+ **Why This is Bad**:
897
+ - Tests Icon's implementation, not ButtonCTA's integration
898
+ - Breaks when Icon changes implementation
899
+ - Doesn't verify ButtonCTA's responsibility
900
+ - Creates coupling between tests and Icon internals
901
+
902
+ ✅ **Good**:
903
+ ```typescript
904
+ it('should use correct icon size for small buttons', () => {
905
+ const button = createButtonCTA({
906
+ size: 'small',
907
+ icon: 'arrow-right',
908
+ label: 'Next'
909
+ });
910
+
911
+ const iconSpan = button.querySelector('.button-cta__icon');
912
+
913
+ // Checks ButtonCTA's integration contract
914
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
915
+ });
916
+ ```
917
+
918
+ **Why This is Better**:
919
+ - Tests ButtonCTA's responsibility (passing correct size)
920
+ - Survives Icon implementation changes
921
+ - Verifies integration contract
922
+ - Focuses on what ButtonCTA controls
923
+
924
+ ---
925
+
926
+ ## Test Lifecycle Management
927
+
928
+ ### When to Write Tests
929
+
930
+ **During Feature Development**:
931
+ - Write evergreen tests for new features
932
+ - Test public APIs and contracts
933
+ - Verify functional requirements
934
+ - Add accessibility tests
935
+
936
+ **During Migration/Cleanup**:
937
+ - Write temporary tests to track progress
938
+ - Document retirement criteria in test comments
939
+ - Link tests to spec completion
940
+ - Plan for deletion after spec completes
941
+
942
+ **After Design Changes**:
943
+ - Update existing tests to match new contracts
944
+ - Delete tests that check old implementation details
945
+ - Add tests for new behavior
946
+ - Verify tests still provide value
947
+
948
+
949
+ ### When to Update Tests
950
+
951
+ **Requirements Change**:
952
+ - Update tests to match new requirements
953
+ - Verify new behavior is tested
954
+ - Remove tests for removed features
955
+ - Update test documentation
956
+
957
+ **Contracts Change**:
958
+ - Update tests to match new contracts
959
+ - Verify integration tests still work
960
+ - Update API tests for new signatures
961
+ - Document breaking changes
962
+
963
+ **Tests Fail Due to Refactoring**:
964
+ - Evaluate if test is too brittle
965
+ - Check if test tests implementation details
966
+ - Update test to check behavior instead
967
+ - Consider if test should be deleted
968
+
969
+ **Design Evolution**:
970
+ - Update tests to match evolved design
971
+ - Remove tests for old implementation details
972
+ - Add tests for new patterns
973
+ - Verify tests align with current architecture
974
+
975
+ ### When to Delete Tests
976
+
977
+ **Temporary Tests After Purpose Served**:
978
+ - Migration complete → Delete migration tests
979
+ - Cleanup complete → Delete cleanup verification tests
980
+ - Spec complete → Delete spec-specific temporary tests
981
+ - Review retirement criteria → Delete if met
982
+
983
+ **Tests That Check Implementation Details**:
984
+ - Implementation changed → Delete tests checking old details
985
+ - Design evolved → Delete tests for old patterns
986
+ - Refactoring complete → Delete tests that were too brittle
987
+
988
+ **Tests That Provide No Value**:
989
+ - Philosophical tests → Delete tests checking opinions
990
+ - Duplicate tests → Delete redundant tests
991
+ - Obsolete tests → Delete tests for removed features
992
+
993
+ **Tests That Create Maintenance Burden**:
994
+ - Brittle tests → Delete tests that break on every refactor
995
+ - Over-specific tests → Delete tests checking too many details
996
+ - Coupled tests → Delete tests too tightly coupled to implementation
997
+
998
+ ### Retirement Criteria for Temporary Tests
999
+
1000
+ **Document Criteria in Test Comments**:
1001
+ ```typescript
1002
+ /**
1003
+ * TEMPORARY TEST - Delete after Icon token migration complete
1004
+ *
1005
+ * Retirement Criteria:
1006
+ * - All Icon platform implementations use token-based sizing
1007
+ * - Icon README documents token consumption
1008
+ * - Spec 023 Task 2 marked complete
1009
+ *
1010
+ * This test verifies Icon uses CSS classes for sizing during migration.
1011
+ * After migration, this is guaranteed by architecture and doesn't need testing.
1012
+ */
1013
+ describe('Icon Token Compliance (TEMPORARY)', () => {
1014
+ it('should use token-based CSS classes for sizing', () => {
1015
+ const iconHTML = createIcon({ name: 'arrow-right', size: 24 });
1016
+ expect(iconHTML).toContain('icon--size-100');
1017
+ });
1018
+ });
1019
+ ```
1020
+
1021
+ **Review After Spec Completion**:
1022
+ 1. Check if retirement criteria are met
1023
+ 2. Verify feature is complete and stable
1024
+ 3. Confirm tests no longer provide value
1025
+ 4. Delete confidently with clear commit message
1026
+
1027
+ **Example Deletion Commit**:
1028
+ ```
1029
+ Delete temporary Icon token compliance tests
1030
+
1031
+ Retirement criteria met:
1032
+ - Icon token migration complete (Spec 023 Task 2)
1033
+ - All platforms use token-based sizing
1034
+ - Icon README documents token consumption
1035
+
1036
+ These tests verified migration progress and are no longer needed.
1037
+ Token compliance is now guaranteed by architecture.
1038
+ ```
1039
+
1040
+
1041
+ ---
1042
+
1043
+ ## Examples from Icon
1044
+
1045
+ ### Example 1: Icon.test.ts (Evergreen Tests) ✅
1046
+
1047
+ **What It Tests**: Functional API (`createIcon()`, `Icon` class)
1048
+
1049
+ **Why It's Evergreen**:
1050
+ - Tests public API contracts
1051
+ - Verifies functional requirements
1052
+ - Survives implementation changes
1053
+ - Provides long-term value
1054
+
1055
+ **Key Tests**:
1056
+ ```typescript
1057
+ describe('createIcon', () => {
1058
+ it('should create icon with correct name', () => {
1059
+ const result = createIcon({ name: 'arrow-right', size: 24 });
1060
+ expect(result).toContain('icon-arrow-right');
1061
+ });
1062
+
1063
+ it('should apply correct size class', () => {
1064
+ const result = createIcon({ name: 'check', size: 24 });
1065
+ expect(result).toContain('icon--size-100');
1066
+ });
1067
+ });
1068
+ ```
1069
+
1070
+ **Lessons**:
1071
+ - Focus on API contracts
1072
+ - Test behavior, not implementation
1073
+ - Keep tests simple and focused
1074
+ - Verify functional requirements
1075
+
1076
+ ### Example 2: Icon.lifecycle.test.ts (Fixed) ✅
1077
+
1078
+ **What It Tests**: Web component lifecycle callbacks
1079
+
1080
+ **Original Problem**: Missing async setup, tests failed with `undefined` shadow DOM
1081
+
1082
+ **Fix Applied**:
1083
+ ```typescript
1084
+ describe('Icon Web Component Lifecycle', () => {
1085
+ beforeAll(() => {
1086
+ if (!customElements.get('icon-base')) {
1087
+ customElements.define('icon-base', IconBaseElement);
1088
+ }
1089
+ });
1090
+
1091
+ beforeEach(async () => {
1092
+ await customElements.whenDefined('icon-base');
1093
+ });
1094
+
1095
+ it('should render icon when added to DOM', async () => {
1096
+ const element = document.createElement('icon-base') as IconBaseElement;
1097
+ element.setAttribute('name', 'arrow-right');
1098
+ document.body.appendChild(element);
1099
+
1100
+ // Critical: Wait for connectedCallback
1101
+ await new Promise(resolve => setTimeout(resolve, 0));
1102
+
1103
+ const svg = element.shadowRoot?.querySelector('svg');
1104
+ expect(svg).toBeTruthy();
1105
+
1106
+ document.body.removeChild(element);
1107
+ });
1108
+ });
1109
+ ```
1110
+
1111
+ **Lessons**:
1112
+ - Explicitly register custom elements
1113
+ - Use `customElements.whenDefined()`
1114
+ - Wait for async lifecycle callbacks
1115
+ - Clean up after each test
1116
+
1117
+ ### Example 3: Icon.buttonCTA-integration.test.ts (Fixed) ✅
1118
+
1119
+ **What It Tests**: ButtonCTA + Icon integration
1120
+
1121
+ **Original Problem**: Tests checked for inline attributes instead of CSS classes
1122
+
1123
+ **Fix Applied**:
1124
+ ```typescript
1125
+ it('should use correct icon size for small buttons', () => {
1126
+ const button = createButtonCTA({
1127
+ size: 'small',
1128
+ icon: 'arrow-right',
1129
+ label: 'Next'
1130
+ });
1131
+
1132
+ const iconSpan = button.querySelector('.button-cta__icon');
1133
+
1134
+ // Changed from: expect(...).toContain('width="24"')
1135
+ // To: Check CSS class for token-based sizing
1136
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
1137
+ });
1138
+
1139
+ it('should use correct icon size for large buttons', () => {
1140
+ const button = createButtonCTA({
1141
+ size: 'large',
1142
+ icon: 'arrow-right',
1143
+ label: 'Next'
1144
+ });
1145
+
1146
+ const iconSpan = button.querySelector('.button-cta__icon');
1147
+
1148
+ // Changed from: expect(...).toContain('width="32"')
1149
+ // To: Check CSS class for token-based sizing
1150
+ expect(iconSpan!.innerHTML).toContain('icon--size-200');
1151
+ });
1152
+ ```
1153
+
1154
+ **Lessons**:
1155
+ - Test integration contracts, not implementation details
1156
+ - Check for token-based CSS classes, not pixel values
1157
+ - Verify what component controls, not how dependencies work
1158
+ - Update tests when design evolves
1159
+
1160
+
1161
+ ### Summary: Icon Test Fixes
1162
+
1163
+ **Total Tests**: 103 (all passing after fixes)
1164
+
1165
+ **Issues Fixed**:
1166
+ 1. **Web Component Registration** (24 tests):
1167
+ - Added explicit `customElements.define()`
1168
+ - Added `customElements.whenDefined()` waits
1169
+ - Added async delays for lifecycle callbacks
1170
+ - Fixed `Icon.lifecycle.test.ts` and `Icon.rendering.test.ts`
1171
+
1172
+ 2. **Integration Test Expectations** (6 tests):
1173
+ - Changed from checking inline attributes to CSS classes
1174
+ - Updated to verify token-based sizing approach
1175
+ - Fixed `Icon.buttonCTA-integration.test.ts`
1176
+
1177
+ **Key Takeaways**:
1178
+ - Web component tests need explicit async handling
1179
+ - Integration tests should check contracts, not implementation
1180
+ - Tests should align with design system principles
1181
+ - Fixing tests revealed broader patterns worth documenting
1182
+
1183
+ ---
1184
+
1185
+ ## Linting and Testing Integration
1186
+
1187
+ ### Overview
1188
+
1189
+ The Stemma System introduces static analysis validators that complement runtime testing. Understanding when to use linting vs testing is essential for efficient validation without duplicating effort.
1190
+
1191
+ **Dual Validation Approach**:
1192
+ - **Static Analysis (Linting)**: Validates structure, naming, and configuration at development time
1193
+ - **Runtime Testing**: Validates behavior, contracts, and interactions during test execution
1194
+ - **Together**: Comprehensive coverage with minimal redundancy
1195
+
1196
+ ### Validation Types
1197
+
1198
+ | Validation Type | Mechanism | When Applied | What It Validates |
1199
+ |-----------------|-----------|--------------|-------------------|
1200
+ | **Static Analysis** | Linting/Validators | During development (IDE) | Structure, naming, configuration |
1201
+ | **Unit Tests** | Runtime | During test execution | Specific examples, edge cases |
1202
+ | **Integration Tests** | Runtime | During test execution | Component interaction, contracts |
1203
+ | **Property Tests** | Runtime | During test execution | Universal properties across inputs |
1204
+ | **Manual Validation** | Human review | During development | Documentation quality, UX |
1205
+
1206
+ ### Stemma System Validators
1207
+
1208
+ The Stemma System provides four validators for static analysis:
1209
+
1210
+ | Validator | Purpose | What It Catches |
1211
+ |-----------|---------|-----------------|
1212
+ | **StemmaComponentNamingValidator** | Naming convention compliance | Invalid [Family]-[Type]-[Variant] patterns, missing Base suffix |
1213
+ | **StemmaTokenUsageValidator** | Token usage compliance | Inline styles, hard-coded values, missing token references |
1214
+ | **StemmaPropertyAccessibilityValidator** | Property and accessibility | Missing required properties, WCAG violations |
1215
+ | **StemmaErrorGuidanceSystem** | Error guidance | Provides correction guidance and documentation links |
1216
+
1217
+ **Import Example**:
1218
+ ```typescript
1219
+ import {
1220
+ validateComponentName,
1221
+ validateTokenUsage,
1222
+ validatePropertyAndAccessibility,
1223
+ getErrorGuidance
1224
+ } from '../validators';
1225
+ ```
1226
+
1227
+ ### When to Use Linting vs Testing
1228
+
1229
+ #### Use Linting (Static Analysis) For:
1230
+
1231
+ **Structural Validation**:
1232
+ - Component naming convention compliance
1233
+ - Token usage patterns (detecting inline styles)
1234
+ - Required property presence
1235
+ - Schema compliance
1236
+ - Configuration validation
1237
+
1238
+ **Why Linting is Better**:
1239
+ - Immediate feedback during development
1240
+ - No runtime overhead
1241
+ - Catches issues before tests run
1242
+ - Consistent enforcement across codebase
1243
+
1244
+ **Example - Naming Convention**:
1245
+ ```typescript
1246
+ // Linting catches this immediately
1247
+ const result = validateComponentName('ButtonPrimary');
1248
+ // Error: Missing family prefix, should be "Button-CTA-Primary" or similar
1249
+ ```
1250
+
1251
+ #### Use Testing (Runtime) For:
1252
+
1253
+ **Behavioral Validation**:
1254
+ - Component renders correctly
1255
+ - User interactions work as expected
1256
+ - Integration contracts are honored
1257
+ - Accessibility features function properly
1258
+ - Cross-platform consistency
1259
+
1260
+ **Why Testing is Better**:
1261
+ - Validates actual behavior
1262
+ - Tests real user scenarios
1263
+ - Catches runtime issues
1264
+ - Verifies integration contracts
1265
+
1266
+ **Example - Behavior**:
1267
+ ```typescript
1268
+ // Testing validates actual behavior
1269
+ it('should render icon at correct size', () => {
1270
+ const button = createButtonCTA({ size: 'small', icon: 'arrow-right' });
1271
+ const icon = button.querySelector('.button-cta__icon');
1272
+ expect(icon!.innerHTML).toContain('icon--size-100');
1273
+ });
1274
+ ```
1275
+
1276
+ ### Decision Framework: Linting vs Testing
1277
+
1278
+ **Ask these questions to determine validation type**:
1279
+
1280
+ 1. **Can this be validated without running code?**
1281
+ - Yes → Linting
1282
+ - No → Testing
1283
+
1284
+ 2. **Is this about structure or behavior?**
1285
+ - Structure → Linting
1286
+ - Behavior → Testing
1287
+
1288
+ 3. **Does this require user interaction simulation?**
1289
+ - Yes → Testing
1290
+ - No → Consider linting
1291
+
1292
+ 4. **Is this checking a naming convention or pattern?**
1293
+ - Yes → Linting
1294
+ - No → Testing
1295
+
1296
+ 5. **Does this need to verify runtime state?**
1297
+ - Yes → Testing
1298
+ - No → Linting
1299
+
1300
+ **Decision Matrix**:
1301
+
1302
+ | Validation Need | Linting | Testing | Both |
1303
+ |-----------------|---------|---------|------|
1304
+ | Component naming | ✅ | | |
1305
+ | Token usage patterns | ✅ | | |
1306
+ | Required properties present | ✅ | | |
1307
+ | Schema compliance | ✅ | | |
1308
+ | Component renders correctly | | ✅ | |
1309
+ | User interactions work | | ✅ | |
1310
+ | Integration contracts honored | | ✅ | |
1311
+ | Accessibility features work | | ✅ | |
1312
+ | WCAG compliance | ✅ | ✅ | ✅ |
1313
+ | Cross-platform consistency | | ✅ | |
1314
+ | Token values are correct | | ✅ | |
1315
+
1316
+ ### CI-Enforced Guards (Spec 118)
1317
+
1318
+ Behavioral and structural guards that protect a system invariant are **enforced via required CI**, not by convention. New guards of this kind **attach to the consumer-guard / test-CI lane** (`.github/workflows/consumer-guard.yml`) so they cannot be skipped. The packed-install consumer guard is the **arbiter** for module-resolution and packaging behavior — in-repo loads can false-green on those surfaces and must not be treated as certification.
1319
+
1320
+ **Close-state integrity (Civitas process guard).** A module-resolution issue cannot close as "Resolved" on a workaround alone — closure requires the **non-skippable consumer-guard CI lane** (`.github/workflows/consumer-guard.yml`, the packed-install arbiter) to certify the end-state. In-repo loads false-green on resolution/packaging surprises and are NOT an acceptable arbiter (the Task-3 false-green lesson). **Spec 118 is the single source of truth for module resolution**; downstream readers are routed there rather than to ad-hoc workarounds.
1321
+
1322
+ ### Complementary Validation Patterns
1323
+
1324
+ #### Pattern 1: Linting + Unit Tests
1325
+
1326
+ **Use Case**: Component development with structural and behavioral validation
1327
+
1328
+ **Linting Validates**:
1329
+ - Component name follows [Family]-[Type]-[Variant] pattern
1330
+ - Token references are used (no inline styles)
1331
+ - Required properties are defined in schema
1332
+
1333
+ **Unit Tests Validate**:
1334
+ - Component renders with correct output
1335
+ - Properties affect rendering correctly
1336
+ - Edge cases are handled
1337
+
1338
+ **Example**:
1339
+ ```typescript
1340
+ // Linting (static analysis)
1341
+ const namingResult = validateComponentName('Input-Text-Email');
1342
+ // ✅ Valid: Family=Input, Type=Text, Variant=Email
1343
+
1344
+ // Unit Test (runtime)
1345
+ it('should render email input with correct type', () => {
1346
+ const input = createInputTextEmail({ label: 'Email' });
1347
+ expect(input.getAttribute('type')).toBe('email');
1348
+ });
1349
+ ```
1350
+
1351
+ #### Pattern 2: Linting + Integration Tests
1352
+
1353
+ **Use Case**: Component integration with contract validation
1354
+
1355
+ **Linting Validates**:
1356
+ - Both components follow naming conventions
1357
+ - Token usage is consistent
1358
+ - Properties match schema contracts
1359
+
1360
+ **Integration Tests Validate**:
1361
+ - Components work together correctly
1362
+ - Integration contracts are honored
1363
+ - Data flows correctly between components
1364
+
1365
+ **Example**:
1366
+ ```typescript
1367
+ // Linting (static analysis)
1368
+ const buttonResult = validateComponentName('Button-CTA');
1369
+ const iconResult = validateComponentName('Icon-Base');
1370
+ // ✅ Both valid
1371
+
1372
+ // Integration Test (runtime)
1373
+ it('should render button with icon at correct size', () => {
1374
+ const button = createButtonCTA({ icon: 'arrow-right', size: 'small' });
1375
+ const iconSpan = button.querySelector('.button-cta__icon');
1376
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
1377
+ });
1378
+ ```
1379
+
1380
+ #### Pattern 3: Linting + Property Tests
1381
+
1382
+ **Use Case**: Universal property validation across inputs
1383
+
1384
+ **Linting Validates**:
1385
+ - Component structure is correct
1386
+ - Token patterns are followed
1387
+ - Schema is valid
1388
+
1389
+ **Property Tests Validate**:
1390
+ - Properties hold for all valid inputs
1391
+ - Invariants are maintained
1392
+ - Contracts are universally honored
1393
+
1394
+ **Example**:
1395
+ ```typescript
1396
+ // Linting (static analysis)
1397
+ const schemaResult = validatePropertyAndAccessibility(
1398
+ 'Input-Text-Base',
1399
+ { label: 'Test', value: '' },
1400
+ schema
1401
+ );
1402
+ // ✅ Required properties present
1403
+
1404
+ // Property Test (runtime)
1405
+ it.prop([fc.string().filter(s => s.trim().length > 0)])(
1406
+ 'should always render label for non-empty strings',
1407
+ (label) => {
1408
+ const input = createInputTextBase({ label });
1409
+ const labelElement = input.querySelector('label');
1410
+ expect(labelElement?.textContent).toBe(label);
1411
+ }
1412
+ );
1413
+ ```
1414
+
1415
+ ### Avoiding Validation Duplication
1416
+
1417
+ **Anti-Pattern**: Testing what linting already validates
1418
+
1419
+ ❌ **Bad - Duplicates Linting**:
1420
+ ```typescript
1421
+ // Linting already validates naming convention
1422
+ it('should have correct component name format', () => {
1423
+ expect(componentName).toMatch(/^[A-Z][a-z]+-[A-Z][a-z]+-[A-Z][a-z]+$/);
1424
+ });
1425
+ ```
1426
+
1427
+ ✅ **Good - Tests Behavior**:
1428
+ ```typescript
1429
+ // Test actual behavior, not naming
1430
+ it('should render with correct accessibility attributes', () => {
1431
+ const input = createInputTextEmail({ label: 'Email' });
1432
+ expect(input.getAttribute('aria-label')).toBe('Email');
1433
+ });
1434
+ ```
1435
+
1436
+ **Anti-Pattern**: Linting what requires runtime validation
1437
+
1438
+ ❌ **Bad - Can't Lint Behavior**:
1439
+ ```typescript
1440
+ // Can't validate rendering without running code
1441
+ const result = validateComponentRendersCorrectly('Button-CTA');
1442
+ ```
1443
+
1444
+ ✅ **Good - Test Behavior**:
1445
+ ```typescript
1446
+ // Test actual rendering behavior
1447
+ it('should render button with correct variant class', () => {
1448
+ const button = createButtonCTA({ variant: 'primary' });
1449
+ expect(button.classList.contains('button-cta--primary')).toBe(true);
1450
+ });
1451
+ ```
1452
+
1453
+ ### Validation Workflow
1454
+
1455
+ **Recommended Order**:
1456
+
1457
+ 1. **Pre-Development**: Schema validation (linting)
1458
+ - Validate component schema structure
1459
+ - Check naming convention compliance
1460
+ - Verify token references
1461
+
1462
+ 2. **During Development**: Real-time linting (IDE)
1463
+ - Immediate feedback on naming issues
1464
+ - Token usage validation
1465
+ - Property completeness checks
1466
+
1467
+ 3. **Post-Development**: Test execution (runtime)
1468
+ - Unit tests for specific behavior
1469
+ - Integration tests for contracts
1470
+ - Property tests for universal properties
1471
+
1472
+ 4. **Pre-Merge**: Complete validation suite
1473
+ - All linting passes
1474
+ - All tests pass
1475
+ - Manual review complete
1476
+
1477
+ ### Stemma System Validation Checklist
1478
+
1479
+ **For New Components**:
1480
+
1481
+ - [ ] **Naming**: `validateComponentName()` passes
1482
+ - [ ] **Token Usage**: `validateTokenUsage()` passes
1483
+ - [ ] **Properties**: `validatePropertyAndAccessibility()` passes
1484
+ - [ ] **Unit Tests**: Core behavior tested
1485
+ - [ ] **Integration Tests**: Contracts with dependencies tested
1486
+ - [ ] **Accessibility Tests**: WCAG compliance verified
1487
+
1488
+ **For Component Updates**:
1489
+
1490
+ - [ ] **Linting**: All validators still pass
1491
+ - [ ] **Existing Tests**: All tests still pass
1492
+ - [ ] **New Behavior**: New tests added for new behavior
1493
+ - [ ] **Contracts**: Integration contracts still honored
1494
+
1495
+ ### Cross-Reference to Validators
1496
+
1497
+ **Validator Source Files**:
1498
+ - `src/validators/StemmaComponentNamingValidator.ts` - Naming convention validation
1499
+ - `src/validators/StemmaTokenUsageValidator.ts` - Token usage validation
1500
+ - `src/validators/StemmaPropertyAccessibilityValidator.ts` - Property and accessibility validation
1501
+ - `src/validators/StemmaErrorGuidanceSystem.ts` - Error guidance and IDE integration
1502
+
1503
+ **Validator Tests**:
1504
+ - `src/validators/__tests__/StemmaComponentNamingValidator.test.ts`
1505
+ - `src/validators/__tests__/StemmaTokenUsageValidator.test.ts`
1506
+ - `src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts`
1507
+ - `src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts`
1508
+
1509
+ **Behavioral Contract Tests**:
1510
+ - `src/__tests__/stemma-system/behavioral-contract-validation.test.ts`
1511
+ - `src/__tests__/stemma-system/form-inputs-contracts.test.ts`
1512
+ - `src/__tests__/stemma-system/cross-platform-consistency.test.ts`
1513
+
1514
+ ---
1515
+
1516
+ ## Integrated Workflow Examples
1517
+
1518
+ This section provides concrete examples of combined validation workflows for different development scenarios. Each example shows how linting, unit tests, integration tests, and property tests work together.
1519
+
1520
+ ### Example 1: New Component Development Workflow
1521
+
1522
+ **Scenario**: Creating a new semantic component `Input-Text-Search` that inherits from `Input-Text-Base`.
1523
+
1524
+ #### Phase 1: Pre-Development Validation (Linting)
1525
+
1526
+ Before writing any code, validate the component design:
1527
+
1528
+ ```typescript
1529
+ import { validateComponentName, validatePropertyAndAccessibility } from '../validators';
1530
+
1531
+ // Step 1: Validate component name follows Stemma conventions
1532
+ const nameResult = validateComponentName('Input-Text-Search');
1533
+ console.log(nameResult);
1534
+ // ✅ { valid: true, family: 'Input', type: 'Text', variant: 'Search' }
1535
+
1536
+ // Step 2: Validate schema structure
1537
+ const schemaResult = validatePropertyAndAccessibility(
1538
+ 'Input-Text-Search',
1539
+ {
1540
+ label: 'Search',
1541
+ placeholder: 'Search...',
1542
+ value: '',
1543
+ // Required properties for Input-Text-Base inheritance
1544
+ },
1545
+ inputTextSearchSchema
1546
+ );
1547
+ // ✅ All required properties present
1548
+ ```
1549
+
1550
+ **Checkpoint**: All linting validations pass before proceeding to implementation.
1551
+
1552
+ #### Phase 2: Implementation with Real-Time Linting
1553
+
1554
+ During development, IDE linting provides immediate feedback:
1555
+
1556
+ ```typescript
1557
+ // src/components/core/Input-Text-Search/platforms/web/InputTextSearch.web.ts
1558
+
1559
+ import { InputTextBase } from '../../Input-Text-Base';
1560
+ import { validateTokenUsage } from '../../../../../validators';
1561
+
1562
+ export class InputTextSearch extends InputTextBase {
1563
+ // IDE linting catches issues immediately:
1564
+
1565
+ // ❌ BAD - Linting error: Inline style detected
1566
+ // this.style.width = '200px';
1567
+
1568
+ // ✅ GOOD - Uses token reference
1569
+ // this.classList.add('input-text-search--width-standard');
1570
+
1571
+ render() {
1572
+ // Token usage validation during development
1573
+ const tokenResult = validateTokenUsage(this.outerHTML);
1574
+ // Catches any inline styles or hard-coded values
1575
+ }
1576
+ }
1577
+ ```
1578
+
1579
+ #### Phase 3: Unit Tests (Runtime Validation)
1580
+
1581
+ After implementation, write unit tests for specific behavior:
1582
+
1583
+ ```typescript
1584
+ // src/components/core/Input-Text-Search/__tests__/InputTextSearch.test.ts
1585
+
1586
+ describe('Input-Text-Search', () => {
1587
+ // Test 1: Core functionality
1588
+ it('should render search input with correct type', () => {
1589
+ const input = createInputTextSearch({ label: 'Search' });
1590
+ expect(input.getAttribute('type')).toBe('search');
1591
+ });
1592
+
1593
+ // Test 2: Search-specific behavior
1594
+ it('should show clear button when value is present', () => {
1595
+ const input = createInputTextSearch({ label: 'Search', value: 'test' });
1596
+ const clearButton = input.querySelector('.input-text-search__clear');
1597
+ expect(clearButton).toBeTruthy();
1598
+ });
1599
+
1600
+ // Test 3: Inherited behavior from Input-Text-Base
1601
+ it('should apply float label animation', () => {
1602
+ const input = createInputTextSearch({ label: 'Search' });
1603
+ input.focus();
1604
+ expect(input.classList.contains('input-text--label-floated')).toBe(true);
1605
+ });
1606
+
1607
+ // Test 4: Accessibility
1608
+ it('should have correct ARIA attributes', () => {
1609
+ const input = createInputTextSearch({ label: 'Search' });
1610
+ expect(input.getAttribute('role')).toBe('searchbox');
1611
+ expect(input.getAttribute('aria-label')).toBe('Search');
1612
+ });
1613
+ });
1614
+ ```
1615
+
1616
+ #### Phase 4: Integration Tests (Contract Validation)
1617
+
1618
+ Test integration with other components:
1619
+
1620
+ ```typescript
1621
+ // src/components/core/Input-Text-Search/__tests__/InputTextSearch.integration.test.ts
1622
+
1623
+ describe('Input-Text-Search Integration', () => {
1624
+ // Test 1: Integration with Icon-Base
1625
+ it('should render search icon using Icon-Base', () => {
1626
+ const input = createInputTextSearch({ label: 'Search', showIcon: true });
1627
+ const iconSpan = input.querySelector('.input-text-search__icon');
1628
+
1629
+ // Verify integration contract - Icon-Base CSS class present
1630
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
1631
+ });
1632
+
1633
+ // Test 2: Integration with Button-CTA (clear button)
1634
+ it('should use Button-CTA for clear action', () => {
1635
+ const input = createInputTextSearch({ label: 'Search', value: 'test' });
1636
+ const clearButton = input.querySelector('.input-text-search__clear');
1637
+
1638
+ // Verify Button-CTA integration
1639
+ expect(clearButton!.classList.contains('button-cta')).toBe(true);
1640
+ });
1641
+
1642
+ // Test 3: Form integration
1643
+ it('should work within form submission', () => {
1644
+ const form = document.createElement('form');
1645
+ const input = createInputTextSearch({ label: 'Search', name: 'query' });
1646
+ form.appendChild(input);
1647
+
1648
+ input.value = 'test query';
1649
+ const formData = new FormData(form);
1650
+ expect(formData.get('query')).toBe('test query');
1651
+ });
1652
+ });
1653
+ ```
1654
+
1655
+ #### Phase 5: Property Tests (Universal Properties)
1656
+
1657
+ Validate properties that should hold for all inputs:
1658
+
1659
+ ```typescript
1660
+ // src/components/core/Input-Text-Search/__tests__/InputTextSearch.property.test.ts
1661
+
1662
+ import * as fc from 'fast-check';
1663
+
1664
+ describe('Input-Text-Search Properties', () => {
1665
+ // Property 1: Label always renders for non-empty strings
1666
+ it.prop([fc.string().filter(s => s.trim().length > 0)])(
1667
+ 'should always render label for non-empty strings',
1668
+ (label) => {
1669
+ const input = createInputTextSearch({ label });
1670
+ const labelElement = input.querySelector('label');
1671
+ expect(labelElement?.textContent).toBe(label);
1672
+ }
1673
+ );
1674
+
1675
+ // Property 2: Value round-trip
1676
+ it.prop([fc.string()])(
1677
+ 'should preserve value through get/set cycle',
1678
+ (value) => {
1679
+ const input = createInputTextSearch({ label: 'Search' });
1680
+ input.value = value;
1681
+ expect(input.value).toBe(value);
1682
+ }
1683
+ );
1684
+
1685
+ // Property 3: Clear button visibility
1686
+ it.prop([fc.string().filter(s => s.length > 0)])(
1687
+ 'should show clear button for any non-empty value',
1688
+ (value) => {
1689
+ const input = createInputTextSearch({ label: 'Search', value });
1690
+ const clearButton = input.querySelector('.input-text-search__clear');
1691
+ expect(clearButton).toBeTruthy();
1692
+ }
1693
+ );
1694
+ });
1695
+ ```
1696
+
1697
+ #### Phase 6: Pre-Merge Validation
1698
+
1699
+ Complete validation checklist before merging:
1700
+
1701
+ ```bash
1702
+ # 1. Run all linting validators
1703
+ npm run lint:stemma
1704
+
1705
+ # 2. Run unit tests
1706
+ npm test -- src/components/core/Input-Text-Search/__tests__/InputTextSearch.test.ts
1707
+
1708
+ # 3. Run integration tests
1709
+ npm test -- src/components/core/Input-Text-Search/__tests__/InputTextSearch.integration.test.ts
1710
+
1711
+ # 4. Run property tests
1712
+ npm test -- src/components/core/Input-Text-Search/__tests__/InputTextSearch.property.test.ts
1713
+
1714
+ # 5. Run full test suite
1715
+ npm test
1716
+ ```
1717
+
1718
+ ---
1719
+
1720
+ ### Example 2: Component Migration Workflow
1721
+
1722
+ **Scenario**: Migrating existing `SearchInput` component to Stemma System naming (`Input-Text-Search`).
1723
+
1724
+ #### Phase 1: Pre-Migration Analysis
1725
+
1726
+ ```typescript
1727
+ import { validateComponentName } from '../validators';
1728
+
1729
+ // Validate old name (expected to fail)
1730
+ const oldNameResult = validateComponentName('SearchInput');
1731
+ // ❌ { valid: false, error: 'Missing family prefix' }
1732
+
1733
+ // Validate new name
1734
+ const newNameResult = validateComponentName('Input-Text-Search');
1735
+ // ✅ { valid: true, family: 'Input', type: 'Text', variant: 'Search' }
1736
+ ```
1737
+
1738
+ #### Phase 2: Create Temporary Migration Tests
1739
+
1740
+ ```typescript
1741
+ // TEMPORARY TEST - Delete after migration complete
1742
+ // Retirement Criteria: SearchInput fully migrated to Input-Text-Search
1743
+
1744
+ describe('SearchInput Migration (TEMPORARY)', () => {
1745
+ it('should have backward compatibility alias', () => {
1746
+ // Old import still works during migration
1747
+ const { SearchInput } = require('../legacy/SearchInput');
1748
+ const { InputTextSearch } = require('../Input-Text-Search');
1749
+
1750
+ // Both should produce equivalent output
1751
+ const oldInput = new SearchInput({ label: 'Search' });
1752
+ const newInput = new InputTextSearch({ label: 'Search' });
1753
+
1754
+ expect(oldInput.render()).toEqual(newInput.render());
1755
+ });
1756
+ });
1757
+ ```
1758
+
1759
+ #### Phase 3: Update Existing Tests
1760
+
1761
+ ```typescript
1762
+ // Before: Tests using old component name
1763
+ describe('SearchInput', () => {
1764
+ it('should render search input', () => {
1765
+ const input = createSearchInput({ label: 'Search' });
1766
+ // ...
1767
+ });
1768
+ });
1769
+
1770
+ // After: Tests using new Stemma System name
1771
+ describe('Input-Text-Search', () => {
1772
+ it('should render search input', () => {
1773
+ const input = createInputTextSearch({ label: 'Search' });
1774
+ // ...
1775
+ });
1776
+ });
1777
+ ```
1778
+
1779
+ #### Phase 4: Validate Migration Complete
1780
+
1781
+ ```typescript
1782
+ // Run linting to verify all references updated
1783
+ import { validateTokenUsage } from '../validators';
1784
+
1785
+ // Check no references to old component name remain
1786
+ const codebaseResult = validateTokenUsage(codebaseContent);
1787
+ // Should not find 'SearchInput' references
1788
+ ```
1789
+
1790
+ #### Phase 5: Delete Temporary Tests
1791
+
1792
+ After migration is complete, delete temporary tests with clear commit message:
1793
+
1794
+ ```
1795
+ Delete temporary SearchInput migration tests
1796
+
1797
+ Retirement criteria met:
1798
+ - SearchInput fully migrated to Input-Text-Search
1799
+ - All imports updated to new name
1800
+ - Backward compatibility period complete
1801
+
1802
+ These tests verified migration progress and are no longer needed.
1803
+ ```
1804
+
1805
+ ---
1806
+
1807
+ ### Example 3: Integration Contract Update Workflow
1808
+
1809
+ **Scenario**: Updating Button-CTA to use new Icon-Base sizing tokens.
1810
+
1811
+ #### Phase 1: Validate Contract Change
1812
+
1813
+ ```typescript
1814
+ import { validateComponentName, validateTokenUsage } from '../validators';
1815
+
1816
+ // Verify both components follow Stemma conventions
1817
+ validateComponentName('Button-CTA'); // ✅
1818
+ validateComponentName('Icon-Base'); // ✅
1819
+
1820
+ // Document the contract change
1821
+ // OLD: Button-CTA passes pixel values to Icon
1822
+ // NEW: Button-CTA passes token references to Icon
1823
+ ```
1824
+
1825
+ #### Phase 2: Update Integration Tests
1826
+
1827
+ ```typescript
1828
+ // Before: Tests checked pixel values (implementation detail)
1829
+ it('should render 24px icon for small buttons', () => {
1830
+ const button = createButtonCTA({ size: 'small', icon: 'arrow-right' });
1831
+ const iconSpan = button.querySelector('.button-cta__icon');
1832
+ // ❌ BAD - Tests implementation detail
1833
+ expect(iconSpan!.innerHTML).toContain('width="24"');
1834
+ });
1835
+
1836
+ // After: Tests check contract (token-based sizing)
1837
+ it('should use correct icon size token for small buttons', () => {
1838
+ const button = createButtonCTA({ size: 'small', icon: 'arrow-right' });
1839
+ const iconSpan = button.querySelector('.button-cta__icon');
1840
+ // ✅ GOOD - Tests integration contract
1841
+ expect(iconSpan!.innerHTML).toContain('icon--size-100');
1842
+ });
1843
+ ```
1844
+
1845
+ #### Phase 3: Add Contract Property Tests
1846
+
1847
+ ```typescript
1848
+ describe('Button-CTA + Icon-Base Contract Properties', () => {
1849
+ // Property: Icon size always matches button size variant
1850
+ it.prop([fc.constantFrom('small', 'medium', 'large')])(
1851
+ 'should use correct icon size for button variant',
1852
+ (size) => {
1853
+ const button = createButtonCTA({ size, icon: 'arrow-right' });
1854
+ const iconSpan = button.querySelector('.button-cta__icon');
1855
+
1856
+ const expectedClass = size === 'large' ? 'icon--size-200' : 'icon--size-100';
1857
+ expect(iconSpan!.innerHTML).toContain(expectedClass);
1858
+ }
1859
+ );
1860
+ });
1861
+ ```
1862
+
1863
+ #### Phase 4: Validate No Regression
1864
+
1865
+ ```bash
1866
+ # Run integration tests
1867
+ npm test -- src/components/core/Button-CTA/__tests__/ButtonCTA.icon-integration.test.ts
1868
+
1869
+ # Run behavioral contract tests
1870
+ npm test -- src/__tests__/stemma-system/behavioral-contract-validation.test.ts
1871
+
1872
+ # Run cross-platform consistency tests
1873
+ npm test -- src/__tests__/stemma-system/cross-platform-consistency.test.ts
1874
+ ```
1875
+
1876
+ ---
1877
+
1878
+ ### Example 4: Cross-Platform Consistency Workflow
1879
+
1880
+ **Scenario**: Ensuring Input-Text-Email behaves consistently across web, iOS, and Android.
1881
+
1882
+ #### Phase 1: Define Behavioral Contracts
1883
+
1884
+ ```yaml
1885
+ # Input-Text-Email.schema.yaml
1886
+ behavioral_contracts:
1887
+ - name: email_validation
1888
+ description: Validates email format on blur
1889
+ platforms: [web, ios, android]
1890
+
1891
+ - name: email_autocomplete
1892
+ description: Provides email autocomplete suggestions
1893
+ platforms: [web, ios, android]
1894
+
1895
+ - name: keyboard_type
1896
+ description: Shows email-optimized keyboard
1897
+ platforms: [ios, android]
1898
+ ```
1899
+
1900
+ #### Phase 2: Write Cross-Platform Contract Tests
1901
+
1902
+ ```typescript
1903
+ // src/__tests__/stemma-system/input-text-email-contracts.test.ts
1904
+
1905
+ describe('Input-Text-Email Cross-Platform Contracts', () => {
1906
+ const platforms = ['web', 'ios', 'android'];
1907
+
1908
+ platforms.forEach(platform => {
1909
+ describe(`${platform} platform`, () => {
1910
+ // Contract 1: Email validation
1911
+ it('should validate email format on blur', () => {
1912
+ const input = createInputTextEmail({ label: 'Email', platform });
1913
+ input.value = 'invalid-email';
1914
+ input.blur();
1915
+
1916
+ expect(input.validity.valid).toBe(false);
1917
+ expect(input.validationMessage).toContain('email');
1918
+ });
1919
+
1920
+ // Contract 2: Email autocomplete
1921
+ it('should have email autocomplete attribute', () => {
1922
+ const input = createInputTextEmail({ label: 'Email', platform });
1923
+ expect(input.getAttribute('autocomplete')).toBe('email');
1924
+ });
1925
+ });
1926
+ });
1927
+
1928
+ // Platform-specific tests (acceptable variations)
1929
+ describe('Platform-specific behavior', () => {
1930
+ it('should show email keyboard on iOS', () => {
1931
+ const input = createInputTextEmail({ label: 'Email', platform: 'ios' });
1932
+ expect(input.keyboardType).toBe('emailAddress');
1933
+ });
1934
+
1935
+ it('should show email keyboard on Android', () => {
1936
+ const input = createInputTextEmail({ label: 'Email', platform: 'android' });
1937
+ expect(input.inputType).toBe('textEmailAddress');
1938
+ });
1939
+ });
1940
+ });
1941
+ ```
1942
+
1943
+ #### Phase 3: Validate with Contract Test Reporter
1944
+
1945
+ ```typescript
1946
+ import { ContractTestReporter } from '../stemma-system/contract-test-reporter';
1947
+
1948
+ const reporter = new ContractTestReporter();
1949
+
1950
+ // Run contract validation
1951
+ const results = reporter.validateContracts('Input-Text-Email', [
1952
+ 'email_validation',
1953
+ 'email_autocomplete',
1954
+ 'keyboard_type'
1955
+ ]);
1956
+
1957
+ // Generate report
1958
+ console.log(reporter.generateReport());
1959
+ // Output:
1960
+ // Input-Text-Email Contract Validation
1961
+ // =====================================
1962
+ // ✅ email_validation: PASS (web, ios, android)
1963
+ // ✅ email_autocomplete: PASS (web, ios, android)
1964
+ // ✅ keyboard_type: PASS (ios, android) - N/A for web
1965
+ ```
1966
+
1967
+ ---
1968
+
1969
+ ### Workflow Summary by Task Type
1970
+
1971
+ | Task Type | Linting | Unit Tests | Integration Tests | Property Tests | Manual Review |
1972
+ |-----------|---------|------------|-------------------|----------------|---------------|
1973
+ | **New Component** | ✅ Pre-dev + During | ✅ Core behavior | ✅ Dependencies | ✅ Universal props | ✅ Accessibility |
1974
+ | **Component Migration** | ✅ Name validation | ✅ Update existing | ✅ Contract preservation | ⚪ If applicable | ✅ Breaking changes |
1975
+ | **Contract Update** | ✅ Token usage | ⚪ If behavior changes | ✅ Contract tests | ✅ Contract props | ✅ API changes |
1976
+ | **Cross-Platform** | ✅ Schema validation | ✅ Platform-specific | ✅ Contract consistency | ✅ Behavioral props | ✅ UX consistency |
1977
+ | **Bug Fix** | ⚪ If structural | ✅ Regression test | ⚪ If integration | ⚪ If universal | ⚪ If UX impact |
1978
+
1979
+ **Legend**: ✅ Required | ⚪ Conditional | ❌ Not needed
1980
+
1981
+ ---
1982
+
1983
+ ### Quick Reference: Validation Commands
1984
+
1985
+ ```bash
1986
+ # Linting validation
1987
+ npm run lint:stemma # Run all Stemma validators
1988
+ npm run lint:stemma:naming # Component naming only
1989
+ npm run lint:stemma:tokens # Token usage only
1990
+
1991
+ # Unit tests
1992
+ npm test -- path/to/component.test.ts # Single test file
1993
+ npm test -- --testPathPattern=Button # Pattern matching
1994
+
1995
+ # Integration tests
1996
+ npm test -- --testPathPattern=integration
1997
+
1998
+ # Property tests
1999
+ npm test -- --testPathPattern=property
2000
+
2001
+ # Stemma system tests
2002
+ npm test -- src/__tests__/stemma-system/
2003
+
2004
+ # Full validation suite
2005
+ npm test # All tests
2006
+ npm run test:all # Including performance tests
2007
+ ```
2008
+
2009
+ ---
2010
+
2011
+ ## Cross-References
2012
+
2013
+ ### Behavioral Contract Validation Framework
2014
+ **File**: `.kiro/steering/Test-Behavioral-Contract-Validation.md`
2015
+
2016
+ **Related Content**:
2017
+ - Behavioral contract validation criteria
2018
+ - Cross-platform consistency validation
2019
+ - Contract test patterns
2020
+
2021
+ **When to Reference**: When writing behavioral contract tests or validating cross-platform consistency.
2022
+
2023
+ ### Component Development Guide
2024
+ **File**: `.kiro/steering/Component-Development-Guide.md`
2025
+
2026
+ **Related Content**:
2027
+ - Component testing patterns
2028
+ - Token-based design testing considerations
2029
+ - Cross-platform testing strategies
2030
+
2031
+ **When to Reference**: When writing component-specific tests or understanding component architecture.
2032
+
2033
+ ### Spec 017 Design Document
2034
+ **File**: `.kiro/specs/017-component-code-quality-sweep/design.md`
2035
+
2036
+ **Related Content**:
2037
+ - Test lifecycle and maintenance philosophy
2038
+ - Temporary vs permanent test distinctions
2039
+ - Three-tier testing strategy (cleanup-specific, evergreen, existing)
2040
+
2041
+ **When to Reference**: When planning cleanup or migration work that requires temporary tests.
2042
+
2043
+ ### Development Workflow
2044
+ **File**: `.kiro/steering/Process-Development-Workflow.md`
2045
+
2046
+ **Related Content**:
2047
+ - Test execution practices
2048
+ - Jest command usage
2049
+ - Test validation during task completion
2050
+
2051
+ **When to Reference**: When running tests or validating task completion.
2052
+
2053
+ ### Icon Test Investigation
2054
+ **File**: `.kiro/specs/023-component-token-compliance-audit/findings/icon-test-investigation.md`
2055
+
2056
+ **Related Content**:
2057
+ - Detailed root cause analysis of Icon test failures
2058
+ - Complete fix implementation details
2059
+ - JSDOM and custom element compatibility notes
2060
+
2061
+ **When to Reference**: When debugging similar web component test issues or understanding the full context of Icon test fixes.
2062
+
2063
+ ---
2064
+
2065
+ ## Quality Standards
2066
+
2067
+ **Test Quality Checklist**:
2068
+
2069
+ - ✅ Tests verify behavior, not implementation details
2070
+ - ✅ Tests check contracts, not internal details
2071
+ - ✅ Tests avoid philosophical preferences
2072
+ - ✅ Evergreen tests have long-term value
2073
+ - ✅ Temporary tests have documented retirement criteria
2074
+ - ✅ Web component tests use proper async setup
2075
+ - ✅ Integration tests focus on integration contracts
2076
+ - ✅ Tests survive refactoring and design evolution
2077
+ - ✅ Tests align with design system principles
2078
+ - ✅ Tests are maintainable and provide clear value
2079
+
2080
+ **Review Questions**:
2081
+
2082
+ 1. **Does this test verify a functional requirement?**
2083
+ 2. **Will this test survive implementation changes?**
2084
+ 3. **Is this test checking behavior or implementation?**
2085
+ 4. **Should this test be evergreen or temporary?**
2086
+ 5. **Does this test provide long-term value?**
2087
+ 6. **Is this test properly handling async behavior?**
2088
+ 7. **Is this integration test checking the right contract?**
2089
+ 8. **Would I want to maintain this test in 6 months?**
2090
+
2091
+ ---
2092
+
2093
+ *This document captures lessons learned from fixing 30 failing Icon tests during Spec 023 (Component Token Compliance Audit). The patterns and anti-patterns documented here apply to all component testing in the DesignerPunk design system.*
2094
+