@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,1876 @@
1
+ ---
2
+ id: component-development-guide
3
+ inclusion: manual
4
+ name: Component-Development-Guide
5
+ aliases: how do i scaffold a new component, scaffold a new component from scratch, focus management keyboard navigation, keyboard navigation focus management component
6
+ description: Guide for building components with appropriate token usage, True Native Architecture, demo maintenance, and effective collaboration practices. Load when implementing components, selecting tokens, integrating icons, or maintaining demo pages.
7
+ ---
8
+
9
+ # Component Development and Practices Guide
10
+
11
+ **Date**: 2025-11-17
12
+ **Last Reviewed**: 2026-05-06
13
+ **Purpose**: Guide AI agents in building components with appropriate token usage, True Native Architecture, and effective collaboration practices
14
+ **Organization**: process-standard
15
+ **Scope**: cross-project
16
+ **Layer**: 3
17
+ **Relevant Tasks**: coding, accessibility-development, icon-integration
18
+
19
+ ## AI Agent Reading Priorities
20
+
21
+ **Note**: This section intentionally uses the same heading as other steering documents because each document provides reading priorities specific to its content. This structural pattern enables progressive disclosure and helps AI agents navigate to relevant sections efficiently.
22
+
23
+ **Layer Context**: This is a Layer 3 (Specific Implementations) document that provides domain-specific guidance for component development. It's conditionally loaded when building or modifying components and contains detailed technical implementation patterns.
24
+
25
+ **WHEN building new components THEN read:**
26
+ 1. ✅ **Token Selection Decision Framework** (Step 1-4)
27
+ 2. ✅ **Semantic tokens**: Read `src/tokens/semantic/index.ts` for available tokens
28
+ 3. ✅ **Component Structure Pattern** (file organization)
29
+ 4. ✅ **True Native Architecture**: `preserved-knowledge/true-native-architecture-concepts.md`
30
+ 5. ✅ **Contract System Reference**: `Contract-System-Reference.md` (taxonomy, naming, format for contracts.yaml)
31
+ 6. ✅ **Icon System Integration** (if component uses icons)
32
+ 7. ✅ **Validation Checklist** (before implementation)
33
+
34
+ **WHEN selecting tokens for components THEN read:**
35
+ 1. ✅ **Token Selection Decision Framework** (all steps)
36
+ 2. ✅ **System-Specific Terminology Glossary** (understand naming conventions)
37
+ 3. ✅ **Common Component Patterns** (button, input, container patterns)
38
+ 4. ✅ **Anti-Patterns to Avoid** (what NOT to do)
39
+
40
+ **WHEN creating component-level tokens THEN read:**
41
+ 1. ✅ **Step 3: Create Component-Level Tokens for Variants**
42
+ 2. ✅ **Component Token Files** section
43
+ 3. ✅ **Component sizing guide**: `.kiro/specs/responsive-layout-system/component-sizing-token-guide.md`
44
+
45
+ **WHEN creating semantic tokens THEN read:**
46
+ 1. ✅ **Step 4: Propose Semantic Token Elevation**
47
+ 2. ✅ **Primitive tokens**: Read `src/tokens/*.ts` for primitive token foundation
48
+ 3. ✅ **Token architecture**: `preserved-knowledge/token-architecture-2-0-mathematics.md`
49
+
50
+ **WHEN implementing cross-platform components THEN read:**
51
+ 1. ✅ **Component Structure Pattern** (True Native Architecture)
52
+ 2. ✅ **Component Token Files** (platform-agnostic token references)
53
+ 3. ✅ **Cross-Platform Token Consumption** (how tokens work per platform)
54
+ 4. ✅ **Icon System Integration** (if component uses icons)
55
+ 5. ✅ **Platform-Specific Nuances** (iOS/Android/Web differences)
56
+
57
+ **WHEN adding icons to components THEN read:**
58
+ 1. ✅ **Icon System Integration** (when to use Icon component vs. direct platform icons)
59
+ 2. ✅ **Icon Size Tokens** (token-to-pixel mapping and typography pairing)
60
+ 3. ✅ **Platform-Specific Icon Usage** (Web, iOS, Android patterns)
61
+ 4. ✅ **Icon Integration Anti-Patterns** (what NOT to do)
62
+ 5. ✅ **Icon Integration Checklist** (verification steps)
63
+
64
+ **WHEN implementing interaction states (hover, pressed, focus, disabled) THEN read:**
65
+ 1. ✅ **Blend Utility Integration** (how to use blend utilities for state colors)
66
+ 2. ✅ **Semantic Blend Token Reference** (which token/function for each state)
67
+ 3. ✅ **Blend Utility Anti-Patterns** (what NOT to do - no opacity, no filters)
68
+ 4. ✅ **Blend Tokens Guide**: `.kiro/steering/Token-Family-Blend.md` (complete reference)
69
+
70
+ **WHEN implementing components with CSS transitions THEN read:**
71
+ 1. ✅ **Incremental DOM Update Pattern** (architecture for preserving element identity)
72
+ 2. ✅ **Key Implementation Details** (DOM creation flag, element caching, conditional updates)
73
+ 3. ✅ **Incremental DOM Anti-Patterns** (what NOT to do - no innerHTML replacement)
74
+ 4. ✅ **Button-VerticalList-Item Implementation** - canonical example
75
+
76
+ **WHEN defining CSS custom properties in components THEN read:**
77
+ 1. ✅ **CSS Custom Property Naming Convention** (the `--_[abbrev]-*` pattern)
78
+ 2. ✅ **Component Abbreviation Reference** (standard abbreviations for each component)
79
+ 3. ✅ **When to Use Each Type** (design tokens vs component-scoped properties)
80
+ 4. ✅ **CSS Custom Property Naming Anti-Patterns** (what NOT to do)
81
+
82
+ **WHEN troubleshooting component issues THEN read:**
83
+ 1. ✅ **Anti-Patterns to Avoid** (common mistakes)
84
+ 2. ✅ **Validation Checklist** (what to verify)
85
+ 3. ✅ **WCAG Theme Architecture** (if accessibility issues)
86
+
87
+ **SKIP when:**
88
+ - Updating component documentation only
89
+ - Fixing typos or formatting
90
+ - Running tests without implementation changes
91
+ - Working on non-component code (tokens, build system, etc.)
92
+
93
+ ---
94
+
95
+ ## Collaboration Practices and FAQs
96
+
97
+ ### When to Pause and Ask
98
+
99
+ AI agents should pause implementation and ask Peter for clarification when:
100
+
101
+ - **Token gaps:** "I need [semantic token] but it doesn't exist. Should I use [primitive token] as fallback, or should we create the semantic token first?"
102
+ - **Design ambiguity:** "Design doc specifies fixed heights but calculated sizing seems more appropriate. Which approach should I use?"
103
+ - **Platform idioms:** "Platform-native animation pattern conflicts with motion token usage. Should I prioritize platform UX or token compliance?"
104
+ - **Judgment calls:** "I'm about to make a judgment call about [decision]. Should I proceed or get clarification first?"
105
+
106
+ **Key Principle:** Pausing to ask is the correct behavior, not a failure. We lose more time correcting assumptive solutions than calling a timeout for clarity.
107
+
108
+ ### Clear Policies
109
+
110
+ #### Icon Usage Policy
111
+
112
+ - **Always use the Icon component** when displaying icons
113
+ - **Never reference icon assets directly**
114
+ - **Rationale:** Ensures consistent sizing via icon.size tokens, proper accessibility attributes, platform-appropriate rendering, and centralized icon management
115
+
116
+ #### Sizing Strategy Policy
117
+
118
+ - **Default to calculated sizing** (padding + content) unless explicitly told otherwise
119
+ - **If design doc specifies fixed heights**, clarify whether calculated heights would work better
120
+ - **Document sizing strategy** in component design docs
121
+
122
+ #### Token Gap Policy
123
+
124
+ - **When semantic tokens don't exist**, pause and ask for guidance
125
+ - **Never assume primitive tokens are acceptable fallbacks**
126
+ - **Document token gaps** in design docs for tracking
127
+
128
+ #### Placeholder Policy
129
+
130
+ - **Never use placeholder implementations** in production code
131
+ - **Tooling will enforce this** through TypeScript types and tests
132
+ - **If placeholders are needed during development**, pause and ask for guidance
133
+
134
+ **For strategic guidance on cross-platform decisions**, see [Cross-Platform vs Platform-Specific Decision Framework](cross-platform-vs-platform-specific-decision-framework)
135
+
136
+ **For strategic guidance on token resolution**, see [Token Resolution Patterns](token-resolution-patterns)
137
+
138
+ ---
139
+
140
+ ## Token Selection Decision Framework
141
+
142
+ ### Step 1: Check Semantic Tokens First
143
+
144
+ **ALWAYS start by reading semantic token files** to see what exists:
145
+ - `src/tokens/semantic/ColorTokens.ts` - Brand, status, text, surface colors
146
+ - `src/tokens/semantic/TypographyTokens.ts` - Body, heading, UI, specialized text
147
+ - `src/tokens/semantic/SpacingTokens.ts` - Layout and inset spacing
148
+ - `src/tokens/semantic/ShadowTokens.ts` - Elevation shadows
149
+ - `src/tokens/semantic/index.ts` - Complete semantic token exports
150
+
151
+ **Example**: Button needs text color
152
+ - ❌ DON'T: Use primitive `blue500`
153
+ - ✅ DO: Read `ColorTokens.ts`, find `color.primary`
154
+
155
+ ### Step 2: Use Primitives Only When Unavoidable
156
+
157
+ **If no semantic token exists**, use primitives and document why:
158
+ - Read `src/tokens/*.ts` to find appropriate primitive
159
+ - Add comment explaining why semantic token doesn't exist
160
+ - Consider proposing semantic token elevation if pattern emerges
161
+
162
+ **Example**: Custom brand color not in semantic tokens
163
+ - ✅ OK: Use `purple300` with comment: `// TODO: Evaluate for semantic token elevation`
164
+
165
+ ### What If Tokens Don't Exist?
166
+
167
+ **When you need a token that doesn't exist:**
168
+
169
+ 1. **Pause and ask**: "I need [semantic token] for [use case]. Should I use [primitive token] as fallback, or should we create the semantic token first?"
170
+ 2. **Document the gap**: Add to design doc's "Token Gaps" section
171
+ 3. **Never assume**: Don't assume primitive tokens are acceptable fallbacks
172
+ 4. **Wait for guidance**: Let Peter decide whether to create token or use alternative approach
173
+
174
+ **Why this matters**: Token gaps often indicate design system opportunities. Pausing to discuss prevents premature decisions and helps the design system evolve intentionally.
175
+
176
+ **For strategic guidance on token resolution**, see [Token Resolution Patterns](token-resolution-patterns)
177
+
178
+ ### Step 3: Create Component-Level Tokens for Variants
179
+
180
+ **If component needs multiple variants**, create component-level tokens:
181
+ - Reference: `.kiro/specs/responsive-layout-system/component-sizing-token-guide.md`
182
+ - Component tokens should reference semantic or primitive tokens
183
+ - Never use hard-coded values
184
+
185
+ **Example**: Button sizing variants
186
+ ```typescript
187
+ // ButtonCTA/tokens.ts
188
+ export const buttonCTATokens = {
189
+ small: {
190
+ paddingX: 'space.inset.tight',
191
+ paddingY: 'space.grouped.minimal',
192
+ typography: 'typography.buttonSm'
193
+ },
194
+ medium: {
195
+ paddingX: 'space.inset.normal',
196
+ paddingY: 'space.inset.tight',
197
+ typography: 'typography.buttonMd'
198
+ },
199
+ large: {
200
+ paddingX: 'space.inset.comfortable',
201
+ paddingY: 'space.inset.normal',
202
+ typography: 'typography.buttonLg'
203
+ }
204
+ };
205
+ ```
206
+
207
+ ### Step 4: Propose Semantic Token Elevation
208
+
209
+ **If 3+ components use same pattern**, propose semantic token elevation:
210
+ - Document the pattern in component completion notes
211
+ - Suggest semantic token name and structure
212
+ - Reference component-sizing-token-guide.md for elevation criteria
213
+
214
+ ---
215
+
216
+ ## System-Specific Terminology Glossary
217
+
218
+ ### Component Naming
219
+
220
+ **Container (not Card)**
221
+ - **Use**: "Container" for generic content wrappers
222
+ - **Avoid**: "Card" (conflicts with payment/gaming domains)
223
+ - **Rationale**: Domain clarity - "Container" is unambiguous across contexts
224
+
225
+ **True Native Architecture**
226
+ - **Meaning**: Build-time platform separation (not runtime detection)
227
+ - **Implementation**: Separate files per platform (Button.web.ts, Button.ios.swift, Button.android.kt)
228
+ - **Benefit**: No runtime overhead, platform-specific optimizations
229
+
230
+ **Semantic Tokens**
231
+ - **Meaning**: Tokens with contextual meaning (color.primary, typography.button)
232
+ - **Purpose**: Express design intent, not implementation details
233
+ - **Usage**: Always prefer semantic over primitive tokens in components
234
+
235
+ **Strategic Flexibility**
236
+ - **Meaning**: Mathematically-derived exceptions to 8px baseline grid
237
+ - **Tokens**: space075 (6px), space125 (10px), space250 (20px)
238
+ - **Usage**: Component-level spacing when baseline grid is too rigid
239
+ - **Validation**: Three-tier system (Pass/Warning/Error)
240
+
241
+ **Compositional Architecture**
242
+ - **Meaning**: Tokens compose primitives rather than including all properties
243
+ - **Example**: Typography tokens don't include color (color applied separately)
244
+ - **Benefit**: Same token works with different colors in different contexts
245
+
246
+ ### Token Hierarchy
247
+
248
+ **Primitive Tokens**
249
+ - **Location**: `src/tokens/*.ts`
250
+ - **Examples**: `space100`, `fontSize100`, `blue500`
251
+ - **Usage**: Foundation for semantic tokens, rarely used directly in components
252
+
253
+ **Semantic Tokens**
254
+ - **Location**: `src/tokens/semantic/*.ts`
255
+ - **Examples**: `color.primary`, `typography.button`, `space.inset.normal`
256
+ - **Usage**: Primary token layer for component development
257
+
258
+ **Component-Level Tokens**
259
+ - **Location**: Within component directory (e.g., `ButtonCTA/tokens.ts`)
260
+ - **Examples**: Button sizing variants, state-specific colors
261
+ - **Usage**: When component needs variants not covered by semantic tokens
262
+
263
+ ### WCAG Theme Architecture
264
+
265
+ **Dual-Theme Support**
266
+
267
+ The DesignerPunk token system includes built-in dual-theme support for color tokens:
268
+ - **Base theme**: Prioritizes aesthetic design and brand expression
269
+ - **WCAG theme**: Ensures WCAG 2.1 AA accessibility compliance
270
+
271
+ **How It Works**
272
+
273
+ Each primitive color token has both `base` and `wcag` theme values:
274
+
275
+ ```typescript
276
+ // Example from ColorTokens.ts
277
+ gray200: {
278
+ platforms: {
279
+ web: {
280
+ value: {
281
+ light: { base: '#68658A', wcag: '#8A879E' },
282
+ dark: { base: '#68658A', wcag: '#8A879E' }
283
+ }
284
+ }
285
+ }
286
+ }
287
+ ```
288
+
289
+ **Theme Selection**
290
+
291
+ - **Base theme** (default): Used for aesthetic design where brand expression is prioritized
292
+ - **WCAG theme**: Used when accessibility compliance is required or when base theme fails contrast requirements
293
+
294
+ **Important Notes**
295
+
296
+ 1. **Not Automatic**: The WCAG theme doesn't automatically solve accessibility issues - it's a tool that requires Human-AI collaboration to use effectively
297
+ 2. **Component-Specific**: Accessibility testing must consider the specific context of each component and how elements pair together
298
+ 3. **Contrast Testing**: Proper accessibility testing checks element pairings in context (e.g., text on background, border on background) with appropriate WCAG standards based on element criticality
299
+ 4. **Design Feedback**: Accessibility decisions often require design feedback to balance aesthetic goals with accessibility requirements
300
+
301
+ **When to Consider WCAG Theme**
302
+
303
+ - When base theme colors fail WCAG contrast requirements
304
+ - When component needs to meet specific accessibility standards
305
+ - When design feedback indicates accessibility improvements are needed
306
+ - When building components for accessibility-critical contexts
307
+
308
+ **Accessibility Testing Philosophy**
309
+
310
+ Accessibility testing requires understanding:
311
+ - **Element Pairings**: Contrast happens between elements (text on background, border on surface)
312
+ - **Criticality Standards**: Different elements have different contrast requirements (4.5:1 for text, 3:1 for non-text)
313
+ - **Context Matters**: The same color may be accessible in one context but not another
314
+ - **Human-AI Collaboration**: Accessibility decisions require design judgment, not just automated testing
315
+
316
+ ---
317
+
318
+ ## Family Naming Convention
319
+
320
+ ### Authoritative Source
321
+
322
+ `family-registry.yaml` (project root) is the single source of truth for component family identity. It defines three fields per family:
323
+
324
+ - **`canonical`**: Machine identifier — singular PascalCase, no spaces, no hyphens (e.g., `FormInput`, `ProgressIndicator`)
325
+ - **`displayName`**: Human-facing label for docs and MCP responses (e.g., "Form Inputs", "Progress Indicators")
326
+ - **`prefix`**: Primary component name prefix (e.g., `Input-`, `Progress-`)
327
+
328
+ All schema.yaml `family:` fields and guidance YAML `family:` fields MUST use the canonical name from the registry.
329
+
330
+ ### Canonical Family Names
331
+
332
+ | Canonical | Display Name | Prefix | Notes |
333
+ |-----------|-------------|--------|-------|
334
+ | `Avatar` | "Avatars" | `Avatar-` | |
335
+ | `Badge` | "Badges" | `Badge-` | |
336
+ | `Button` | "Buttons" | `Button-` | |
337
+ | `Chip` | "Chips" | `Chip-` | |
338
+ | `Container` | "Containers" | `Container-` | |
339
+ | `FormInput` | "Form Inputs" | `Input-` | ⚠️ Legacy prefix omits `Form` |
340
+ | `Icon` | "Icons" | `Icon-` | |
341
+ | `Navigation` | "Navigation" | `Nav-` | ⚠️ Legacy abbreviated prefix |
342
+ | `ProgressIndicator` | "Progress Indicators" | `Progress-` | ⚠️ Dual prefix — primitives use `Progress-Indicator-`, semantic variants use `Progress-` |
343
+
344
+ ### Legacy Prefix Mapping
345
+
346
+ Three families have component name prefixes that don't match their canonical family name. These are documented, not changed — component names are stable identifiers with deep references across the codebase.
347
+
348
+ An agent encountering `Input-Text-Base` should know it belongs to the `FormInput` family. An agent encountering `Nav-TabBar-Base` should know it belongs to the `Navigation` family. The mapping above is the authoritative reference.
349
+
350
+ ### Forward-Looking Rule
351
+
352
+ **New families MUST use the canonical family name as the component prefix.** No abbreviations, no divergence. If the canonical name is `DataDisplay`, the component prefix is `DataDisplay-`, not `DD-` or `Data-`.
353
+
354
+ ### Guidance YAML Filenames
355
+
356
+ Guidance YAML filenames (e.g., `button.yaml`, `form-inputs.yaml`) are filesystem identifiers independent of the canonical family name. A file named `form-inputs.yaml` contains `family: FormInput`. This is expected — the filename convention predates the canonical naming convention and is not worth renaming.
357
+
358
+ ### Enforcement
359
+
360
+ The `FamilyNameValidation.test.ts` test validates that every schema `family:` value matches a canonical name in `family-registry.yaml`. Adding a new family requires registering it in the registry first — the test will fail with a clear message if an unregistered family name appears.
361
+
362
+ ---
363
+
364
+ ## Family Guidance Standards
365
+
366
+ When a component family reaches production readiness, its guidance YAML must meet minimum quality standards. These standards ensure that product agents (Leonardo) can select the right component for the right context from day one — not just find that guidance exists, but find guidance that's *useful*.
367
+
368
+ ### Minimum Quality Bar
369
+
370
+ | Standard | Rationale | Enforcement |
371
+ |----------|-----------|-------------|
372
+ | Every production component appears in at least one `selectionRule` | An unreachable component is invisible to agents querying `getGuidance()` — it exists in the catalog but can't be selected through guidance | `GuidanceCompleteness.test.ts` — hard failure |
373
+ | `whenToUse` is non-empty | Agents need to know what problem this family solves before selecting from it | `GuidanceCompleteness.test.ts` — hard failure |
374
+ | `whenNotToUse` is non-empty | The most common guidance failure is selecting a component for the wrong use case. Explicit anti-patterns prevent this | `GuidanceCompleteness.test.ts` — hard failure |
375
+ | `accessibilityNotes` is non-empty | Every production family has accessibility implications. Notes ensure agents don't produce inaccessible compositions | `GuidanceCompleteness.test.ts` — hard failure |
376
+ | `displayName` is present | Human-facing label for docs and MCP responses. Falls back to `family` value if omitted | `FamilyNameValidation.test.ts` (Spec 082) |
377
+
378
+ ### Resolution Path
379
+
380
+ When `GuidanceCompleteness.test.ts` fails, the error message identifies the specific family or component and points to this section. To resolve:
381
+
382
+ 1. **Component not reachable**: Add the component to a `selectionRule` in the family's guidance YAML. Every `selectionRule` needs a `scenario` (when to use it), `recommend` (the component name), and `rationale` (why this component fits).
383
+ 2. **Empty `whenToUse`**: Add at least one entry describing what problem this family solves. Be specific — "Use for forms" is less useful than "Use for capturing structured user input with validation feedback."
384
+ 3. **Empty `whenNotToUse`**: Add at least one entry describing the common misuse. What do agents reach for this family when they should reach for something else?
385
+ 4. **Empty `accessibilityNotes`**: Add at least one entry covering the family's key accessibility consideration — keyboard navigation, screen reader behavior, focus management, or ARIA requirements.
386
+
387
+ ### Enforcement
388
+
389
+ Quality enforcement lives in `application-mcp-server/src/indexer/__tests__/GuidanceCompleteness.test.ts`. This file is the dedicated home for guidance *quality* checks — distinct from `CoverageDrift.test.ts` (guidance *existence*) and `FamilyNameValidation.test.ts` (family *naming*).
390
+
391
+ ---
392
+
393
+ ## Component Attribute Standards
394
+
395
+ ### Variant Attribute Naming
396
+
397
+ **Standard**: Use `variant` attribute for component variations, not `style`
398
+
399
+ **Rationale**:
400
+ - **IDE Warnings**: The `style` attribute conflicts with the standard HTML `style` attribute, causing IDE warnings and potential confusion
401
+ - **Industry Standards**: Leading design systems use `variant` for component variations:
402
+ - Material Design: `<Button variant="contained">`
403
+ - Shoelace: `<sl-button variant="primary">`
404
+ - Adobe Spectrum: `<sp-button variant="accent">`
405
+ - **Web Component Best Practices**: Custom elements should avoid attribute names that conflict with standard HTML attributes
406
+ - **Developer Experience**: Clear, unambiguous attribute names improve code readability and reduce errors
407
+
408
+ **Correct Usage**:
409
+ ```html
410
+ <!-- ✅ CORRECT: Use variant attribute -->
411
+ <button-cta variant="primary" label="Submit"></button-cta>
412
+ <button-cta variant="secondary" label="Cancel"></button-cta>
413
+ <button-cta variant="danger" label="Delete"></button-cta>
414
+ ```
415
+
416
+ **Anti-Pattern**:
417
+ ```html
418
+ <!-- ❌ WRONG: Don't use style attribute for variants -->
419
+ <button-cta style="primary" label="Submit"></button-cta>
420
+ ```
421
+
422
+ **Why This Matters**:
423
+ - IDEs will show warnings when `style` is used for non-CSS purposes
424
+ - Developers familiar with web standards expect `style` to contain CSS
425
+ - Using `variant` aligns with industry conventions and improves code clarity
426
+ - Future-proofs components against potential conflicts with HTML standards
427
+
428
+ **TypeScript Interface Pattern**:
429
+ ```typescript
430
+ // Component props interface
431
+ export interface ButtonCTAProps {
432
+ label: string;
433
+ variant?: 'primary' | 'secondary' | 'danger'; // ✅ Use variant
434
+ size?: 'small' | 'medium' | 'large';
435
+ icon?: string;
436
+ disabled?: boolean;
437
+ }
438
+ ```
439
+
440
+ **Web Component Implementation Pattern**:
441
+ ```typescript
442
+ // Web component attribute reading
443
+ class ButtonCTA extends HTMLElement {
444
+ connectedCallback() {
445
+ const variant = this.getAttribute('variant') || 'primary'; // ✅ Read variant
446
+ // Apply styling based on variant
447
+ }
448
+ }
449
+ ```
450
+
451
+ ---
452
+
453
+ ## Component Structure Pattern
454
+
455
+ ### File Organization
456
+
457
+ ```
458
+ src/components/
459
+ core/ # Core, reusable components
460
+ [ComponentName]/
461
+ README.md # Component documentation
462
+ types.ts # Shared TypeScript interfaces
463
+ tokens.ts # Component-level tokens (if needed)
464
+ __tests__/ # Cross-platform tests
465
+ examples/ # Usage examples
466
+ platforms/ # Platform-specific implementations
467
+ web/
468
+ [ComponentName].web.ts
469
+ ios/
470
+ [ComponentName].ios.swift
471
+ android/
472
+ [ComponentName].android.kt
473
+ ```
474
+
475
+ ### Directory Purpose
476
+
477
+ - **README.md**: Component documentation, usage guidelines, token consumption
478
+ - **types.ts**: Shared TypeScript interfaces and types
479
+ - **tokens.ts**: Component-level token references (platform-agnostic)
480
+ - **__tests__/**: Component tests (unit, integration, accessibility)
481
+ - **examples/**: Usage examples demonstrating component variants
482
+ - **platforms/**: Platform-specific implementations following True Native Architecture
483
+
484
+ ---
485
+
486
+ ## Behavioral Contracts Workflow
487
+
488
+ Behavioral contracts (`contracts.yaml`) define what a component guarantees to its consumers. They are core Stemma — not a separate governance layer.
489
+
490
+ ### When to Author Contracts
491
+
492
+ Author `contracts.yaml` after `types.ts` and before platform implementation. Contracts are the specification; platform code is the implementation.
493
+
494
+ ### Naming Convention
495
+
496
+ All contract names follow `{category}_{concept}` in `snake_case`:
497
+ - `interaction_focusable`, `state_disabled`, `accessibility_reduced_motion`
498
+ - 10 categories: accessibility, animation, composition, content, interaction, layout, performance, state, validation, visual
499
+
500
+ ### Concept Catalog Consultation
501
+
502
+ Before naming a contract, query the Concept Catalog via MCP:
503
+ ```
504
+ get_section({ path: ".kiro/steering/Contract-System-Reference.md", heading: "Concept Catalog" })
505
+ ```
506
+ - Use existing catalog concepts whenever possible
507
+ - If a behavior needs a new concept, propose a catalog addition (ballot measure) before using it
508
+ - Non-catalog concept names will fail the automated validation test (`npm test`)
509
+
510
+ ### Relationship to Platform Implementation
511
+
512
+ - Each platform implementation satisfies the same set of contracts
513
+ - Spec task subtasks for platform implementation should include `_Contracts:` lines mapping to the contracts they satisfy
514
+ - The automated existence check verifies every component with `platforms/` has `contracts.yaml`
515
+
516
+ ### Reference
517
+
518
+ For the full contract system (taxonomy, canonical format, classification rules, inheritance patterns):
519
+ ```
520
+ get_document_full({ path: ".kiro/steering/Contract-System-Reference.md" })
521
+ ```
522
+
523
+ ---
524
+
525
+ ## What If Design Doc Is Unclear?
526
+
527
+ **When design documentation leaves questions unanswered:**
528
+
529
+ 1. **Pause and ask**: "Design doc specifies [X] but [Y] seems more appropriate. Which approach should I use?"
530
+ 2. **Provide context**: Explain why you're uncertain and what alternatives you're considering
531
+ 3. **Don't assume**: Never make judgment calls on ambiguous design decisions
532
+ 4. **Document the question**: Add to design doc as an open question if it affects other components
533
+
534
+ **Common ambiguities:**
535
+ - Fixed heights vs calculated sizing
536
+ - Platform-specific behavior vs cross-platform consistency
537
+ - Token usage when multiple tokens could apply
538
+ - Variant naming and organization
539
+
540
+ **Why this matters**: Design ambiguity often reveals opportunities to improve the design system. Pausing to clarify prevents rework and ensures components align with design intent.
541
+
542
+ ---
543
+
544
+ ## Component Token Files
545
+
546
+ ### Purpose of tokens.ts
547
+
548
+ The `tokens.ts` file at component root defines **which tokens** the component uses, not **how** they're implemented per platform.
549
+
550
+ **This file is platform-agnostic** - it references semantic or primitive token names that will be generated into platform-specific values by the build system.
551
+
552
+ **Example**:
553
+ ```typescript
554
+ // ButtonCTA/tokens.ts
555
+ // Platform-agnostic token references
556
+ export const buttonCTATokens = {
557
+ // Sizing - references semantic tokens
558
+ paddingX: 'space.inset.normal',
559
+ paddingY: 'space.inset.tight',
560
+ minWidth: 'space400',
561
+
562
+ // Colors - references semantic tokens
563
+ background: 'color.primary',
564
+ text: 'color.text.default',
565
+
566
+ // Typography - references semantic token
567
+ typography: 'typography.buttonMd',
568
+
569
+ // Border - references primitive token
570
+ borderRadius: 'radius100'
571
+ };
572
+ ```
573
+
574
+ ### Platform-Specific Token Usage
575
+
576
+ Each platform implementation uses **generated platform-specific tokens** from the build system:
577
+
578
+ **Web**: CSS custom properties
579
+ ```typescript
580
+ // platforms/web/ButtonCTA.web.ts
581
+ static styles = css`
582
+ :host {
583
+ padding: var(--space-inset-tight) var(--space-inset-normal);
584
+ background: var(--color-primary);
585
+ color: var(--color-text-default);
586
+ font: var(--typography-button-md);
587
+ border-radius: var(--radius-100);
588
+ }
589
+ `;
590
+ ```
591
+
592
+ **iOS**: Swift constants
593
+ ```swift
594
+ // platforms/ios/ButtonCTA.ios.swift
595
+ Button(action: action) {
596
+ Text(label)
597
+ .font(typographyButtonMd)
598
+ .foregroundColor(colorTextDefault)
599
+ }
600
+ .padding(.horizontal, spaceInsetNormal)
601
+ .padding(.vertical, spaceInsetTight)
602
+ .background(colorPrimary)
603
+ .cornerRadius(radius100)
604
+ ```
605
+
606
+ **Android**: Kotlin constants
607
+ ```kotlin
608
+ // platforms/android/ButtonCTA.android.kt
609
+ Button(
610
+ onClick = onClick,
611
+ modifier = modifier
612
+ .padding(horizontal = spaceInsetNormal.dp, vertical = spaceInsetTight.dp)
613
+ ) {
614
+ Text(
615
+ text = label,
616
+ style = typographyButtonMd,
617
+ color = colorTextDefault
618
+ )
619
+ }
620
+ ```
621
+
622
+ **Key Point**: The build system generates platform-specific token values (CSS custom properties, Swift constants, Kotlin constants) from the semantic token references in `tokens.ts`.
623
+
624
+ ### What If Platform Requirements Don't Fit in Token Files?
625
+
626
+ Platform implementations handle platform-specific requirements that are **not** in the component tokens file:
627
+
628
+ **iOS Example**: Minimum touch target height (WCAG requirement)
629
+ ```swift
630
+ .frame(minHeight: 44) // iOS-specific accessibility requirement
631
+ ```
632
+
633
+ **Android Example**: Material ripple effect
634
+ ```kotlin
635
+ .clickable(
636
+ indication = rememberRipple(), // Android-specific interaction
637
+ interactionSource = remember { MutableInteractionSource() }
638
+ )
639
+ ```
640
+
641
+ **Web Example**: Focus visible styles
642
+ ```css
643
+ :host(:focus-visible) {
644
+ outline: 2px solid var(--color-primary);
645
+ outline-offset: 2px;
646
+ }
647
+ ```
648
+
649
+ **These nuances are handled by platform implementations**, not defined in the component tokens file. The component tokens file only defines which design system tokens the component uses.
650
+
651
+ ---
652
+
653
+ ## Icon System Integration
654
+
655
+ ### Overview
656
+
657
+ The Icon component provides a unified API for displaying vector icons across web, iOS, and Android platforms. This section documents when to use the Icon component system versus direct platform icons, and how to properly use icon size tokens.
658
+
659
+ ### When to Use Icon Component
660
+
661
+ **Use the Icon component when**:
662
+ - Icon is part of component's public API (user can specify icon name)
663
+ - Icon needs to be swappable or configurable
664
+ - Icon should follow consistent sizing and coloring patterns
665
+ - Component is cross-platform and needs unified icon handling
666
+
667
+ **Example - ButtonCTA with Icon**:
668
+ ```typescript
669
+ // Web component using Icon system
670
+ <button-cta icon="arrow-right" label="Next"></button-cta>
671
+
672
+ // Component internally uses Icon component
673
+ const iconElement = createIcon({
674
+ name: this.getAttribute('icon'),
675
+ size: iconSize100, // Token-based sizing
676
+ color: 'currentColor'
677
+ });
678
+ ```
679
+
680
+ ### When Direct Platform Icons Are Acceptable
681
+
682
+ **Direct platform icons are acceptable when**:
683
+ - Icon is internal implementation detail (not exposed to component API)
684
+ - Icon is platform-specific UI convention (iOS SF Symbols for system UI)
685
+ - Icon is tightly coupled to platform behavior
686
+
687
+ **However**: Even internal icons MUST use icon size tokens for sizing.
688
+
689
+ **Example - Input-Text-Base Status Icons**:
690
+ ```swift
691
+ // iOS: SF Symbols for status indicators (internal implementation)
692
+ // ✅ CORRECT: Use icon size token
693
+ Image(systemName: "exclamationmark.circle.fill")
694
+ .font(.system(size: iconSize075))
695
+
696
+ // ❌ WRONG: Hard-coded size
697
+ Image(systemName: "exclamationmark.circle.fill")
698
+ .font(.system(size: 16))
699
+ ```
700
+
701
+ **When bypassing the Icon system**, document the rationale in the component README:
702
+ ```markdown
703
+ ## Icon Usage
704
+
705
+ This component uses direct SF Symbols for status indicators because:
706
+ - Icons are internal implementation details (not exposed to API)
707
+ - SF Symbols provide platform-native visual consistency
708
+ - Status icons follow iOS Human Interface Guidelines
709
+ ```
710
+
711
+ ### Icon Size Tokens
712
+
713
+ **All icon sizing MUST use icon size tokens**:
714
+
715
+ | Token | Pixels | Typography Pairing | Use Cases |
716
+ |-------|--------|-------------------|-----------|
717
+ | `iconSize050` | 12px | caption, legal, labelXs | Smallest text, fine print |
718
+ | `iconSize075` | 16px | bodySm, buttonSm, labelSm | Compact layouts, small UI |
719
+ | `iconSize100` | 24px | bodyMd, buttonMd, labelMd | Standard UI (default) |
720
+ | `iconSize125` | 32px | bodyLg, buttonLg, labelLg | Large UI elements |
721
+ | `iconSize150` | 40px | h2 | Large headings |
722
+
723
+ **Size Selection Guidelines**:
724
+ - **Default to `iconSize100` (24px)**: Use when in doubt
725
+ - **Match typography context**: Use icon size that pairs with the text typography
726
+ - **Consider visual hierarchy**: Larger icons create stronger visual presence
727
+
728
+ ### Platform-Specific Icon Usage
729
+
730
+ #### Web Platform
731
+
732
+ **Using Icon Component**:
733
+ ```html
734
+ <!-- Web component API (recommended) -->
735
+ <icon-base name="arrow-right" size="24"></icon-base>
736
+
737
+ <!-- With color override -->
738
+ <icon-base name="check" size="24" color="color-success"></icon-base>
739
+ ```
740
+
741
+ **Using Icon Size Tokens in CSS**:
742
+ ```css
743
+ .icon-container {
744
+ width: var(--icon-size-100); /* 24px */
745
+ height: var(--icon-size-100); /* 24px */
746
+ }
747
+
748
+ .small-icon {
749
+ width: var(--icon-size-075); /* 16px */
750
+ height: var(--icon-size-075); /* 16px */
751
+ }
752
+ ```
753
+
754
+ **Using Icon Size Tokens in JavaScript**:
755
+ ```typescript
756
+ import { createIcon } from '@/components/core/Icon/platforms/web/Icon.web';
757
+
758
+ // ✅ CORRECT: Use token reference
759
+ const icon = createIcon({
760
+ name: 'check',
761
+ size: iconSize100 // Token-based sizing
762
+ });
763
+
764
+ // ❌ WRONG: Hard-coded size
765
+ const icon = createIcon({
766
+ name: 'check',
767
+ size: 24 // Hard-coded value
768
+ });
769
+ ```
770
+
771
+ #### iOS Platform (SwiftUI)
772
+
773
+ **Using Icon Component**:
774
+ ```swift
775
+ // Icon component with token-based sizing
776
+ Icon(name: "arrow-right", size: iconSize100)
777
+
778
+ // With custom color
779
+ Icon(name: "check", size: iconSize100)
780
+ .foregroundColor(colorSuccess)
781
+ ```
782
+
783
+ **Using Direct SF Symbols with Tokens**:
784
+ ```swift
785
+ // ✅ CORRECT: SF Symbol with icon size token
786
+ Image(systemName: "exclamationmark.circle.fill")
787
+ .font(.system(size: iconSize075))
788
+
789
+ // ✅ CORRECT: SF Symbol with frame using token
790
+ Image(systemName: "checkmark.circle.fill")
791
+ .frame(width: iconSize100, height: iconSize100)
792
+
793
+ // ❌ WRONG: Hard-coded size
794
+ Image(systemName: "exclamationmark.circle.fill")
795
+ .font(.system(size: 16))
796
+ ```
797
+
798
+ **When to Use SF Symbols Directly**:
799
+ - Status indicators (error, success, warning icons)
800
+ - System UI elements following iOS conventions
801
+ - Platform-specific accessibility features
802
+
803
+ #### Android Platform (Jetpack Compose)
804
+
805
+ **Using Icon Component**:
806
+ ```kotlin
807
+ // Icon component with token-based sizing
808
+ Icon(name = "arrow_right", size = iconSize100)
809
+
810
+ // With custom color
811
+ Icon(
812
+ name = "check",
813
+ size = iconSize100,
814
+ tint = colorSuccess
815
+ )
816
+ ```
817
+
818
+ **Using Direct Material Icons with Tokens**:
819
+ ```kotlin
820
+ // ✅ CORRECT: Material Icon with size token
821
+ Icon(
822
+ imageVector = Icons.Default.CheckCircle,
823
+ contentDescription = "Success",
824
+ modifier = Modifier.size(iconSize100)
825
+ )
826
+
827
+ // ✅ CORRECT: Custom drawable with size token
828
+ Icon(
829
+ painter = painterResource(id = R.drawable.ic_status),
830
+ contentDescription = "Status",
831
+ modifier = Modifier.size(iconSize075)
832
+ )
833
+
834
+ // ❌ WRONG: Hard-coded size
835
+ Icon(
836
+ imageVector = Icons.Default.CheckCircle,
837
+ contentDescription = "Success",
838
+ modifier = Modifier.size(24.dp)
839
+ )
840
+ ```
841
+
842
+ **When to Use Material Icons Directly**:
843
+ - Status indicators following Material Design guidelines
844
+ - System UI elements following Android conventions
845
+ - Platform-specific interaction patterns
846
+
847
+ ### Icon Integration Anti-Patterns
848
+
849
+ #### ❌ Hard-Coded Icon Sizes
850
+ ```swift
851
+ // DON'T: Hard-coded pixel values
852
+ Image(systemName: "icon-name")
853
+ .font(.system(size: 16))
854
+
855
+ // DO: Use icon size tokens
856
+ Image(systemName: "icon-name")
857
+ .font(.system(size: iconSize075))
858
+ ```
859
+
860
+ #### ❌ Inconsistent Icon Usage Within Component
861
+ ```typescript
862
+ // DON'T: Mix Icon component and direct assets inconsistently
863
+ class MyComponent {
864
+ render() {
865
+ // Some icons use Icon component
866
+ const navIcon = createIcon({ name: 'arrow-right', size: iconSize100 });
867
+
868
+ // Other icons use direct SVG (inconsistent)
869
+ const statusIcon = '<svg width="16" height="16">...</svg>';
870
+ }
871
+ }
872
+
873
+ // DO: Use consistent approach throughout component
874
+ class MyComponent {
875
+ render() {
876
+ // All icons use Icon component
877
+ const navIcon = createIcon({ name: 'arrow-right', size: iconSize100 });
878
+ const statusIcon = createIcon({ name: 'check', size: iconSize075 });
879
+ }
880
+ }
881
+ ```
882
+
883
+ #### ❌ Missing Documentation for Direct Platform Icons
884
+ ```swift
885
+ // DON'T: Use direct platform icons without documentation
886
+ Image(systemName: "exclamationmark.circle.fill")
887
+ .font(.system(size: iconSize075))
888
+
889
+ // DO: Document rationale in component README
890
+ // See "When Direct Platform Icons Are Acceptable" section above
891
+ ```
892
+
893
+ ### Icon Integration Checklist
894
+
895
+ Before implementing icons in a component, verify:
896
+
897
+ - [ ] Decided whether to use Icon component or direct platform icons
898
+ - [ ] Documented rationale if bypassing Icon component system
899
+ - [ ] All icon sizes use icon size tokens (no hard-coded values)
900
+ - [ ] Icon sizing matches typography context (see token pairing table)
901
+ - [ ] Consistent icon approach throughout the component
902
+ - [ ] Component README documents icon usage patterns
903
+
904
+ ---
905
+
906
+ ## What If Platform Idioms Conflict with Tokens?
907
+
908
+ **When platform-native patterns conflict with token usage:**
909
+
910
+ 1. **Pause and ask**: "Platform-native [animation/interaction] conflicts with [token]. Should I prioritize platform UX or token compliance?"
911
+ 2. **Explain the conflict**: Describe the platform idiom and why it conflicts with tokens
912
+ 3. **Propose options**: Suggest alternatives (use tokens, use platform idiom, hybrid approach)
913
+ 4. **Wait for guidance**: Let Peter decide based on design system goals
914
+
915
+ **Common conflicts:**
916
+ - Motion tokens vs platform-native animations (iOS springs, Android ripples)
917
+ - Sizing tokens vs platform accessibility requirements (44pt iOS touch targets)
918
+ - Color tokens vs platform-specific UI conventions (system colors, semantic colors)
919
+
920
+ **Decision framework**: See [Cross-Platform vs Platform-Specific Decision Framework](cross-platform-vs-platform-specific-decision-framework) for strategic guidance on when to prioritize cross-platform consistency vs platform-appropriate UX.
921
+
922
+ **Why this matters**: Platform idioms often provide superior UX, but deviating from tokens affects design system consistency. These decisions require design judgment, not assumptions.
923
+
924
+ ---
925
+
926
+ ## Cross-Platform Token Consumption
927
+
928
+ ### How Token Generation Works
929
+
930
+ **1. Component defines token references** (platform-agnostic):
931
+ ```typescript
932
+ // tokens.ts
933
+ paddingX: 'space.inset.normal'
934
+ ```
935
+
936
+ **2. Build system generates platform-specific values**:
937
+
938
+ **Web Output** (CSS):
939
+ ```css
940
+ --space-inset-normal: 8px;
941
+ ```
942
+
943
+ **iOS Output** (Swift):
944
+ ```swift
945
+ let spaceInsetNormal: CGFloat = 8
946
+ ```
947
+
948
+ **Android Output** (Kotlin):
949
+ ```kotlin
950
+ val spaceInsetNormal = 8.dp
951
+ ```
952
+
953
+ **3. Platform implementations use generated tokens**:
954
+
955
+ Each platform uses its native syntax to consume the generated token values. The mathematical relationships are preserved across all platforms — only the syntax differs.
956
+
957
+ ### Token Consumption by Platform (Spec 094)
958
+
959
+ Tokens are split into two categories: **static tokens** (spacing, sizing, radius, typography, motion) that don't vary by theme, and **theme-varying tokens** (colors, color-dependent shadows/glows) that change per theme.
960
+
961
+ **Web** — CSS custom properties, no code changes needed for theming:
962
+ ```css
963
+ /* Static and theme-varying tokens both consumed as custom properties */
964
+ var(--space-inset-100) /* Static — same in all themes */
965
+ var(--color-action-primary) /* Theme-varying — changes with data-theme attribute */
966
+ ```
967
+
968
+ **iOS** — Static tokens via `DesignTokens`, theme-varying via `@Environment`:
969
+ ```swift
970
+ // Static tokens — unchanged
971
+ DesignTokens.spaceInset100
972
+
973
+ // Theme-varying tokens — read from environment
974
+ @Environment(\.{abbreviation}Theme) var theme
975
+ theme.colorActionPrimary
976
+ ```
977
+
978
+ **Android** — Static tokens via `DesignTokens`, theme-varying via `CompositionLocal`:
979
+ ```kotlin
980
+ // Static tokens — unchanged
981
+ DesignTokens.space_inset_100
982
+
983
+ // Theme-varying tokens — read from CompositionLocal
984
+ val theme = Local{Abbreviation}Theme.current
985
+ theme.colorActionPrimary
986
+ ```
987
+
988
+ **Key rule**: Components should NOT mix static and theme-aware access for the same token. If a token is in the theme-varying set (determined by the ThemeRegistry), always use the theme-aware access pattern on iOS/Android. On web, all tokens use CSS custom properties regardless.
989
+
990
+ ### Token Reference Format
991
+
992
+ **In component tokens.ts**, use dot notation for semantic tokens:
993
+ ```typescript
994
+ 'space.inset.normal' // Semantic spacing token
995
+ 'color.primary' // Semantic color token
996
+ 'typography.buttonMd' // Semantic typography token
997
+ ```
998
+
999
+ **Or direct primitive token names**:
1000
+ ```typescript
1001
+ 'space100' // Primitive spacing token
1002
+ 'blue500' // Primitive color token
1003
+ 'fontSize100' // Primitive font size token
1004
+ ```
1005
+
1006
+ **Build system resolves these references** to platform-specific generated values.
1007
+
1008
+ ---
1009
+
1010
+ ## Common Component Patterns
1011
+
1012
+ ### Button Components
1013
+ - **Text**: `typography.buttonSm/Md/Lg`
1014
+ - **Background**: `color.primary` (primary), or use primitive colors directly for variants
1015
+ - **Padding**: `space.inset.normal` or `space.inset.comfortable`
1016
+ - **Border radius**: `radius100` or `radius150`
1017
+ - **Min width**: `space400` (128px minimum for accessibility)
1018
+
1019
+ ### Input Components
1020
+ - **Text**: `typography.input`
1021
+ - **Label**: `typography.labelSm/Md/Lg`
1022
+ - **Padding**: `space.inset.normal`
1023
+ - **Border**: `border.default`, `color.border`
1024
+ - **Sizing**: Follow component-sizing-token-guide.md
1025
+
1026
+ ### Container Components
1027
+ - **Background**: `color.surface`
1028
+ - **Padding**: `space.inset.comfortable` or `space.inset.spacious`
1029
+ - **Spacing**: `space.separated.normal` between containers
1030
+ - **Shadow**: `shadow.dusk` or `shadow.sunrise`
1031
+ - **Border radius**: `radius100` or `radius150`
1032
+
1033
+ ---
1034
+
1035
+ ## Blend Utility Integration
1036
+
1037
+ ### Overview
1038
+
1039
+ Blend utilities enable components to create new opaque colors for interaction states (hover, pressed, focus, disabled) rather than using opacity-based workarounds. All components should use blend utilities for state color modifications.
1040
+
1041
+ ### Why Blend Utilities Over CSS Filters
1042
+
1043
+ **CSS `filter: brightness()` has significant limitations** that make it unsuitable for production design systems:
1044
+
1045
+ 1. **Affects entire element, not just target property**: CSS filters apply to the entire element including text, icons, borders, and shadows. When you want to darken only the background on hover, `filter: brightness(0.92)` also darkens the text and any icons, creating unintended visual effects.
1046
+
1047
+ 2. **Not cross-platform consistent**: CSS filters are web-only. iOS and Android have different approaches to color manipulation, making it impossible to achieve visual consistency across platforms with filter-based solutions.
1048
+
1049
+ 3. **Produces transparency artifacts**: Brightness filters can create unexpected transparency or color shifts, especially with semi-transparent elements or complex backgrounds.
1050
+
1051
+ 4. **No design token integration**: Filter values like `brightness(0.92)` are arbitrary numbers that don't connect to the design token system. Blend utilities use semantic tokens (`blend.hoverDarker = 8%`) that can be updated system-wide.
1052
+
1053
+ 5. **Accessibility concerns**: Filter-based color changes may not maintain WCAG contrast ratios predictably, while blend utilities calculate mathematically correct color values that preserve accessibility compliance.
1054
+
1055
+ **Blend utilities solve these problems by**:
1056
+ - Calculating new opaque colors that affect only the target property
1057
+ - Using the same mathematical formulas across web, iOS, and Android
1058
+ - Integrating with the design token system for consistent, maintainable values
1059
+ - Producing predictable, accessible color values
1060
+
1061
+ ### Canonical Implementation Example
1062
+
1063
+ **Button-CTA** (`src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts`) serves as the canonical implementation example for blend utility integration. It demonstrates:
1064
+
1065
+ - Importing `getBlendUtilities()` from the theme-aware blend utilities module
1066
+ - Initializing blend utilities in the constructor
1067
+ - Calculating state colors (hover, pressed, disabled, icon) in `connectedCallback()`
1068
+ - Applying calculated colors via CSS custom properties
1069
+ - Retry pattern for handling CSS custom property timing
1070
+
1071
+ **Reference this implementation** when adding blend utilities to new components.
1072
+
1073
+ ### When to Use Blend Utilities
1074
+
1075
+ **Use blend utilities for**:
1076
+ - Hover state colors (darken or lighten based on background)
1077
+ - Pressed state colors (stronger darkening than hover)
1078
+ - Focus state colors (increased saturation for emphasis)
1079
+ - Disabled state colors (desaturation for muted appearance)
1080
+ - Icon optical balance (lightening for visual weight compensation)
1081
+
1082
+ ### Web Platform Usage
1083
+
1084
+ ```typescript
1085
+ import { getBlendUtilities } from '@3fn/core/ThemeAwareBlendUtilities';
1086
+
1087
+ class MyComponent extends HTMLElement {
1088
+ connectedCallback() {
1089
+ // Read theme color from CSS custom properties
1090
+ const computedStyle = getComputedStyle(document.documentElement);
1091
+ const primaryColor = computedStyle.getPropertyValue('--color-primary').trim();
1092
+
1093
+ // Get blend utilities
1094
+ const blendUtils = getBlendUtilities();
1095
+
1096
+ // Calculate state colors
1097
+ this._hoverColor = blendUtils.hoverColor(primaryColor); // 8% darker
1098
+ this._pressedColor = blendUtils.pressedColor(primaryColor); // 12% darker
1099
+ this._disabledColor = blendUtils.disabledColor(primaryColor); // 12% desaturated
1100
+ this._focusColor = blendUtils.focusColor(primaryColor); // 8% more saturated
1101
+ }
1102
+ }
1103
+ ```
1104
+
1105
+ ### iOS Platform Usage
1106
+
1107
+ ```swift
1108
+ struct MyComponent: View {
1109
+ let primaryColor: Color
1110
+
1111
+ var body: some View {
1112
+ Button(action: {}) {
1113
+ Text(label)
1114
+ }
1115
+ .background(isPressed ? primaryColor.pressedBlend() :
1116
+ isHovered ? primaryColor.hoverBlend() :
1117
+ primaryColor)
1118
+ }
1119
+ }
1120
+ ```
1121
+
1122
+ ### Android Platform Usage
1123
+
1124
+ ```kotlin
1125
+ @Composable
1126
+ fun MyComponent(primaryColor: Color) {
1127
+ val interactionSource = remember { MutableInteractionSource() }
1128
+ val isPressed by interactionSource.collectIsPressedAsState()
1129
+
1130
+ Button(
1131
+ colors = ButtonDefaults.buttonColors(
1132
+ containerColor = if (isPressed) primaryColor.pressedBlend() else primaryColor
1133
+ )
1134
+ ) {
1135
+ Text(label)
1136
+ }
1137
+ }
1138
+ ```
1139
+
1140
+ ### Semantic Blend Token Reference
1141
+
1142
+ | State | Token | Function | Value |
1143
+ |-------|-------|----------|-------|
1144
+ | Hover (light bg) | `blend.hoverDarker` | `hoverColor()` | 8% darker |
1145
+ | Hover (dark bg) | `blend.hoverLighter` | `lighterBlend(color, 0.08)` | 8% lighter |
1146
+ | Pressed | `blend.pressedDarker` | `pressedColor()` | 12% darker |
1147
+ | Focus | `blend.focusSaturate` | `focusColor()` | 8% more saturated |
1148
+ | Disabled | `blend.disabledDesaturate` | `disabledColor()` | 12% desaturated |
1149
+ | Container hover | `blend.containerHoverDarker` | `darkerBlend(color, 0.04)` | 4% darker |
1150
+ | Icon optical | `color.icon.opticalBalance` | `iconColor()` | 8% lighter |
1151
+
1152
+ ### Blend Utility Anti-Patterns
1153
+
1154
+ **❌ Don't use opacity for state colors**:
1155
+ ```typescript
1156
+ // WRONG: Opacity creates transparency, not new colors
1157
+ const hoverStyle = { opacity: 0.92 };
1158
+ ```
1159
+
1160
+ **❌ Don't use CSS filters for color modification**:
1161
+ ```typescript
1162
+ // WRONG: Filters are not cross-platform consistent
1163
+ const iconStyle = { filter: 'brightness(1.08)' };
1164
+ ```
1165
+
1166
+ **❌ Don't use platform-specific workarounds**:
1167
+ ```swift
1168
+ // WRONG: iOS scaleEffect as pressed state workaround
1169
+ .scaleEffect(isPressed ? 0.96 : 1.0)
1170
+ ```
1171
+
1172
+ **✅ Do use blend utilities**:
1173
+ ```typescript
1174
+ // CORRECT: Blend utilities produce consistent opaque colors
1175
+ const hoverColor = blendUtils.hoverColor(primaryColor);
1176
+ ```
1177
+
1178
+ ### Related Documentation
1179
+
1180
+ - [Blend Tokens Guide](token-family-blend) - Complete blend token reference
1181
+ - [Blend Infrastructure Design](../specs/031-blend-infrastructure-implementation/design.md) - Architecture decisions
1182
+
1183
+ ---
1184
+
1185
+ ## Incremental DOM Update Pattern
1186
+
1187
+ ### Overview
1188
+
1189
+ The incremental DOM update pattern enables CSS transitions to work correctly by preserving DOM element identity across attribute changes. Instead of replacing the entire shadow DOM on every update, components create the DOM structure once and then update existing elements directly.
1190
+
1191
+ ### Why Incremental DOM Over Full Re-renders
1192
+
1193
+ **Full `innerHTML` replacement breaks CSS transitions** because:
1194
+
1195
+ 1. **Element identity is lost**: When you replace `innerHTML`, the browser destroys existing DOM elements and creates new ones. CSS transitions require the same element to exist before and after a property change—new elements have no "before" state to transition from.
1196
+
1197
+ 2. **Transition timing is reset**: Even if the new element has the same classes and styles, the browser treats it as a fresh element. Any in-progress transitions are cancelled, and new transitions start from scratch.
1198
+
1199
+ 3. **Performance overhead**: Full DOM replacement is more expensive than targeted property updates. The browser must parse HTML, create elements, attach event listeners, and recalculate styles for the entire subtree.
1200
+
1201
+ 4. **Event listener management**: Full replacement requires detaching and reattaching event listeners on every update, which is error-prone and inefficient.
1202
+
1203
+ **Incremental DOM solves these problems by**:
1204
+ - Creating DOM elements once and caching references
1205
+ - Updating only the properties that changed via direct DOM APIs
1206
+ - Preserving element identity so CSS transitions animate smoothly
1207
+ - Reducing DOM manipulation overhead
1208
+
1209
+ ### Canonical Implementation Example
1210
+
1211
+ **Button-VerticalList-Item** (`src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts`) serves as the canonical implementation example for the incremental DOM pattern. It demonstrates:
1212
+
1213
+ - `_domCreated` flag to track initial render state
1214
+ - `_createDOM()` method for one-time DOM structure creation
1215
+ - `_updateDOM()` method for targeted property updates
1216
+ - Cached element references (`_button`, `_labelEl`, `_iconEl`, etc.)
1217
+ - CSS custom property updates via `element.style.setProperty()`
1218
+ - Direct DOM API usage (`element.textContent`, `element.className`)
1219
+
1220
+ **Reference this implementation** when adding incremental DOM updates to new components.
1221
+
1222
+ ### Architecture Pattern
1223
+
1224
+ ```typescript
1225
+ class MyComponent extends HTMLElement {
1226
+ private _shadowRoot: ShadowRoot;
1227
+ private _domCreated: boolean = false;
1228
+
1229
+ // Cached DOM element references
1230
+ private _button: HTMLButtonElement | null = null;
1231
+ private _labelEl: HTMLSpanElement | null = null;
1232
+ private _iconEl: HTMLElement | null = null;
1233
+
1234
+ constructor() {
1235
+ super();
1236
+ this._shadowRoot = this.attachShadow({ mode: 'open' });
1237
+ }
1238
+
1239
+ connectedCallback(): void {
1240
+ this._render();
1241
+ }
1242
+
1243
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {
1244
+ // Only update if connected, value changed, and DOM exists
1245
+ if (oldValue !== newValue && this.isConnected && this._domCreated) {
1246
+ this._updateDOM();
1247
+ }
1248
+ }
1249
+
1250
+ /**
1251
+ * Main render entry point.
1252
+ * Routes to _createDOM() for first render or _updateDOM() for subsequent updates.
1253
+ */
1254
+ private _render(): void {
1255
+ if (!this._domCreated) {
1256
+ this._createDOM();
1257
+ this._domCreated = true;
1258
+ } else {
1259
+ this._updateDOM();
1260
+ }
1261
+ }
1262
+
1263
+ /**
1264
+ * Create the initial DOM structure (called once).
1265
+ * Creates all elements including containers that may be hidden.
1266
+ */
1267
+ private _createDOM(): void {
1268
+ this._shadowRoot.innerHTML = `
1269
+ <style>${styles}</style>
1270
+ <button class="my-component">
1271
+ <span class="my-component__icon"></span>
1272
+ <span class="my-component__label"></span>
1273
+ </button>
1274
+ `;
1275
+
1276
+ // Cache element references for incremental updates
1277
+ this._button = this._shadowRoot.querySelector('button');
1278
+ this._labelEl = this._shadowRoot.querySelector('.my-component__label');
1279
+ this._iconEl = this._shadowRoot.querySelector('.my-component__icon');
1280
+
1281
+ // Apply initial state
1282
+ this._updateDOM();
1283
+ }
1284
+
1285
+ /**
1286
+ * Update existing DOM elements (called on attribute changes).
1287
+ * Only updates properties that need to change, preserving element identity.
1288
+ */
1289
+ private _updateDOM(): void {
1290
+ if (!this._button || !this._labelEl) return;
1291
+
1292
+ // Direct DOM updates (preserves element identity for CSS transitions)
1293
+ this._labelEl.textContent = this.label;
1294
+ this._button.className = `my-component ${this._getStateClass()}`;
1295
+
1296
+ // CSS custom property updates for dynamic styling
1297
+ this._button.style.setProperty('--_mc-hover-bg', this._hoverColor);
1298
+ this._button.style.setProperty('--_mc-pressed-bg', this._pressedColor);
1299
+
1300
+ // Show/hide elements via display property
1301
+ if (this._iconEl) {
1302
+ this._iconEl.style.display = this.icon ? '' : 'none';
1303
+ }
1304
+ }
1305
+ }
1306
+ ```
1307
+
1308
+ ### Key Implementation Details
1309
+
1310
+ #### 1. DOM Creation Flag
1311
+
1312
+ ```typescript
1313
+ private _domCreated: boolean = false;
1314
+ ```
1315
+
1316
+ This flag ensures `_createDOM()` runs exactly once. All subsequent renders route through `_updateDOM()`.
1317
+
1318
+ #### 2. Element Reference Caching
1319
+
1320
+ ```typescript
1321
+ // Cache references after DOM creation
1322
+ this._button = this._shadowRoot.querySelector('button');
1323
+ this._labelEl = this._shadowRoot.querySelector('.my-component__label');
1324
+ ```
1325
+
1326
+ Caching element references avoids repeated `querySelector` calls and provides type-safe access to DOM elements.
1327
+
1328
+ #### 3. Conditional Updates in attributeChangedCallback
1329
+
1330
+ ```typescript
1331
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {
1332
+ if (oldValue !== newValue && this.isConnected && this._domCreated) {
1333
+ this._updateDOM();
1334
+ }
1335
+ }
1336
+ ```
1337
+
1338
+ Only call `_updateDOM()` when:
1339
+ - The value actually changed (`oldValue !== newValue`)
1340
+ - The element is connected to the DOM (`this.isConnected`)
1341
+ - The DOM has been created (`this._domCreated`)
1342
+
1343
+ #### 4. CSS Custom Property Updates
1344
+
1345
+ ```typescript
1346
+ this._button.style.setProperty('--_mc-hover-bg', this._hoverColor);
1347
+ ```
1348
+
1349
+ Use `style.setProperty()` for CSS custom properties. This enables CSS transitions on properties driven by JavaScript-calculated values (like blend colors).
1350
+
1351
+ #### 5. Show/Hide via Display Property
1352
+
1353
+ ```typescript
1354
+ this._iconEl.style.display = this.icon ? '' : 'none';
1355
+ ```
1356
+
1357
+ Toggle visibility using `display` property rather than removing/adding elements. This preserves element identity and enables fade transitions.
1358
+
1359
+ ### When to Use Incremental DOM
1360
+
1361
+ **Use incremental DOM when**:
1362
+ - Component has CSS transitions on any property
1363
+ - Component updates frequently (e.g., on user interaction)
1364
+ - Component has complex DOM structure with many elements
1365
+ - Component uses blend utilities (calculated colors need to update smoothly)
1366
+
1367
+ **All interactive components should use incremental DOM** to ensure CSS transitions work correctly.
1368
+
1369
+ ### Incremental DOM Anti-Patterns
1370
+
1371
+ **❌ Don't replace innerHTML on attribute changes**:
1372
+ ```typescript
1373
+ // WRONG: Breaks CSS transitions
1374
+ attributeChangedCallback() {
1375
+ this._shadowRoot.innerHTML = this._generateHTML();
1376
+ }
1377
+ ```
1378
+
1379
+ **❌ Don't query elements on every update**:
1380
+ ```typescript
1381
+ // WRONG: Inefficient and error-prone
1382
+ private _updateDOM(): void {
1383
+ const button = this._shadowRoot.querySelector('button');
1384
+ const label = this._shadowRoot.querySelector('.label');
1385
+ // ...
1386
+ }
1387
+ ```
1388
+
1389
+ **❌ Don't remove and recreate elements for visibility**:
1390
+ ```typescript
1391
+ // WRONG: Loses element identity
1392
+ if (showIcon) {
1393
+ this._button.appendChild(this._createIcon());
1394
+ } else {
1395
+ this._iconEl?.remove();
1396
+ }
1397
+ ```
1398
+
1399
+ **✅ Do cache element references**:
1400
+ ```typescript
1401
+ // CORRECT: Cache once, reuse always
1402
+ private _createDOM(): void {
1403
+ // ...
1404
+ this._button = this._shadowRoot.querySelector('button');
1405
+ this._labelEl = this._shadowRoot.querySelector('.label');
1406
+ }
1407
+ ```
1408
+
1409
+ **✅ Do use display property for visibility**:
1410
+ ```typescript
1411
+ // CORRECT: Preserves element identity
1412
+ this._iconEl.style.display = showIcon ? '' : 'none';
1413
+ ```
1414
+
1415
+ ### Related Documentation
1416
+
1417
+ - [Button-VerticalList-Item Implementation](../src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts) - Canonical example
1418
+ - [Blend Utility Integration](#blend-utility-integration) - State color calculation (often used with incremental DOM)
1419
+
1420
+ ---
1421
+
1422
+ ## CSS Custom Property Naming Convention
1423
+
1424
+ ### Overview
1425
+
1426
+ CSS custom properties in components fall into two distinct categories that require different naming conventions to clearly communicate their purpose and scope:
1427
+
1428
+ 1. **Design system tokens**: Shared across all components, part of the public API
1429
+ 2. **Component-scoped properties**: Internal to one component, calculated values or local overrides
1430
+
1431
+ Without a clear naming convention, it's difficult to distinguish at a glance whether a property is safe to override externally (design token) or an internal implementation detail (component-scoped).
1432
+
1433
+ ### The `--_[abbrev]-*` Pattern
1434
+
1435
+ All component-scoped CSS custom properties MUST use the `--_[abbrev]-*` naming pattern:
1436
+
1437
+ ```css
1438
+ /* Component-scoped (internal) - use underscore prefix */
1439
+ --_cta-hover-bg: #...; /* Button-CTA internal */
1440
+ --_vlbi-background: #...; /* Button-VerticalList-Item internal */
1441
+ --_itb-focus-color: #...; /* Input-Text-Base internal */
1442
+ --_bi-icon-color: #...; /* ButtonIcon internal */
1443
+
1444
+ /* Design system tokens (external) - no underscore */
1445
+ --color-primary: #...;
1446
+ --motion-button-press-duration: 150ms;
1447
+ --space-inset-200: 16px;
1448
+ ```
1449
+
1450
+ ### Why This Pattern
1451
+
1452
+ 1. **Underscore signals "private"**: Borrowed from programming conventions (Python, JavaScript), the leading underscore indicates "internal implementation detail, don't depend on this externally"
1453
+
1454
+ 2. **Abbreviation keeps names readable**: Component names can be long; abbreviations keep CSS scannable while maintaining clarity
1455
+
1456
+ 3. **Clear visual distinction**: Easy to scan CSS and immediately identify which properties are component-internal vs design system tokens
1457
+
1458
+ 4. **Prevents external dependencies**: External code should never depend on component-scoped properties—they may change without notice
1459
+
1460
+ ### Component Abbreviation Reference
1461
+
1462
+ | Component | Abbreviation | Example Properties |
1463
+ |-----------|--------------|-------------------|
1464
+ | Button-CTA | `_cta` | `--_cta-hover-bg`, `--_cta-pressed-bg` |
1465
+ | Button-VerticalList-Item | `_vlbi` | `--_vlbi-background`, `--_vlbi-border-color` |
1466
+ | ButtonIcon | `_bi` | `--_bi-hover-bg`, `--_bi-icon-color` |
1467
+ | Input-Text-Base | `_itb` | `--_itb-focus-color`, `--_itb-disabled-color` |
1468
+
1469
+ ### When to Use Each Type
1470
+
1471
+ **Use design system tokens (`--token-name`) when**:
1472
+ - The value comes from the token system (colors, spacing, typography)
1473
+ - The property should be themeable or overridable
1474
+ - The value is shared across multiple components
1475
+ - External consumers might need to reference the value
1476
+
1477
+ **Use component-scoped properties (`--_abbrev-name`) when**:
1478
+ - The value is calculated at runtime (blend colors, dynamic sizing)
1479
+ - The property is an internal implementation detail
1480
+ - The value is specific to one component's internal logic
1481
+ - External code should NOT depend on or override the value
1482
+
1483
+ ### Implementation Example
1484
+
1485
+ ```css
1486
+ /* Button-CTA CSS showing both types */
1487
+ :host {
1488
+ /* Design system tokens - external, themeable */
1489
+ --color-primary: var(--color-primary);
1490
+ --motion-button-press-duration: var(--motion-button-press-duration);
1491
+
1492
+ /* Component-scoped properties - internal, calculated */
1493
+ --_cta-hover-bg: /* calculated by blend utilities */;
1494
+ --_cta-pressed-bg: /* calculated by blend utilities */;
1495
+ --_cta-disabled-bg: /* calculated by blend utilities */;
1496
+ }
1497
+
1498
+ .button-cta {
1499
+ background-color: var(--color-primary);
1500
+ transition: background-color var(--motion-button-press-duration) ease-out;
1501
+ }
1502
+
1503
+ .button-cta:hover {
1504
+ background-color: var(--_cta-hover-bg);
1505
+ }
1506
+
1507
+ .button-cta:active {
1508
+ background-color: var(--_cta-pressed-bg);
1509
+ }
1510
+ ```
1511
+
1512
+ ### CSS Custom Property Naming Anti-Patterns
1513
+
1514
+ **❌ Don't use full component names for internal properties**:
1515
+ ```css
1516
+ /* WRONG: Too verbose, hard to scan */
1517
+ --button-vertical-list-item-hover-background: #...;
1518
+
1519
+ /* CORRECT: Use abbreviation */
1520
+ --_vlbi-hover-bg: #...;
1521
+ ```
1522
+
1523
+ **❌ Don't omit underscore for internal properties**:
1524
+ ```css
1525
+ /* WRONG: Looks like a design token, may be overridden externally */
1526
+ --cta-hover-bg: #...;
1527
+
1528
+ /* CORRECT: Underscore signals internal */
1529
+ --_cta-hover-bg: #...;
1530
+ ```
1531
+
1532
+ **❌ Don't use component-scoped naming for design tokens**:
1533
+ ```css
1534
+ /* WRONG: Design tokens shouldn't have component prefix */
1535
+ --_cta-primary-color: var(--color-primary);
1536
+
1537
+ /* CORRECT: Reference design token directly */
1538
+ background-color: var(--color-primary);
1539
+ ```
1540
+
1541
+ **❌ Don't expose calculated values as design tokens**:
1542
+ ```css
1543
+ /* WRONG: Calculated values are implementation details */
1544
+ --color-primary-hover: /* blend calculation */;
1545
+
1546
+ /* CORRECT: Keep calculated values component-scoped */
1547
+ --_cta-hover-bg: /* blend calculation */;
1548
+ ```
1549
+
1550
+ ### Documentation in CSS Files
1551
+
1552
+ When using component-scoped properties, add a documentation comment explaining the naming convention:
1553
+
1554
+ ```css
1555
+ /**
1556
+ * Component-scoped CSS custom properties
1557
+ *
1558
+ * These properties are internal implementation details:
1559
+ * - --_vlbi-background: Current background color for visual state
1560
+ * - --_vlbi-border-color: Current border color for visual state
1561
+ * - --_vlbi-icon-color: Icon color for current visual state
1562
+ *
1563
+ * Naming Convention: --_[abbrev]-* pattern signals component-scoped (internal) properties
1564
+ * @see Component Development Guide - CSS Custom Property Naming Convention
1565
+ */
1566
+ ```
1567
+
1568
+ ### Related Documentation
1569
+
1570
+ - [Blend Utility Integration](#blend-utility-integration) - Calculated colors use component-scoped properties
1571
+ - [Incremental DOM Update Pattern](#incremental-dom-update-pattern) - CSS custom properties enable smooth transitions
1572
+
1573
+ ---
1574
+
1575
+ ## Anti-Patterns to Avoid
1576
+
1577
+ **Note**: This section intentionally uses the same heading as other steering documents because each document addresses anti-patterns specific to its domain. Component Development and Practices Guide focuses on token usage anti-patterns, while other documents cover their respective domains.
1578
+
1579
+ ### ❌ Using Primitives When Semantics Exist
1580
+ ```typescript
1581
+ // DON'T
1582
+ background: blue500
1583
+
1584
+ // DO
1585
+ background: color.primary
1586
+ ```
1587
+
1588
+ ### ❌ Hard-Coded Values
1589
+ ```typescript
1590
+ // DON'T
1591
+ padding: 16px
1592
+
1593
+ // DO
1594
+ padding: space.inset.normal
1595
+ ```
1596
+
1597
+ ### ❌ Creating Semantic Tokens Prematurely
1598
+ ```typescript
1599
+ // DON'T: Create semantic token for single component
1600
+ export const buttonWidthMin = space400;
1601
+
1602
+ // DO: Use component-level tokens, elevate when pattern emerges (3+ components)
1603
+ ```
1604
+
1605
+ ### ❌ Skipping Token Files
1606
+ ```typescript
1607
+ // DON'T: Guess what tokens exist
1608
+
1609
+ // DO: Read semantic token files to discover available tokens
1610
+ ```
1611
+
1612
+ ### ❌ Platform-Specific Values in tokens.ts
1613
+ ```typescript
1614
+ // DON'T: Put platform-specific values in tokens.ts
1615
+ export const buttonTokens = {
1616
+ paddingX: '8px', // Platform-specific CSS value
1617
+ paddingY: 4 // Hard-coded number
1618
+ };
1619
+
1620
+ // DO: Reference semantic or primitive tokens
1621
+ export const buttonTokens = {
1622
+ paddingX: 'space.inset.normal', // Token reference
1623
+ paddingY: 'space.inset.tight' // Token reference
1624
+ };
1625
+ ```
1626
+
1627
+ ### ❌ Using `style` Attribute for Variants
1628
+ ```html
1629
+ <!-- DON'T: Use style attribute for component variants -->
1630
+ <button-cta style="primary" label="Submit"></button-cta>
1631
+
1632
+ <!-- DO: Use variant attribute -->
1633
+ <button-cta variant="primary" label="Submit"></button-cta>
1634
+ ```
1635
+
1636
+ ```typescript
1637
+ // DON'T: Use style property in TypeScript interfaces
1638
+ export interface ButtonProps {
1639
+ style?: 'primary' | 'secondary'; // Conflicts with HTML style attribute
1640
+ }
1641
+
1642
+ // DO: Use variant property
1643
+ export interface ButtonProps {
1644
+ variant?: 'primary' | 'secondary'; // Clear, unambiguous
1645
+ }
1646
+ ```
1647
+
1648
+ ### ❌ Nested Containers with Same Border Radius
1649
+
1650
+ ```html
1651
+ <!-- DON'T: Same radius creates awkward visual overlap -->
1652
+ <container-base borderRadius="normal" padding="200">
1653
+ <container-base borderRadius="normal">
1654
+ Awkward corner overlap
1655
+ </container-base>
1656
+ </container-base>
1657
+
1658
+ <!-- DO: Reduce inner radius by padding amount -->
1659
+ <container-base borderRadius="normal" padding="200">
1660
+ <container-base borderRadius="none">
1661
+ Harmonious corner alignment
1662
+ </container-base>
1663
+ </container-base>
1664
+ ```
1665
+
1666
+ **Mathematical relationship**: `inner borderRadius = outer borderRadius - padding`
1667
+
1668
+ **Why this matters**: Padding creates visual space between containers. Reducing the inner radius maintains consistent visual curvature and prevents awkward overlapping corners.
1669
+
1670
+ **For detailed guidance**: See Container component README "Nested Containers" section for visual examples, token value reference table, platform-specific considerations, and common use cases.
1671
+
1672
+ ### ❌ Hard-Coded Fallback Values
1673
+
1674
+ **Problem**: Using fallback values masks token system issues and prevents early detection of problems.
1675
+
1676
+ **Anti-Pattern Examples**:
1677
+
1678
+ ```typescript
1679
+ // DON'T: Silent fallback to hard-coded value
1680
+ const duration = this.getAttribute('duration') || '250ms';
1681
+ const spacing = tokenValue || 8;
1682
+ const color = getToken('color.primary') ?? '#3B82F6';
1683
+ ```
1684
+
1685
+ **Why This is Wrong**:
1686
+ - Masks missing tokens - component appears to work but token system is broken
1687
+ - Prevents early detection - issues discovered in production instead of development
1688
+ - Inconsistent behavior - some components use tokens, others use fallbacks
1689
+ - Maintenance burden - fallback values can drift from token values
1690
+
1691
+ **Correct Approach**:
1692
+
1693
+ ```typescript
1694
+ // DO: Fail loudly when token is missing
1695
+ const duration = this.getAttribute('duration');
1696
+ if (!duration) {
1697
+ throw new Error('Component: duration attribute is required');
1698
+ }
1699
+
1700
+ // Or for non-critical values
1701
+ const spacing = tokenValue;
1702
+ if (!spacing) {
1703
+ console.error('Component: spacing token missing, layout may be incorrect');
1704
+ }
1705
+ ```
1706
+
1707
+ **When Fallback is Genuinely Optional**:
1708
+
1709
+ ```typescript
1710
+ // DO: Explicit optional handling with documentation
1711
+ /**
1712
+ * Helper text (optional)
1713
+ * Provides additional context below the input
1714
+ */
1715
+ const helperText = this.getAttribute('helper-text') || undefined;
1716
+ if (helperText !== undefined) {
1717
+ // Render helper text
1718
+ }
1719
+ ```
1720
+
1721
+ **Benefits of Failing Loudly**:
1722
+ - ✅ Immediate detection of token system issues
1723
+ - ✅ Clear error messages guide developers to fix
1724
+ - ✅ Prevents silent failures in production
1725
+ - ✅ Maintains token system integrity
1726
+
1727
+ ---
1728
+
1729
+ ## Validation Checklist
1730
+
1731
+ Before implementing a component, verify:
1732
+
1733
+ - [ ] Read semantic token files to discover available tokens
1734
+ - [ ] Used semantic tokens for all styling (color, typography, spacing)
1735
+ - [ ] Created component-level tokens only when variants needed
1736
+ - [ ] Component tokens reference semantic or primitive tokens (no hard-coded values)
1737
+ - [ ] Component tokens.ts is platform-agnostic (token references, not values)
1738
+ - [ ] Platform implementations use generated platform-specific tokens
1739
+ - [ ] Platform implementations handle platform-specific nuances
1740
+ - [ ] Followed True Native Architecture (separate files per platform)
1741
+ - [ ] Used system-specific terminology (Container not Card)
1742
+ - [ ] Used `variant` attribute for component variations (not `style`)
1743
+ - [ ] Documented any primitive token usage with rationale
1744
+
1745
+ ---
1746
+
1747
+ ## Demo Maintenance Checklist
1748
+
1749
+ When modifying a component's API, adding new variants, or changing behavior, update the corresponding demo page to keep it in sync. Demos load components via the browser bundle, so API changes that break a demo are immediately visible when loading the page — but new features won't appear unless the demo is updated.
1750
+
1751
+ ### When to Update Demos
1752
+
1753
+ - Component API changes (new props, renamed attributes, removed features)
1754
+ - New variants or sizes added
1755
+ - New states added (e.g., loading, error)
1756
+ - Event handling changes (new events, changed event detail shape)
1757
+ - Accessibility improvements (new ARIA attributes, keyboard interactions)
1758
+ - Visual changes that affect how the component renders
1759
+
1760
+ ### Component Change Checklist
1761
+
1762
+ When making changes to a component with a web implementation:
1763
+
1764
+ - [ ] Update component README with new API
1765
+ - [ ] Update component demo page (if demo exists in `demos/`)
1766
+ - [ ] Run demo locally to verify all examples still work
1767
+ - [ ] Update `demos/index.html` if component description changed
1768
+
1769
+ ### How to Verify Demo Health
1770
+
1771
+ 1. Build the browser distribution: `npm run build`
1772
+ 2. Start a local server: `npx http-server dist/browser -p 8080`
1773
+ 3. Open the demo page in a browser
1774
+ 4. Verify all variant examples render correctly
1775
+ 5. Verify interactive examples respond to user input
1776
+ 6. Verify token verification section shows expected values
1777
+ 7. Check browser console for errors or warnings
1778
+
1779
+ ### Demo Location
1780
+
1781
+ All demo source files live in `demos/` at the project root. The build process copies them to `dist/browser/`. See `demos/README.md` for full guidelines on creating and maintaining demo pages.
1782
+
1783
+ ---
1784
+
1785
+ ## Component Spec Development Workflow
1786
+
1787
+ Components come with their own unique properties that might include, but are not limited to, multiple variants, states, or platform considerations. Use this workflow to create clearer, more precise specifications to fully understand their complexity.
1788
+
1789
+ ### Design Outline Before Requirements
1790
+
1791
+ **When to use**: All components benefit from upfront exploration to understand their extensibility to support planned use cases. Identifying aspects such as sizing variants, interaction states, token dependencies, platform-specific considerations, and more are critical to creating sustainable, appropiately scaled components.
1792
+
1793
+ **Purpose**: Explore component design space before committing to formal requirements. Captures decision-making process, token needs, and open questions in an informal document.
1794
+
1795
+ **What to include**:
1796
+ - Component overview and variant specifications (tables work well)
1797
+ - Token requirements (existing tokens used + new tokens needed)
1798
+ - Design decisions with rationale and alternatives considered
1799
+ - Open questions and checkpoints for resolution
1800
+ - Observations and learnings for future reference
1801
+
1802
+ **What NOT to include**:
1803
+ - Full EARS requirements (save for requirements.md)
1804
+ - Implementation details (save for design.md)
1805
+ - Task breakdowns (save for tasks.md)
1806
+
1807
+ **Key principle**: This is a thinking document, not a template to copy-paste. Use it to explore and document your design reasoning.
1808
+
1809
+ **Reference example**: `.kiro/specs/005-cta-button-component/design-outline.md` - Shows informal exploration of button sizing, token usage, and design decisions before creating formal spec.
1810
+
1811
+ ### README-First Documentation
1812
+
1813
+ **Purpose**: Create living documentation that serves as both component guide and validation target. Documentation that can't drift from implementation.
1814
+
1815
+ **Required sections**:
1816
+ - Overview (what it is, key features)
1817
+ - Related Documentation (cross-links to spec docs, related components)
1818
+ - Usage (code examples showing variants and states)
1819
+ - API Reference (props table with types)
1820
+ - Token Consumption (which tokens the component uses)
1821
+ - Accessibility (WCAG compliance notes)
1822
+ - Platform-Specific Notes (if applicable)
1823
+ - Validation (link to validation files with disclaimer)
1824
+
1825
+ **Cross-reference pattern**:
1826
+ - Link to spec documents (requirements.md, design.md)
1827
+ - Link to related components (dependencies)
1828
+ - Link to validation files with clear disclaimer
1829
+
1830
+ **Validation file disclaimer**: Always note that validation files are automated tests, not documentation source of truth.
1831
+
1832
+ **Reference example**: `src/components/core/ButtonCTA/README.md` - Shows comprehensive component documentation with cross-links and validation disclaimer.
1833
+
1834
+ ### HTML Canary Validation
1835
+
1836
+ **Purpose**: Create living examples that validate component behavior and accuracy of the README documentation. Examples that must stay functional as component evolves.
1837
+
1838
+ **Required elements**:
1839
+ - Warning comment at top: `<!-- VALIDATION FILE - NOT DOCUMENTATION -->`
1840
+ - Purpose comment explaining what's being validated
1841
+ - Actual component usage (not mock HTML)
1842
+ - Can be run as automated tests via validation script
1843
+ - Must remain functional (breaking changes break validation)
1844
+
1845
+ **Key principle**: These are executable tests that validate the component's implementation and documentation are actually working and in alignemnt.
1846
+
1847
+ **Validation script pattern**: Create `scripts/validate-examples.js` to check:
1848
+ - Presence of component elements
1849
+ - Required attributes
1850
+ - Valid attribute values
1851
+ - Proper HTML structure
1852
+ - Warning comments present
1853
+
1854
+ **Reference examples**:
1855
+ - `src/components/core/ButtonCTA/examples/BasicUsage.html` - Validates basic button functionality
1856
+ - `src/components/core/ButtonCTA/examples/WithIcon.html` - Validates icon integration
1857
+ - `src/components/core/ButtonCTA/examples/Variants.html` - Validates all size/style combinations
1858
+ - `scripts/validate-examples.js` - Validation script that checks HTML examples
1859
+
1860
+ ### Workflow Summary
1861
+
1862
+ 1. **Design Outline** (required) - Explore design space informally
1863
+ 2. **Requirements** (required) - Formalize requirements using EARS format
1864
+ 3. **Design** (required) - Document architecture and token integration
1865
+ 4. **Tasks** (required) - Break down implementation steps
1866
+ 5. **README** (required) - Create comprehensive component documentation
1867
+ 6. **HTML Canaries** (required) - Create validation examples
1868
+ 7. **Implementation** (required) - Build component across platforms
1869
+ 8. **Dark Mode Token Population** (if component has dark mode differentiation) - Coordinate with Ada to populate the component's semantic color token entries in the dark theme file (`src/tokens/themes/dark/SemanticOverrides.ts`). Identify which tokens need Level 2 overrides (different primitive name in dark mode) and populate those entries. Leave Level 1 tokens (same primitive name, different value per mode) as commented-out — they resolve automatically via primitive dark values. Without this step, the component will silently render light-mode fallback values in dark mode for any tokens that need Level 2 overrides. *(Added by Spec 080, Lina R2 F36)*
1870
+ 9. **Demo Page** (if web implementation) - Create or update demo in `demos/` (see Demo Maintenance Checklist)
1871
+
1872
+ This workflow produces clearer requirements, better documentation, and validation that ensures documentation stays accurate.
1873
+
1874
+ ---
1875
+
1876
+ *This guide provides minimal, sustainable guidance for AI agents building components while pointing to source files for detailed token information and maintaining True Native Architecture principles.*