@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.
- package/.kiro/agents/ada-prompt.md +265 -0
- package/.kiro/agents/ada.json +87 -0
- package/.kiro/agents/data-prompt.md +315 -0
- package/.kiro/agents/data.json +58 -0
- package/.kiro/agents/kenya-prompt.md +298 -0
- package/.kiro/agents/kenya.json +54 -0
- package/.kiro/agents/leonardo-prompt.md +417 -0
- package/.kiro/agents/leonardo.json +55 -0
- package/.kiro/agents/lina-prompt.md +385 -0
- package/.kiro/agents/lina.json +77 -0
- package/.kiro/agents/sparky-prompt.md +295 -0
- package/.kiro/agents/sparky.json +56 -0
- package/.kiro/agents/stacy-prompt.md +278 -0
- package/.kiro/agents/stacy.json +48 -0
- package/.kiro/agents/thurgood-prompt.md +407 -0
- package/.kiro/agents/thurgood.json +51 -0
- package/.kiro/steering/AI-Collaboration-Principles.md +105 -0
- package/.kiro/steering/Agent-Directory.md +141 -0
- package/.kiro/steering/Civitas-System-Overview.md +134 -0
- package/.kiro/steering/DesignerPunk-Systems-Overview.md +318 -0
- package/.kiro/steering/Spec-Feedback-Protocol.md +242 -0
- package/.kiro/steering/Task-Completion-Protocol.md +73 -0
- package/.kiro/steering/core-goals.md +91 -0
- package/.kiro/steering/personal-note.md +35 -0
- package/.kiro/steering/start-up-tasks.md +114 -0
- package/LICENSE +201 -0
- package/README.md +184 -0
- package/application-mcp-server/package.json +34 -0
- package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-server.js +25 -0
- package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-stdio.js +11 -0
- package/application-mcp-server/src/__tests__/__mocks__/mcp-sdk-types.js +14 -0
- package/application-mcp-server/src/__tests__/tool-boundary.contract.test.ts +1086 -0
- package/application-mcp-server/src/index.ts +607 -0
- package/application-mcp-server/src/indexer/ComponentIndexer.ts +631 -0
- package/application-mcp-server/src/indexer/CompositionChecker.ts +109 -0
- package/application-mcp-server/src/indexer/ContractTokenDeriver.ts +68 -0
- package/application-mcp-server/src/indexer/DesignPhilosophyIndexer.ts +114 -0
- package/application-mcp-server/src/indexer/FamilyGuidanceIndexer.ts +248 -0
- package/application-mcp-server/src/indexer/InheritanceResolver.ts +154 -0
- package/application-mcp-server/src/indexer/LayoutTemplateIndexer.ts +254 -0
- package/application-mcp-server/src/indexer/ModeClassifier.ts +102 -0
- package/application-mcp-server/src/indexer/PatternIndexer.ts +195 -0
- package/application-mcp-server/src/indexer/TokenIndexer.ts +210 -0
- package/application-mcp-server/src/indexer/TokenRefResolver.ts +187 -0
- package/application-mcp-server/src/indexer/__tests__/ComponentIndexer.test.ts +141 -0
- package/application-mcp-server/src/indexer/__tests__/CompositionChecker.test.ts +148 -0
- package/application-mcp-server/src/indexer/__tests__/ContractTokenDeriver.test.ts +111 -0
- package/application-mcp-server/src/indexer/__tests__/CoverageDrift.test.ts +53 -0
- package/application-mcp-server/src/indexer/__tests__/DesignPhilosophyIndexer.test.ts +102 -0
- package/application-mcp-server/src/indexer/__tests__/FamilyGuidanceIndexer.test.ts +316 -0
- package/application-mcp-server/src/indexer/__tests__/FamilyNameValidation.test.ts +98 -0
- package/application-mcp-server/src/indexer/__tests__/GuidanceCompleteness.test.ts +63 -0
- package/application-mcp-server/src/indexer/__tests__/HealthStates.test.ts +129 -0
- package/application-mcp-server/src/indexer/__tests__/InheritanceResolver.test.ts +145 -0
- package/application-mcp-server/src/indexer/__tests__/LayoutTemplateIndexer.test.ts +378 -0
- package/application-mcp-server/src/indexer/__tests__/PatternIndexer.test.ts +323 -0
- package/application-mcp-server/src/indexer/__tests__/ReadinessCompliance.test.ts +212 -0
- package/application-mcp-server/src/indexer/__tests__/TokenIndexer.test.ts +131 -0
- package/application-mcp-server/src/indexer/__tests__/fixtures/design-philosophy.yaml +40 -0
- package/application-mcp-server/src/indexer/__tests__/parsers.test.ts +102 -0
- package/application-mcp-server/src/indexer/parsers.ts +284 -0
- package/application-mcp-server/src/models/index.ts +449 -0
- package/application-mcp-server/src/query/QueryEngine.ts +477 -0
- package/application-mcp-server/src/query/__tests__/QueryEngine.test.ts +282 -0
- package/application-mcp-server/src/query/__tests__/deriveMatchConfidence.test.ts +83 -0
- package/application-mcp-server/src/staleness/StalenessGate.ts +112 -0
- package/application-mcp-server/src/staleness/__tests__/GateIntegration.test.ts +141 -0
- package/application-mcp-server/src/staleness/__tests__/StalenessGate.test.ts +214 -0
- package/application-mcp-server/src/validation/AccessibilityChecker.ts +72 -0
- package/application-mcp-server/src/validation/AssemblyValidator.ts +77 -0
- package/application-mcp-server/src/validation/__tests__/AccessibilityChecker.test.ts +105 -0
- package/application-mcp-server/src/validation/__tests__/AssemblyValidator.test.ts +140 -0
- package/application-mcp-server/src/watcher/FileWatcher.ts +104 -0
- package/application-mcp-server/src/watcher/__tests__/FileWatcher.test.ts +59 -0
- package/application-mcp-server/tsconfig.json +24 -0
- package/bin/designerpunk.js +45 -0
- package/design-language/design-philosophy.yaml +139 -0
- package/designerpunk.config.ts +27 -0
- package/dist/ComponentTokens.android.kt +105 -0
- package/dist/ComponentTokens.ios.swift +105 -0
- package/dist/ComponentTokens.web.css +92 -0
- package/dist/DesignTokens.android.kt +696 -0
- package/dist/DesignTokens.dtcg.json +5759 -0
- package/dist/DesignTokens.figma.json +5053 -0
- package/dist/DesignTokens.ios.swift +696 -0
- package/dist/DesignTokens.web.css +940 -0
- package/dist/TokenEngine.d.ts +200 -0
- package/dist/TokenEngine.js +480 -0
- package/dist/__tests__/fixtures/acknowledged-differences.json +127 -0
- package/dist/analytics/PrimitiveTokenFallbackTracker.d.ts +91 -0
- package/dist/analytics/PrimitiveTokenFallbackTracker.js +168 -0
- package/dist/analytics/SemanticTokenUsageTracker.d.ts +79 -0
- package/dist/analytics/SemanticTokenUsageTracker.js +142 -0
- package/dist/analytics/StrategicFlexibilityTracker.d.ts +99 -0
- package/dist/analytics/StrategicFlexibilityTracker.js +165 -0
- package/dist/analytics/TokenUsageTracker.d.ts +87 -0
- package/dist/analytics/TokenUsageTracker.js +128 -0
- package/dist/analytics/UsagePatternAnalyzer.d.ts +64 -0
- package/dist/analytics/UsagePatternAnalyzer.js +126 -0
- package/dist/analytics/index.d.ts +15 -0
- package/dist/analytics/index.js +27 -0
- package/dist/android/DesignTokens.android.kt +695 -0
- package/dist/blend/BlendCalculator.d.ts +65 -0
- package/dist/blend/BlendCalculator.js +98 -0
- package/dist/blend/ColorSpaceUtils.d.ts +164 -0
- package/dist/blend/ColorSpaceUtils.js +292 -0
- package/dist/blend/OklchBlendCalculator.d.ts +64 -0
- package/dist/blend/OklchBlendCalculator.js +77 -0
- package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +202 -0
- package/dist/blend/ThemeAwareBlendUtilities.web.js +212 -0
- package/dist/blend/index.d.ts +12 -0
- package/dist/blend/index.js +30 -0
- package/dist/browser/demo-styles.css +492 -0
- package/dist/browser/designerpunk.esm.js +18472 -0
- package/dist/browser/designerpunk.esm.min.js +705 -0
- package/dist/browser/designerpunk.umd.js +18540 -0
- package/dist/browser/designerpunk.umd.min.js +705 -0
- package/dist/browser/tokens.css +1028 -0
- package/dist/browser-entry.d.ts +82 -0
- package/dist/browser-entry.js +297 -0
- package/dist/build/BuildOrchestrator.d.ts +89 -0
- package/dist/build/BuildOrchestrator.js +583 -0
- package/dist/build/errors/BuildError.d.ts +87 -0
- package/dist/build/errors/BuildError.js +67 -0
- package/dist/build/errors/ErrorDocumentation.d.ts +66 -0
- package/dist/build/errors/ErrorDocumentation.js +557 -0
- package/dist/build/errors/ErrorHandler.d.ts +120 -0
- package/dist/build/errors/ErrorHandler.js +299 -0
- package/dist/build/errors/ErrorReporter.d.ts +102 -0
- package/dist/build/errors/ErrorReporter.js +397 -0
- package/dist/build/errors/PlatformGenerationError.d.ts +73 -0
- package/dist/build/errors/PlatformGenerationError.js +163 -0
- package/dist/build/errors/RecoveryStrategy.d.ts +145 -0
- package/dist/build/errors/RecoveryStrategy.js +297 -0
- package/dist/build/errors/TokenGenerationError.d.ts +65 -0
- package/dist/build/errors/TokenGenerationError.js +161 -0
- package/dist/build/errors/TokenReferenceError.d.ts +65 -0
- package/dist/build/errors/TokenReferenceError.js +168 -0
- package/dist/build/errors/index.d.ts +18 -0
- package/dist/build/errors/index.js +63 -0
- package/dist/build/index.d.ts +19 -0
- package/dist/build/index.js +26 -0
- package/dist/build/orchestration/IncrementalBuilder.d.ts +180 -0
- package/dist/build/orchestration/IncrementalBuilder.js +393 -0
- package/dist/build/orchestration/ParallelExecutor.d.ts +87 -0
- package/dist/build/orchestration/ParallelExecutor.js +242 -0
- package/dist/build/orchestration/ProgressTracker.d.ts +181 -0
- package/dist/build/orchestration/ProgressTracker.js +371 -0
- package/dist/build/orchestration/SequentialExecutor.d.ts +96 -0
- package/dist/build/orchestration/SequentialExecutor.js +211 -0
- package/dist/build/orchestration/index.d.ts +10 -0
- package/dist/build/orchestration/index.js +17 -0
- package/dist/build/platforms/AndroidBuilder.d.ts +288 -0
- package/dist/build/platforms/AndroidBuilder.js +1134 -0
- package/dist/build/platforms/AndroidShadowGenerator.d.ts +101 -0
- package/dist/build/platforms/AndroidShadowGenerator.js +298 -0
- package/dist/build/platforms/IOSShadowGenerator.d.ts +84 -0
- package/dist/build/platforms/IOSShadowGenerator.js +254 -0
- package/dist/build/platforms/PlatformBuilder.d.ts +111 -0
- package/dist/build/platforms/PlatformBuilder.js +10 -0
- package/dist/build/platforms/WebBuilder.d.ts +294 -0
- package/dist/build/platforms/WebBuilder.js +1133 -0
- package/dist/build/platforms/WebShadowGenerator.d.ts +78 -0
- package/dist/build/platforms/WebShadowGenerator.js +226 -0
- package/dist/build/platforms/iOSBuilder.d.ts +352 -0
- package/dist/build/platforms/iOSBuilder.js +1461 -0
- package/dist/build/platforms/index.d.ts +8 -0
- package/dist/build/platforms/index.js +24 -0
- package/dist/build/product/ProductTokenGenerator.d.ts +62 -0
- package/dist/build/product/ProductTokenGenerator.js +141 -0
- package/dist/build/product/TokenIndexReader.d.ts +28 -0
- package/dist/build/product/TokenIndexReader.js +101 -0
- package/dist/build/product/emitters/KotlinEmitter.d.ts +8 -0
- package/dist/build/product/emitters/KotlinEmitter.js +80 -0
- package/dist/build/product/emitters/SwiftEmitter.d.ts +8 -0
- package/dist/build/product/emitters/SwiftEmitter.js +87 -0
- package/dist/build/product/emitters/WebEmitter.d.ts +8 -0
- package/dist/build/product/emitters/WebEmitter.js +66 -0
- package/dist/build/tokens/ComponentToken.d.ts +239 -0
- package/dist/build/tokens/ComponentToken.js +51 -0
- package/dist/build/tokens/ComponentTokenGenerator.d.ts +117 -0
- package/dist/build/tokens/ComponentTokenGenerator.js +324 -0
- package/dist/build/tokens/PlatformTokens.d.ts +144 -0
- package/dist/build/tokens/PlatformTokens.js +9 -0
- package/dist/build/tokens/TokenIntegrator.d.ts +156 -0
- package/dist/build/tokens/TokenIntegrator.js +259 -0
- package/dist/build/tokens/TokenSelection.d.ts +105 -0
- package/dist/build/tokens/TokenSelection.js +9 -0
- package/dist/build/tokens/TokenSelector.d.ts +73 -0
- package/dist/build/tokens/TokenSelector.js +336 -0
- package/dist/build/tokens/UnitConverter.d.ts +126 -0
- package/dist/build/tokens/UnitConverter.js +222 -0
- package/dist/build/tokens/defineComponentTokens.d.ts +186 -0
- package/dist/build/tokens/defineComponentTokens.js +193 -0
- package/dist/build/tokens/index.d.ts +18 -0
- package/dist/build/tokens/index.js +23 -0
- package/dist/build/tokens/types.d.ts +24 -0
- package/dist/build/tokens/types.js +8 -0
- package/dist/build/types/BuildConfig.d.ts +92 -0
- package/dist/build/types/BuildConfig.js +28 -0
- package/dist/build/types/BuildOrchestrator.d.ts +95 -0
- package/dist/build/types/BuildOrchestrator.js +9 -0
- package/dist/build/types/BuildResult.d.ts +91 -0
- package/dist/build/types/BuildResult.js +10 -0
- package/dist/build/types/Platform.d.ts +25 -0
- package/dist/build/types/Platform.js +39 -0
- package/dist/build/types/index.d.ts +14 -0
- package/dist/build/types/index.js +15 -0
- package/dist/build/validation/AndroidBuildValidator.d.ts +77 -0
- package/dist/build/validation/AndroidBuildValidator.js +562 -0
- package/dist/build/validation/CrossPlatformValidationReporter.d.ts +295 -0
- package/dist/build/validation/CrossPlatformValidationReporter.js +817 -0
- package/dist/build/validation/InterfaceContractValidator.d.ts +102 -0
- package/dist/build/validation/InterfaceContractValidator.js +303 -0
- package/dist/build/validation/InterfaceValidator.d.ts +48 -0
- package/dist/build/validation/InterfaceValidator.js +214 -0
- package/dist/build/validation/MathematicalConsistencyValidator.d.ts +194 -0
- package/dist/build/validation/MathematicalConsistencyValidator.js +656 -0
- package/dist/build/validation/MethodSignatureValidator.d.ts +72 -0
- package/dist/build/validation/MethodSignatureValidator.js +283 -0
- package/dist/build/validation/PropertyTypeValidator.d.ts +73 -0
- package/dist/build/validation/PropertyTypeValidator.js +241 -0
- package/dist/build/validation/TokenComparator.d.ts +221 -0
- package/dist/build/validation/TokenComparator.js +478 -0
- package/dist/build/validation/ValidationReporter.d.ts +173 -0
- package/dist/build/validation/ValidationReporter.example.d.ts +17 -0
- package/dist/build/validation/ValidationReporter.example.js +259 -0
- package/dist/build/validation/ValidationReporter.js +517 -0
- package/dist/build/validation/WebBuildValidator.d.ts +112 -0
- package/dist/build/validation/WebBuildValidator.js +470 -0
- package/dist/build/validation/iOSBuildValidator.d.ts +155 -0
- package/dist/build/validation/iOSBuildValidator.js +670 -0
- package/dist/build/validation/index.d.ts +26 -0
- package/dist/build/validation/index.js +34 -0
- package/dist/build/validation/types/InterfaceDefinition.d.ts +74 -0
- package/dist/build/validation/types/InterfaceDefinition.js +9 -0
- package/dist/build/validation/types/ValidationResult.d.ts +74 -0
- package/dist/build/validation/types/ValidationResult.js +9 -0
- package/dist/build/workflow/BuildMode.d.ts +147 -0
- package/dist/build/workflow/BuildMode.js +205 -0
- package/dist/build/workflow/CICDIntegration.d.ts +179 -0
- package/dist/build/workflow/CICDIntegration.js +347 -0
- package/dist/build/workflow/ConfigHelpers.d.ts +139 -0
- package/dist/build/workflow/ConfigHelpers.example.d.ts +8 -0
- package/dist/build/workflow/ConfigHelpers.example.js +269 -0
- package/dist/build/workflow/ConfigHelpers.js +714 -0
- package/dist/build/workflow/SourceMapGenerator.d.ts +89 -0
- package/dist/build/workflow/SourceMapGenerator.js +268 -0
- package/dist/build/workflow/index.d.ts +13 -0
- package/dist/build/workflow/index.js +23 -0
- package/dist/cli/designerpunk.d.ts +20 -0
- package/dist/cli/designerpunk.js +416 -0
- package/dist/cli/figma-extract.d.ts +64 -0
- package/dist/cli/figma-extract.js +338 -0
- package/dist/cli/figma-push.d.ts +63 -0
- package/dist/cli/figma-push.js +292 -0
- package/dist/cli/generateProductTokens.d.ts +11 -0
- package/dist/cli/generateProductTokens.js +96 -0
- package/dist/cli/init.d.ts +11 -0
- package/dist/cli/init.js +385 -0
- package/dist/cli/loadComponentTokens.d.ts +46 -0
- package/dist/cli/loadComponentTokens.js +163 -0
- package/dist/cli/resolveTokens.d.ts +40 -0
- package/dist/cli/resolveTokens.js +94 -0
- package/dist/cli/shared/mcpDataRoots.d.ts +38 -0
- package/dist/cli/shared/mcpDataRoots.js +75 -0
- package/dist/cli/shared/resolvePackageRoot.d.ts +2 -0
- package/dist/cli/shared/resolvePackageRoot.js +50 -0
- package/dist/cli/shared/transforms.d.ts +13 -0
- package/dist/cli/shared/transforms.js +18 -0
- package/dist/cli/staleness.d.ts +23 -0
- package/dist/cli/staleness.js +113 -0
- package/dist/cli/sync/Applier.d.ts +32 -0
- package/dist/cli/sync/Applier.js +127 -0
- package/dist/cli/sync/Classifier.d.ts +27 -0
- package/dist/cli/sync/Classifier.js +103 -0
- package/dist/cli/sync/FileScanner.d.ts +19 -0
- package/dist/cli/sync/FileScanner.js +82 -0
- package/dist/cli/sync/IgnoreFilter.d.ts +10 -0
- package/dist/cli/sync/IgnoreFilter.js +70 -0
- package/dist/cli/sync/Manifest.d.ts +24 -0
- package/dist/cli/sync/Manifest.js +85 -0
- package/dist/cli/sync/PackageResolver.d.ts +14 -0
- package/dist/cli/sync/PackageResolver.js +67 -0
- package/dist/cli/sync/Prompter.d.ts +22 -0
- package/dist/cli/sync/Prompter.js +169 -0
- package/dist/cli/sync/Reporter.d.ts +11 -0
- package/dist/cli/sync/Reporter.js +66 -0
- package/dist/cli/sync/SteeringDirCheck.d.ts +50 -0
- package/dist/cli/sync/SteeringDirCheck.js +174 -0
- package/dist/cli/sync/index.d.ts +14 -0
- package/dist/cli/sync/index.js +94 -0
- package/dist/cli/validate.d.ts +18 -0
- package/dist/cli/validate.js +147 -0
- package/dist/cli/validateProductTokens.d.ts +10 -0
- package/dist/cli/validateProductTokens.js +84 -0
- package/dist/color/OklchConverter.d.ts +50 -0
- package/dist/color/OklchConverter.js +242 -0
- package/dist/color/OklchValidator.d.ts +49 -0
- package/dist/color/OklchValidator.js +147 -0
- package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +327 -0
- package/dist/components/core/Avatar-Base/avatar.tokens.js +344 -0
- package/dist/components/core/Avatar-Base/index.d.ts +12 -0
- package/dist/components/core/Avatar-Base/index.js +24 -0
- package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.d.ts +315 -0
- package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +803 -0
- package/dist/components/core/Avatar-Base/types.d.ts +72 -0
- package/dist/components/core/Avatar-Base/types.js +21 -0
- package/dist/components/core/Badge-Count-Base/index.d.ts +24 -0
- package/dist/components/core/Badge-Count-Base/index.js +36 -0
- package/dist/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.d.ts +192 -0
- package/dist/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.js +337 -0
- package/dist/components/core/Badge-Count-Base/types.d.ts +137 -0
- package/dist/components/core/Badge-Count-Base/types.js +67 -0
- package/dist/components/core/Badge-Count-Notification/index.d.ts +33 -0
- package/dist/components/core/Badge-Count-Notification/index.js +56 -0
- package/dist/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.d.ts +179 -0
- package/dist/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.js +365 -0
- package/dist/components/core/Badge-Count-Notification/tokens.d.ts +118 -0
- package/dist/components/core/Badge-Count-Notification/tokens.js +120 -0
- package/dist/components/core/Badge-Count-Notification/types.d.ts +112 -0
- package/dist/components/core/Badge-Count-Notification/types.js +33 -0
- package/dist/components/core/Badge-Label-Base/index.d.ts +24 -0
- package/dist/components/core/Badge-Label-Base/index.js +39 -0
- package/dist/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.d.ts +178 -0
- package/dist/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.js +315 -0
- package/dist/components/core/Badge-Label-Base/tokens.d.ts +69 -0
- package/dist/components/core/Badge-Label-Base/tokens.js +81 -0
- package/dist/components/core/Badge-Label-Base/types.d.ts +139 -0
- package/dist/components/core/Badge-Label-Base/types.js +61 -0
- package/dist/components/core/Button-CTA/Button-CTA.tokens.d.ts +73 -0
- package/dist/components/core/Button-CTA/Button-CTA.tokens.js +75 -0
- package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +146 -0
- package/dist/components/core/Button-CTA/examples/BasicUsage.js +231 -0
- package/dist/components/core/Button-CTA/index.d.ts +14 -0
- package/dist/components/core/Button-CTA/index.js +20 -0
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +273 -0
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +635 -0
- package/dist/components/core/Button-CTA/types.d.ts +247 -0
- package/dist/components/core/Button-CTA/types.js +14 -0
- package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +171 -0
- package/dist/components/core/Button-Icon/buttonIcon.tokens.js +188 -0
- package/dist/components/core/Button-Icon/platforms/web/ButtonIcon.web.d.ts +267 -0
- package/dist/components/core/Button-Icon/platforms/web/ButtonIcon.web.js +570 -0
- package/dist/components/core/Button-Icon/types.d.ts +177 -0
- package/dist/components/core/Button-Icon/types.js +35 -0
- package/dist/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.d.ts +96 -0
- package/dist/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.js +107 -0
- package/dist/components/core/Button-VerticalList-Item/index.d.ts +19 -0
- package/dist/components/core/Button-VerticalList-Item/index.js +39 -0
- package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.d.ts +378 -0
- package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.js +916 -0
- package/dist/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.d.ts +227 -0
- package/dist/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.js +370 -0
- package/dist/components/core/Button-VerticalList-Item/types.d.ts +301 -0
- package/dist/components/core/Button-VerticalList-Item/types.js +16 -0
- package/dist/components/core/Button-VerticalList-Set/index.d.ts +16 -0
- package/dist/components/core/Button-VerticalList-Set/index.js +26 -0
- package/dist/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.d.ts +492 -0
- package/dist/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.js +1263 -0
- package/dist/components/core/Button-VerticalList-Set/types.d.ts +586 -0
- package/dist/components/core/Button-VerticalList-Set/types.js +375 -0
- package/dist/components/core/Chip-Base/index.d.ts +28 -0
- package/dist/components/core/Chip-Base/index.js +40 -0
- package/dist/components/core/Chip-Base/platforms/web/ChipBase.web.d.ts +214 -0
- package/dist/components/core/Chip-Base/platforms/web/ChipBase.web.js +434 -0
- package/dist/components/core/Chip-Base/types.d.ts +174 -0
- package/dist/components/core/Chip-Base/types.js +34 -0
- package/dist/components/core/Chip-Filter/index.d.ts +22 -0
- package/dist/components/core/Chip-Filter/index.js +31 -0
- package/dist/components/core/Chip-Filter/platforms/web/ChipFilter.web.d.ts +222 -0
- package/dist/components/core/Chip-Filter/platforms/web/ChipFilter.web.js +467 -0
- package/dist/components/core/Chip-Filter/types.d.ts +45 -0
- package/dist/components/core/Chip-Filter/types.js +19 -0
- package/dist/components/core/Chip-Input/index.d.ts +22 -0
- package/dist/components/core/Chip-Input/index.js +31 -0
- package/dist/components/core/Chip-Input/platforms/web/ChipInput.web.d.ts +205 -0
- package/dist/components/core/Chip-Input/platforms/web/ChipInput.web.js +419 -0
- package/dist/components/core/Chip-Input/types.d.ts +34 -0
- package/dist/components/core/Chip-Input/types.js +19 -0
- package/dist/components/core/Container-Base/index.d.ts +19 -0
- package/dist/components/core/Container-Base/index.js +34 -0
- package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.d.ts +128 -0
- package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.js +349 -0
- package/dist/components/core/Container-Base/platforms/web/token-mapping.d.ts +357 -0
- package/dist/components/core/Container-Base/platforms/web/token-mapping.js +518 -0
- package/dist/components/core/Container-Base/tokens.d.ts +179 -0
- package/dist/components/core/Container-Base/tokens.js +221 -0
- package/dist/components/core/Container-Base/types.d.ts +237 -0
- package/dist/components/core/Container-Base/types.js +50 -0
- package/dist/components/core/Container-Card-Base/index.d.ts +18 -0
- package/dist/components/core/Container-Card-Base/index.js +49 -0
- package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.d.ts +58 -0
- package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.js +324 -0
- package/dist/components/core/Container-Card-Base/tokens.d.ts +149 -0
- package/dist/components/core/Container-Card-Base/tokens.js +207 -0
- package/dist/components/core/Container-Card-Base/types.d.ts +268 -0
- package/dist/components/core/Container-Card-Base/types.js +85 -0
- package/dist/components/core/Icon-Base/index.d.ts +14 -0
- package/dist/components/core/Icon-Base/index.js +27 -0
- package/dist/components/core/Icon-Base/platforms/web/IconBase.web.d.ts +175 -0
- package/dist/components/core/Icon-Base/platforms/web/IconBase.web.js +503 -0
- package/dist/components/core/Icon-Base/types.d.ts +276 -0
- package/dist/components/core/Icon-Base/types.js +69 -0
- package/dist/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.d.ts +30 -0
- package/dist/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.js +39 -0
- package/dist/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.d.ts +147 -0
- package/dist/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.js +486 -0
- package/dist/components/core/Input-Checkbox-Base/types.d.ts +357 -0
- package/dist/components/core/Input-Checkbox-Base/types.js +60 -0
- package/dist/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.d.ts +110 -0
- package/dist/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.js +423 -0
- package/dist/components/core/Input-Checkbox-Legal/types.d.ts +311 -0
- package/dist/components/core/Input-Checkbox-Legal/types.js +69 -0
- package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.d.ts +250 -0
- package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.js +564 -0
- package/dist/components/core/Input-Radio-Base/radio-sizing.tokens.d.ts +30 -0
- package/dist/components/core/Input-Radio-Base/radio-sizing.tokens.js +39 -0
- package/dist/components/core/Input-Radio-Base/types.d.ts +327 -0
- package/dist/components/core/Input-Radio-Base/types.js +63 -0
- package/dist/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.d.ts +304 -0
- package/dist/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.js +691 -0
- package/dist/components/core/Input-Radio-Set/types.d.ts +275 -0
- package/dist/components/core/Input-Radio-Set/types.js +70 -0
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.d.ts +26 -0
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.js +224 -0
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.d.ts +116 -0
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.js +394 -0
- package/dist/components/core/Input-Text-Base/stateManagement.d.ts +172 -0
- package/dist/components/core/Input-Text-Base/stateManagement.js +224 -0
- package/dist/components/core/Input-Text-Base/tokens.d.ts +331 -0
- package/dist/components/core/Input-Text-Base/tokens.js +164 -0
- package/dist/components/core/Input-Text-Base/types.d.ts +77 -0
- package/dist/components/core/Input-Text-Base/types.js +13 -0
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.d.ts +30 -0
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.js +254 -0
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.d.ts +105 -0
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.js +279 -0
- package/dist/components/core/Input-Text-Email/stateManagement.d.ts +79 -0
- package/dist/components/core/Input-Text-Email/stateManagement.js +136 -0
- package/dist/components/core/Input-Text-Email/tokens.d.ts +20 -0
- package/dist/components/core/Input-Text-Email/tokens.js +34 -0
- package/dist/components/core/Input-Text-Email/types.d.ts +63 -0
- package/dist/components/core/Input-Text-Email/types.js +13 -0
- package/dist/components/core/Input-Text-Email/validation.d.ts +68 -0
- package/dist/components/core/Input-Text-Email/validation.js +115 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.d.ts +44 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.js +376 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.d.ts +137 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +447 -0
- package/dist/components/core/Input-Text-Password/stateManagement.d.ts +119 -0
- package/dist/components/core/Input-Text-Password/stateManagement.js +200 -0
- package/dist/components/core/Input-Text-Password/tokens.d.ts +20 -0
- package/dist/components/core/Input-Text-Password/tokens.js +34 -0
- package/dist/components/core/Input-Text-Password/types.d.ts +145 -0
- package/dist/components/core/Input-Text-Password/types.js +13 -0
- package/dist/components/core/Input-Text-Password/validation.d.ts +81 -0
- package/dist/components/core/Input-Text-Password/validation.js +170 -0
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.d.ts +38 -0
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.js +328 -0
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.d.ts +125 -0
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.js +334 -0
- package/dist/components/core/Input-Text-PhoneNumber/stateManagement.d.ts +114 -0
- package/dist/components/core/Input-Text-PhoneNumber/stateManagement.js +200 -0
- package/dist/components/core/Input-Text-PhoneNumber/tokens.d.ts +20 -0
- package/dist/components/core/Input-Text-PhoneNumber/tokens.js +34 -0
- package/dist/components/core/Input-Text-PhoneNumber/types.d.ts +111 -0
- package/dist/components/core/Input-Text-PhoneNumber/types.js +13 -0
- package/dist/components/core/Input-Text-PhoneNumber/validation.d.ts +120 -0
- package/dist/components/core/Input-Text-PhoneNumber/validation.js +278 -0
- package/dist/components/core/Nav-Header-App/index.d.ts +6 -0
- package/dist/components/core/Nav-Header-App/index.js +3 -0
- package/dist/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.d.ts +12 -0
- package/dist/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.js +34 -0
- package/dist/components/core/Nav-Header-App/types.d.ts +27 -0
- package/dist/components/core/Nav-Header-App/types.js +15 -0
- package/dist/components/core/Nav-Header-Base/index.d.ts +7 -0
- package/dist/components/core/Nav-Header-Base/index.js +8 -0
- package/dist/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.d.ts +26 -0
- package/dist/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.js +105 -0
- package/dist/components/core/Nav-Header-Base/types.d.ts +63 -0
- package/dist/components/core/Nav-Header-Base/types.js +17 -0
- package/dist/components/core/Nav-Header-Page/index.d.ts +7 -0
- package/dist/components/core/Nav-Header-Page/index.js +8 -0
- package/dist/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.d.ts +31 -0
- package/dist/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.js +148 -0
- package/dist/components/core/Nav-Header-Page/types.d.ts +46 -0
- package/dist/components/core/Nav-Header-Page/types.js +16 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/index.d.ts +25 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/index.js +33 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.d.ts +112 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.js +421 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/types.d.ts +54 -0
- package/dist/components/core/Nav-SegmentedChoice-Base/types.js +22 -0
- package/dist/components/core/Nav-TabBar-Base/examples/BasicUsage.d.ts +1 -0
- package/dist/components/core/Nav-TabBar-Base/examples/BasicUsage.js +4 -0
- package/dist/components/core/Nav-TabBar-Base/index.d.ts +14 -0
- package/dist/components/core/Nav-TabBar-Base/index.js +18 -0
- package/dist/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.d.ts +82 -0
- package/dist/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.js +372 -0
- package/dist/components/core/Nav-TabBar-Base/types.d.ts +38 -0
- package/dist/components/core/Nav-TabBar-Base/types.js +17 -0
- package/dist/components/core/Progress-Bar-Base/index.d.ts +7 -0
- package/dist/components/core/Progress-Bar-Base/index.js +6 -0
- package/dist/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.d.ts +24 -0
- package/dist/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.js +121 -0
- package/dist/components/core/Progress-Bar-Base/types.d.ts +44 -0
- package/dist/components/core/Progress-Bar-Base/types.js +23 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/index.d.ts +23 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/index.js +32 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.d.ts +61 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.js +128 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/types.d.ts +64 -0
- package/dist/components/core/Progress-Indicator-Connector-Base/types.js +26 -0
- package/dist/components/core/Progress-Indicator-Label-Base/index.d.ts +22 -0
- package/dist/components/core/Progress-Indicator-Label-Base/index.js +29 -0
- package/dist/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.d.ts +71 -0
- package/dist/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.js +160 -0
- package/dist/components/core/Progress-Indicator-Label-Base/types.d.ts +61 -0
- package/dist/components/core/Progress-Indicator-Label-Base/types.js +18 -0
- package/dist/components/core/Progress-Indicator-Node-Base/index.d.ts +23 -0
- package/dist/components/core/Progress-Indicator-Node-Base/index.js +33 -0
- package/dist/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.d.ts +85 -0
- package/dist/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.js +206 -0
- package/dist/components/core/Progress-Indicator-Node-Base/types.d.ts +141 -0
- package/dist/components/core/Progress-Indicator-Node-Base/types.js +46 -0
- package/dist/components/core/Progress-Pagination-Base/index.d.ts +26 -0
- package/dist/components/core/Progress-Pagination-Base/index.js +37 -0
- package/dist/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.d.ts +86 -0
- package/dist/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.js +256 -0
- package/dist/components/core/Progress-Pagination-Base/types.d.ts +97 -0
- package/dist/components/core/Progress-Pagination-Base/types.js +57 -0
- package/dist/components/core/Progress-Stepper-Base/index.d.ts +26 -0
- package/dist/components/core/Progress-Stepper-Base/index.js +40 -0
- package/dist/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.d.ts +93 -0
- package/dist/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.js +247 -0
- package/dist/components/core/Progress-Stepper-Base/types.d.ts +138 -0
- package/dist/components/core/Progress-Stepper-Base/types.js +98 -0
- package/dist/components/core/Progress-Stepper-Detailed/index.d.ts +27 -0
- package/dist/components/core/Progress-Stepper-Detailed/index.js +41 -0
- package/dist/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.d.ts +97 -0
- package/dist/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.js +290 -0
- package/dist/components/core/Progress-Stepper-Detailed/types.d.ts +152 -0
- package/dist/components/core/Progress-Stepper-Detailed/types.js +102 -0
- package/dist/composition/BlendComposition.d.ts +39 -0
- package/dist/composition/BlendComposition.js +15 -0
- package/dist/composition/BlendCompositionParser.d.ts +63 -0
- package/dist/composition/BlendCompositionParser.js +185 -0
- package/dist/composition/OpacityComposition.d.ts +52 -0
- package/dist/composition/OpacityComposition.js +14 -0
- package/dist/composition/OpacityCompositionParser.d.ts +82 -0
- package/dist/composition/OpacityCompositionParser.js +267 -0
- package/dist/composition/index.d.ts +10 -0
- package/dist/composition/index.js +13 -0
- package/dist/config/ConfigLoader.d.ts +71 -0
- package/dist/config/ConfigLoader.js +140 -0
- package/dist/config/defineConfig.d.ts +66 -0
- package/dist/config/defineConfig.js +35 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.js +11 -0
- package/dist/config/scopedTsRequire.d.ts +45 -0
- package/dist/config/scopedTsRequire.js +50 -0
- package/dist/constants/BaselineGrid.d.ts +31 -0
- package/dist/constants/BaselineGrid.js +39 -0
- package/dist/constants/SpacingTokens.d.ts +45 -0
- package/dist/constants/SpacingTokens.js +56 -0
- package/dist/constants/StrategicFlexibilityTokens.d.ts +121 -0
- package/dist/constants/StrategicFlexibilityTokens.js +93 -0
- package/dist/figma/ComponentAnalysis.d.ts +233 -0
- package/dist/figma/ComponentAnalysis.js +15 -0
- package/dist/figma/ComponentAnalysisGenerator.d.ts +79 -0
- package/dist/figma/ComponentAnalysisGenerator.js +391 -0
- package/dist/figma/ConsoleMCPClient.d.ts +147 -0
- package/dist/figma/ConsoleMCPClient.js +12 -0
- package/dist/figma/ConsoleMCPClientImpl.d.ts +159 -0
- package/dist/figma/ConsoleMCPClientImpl.js +918 -0
- package/dist/figma/DesignExtractor.d.ts +971 -0
- package/dist/figma/DesignExtractor.js +2838 -0
- package/dist/figma/TokenSyncWorkflow.d.ts +277 -0
- package/dist/figma/TokenSyncWorkflow.js +678 -0
- package/dist/figma/TokenTranslator.d.ts +261 -0
- package/dist/figma/TokenTranslator.js +713 -0
- package/dist/figma/VariantAnalyzer.d.ts +233 -0
- package/dist/figma/VariantAnalyzer.js +505 -0
- package/dist/figma/error-reporting.d.ts +89 -0
- package/dist/figma/error-reporting.js +189 -0
- package/dist/figma/index.d.ts +26 -0
- package/dist/figma/index.js +37 -0
- package/dist/figma/portCleanup.d.ts +21 -0
- package/dist/figma/portCleanup.js +76 -0
- package/dist/figma/preflight.d.ts +34 -0
- package/dist/figma/preflight.js +105 -0
- package/dist/generators/BlendUtilityGenerator.d.ts +80 -0
- package/dist/generators/BlendUtilityGenerator.js +788 -0
- package/dist/generators/BlendValueGenerator.d.ts +52 -0
- package/dist/generators/BlendValueGenerator.js +159 -0
- package/dist/generators/DTCGFormatGenerator.d.ts +332 -0
- package/dist/generators/DTCGFormatGenerator.js +1224 -0
- package/dist/generators/DTCGGeneratorConfig.d.ts +41 -0
- package/dist/generators/DTCGGeneratorConfig.js +29 -0
- package/dist/generators/ModeResolvedTokens.d.ts +53 -0
- package/dist/generators/ModeResolvedTokens.js +14 -0
- package/dist/generators/ResponsiveGridGenerator.d.ts +64 -0
- package/dist/generators/ResponsiveGridGenerator.js +234 -0
- package/dist/generators/TokenFileGenerator.d.ts +401 -0
- package/dist/generators/TokenFileGenerator.js +1666 -0
- package/dist/generators/generateTokenFiles.d.ts +24 -0
- package/dist/generators/generateTokenFiles.js +343 -0
- package/dist/generators/generateTokenIndex.d.ts +47 -0
- package/dist/generators/generateTokenIndex.js +226 -0
- package/dist/generators/oklch/OklchExportUtils.d.ts +34 -0
- package/dist/generators/oklch/OklchExportUtils.js +48 -0
- package/dist/generators/oklch/OklchTokenIndexMetadata.d.ts +23 -0
- package/dist/generators/oklch/OklchTokenIndexMetadata.js +21 -0
- package/dist/generators/transformers/FigmaTransformer.d.ts +263 -0
- package/dist/generators/transformers/FigmaTransformer.js +681 -0
- package/dist/generators/transformers/ITokenTransformer.d.ts +51 -0
- package/dist/generators/transformers/ITokenTransformer.js +13 -0
- package/dist/generators/transformers/TransformerRegistry.d.ts +33 -0
- package/dist/generators/transformers/TransformerRegistry.js +59 -0
- package/dist/generators/transformers/index.d.ts +39 -0
- package/dist/generators/transformers/index.js +45 -0
- package/dist/generators/types/DTCGTypes.d.ts +101 -0
- package/dist/generators/types/DTCGTypes.js +12 -0
- package/dist/integration/BuildErrorHandler.d.ts +140 -0
- package/dist/integration/BuildErrorHandler.js +277 -0
- package/dist/integration/BuildSystemInterface.d.ts +107 -0
- package/dist/integration/BuildSystemInterface.js +205 -0
- package/dist/integration/PlatformFileSelector.d.ts +84 -0
- package/dist/integration/PlatformFileSelector.js +215 -0
- package/dist/integration/RegistryCoordinator.d.ts +133 -0
- package/dist/integration/RegistryCoordinator.js +298 -0
- package/dist/integration/TranslationCoordinator.d.ts +118 -0
- package/dist/integration/TranslationCoordinator.js +352 -0
- package/dist/integration/TreeShakingOptimizer.d.ts +111 -0
- package/dist/integration/TreeShakingOptimizer.js +224 -0
- package/dist/integration/ValidationCoordinator.d.ts +268 -0
- package/dist/integration/ValidationCoordinator.js +567 -0
- package/dist/integration/index.d.ts +21 -0
- package/dist/integration/index.js +28 -0
- package/dist/ios/DesignTokens.ios.swift +697 -0
- package/dist/mcp/application-mcp.js +19434 -0
- package/dist/mcp/docs-mcp.js +16895 -0
- package/dist/mcp/product-mcp.js +24828 -0
- package/dist/naming/NamingConventionManager.d.ts +94 -0
- package/dist/naming/NamingConventionManager.js +193 -0
- package/dist/naming/PlatformNamingRules.d.ts +62 -0
- package/dist/naming/PlatformNamingRules.js +174 -0
- package/dist/naming/index.d.ts +9 -0
- package/dist/naming/index.js +18 -0
- package/dist/performance/CachingStrategy.d.ts +131 -0
- package/dist/performance/CachingStrategy.js +348 -0
- package/dist/performance/FileGenerationOptimizer.d.ts +91 -0
- package/dist/performance/FileGenerationOptimizer.js +201 -0
- package/dist/performance/PerformanceMonitor.d.ts +79 -0
- package/dist/performance/PerformanceMonitor.js +142 -0
- package/dist/performance/PerformanceOptimizer.d.ts +106 -0
- package/dist/performance/PerformanceOptimizer.js +241 -0
- package/dist/performance/index.d.ts +14 -0
- package/dist/performance/index.js +17 -0
- package/dist/providers/AndroidFileOrganizer.d.ts +56 -0
- package/dist/providers/AndroidFileOrganizer.js +225 -0
- package/dist/providers/AndroidFormatGenerator.d.ts +151 -0
- package/dist/providers/AndroidFormatGenerator.js +673 -0
- package/dist/providers/AndroidUnitConverter.d.ts +54 -0
- package/dist/providers/AndroidUnitConverter.js +151 -0
- package/dist/providers/FormatProvider.d.ts +103 -0
- package/dist/providers/FormatProvider.js +67 -0
- package/dist/providers/PathProvider.d.ts +114 -0
- package/dist/providers/PathProvider.js +64 -0
- package/dist/providers/UnitProvider.d.ts +65 -0
- package/dist/providers/UnitProvider.js +46 -0
- package/dist/providers/WebFileOrganizer.d.ts +35 -0
- package/dist/providers/WebFileOrganizer.js +113 -0
- package/dist/providers/WebFormatGenerator.d.ts +146 -0
- package/dist/providers/WebFormatGenerator.js +522 -0
- package/dist/providers/WebUnitConverter.d.ts +29 -0
- package/dist/providers/WebUnitConverter.js +99 -0
- package/dist/providers/iOSFileOrganizer.d.ts +42 -0
- package/dist/providers/iOSFileOrganizer.js +148 -0
- package/dist/providers/iOSFormatGenerator.d.ts +130 -0
- package/dist/providers/iOSFormatGenerator.js +512 -0
- package/dist/providers/iOSUnitConverter.d.ts +35 -0
- package/dist/providers/iOSUnitConverter.js +108 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.js +35 -0
- package/dist/registries/ComponentTokenRegistry.d.ts +176 -0
- package/dist/registries/ComponentTokenRegistry.js +222 -0
- package/dist/registries/IRegistry.d.ts +166 -0
- package/dist/registries/IRegistry.js +3 -0
- package/dist/registries/PrimitiveTokenRegistry.d.ts +83 -0
- package/dist/registries/PrimitiveTokenRegistry.js +158 -0
- package/dist/registries/SemanticTokenRegistry.d.ts +92 -0
- package/dist/registries/SemanticTokenRegistry.js +188 -0
- package/dist/resolvers/AndroidColorResolver.d.ts +111 -0
- package/dist/resolvers/AndroidColorResolver.js +255 -0
- package/dist/resolvers/ModeThemeResolver.d.ts +82 -0
- package/dist/resolvers/ModeThemeResolver.js +113 -0
- package/dist/resolvers/SemanticOverrideResolver.d.ts +59 -0
- package/dist/resolvers/SemanticOverrideResolver.js +124 -0
- package/dist/resolvers/SemanticValueResolver.d.ts +20 -0
- package/dist/resolvers/SemanticValueResolver.js +122 -0
- package/dist/resolvers/WebColorResolver.d.ts +63 -0
- package/dist/resolvers/WebColorResolver.js +181 -0
- package/dist/resolvers/iOSColorResolver.d.ts +67 -0
- package/dist/resolvers/iOSColorResolver.js +175 -0
- package/dist/resolvers/index.d.ts +11 -0
- package/dist/resolvers/index.js +18 -0
- package/dist/security/AIAgentRestrictions.d.ts +115 -0
- package/dist/security/AIAgentRestrictions.js +185 -0
- package/dist/security/ContaminationAuditor.d.ts +96 -0
- package/dist/security/ContaminationAuditor.js +293 -0
- package/dist/security/ContaminationPrevention.d.ts +73 -0
- package/dist/security/ContaminationPrevention.js +222 -0
- package/dist/security/DocumentationGuard.d.ts +76 -0
- package/dist/security/DocumentationGuard.js +199 -0
- package/dist/security/FlexibilityTokenGuard.d.ts +136 -0
- package/dist/security/FlexibilityTokenGuard.js +187 -0
- package/dist/security/HumanApprovalWorkflow.d.ts +129 -0
- package/dist/security/HumanApprovalWorkflow.js +213 -0
- package/dist/security/index.d.ts +19 -0
- package/dist/security/index.js +23 -0
- package/dist/testing/index.d.ts +74 -0
- package/dist/testing/index.js +142 -0
- package/dist/testing/jest-preset.d.ts +27 -0
- package/dist/testing/jest-preset.js +94 -0
- package/dist/testing/style-mock.d.ts +1 -0
- package/dist/testing/style-mock.js +9 -0
- package/dist/testing/validators.d.ts +10 -0
- package/dist/testing/validators.js +26 -0
- package/dist/themes/ResolvedThemeSet.d.ts +21 -0
- package/dist/themes/ResolvedThemeSet.js +8 -0
- package/dist/themes/ThemeRegistry.d.ts +52 -0
- package/dist/themes/ThemeRegistry.js +77 -0
- package/dist/tokens/BlendTokens.d.ts +45 -0
- package/dist/tokens/BlendTokens.js +127 -0
- package/dist/tokens/BlurTokens.d.ts +28 -0
- package/dist/tokens/BlurTokens.js +153 -0
- package/dist/tokens/BorderWidthTokens.d.ts +29 -0
- package/dist/tokens/BorderWidthTokens.js +97 -0
- package/dist/tokens/BreakpointTokens.d.ts +29 -0
- package/dist/tokens/BreakpointTokens.js +97 -0
- package/dist/tokens/ColorTokens.d.ts +270 -0
- package/dist/tokens/ColorTokens.js +2085 -0
- package/dist/tokens/DensityTokens.d.ts +36 -0
- package/dist/tokens/DensityTokens.js +113 -0
- package/dist/tokens/DurationTokens.d.ts +47 -0
- package/dist/tokens/DurationTokens.js +108 -0
- package/dist/tokens/EasingTokens.d.ts +47 -0
- package/dist/tokens/EasingTokens.js +159 -0
- package/dist/tokens/FontFamilyTokens.d.ts +24 -0
- package/dist/tokens/FontFamilyTokens.js +92 -0
- package/dist/tokens/FontSizeTokens.d.ts +33 -0
- package/dist/tokens/FontSizeTokens.js +185 -0
- package/dist/tokens/FontWeightTokens.d.ts +29 -0
- package/dist/tokens/FontWeightTokens.js +157 -0
- package/dist/tokens/GlowOpacityTokens.d.ts +41 -0
- package/dist/tokens/GlowOpacityTokens.js +109 -0
- package/dist/tokens/LetterSpacingTokens.d.ts +29 -0
- package/dist/tokens/LetterSpacingTokens.js +109 -0
- package/dist/tokens/LineHeightTokens.d.ts +34 -0
- package/dist/tokens/LineHeightTokens.js +189 -0
- package/dist/tokens/OpacityTokens.d.ts +30 -0
- package/dist/tokens/OpacityTokens.js +219 -0
- package/dist/tokens/RadiusTokens.d.ts +37 -0
- package/dist/tokens/RadiusTokens.js +223 -0
- package/dist/tokens/ScaleTokens.d.ts +62 -0
- package/dist/tokens/ScaleTokens.js +161 -0
- package/dist/tokens/ShadowOffsetTokens.d.ts +69 -0
- package/dist/tokens/ShadowOffsetTokens.js +264 -0
- package/dist/tokens/ShadowOpacityTokens.d.ts +22 -0
- package/dist/tokens/ShadowOpacityTokens.js +112 -0
- package/dist/tokens/SizingTokens.d.ts +35 -0
- package/dist/tokens/SizingTokens.js +220 -0
- package/dist/tokens/SpacingTokens.d.ts +29 -0
- package/dist/tokens/SpacingTokens.js +239 -0
- package/dist/tokens/TapAreaTokens.d.ts +38 -0
- package/dist/tokens/TapAreaTokens.js +115 -0
- package/dist/tokens/color/channels/chroma/chromatic.d.ts +61 -0
- package/dist/tokens/color/channels/chroma/chromatic.js +64 -0
- package/dist/tokens/color/channels/chroma/neutral.d.ts +33 -0
- package/dist/tokens/color/channels/chroma/neutral.js +36 -0
- package/dist/tokens/color/channels/hues.d.ts +27 -0
- package/dist/tokens/color/channels/hues.js +29 -0
- package/dist/tokens/color/channels/index.d.ts +11 -0
- package/dist/tokens/color/channels/index.js +36 -0
- package/dist/tokens/color/channels/lightness/chromatic.d.ts +62 -0
- package/dist/tokens/color/channels/lightness/chromatic.js +65 -0
- package/dist/tokens/color/channels/lightness/neutral.d.ts +34 -0
- package/dist/tokens/color/channels/lightness/neutral.js +37 -0
- package/dist/tokens/color/index.d.ts +16 -0
- package/dist/tokens/color/index.js +47 -0
- package/dist/tokens/color/primitives/chromatic.d.ts +24 -0
- package/dist/tokens/color/primitives/chromatic.js +42 -0
- package/dist/tokens/color/primitives/neutral.d.ts +12 -0
- package/dist/tokens/color/primitives/neutral.js +37 -0
- package/dist/tokens/component/progress.d.ts +101 -0
- package/dist/tokens/component/progress.js +145 -0
- package/dist/tokens/index.d.ts +167 -0
- package/dist/tokens/index.js +341 -0
- package/dist/tokens/semantic/AccessibilityTokens.d.ts +112 -0
- package/dist/tokens/semantic/AccessibilityTokens.js +175 -0
- package/dist/tokens/semantic/BlendTokens.d.ts +112 -0
- package/dist/tokens/semantic/BlendTokens.js +191 -0
- package/dist/tokens/semantic/BorderWidthTokens.d.ts +156 -0
- package/dist/tokens/semantic/BorderWidthTokens.js +147 -0
- package/dist/tokens/semantic/ColorTokens.d.ts +157 -0
- package/dist/tokens/semantic/ColorTokens.js +791 -0
- package/dist/tokens/semantic/ElevationTokens.d.ts +98 -0
- package/dist/tokens/semantic/ElevationTokens.js +158 -0
- package/dist/tokens/semantic/GridSpacingTokens.d.ts +36 -0
- package/dist/tokens/semantic/GridSpacingTokens.js +139 -0
- package/dist/tokens/semantic/IconTokens.d.ts +70 -0
- package/dist/tokens/semantic/IconTokens.js +309 -0
- package/dist/tokens/semantic/LayeringTokens.d.ts +135 -0
- package/dist/tokens/semantic/LayeringTokens.js +163 -0
- package/dist/tokens/semantic/MotionTokens.d.ts +74 -0
- package/dist/tokens/semantic/MotionTokens.js +131 -0
- package/dist/tokens/semantic/OpacityTokens.d.ts +40 -0
- package/dist/tokens/semantic/OpacityTokens.js +87 -0
- package/dist/tokens/semantic/RadiusTokens.d.ts +233 -0
- package/dist/tokens/semantic/RadiusTokens.js +224 -0
- package/dist/tokens/semantic/ShadowTokens.d.ts +55 -0
- package/dist/tokens/semantic/ShadowTokens.js +409 -0
- package/dist/tokens/semantic/SpacingTokens.d.ts +397 -0
- package/dist/tokens/semantic/SpacingTokens.js +243 -0
- package/dist/tokens/semantic/StyleTokens.d.ts +19 -0
- package/dist/tokens/semantic/StyleTokens.js +25 -0
- package/dist/tokens/semantic/TypographyTokens.d.ts +32 -0
- package/dist/tokens/semantic/TypographyTokens.js +376 -0
- package/dist/tokens/semantic/ZIndexTokens.d.ts +61 -0
- package/dist/tokens/semantic/ZIndexTokens.js +107 -0
- package/dist/tokens/semantic/index.d.ts +94 -0
- package/dist/tokens/semantic/index.js +547 -0
- package/dist/tokens/themes/dark/SemanticOverrides.d.ts +16 -0
- package/dist/tokens/themes/dark/SemanticOverrides.js +149 -0
- package/dist/tokens/themes/dark-wcag/SemanticOverrides.d.ts +14 -0
- package/dist/tokens/themes/dark-wcag/SemanticOverrides.js +21 -0
- package/dist/tokens/themes/types.d.ts +22 -0
- package/dist/tokens/themes/types.js +10 -0
- package/dist/tokens/themes/wcag/SemanticOverrides.d.ts +12 -0
- package/dist/tokens/themes/wcag/SemanticOverrides.js +26 -0
- package/dist/tools/ThemeFileGenerator.d.ts +16 -0
- package/dist/tools/ThemeFileGenerator.js +103 -0
- package/dist/tools/integrity/DiskFreshGenerator.d.ts +19 -0
- package/dist/tools/integrity/DiskFreshGenerator.js +68 -0
- package/dist/tools/integrity/GenerationIntegrityCheck.d.ts +31 -0
- package/dist/tools/integrity/GenerationIntegrityCheck.js +137 -0
- package/dist/tools/integrity/Invariants.d.ts +82 -0
- package/dist/tools/integrity/Invariants.js +231 -0
- package/dist/tools/integrity/Normalizer.d.ts +28 -0
- package/dist/tools/integrity/Normalizer.js +122 -0
- package/dist/tools/integrity/ParityNormalizationRules.d.ts +55 -0
- package/dist/tools/integrity/ParityNormalizationRules.js +163 -0
- package/dist/tools/integrity/ParityOrchestrator.d.ts +97 -0
- package/dist/tools/integrity/ParityOrchestrator.js +234 -0
- package/dist/tools/integrity/SemanticComparator.d.ts +24 -0
- package/dist/tools/integrity/SemanticComparator.js +108 -0
- package/dist/tools/integrity/cli/run-audit.d.ts +21 -0
- package/dist/tools/integrity/cli/run-audit.js +178 -0
- package/dist/tools/integrity/inventory.d.ts +26 -0
- package/dist/tools/integrity/inventory.js +48 -0
- package/dist/tools/integrity/manifest.d.ts +44 -0
- package/dist/tools/integrity/manifest.js +54 -0
- package/dist/tools/integrity/types/index.d.ts +146 -0
- package/dist/tools/integrity/types/index.js +21 -0
- package/dist/tools/release/cli/ReleasePipeline.d.ts +28 -0
- package/dist/tools/release/cli/ReleasePipeline.js +184 -0
- package/dist/tools/release/cli/release-tool.d.ts +11 -0
- package/dist/tools/release/cli/release-tool.js +98 -0
- package/dist/tools/release/pipeline/ChangeClassifier.d.ts +13 -0
- package/dist/tools/release/pipeline/ChangeClassifier.js +53 -0
- package/dist/tools/release/pipeline/ChangeExtractor.d.ts +16 -0
- package/dist/tools/release/pipeline/ChangeExtractor.js +80 -0
- package/dist/tools/release/pipeline/NotesRenderer.d.ts +15 -0
- package/dist/tools/release/pipeline/NotesRenderer.js +62 -0
- package/dist/tools/release/pipeline/SummaryScanner.d.ts +16 -0
- package/dist/tools/release/pipeline/SummaryScanner.js +94 -0
- package/dist/tools/release/pipeline/TagResolver.d.ts +15 -0
- package/dist/tools/release/pipeline/TagResolver.js +37 -0
- package/dist/tools/release/pipeline/VersionCalculator.d.ts +34 -0
- package/dist/tools/release/pipeline/VersionCalculator.js +325 -0
- package/dist/tools/release/publishers/GitHubPublisher.d.ts +33 -0
- package/dist/tools/release/publishers/GitHubPublisher.js +239 -0
- package/dist/tools/release/publishers/NpmPublisher.d.ts +49 -0
- package/dist/tools/release/publishers/NpmPublisher.js +226 -0
- package/dist/tools/release/types/index.d.ts +239 -0
- package/dist/tools/release/types/index.js +11 -0
- package/dist/tools/release/validators/SemanticVersionValidator.d.ts +18 -0
- package/dist/tools/release/validators/SemanticVersionValidator.js +56 -0
- package/dist/types/ComponentTypes.d.ts +70 -0
- package/dist/types/ComponentTypes.js +12 -0
- package/dist/types/PrimitiveToken.d.ts +105 -0
- package/dist/types/PrimitiveToken.js +38 -0
- package/dist/types/SemanticToken.d.ts +79 -0
- package/dist/types/SemanticToken.js +27 -0
- package/dist/types/TranslationOutput.d.ts +80 -0
- package/dist/types/TranslationOutput.js +9 -0
- package/dist/types/ValidationResult.d.ts +58 -0
- package/dist/types/ValidationResult.js +9 -0
- package/dist/types/generated/TokenTypes.d.ts +48 -0
- package/dist/types/generated/TokenTypes.js +35 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.js +14 -0
- package/dist/validators/BaselineGridValidator.d.ts +55 -0
- package/dist/validators/BaselineGridValidator.js +96 -0
- package/dist/validators/CompositionPatternValidator.d.ts +75 -0
- package/dist/validators/CompositionPatternValidator.js +178 -0
- package/dist/validators/CrossPlatformConsistencyValidator.d.ts +112 -0
- package/dist/validators/CrossPlatformConsistencyValidator.js +313 -0
- package/dist/validators/ErrorValidator.d.ts +161 -0
- package/dist/validators/ErrorValidator.js +652 -0
- package/dist/validators/IValidator.d.ts +260 -0
- package/dist/validators/IValidator.js +43 -0
- package/dist/validators/MathematicalRelationshipParser.d.ts +112 -0
- package/dist/validators/MathematicalRelationshipParser.js +325 -0
- package/dist/validators/ModeParity.d.ts +37 -0
- package/dist/validators/ModeParity.js +133 -0
- package/dist/validators/PassValidator.d.ts +100 -0
- package/dist/validators/PassValidator.js +400 -0
- package/dist/validators/PlatformConstraintHandler.d.ts +103 -0
- package/dist/validators/PlatformConstraintHandler.js +309 -0
- package/dist/validators/PrimitiveReferenceValidator.d.ts +68 -0
- package/dist/validators/PrimitiveReferenceValidator.js +244 -0
- package/dist/validators/SemanticTokenValidator.d.ts +120 -0
- package/dist/validators/SemanticTokenValidator.js +382 -0
- package/dist/validators/StemmaComponentNamingValidator.d.ts +145 -0
- package/dist/validators/StemmaComponentNamingValidator.js +392 -0
- package/dist/validators/StemmaErrorGuidanceSystem.d.ts +292 -0
- package/dist/validators/StemmaErrorGuidanceSystem.js +1287 -0
- package/dist/validators/StemmaPropertyAccessibilityValidator.d.ts +250 -0
- package/dist/validators/StemmaPropertyAccessibilityValidator.js +642 -0
- package/dist/validators/StemmaTokenUsageValidator.d.ts +135 -0
- package/dist/validators/StemmaTokenUsageValidator.js +503 -0
- package/dist/validators/SyntaxValidator.d.ts +116 -0
- package/dist/validators/SyntaxValidator.js +369 -0
- package/dist/validators/ThreeTierValidator.d.ts +289 -0
- package/dist/validators/ThreeTierValidator.js +533 -0
- package/dist/validators/ToleranceCalculator.d.ts +104 -0
- package/dist/validators/ToleranceCalculator.js +222 -0
- package/dist/validators/ValidationReasoning.d.ts +104 -0
- package/dist/validators/ValidationReasoning.js +307 -0
- package/dist/validators/WCAGValidator.d.ts +108 -0
- package/dist/validators/WCAGValidator.js +188 -0
- package/dist/validators/WarningValidator.d.ts +125 -0
- package/dist/validators/WarningValidator.js +383 -0
- package/dist/validators/buildValidation.d.ts +34 -0
- package/dist/validators/buildValidation.js +135 -0
- package/dist/validators/index.d.ts +32 -0
- package/dist/validators/index.js +105 -0
- package/dist/web/DesignTokens.web.css +929 -0
- package/dist/workflows/ConsistencyValidator.d.ts +91 -0
- package/dist/workflows/ConsistencyValidator.js +272 -0
- package/dist/workflows/TokenGenerationWorkflow.d.ts +129 -0
- package/dist/workflows/TokenGenerationWorkflow.js +316 -0
- package/dist/workflows/ValidationPipeline.d.ts +103 -0
- package/dist/workflows/ValidationPipeline.js +213 -0
- package/dist/workflows/WorkflowErrorHandler.d.ts +141 -0
- package/dist/workflows/WorkflowErrorHandler.js +357 -0
- package/experience-patterns/README.md +160 -0
- package/experience-patterns/content-preview.yaml +48 -0
- package/experience-patterns/dashboard.yaml +97 -0
- package/experience-patterns/empty-state.yaml +50 -0
- package/experience-patterns/multi-section-form.yaml +105 -0
- package/experience-patterns/notification-list.yaml +109 -0
- package/experience-patterns/onboarding.yaml +197 -0
- package/experience-patterns/settings.yaml +98 -0
- package/experience-patterns/simple-form.yaml +41 -0
- package/experience-patterns/view-edit-screen.yaml +125 -0
- package/family-guidance/README.md +115 -0
- package/family-guidance/avatars.yaml +63 -0
- package/family-guidance/badges.yaml +76 -0
- package/family-guidance/button.yaml +108 -0
- package/family-guidance/chips.yaml +82 -0
- package/family-guidance/container.yaml +69 -0
- package/family-guidance/form-inputs.yaml +104 -0
- package/family-guidance/icons.yaml +87 -0
- package/family-guidance/navigation.yaml +96 -0
- package/family-guidance/progress.yaml +85 -0
- package/family-registry.yaml +49 -0
- package/governance/AI-Collaboration-Framework.md +305 -0
- package/governance/BUILD-SYSTEM-SETUP.md +233 -0
- package/governance/Component-Development-Guide.md +1876 -0
- package/governance/Component-Development-Standards.md +1189 -0
- package/governance/Component-Family-Avatar.md +290 -0
- package/governance/Component-Family-Badge.md +479 -0
- package/governance/Component-Family-Button.md +671 -0
- package/governance/Component-Family-Chip.md +431 -0
- package/governance/Component-Family-Container.md +671 -0
- package/governance/Component-Family-Data-Display.md +149 -0
- package/governance/Component-Family-Divider.md +138 -0
- package/governance/Component-Family-Form-Inputs.md +1365 -0
- package/governance/Component-Family-Icon.md +364 -0
- package/governance/Component-Family-Loading.md +143 -0
- package/governance/Component-Family-Modal.md +151 -0
- package/governance/Component-Family-Navigation.md +266 -0
- package/governance/Component-Family-Progress.md +488 -0
- package/governance/Component-Inheritance-Structures.md +687 -0
- package/governance/Component-MCP-Document-Template.md +722 -0
- package/governance/Component-Meta-Data-Shapes-Governance.md +120 -0
- package/governance/Component-Primitive-vs-Semantic-Philosophy.md +404 -0
- package/governance/Component-Quick-Reference.md +304 -0
- package/governance/Component-Readiness-Status.md +660 -0
- package/governance/Component-Schema-Format.md +379 -0
- package/governance/Component-Templates.md +1118 -0
- package/governance/Contract-System-Reference.md +255 -0
- package/governance/DTCG-Integration-Guide.md +573 -0
- package/governance/DesignerPunk-Integration-Guide.md +1005 -0
- package/governance/Figma-Workflow-Guide.md +479 -0
- package/governance/Layout-Specification-Vocabulary.md +550 -0
- package/governance/MCP-Evolution-Roadmap.md +228 -0
- package/governance/MCP-Integration-Guide.md +509 -0
- package/governance/MCP-Relationship-Model.md +363 -0
- package/governance/Platform-Resource-Map.md +70 -0
- package/governance/Process-Cross-Reference-Standards.md +665 -0
- package/governance/Process-Development-Workflow.md +310 -0
- package/governance/Process-File-Organization.md +693 -0
- package/governance/Process-Hook-Operations.md +1196 -0
- package/governance/Process-Integration-Methodology.md +142 -0
- package/governance/Process-Spec-Planning.md +2988 -0
- package/governance/Process-Task-Type-Definitions.md +378 -0
- package/governance/Product-Handoff-Protocol.md +258 -0
- package/governance/Product-Token-Governance.md +307 -0
- package/governance/Rosetta-System-Architecture.md +648 -0
- package/governance/Steering-Addressing-Conventions.md +105 -0
- package/governance/Test-Behavioral-Contract-Validation.md +638 -0
- package/governance/Test-Development-Standards.md +2094 -0
- package/governance/Test-Failure-Audit-Methodology.md +1475 -0
- package/governance/Token-Family-Accessibility.md +656 -0
- package/governance/Token-Family-Blend.md +503 -0
- package/governance/Token-Family-Blur.md +115 -0
- package/governance/Token-Family-Border.md +477 -0
- package/governance/Token-Family-Color.md +317 -0
- package/governance/Token-Family-Glow.md +473 -0
- package/governance/Token-Family-Layering.md +685 -0
- package/governance/Token-Family-Motion.md +690 -0
- package/governance/Token-Family-Opacity.md +578 -0
- package/governance/Token-Family-Radius.md +428 -0
- package/governance/Token-Family-Responsive.md +798 -0
- package/governance/Token-Family-Shadow.md +758 -0
- package/governance/Token-Family-Sizing.md +102 -0
- package/governance/Token-Family-Spacing.md +632 -0
- package/governance/Token-Family-Typography.md +598 -0
- package/governance/Token-Governance.md +658 -0
- package/governance/Token-Quick-Reference.md +382 -0
- package/governance/Token-Resolution-Patterns.md +537 -0
- package/governance/Token-Semantic-Structure.md +776 -0
- package/governance/Transformer-Development-Guide.md +490 -0
- package/governance/Web-Authoring-Standards.md +403 -0
- package/governance/a-vision-of-the-future.md +686 -0
- package/governance/browser-distribution-guide.md +580 -0
- package/governance/completion-documentation-guide.md +371 -0
- package/governance/component-mcp-query-guide.md +500 -0
- package/governance/component-meta-authoring-guide.md +235 -0
- package/governance/component-metadata-schema-reference.md +227 -0
- package/governance/cross-platform-vs-platform-specific-decision-framework.md +355 -0
- package/governance/platform-implementation-guidelines.md +818 -0
- package/governance/release-management-system.md +89 -0
- package/governance/rosetta-system-principles.md +593 -0
- package/governance/stemma-system-principles.md +900 -0
- package/governance/technology-stack.md +97 -0
- package/layout-templates/centered-content-page.yaml +26 -0
- package/layout-templates/full-width-page.yaml +24 -0
- package/layout-templates/multi-zone-page.yaml +56 -0
- package/layout-templates/sidebar-page.yaml +41 -0
- package/mcp-server/package.json +33 -0
- package/mcp-server/src/discovery-dry-run/__tests__/discovery-dry-run.test.ts +210 -0
- package/mcp-server/src/discovery-dry-run/discovery-dry-run.ts +224 -0
- package/mcp-server/src/id-guard/__tests__/backfill-doc-ids.test.ts +123 -0
- package/mcp-server/src/id-guard/__tests__/check-id-uniqueness.test.ts +138 -0
- package/mcp-server/src/id-guard/backfill-doc-ids.ts +180 -0
- package/mcp-server/src/id-guard/check-id-uniqueness.ts +165 -0
- package/mcp-server/src/id-guard/manifest-consistency.ts +77 -0
- package/mcp-server/src/index.ts +439 -0
- package/mcp-server/src/indexer/DocumentIndexer.ts +808 -0
- package/mcp-server/src/indexer/__tests__/DocumentIndexer.resolver.test.ts +298 -0
- package/mcp-server/src/indexer/__tests__/DocumentIndexer.test.ts +682 -0
- package/mcp-server/src/indexer/__tests__/conditional-filter.test.ts +367 -0
- package/mcp-server/src/indexer/__tests__/cross-ref-parser.test.ts +331 -0
- package/mcp-server/src/indexer/__tests__/frontmatter-parser.test.ts +192 -0
- package/mcp-server/src/indexer/__tests__/heading-parser.test.ts +227 -0
- package/mcp-server/src/indexer/__tests__/index-health.test.ts +393 -0
- package/mcp-server/src/indexer/__tests__/metadata-parser.test.ts +234 -0
- package/mcp-server/src/indexer/__tests__/section-parser.test.ts +494 -0
- package/mcp-server/src/indexer/conditional-filter.ts +282 -0
- package/mcp-server/src/indexer/cross-ref-parser.ts +65 -0
- package/mcp-server/src/indexer/frontmatter-parser.ts +192 -0
- package/mcp-server/src/indexer/heading-parser.ts +65 -0
- package/mcp-server/src/indexer/index-health.ts +228 -0
- package/mcp-server/src/indexer/metadata-parser.ts +81 -0
- package/mcp-server/src/indexer/section-parser.ts +296 -0
- package/mcp-server/src/legacy-path/__tests__/generate-manifest.test.ts +188 -0
- package/mcp-server/src/legacy-path/__tests__/reseed-integration.test.ts +113 -0
- package/mcp-server/src/legacy-path/generate-manifest.ts +214 -0
- package/mcp-server/src/legacy-path/index.ts +48 -0
- package/mcp-server/src/legacy-path/legacy-path-manifest.ts +160 -0
- package/mcp-server/src/models/CrossReference.ts +19 -0
- package/mcp-server/src/models/DocumentFull.ts +26 -0
- package/mcp-server/src/models/DocumentSummary.ts +53 -0
- package/mcp-server/src/models/DocumentationMap.ts +90 -0
- package/mcp-server/src/models/IndexHealth.ts +44 -0
- package/mcp-server/src/models/LegacyPathManifest.ts +37 -0
- package/mcp-server/src/models/MetadataValidation.ts +30 -0
- package/mcp-server/src/models/Section.ts +38 -0
- package/mcp-server/src/models/index.ts +14 -0
- package/mcp-server/src/query/QueryEngine.ts +860 -0
- package/mcp-server/src/query/__tests__/QueryEngine.test.ts +438 -0
- package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +406 -0
- package/mcp-server/src/query/__tests__/find-docs-rubric.test.ts +227 -0
- package/mcp-server/src/query/__tests__/stop-words.test.ts +40 -0
- package/mcp-server/src/query/stop-words.ts +74 -0
- package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +236 -0
- package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +637 -0
- package/mcp-server/src/rules/workflow-rules.ts +105 -0
- package/mcp-server/src/staleness/StalenessGate.ts +112 -0
- package/mcp-server/src/staleness/__tests__/StalenessGate.test.ts +214 -0
- package/mcp-server/src/tools/__tests__/get-document-full.test.ts +256 -0
- package/mcp-server/src/tools/__tests__/get-document-summary.test.ts +273 -0
- package/mcp-server/src/tools/__tests__/get-documentation-map.test.ts +357 -0
- package/mcp-server/src/tools/__tests__/get-health-status.test.ts +223 -0
- package/mcp-server/src/tools/__tests__/get-index-health.test.ts +184 -0
- package/mcp-server/src/tools/__tests__/get-section.test.ts +457 -0
- package/mcp-server/src/tools/__tests__/list-cross-references.test.ts +279 -0
- package/mcp-server/src/tools/__tests__/rebuild-index.test.ts +214 -0
- package/mcp-server/src/tools/__tests__/validate-metadata.test.ts +296 -0
- package/mcp-server/src/tools/find-docs.ts +154 -0
- package/mcp-server/src/tools/get-document-full.ts +165 -0
- package/mcp-server/src/tools/get-document-summary.ts +198 -0
- package/mcp-server/src/tools/get-health-status.ts +137 -0
- package/mcp-server/src/tools/get-index-health.ts +100 -0
- package/mcp-server/src/tools/get-section.ts +308 -0
- package/mcp-server/src/tools/index.ts +106 -0
- package/mcp-server/src/tools/list-cross-references.ts +167 -0
- package/mcp-server/src/tools/rebuild-index.ts +101 -0
- package/mcp-server/src/tools/validate-metadata.ts +167 -0
- package/mcp-server/src/utils/__tests__/error-handler.test.ts +256 -0
- package/mcp-server/src/utils/__tests__/token-estimator.test.ts +87 -0
- package/mcp-server/src/utils/error-handler.ts +261 -0
- package/mcp-server/src/utils/token-estimator.ts +35 -0
- package/mcp-server/src/watcher/FileWatcher.ts +156 -0
- package/mcp-server/src/watcher/__tests__/FileWatcher.test.ts +293 -0
- package/mcp-server/src/watcher/index.ts +1 -0
- package/mcp-server/tsconfig.json +24 -0
- package/package.json +167 -0
- package/product-template/agents/README.md +73 -0
- package/product-template/agents/ada-prompt.md +83 -0
- package/product-template/agents/data-prompt.md +74 -0
- package/product-template/agents/kenya-prompt.md +74 -0
- package/product-template/agents/leonardo-prompt.md +99 -0
- package/product-template/agents/lina-prompt.md +61 -0
- package/product-template/agents/sparky-prompt.md +66 -0
- package/product-template/agents/stacy-prompt.md +51 -0
- package/product-template/agents/thurgood-prompt.md +64 -0
- package/src/TokenEngine.ts +628 -0
- package/src/__tests__/BuildSystemIntegration.test.ts +485 -0
- package/src/__tests__/ProductMCPIntegration.test.ts +204 -0
- package/src/__tests__/__mocks__/styleMock.js +18 -0
- package/src/__tests__/browser-distribution/build-error-handling.test.ts +143 -0
- package/src/__tests__/browser-distribution/bundle-loading.test.ts +353 -0
- package/src/__tests__/browser-distribution/bundler-resolution.test.ts +223 -0
- package/src/__tests__/browser-distribution/component-registration.test.ts +217 -0
- package/src/__tests__/browser-distribution/css-bundling.test.ts +231 -0
- package/src/__tests__/browser-distribution/demo-system.test.ts +588 -0
- package/src/__tests__/browser-distribution/mcp-format-compliance.property.test.ts +379 -0
- package/src/__tests__/browser-distribution/mcp-queryability.test.ts +342 -0
- package/src/__tests__/browser-distribution/minification-effectiveness.property.test.ts +188 -0
- package/src/__tests__/browser-distribution/registration-idempotency.property.test.ts +372 -0
- package/src/__tests__/browser-distribution/soft-ceiling-warning.test.ts +161 -0
- package/src/__tests__/browser-distribution/token-completeness.property.test.ts +412 -0
- package/src/__tests__/browser-distribution/token-loading.test.ts +344 -0
- package/src/__tests__/browser-distribution/umd-bundle-loading.test.ts +169 -0
- package/src/__tests__/examples/improved-test-example.test.ts +120 -0
- package/src/__tests__/expected-exports.json +66 -0
- package/src/__tests__/export-contracts.test.ts +83 -0
- package/src/__tests__/fixtures/acknowledged-differences.json +127 -0
- package/src/__tests__/fixtures/acknowledged-differences.schema.json +113 -0
- package/src/__tests__/fixtures/acknowledged-differences.types.ts +230 -0
- package/src/__tests__/fixtures/tokenFixtures.ts +248 -0
- package/src/__tests__/helpers/configModuleLoader.ts +20 -0
- package/src/__tests__/helpers/tsModuleLoader.ts +24 -0
- package/src/__tests__/helpers/web-component-test-utils.ts +39 -0
- package/src/__tests__/integration/BlendCrossPlatformConsistency.test.ts +505 -0
- package/src/__tests__/integration/BuildSystemCompatibility.test.ts +551 -0
- package/src/__tests__/integration/CrossPlatformConsistency.test.ts +855 -0
- package/src/__tests__/integration/EndToEndWorkflow.test.ts +601 -0
- package/src/__tests__/integration/ErrorHandling.test.ts +459 -0
- package/src/__tests__/integration/OpacityPlatformTranslation.test.ts +364 -0
- package/src/__tests__/integration/PerformanceValidation.test.ts +887 -0
- package/src/__tests__/integration/SemanticTokenGeneration.test.ts +451 -0
- package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +123 -0
- package/src/__tests__/integration/TokenSystemIntegration.test.ts +890 -0
- package/src/__tests__/integration/ValidationPipeline.test.ts +404 -0
- package/src/__tests__/package-drift-validation.test.ts +249 -0
- package/src/__tests__/performance/GenerationPerformance.test.ts +409 -0
- package/src/__tests__/performance/OptimizationValidation.test.ts +509 -0
- package/src/__tests__/platform-parity/ProgressPlatformParity.test.ts +546 -0
- package/src/__tests__/spec073-opacity-architecture.test.ts +344 -0
- package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +467 -0
- package/src/__tests__/stemma-system/composition-compliance-validation.test.ts +162 -0
- package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +156 -0
- package/src/__tests__/stemma-system/contract-existence-validation.test.ts +43 -0
- package/src/__tests__/stemma-system/contract-test-reporter.ts +269 -0
- package/src/__tests__/stemma-system/cross-platform-consistency.test.ts +564 -0
- package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +503 -0
- package/src/__tests__/stemma-system/mcp-component-integration.test.ts +445 -0
- package/src/analytics/PrimitiveTokenFallbackTracker.ts +228 -0
- package/src/analytics/SemanticTokenUsageTracker.ts +193 -0
- package/src/analytics/StrategicFlexibilityTracker.ts +226 -0
- package/src/analytics/TokenUsageTracker.ts +177 -0
- package/src/analytics/UsagePatternAnalyzer.ts +177 -0
- package/src/analytics/__tests__/UsageTracking.test.ts +647 -0
- package/src/analytics/index.ts +42 -0
- package/src/assets/fonts/__tests__/androidFontLoadingValidation.test.ts +600 -0
- package/src/assets/fonts/__tests__/fontLoading.test.ts +341 -0
- package/src/assets/fonts/__tests__/iosFontConfiguration.test.ts +256 -0
- package/src/assets/fonts/__tests__/iosFontLoadingValidation.test.ts +465 -0
- package/src/assets/fonts/commit-mono/CommitMono-400-Italic.otf +0 -0
- package/src/assets/fonts/commit-mono/CommitMono-400-Regular.otf +0 -0
- package/src/assets/fonts/commit-mono/CommitMono-700-Italic.otf +0 -0
- package/src/assets/fonts/commit-mono/CommitMono-700-Regular.otf +0 -0
- package/src/assets/fonts/commit-mono/commit-mono.css +45 -0
- package/src/assets/fonts/commit-mono/custom-settings.json +1 -0
- package/src/assets/fonts/commit-mono/installation.txt +11 -0
- package/src/assets/fonts/commit-mono/license.txt +92 -0
- package/src/assets/fonts/figtree/Figtree-Italic-VariableFont_wght.ttf +0 -0
- package/src/assets/fonts/figtree/Figtree-VariableFont_wght.ttf +0 -0
- package/src/assets/fonts/figtree/OFL.txt +93 -0
- package/src/assets/fonts/figtree/README.txt +77 -0
- package/src/assets/fonts/figtree/figtree.css +27 -0
- package/src/assets/fonts/figtree/static/Figtree-Black.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-BlackItalic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-Bold.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-BoldItalic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-ExtraBold.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-ExtraBoldItalic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-Italic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-Light.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-LightItalic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-Medium.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-MediumItalic.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-Regular.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-SemiBold.ttf +0 -0
- package/src/assets/fonts/figtree/static/Figtree-SemiBoldItalic.ttf +0 -0
- package/src/assets/fonts/inter/Inter-Bold.ttf +0 -0
- package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-Medium.ttf +0 -0
- package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-Regular.ttf +0 -0
- package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
- package/src/assets/fonts/inter/Inter-SemiBold.ttf +0 -0
- package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/src/assets/fonts/inter/inter.css +49 -0
- package/src/assets/fonts/rajdhani/OFL.txt +91 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Bold.ttf +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Bold.woff +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Bold.woff2 +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Light.ttf +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Medium.ttf +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Medium.woff +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Medium.woff2 +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Regular.ttf +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Regular.woff +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-Regular.woff2 +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.ttf +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.woff +0 -0
- package/src/assets/fonts/rajdhani/Rajdhani-SemiBold.woff2 +0 -0
- package/src/assets/fonts/rajdhani/rajdhani.css +53 -0
- package/src/blend/BlendCalculator.ts +120 -0
- package/src/blend/ColorSpaceUtils.ts +325 -0
- package/src/blend/OklchBlendCalculator.ts +79 -0
- package/src/blend/ThemeAwareBlendUtilities.android.kt +367 -0
- package/src/blend/ThemeAwareBlendUtilities.ios.swift +325 -0
- package/src/blend/ThemeAwareBlendUtilities.web.ts +315 -0
- package/src/blend/__tests__/BlendCalculator.test.ts +393 -0
- package/src/blend/__tests__/BlendUtilities.property.test.ts +600 -0
- package/src/blend/__tests__/ColorSpaceUtils.test.ts +885 -0
- package/src/blend/__tests__/InteractionStateAudit.test.ts +235 -0
- package/src/blend/__tests__/OklchBlendCalculator.test.ts +134 -0
- package/src/blend/__tests__/ThemeAwareBlendUtilities.test.ts +200 -0
- package/src/blend/__tests__/ThemeSwitching.test.ts +508 -0
- package/src/blend/index.ts +37 -0
- package/src/browser-entry.ts +270 -0
- package/src/build/.gitkeep +1 -0
- package/src/build/BuildOrchestrator.ts +663 -0
- package/src/build/__tests__/AndroidBuildIntegration.test.ts +437 -0
- package/src/build/__tests__/AndroidMotionTokenGeneration.test.ts +256 -0
- package/src/build/__tests__/BuildOrchestrator.test.ts +562 -0
- package/src/build/__tests__/MotionTokenCrossPlatformIntegration.test.ts +424 -0
- package/src/build/__tests__/WebCSSTokenGeneration.test.ts +271 -0
- package/src/build/__tests__/WebMotionTokenGeneration.test.ts +305 -0
- package/src/build/__tests__/WebNPMPackageStructure.test.ts +447 -0
- package/src/build/__tests__/iOSMotionTokenGeneration.test.ts +298 -0
- package/src/build/errors/BuildError.ts +140 -0
- package/src/build/errors/ErrorDocumentation.ts +638 -0
- package/src/build/errors/ErrorHandler.ts +406 -0
- package/src/build/errors/ErrorReporter.ts +573 -0
- package/src/build/errors/PlatformGenerationError.ts +201 -0
- package/src/build/errors/README.md +486 -0
- package/src/build/errors/RecoveryStrategy.ts +393 -0
- package/src/build/errors/TokenGenerationError.ts +196 -0
- package/src/build/errors/TokenReferenceError.ts +204 -0
- package/src/build/errors/__tests__/BuildError.test.ts +212 -0
- package/src/build/errors/__tests__/ErrorDocumentation.example.ts +272 -0
- package/src/build/errors/__tests__/ErrorDocumentation.test.ts +458 -0
- package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +295 -0
- package/src/build/errors/__tests__/ErrorHandler.test.ts +497 -0
- package/src/build/errors/__tests__/ErrorReporter.test.ts +581 -0
- package/src/build/errors/__tests__/MotionTokenErrors.test.ts +392 -0
- package/src/build/errors/__tests__/RecoveryStrategy.test.ts +643 -0
- package/src/build/errors/index.ts +90 -0
- package/src/build/index.ts +73 -0
- package/src/build/orchestration/IncrementalBuilder.ts +532 -0
- package/src/build/orchestration/ParallelExecutor.ts +336 -0
- package/src/build/orchestration/ProgressTracker.ts +582 -0
- package/src/build/orchestration/SequentialExecutor.ts +305 -0
- package/src/build/orchestration/__tests__/IncrementalBuilder.test.ts +354 -0
- package/src/build/orchestration/__tests__/ParallelExecutor.integration.test.ts +295 -0
- package/src/build/orchestration/__tests__/ParallelExecutor.test.ts +493 -0
- package/src/build/orchestration/__tests__/ProgressTracker.test.ts +529 -0
- package/src/build/orchestration/__tests__/SequentialExecutor.integration.test.ts +202 -0
- package/src/build/orchestration/__tests__/SequentialExecutor.test.ts +232 -0
- package/src/build/orchestration/index.ts +35 -0
- package/src/build/platforms/.gitkeep +1 -0
- package/src/build/platforms/AndroidBuilder.ts +1366 -0
- package/src/build/platforms/AndroidShadowGenerator.ts +394 -0
- package/src/build/platforms/IOSShadowGenerator.ts +324 -0
- package/src/build/platforms/PlatformBuilder.ts +131 -0
- package/src/build/platforms/WebBuilder.ts +1414 -0
- package/src/build/platforms/WebShadowGenerator.ts +288 -0
- package/src/build/platforms/__tests__/AndroidBuilder.tokenGeneration.test.ts +146 -0
- package/src/build/platforms/__tests__/AndroidShadowGenerator.test.ts +195 -0
- package/src/build/platforms/__tests__/IOSShadowGenerator.test.ts +156 -0
- package/src/build/platforms/__tests__/WebShadowGenerator.test.ts +123 -0
- package/src/build/platforms/__tests__/iOSBuilder.test.ts +1599 -0
- package/src/build/platforms/iOSBuilder.ts +1746 -0
- package/src/build/platforms/index.ts +9 -0
- package/src/build/product/ProductTokenGenerator.ts +162 -0
- package/src/build/product/TokenIndexReader.ts +78 -0
- package/src/build/product/__tests__/KotlinEmitter.test.ts +109 -0
- package/src/build/product/__tests__/ProductTokenGenerator.test.ts +135 -0
- package/src/build/product/__tests__/SwiftEmitter.test.ts +90 -0
- package/src/build/product/__tests__/TokenIndexReader.test.ts +85 -0
- package/src/build/product/__tests__/WebEmitter.test.ts +111 -0
- package/src/build/product/__tests__/fixtures/tokens/layout.yaml +21 -0
- package/src/build/product/__tests__/fixtures/tokens/motion.yaml +11 -0
- package/src/build/product/__tests__/fixtures/tokens/visualization.yaml +8 -0
- package/src/build/product/emitters/KotlinEmitter.ts +83 -0
- package/src/build/product/emitters/SwiftEmitter.ts +95 -0
- package/src/build/product/emitters/WebEmitter.ts +69 -0
- package/src/build/tokens/.gitkeep +1 -0
- package/src/build/tokens/ComponentToken.ts +285 -0
- package/src/build/tokens/ComponentTokenGenerator.ts +376 -0
- package/src/build/tokens/PlatformTokens.ts +188 -0
- package/src/build/tokens/TokenIntegrator.ts +410 -0
- package/src/build/tokens/TokenSelection.ts +130 -0
- package/src/build/tokens/TokenSelector.ts +394 -0
- package/src/build/tokens/UnitConverter.ts +320 -0
- package/src/build/tokens/__tests__/ClassInvariantGuard.test.ts +167 -0
- package/src/build/tokens/__tests__/ComponentTokenGenerator.test.ts +285 -0
- package/src/build/tokens/__tests__/TokenIntegrator.test.ts +319 -0
- package/src/build/tokens/__tests__/TokenSelector.test.ts +264 -0
- package/src/build/tokens/__tests__/UnitConverter.applyScaleWithRounding.test.ts +160 -0
- package/src/build/tokens/__tests__/UnitConverter.test.ts +331 -0
- package/src/build/tokens/__tests__/brand-dual-instance.test.ts +135 -0
- package/src/build/tokens/__tests__/defineComponentTokens.test.ts +440 -0
- package/src/build/tokens/defineComponentTokens.ts +286 -0
- package/src/build/tokens/index.ts +44 -0
- package/src/build/tokens/types.ts +26 -0
- package/src/build/types/.gitkeep +1 -0
- package/src/build/types/BuildConfig.ts +123 -0
- package/src/build/types/BuildOrchestrator.ts +114 -0
- package/src/build/types/BuildResult.ts +125 -0
- package/src/build/types/Platform.ts +49 -0
- package/src/build/types/index.ts +39 -0
- package/src/build/validation/.gitkeep +1 -0
- package/src/build/validation/AndroidBuildValidator.ts +630 -0
- package/src/build/validation/CrossPlatformValidationReporter.ts +1267 -0
- package/src/build/validation/InterfaceContractValidator.ts +417 -0
- package/src/build/validation/InterfaceValidator.ts +326 -0
- package/src/build/validation/MathematicalConsistencyValidator.ts +874 -0
- package/src/build/validation/MethodSignatureValidator.ts +374 -0
- package/src/build/validation/PropertyTypeValidator.ts +312 -0
- package/src/build/validation/TokenComparator.ts +796 -0
- package/src/build/validation/ValidationReporter.example.ts +310 -0
- package/src/build/validation/ValidationReporter.ts +745 -0
- package/src/build/validation/WebBuildValidator.ts +583 -0
- package/src/build/validation/__tests__/AndroidBuildValidator.test.ts +522 -0
- package/src/build/validation/__tests__/CrossPlatformValidationReporter.test.ts +593 -0
- package/src/build/validation/__tests__/InterfaceContractValidator.test.ts +647 -0
- package/src/build/validation/__tests__/InterfaceValidation.functional.test.ts +360 -0
- package/src/build/validation/__tests__/InterfaceValidator.test.ts +318 -0
- package/src/build/validation/__tests__/MethodSignatureValidator.test.ts +625 -0
- package/src/build/validation/__tests__/MotionTokenCrossPlatformValidation.test.ts +305 -0
- package/src/build/validation/__tests__/MotionTokenValidation.test.ts +309 -0
- package/src/build/validation/__tests__/PropertyTypeValidator.test.ts +557 -0
- package/src/build/validation/__tests__/TokenComparator.test.ts +358 -0
- package/src/build/validation/__tests__/ValidationReporter.integration.test.ts +424 -0
- package/src/build/validation/__tests__/ValidationReporter.test.ts +793 -0
- package/src/build/validation/__tests__/WebBuildValidator.test.ts +495 -0
- package/src/build/validation/iOSBuildValidator.ts +783 -0
- package/src/build/validation/index.ts +74 -0
- package/src/build/validation/types/InterfaceDefinition.ts +101 -0
- package/src/build/validation/types/ValidationResult.ts +114 -0
- package/src/build/workflow/BuildMode.ts +336 -0
- package/src/build/workflow/CICDIntegration.ts +503 -0
- package/src/build/workflow/ConfigHelpers.example.ts +317 -0
- package/src/build/workflow/ConfigHelpers.ts +834 -0
- package/src/build/workflow/README.md +327 -0
- package/src/build/workflow/SourceMapGenerator.ts +362 -0
- package/src/build/workflow/__tests__/BuildMode.test.ts +544 -0
- package/src/build/workflow/__tests__/CICDIntegration.test.ts +591 -0
- package/src/build/workflow/__tests__/ConfigHelpers.test.ts +559 -0
- package/src/build/workflow/__tests__/SourceMapGenerator.test.ts +421 -0
- package/src/build/workflow/index.ts +42 -0
- package/src/cli/__tests__/Applier.test.ts +202 -0
- package/src/cli/__tests__/Classifier.test.ts +187 -0
- package/src/cli/__tests__/FileScanner.test.ts +108 -0
- package/src/cli/__tests__/IgnoreFilter.test.ts +92 -0
- package/src/cli/__tests__/Manifest.test.ts +107 -0
- package/src/cli/__tests__/PackageResolver.test.ts +66 -0
- package/src/cli/__tests__/Prompter.test.ts +165 -0
- package/src/cli/__tests__/Reporter.test.ts +128 -0
- package/src/cli/__tests__/backward-compat.test.ts +142 -0
- package/src/cli/__tests__/figma-extract.test.ts +342 -0
- package/src/cli/__tests__/figma-push.test.ts +350 -0
- package/src/cli/__tests__/init.test.ts +259 -0
- package/src/cli/__tests__/loadComponentTokens.test.ts +187 -0
- package/src/cli/__tests__/pipeline-independence.test.ts +127 -0
- package/src/cli/__tests__/product-only.test.ts +130 -0
- package/src/cli/__tests__/resolveTokens.test.ts +88 -0
- package/src/cli/__tests__/staleness.test.ts +132 -0
- package/src/cli/__tests__/sync.test.ts +199 -0
- package/src/cli/__tests__/validate.test.ts +69 -0
- package/src/cli/designerpunk.ts +410 -0
- package/src/cli/figma-extract.ts +331 -0
- package/src/cli/figma-push.ts +288 -0
- package/src/cli/generateProductTokens.ts +69 -0
- package/src/cli/init.ts +481 -0
- package/src/cli/loadComponentTokens.ts +145 -0
- package/src/cli/resolveTokens.ts +123 -0
- package/src/cli/shared/mcpDataRoots.ts +122 -0
- package/src/cli/shared/resolvePackageRoot.ts +58 -0
- package/src/cli/shared/transforms.ts +18 -0
- package/src/cli/staleness.ts +81 -0
- package/src/cli/sync/Applier.ts +128 -0
- package/src/cli/sync/Classifier.ts +130 -0
- package/src/cli/sync/FileScanner.ts +64 -0
- package/src/cli/sync/IgnoreFilter.ts +44 -0
- package/src/cli/sync/Manifest.ts +64 -0
- package/src/cli/sync/PackageResolver.ts +40 -0
- package/src/cli/sync/Prompter.ts +173 -0
- package/src/cli/sync/Reporter.ts +78 -0
- package/src/cli/sync/SteeringDirCheck.ts +166 -0
- package/src/cli/sync/index.ts +115 -0
- package/src/cli/templates/mcp-config.json.template +46 -0
- package/src/cli/validate.ts +135 -0
- package/src/cli/validateProductTokens.ts +55 -0
- package/src/color/OklchConverter.ts +284 -0
- package/src/color/OklchValidator.ts +186 -0
- package/src/color/__tests__/OklchConverter.test.ts +232 -0
- package/src/color/__tests__/OklchRegression.test.ts +101 -0
- package/src/color/__tests__/OklchValidator.test.ts +199 -0
- package/src/color/__tests__/WcagContrast.test.ts +76 -0
- package/src/components/__tests__/BlendTokenUsageValidation.test.ts +726 -0
- package/src/components/__tests__/DynamicImportGuard.test.ts +226 -0
- package/src/components/__tests__/ExtensionLintPolicy.test.ts +113 -0
- package/src/components/__tests__/TokenCompliance.test.ts +921 -0
- package/src/components/__tests__/colorInheritanceValidation.test.ts +267 -0
- package/src/components/__tests__/componentTypographyInheritance.test.ts +326 -0
- package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +113 -0
- package/src/components/core/Avatar-Base/README.md +366 -0
- package/src/components/core/Avatar-Base/__tests__/.gitkeep +3 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +483 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.icon-integration.test.ts +656 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +393 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.lifecycle.test.ts +545 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.rendering.test.ts +505 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +692 -0
- package/src/components/core/Avatar-Base/avatar.tokens.ts +376 -0
- package/src/components/core/Avatar-Base/component-meta.yaml +20 -0
- package/src/components/core/Avatar-Base/contracts.yaml +212 -0
- package/src/components/core/Avatar-Base/index.ts +25 -0
- package/src/components/core/Avatar-Base/platforms/android/.gitkeep +3 -0
- package/src/components/core/Avatar-Base/platforms/android/Avatar.android.kt +593 -0
- package/src/components/core/Avatar-Base/platforms/android/AvatarPreview.kt +1106 -0
- package/src/components/core/Avatar-Base/platforms/android/HexagonShape.kt +297 -0
- package/src/components/core/Avatar-Base/platforms/ios/.gitkeep +3 -0
- package/src/components/core/Avatar-Base/platforms/ios/Avatar.ios.swift +815 -0
- package/src/components/core/Avatar-Base/platforms/ios/AvatarPreview.swift +773 -0
- package/src/components/core/Avatar-Base/platforms/ios/RoundedPointyTopHexagon.swift +360 -0
- package/src/components/core/Avatar-Base/platforms/web/.gitkeep +3 -0
- package/src/components/core/Avatar-Base/platforms/web/Avatar.styles.css +595 -0
- package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +873 -0
- package/src/components/core/Avatar-Base/platforms/web/hexagon-clip.svg +87 -0
- package/src/components/core/Avatar-Base/tokens/.gitkeep +4 -0
- package/src/components/core/Avatar-Base/types.ts +86 -0
- package/src/components/core/Badge-Count-Base/Badge-Count-Base.schema.yaml +122 -0
- package/src/components/core/Badge-Count-Base/README.md +323 -0
- package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.stemma.test.ts +548 -0
- package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.test.ts +452 -0
- package/src/components/core/Badge-Count-Base/__tests__/test-utils.ts +244 -0
- package/src/components/core/Badge-Count-Base/component-meta.yaml +23 -0
- package/src/components/core/Badge-Count-Base/contracts.yaml +173 -0
- package/src/components/core/Badge-Count-Base/index.ts +37 -0
- package/src/components/core/Badge-Count-Base/platforms/android/.gitkeep +1 -0
- package/src/components/core/Badge-Count-Base/platforms/android/BadgeCountBase.android.kt +581 -0
- package/src/components/core/Badge-Count-Base/platforms/ios/.gitkeep +1 -0
- package/src/components/core/Badge-Count-Base/platforms/ios/BadgeCountBase.ios.swift +502 -0
- package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.styles.css +148 -0
- package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.ts +363 -0
- package/src/components/core/Badge-Count-Base/types.ts +150 -0
- package/src/components/core/Badge-Count-Notification/Badge-Count-Notification.schema.yaml +108 -0
- package/src/components/core/Badge-Count-Notification/README.md +396 -0
- package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.stemma.test.ts +571 -0
- package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.test.ts +490 -0
- package/src/components/core/Badge-Count-Notification/__tests__/test-utils.ts +256 -0
- package/src/components/core/Badge-Count-Notification/component-meta.yaml +20 -0
- package/src/components/core/Badge-Count-Notification/contracts.yaml +92 -0
- package/src/components/core/Badge-Count-Notification/index.ts +60 -0
- package/src/components/core/Badge-Count-Notification/platforms/android/.gitkeep +2 -0
- package/src/components/core/Badge-Count-Notification/platforms/android/BadgeCountNotification.android.kt +818 -0
- package/src/components/core/Badge-Count-Notification/platforms/ios/BadgeCountNotification.ios.swift +660 -0
- package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.styles.css +182 -0
- package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.ts +401 -0
- package/src/components/core/Badge-Count-Notification/tokens.ts +124 -0
- package/src/components/core/Badge-Count-Notification/types.ts +119 -0
- package/src/components/core/Badge-Label-Base/Badge-Label-Base.schema.yaml +131 -0
- package/src/components/core/Badge-Label-Base/README.md +251 -0
- package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.stemma.test.ts +549 -0
- package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.test.ts +439 -0
- package/src/components/core/Badge-Label-Base/__tests__/test-utils.ts +269 -0
- package/src/components/core/Badge-Label-Base/__tests__/tokens.test.ts +88 -0
- package/src/components/core/Badge-Label-Base/component-meta.yaml +21 -0
- package/src/components/core/Badge-Label-Base/contracts.yaml +148 -0
- package/src/components/core/Badge-Label-Base/index.ts +41 -0
- package/src/components/core/Badge-Label-Base/platforms/android/BadgeLabelBase.android.kt +452 -0
- package/src/components/core/Badge-Label-Base/platforms/ios/BadgeLabelBase.ios.swift +483 -0
- package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.styles.css +166 -0
- package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.ts +340 -0
- package/src/components/core/Badge-Label-Base/tokens.ts +80 -0
- package/src/components/core/Badge-Label-Base/types.ts +148 -0
- package/src/components/core/Button-CTA/Button-CTA.schema.yaml +259 -0
- package/src/components/core/Button-CTA/Button-CTA.tokens.ts +79 -0
- package/src/components/core/Button-CTA/README.md +296 -0
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.alignment.test.ts +355 -0
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +752 -0
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.tokens.test.ts +89 -0
- package/src/components/core/Button-CTA/__tests__/setup.test.ts +211 -0
- package/src/components/core/Button-CTA/__tests__/test-utils.ts +187 -0
- package/src/components/core/Button-CTA/component-meta.yaml +25 -0
- package/src/components/core/Button-CTA/contracts.yaml +140 -0
- package/src/components/core/Button-CTA/examples/BasicUsage.html +145 -0
- package/src/components/core/Button-CTA/examples/BasicUsage.tsx +246 -0
- package/src/components/core/Button-CTA/examples/Variants.html +263 -0
- package/src/components/core/Button-CTA/examples/WithIcon.html +166 -0
- package/src/components/core/Button-CTA/index.ts +20 -0
- package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +405 -0
- package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +552 -0
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +419 -0
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +697 -0
- package/src/components/core/Button-CTA/platforms/web/__tests__/ButtonCTA.icon-integration.test.ts +476 -0
- package/src/components/core/Button-CTA/types.ts +257 -0
- package/src/components/core/Button-Icon/Button-Icon.schema.yaml +114 -0
- package/src/components/core/Button-Icon/README.md +371 -0
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.alignment.test.ts +358 -0
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties-8-13.test.ts +953 -0
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties.test.ts +920 -0
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.stemma.test.ts +622 -0
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.unit.test.ts +560 -0
- package/src/components/core/Button-Icon/__tests__/setup.test.ts +361 -0
- package/src/components/core/Button-Icon/__tests__/test-utils.ts +248 -0
- package/src/components/core/Button-Icon/buttonIcon.tokens.ts +202 -0
- package/src/components/core/Button-Icon/component-meta.yaml +24 -0
- package/src/components/core/Button-Icon/contracts.yaml +228 -0
- package/src/components/core/Button-Icon/platforms/android/ButtonIcon.android.kt +548 -0
- package/src/components/core/Button-Icon/platforms/ios/ButtonIcon.ios.swift +482 -0
- package/src/components/core/Button-Icon/platforms/web/.gitkeep +4 -0
- package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.css +600 -0
- package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.ts +625 -0
- package/src/components/core/Button-Icon/types.ts +186 -0
- package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.schema.yaml +138 -0
- package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.ts +112 -0
- package/src/components/core/Button-VerticalList-Item/README.md +450 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/.gitkeep +2 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.alignment.test.ts +271 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.failLoudly.test.ts +106 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.integration.test.ts +480 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.properties.test.ts +634 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.unit.test.ts +746 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/rtlSupport.test.ts +206 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/test-utils.ts +297 -0
- package/src/components/core/Button-VerticalList-Item/__tests__/visualStateMapping.test.ts +419 -0
- package/src/components/core/Button-VerticalList-Item/component-meta.yaml +24 -0
- package/src/components/core/Button-VerticalList-Item/contracts.yaml +138 -0
- package/src/components/core/Button-VerticalList-Item/index.ts +49 -0
- package/src/components/core/Button-VerticalList-Item/platforms/android/.gitkeep +2 -0
- package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItem.android.kt +594 -0
- package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItemTest.kt +1109 -0
- package/src/components/core/Button-VerticalList-Item/platforms/android/VisualStateStyles.kt +585 -0
- package/src/components/core/Button-VerticalList-Item/platforms/ios/.gitkeep +2 -0
- package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItem.ios.swift +853 -0
- package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItemTests.swift +794 -0
- package/src/components/core/Button-VerticalList-Item/platforms/ios/VisualStateStyles.swift +453 -0
- package/src/components/core/Button-VerticalList-Item/platforms/web/.gitkeep +2 -0
- package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.styles.css +459 -0
- package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts +1030 -0
- package/src/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.ts +411 -0
- package/src/components/core/Button-VerticalList-Item/types.ts +338 -0
- package/src/components/core/Button-VerticalList-Set/Button-VerticalList-Set.schema.yaml +110 -0
- package/src/components/core/Button-VerticalList-Set/README.md +578 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/.gitkeep +5 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.integration.test.ts +676 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property.test.ts +786 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property2.test.ts +1109 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.unit.test.ts +924 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/animationTiming.test.ts +182 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/crossPlatformConsistency.test.ts +685 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/deriveItemStates.test.ts +179 -0
- package/src/components/core/Button-VerticalList-Set/__tests__/validation.test.ts +275 -0
- package/src/components/core/Button-VerticalList-Set/component-meta.yaml +22 -0
- package/src/components/core/Button-VerticalList-Set/contracts.yaml +170 -0
- package/src/components/core/Button-VerticalList-Set/index.ts +32 -0
- package/src/components/core/Button-VerticalList-Set/platforms/android/.gitkeep +0 -0
- package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSet.android.kt +805 -0
- package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetPreview.kt +390 -0
- package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetTest.kt +961 -0
- package/src/components/core/Button-VerticalList-Set/platforms/ios/.gitkeep +0 -0
- package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSet.ios.swift +1127 -0
- package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetPreview.swift +664 -0
- package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetTests.swift +475 -0
- package/src/components/core/Button-VerticalList-Set/platforms/web/.gitkeep +4 -0
- package/src/components/core/Button-VerticalList-Set/platforms/web/Button-VerticalList-Set.styles.css +167 -0
- package/src/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.ts +1446 -0
- package/src/components/core/Button-VerticalList-Set/types.ts +788 -0
- package/src/components/core/Chip-Base/Chip-Base.schema.yaml +214 -0
- package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +521 -0
- package/src/components/core/Chip-Base/component-meta.yaml +25 -0
- package/src/components/core/Chip-Base/contracts.yaml +201 -0
- package/src/components/core/Chip-Base/index.ts +40 -0
- package/src/components/core/Chip-Base/platforms/android/ChipBase.android.kt +379 -0
- package/src/components/core/Chip-Base/platforms/ios/.gitkeep +3 -0
- package/src/components/core/Chip-Base/platforms/ios/ChipBase.ios.swift +420 -0
- package/src/components/core/Chip-Base/platforms/web/.gitkeep +5 -0
- package/src/components/core/Chip-Base/platforms/web/ChipBase.styles.css +280 -0
- package/src/components/core/Chip-Base/platforms/web/ChipBase.web.ts +480 -0
- package/src/components/core/Chip-Base/types.ts +189 -0
- package/src/components/core/Chip-Filter/Chip-Filter.schema.yaml +181 -0
- package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +579 -0
- package/src/components/core/Chip-Filter/component-meta.yaml +20 -0
- package/src/components/core/Chip-Filter/contracts.yaml +76 -0
- package/src/components/core/Chip-Filter/index.ts +34 -0
- package/src/components/core/Chip-Filter/platforms/android/ChipFilter.android.kt +484 -0
- package/src/components/core/Chip-Filter/platforms/ios/ChipFilter.ios.swift +510 -0
- package/src/components/core/Chip-Filter/platforms/web/ChipFilter.styles.css +105 -0
- package/src/components/core/Chip-Filter/platforms/web/ChipFilter.web.ts +539 -0
- package/src/components/core/Chip-Filter/types.ts +47 -0
- package/src/components/core/Chip-Input/Chip-Input.schema.yaml +173 -0
- package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +459 -0
- package/src/components/core/Chip-Input/component-meta.yaml +20 -0
- package/src/components/core/Chip-Input/contracts.yaml +75 -0
- package/src/components/core/Chip-Input/index.ts +35 -0
- package/src/components/core/Chip-Input/platforms/android/.gitkeep +3 -0
- package/src/components/core/Chip-Input/platforms/android/ChipInput.android.kt +409 -0
- package/src/components/core/Chip-Input/platforms/ios/.gitkeep +3 -0
- package/src/components/core/Chip-Input/platforms/ios/ChipInput.ios.swift +449 -0
- package/src/components/core/Chip-Input/platforms/web/ChipInput.styles.css +99 -0
- package/src/components/core/Chip-Input/platforms/web/ChipInput.web.ts +485 -0
- package/src/components/core/Chip-Input/types.ts +35 -0
- package/src/components/core/Container-Base/Container-Base.schema.yaml +411 -0
- package/src/components/core/Container-Base/README.md +450 -0
- package/src/components/core/Container-Base/__tests__/ContainerBase.test.ts +712 -0
- package/src/components/core/Container-Base/component-meta.yaml +22 -0
- package/src/components/core/Container-Base/contracts.yaml +118 -0
- package/src/components/core/Container-Base/index.ts +47 -0
- package/src/components/core/Container-Base/platforms/android/ContainerBase.android.kt +654 -0
- package/src/components/core/Container-Base/platforms/android/TokenMapping.kt +558 -0
- package/src/components/core/Container-Base/platforms/ios/ContainerBase.ios.swift +699 -0
- package/src/components/core/Container-Base/platforms/ios/TokenMapping.swift +493 -0
- package/src/components/core/Container-Base/platforms/web/ContainerBase.web.ts +405 -0
- package/src/components/core/Container-Base/platforms/web/styles.css +198 -0
- package/src/components/core/Container-Base/platforms/web/token-mapping.ts +573 -0
- package/src/components/core/Container-Base/tokens.ts +241 -0
- package/src/components/core/Container-Base/types.ts +307 -0
- package/src/components/core/Container-Card-Base/Container-Card-Base.schema.yaml +374 -0
- package/src/components/core/Container-Card-Base/README.md +506 -0
- package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.composition.test.ts +167 -0
- package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.test.ts +646 -0
- package/src/components/core/Container-Card-Base/component-meta.yaml +21 -0
- package/src/components/core/Container-Card-Base/contracts.yaml +129 -0
- package/src/components/core/Container-Card-Base/index.ts +64 -0
- package/src/components/core/Container-Card-Base/platforms/android/ContainerCardBase.android.kt +800 -0
- package/src/components/core/Container-Card-Base/platforms/ios/ContainerCardBase.ios.swift +962 -0
- package/src/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.ts +373 -0
- package/src/components/core/Container-Card-Base/tokens.ts +224 -0
- package/src/components/core/Container-Card-Base/types.ts +332 -0
- package/src/components/core/Icon-Base/Icon-Base.schema.yaml +206 -0
- package/src/components/core/Icon-Base/README.md +168 -0
- package/src/components/core/Icon-Base/__tests__/IconBase.test.ts +192 -0
- package/src/components/core/Icon-Base/component-meta.yaml +22 -0
- package/src/components/core/Icon-Base/contracts.yaml +89 -0
- package/src/components/core/Icon-Base/index.ts +34 -0
- package/src/components/core/Icon-Base/platforms/android/IconBase.android.kt +240 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/README.md +255 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/alert_circle.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_down.xml +17 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_left.xml +17 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_right.xml +17 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/arrow_up.xml +17 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/award.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/bell.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/briefcase.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/calendar.xml +34 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/check.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/check_circle.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_down.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_left.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/chevron_right.xml +12 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/circle.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/clock.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/credit_card.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/dollar_sign.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/external_link.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/eye.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/eye_off.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/file_text.xml +41 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/filter.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/globe.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/heart.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/info.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/mail.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/map_pin.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/minus.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/more_horizontal.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/more_vertical.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/phone.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/plus.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/refresh_cw.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/save.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/search.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/settings.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/share.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/share_2.xml +41 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/shield.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/smartphone.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/smile.xml +34 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/star.xml +13 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/trending_up.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/user.xml +20 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/user_check.xml +27 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/user_x.xml +34 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/users.xml +34 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/wifi.xml +34 -0
- package/src/components/core/Icon-Base/platforms/android/res/drawable/x.xml +20 -0
- package/src/components/core/Icon-Base/platforms/ios/ASSET_CATALOG_SETUP.md +239 -0
- package/src/components/core/Icon-Base/platforms/ios/IconBase.ios.swift +296 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Contents.json +6 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/Contents.json +9 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/alert-circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/arrow-down.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/arrow-left.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/arrow-right.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/arrow-up.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/award.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/bell.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/briefcase.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/calendar.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/check-circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/check.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/chevron-down.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/chevron-left.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/chevron-right.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/clock.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/credit-card.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/dollar-sign.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/external-link.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/eye-off.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/eye.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/file-text.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/filter.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/globe.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/heart.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/info.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/mail.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/map-pin.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/minus.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/more-horizontal.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/more-vertical.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/phone.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/plus.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/refresh-cw.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/save.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/search.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/settings.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/share-2.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/share.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/shield.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/smartphone.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/smile.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/star.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/trending-up.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/user-check.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/user-x.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/user.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/users.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/wifi.svg +1 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/Contents.json +15 -0
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/x.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/IconBase.web.ts +553 -0
- package/src/components/core/Icon-Base/platforms/web/assets/alert-circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-down.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-left.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-right.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-up.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/award.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/bell.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/briefcase.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/calendar.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/check-circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/check.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-down.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-left.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-right.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/circle.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/clock.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/credit-card.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/dollar-sign.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/external-link.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/eye-off.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/eye.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/file-text.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/filter.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/globe.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/heart.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/info.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/mail.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/map-pin.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/minus.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/more-horizontal.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/more-vertical.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/phone.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/plus.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/refresh-cw.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/save.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/search.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/settings.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/share-2.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/share.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/shield.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/smartphone.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/smile.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/star.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/trending-up.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/user-check.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/user-x.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/user.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/users.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/wifi.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/assets/x.svg +1 -0
- package/src/components/core/Icon-Base/platforms/web/styles.css +203 -0
- package/src/components/core/Icon-Base/types.ts +338 -0
- package/src/components/core/Input-Checkbox-Base/Input-Checkbox-Base.schema.yaml +147 -0
- package/src/components/core/Input-Checkbox-Base/README.md +390 -0
- package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.stemma.test.ts +552 -0
- package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.test.ts +878 -0
- package/src/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.ts +37 -0
- package/src/components/core/Input-Checkbox-Base/component-meta.yaml +39 -0
- package/src/components/core/Input-Checkbox-Base/contracts.yaml +165 -0
- package/src/components/core/Input-Checkbox-Base/platforms/android/InputCheckboxBase.android.kt +777 -0
- package/src/components/core/Input-Checkbox-Base/platforms/ios/InputCheckboxBase.ios.swift +612 -0
- package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.css +477 -0
- package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.ts +561 -0
- package/src/components/core/Input-Checkbox-Base/types.ts +399 -0
- package/src/components/core/Input-Checkbox-Legal/Input-Checkbox-Legal.schema.yaml +81 -0
- package/src/components/core/Input-Checkbox-Legal/README.md +554 -0
- package/src/components/core/Input-Checkbox-Legal/__tests__/InputCheckboxLegal.test.ts +727 -0
- package/src/components/core/Input-Checkbox-Legal/component-meta.yaml +39 -0
- package/src/components/core/Input-Checkbox-Legal/contracts.yaml +55 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/android/.gitkeep +2 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/android/InputCheckboxLegal.android.kt +408 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/ios/.gitkeep +2 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/ios/InputCheckboxLegal.ios.swift +387 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.css +112 -0
- package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.ts +505 -0
- package/src/components/core/Input-Checkbox-Legal/types.ts +348 -0
- package/src/components/core/Input-Radio-Base/.gitkeep +2 -0
- package/src/components/core/Input-Radio-Base/Input-Radio-Base.schema.yaml +139 -0
- package/src/components/core/Input-Radio-Base/README.md +427 -0
- package/src/components/core/Input-Radio-Base/__tests__/.gitkeep +1 -0
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.form.test.ts +299 -0
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.stemma.test.ts +543 -0
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.test.ts +429 -0
- package/src/components/core/Input-Radio-Base/component-meta.yaml +28 -0
- package/src/components/core/Input-Radio-Base/contracts.yaml +140 -0
- package/src/components/core/Input-Radio-Base/platforms/android/InputRadioBase.android.kt +685 -0
- package/src/components/core/Input-Radio-Base/platforms/ios/.gitkeep +1 -0
- package/src/components/core/Input-Radio-Base/platforms/ios/InputRadioBase.ios.swift +567 -0
- package/src/components/core/Input-Radio-Base/platforms/web/.gitkeep +1 -0
- package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.css +504 -0
- package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.ts +648 -0
- package/src/components/core/Input-Radio-Base/radio-sizing.tokens.ts +37 -0
- package/src/components/core/Input-Radio-Base/types.ts +362 -0
- package/src/components/core/Input-Radio-Set/Input-Radio-Set.schema.yaml +92 -0
- package/src/components/core/Input-Radio-Set/README.md +373 -0
- package/src/components/core/Input-Radio-Set/__tests__/.gitkeep +0 -0
- package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.stemma.test.ts +493 -0
- package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.test.ts +499 -0
- package/src/components/core/Input-Radio-Set/component-meta.yaml +44 -0
- package/src/components/core/Input-Radio-Set/contracts.yaml +100 -0
- package/src/components/core/Input-Radio-Set/platforms/android/.gitkeep +0 -0
- package/src/components/core/Input-Radio-Set/platforms/android/InputRadioSet.android.kt +363 -0
- package/src/components/core/Input-Radio-Set/platforms/ios/InputRadioSet.ios.swift +330 -0
- package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.css +99 -0
- package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.ts +790 -0
- package/src/components/core/Input-Radio-Set/types.ts +301 -0
- package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +219 -0
- package/src/components/core/Input-Text-Base/README.md +235 -0
- package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +310 -0
- package/src/components/core/Input-Text-Base/__tests__/keyboardNavigation.test.ts +444 -0
- package/src/components/core/Input-Text-Base/__tests__/labelAssociation.test.ts +418 -0
- package/src/components/core/Input-Text-Base/__tests__/screenReaderSupport.test.ts +405 -0
- package/src/components/core/Input-Text-Base/__tests__/setup.ts +17 -0
- package/src/components/core/Input-Text-Base/__tests__/stateManagement.test.ts +718 -0
- package/src/components/core/Input-Text-Base/__tests__/test-utils.ts +81 -0
- package/src/components/core/Input-Text-Base/__tests__/touchTargetSizing.test.ts +319 -0
- package/src/components/core/Input-Text-Base/component-meta.yaml +38 -0
- package/src/components/core/Input-Text-Base/contracts.yaml +149 -0
- package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +481 -0
- package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +507 -0
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.ts +241 -0
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.css +293 -0
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.ts +448 -0
- package/src/components/core/Input-Text-Base/stateManagement.ts +267 -0
- package/src/components/core/Input-Text-Base/tokens.ts +210 -0
- package/src/components/core/Input-Text-Base/types.ts +102 -0
- package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +247 -0
- package/src/components/core/Input-Text-Email/README.md +251 -0
- package/src/components/core/Input-Text-Email/__tests__/validation.test.ts +127 -0
- package/src/components/core/Input-Text-Email/component-meta.yaml +27 -0
- package/src/components/core/Input-Text-Email/contracts.yaml +47 -0
- package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +197 -0
- package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +291 -0
- package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.ts +276 -0
- package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.ts +319 -0
- package/src/components/core/Input-Text-Email/stateManagement.ts +160 -0
- package/src/components/core/Input-Text-Email/tokens.ts +33 -0
- package/src/components/core/Input-Text-Email/types.ts +72 -0
- package/src/components/core/Input-Text-Email/validation.ts +130 -0
- package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +300 -0
- package/src/components/core/Input-Text-Password/README.md +359 -0
- package/src/components/core/Input-Text-Password/__tests__/validation.test.ts +362 -0
- package/src/components/core/Input-Text-Password/component-meta.yaml +28 -0
- package/src/components/core/Input-Text-Password/contracts.yaml +63 -0
- package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +318 -0
- package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +446 -0
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.ts +434 -0
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +503 -0
- package/src/components/core/Input-Text-Password/stateManagement.ts +244 -0
- package/src/components/core/Input-Text-Password/tokens.ts +32 -0
- package/src/components/core/Input-Text-Password/types.ts +177 -0
- package/src/components/core/Input-Text-Password/validation.ts +207 -0
- package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +326 -0
- package/src/components/core/Input-Text-PhoneNumber/README.md +275 -0
- package/src/components/core/Input-Text-PhoneNumber/__tests__/validation.test.ts +301 -0
- package/src/components/core/Input-Text-PhoneNumber/component-meta.yaml +28 -0
- package/src/components/core/Input-Text-PhoneNumber/contracts.yaml +62 -0
- package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +315 -0
- package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +419 -0
- package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.ts +370 -0
- package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.ts +393 -0
- package/src/components/core/Input-Text-PhoneNumber/stateManagement.ts +250 -0
- package/src/components/core/Input-Text-PhoneNumber/tokens.ts +33 -0
- package/src/components/core/Input-Text-PhoneNumber/types.ts +135 -0
- package/src/components/core/Input-Text-PhoneNumber/validation.ts +302 -0
- package/src/components/core/Nav-Header-App/Nav-Header-App.schema.yaml +87 -0
- package/src/components/core/Nav-Header-App/README.md +29 -0
- package/src/components/core/Nav-Header-App/component-meta.yaml +19 -0
- package/src/components/core/Nav-Header-App/contracts.yaml +27 -0
- package/src/components/core/Nav-Header-App/index.ts +5 -0
- package/src/components/core/Nav-Header-App/platforms/android/NavHeaderApp.android.kt +28 -0
- package/src/components/core/Nav-Header-App/platforms/ios/NavHeaderApp.ios.swift +27 -0
- package/src/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.ts +37 -0
- package/src/components/core/Nav-Header-App/types.ts +32 -0
- package/src/components/core/Nav-Header-Base/Nav-Header-Base.schema.yaml +150 -0
- package/src/components/core/Nav-Header-Base/README.md +21 -0
- package/src/components/core/Nav-Header-Base/component-meta.yaml +15 -0
- package/src/components/core/Nav-Header-Base/contracts.yaml +178 -0
- package/src/components/core/Nav-Header-Base/index.ts +12 -0
- package/src/components/core/Nav-Header-Base/platforms/android/NavHeaderBase.android.kt +127 -0
- package/src/components/core/Nav-Header-Base/platforms/ios/NavHeaderBase.ios.swift +99 -0
- package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.styles.css +75 -0
- package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.ts +120 -0
- package/src/components/core/Nav-Header-Base/types.ts +63 -0
- package/src/components/core/Nav-Header-Page/Nav-Header-Page.schema.yaml +175 -0
- package/src/components/core/Nav-Header-Page/README.md +34 -0
- package/src/components/core/Nav-Header-Page/__tests__/NavHeaderPage.test.ts +250 -0
- package/src/components/core/Nav-Header-Page/component-meta.yaml +23 -0
- package/src/components/core/Nav-Header-Page/contracts.yaml +196 -0
- package/src/components/core/Nav-Header-Page/index.ts +12 -0
- package/src/components/core/Nav-Header-Page/platforms/android/NavHeaderPage.android.kt +169 -0
- package/src/components/core/Nav-Header-Page/platforms/ios/NavHeaderPage.ios.swift +196 -0
- package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.styles.css +90 -0
- package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.ts +169 -0
- package/src/components/core/Nav-Header-Page/types.ts +55 -0
- package/src/components/core/Nav-SegmentedChoice-Base/Nav-SegmentedChoice-Base.schema.yaml +203 -0
- package/src/components/core/Nav-SegmentedChoice-Base/README.md +327 -0
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.android.test.ts +218 -0
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.interaction.test.ts +419 -0
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.ios.test.ts +207 -0
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.visual.test.ts +371 -0
- package/src/components/core/Nav-SegmentedChoice-Base/component-meta.yaml +20 -0
- package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +435 -0
- package/src/components/core/Nav-SegmentedChoice-Base/index.ts +38 -0
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/android/NavSegmentedChoiceBase.android.kt +389 -0
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/ios/NavSegmentedChoiceBase.ios.swift +373 -0
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.styles.css +160 -0
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.ts +477 -0
- package/src/components/core/Nav-SegmentedChoice-Base/types.ts +65 -0
- package/src/components/core/Nav-TabBar-Base/Nav-TabBar-Base.schema.yaml +196 -0
- package/src/components/core/Nav-TabBar-Base/README.md +264 -0
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.android.test.ts +270 -0
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.ios.test.ts +221 -0
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.test.ts +421 -0
- package/src/components/core/Nav-TabBar-Base/component-meta.yaml +20 -0
- package/src/components/core/Nav-TabBar-Base/contracts.yaml +412 -0
- package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.html +2 -0
- package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.tsx +2 -0
- package/src/components/core/Nav-TabBar-Base/index.ts +20 -0
- package/src/components/core/Nav-TabBar-Base/platforms/android/NavTabBarBase.android.kt +375 -0
- package/src/components/core/Nav-TabBar-Base/platforms/ios/NavTabBarBase.ios.swift +377 -0
- package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.styles.css +281 -0
- package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.ts +420 -0
- package/src/components/core/Nav-TabBar-Base/types.ts +43 -0
- package/src/components/core/Progress-Bar-Base/Progress-Bar-Base.schema.yaml +101 -0
- package/src/components/core/Progress-Bar-Base/README.md +31 -0
- package/src/components/core/Progress-Bar-Base/__tests__/ProgressBarBase.test.ts +202 -0
- package/src/components/core/Progress-Bar-Base/component-meta.yaml +24 -0
- package/src/components/core/Progress-Bar-Base/contracts.yaml +132 -0
- package/src/components/core/Progress-Bar-Base/index.ts +6 -0
- package/src/components/core/Progress-Bar-Base/platforms/android/ProgressBarBase.android.kt +181 -0
- package/src/components/core/Progress-Bar-Base/platforms/ios/ProgressBarBase.ios.swift +141 -0
- package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.styles.css +52 -0
- package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.ts +135 -0
- package/src/components/core/Progress-Bar-Base/types.ts +46 -0
- package/src/components/core/Progress-Indicator-Connector-Base/Progress-Indicator-Connector-Base.schema.yaml +69 -0
- package/src/components/core/Progress-Indicator-Connector-Base/README.md +169 -0
- package/src/components/core/Progress-Indicator-Connector-Base/component-meta.yaml +18 -0
- package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +70 -0
- package/src/components/core/Progress-Indicator-Connector-Base/index.ts +33 -0
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/android/ProgressIndicatorConnectorBase.android.kt +163 -0
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/ios/ProgressIndicatorConnectorBase.ios.swift +154 -0
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.styles.css +50 -0
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.ts +141 -0
- package/src/components/core/Progress-Indicator-Connector-Base/types.ts +67 -0
- package/src/components/core/Progress-Indicator-Label-Base/Progress-Indicator-Label-Base.schema.yaml +78 -0
- package/src/components/core/Progress-Indicator-Label-Base/README.md +191 -0
- package/src/components/core/Progress-Indicator-Label-Base/component-meta.yaml +18 -0
- package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +76 -0
- package/src/components/core/Progress-Indicator-Label-Base/index.ts +28 -0
- package/src/components/core/Progress-Indicator-Label-Base/platforms/android/ProgressIndicatorLabelBase.android.kt +153 -0
- package/src/components/core/Progress-Indicator-Label-Base/platforms/ios/ProgressIndicatorLabelBase.ios.swift +153 -0
- package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.styles.css +81 -0
- package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.ts +174 -0
- package/src/components/core/Progress-Indicator-Label-Base/types.ts +64 -0
- package/src/components/core/Progress-Indicator-Node-Base/Progress-Indicator-Node-Base.schema.yaml +113 -0
- package/src/components/core/Progress-Indicator-Node-Base/README.md +206 -0
- package/src/components/core/Progress-Indicator-Node-Base/__tests__/VisualStates.test.ts +259 -0
- package/src/components/core/Progress-Indicator-Node-Base/component-meta.yaml +18 -0
- package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +96 -0
- package/src/components/core/Progress-Indicator-Node-Base/index.ts +36 -0
- package/src/components/core/Progress-Indicator-Node-Base/platforms/android/ProgressIndicatorNodeBase.android.kt +294 -0
- package/src/components/core/Progress-Indicator-Node-Base/platforms/ios/ProgressIndicatorNodeBase.ios.swift +260 -0
- package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.styles.css +193 -0
- package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.ts +226 -0
- package/src/components/core/Progress-Indicator-Node-Base/types.ts +142 -0
- package/src/components/core/Progress-Pagination-Base/Progress-Pagination-Base.schema.yaml +106 -0
- package/src/components/core/Progress-Pagination-Base/README.md +290 -0
- package/src/components/core/Progress-Pagination-Base/__tests__/PaginationBase.test.ts +290 -0
- package/src/components/core/Progress-Pagination-Base/component-meta.yaml +22 -0
- package/src/components/core/Progress-Pagination-Base/contracts.yaml +103 -0
- package/src/components/core/Progress-Pagination-Base/index.ts +40 -0
- package/src/components/core/Progress-Pagination-Base/platforms/android/ProgressPaginationBase.android.kt +215 -0
- package/src/components/core/Progress-Pagination-Base/platforms/ios/ProgressPaginationBase.ios.swift +214 -0
- package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.styles.css +80 -0
- package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.ts +293 -0
- package/src/components/core/Progress-Pagination-Base/types.ts +112 -0
- package/src/components/core/Progress-Stepper-Base/Progress-Stepper-Base.schema.yaml +105 -0
- package/src/components/core/Progress-Stepper-Base/README.md +311 -0
- package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +342 -0
- package/src/components/core/Progress-Stepper-Base/component-meta.yaml +22 -0
- package/src/components/core/Progress-Stepper-Base/contracts.yaml +101 -0
- package/src/components/core/Progress-Stepper-Base/index.ts +43 -0
- package/src/components/core/Progress-Stepper-Base/platforms/android/ProgressStepperBase.android.kt +244 -0
- package/src/components/core/Progress-Stepper-Base/platforms/ios/ProgressStepperBase.ios.swift +240 -0
- package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.styles.css +49 -0
- package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.ts +288 -0
- package/src/components/core/Progress-Stepper-Base/types.ts +175 -0
- package/src/components/core/Progress-Stepper-Detailed/Progress-Stepper-Detailed.schema.yaml +107 -0
- package/src/components/core/Progress-Stepper-Detailed/README.md +401 -0
- package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +478 -0
- package/src/components/core/Progress-Stepper-Detailed/component-meta.yaml +22 -0
- package/src/components/core/Progress-Stepper-Detailed/contracts.yaml +122 -0
- package/src/components/core/Progress-Stepper-Detailed/index.ts +48 -0
- package/src/components/core/Progress-Stepper-Detailed/platforms/android/ProgressStepperDetailed.android.kt +352 -0
- package/src/components/core/Progress-Stepper-Detailed/platforms/ios/ProgressStepperDetailed.ios.swift +353 -0
- package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.styles.css +106 -0
- package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.ts +336 -0
- package/src/components/core/Progress-Stepper-Detailed/types.ts +195 -0
- package/src/composition/BlendComposition.ts +46 -0
- package/src/composition/BlendCompositionParser.ts +215 -0
- package/src/composition/OpacityComposition.ts +62 -0
- package/src/composition/OpacityCompositionParser.ts +308 -0
- package/src/composition/__tests__/BlendCompositionParser.test.ts +431 -0
- package/src/composition/__tests__/OpacityCompositionParser.test.ts +539 -0
- package/src/composition/index.ts +20 -0
- package/src/config/ConfigLoader.ts +143 -0
- package/src/config/__resolution-matrix__/README.md +76 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/compiled/defineConfig.js +9 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/designerpunk.config.ts +20 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/my-overrides.ts +8 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/compiled/defineConfig.js +11 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/designerpunk.config.ts +23 -0
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/my-overrides.ts +6 -0
- package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/designerpunk.config.ts +11 -0
- package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/src/config/index.ts +15 -0
- package/src/config/__resolution-matrix__/fixtures/source-dir-esm/designerpunk.config.ts +15 -0
- package/src/config/__resolution-matrix__/fixtures/source-dir-esm/src/config/index.ts +13 -0
- package/src/config/__resolution-matrix__/run-matrix.js +107 -0
- package/src/config/__resolution-matrix__/runner.js +153 -0
- package/src/config/__resolution-matrix__/verify-real-loadconfig.js +122 -0
- package/src/config/__tests__/ConfigLoader.test.ts +115 -0
- package/src/config/defineConfig.ts +71 -0
- package/src/config/index.ts +7 -0
- package/src/config/scopedTsRequire.ts +62 -0
- package/src/constants/BaselineGrid.ts +41 -0
- package/src/constants/SpacingTokens.ts +55 -0
- package/src/constants/StrategicFlexibilityTokens.ts +98 -0
- package/src/figma/ComponentAnalysis.ts +292 -0
- package/src/figma/ComponentAnalysisGenerator.ts +444 -0
- package/src/figma/ConsoleMCPClient.ts +168 -0
- package/src/figma/ConsoleMCPClientImpl.ts +1034 -0
- package/src/figma/DesignExtractor.ts +3620 -0
- package/src/figma/TokenSyncWorkflow.ts +915 -0
- package/src/figma/TokenTranslator.ts +891 -0
- package/src/figma/VariantAnalyzer.ts +712 -0
- package/src/figma/__tests__/ComponentAnalysisGenerator.json.test.ts +429 -0
- package/src/figma/__tests__/ComponentAnalysisGenerator.markdown.test.ts +428 -0
- package/src/figma/__tests__/ConsoleMCPClient.bugfix.test.ts +261 -0
- package/src/figma/__tests__/ConsoleMCPClient.preservation.test.ts +395 -0
- package/src/figma/__tests__/ConsoleMCPClient.test.ts +375 -0
- package/src/figma/__tests__/DesignExtractor.boundVariableResolution.test.ts +580 -0
- package/src/figma/__tests__/DesignExtractor.buildNodeTree.test.ts +535 -0
- package/src/figma/__tests__/DesignExtractor.captureComponentScreenshot.test.ts +176 -0
- package/src/figma/__tests__/DesignExtractor.detectBehavioralContracts.test.ts +263 -0
- package/src/figma/__tests__/DesignExtractor.detectComponentTokenDecisions.test.ts +379 -0
- package/src/figma/__tests__/DesignExtractor.detectCompositionPatterns.test.ts +507 -0
- package/src/figma/__tests__/DesignExtractor.detectPlatformParity.test.ts +406 -0
- package/src/figma/__tests__/DesignExtractor.queryContext.test.ts +214 -0
- package/src/figma/__tests__/DesignExtractor.readFigmaComponent.test.ts +431 -0
- package/src/figma/__tests__/DesignExtractor.readStyles.test.ts +204 -0
- package/src/figma/__tests__/DesignExtractor.readTokenBindings.test.ts +268 -0
- package/src/figma/__tests__/DesignExtractor.reconstructCompositeTokens.test.ts +403 -0
- package/src/figma/__tests__/DesignExtractor.resolveUnknownVariableIds.test.ts +259 -0
- package/src/figma/__tests__/DesignExtractor.translateTokens.test.ts +433 -0
- package/src/figma/__tests__/DesignExtractor.validateModes.test.ts +350 -0
- package/src/figma/__tests__/TokenSyncWorkflow.batch.test.ts +277 -0
- package/src/figma/__tests__/TokenSyncWorkflow.drift.test.ts +187 -0
- package/src/figma/__tests__/TokenSyncWorkflow.preservation.test.ts +544 -0
- package/src/figma/__tests__/TokenSyncWorkflow.styles.test.ts +245 -0
- package/src/figma/__tests__/TokenSyncWorkflow.sync.test.ts +217 -0
- package/src/figma/__tests__/TokenTranslator.test.ts +757 -0
- package/src/figma/__tests__/VariantAnalyzer.detectConflicts.test.ts +126 -0
- package/src/figma/__tests__/VariantAnalyzer.test.ts +633 -0
- package/src/figma/__tests__/error-reporting.test.ts +254 -0
- package/src/figma/__tests__/preflight.test.ts +94 -0
- package/src/figma/error-reporting.ts +260 -0
- package/src/figma/index.ts +98 -0
- package/src/figma/portCleanup.ts +86 -0
- package/src/figma/preflight.ts +120 -0
- package/src/generators/BlendUtilityGenerator.ts +847 -0
- package/src/generators/BlendValueGenerator.ts +198 -0
- package/src/generators/DTCGFormatGenerator.ts +1349 -0
- package/src/generators/DTCGGeneratorConfig.ts +46 -0
- package/src/generators/ModeResolvedTokens.ts +58 -0
- package/src/generators/ResponsiveGridGenerator.ts +273 -0
- package/src/generators/TokenFileGenerator.ts +2070 -0
- package/src/generators/__tests__/AccessibilityTokenGeneration.test.ts +350 -0
- package/src/generators/__tests__/BlendUtilityGenerator.test.ts +829 -0
- package/src/generators/__tests__/BlendValueGenerator.test.ts +200 -0
- package/src/generators/__tests__/BreakpointTokenGeneration.test.ts +172 -0
- package/src/generators/__tests__/CSSThemeScoping.test.ts +153 -0
- package/src/generators/__tests__/DTCGConfigOptions.test.ts +262 -0
- package/src/generators/__tests__/DTCGErrorHandling.test.ts +139 -0
- package/src/generators/__tests__/DTCGFormatGenerator.integration.test.ts +346 -0
- package/src/generators/__tests__/DTCGFormatGenerator.property.test.ts +497 -0
- package/src/generators/__tests__/DTCGFormatGenerator.test.ts +469 -0
- package/src/generators/__tests__/FigmaTransformer.styles.test.ts +398 -0
- package/src/generators/__tests__/FigmaTransformer.variables.test.ts +540 -0
- package/src/generators/__tests__/GridSpacingTokenGeneration.test.ts +254 -0
- package/src/generators/__tests__/IconTokenGeneration.test.ts +452 -0
- package/src/generators/__tests__/KotlinThemeTypes.test.ts +110 -0
- package/src/generators/__tests__/ModeAwareGeneration.test.ts +160 -0
- package/src/generators/__tests__/NativeOklchOutput.test.ts +56 -0
- package/src/generators/__tests__/OklchExport.test.ts +71 -0
- package/src/generators/__tests__/ProductRepoSimulation.test.ts +91 -0
- package/src/generators/__tests__/ResponsiveGridGeneration.test.ts +291 -0
- package/src/generators/__tests__/Spec076TokenMigration.test.ts +106 -0
- package/src/generators/__tests__/Spec077ModesVerification.test.ts +52 -0
- package/src/generators/__tests__/SwiftThemeTypes.test.ts +122 -0
- package/src/generators/__tests__/TokenFileGenerator.test.ts +914 -0
- package/src/generators/__tests__/TransformerRegistry.test.ts +118 -0
- package/src/generators/__tests__/WcagValueExportSupport.test.ts +84 -0
- package/src/generators/__tests__/WcagValueInfrastructure.test.ts +122 -0
- package/src/generators/__tests__/WebOklchOutput.test.ts +72 -0
- package/src/generators/__tests__/generateTokenIndex.test.ts +204 -0
- package/src/generators/__tests__/helpers/defaultSemanticOptions.ts +24 -0
- package/src/generators/generateTokenFiles.ts +337 -0
- package/src/generators/generateTokenIndex.ts +258 -0
- package/src/generators/oklch/OklchExportUtils.ts +57 -0
- package/src/generators/oklch/OklchTokenIndexMetadata.ts +30 -0
- package/src/generators/transformers/FigmaTransformer.ts +912 -0
- package/src/generators/transformers/ITokenTransformer.ts +56 -0
- package/src/generators/transformers/TransformerRegistry.ts +63 -0
- package/src/generators/transformers/index.ts +52 -0
- package/src/generators/types/DTCGTypes.ts +101 -0
- package/src/integration/BuildErrorHandler.ts +440 -0
- package/src/integration/BuildSystemInterface.ts +338 -0
- package/src/integration/PlatformFileSelector.ts +288 -0
- package/src/integration/RegistryCoordinator.ts +404 -0
- package/src/integration/TranslationCoordinator.ts +458 -0
- package/src/integration/TreeShakingOptimizer.ts +350 -0
- package/src/integration/ValidationCoordinator.ts +780 -0
- package/src/integration/__tests__/ComponentTokenValidation.test.ts +762 -0
- package/src/integration/__tests__/ValidationCoordinator.test.ts +609 -0
- package/src/integration/__tests__/performance/ComponentTokenValidationPerformance.test.ts +161 -0
- package/src/integration/index.ts +55 -0
- package/src/naming/NamingConventionManager.ts +318 -0
- package/src/naming/PlatformNamingRules.ts +278 -0
- package/src/naming/__tests__/NamingConventions.test.ts +224 -0
- package/src/naming/index.ts +23 -0
- package/src/parent-completion.md +1 -0
- package/src/performance/CachingStrategy.ts +426 -0
- package/src/performance/FileGenerationOptimizer.ts +294 -0
- package/src/performance/PerformanceMonitor.ts +185 -0
- package/src/performance/PerformanceOptimizer.ts +348 -0
- package/src/performance/index.ts +30 -0
- package/src/providers/AndroidFileOrganizer.ts +241 -0
- package/src/providers/AndroidFormatGenerator.ts +750 -0
- package/src/providers/AndroidUnitConverter.ts +177 -0
- package/src/providers/FormatProvider.ts +187 -0
- package/src/providers/PathProvider.ts +197 -0
- package/src/providers/UnitProvider.ts +106 -0
- package/src/providers/WebFileOrganizer.ts +121 -0
- package/src/providers/WebFormatGenerator.ts +611 -0
- package/src/providers/WebUnitConverter.ts +116 -0
- package/src/providers/__tests__/AndroidAccessibilityTokens.test.ts +86 -0
- package/src/providers/__tests__/AndroidFormatGenerator-semantic.test.ts +494 -0
- package/src/providers/__tests__/FormatProviders.test.ts +828 -0
- package/src/providers/__tests__/InsetTokenGeneration.test.ts +627 -0
- package/src/providers/__tests__/PathProviders.test.ts +512 -0
- package/src/providers/__tests__/PlatformOutputFormat.test.ts +252 -0
- package/src/providers/__tests__/UnitProviders.test.ts +721 -0
- package/src/providers/__tests__/WebFormatGenerator-semantic.test.ts +293 -0
- package/src/providers/__tests__/iOSFormatGenerator-semantic.test.ts +410 -0
- package/src/providers/iOSFileOrganizer.ts +162 -0
- package/src/providers/iOSFormatGenerator.ts +599 -0
- package/src/providers/iOSUnitConverter.ts +125 -0
- package/src/providers/index.ts +26 -0
- package/src/registries/ComponentTokenRegistry.ts +292 -0
- package/src/registries/IRegistry.ts +170 -0
- package/src/registries/PrimitiveTokenRegistry.ts +200 -0
- package/src/registries/SemanticTokenRegistry.ts +237 -0
- package/src/registries/__tests__/ComponentTokenRegistry.test.ts +446 -0
- package/src/registries/__tests__/IRegistry.test.ts +250 -0
- package/src/registries/__tests__/PrimitiveTokenRegistry.test.ts +342 -0
- package/src/registries/__tests__/SemanticTokenRegistry.test.ts +444 -0
- package/src/resolvers/AndroidColorResolver.ts +333 -0
- package/src/resolvers/ModeThemeResolver.ts +152 -0
- package/src/resolvers/SemanticOverrideResolver.ts +155 -0
- package/src/resolvers/SemanticValueResolver.ts +133 -0
- package/src/resolvers/WebColorResolver.ts +240 -0
- package/src/resolvers/__tests__/AndroidColorResolver.test.ts +507 -0
- package/src/resolvers/__tests__/ModeThemeResolver.test.ts +411 -0
- package/src/resolvers/__tests__/SemanticOverrideResolver.test.ts +186 -0
- package/src/resolvers/__tests__/WebColorResolver.test.ts +405 -0
- package/src/resolvers/__tests__/iOSColorResolver.test.ts +432 -0
- package/src/resolvers/iOSColorResolver.ts +224 -0
- package/src/resolvers/index.ts +11 -0
- package/src/security/AIAgentRestrictions.ts +298 -0
- package/src/security/ContaminationAuditor.ts +393 -0
- package/src/security/ContaminationPrevention.ts +275 -0
- package/src/security/DocumentationGuard.ts +258 -0
- package/src/security/FlexibilityTokenGuard.ts +256 -0
- package/src/security/HumanApprovalWorkflow.ts +319 -0
- package/src/security/__tests__/AIAgentRestrictions.test.ts +482 -0
- package/src/security/__tests__/ContaminationPrevention.test.ts +424 -0
- package/src/security/__tests__/SecurityIntegration.test.ts +505 -0
- package/src/security/index.ts +48 -0
- package/src/styles/responsive-grid-usage.md +992 -0
- package/src/styles/responsive-grid.css +200 -0
- package/src/testing/__tests__/utilities.test.ts +175 -0
- package/src/testing/index.ts +154 -0
- package/src/testing/jest-preset.ts +62 -0
- package/src/testing/style-mock.ts +7 -0
- package/src/testing/validators.ts +10 -0
- package/src/themes/ResolvedThemeSet.ts +22 -0
- package/src/themes/ThemeRegistry.ts +97 -0
- package/src/themes/__tests__/ThemeRegistry.test.ts +162 -0
- package/src/tokens/BlendTokens.ts +132 -0
- package/src/tokens/BlurTokens.ts +154 -0
- package/src/tokens/BorderWidthTokens.ts +101 -0
- package/src/tokens/BreakpointTokens.ts +101 -0
- package/src/tokens/ColorTokens.ts +2162 -0
- package/src/tokens/DensityTokens.ts +119 -0
- package/src/tokens/DurationTokens.ts +111 -0
- package/src/tokens/EasingTokens.ts +163 -0
- package/src/tokens/FontFamilyTokens.ts +95 -0
- package/src/tokens/FontSizeTokens.ts +197 -0
- package/src/tokens/FontWeightTokens.ts +166 -0
- package/src/tokens/GlowOpacityTokens.ts +113 -0
- package/src/tokens/LetterSpacingTokens.ts +114 -0
- package/src/tokens/LineHeightTokens.ts +200 -0
- package/src/tokens/OpacityTokens.ts +233 -0
- package/src/tokens/RadiusTokens.ts +236 -0
- package/src/tokens/ScaleTokens.ts +167 -0
- package/src/tokens/ShadowOffsetTokens.ts +279 -0
- package/src/tokens/ShadowOpacityTokens.ts +118 -0
- package/src/tokens/SizingTokens.ts +221 -0
- package/src/tokens/SpacingTokens.ts +255 -0
- package/src/tokens/TapAreaTokens.ts +124 -0
- package/src/tokens/__tests__/AIReadableMathematicalRelationships.test.ts +298 -0
- package/src/tokens/__tests__/BlendTokens.test.ts +357 -0
- package/src/tokens/__tests__/BlurTokens.test.ts +109 -0
- package/src/tokens/__tests__/BorderWidthTokens.test.ts +394 -0
- package/src/tokens/__tests__/ColorTokens.test.ts +847 -0
- package/src/tokens/__tests__/FontFamilyTokens.test.ts +308 -0
- package/src/tokens/__tests__/FontSizeTokensFormulaValidation.test.ts +176 -0
- package/src/tokens/__tests__/FontWeightTokens.test.ts +336 -0
- package/src/tokens/__tests__/LetterSpacingTokens.test.ts +359 -0
- package/src/tokens/__tests__/LineHeightTokensFormulaValidation.test.ts +235 -0
- package/src/tokens/__tests__/MotionTokens.property.test.ts +638 -0
- package/src/tokens/__tests__/MotionTokens.test.ts +431 -0
- package/src/tokens/__tests__/OpacityTokens.test.ts +370 -0
- package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +163 -0
- package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +93 -0
- package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +170 -0
- package/src/tokens/__tests__/RadiusStrategicFlexibilityValidation.test.ts +133 -0
- package/src/tokens/__tests__/RadiusTokensFormulaValidation.test.ts +240 -0
- package/src/tokens/__tests__/ShadowOffsetTokens.test.ts +407 -0
- package/src/tokens/__tests__/SizingTokens.test.ts +132 -0
- package/src/tokens/__tests__/SpacingTokensFormulaValidation.test.ts +205 -0
- package/src/tokens/__tests__/TokenCategories.test.ts +602 -0
- package/src/tokens/__tests__/chromatic-channels.test.ts +57 -0
- package/src/tokens/__tests__/composed-colors.test.ts +62 -0
- package/src/tokens/__tests__/neutral-partition.test.ts +119 -0
- package/src/tokens/__tests__/portability-boundary.test.ts +60 -0
- package/src/tokens/color/channels/chroma/chromatic.ts +67 -0
- package/src/tokens/color/channels/chroma/neutral.ts +35 -0
- package/src/tokens/color/channels/hues.ts +29 -0
- package/src/tokens/color/channels/index.ts +21 -0
- package/src/tokens/color/channels/lightness/chromatic.ts +68 -0
- package/src/tokens/color/channels/lightness/neutral.ts +36 -0
- package/src/tokens/color/index.ts +31 -0
- package/src/tokens/color/primitives/chromatic.ts +64 -0
- package/src/tokens/color/primitives/neutral.ts +45 -0
- package/src/tokens/component/progress.ts +153 -0
- package/src/tokens/index.ts +383 -0
- package/src/tokens/platforms/android/MotionTokens.kt +322 -0
- package/src/tokens/platforms/android/MotionTokens.md +0 -0
- package/src/tokens/platforms/ios/MotionTokens.md +322 -0
- package/src/tokens/platforms/ios/MotionTokens.swift +253 -0
- package/src/tokens/semantic/AccessibilityTokens.README.md +1070 -0
- package/src/tokens/semantic/AccessibilityTokens.ts +219 -0
- package/src/tokens/semantic/BlendTokens.ts +225 -0
- package/src/tokens/semantic/BorderWidthTokens.ts +162 -0
- package/src/tokens/semantic/ColorTokens.ts +866 -0
- package/src/tokens/semantic/ElevationTokens.ts +177 -0
- package/src/tokens/semantic/GridSpacingTokens.ts +147 -0
- package/src/tokens/semantic/IconTokens.ts +342 -0
- package/src/tokens/semantic/LayeringTokens.ts +167 -0
- package/src/tokens/semantic/MotionTokens.ts +143 -0
- package/src/tokens/semantic/OpacityTokens.ts +89 -0
- package/src/tokens/semantic/RadiusTokens.ts +242 -0
- package/src/tokens/semantic/ShadowTokens.ts +442 -0
- package/src/tokens/semantic/SpacingTokens.ts +274 -0
- package/src/tokens/semantic/StyleTokens.ts +22 -0
- package/src/tokens/semantic/TypographyTokens.ts +399 -0
- package/src/tokens/semantic/ZIndexTokens.ts +124 -0
- package/src/tokens/semantic/__tests__/AccessibilityTokens.test.ts +222 -0
- package/src/tokens/semantic/__tests__/BlendTokens.test.ts +377 -0
- package/src/tokens/semantic/__tests__/BorderWidthTokens.test.ts +141 -0
- package/src/tokens/semantic/__tests__/ColorTokens.test.ts +1391 -0
- package/src/tokens/semantic/__tests__/IconTokens.test.ts +769 -0
- package/src/tokens/semantic/__tests__/MotionTokens.test.ts +313 -0
- package/src/tokens/semantic/__tests__/OpacityTokens.test.ts +183 -0
- package/src/tokens/semantic/__tests__/SemanticTokenIntegration.test.ts +426 -0
- package/src/tokens/semantic/__tests__/ValidatePrimitiveReferences.test.ts +382 -0
- package/src/tokens/semantic/index.ts +611 -0
- package/src/tokens/themes/dark/SemanticOverrides.ts +168 -0
- package/src/tokens/themes/dark-wcag/SemanticOverrides.ts +21 -0
- package/src/tokens/themes/types.ts +26 -0
- package/src/tokens/themes/wcag/SemanticOverrides.ts +28 -0
- package/src/tools/ThemeFileGenerator.ts +109 -0
- package/src/tools/integrity/DiskFreshGenerator.ts +36 -0
- package/src/tools/integrity/GenerationIntegrityCheck.ts +132 -0
- package/src/tools/integrity/Invariants.ts +228 -0
- package/src/tools/integrity/Normalizer.ts +94 -0
- package/src/tools/integrity/SemanticComparator.ts +127 -0
- package/src/tools/integrity/__tests__/GenerationIntegrityCheck.test.ts +132 -0
- package/src/tools/integrity/__tests__/Invariants.test.ts +142 -0
- package/src/tools/integrity/__tests__/Normalizer.test.ts +65 -0
- package/src/tools/integrity/__tests__/SemanticComparator.test.ts +62 -0
- package/src/tools/integrity/__tests__/consumer-package-mode.test.ts +205 -0
- package/src/tools/integrity/cli/run-audit.ts +150 -0
- package/src/tools/integrity/inventory.ts +51 -0
- package/src/tools/integrity/manifest.ts +56 -0
- package/src/tools/integrity/types/index.ts +183 -0
- package/src/tools/release/__tests__/ChangeClassifier.test.ts +133 -0
- package/src/tools/release/__tests__/ChangeExtractor.test.ts +222 -0
- package/src/tools/release/__tests__/GitHubPublisher.test.ts +240 -0
- package/src/tools/release/__tests__/NotesRenderer.test.ts +142 -0
- package/src/tools/release/__tests__/NpmPublisher.test.ts +289 -0
- package/src/tools/release/__tests__/PipelineIntegration.test.ts +188 -0
- package/src/tools/release/__tests__/ReleasePipeline.test.ts +192 -0
- package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +49 -0
- package/src/tools/release/__tests__/SummaryScanner.test.ts +141 -0
- package/src/tools/release/__tests__/TagResolver.test.ts +91 -0
- package/src/tools/release/__tests__/VersionCalculator.test.ts +270 -0
- package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +80 -0
- package/src/tools/release/cli/ReleasePipeline.ts +165 -0
- package/src/tools/release/cli/release-tool.ts +107 -0
- package/src/tools/release/pipeline/ChangeClassifier.ts +61 -0
- package/src/tools/release/pipeline/ChangeExtractor.ts +87 -0
- package/src/tools/release/pipeline/NotesRenderer.ts +66 -0
- package/src/tools/release/pipeline/SummaryScanner.ts +70 -0
- package/src/tools/release/pipeline/TagResolver.ts +40 -0
- package/src/tools/release/pipeline/VersionCalculator.ts +375 -0
- package/src/tools/release/publishers/GitHubPublisher.ts +228 -0
- package/src/tools/release/publishers/NpmPublisher.ts +196 -0
- package/src/tools/release/release-config.json +5 -0
- package/src/tools/release/types/index.ts +282 -0
- package/src/tools/release/validators/SemanticVersionValidator.ts +67 -0
- package/src/types/ComponentTypes.ts +76 -0
- package/src/types/PrimitiveToken.ts +112 -0
- package/src/types/SemanticToken.ts +91 -0
- package/src/types/TranslationOutput.ts +105 -0
- package/src/types/ValidationResult.ts +74 -0
- package/src/types/__tests__/ComponentTypes.test.ts +73 -0
- package/src/types/css.d.ts +35 -0
- package/src/types/generated/TokenTypes.ts +142 -0
- package/src/types/index.ts +42 -0
- package/src/validators/BaselineGridValidator.ts +119 -0
- package/src/validators/CompositionPatternValidator.ts +259 -0
- package/src/validators/CrossPlatformConsistencyValidator.ts +498 -0
- package/src/validators/ErrorValidator.ts +998 -0
- package/src/validators/IValidator.ts +273 -0
- package/src/validators/MathematicalRelationshipParser.ts +434 -0
- package/src/validators/ModeParity.ts +123 -0
- package/src/validators/PassValidator.ts +533 -0
- package/src/validators/PlatformConstraintHandler.ts +453 -0
- package/src/validators/PrimitiveReferenceValidator.ts +284 -0
- package/src/validators/SemanticTokenValidator.ts +496 -0
- package/src/validators/StemmaComponentNamingValidator.ts +524 -0
- package/src/validators/StemmaErrorGuidanceSystem.ts +1600 -0
- package/src/validators/StemmaPropertyAccessibilityValidator.ts +823 -0
- package/src/validators/StemmaTokenUsageValidator.ts +650 -0
- package/src/validators/SyntaxValidator.ts +537 -0
- package/src/validators/ThreeTierValidator.ts +822 -0
- package/src/validators/ToleranceCalculator.ts +324 -0
- package/src/validators/ValidationReasoning.ts +464 -0
- package/src/validators/WCAGValidator.ts +219 -0
- package/src/validators/WarningValidator.ts +626 -0
- package/src/validators/__tests__/BaselineGridValidator.test.ts +292 -0
- package/src/validators/__tests__/BorderWidthValidation.test.ts +595 -0
- package/src/validators/__tests__/CompositionPatterns.test.ts +463 -0
- package/src/validators/__tests__/CrossPlatformConsistency.test.ts +834 -0
- package/src/validators/__tests__/IValidator.test.ts +258 -0
- package/src/validators/__tests__/MathematicalRelationshipParser.test.ts +465 -0
- package/src/validators/__tests__/PlatformConstraints.test.ts +486 -0
- package/src/validators/__tests__/SemanticTokenValidator.test.ts +723 -0
- package/src/validators/__tests__/StemmaComponentNamingValidator.test.ts +597 -0
- package/src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts +717 -0
- package/src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts +349 -0
- package/src/validators/__tests__/StemmaTokenUsageValidator.test.ts +432 -0
- package/src/validators/__tests__/SyntaxValidator.test.ts +360 -0
- package/src/validators/__tests__/ThreeTierValidator.test.ts +906 -0
- package/src/validators/__tests__/ValidationReasoning.test.ts +636 -0
- package/src/validators/__tests__/WCAGValidator.test.ts +243 -0
- package/src/validators/buildValidation.ts +170 -0
- package/src/validators/index.ts +144 -0
- package/src/workflows/ConsistencyValidator.ts +339 -0
- package/src/workflows/TokenGenerationWorkflow.ts +460 -0
- package/src/workflows/ValidationPipeline.ts +284 -0
- package/src/workflows/WorkflowErrorHandler.ts +441 -0
- package/token-index/README.md +32 -0
- package/token-index/components.yaml +265 -0
- package/token-index/primitives.yaml +2761 -0
- package/token-index/semantics.yaml +2421 -0
|
@@ -0,0 +1,1475 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: test-failure-audit-methodology
|
|
3
|
+
inclusion: manual
|
|
4
|
+
name: Test-Failure-Audit-Methodology
|
|
5
|
+
description: Reusable methodology for conducting test failure audits — workflow steps, pattern identification, severity classification, clean exit audit requirements, and performance investigation protocol. Load when conducting test failure audits, completing specs with clean exit audits, or investigating performance issues.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Test Failure Audit Methodology
|
|
9
|
+
|
|
10
|
+
**Date**: 2025-12-26
|
|
11
|
+
**Last Reviewed**: 2025-12-26
|
|
12
|
+
**Purpose**: Reusable methodology guidance for conducting test failure audits, including workflow steps, pattern identification, and lessons learned from Specs 025/026/029
|
|
13
|
+
**Organization**: process-standard
|
|
14
|
+
**Scope**: cross-project
|
|
15
|
+
**Layer**: 2
|
|
16
|
+
**Relevant Tasks**: test-failure-audit, test-quality, spec-completion
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## AI Agent Reading Priorities
|
|
21
|
+
|
|
22
|
+
**This document provides methodology guidance for test failure audits. Read strategically based on your current task.**
|
|
23
|
+
|
|
24
|
+
### WHEN Conducting a Test Failure Audit
|
|
25
|
+
**Focus on:**
|
|
26
|
+
- **Audit Workflow** - Step-by-step process
|
|
27
|
+
- **Pattern Identification Techniques** - How to group failures
|
|
28
|
+
- **Failure Lineage Tracking** - Categorizing failure history
|
|
29
|
+
- **Findings Document Template** - Standard format for documenting findings
|
|
30
|
+
|
|
31
|
+
### WHEN Completing a Spec (Clean Exit Audit)
|
|
32
|
+
**Focus on:**
|
|
33
|
+
- **Clean Exit Audit Requirement** - Mandatory process before spec closure
|
|
34
|
+
- **Issue Registry Maintenance** - Tracking discovered issues
|
|
35
|
+
|
|
36
|
+
### WHEN Investigating Performance Issues
|
|
37
|
+
**Focus on:**
|
|
38
|
+
- **Performance Investigation Protocol** - Steps before adjusting timeouts
|
|
39
|
+
|
|
40
|
+
### WHEN Learning from Past Audits
|
|
41
|
+
**Focus on:**
|
|
42
|
+
- **Lessons Learned** - Insights from 025/026/029 experiences
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Introduction
|
|
47
|
+
|
|
48
|
+
This document provides reusable methodology guidance for conducting test failure audits. It captures the systematic approach developed through Specs 025 (Test Suite Overhaul), 026 (Test Failure Resolution), and 029 (Test Failure Audit), enabling future audits to benefit from proven patterns and avoid reinventing the wheel.
|
|
49
|
+
|
|
50
|
+
**Key Principles:**
|
|
51
|
+
- **Audit-Only Scope**: Diagnosis before treatment - audits produce documentation, not code changes
|
|
52
|
+
- **Pattern-Based Analysis**: Group failures by root cause, not by test file
|
|
53
|
+
- **Lineage-Aware**: Track failure history to inform strategy
|
|
54
|
+
- **Investigation-First**: Understand root causes before recommending solutions
|
|
55
|
+
- **Human-Gated**: Confirmation checkpoint before implementing fixes
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## When to Run a Test Failure Audit
|
|
60
|
+
|
|
61
|
+
A test failure audit should be conducted when:
|
|
62
|
+
|
|
63
|
+
1. **Significant Test Failures Accumulate**: When the number of failing tests exceeds a threshold that impacts development velocity (e.g., 20+ failures across multiple suites)
|
|
64
|
+
|
|
65
|
+
2. **After Major Refactoring**: Following significant architectural changes that may have introduced test regressions
|
|
66
|
+
|
|
67
|
+
3. **Before Major Releases**: To ensure test suite health before shipping
|
|
68
|
+
|
|
69
|
+
4. **When Previous Fix Attempts Failed**: When multiple specs have attempted to fix failures without achieving zero failures
|
|
70
|
+
|
|
71
|
+
5. **When Failure Patterns Are Unclear**: When it's not obvious whether failures are test issues, code bugs, or environmental problems
|
|
72
|
+
|
|
73
|
+
**Key Indicator**: If you find yourself repeatedly encountering the same failures across multiple development sessions, it's time for a systematic audit rather than ad-hoc fixes.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Audit Workflow Steps
|
|
78
|
+
|
|
79
|
+
The audit workflow follows a four-phase process: Audit → Findings → Confirmation → Deliverables.
|
|
80
|
+
|
|
81
|
+
### Phase 1: Audit (Catalog and Analyze)
|
|
82
|
+
|
|
83
|
+
**Step 1.1: Capture Complete Test Output**
|
|
84
|
+
|
|
85
|
+
Run the full test suite and capture complete output:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm test 2>&1 | tee test-output.txt
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Document the test run metadata:
|
|
92
|
+
- Date and timestamp
|
|
93
|
+
- Total test suites (passing/failing)
|
|
94
|
+
- Total tests (passing/failing/skipped)
|
|
95
|
+
- Total execution time
|
|
96
|
+
|
|
97
|
+
**Step 1.2: Catalog Each Failing Test**
|
|
98
|
+
|
|
99
|
+
For each failing test, document:
|
|
100
|
+
- **Test file path**: Full path to the test file
|
|
101
|
+
- **Test name**: Complete test name including describe blocks
|
|
102
|
+
- **Error type**: The assertion or error type (e.g., `expect().toBe()`, `Timeout`, `Error thrown`)
|
|
103
|
+
- **Error message**: The specific error message
|
|
104
|
+
- **Stack trace context**: Relevant line numbers and context
|
|
105
|
+
|
|
106
|
+
**Step 1.3: Group Failures by Pattern**
|
|
107
|
+
|
|
108
|
+
Identify shared root causes across test files:
|
|
109
|
+
- Failures with the **same error message** → Single pattern
|
|
110
|
+
- Failures with the **same error type + similar context** → Related pattern
|
|
111
|
+
- Failures in the **same test file** → Potentially same pattern
|
|
112
|
+
|
|
113
|
+
Create pattern entries with:
|
|
114
|
+
- Pattern ID (P1, P2, etc.)
|
|
115
|
+
- Pattern name (descriptive)
|
|
116
|
+
- Root cause description
|
|
117
|
+
- Affected test count
|
|
118
|
+
- Example failures (3-5 representative examples)
|
|
119
|
+
|
|
120
|
+
**Step 1.4: Track Failure Lineage**
|
|
121
|
+
|
|
122
|
+
Compare current failures against previous audit findings (if available):
|
|
123
|
+
|
|
124
|
+
| Lineage Category | Definition | Implication |
|
|
125
|
+
|------------------|------------|-------------|
|
|
126
|
+
| **Stable** | Present in previous audits, never fixed | May need different approach |
|
|
127
|
+
| **Fixed-then-regressed** | Was fixed, now failing again | Identify what broke it |
|
|
128
|
+
| **Newly-surfaced** | Appeared after a fix (was masked) | Often good - reveals hidden issues |
|
|
129
|
+
| **Cascading** | Expected consequence of another fix | Address root cause first |
|
|
130
|
+
| **True-new** | First appearance, unrelated to previous work | Standard fix approach |
|
|
131
|
+
|
|
132
|
+
**Step 1.5: Investigate Performance Patterns**
|
|
133
|
+
|
|
134
|
+
For patterns involving performance timeouts:
|
|
135
|
+
1. Baseline actual execution time (not just "exceeded limit")
|
|
136
|
+
2. Identify bottleneck source (git operations, file I/O, analysis logic)
|
|
137
|
+
3. Determine scale relationship (linear, exponential, constant)
|
|
138
|
+
4. Compare to original baseline when limit was set (if available)
|
|
139
|
+
|
|
140
|
+
Apply decision framework:
|
|
141
|
+
- If inefficiency → recommend code optimization
|
|
142
|
+
- If legitimate scale → recommend threshold adjustment with justification
|
|
143
|
+
- If unclear → flag for further investigation
|
|
144
|
+
|
|
145
|
+
### Phase 2: Findings (Document Analysis)
|
|
146
|
+
|
|
147
|
+
**Step 2.1: Create Findings Document**
|
|
148
|
+
|
|
149
|
+
Create `findings/test-failure-audit-findings.md` with:
|
|
150
|
+
- Header (date, spec, test run timestamp)
|
|
151
|
+
- Summary table (all failures with pattern assignment)
|
|
152
|
+
- Detailed failure catalog (each failure with metadata)
|
|
153
|
+
- Pattern details (each pattern with full analysis)
|
|
154
|
+
|
|
155
|
+
**Step 2.2: Document Each Pattern**
|
|
156
|
+
|
|
157
|
+
For each pattern, document:
|
|
158
|
+
- **Pattern name and description**: Clear, descriptive name
|
|
159
|
+
- **Root cause analysis**: Why these tests are failing
|
|
160
|
+
- **Failure lineage category**: History of this pattern
|
|
161
|
+
- **Affected test count**: Number of tests in this pattern
|
|
162
|
+
- **Example failures with file paths**: Representative examples
|
|
163
|
+
- **Recommendation**: One of:
|
|
164
|
+
- Fix Test (test checks right thing wrong way)
|
|
165
|
+
- Fix Code (test reveals actual bug)
|
|
166
|
+
- Fix Environment (test environment configuration issue)
|
|
167
|
+
- Adjust Expectations (test assertions too strict/loose)
|
|
168
|
+
- Investigate (unclear if test or code issue)
|
|
169
|
+
- Defer (known issue, not blocking, address later)
|
|
170
|
+
- **Rationale**: Why this recommendation makes sense
|
|
171
|
+
|
|
172
|
+
**Step 2.3: Flag Potential Bugs**
|
|
173
|
+
|
|
174
|
+
Explicitly flag patterns that may reveal real bugs:
|
|
175
|
+
- Evidence for why this might be a real bug
|
|
176
|
+
- Recommendation for investigation or fix
|
|
177
|
+
|
|
178
|
+
### Phase 3: Confirmation (Human Review)
|
|
179
|
+
|
|
180
|
+
**Step 3.1: Present Findings for Review**
|
|
181
|
+
|
|
182
|
+
Present the findings document to the human reviewer, highlighting:
|
|
183
|
+
- Patterns requiring decision (e.g., optimize vs adjust threshold)
|
|
184
|
+
- Patterns flagged as potential bugs
|
|
185
|
+
- Stable failures that may need different approach
|
|
186
|
+
|
|
187
|
+
**Step 3.2: Incorporate Feedback**
|
|
188
|
+
|
|
189
|
+
Based on human review:
|
|
190
|
+
- Adjust recommendations as directed
|
|
191
|
+
- Document decisions made with rationale
|
|
192
|
+
- Resolve any ambiguous patterns
|
|
193
|
+
|
|
194
|
+
**Step 3.3: Create Confirmed Actions Document**
|
|
195
|
+
|
|
196
|
+
Create `findings/test-failure-confirmed-actions.md` with:
|
|
197
|
+
- Summary table by action category
|
|
198
|
+
- Confirmed actions in priority order
|
|
199
|
+
- Deferred actions with rationale
|
|
200
|
+
- Decisions made with rationale
|
|
201
|
+
|
|
202
|
+
### Phase 4: Deliverables (Implementation Plan)
|
|
203
|
+
|
|
204
|
+
**Step 4.1: Create Implementation Spec**
|
|
205
|
+
|
|
206
|
+
Create a new spec (e.g., `030-test-failure-fixes`) with:
|
|
207
|
+
- Design-outline based on confirmed actions only
|
|
208
|
+
- Prioritized fix order considering:
|
|
209
|
+
- Test count affected
|
|
210
|
+
- Severity of issue
|
|
211
|
+
- Dependencies between patterns
|
|
212
|
+
- Success criteria (all tests passing, no regressions)
|
|
213
|
+
|
|
214
|
+
**Step 4.2: Update Methodology (Optional)**
|
|
215
|
+
|
|
216
|
+
If the audit revealed new patterns or techniques:
|
|
217
|
+
- Update this methodology document
|
|
218
|
+
- Add lessons learned
|
|
219
|
+
- Refine workflow steps
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Pattern Identification Techniques
|
|
224
|
+
|
|
225
|
+
### Technique 1: Error Message Clustering
|
|
226
|
+
|
|
227
|
+
Group failures by exact error message match:
|
|
228
|
+
```
|
|
229
|
+
"Expected: < 10000, Received: 10006" → Performance threshold pattern
|
|
230
|
+
"Multiplier reference is undefined" → Undefined reference pattern
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Technique 2: Error Type Grouping
|
|
234
|
+
|
|
235
|
+
Group by assertion type:
|
|
236
|
+
- `expect().toBe()` - Value mismatch
|
|
237
|
+
- `expect().toContain()` - Missing element
|
|
238
|
+
- `expect().toEqual()` - Object mismatch
|
|
239
|
+
- `Timeout` - Performance/async issues
|
|
240
|
+
- `Error thrown` - Runtime errors
|
|
241
|
+
|
|
242
|
+
### Technique 3: File Path Analysis
|
|
243
|
+
|
|
244
|
+
Group by test file location:
|
|
245
|
+
- Same test file → Likely same root cause
|
|
246
|
+
- Same directory → Potentially related subsystem
|
|
247
|
+
- Same component → Component-specific issue
|
|
248
|
+
|
|
249
|
+
### Technique 4: Lineage Comparison
|
|
250
|
+
|
|
251
|
+
Compare against previous audit findings:
|
|
252
|
+
- Match by test name
|
|
253
|
+
- Match by error message
|
|
254
|
+
- Match by file path
|
|
255
|
+
|
|
256
|
+
### Technique 5: Root Cause Tracing
|
|
257
|
+
|
|
258
|
+
For each pattern, trace to root cause:
|
|
259
|
+
1. What is the test checking?
|
|
260
|
+
2. What is the actual behavior?
|
|
261
|
+
3. Is the test correct or is the code wrong?
|
|
262
|
+
4. What would fix this?
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Findings Document Template
|
|
267
|
+
|
|
268
|
+
```markdown
|
|
269
|
+
# Test Failure Audit Findings
|
|
270
|
+
|
|
271
|
+
**Date**: [Audit Date]
|
|
272
|
+
**Spec**: [Spec Number] - [Spec Name]
|
|
273
|
+
**Test Run**: [Timestamp]
|
|
274
|
+
**Summary**: [X] patterns identified across [Y] failing tests
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Summary Table
|
|
279
|
+
|
|
280
|
+
| # | Test File Path | Test Name | Error Type | Lineage |
|
|
281
|
+
|---|----------------|-----------|------------|---------|
|
|
282
|
+
| 1 | `path/to/test.ts` | Test name | Error type | Lineage |
|
|
283
|
+
| ... | ... | ... | ... | ... |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Detailed Failure Catalog
|
|
288
|
+
|
|
289
|
+
### Failure 1: [Brief Description]
|
|
290
|
+
|
|
291
|
+
**Test File Path**: `path/to/test.ts`
|
|
292
|
+
**Test Name**: `Describe Block › Test Name`
|
|
293
|
+
**Error Type**: `expect().toBe()` - Value mismatch
|
|
294
|
+
**Error Message**: Expected X, Received Y
|
|
295
|
+
**Stack Trace Context**: Line N - relevant context
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Pattern Details
|
|
300
|
+
|
|
301
|
+
### Pattern P1: [Pattern Name]
|
|
302
|
+
|
|
303
|
+
**Root Cause Analysis**: [Description of underlying issue]
|
|
304
|
+
|
|
305
|
+
**Failure Lineage Category**: [Stable/Fixed-then-regressed/Newly-surfaced/Cascading/True-new]
|
|
306
|
+
- [Context about history, previous attempts if applicable]
|
|
307
|
+
|
|
308
|
+
**Affected Test Count**: [N] tests
|
|
309
|
+
|
|
310
|
+
**Example Failures with File Paths**:
|
|
311
|
+
1. `path/to/test.ts:LN` - Brief description
|
|
312
|
+
2. `path/to/test.ts:LN` - Brief description
|
|
313
|
+
3. `path/to/test.ts:LN` - Brief description
|
|
314
|
+
|
|
315
|
+
**Recommendation**: [Fix Test / Fix Code / Fix Environment / Adjust Expectations / Investigate / Defer]
|
|
316
|
+
|
|
317
|
+
**Rationale**: [Why this recommendation makes sense]
|
|
318
|
+
|
|
319
|
+
**[If Performance Pattern] Investigation Findings**:
|
|
320
|
+
- Actual execution time: [X]ms
|
|
321
|
+
- Current threshold: [Y]ms
|
|
322
|
+
- Bottleneck source: [Source]
|
|
323
|
+
- Scale relationship: [Relationship]
|
|
324
|
+
- Decision: [Optimize code / Adjust threshold / Investigate further]
|
|
325
|
+
- Justification: [Why this decision]
|
|
326
|
+
|
|
327
|
+
**[If Bug Flag] Potential Bug**:
|
|
328
|
+
- Evidence: [Why this might be a real bug]
|
|
329
|
+
- Recommendation: [Investigate / Fix in scope / Separate task]
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Patterns Requiring Decision
|
|
334
|
+
|
|
335
|
+
[List patterns where human input is needed]
|
|
336
|
+
|
|
337
|
+
## Potential Bugs Flagged
|
|
338
|
+
|
|
339
|
+
[List patterns that may reveal real bugs]
|
|
340
|
+
|
|
341
|
+
## Deferred Patterns
|
|
342
|
+
|
|
343
|
+
[List patterns recommended for deferral with rationale]
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Failure Lineage Tracking Approach
|
|
349
|
+
|
|
350
|
+
### Purpose
|
|
351
|
+
|
|
352
|
+
Lineage tracking answers: "Have we seen this failure before, and what happened when we tried to fix it?"
|
|
353
|
+
|
|
354
|
+
### Lineage Categories
|
|
355
|
+
|
|
356
|
+
| Category | Definition | Action Implication |
|
|
357
|
+
|----------|------------|-------------------|
|
|
358
|
+
| **Stable** | Present in multiple previous audits, never successfully fixed | Consider different approach; may need architectural change |
|
|
359
|
+
| **Fixed-then-regressed** | Was fixed in previous spec, now failing again | Identify what broke it; may need regression test |
|
|
360
|
+
| **Newly-surfaced** | Appeared after a fix (was masked by other failures) | Often positive - reveals hidden issues; standard fix |
|
|
361
|
+
| **Cascading** | Expected consequence of another fix | Address root cause first; may resolve automatically |
|
|
362
|
+
| **True-new** | First appearance, unrelated to previous work | Standard fix approach |
|
|
363
|
+
|
|
364
|
+
### Tracking Process
|
|
365
|
+
|
|
366
|
+
1. **Gather Previous Findings**: Collect findings documents from previous audits (e.g., Spec 025, 026)
|
|
367
|
+
|
|
368
|
+
2. **Match by Test Name**: For each current failure, search previous findings for matching test names
|
|
369
|
+
|
|
370
|
+
3. **Match by Error Message**: If test name doesn't match, search for similar error messages
|
|
371
|
+
|
|
372
|
+
4. **Match by Pattern**: If no direct match, check if failure fits a previously identified pattern
|
|
373
|
+
|
|
374
|
+
5. **Assign Lineage**: Based on matches, assign appropriate lineage category
|
|
375
|
+
|
|
376
|
+
6. **Document History**: For stable/regressed patterns, document what was tried before
|
|
377
|
+
|
|
378
|
+
### Example Lineage Documentation
|
|
379
|
+
|
|
380
|
+
```markdown
|
|
381
|
+
**Failure Lineage Category**: **Stable** (025 Pattern 6 → 026 → 029)
|
|
382
|
+
- Spec 025: Identified as Pattern 6 (Build System Token Generation Failures)
|
|
383
|
+
- Spec 026: Not directly addressed
|
|
384
|
+
- Spec 029: Still failing - same root cause
|
|
385
|
+
|
|
386
|
+
**Previous Fix Attempts**:
|
|
387
|
+
- Spec 025: Recommended "Fix Test" but not implemented
|
|
388
|
+
- Spec 026: Deferred due to scope constraints
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### Benefits of Lineage Tracking
|
|
392
|
+
|
|
393
|
+
1. **Prevents Repeated Failures**: Identifies patterns that keep recurring
|
|
394
|
+
2. **Informs Strategy**: Stable failures may need different approach
|
|
395
|
+
3. **Measures Progress**: Shows which patterns have been successfully resolved
|
|
396
|
+
4. **Preserves Knowledge**: Documents what was tried and why it didn't work
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## Clean Exit Audit Requirement
|
|
401
|
+
|
|
402
|
+
The Clean Exit Audit is a **mandatory process** that must be completed before any spec can be closed. This requirement exists to prevent issue accumulation and ensure explicit accountability for all discovered problems.
|
|
403
|
+
|
|
404
|
+
### Why This Is Mandatory
|
|
405
|
+
|
|
406
|
+
**The Problem**: AI agents (and humans) naturally stay focused on their assigned task—which is good for productivity. However, this focus can lead to "sidestepping" unrelated issues discovered during work. When issues are noticed but not documented, they accumulate silently until a dedicated cleanup spec (like Spec 029) becomes necessary.
|
|
407
|
+
|
|
408
|
+
**The Evidence**: Specs 025, 026, and 029 demonstrate this pattern:
|
|
409
|
+
- Issues discovered in one spec were not documented
|
|
410
|
+
- The same issues appeared in subsequent specs
|
|
411
|
+
- Eventually, a dedicated audit spec was required to address accumulated problems
|
|
412
|
+
- This represents wasted effort that could have been prevented
|
|
413
|
+
|
|
414
|
+
**The Solution**: By mandating a clean exit audit, we:
|
|
415
|
+
- Force explicit decisions about every discovered issue
|
|
416
|
+
- Create accountability for issue accumulation
|
|
417
|
+
- Prevent the "I'll just ignore that" pattern
|
|
418
|
+
- Reduce the need for future dedicated cleanup specs
|
|
419
|
+
|
|
420
|
+
### Issue Registry Maintenance Requirement
|
|
421
|
+
|
|
422
|
+
**Requirement**: Any issues discovered during spec work MUST be logged to an issues registry.
|
|
423
|
+
|
|
424
|
+
**What Constitutes an Issue**:
|
|
425
|
+
- Test failures (new or existing)
|
|
426
|
+
- Code bugs discovered during implementation
|
|
427
|
+
- Configuration problems
|
|
428
|
+
- Documentation gaps
|
|
429
|
+
- Technical debt that blocks or complicates work
|
|
430
|
+
- Environment issues affecting development
|
|
431
|
+
|
|
432
|
+
**What Is NOT an Issue** (see Opportunity Logging):
|
|
433
|
+
- Optimization opportunities
|
|
434
|
+
- Style preferences
|
|
435
|
+
- "Nice to have" improvements
|
|
436
|
+
- Refactoring ideas
|
|
437
|
+
|
|
438
|
+
**Registry Format**:
|
|
439
|
+
|
|
440
|
+
Issues should be logged in `.kiro/issues/issues-registry.md` (or spec-specific location) with:
|
|
441
|
+
|
|
442
|
+
```markdown
|
|
443
|
+
## Issue [ID]: [Brief Description]
|
|
444
|
+
|
|
445
|
+
**Discovered**: [Date]
|
|
446
|
+
**Discovered During**: Spec [Number] - [Name], Task [N.M]
|
|
447
|
+
**Severity**: Critical / High / Medium / Low
|
|
448
|
+
**Type**: Test Failure / Code Bug / Configuration / Documentation / Technical Debt / Environment
|
|
449
|
+
|
|
450
|
+
**Description**:
|
|
451
|
+
[Clear description of the issue]
|
|
452
|
+
|
|
453
|
+
**Evidence**:
|
|
454
|
+
[Error messages, test output, or other evidence]
|
|
455
|
+
|
|
456
|
+
**Status**: Open / Resolved / Deferred
|
|
457
|
+
**Resolution**: [If resolved, how it was fixed]
|
|
458
|
+
**Deferral Rationale**: [If deferred, why and where it should be addressed]
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Maintenance Responsibilities**:
|
|
462
|
+
1. **During Spec Work**: Log issues as they are discovered
|
|
463
|
+
2. **Before Spec Closure**: Review registry for completeness
|
|
464
|
+
3. **At Spec Closure**: Ensure all issues have a status (Resolved or Deferred)
|
|
465
|
+
|
|
466
|
+
### Exit Audit Before Spec Closure Requirement
|
|
467
|
+
|
|
468
|
+
**Requirement**: Before marking a spec as complete, an exit audit MUST be performed.
|
|
469
|
+
|
|
470
|
+
**Exit Audit Steps**:
|
|
471
|
+
|
|
472
|
+
1. **Run Full Test Suite**
|
|
473
|
+
```bash
|
|
474
|
+
npm test
|
|
475
|
+
```
|
|
476
|
+
Document the results:
|
|
477
|
+
- Total test suites (passing/failing)
|
|
478
|
+
- Total tests (passing/failing/skipped)
|
|
479
|
+
- Any new failures since spec started
|
|
480
|
+
|
|
481
|
+
2. **Compare to Baseline**
|
|
482
|
+
- What was the test status when the spec started?
|
|
483
|
+
- Are there any new failures introduced by this spec?
|
|
484
|
+
- Are there any failures that should have been fixed but weren't?
|
|
485
|
+
|
|
486
|
+
3. **Review Issues Registry**
|
|
487
|
+
- Are all discovered issues logged?
|
|
488
|
+
- Does each issue have a status?
|
|
489
|
+
- Are deferral rationales documented?
|
|
490
|
+
|
|
491
|
+
4. **Document Exit Audit Results**
|
|
492
|
+
|
|
493
|
+
In the spec's completion documentation, include:
|
|
494
|
+
```markdown
|
|
495
|
+
## Exit Audit Results
|
|
496
|
+
|
|
497
|
+
**Test Suite Status**:
|
|
498
|
+
- Suites: [X] passing, [Y] failing
|
|
499
|
+
- Tests: [X] passing, [Y] failing, [Z] skipped
|
|
500
|
+
|
|
501
|
+
**Comparison to Baseline**:
|
|
502
|
+
- New failures introduced: [None / List]
|
|
503
|
+
- Failures resolved: [List]
|
|
504
|
+
- Net change: [+/-N failures]
|
|
505
|
+
|
|
506
|
+
**Issues Registry Status**:
|
|
507
|
+
- Total issues logged: [N]
|
|
508
|
+
- Resolved: [N]
|
|
509
|
+
- Deferred: [N]
|
|
510
|
+
|
|
511
|
+
**Exit Audit Passed**: [Yes/No]
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
**When Exit Audit Fails**:
|
|
515
|
+
- If new failures were introduced, they must be resolved or explicitly deferred
|
|
516
|
+
- If issues are undocumented, they must be logged
|
|
517
|
+
- Spec cannot close until exit audit passes
|
|
518
|
+
|
|
519
|
+
### Resolution or Explicit Deferral Requirement
|
|
520
|
+
|
|
521
|
+
**Requirement**: Every discovered issue MUST be either resolved within the spec OR explicitly deferred with documented rationale.
|
|
522
|
+
|
|
523
|
+
**Resolution Path**:
|
|
524
|
+
|
|
525
|
+
When an issue can be resolved within the spec:
|
|
526
|
+
1. Fix the issue as part of the spec work
|
|
527
|
+
2. Update the issues registry with resolution details
|
|
528
|
+
3. Verify the fix (run tests, validate behavior)
|
|
529
|
+
4. Mark issue as "Resolved"
|
|
530
|
+
|
|
531
|
+
**Deferral Path**:
|
|
532
|
+
|
|
533
|
+
When an issue cannot or should not be resolved within the spec:
|
|
534
|
+
1. Document why deferral is appropriate:
|
|
535
|
+
- Out of scope for current spec
|
|
536
|
+
- Requires architectural changes beyond spec scope
|
|
537
|
+
- Blocked by external dependencies
|
|
538
|
+
- Lower priority than spec objectives
|
|
539
|
+
- Requires investigation before fix can be determined
|
|
540
|
+
2. Specify where the issue should be addressed:
|
|
541
|
+
- Specific future spec number
|
|
542
|
+
- Backlog for prioritization
|
|
543
|
+
- Separate investigation task
|
|
544
|
+
3. Mark issue as "Deferred" with rationale
|
|
545
|
+
|
|
546
|
+
**Deferral Rationale Requirements**:
|
|
547
|
+
|
|
548
|
+
A valid deferral rationale MUST include:
|
|
549
|
+
- **Why**: Clear explanation of why the issue cannot be resolved now
|
|
550
|
+
- **Where**: Where the issue should be addressed (specific spec, backlog, etc.)
|
|
551
|
+
- **Impact**: What is the impact of deferring (blocking, degraded experience, technical debt)
|
|
552
|
+
|
|
553
|
+
**Example Valid Deferral**:
|
|
554
|
+
```markdown
|
|
555
|
+
**Status**: Deferred
|
|
556
|
+
**Deferral Rationale**:
|
|
557
|
+
- **Why**: This performance issue requires profiling and optimization work that is outside the scope of this audit-only spec. The audit identified the issue but cannot implement fixes.
|
|
558
|
+
- **Where**: Spec 030 - Test Failure Fixes (Pattern P9)
|
|
559
|
+
- **Impact**: Performance tests will continue to fail until addressed. Not blocking other development.
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
**Example Invalid Deferral**:
|
|
563
|
+
```markdown
|
|
564
|
+
**Status**: Deferred
|
|
565
|
+
**Deferral Rationale**: Will fix later.
|
|
566
|
+
```
|
|
567
|
+
This is invalid because it lacks specificity about why, where, and impact.
|
|
568
|
+
|
|
569
|
+
### No Silent Ignoring Policy
|
|
570
|
+
|
|
571
|
+
**Requirement**: A spec CANNOT close with undocumented issues. Every issue must be explicitly acknowledged.
|
|
572
|
+
|
|
573
|
+
**What "Silent Ignoring" Looks Like**:
|
|
574
|
+
- Noticing a test failure but not logging it
|
|
575
|
+
- Seeing an error message but not investigating
|
|
576
|
+
- Encountering a bug but working around it without documentation
|
|
577
|
+
- Discovering technical debt but not recording it
|
|
578
|
+
- Observing configuration problems but not reporting them
|
|
579
|
+
|
|
580
|
+
**Why Silent Ignoring Is Prohibited**:
|
|
581
|
+
1. **Knowledge Loss**: Undocumented issues are forgotten and rediscovered later
|
|
582
|
+
2. **Accountability Gap**: No one is responsible for issues that aren't logged
|
|
583
|
+
3. **Accumulation**: Silent issues accumulate until they require dedicated cleanup
|
|
584
|
+
4. **Wasted Effort**: Future developers will spend time rediscovering known issues
|
|
585
|
+
|
|
586
|
+
**Enforcement Mechanism**:
|
|
587
|
+
|
|
588
|
+
The exit audit serves as the enforcement mechanism:
|
|
589
|
+
- Exit audit requires running full test suite
|
|
590
|
+
- Any failures must be in the issues registry
|
|
591
|
+
- Any issues discovered during spec work must be logged
|
|
592
|
+
- Spec cannot close until all issues are documented
|
|
593
|
+
|
|
594
|
+
**What To Do When You Discover an Issue**:
|
|
595
|
+
|
|
596
|
+
1. **Stop and Log**: Take 2 minutes to log the issue in the registry
|
|
597
|
+
2. **Assess Scope**: Is this within spec scope or out of scope?
|
|
598
|
+
3. **Decide Path**: Resolve now or defer with rationale
|
|
599
|
+
4. **Continue Work**: Resume your task with the issue documented
|
|
600
|
+
|
|
601
|
+
**The 2-Minute Rule**: If logging an issue takes more than 2 minutes, you're over-documenting. Keep entries concise but complete.
|
|
602
|
+
|
|
603
|
+
### Rationale for Mandatory Status
|
|
604
|
+
|
|
605
|
+
The Clean Exit Audit is mandatory (not optional) for the following reasons:
|
|
606
|
+
|
|
607
|
+
**1. Prevents Issue Accumulation**
|
|
608
|
+
|
|
609
|
+
Without mandatory exit audits, issues accumulate silently. Specs 025, 026, and 029 demonstrate this pattern—each spec discovered issues that should have been caught earlier. Mandatory audits break this cycle.
|
|
610
|
+
|
|
611
|
+
**2. Creates Explicit Accountability**
|
|
612
|
+
|
|
613
|
+
When exit audits are optional, there's no accountability for discovered issues. Making them mandatory ensures someone is responsible for every issue—either resolving it or explicitly deferring it.
|
|
614
|
+
|
|
615
|
+
**3. Front-Loads Overhead**
|
|
616
|
+
|
|
617
|
+
The overhead of exit audits is minimal when issues are addressed during spec work. The alternative—dedicated cleanup specs—is far more expensive. Mandatory audits front-load small overhead to prevent large cleanup efforts.
|
|
618
|
+
|
|
619
|
+
**4. Preserves Institutional Knowledge**
|
|
620
|
+
|
|
621
|
+
Issues discovered but not documented are lost knowledge. Mandatory logging ensures that discoveries are preserved for future reference, even if they're deferred.
|
|
622
|
+
|
|
623
|
+
**5. Enables Informed Prioritization**
|
|
624
|
+
|
|
625
|
+
A well-maintained issues registry enables informed prioritization. Without it, decisions are made without full knowledge of outstanding problems.
|
|
626
|
+
|
|
627
|
+
**6. Reduces Cognitive Load**
|
|
628
|
+
|
|
629
|
+
When issues are documented, developers don't need to remember them. The registry serves as external memory, reducing cognitive load and preventing issues from being forgotten.
|
|
630
|
+
|
|
631
|
+
### Lightweight Implementation
|
|
632
|
+
|
|
633
|
+
The Clean Exit Audit is designed to be lightweight when issues are addressed during spec work:
|
|
634
|
+
|
|
635
|
+
**During Normal Spec Work**:
|
|
636
|
+
- Log issues as discovered (2 minutes each)
|
|
637
|
+
- Resolve issues when possible
|
|
638
|
+
- Defer with rationale when necessary
|
|
639
|
+
|
|
640
|
+
**At Spec Closure**:
|
|
641
|
+
- Run test suite (already part of validation)
|
|
642
|
+
- Review issues registry (5 minutes)
|
|
643
|
+
- Document exit audit results (5 minutes)
|
|
644
|
+
|
|
645
|
+
**Total Overhead**: ~10-15 minutes at spec closure, plus 2 minutes per issue discovered during work.
|
|
646
|
+
|
|
647
|
+
**When Overhead Increases**:
|
|
648
|
+
- If many issues were not logged during work → More time needed at closure
|
|
649
|
+
- If issues were silently ignored → Exit audit will fail, requiring remediation
|
|
650
|
+
|
|
651
|
+
**The Key Insight**: The overhead is proportional to how well issues were managed during the spec. Good issue hygiene during work means minimal overhead at closure.
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
## Opportunity Logging (Optional Practice)
|
|
656
|
+
|
|
657
|
+
Opportunity Logging is an **optional practice** for capturing optimization opportunities, improvement ideas, and "nice to have" enhancements discovered during spec work. Unlike the Clean Exit Audit (which is mandatory), Opportunity Logging is a lightweight, voluntary practice that preserves institutional knowledge without creating overhead.
|
|
658
|
+
|
|
659
|
+
### Why This Is Optional (Not Mandatory)
|
|
660
|
+
|
|
661
|
+
**The Distinction**: Issues and opportunities are fundamentally different:
|
|
662
|
+
|
|
663
|
+
| Aspect | Issues (Mandatory) | Opportunities (Optional) |
|
|
664
|
+
|--------|-------------------|-------------------------|
|
|
665
|
+
| **Nature** | Problems that block or degrade functionality | Improvements that would enhance functionality |
|
|
666
|
+
| **Urgency** | Must be addressed or explicitly deferred | Can be addressed when convenient |
|
|
667
|
+
| **Impact of Ignoring** | Accumulates technical debt, causes regressions | Misses potential improvements |
|
|
668
|
+
| **Overhead** | Worth the overhead to prevent problems | Overhead may exceed benefit |
|
|
669
|
+
|
|
670
|
+
**Rationale for Optional Status**:
|
|
671
|
+
|
|
672
|
+
1. **Overhead vs. Value**: Mandatory opportunity logging would create overhead that may exceed the value captured. Issues must be logged because ignoring them causes problems; opportunities can be safely forgotten without immediate harm.
|
|
673
|
+
|
|
674
|
+
2. **Focus Preservation**: Requiring opportunity logging could distract from primary spec objectives. The Clean Exit Audit already ensures issues are addressed; adding mandatory opportunity logging would dilute focus.
|
|
675
|
+
|
|
676
|
+
3. **Natural Discovery**: Good opportunities tend to resurface naturally when they become relevant. Unlike issues (which accumulate silently), opportunities often re-emerge when the relevant code is touched again.
|
|
677
|
+
|
|
678
|
+
4. **Developer Judgment**: Developers are best positioned to judge which opportunities are worth recording. Making it optional respects this judgment rather than imposing blanket requirements.
|
|
679
|
+
|
|
680
|
+
5. **Avoiding Backlog Bloat**: Mandatory opportunity logging tends to create large backlogs of "nice to have" items that are never addressed. Optional logging encourages recording only high-value opportunities.
|
|
681
|
+
|
|
682
|
+
### Separate Registry from Issues
|
|
683
|
+
|
|
684
|
+
**Requirement**: Opportunities MUST be logged separately from issues.
|
|
685
|
+
|
|
686
|
+
**Why Separate Registries**:
|
|
687
|
+
|
|
688
|
+
1. **Different Lifecycles**: Issues require resolution or explicit deferral; opportunities can remain open indefinitely without harm.
|
|
689
|
+
|
|
690
|
+
2. **Different Prioritization**: Issues are prioritized by severity and impact; opportunities are prioritized by value and effort.
|
|
691
|
+
|
|
692
|
+
3. **Different Review Cadence**: Issues should be reviewed at spec closure (exit audit); opportunities can be reviewed periodically or when relevant.
|
|
693
|
+
|
|
694
|
+
4. **Prevents Confusion**: Mixing issues and opportunities makes it unclear what requires action vs. what is optional.
|
|
695
|
+
|
|
696
|
+
**Registry Location**:
|
|
697
|
+
|
|
698
|
+
Opportunities should be logged in `.kiro/opportunities/opportunities-registry.md` (or spec-specific location), separate from the issues registry at `.kiro/issues/issues-registry.md`.
|
|
699
|
+
|
|
700
|
+
**Example Registry Structure**:
|
|
701
|
+
|
|
702
|
+
```markdown
|
|
703
|
+
# Opportunities Registry
|
|
704
|
+
|
|
705
|
+
**Last Updated**: [Date]
|
|
706
|
+
**Total Opportunities**: [N]
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
## Opportunity [ID]: [Brief Description]
|
|
711
|
+
|
|
712
|
+
**Discovered**: [Date]
|
|
713
|
+
**Discovered During**: Spec [Number] - [Name], Task [N.M]
|
|
714
|
+
**Category**: Performance / Code Quality / Developer Experience / Architecture / Testing
|
|
715
|
+
**Estimated Value**: High / Medium / Low
|
|
716
|
+
**Estimated Effort**: High / Medium / Low
|
|
717
|
+
|
|
718
|
+
**Description**:
|
|
719
|
+
[Clear description of the opportunity]
|
|
720
|
+
|
|
721
|
+
**Potential Benefits**:
|
|
722
|
+
- [Benefit 1]
|
|
723
|
+
- [Benefit 2]
|
|
724
|
+
|
|
725
|
+
**Status**: Open / Implemented / Declined
|
|
726
|
+
**Implementation**: [If implemented, where and when]
|
|
727
|
+
**Decline Rationale**: [If declined, why]
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
### Lightweight Format
|
|
731
|
+
|
|
732
|
+
**Principle**: Opportunity logging should take no more than 2-3 minutes per entry.
|
|
733
|
+
|
|
734
|
+
**Minimum Required Fields**:
|
|
735
|
+
|
|
736
|
+
For a valid opportunity entry, only these fields are required:
|
|
737
|
+
- **ID**: Unique identifier (e.g., OPP-001)
|
|
738
|
+
- **Brief Description**: One-line summary
|
|
739
|
+
- **Discovered**: Date discovered
|
|
740
|
+
- **Category**: Type of opportunity
|
|
741
|
+
- **Description**: 2-3 sentences explaining the opportunity
|
|
742
|
+
|
|
743
|
+
**Optional Fields** (add if valuable):
|
|
744
|
+
|
|
745
|
+
- **Discovered During**: Spec and task context
|
|
746
|
+
- **Estimated Value/Effort**: Quick assessment
|
|
747
|
+
- **Potential Benefits**: List of benefits
|
|
748
|
+
- **Related Code**: File paths or components affected
|
|
749
|
+
|
|
750
|
+
**Example Minimal Entry**:
|
|
751
|
+
|
|
752
|
+
```markdown
|
|
753
|
+
## OPP-042: Cache token validation results
|
|
754
|
+
|
|
755
|
+
**Discovered**: 2025-12-26
|
|
756
|
+
**Category**: Performance
|
|
757
|
+
**Description**: Token validation is called multiple times during build. Caching validation results could reduce build time by ~15%.
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
**Example Detailed Entry** (when warranted):
|
|
761
|
+
|
|
762
|
+
```markdown
|
|
763
|
+
## OPP-043: Refactor release analysis to use streaming
|
|
764
|
+
|
|
765
|
+
**Discovered**: 2025-12-26
|
|
766
|
+
**Discovered During**: Spec 029 - Test Failure Audit, Task 1.4
|
|
767
|
+
**Category**: Performance
|
|
768
|
+
**Estimated Value**: High
|
|
769
|
+
**Estimated Effort**: Medium
|
|
770
|
+
|
|
771
|
+
**Description**:
|
|
772
|
+
The release analysis system loads entire git history into memory before processing. Refactoring to use streaming would reduce memory usage and enable analysis of larger repositories.
|
|
773
|
+
|
|
774
|
+
**Potential Benefits**:
|
|
775
|
+
- Reduced memory footprint during analysis
|
|
776
|
+
- Ability to analyze repositories with longer history
|
|
777
|
+
- Faster startup time (no upfront loading)
|
|
778
|
+
|
|
779
|
+
**Related Code** (historical — these files were removed in Spec 065):
|
|
780
|
+
- `src/release-analysis/git-operations.ts`
|
|
781
|
+
- `src/release-analysis/history-analyzer.ts`
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
### Threshold for Recording
|
|
785
|
+
|
|
786
|
+
**Guidance**: Not every improvement idea is worth recording. Use these thresholds to decide what to log.
|
|
787
|
+
|
|
788
|
+
**Record When**:
|
|
789
|
+
|
|
790
|
+
1. **Significant Impact**: The opportunity would meaningfully improve performance, code quality, or developer experience
|
|
791
|
+
- Example: "Caching could reduce build time by 30%"
|
|
792
|
+
- Example: "Refactoring would eliminate 500 lines of duplicate code"
|
|
793
|
+
|
|
794
|
+
2. **Non-Obvious Discovery**: The opportunity required investigation or insight to discover
|
|
795
|
+
- Example: "Profiling revealed unexpected bottleneck in token validation"
|
|
796
|
+
- Example: "Cross-referencing specs showed pattern that could be abstracted"
|
|
797
|
+
|
|
798
|
+
3. **Future Relevance**: The opportunity is likely to be relevant when the related code is touched again
|
|
799
|
+
- Example: "When we add new token types, this abstraction would simplify the work"
|
|
800
|
+
- Example: "Next time we optimize builds, this should be considered"
|
|
801
|
+
|
|
802
|
+
4. **Knowledge Preservation**: The opportunity captures institutional knowledge that would be lost otherwise
|
|
803
|
+
- Example: "This approach was considered but rejected because X; if X changes, reconsider"
|
|
804
|
+
- Example: "This workaround exists because of Y; when Y is fixed, this can be simplified"
|
|
805
|
+
|
|
806
|
+
**Don't Record When**:
|
|
807
|
+
|
|
808
|
+
1. **Trivial Improvements**: The opportunity is minor and obvious
|
|
809
|
+
- Example: "Could rename this variable to be clearer" (just do it or skip it)
|
|
810
|
+
- Example: "Could add a comment here" (just do it or skip it)
|
|
811
|
+
|
|
812
|
+
2. **Style Preferences**: The opportunity is a matter of preference, not objective improvement
|
|
813
|
+
- Example: "I prefer tabs over spaces" (not an opportunity)
|
|
814
|
+
- Example: "This could use a different design pattern" (unless there's clear benefit)
|
|
815
|
+
|
|
816
|
+
3. **Already Documented**: The opportunity is already captured elsewhere
|
|
817
|
+
- Example: "This is mentioned in the README" (don't duplicate)
|
|
818
|
+
- Example: "There's already a TODO comment for this" (don't duplicate)
|
|
819
|
+
|
|
820
|
+
4. **Speculative**: The opportunity is based on speculation rather than evidence
|
|
821
|
+
- Example: "This might be slow" (profile first, then record if confirmed)
|
|
822
|
+
- Example: "Users might want this feature" (validate first, then record if confirmed)
|
|
823
|
+
|
|
824
|
+
**The 30-Second Rule**: If you can't articulate the opportunity in 30 seconds, it's either not clear enough to record or needs more investigation before recording.
|
|
825
|
+
|
|
826
|
+
### When to Review Opportunities
|
|
827
|
+
|
|
828
|
+
Unlike issues (which are reviewed at spec closure), opportunities can be reviewed:
|
|
829
|
+
|
|
830
|
+
1. **Before Starting Related Work**: When beginning work on a component, check if there are logged opportunities for that area
|
|
831
|
+
|
|
832
|
+
2. **During Planning**: When planning new specs, review the opportunities registry for relevant items to include
|
|
833
|
+
|
|
834
|
+
3. **Periodically**: Quarterly review to archive stale opportunities and identify patterns
|
|
835
|
+
|
|
836
|
+
4. **When Capacity Allows**: During slower periods, review opportunities for quick wins
|
|
837
|
+
|
|
838
|
+
### Relationship to Clean Exit Audit
|
|
839
|
+
|
|
840
|
+
**Key Distinction**: The Clean Exit Audit is mandatory and focuses on issues. Opportunity logging is optional and separate.
|
|
841
|
+
|
|
842
|
+
**At Spec Closure**:
|
|
843
|
+
- **Required**: Complete Clean Exit Audit (issues registry, test status, exit audit results)
|
|
844
|
+
- **Optional**: Log any opportunities discovered during the spec
|
|
845
|
+
|
|
846
|
+
**The Exit Audit Does NOT**:
|
|
847
|
+
- Require reviewing the opportunities registry
|
|
848
|
+
- Require logging opportunities
|
|
849
|
+
- Fail if opportunities are not documented
|
|
850
|
+
|
|
851
|
+
**The Exit Audit DOES**:
|
|
852
|
+
- Ensure issues are documented (not opportunities)
|
|
853
|
+
- Require resolution or deferral of issues (not opportunities)
|
|
854
|
+
- Prevent silent ignoring of issues (opportunities can be silently ignored)
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## Performance Investigation Protocol
|
|
859
|
+
|
|
860
|
+
Performance timeout failures require investigation before adjusting thresholds. This protocol ensures that timeout adjustments are justified by evidence rather than convenience, preventing the gradual erosion of performance standards.
|
|
861
|
+
|
|
862
|
+
### Why Investigation Is Required
|
|
863
|
+
|
|
864
|
+
**The Problem**: When performance tests fail, the easiest "fix" is to increase the timeout threshold. However, this approach:
|
|
865
|
+
- Hides real performance regressions
|
|
866
|
+
- Gradually erodes performance standards over time
|
|
867
|
+
- Masks inefficiencies that should be optimized
|
|
868
|
+
- Creates technical debt that compounds
|
|
869
|
+
|
|
870
|
+
**The Solution**: Before any threshold adjustment, investigate to determine whether the issue is:
|
|
871
|
+
- **Code inefficiency** → Optimize the code
|
|
872
|
+
- **Legitimate scale growth** → Adjust threshold with justification
|
|
873
|
+
- **Test environment interference** → Adjust test configuration
|
|
874
|
+
- **Bug** → Fix the bug
|
|
875
|
+
|
|
876
|
+
### Investigation Steps
|
|
877
|
+
|
|
878
|
+
#### Step 1: Baseline Actual Execution Time
|
|
879
|
+
|
|
880
|
+
Measure the actual execution time outside of the test environment:
|
|
881
|
+
|
|
882
|
+
```bash
|
|
883
|
+
# Create a profiling script to measure operation in isolation
|
|
884
|
+
npx ts-node profile-operation.ts
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
**What to measure**:
|
|
888
|
+
- Average execution time across multiple runs (10-20 iterations)
|
|
889
|
+
- P95 execution time (95th percentile)
|
|
890
|
+
- Minimum and maximum times
|
|
891
|
+
- Standard deviation (to assess variance)
|
|
892
|
+
|
|
893
|
+
**Why this matters**: Test frameworks add overhead. Measuring in isolation reveals the true operation performance.
|
|
894
|
+
|
|
895
|
+
#### Step 2: Compare to Original Baseline
|
|
896
|
+
|
|
897
|
+
If the original baseline is documented (e.g., in test file comments), compare:
|
|
898
|
+
|
|
899
|
+
```
|
|
900
|
+
Current P95: 1.085ms
|
|
901
|
+
Original P95: 0.802ms
|
|
902
|
+
Ratio: 1.35x (35% slower)
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
**Interpretation**:
|
|
906
|
+
- **< 1.5x**: Within normal variance, likely not a regression
|
|
907
|
+
- **1.5x - 2x**: Borderline, investigate further
|
|
908
|
+
- **> 2x**: Likely regression, investigate root cause
|
|
909
|
+
|
|
910
|
+
#### Step 3: Identify Bottleneck Source
|
|
911
|
+
|
|
912
|
+
Profile the operation to identify where time is spent:
|
|
913
|
+
|
|
914
|
+
| Bottleneck Source | Indicators | Typical Causes |
|
|
915
|
+
|-------------------|------------|----------------|
|
|
916
|
+
| **Git operations** | High time in git commands | Large repository, many commits |
|
|
917
|
+
| **File I/O** | High time in read/write | Large files, many files, slow disk |
|
|
918
|
+
| **Analysis logic** | High time in processing | Inefficient algorithms, unnecessary work |
|
|
919
|
+
| **Network** | High time in network calls | External dependencies, latency |
|
|
920
|
+
| **Test environment** | High time only in test suite | Jest overhead, concurrent tests |
|
|
921
|
+
|
|
922
|
+
**Profiling approach**:
|
|
923
|
+
```typescript
|
|
924
|
+
// Break down operation into components
|
|
925
|
+
const start = performance.now();
|
|
926
|
+
const step1 = await operation1();
|
|
927
|
+
const step1Time = performance.now() - start;
|
|
928
|
+
|
|
929
|
+
const step2Start = performance.now();
|
|
930
|
+
const step2 = await operation2();
|
|
931
|
+
const step2Time = performance.now() - step2Start;
|
|
932
|
+
|
|
933
|
+
console.log(`Step 1: ${step1Time}ms, Step 2: ${step2Time}ms`);
|
|
934
|
+
```
|
|
935
|
+
|
|
936
|
+
#### Step 4: Determine Scale Relationship
|
|
937
|
+
|
|
938
|
+
Understand how the operation scales:
|
|
939
|
+
|
|
940
|
+
| Scale Relationship | Behavior | Implication |
|
|
941
|
+
|-------------------|----------|-------------|
|
|
942
|
+
| **Constant** | Time doesn't grow with input size | Threshold should remain stable |
|
|
943
|
+
| **Linear** | Time grows proportionally with input | Threshold may need adjustment as project grows |
|
|
944
|
+
| **Exponential** | Time grows faster than input | Optimization required |
|
|
945
|
+
|
|
946
|
+
**How to test**:
|
|
947
|
+
```typescript
|
|
948
|
+
// Test with different input sizes
|
|
949
|
+
for (const size of [10, 100, 1000]) {
|
|
950
|
+
const time = await measureOperation(size);
|
|
951
|
+
console.log(`Size ${size}: ${time}ms`);
|
|
952
|
+
}
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
#### Step 5: Check for Code Changes
|
|
956
|
+
|
|
957
|
+
Review git history for changes since the baseline was set:
|
|
958
|
+
|
|
959
|
+
```bash
|
|
960
|
+
# Check for changes to the relevant code
|
|
961
|
+
git log --oneline --since="YYYY-MM-DD" -- path/to/relevant/code.ts
|
|
962
|
+
|
|
963
|
+
# Compare current code to baseline
|
|
964
|
+
git diff BASELINE_COMMIT..HEAD -- path/to/relevant/code.ts
|
|
965
|
+
```
|
|
966
|
+
|
|
967
|
+
**What to look for**:
|
|
968
|
+
- New functionality that adds overhead
|
|
969
|
+
- Refactoring that changed performance characteristics
|
|
970
|
+
- Dependencies that were updated
|
|
971
|
+
- Configuration changes
|
|
972
|
+
|
|
973
|
+
#### Step 6: Test in Isolation vs Full Suite
|
|
974
|
+
|
|
975
|
+
Compare performance in isolation vs full test suite:
|
|
976
|
+
|
|
977
|
+
```bash
|
|
978
|
+
# Run specific test in isolation
|
|
979
|
+
npm test -- --testPathPatterns="PerformanceTest"
|
|
980
|
+
|
|
981
|
+
# Run full test suite
|
|
982
|
+
npm test
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
**If isolation passes but full suite fails**: The issue is test environment interference, not code performance.
|
|
986
|
+
|
|
987
|
+
### Decision Framework
|
|
988
|
+
|
|
989
|
+
Based on investigation findings, apply this decision framework:
|
|
990
|
+
|
|
991
|
+
```
|
|
992
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
993
|
+
│ INVESTIGATION COMPLETE │
|
|
994
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
995
|
+
│
|
|
996
|
+
▼
|
|
997
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
998
|
+
│ Is current performance significantly worse than baseline? │
|
|
999
|
+
│ (> 1.5x slower in isolated measurement) │
|
|
1000
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1001
|
+
│
|
|
1002
|
+
┌───────────────┴───────────────┐
|
|
1003
|
+
│ NO │ YES
|
|
1004
|
+
▼ ▼
|
|
1005
|
+
┌─────────────────────────┐ ┌─────────────────────────────────┐
|
|
1006
|
+
│ Issue is likely test │ │ Were there code changes since │
|
|
1007
|
+
│ environment, not code │ │ baseline was set? │
|
|
1008
|
+
│ │ └─────────────────────────────────┘
|
|
1009
|
+
│ RECOMMENDATION: │ │
|
|
1010
|
+
│ • Adjust test config │ ┌───────────┴───────────┐
|
|
1011
|
+
│ • Run perf tests in │ │ NO │ YES
|
|
1012
|
+
│ isolation │ ▼ ▼
|
|
1013
|
+
│ • OR adjust threshold │ ┌───────────────┐ ┌─────────────┐
|
|
1014
|
+
│ for full-suite │ │ Scale growth │ │ Code change │
|
|
1015
|
+
│ overhead │ │ or env change │ │ caused │
|
|
1016
|
+
└─────────────────────────┘ │ │ │ regression │
|
|
1017
|
+
│ RECOMMENDATION:│ │ │
|
|
1018
|
+
│ • Adjust │ │ RECOMMEND: │
|
|
1019
|
+
│ threshold │ │ • Optimize │
|
|
1020
|
+
│ with │ │ code │
|
|
1021
|
+
│ justification│ │ • Revert │
|
|
1022
|
+
└───────────────┘ │ change │
|
|
1023
|
+
└─────────────┘
|
|
1024
|
+
```
|
|
1025
|
+
|
|
1026
|
+
### Recommendation Categories
|
|
1027
|
+
|
|
1028
|
+
#### Optimize Code
|
|
1029
|
+
|
|
1030
|
+
**When to recommend**: Investigation reveals code inefficiency that can be improved.
|
|
1031
|
+
|
|
1032
|
+
**Documentation required**:
|
|
1033
|
+
- Specific inefficiency identified
|
|
1034
|
+
- Proposed optimization approach
|
|
1035
|
+
- Expected improvement
|
|
1036
|
+
|
|
1037
|
+
**Example**:
|
|
1038
|
+
```markdown
|
|
1039
|
+
**Recommendation**: Optimize Code
|
|
1040
|
+
**Inefficiency**: Token validation is called N times per build, where N = number of tokens
|
|
1041
|
+
**Proposed Fix**: Cache validation results after first call
|
|
1042
|
+
**Expected Improvement**: O(N) → O(1) for repeated validations
|
|
1043
|
+
```
|
|
1044
|
+
|
|
1045
|
+
#### Adjust Threshold
|
|
1046
|
+
|
|
1047
|
+
**When to recommend**: Investigation confirms legitimate scale growth or environment factors.
|
|
1048
|
+
|
|
1049
|
+
**Documentation required**:
|
|
1050
|
+
- Evidence that code is not inefficient
|
|
1051
|
+
- Justification for new threshold value
|
|
1052
|
+
- Comparison to baseline
|
|
1053
|
+
|
|
1054
|
+
**Example**:
|
|
1055
|
+
```markdown
|
|
1056
|
+
**Recommendation**: Adjust Threshold
|
|
1057
|
+
**Evidence**:
|
|
1058
|
+
- Isolated performance: 1.085ms P95 (within 35% of baseline)
|
|
1059
|
+
- Full suite performance: 25ms (test environment overhead)
|
|
1060
|
+
- No code changes since baseline
|
|
1061
|
+
**Justification**: Test environment overhead causes 25x slowdown in full suite
|
|
1062
|
+
**New Threshold**: 30ms (allows for environment variance while catching 2x+ regressions)
|
|
1063
|
+
```
|
|
1064
|
+
|
|
1065
|
+
#### Adjust Test Configuration
|
|
1066
|
+
|
|
1067
|
+
**When to recommend**: Investigation reveals test environment interference.
|
|
1068
|
+
|
|
1069
|
+
**Documentation required**:
|
|
1070
|
+
- Evidence of environment interference
|
|
1071
|
+
- Proposed configuration change
|
|
1072
|
+
- Expected outcome
|
|
1073
|
+
|
|
1074
|
+
**Example**:
|
|
1075
|
+
```markdown
|
|
1076
|
+
**Recommendation**: Adjust Test Configuration
|
|
1077
|
+
**Evidence**:
|
|
1078
|
+
- Tests pass in isolation (1.255s total)
|
|
1079
|
+
- Tests fail in full suite (25ms+ per operation vs 2ms threshold)
|
|
1080
|
+
- No code changes since baseline
|
|
1081
|
+
**Proposed Change**: Run performance tests in separate Jest project
|
|
1082
|
+
**Expected Outcome**: Accurate performance measurement without suite overhead
|
|
1083
|
+
```
|
|
1084
|
+
|
|
1085
|
+
#### Investigate Further
|
|
1086
|
+
|
|
1087
|
+
**When to recommend**: Investigation is inconclusive.
|
|
1088
|
+
|
|
1089
|
+
**Documentation required**:
|
|
1090
|
+
- What was investigated
|
|
1091
|
+
- What remains unclear
|
|
1092
|
+
- Proposed next steps
|
|
1093
|
+
|
|
1094
|
+
**Example**:
|
|
1095
|
+
```markdown
|
|
1096
|
+
**Recommendation**: Investigate Further
|
|
1097
|
+
**Investigated**: Isolated performance, code changes, scale relationship
|
|
1098
|
+
**Unclear**: Why P95 variance is high (0.5ms - 2.5ms range)
|
|
1099
|
+
**Next Steps**:
|
|
1100
|
+
1. Profile memory allocation during operation
|
|
1101
|
+
2. Check for GC pauses affecting timing
|
|
1102
|
+
3. Test on different hardware to rule out machine-specific issues
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
### Example from Spec 029: P9 Performance Investigation
|
|
1106
|
+
|
|
1107
|
+
This section documents the actual investigation performed during Spec 029 for Pattern P9 (Performance Validation Timeouts), demonstrating the protocol in practice.
|
|
1108
|
+
|
|
1109
|
+
#### Context
|
|
1110
|
+
|
|
1111
|
+
**Pattern**: P9 - Performance Validation Timeouts
|
|
1112
|
+
**Symptoms**: 3 tests failing with 3-15x performance degradation vs November 2025 baseline
|
|
1113
|
+
**Initial Assessment**: Unclear whether code regression or threshold issue
|
|
1114
|
+
|
|
1115
|
+
#### Investigation Performed
|
|
1116
|
+
|
|
1117
|
+
**Step 1: Baseline Actual Execution Time**
|
|
1118
|
+
|
|
1119
|
+
Created `profile-p9-performance.ts` to measure operations outside Jest:
|
|
1120
|
+
|
|
1121
|
+
```
|
|
1122
|
+
Statistics Operation:
|
|
1123
|
+
Current: avg=0.434ms, p95=1.085ms
|
|
1124
|
+
Baseline: avg=0.338ms, p95=0.802ms
|
|
1125
|
+
Ratio: 1.35x P95
|
|
1126
|
+
|
|
1127
|
+
State Export Operation:
|
|
1128
|
+
Current: avg=0.291ms, p95=0.477ms
|
|
1129
|
+
Baseline: avg=0.416ms, p95=0.544ms
|
|
1130
|
+
Ratio: 0.88x P95 (FASTER than baseline)
|
|
1131
|
+
|
|
1132
|
+
Large Scale Operation:
|
|
1133
|
+
Current: avg=0.942ms, p95=1.795ms
|
|
1134
|
+
Baseline: avg=1.103ms, p95=1.702ms
|
|
1135
|
+
Ratio: 1.05x P95
|
|
1136
|
+
```
|
|
1137
|
+
|
|
1138
|
+
**Finding**: Isolated performance is within 35% of baseline - NOT a regression.
|
|
1139
|
+
|
|
1140
|
+
**Step 2: Compare Isolated vs Full Suite**
|
|
1141
|
+
|
|
1142
|
+
```bash
|
|
1143
|
+
# Isolated execution
|
|
1144
|
+
npm test -- --testPathPatterns="PerformanceValidation"
|
|
1145
|
+
# Result: All 32 tests PASS in 1.255 seconds
|
|
1146
|
+
|
|
1147
|
+
# Full suite execution
|
|
1148
|
+
npm test
|
|
1149
|
+
# Result: 3 tests FAIL with 25ms+ times (vs 2ms threshold)
|
|
1150
|
+
```
|
|
1151
|
+
|
|
1152
|
+
**Finding**: Same tests pass in isolation but fail in full suite.
|
|
1153
|
+
|
|
1154
|
+
**Step 3: Check for Code Changes**
|
|
1155
|
+
|
|
1156
|
+
```bash
|
|
1157
|
+
git log --oneline --since="2025-11-22" -- src/TokenEngine.ts
|
|
1158
|
+
# Result: No changes
|
|
1159
|
+
|
|
1160
|
+
git log --oneline --since="2025-11-22" -- src/registries/ src/validation/
|
|
1161
|
+
# Result: Only test file changes (adding @category annotations)
|
|
1162
|
+
```
|
|
1163
|
+
|
|
1164
|
+
**Finding**: No code changes to performance-critical paths since baseline.
|
|
1165
|
+
|
|
1166
|
+
**Step 4: Identify Bottleneck Source**
|
|
1167
|
+
|
|
1168
|
+
| Scenario | Statistics Time | Degradation Factor |
|
|
1169
|
+
|----------|-----------------|-------------------|
|
|
1170
|
+
| Isolated (ts-node) | 0.434ms avg | 1x (baseline) |
|
|
1171
|
+
| Isolated (Jest) | ~1ms | ~2x |
|
|
1172
|
+
| Full Suite (Jest) | 25.68ms | ~60x |
|
|
1173
|
+
|
|
1174
|
+
**Finding**: Bottleneck is Jest worker overhead in full suite, not code.
|
|
1175
|
+
|
|
1176
|
+
#### Decision Applied
|
|
1177
|
+
|
|
1178
|
+
Based on the decision framework:
|
|
1179
|
+
- Current performance NOT significantly worse than baseline in isolation
|
|
1180
|
+
- Issue is test environment interference
|
|
1181
|
+
|
|
1182
|
+
**Recommendation**: Adjust Test Configuration
|
|
1183
|
+
- Run PerformanceValidation.test.ts in isolation
|
|
1184
|
+
- OR adjust thresholds to account for full-suite overhead
|
|
1185
|
+
|
|
1186
|
+
#### Documentation Produced
|
|
1187
|
+
|
|
1188
|
+
Full investigation documented in `findings/p9-performance-investigation.md` with:
|
|
1189
|
+
- Executive summary
|
|
1190
|
+
- Methodology
|
|
1191
|
+
- Raw profiling data
|
|
1192
|
+
- Root cause analysis
|
|
1193
|
+
- Recommendation for Spec 030
|
|
1194
|
+
|
|
1195
|
+
### Anti-Patterns to Avoid
|
|
1196
|
+
|
|
1197
|
+
#### Anti-Pattern 1: Threshold Inflation Without Investigation
|
|
1198
|
+
|
|
1199
|
+
**Problem**: Increasing thresholds whenever tests fail without understanding why.
|
|
1200
|
+
|
|
1201
|
+
**Example**:
|
|
1202
|
+
```markdown
|
|
1203
|
+
❌ WRONG:
|
|
1204
|
+
"Test failed with 25ms, threshold is 2ms. Increasing threshold to 30ms."
|
|
1205
|
+
|
|
1206
|
+
✅ CORRECT:
|
|
1207
|
+
"Test failed with 25ms in full suite. Investigation shows:
|
|
1208
|
+
- Isolated performance: 0.5ms (within baseline)
|
|
1209
|
+
- Full suite adds 50x overhead due to Jest workers
|
|
1210
|
+
- Recommendation: Run in isolation OR adjust to 30ms with documented justification"
|
|
1211
|
+
```
|
|
1212
|
+
|
|
1213
|
+
#### Anti-Pattern 2: Assuming Code Is Always Wrong
|
|
1214
|
+
|
|
1215
|
+
**Problem**: Assuming performance failures always indicate code problems.
|
|
1216
|
+
|
|
1217
|
+
**Example**:
|
|
1218
|
+
```markdown
|
|
1219
|
+
❌ WRONG:
|
|
1220
|
+
"Performance test failed. Must be a code regression. Starting optimization work."
|
|
1221
|
+
|
|
1222
|
+
✅ CORRECT:
|
|
1223
|
+
"Performance test failed. Before optimizing, investigate:
|
|
1224
|
+
1. Is isolated performance degraded? (No → environment issue)
|
|
1225
|
+
2. Were there code changes? (No → scale or environment)
|
|
1226
|
+
3. What's the bottleneck? (Identify before fixing)"
|
|
1227
|
+
```
|
|
1228
|
+
|
|
1229
|
+
#### Anti-Pattern 3: Ignoring Test Environment Factors
|
|
1230
|
+
|
|
1231
|
+
**Problem**: Not considering that test frameworks add overhead.
|
|
1232
|
+
|
|
1233
|
+
**Example**:
|
|
1234
|
+
```markdown
|
|
1235
|
+
❌ WRONG:
|
|
1236
|
+
"Operation takes 25ms in tests. Code must be slow."
|
|
1237
|
+
|
|
1238
|
+
✅ CORRECT:
|
|
1239
|
+
"Operation takes 25ms in full test suite but 0.5ms in isolation.
|
|
1240
|
+
The 50x difference is test environment overhead, not code performance."
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
#### Anti-Pattern 4: Undocumented Threshold Changes
|
|
1244
|
+
|
|
1245
|
+
**Problem**: Changing thresholds without documenting why.
|
|
1246
|
+
|
|
1247
|
+
**Example**:
|
|
1248
|
+
```markdown
|
|
1249
|
+
❌ WRONG:
|
|
1250
|
+
// Changed threshold from 2ms to 30ms
|
|
1251
|
+
const THRESHOLD = 30;
|
|
1252
|
+
|
|
1253
|
+
✅ CORRECT:
|
|
1254
|
+
// Threshold: 30ms
|
|
1255
|
+
// Baseline (Nov 2025): 0.8ms P95 in isolation
|
|
1256
|
+
// Full suite overhead: ~25x due to Jest workers
|
|
1257
|
+
// This threshold catches 2x+ regressions while allowing environment variance
|
|
1258
|
+
// See: findings/p9-performance-investigation.md
|
|
1259
|
+
const THRESHOLD = 30;
|
|
1260
|
+
```
|
|
1261
|
+
|
|
1262
|
+
### Protocol Checklist
|
|
1263
|
+
|
|
1264
|
+
Use this checklist when investigating performance timeout failures:
|
|
1265
|
+
|
|
1266
|
+
- [ ] **Baseline measured**: Actual execution time measured outside test framework
|
|
1267
|
+
- [ ] **Baseline compared**: Current performance compared to original baseline (if available)
|
|
1268
|
+
- [ ] **Bottleneck identified**: Source of slowdown identified (git, I/O, logic, network, environment)
|
|
1269
|
+
- [ ] **Scale relationship determined**: Constant, linear, or exponential growth understood
|
|
1270
|
+
- [ ] **Code changes reviewed**: Git history checked for relevant changes since baseline
|
|
1271
|
+
- [ ] **Isolation tested**: Performance compared between isolated and full suite execution
|
|
1272
|
+
- [ ] **Decision framework applied**: Recommendation based on evidence, not convenience
|
|
1273
|
+
- [ ] **Documentation complete**: Investigation findings documented with evidence and rationale
|
|
1274
|
+
|
|
1275
|
+
---
|
|
1276
|
+
|
|
1277
|
+
## Lessons Learned
|
|
1278
|
+
|
|
1279
|
+
This section captures institutional knowledge from Specs 025 (Test Suite Overhaul), 026 (Test Failure Resolution), and 029 (Test Failure Audit). These lessons inform future audit work and help avoid repeating past mistakes.
|
|
1280
|
+
|
|
1281
|
+
### Lessons from Spec 025: Test Suite Overhaul
|
|
1282
|
+
|
|
1283
|
+
#### Lesson 1: Audit-First Prevents Wasted Effort
|
|
1284
|
+
|
|
1285
|
+
**What We Learned**: Completing a full audit before making any code changes prevents wasted effort on tests that should be deleted or reveals bugs that need separate handling.
|
|
1286
|
+
|
|
1287
|
+
**Evidence**: Spec 025 identified 797 failing tests. By auditing first, we discovered that many failures shared common patterns - fixing one pattern addressed dozens of tests. Without the audit, we would have fixed tests individually, wasting significant effort.
|
|
1288
|
+
|
|
1289
|
+
**Best Practice**: Always complete the full audit phase before implementing any fixes. The time invested in understanding the landscape pays dividends in implementation efficiency.
|
|
1290
|
+
|
|
1291
|
+
#### Lesson 2: Pattern-Based Grouping Is Essential
|
|
1292
|
+
|
|
1293
|
+
**What We Learned**: Grouping failures by root cause pattern (not by test file) makes findings scannable, actionable, and prevents redundant work.
|
|
1294
|
+
|
|
1295
|
+
**Evidence**: Spec 025 grouped 797 failures into ~15 patterns. This made it possible to review findings in a single session and make informed decisions about each pattern. A test-by-test listing would have been overwhelming and redundant.
|
|
1296
|
+
|
|
1297
|
+
**Best Practice**: Always group failures by pattern. If 50 tests fail for the same reason, document it as one pattern with 50 affected tests, not 50 separate findings.
|
|
1298
|
+
|
|
1299
|
+
#### Lesson 3: Nuanced Recommendations Avoid Binary Thinking
|
|
1300
|
+
|
|
1301
|
+
**What We Learned**: Five recommendation categories (Delete, Fix, Refine, Convert, Keep) capture nuance that binary "fix or delete" misses.
|
|
1302
|
+
|
|
1303
|
+
**Evidence**: Spec 025 found tests that were "checking the right thing the wrong way" (Fix), tests that were "too strict" (Refine), and tests that should "become evergreen" (Convert). Binary categorization would have forced incorrect decisions.
|
|
1304
|
+
|
|
1305
|
+
**Best Practice**: Use the full recommendation taxonomy. "Fix Test" and "Fix Code" are different actions with different implications.
|
|
1306
|
+
|
|
1307
|
+
#### Lesson 4: Section-Based Organization Enables Appropriate Criteria
|
|
1308
|
+
|
|
1309
|
+
**What We Learned**: Different test categories (Infrastructure, System Implementation, Release Analysis) require different evaluation criteria.
|
|
1310
|
+
|
|
1311
|
+
**Evidence**: Spec 025 applied Test Development Standards to System Implementation tests but performance criteria to Release Analysis tests. Applying TDS to performance tests would have been inappropriate.
|
|
1312
|
+
|
|
1313
|
+
**Best Practice**: Identify test categories early and apply appropriate evaluation criteria to each. Don't apply one-size-fits-all standards.
|
|
1314
|
+
|
|
1315
|
+
### Lessons from Spec 026: Test Failure Resolution
|
|
1316
|
+
|
|
1317
|
+
#### Lesson 5: Stable Failures May Need Different Approaches
|
|
1318
|
+
|
|
1319
|
+
**What We Learned**: Failures that persist across multiple specs ("stable" failures) may need fundamentally different approaches than new failures.
|
|
1320
|
+
|
|
1321
|
+
**Evidence**: Spec 026 attempted to fix failures that had been present since Spec 025. Some of these required architectural changes beyond the spec's scope. Recognizing them as "stable" earlier would have enabled better planning.
|
|
1322
|
+
|
|
1323
|
+
**Best Practice**: Track failure lineage. If a failure has been present across multiple specs, consider whether the standard fix approach is appropriate or if a different strategy is needed.
|
|
1324
|
+
|
|
1325
|
+
#### Lesson 6: Performance Tests Are Environment-Sensitive
|
|
1326
|
+
|
|
1327
|
+
**What We Learned**: Performance tests can pass in isolation but fail in full test suite due to environment factors (Jest worker overhead, concurrent tests, shared resources).
|
|
1328
|
+
|
|
1329
|
+
**Evidence**: Spec 026 (and later Spec 029) found that P9 performance tests passed when run in isolation but failed in the full suite. The 25x slowdown was environment overhead, not code regression.
|
|
1330
|
+
|
|
1331
|
+
**Best Practice**: Before assuming performance regression, test in isolation. If isolated performance is acceptable, the issue is environment interference, not code.
|
|
1332
|
+
|
|
1333
|
+
#### Lesson 7: Threshold Adjustments Require Investigation
|
|
1334
|
+
|
|
1335
|
+
**What We Learned**: Increasing timeout thresholds without investigation hides real problems and erodes performance standards over time.
|
|
1336
|
+
|
|
1337
|
+
**Evidence**: Spec 026 initially considered simply increasing thresholds for failing performance tests. Investigation revealed that some failures were environment issues (adjust threshold) while others might be real regressions (investigate further).
|
|
1338
|
+
|
|
1339
|
+
**Best Practice**: Never adjust thresholds without investigation. Use the Performance Investigation Protocol to determine whether the issue is code inefficiency, legitimate scale growth, or environment interference.
|
|
1340
|
+
|
|
1341
|
+
### Lessons from Spec 029: Test Failure Audit
|
|
1342
|
+
|
|
1343
|
+
#### Lesson 8: Lineage Tracking Prevents Repeated Failures
|
|
1344
|
+
|
|
1345
|
+
**What We Learned**: Tracking failure history across specs reveals patterns of recurring issues and informs strategy.
|
|
1346
|
+
|
|
1347
|
+
**Evidence**: Spec 029 categorized each failure by lineage (Stable, Fixed-then-regressed, Newly-surfaced, Cascading, True-new). This revealed that many failures had been present since Spec 025 and had never been successfully fixed.
|
|
1348
|
+
|
|
1349
|
+
**Best Practice**: Always compare current failures against previous audit findings. Lineage tells the "story behind the numbers" and informs whether standard approaches will work.
|
|
1350
|
+
|
|
1351
|
+
#### Lesson 9: Scientific Method for Debugging
|
|
1352
|
+
|
|
1353
|
+
**What We Learned**: When multiple potential fixes exist, change one variable at a time to isolate the cause.
|
|
1354
|
+
|
|
1355
|
+
**Evidence**: Spec 029 faced a decision for P4 (Icon Undefined Multiplier): fix the test OR add a null check to the code. Peter's guidance: "If you change two variables, you can't identify what change caused the resulting behavior." Fix one thing first, then reevaluate.
|
|
1356
|
+
|
|
1357
|
+
**Best Practice**: Apply scientific method to debugging. Change one variable at a time. If the first fix resolves the issue, you've identified the cause. If not, you've eliminated one possibility.
|
|
1358
|
+
|
|
1359
|
+
#### Lesson 10: "Fail Loudly" Philosophy for Development Stage
|
|
1360
|
+
|
|
1361
|
+
**What We Learned**: During active development, fallbacks and defensive code can mask problems. It's better to fail loudly and surface issues early.
|
|
1362
|
+
|
|
1363
|
+
**Evidence**: Spec 029 found `|| 24` fallback patterns in Icon component code. Peter's guidance: "At this stage of development, fallbacks prevent diagnosing issues. We want to surface problems early, not mask them."
|
|
1364
|
+
|
|
1365
|
+
**Best Practice**: During development, prefer failing loudly over graceful degradation. Fallbacks can be added for production hardening later, but during development they hide bugs.
|
|
1366
|
+
|
|
1367
|
+
#### Lesson 11: Test Environment Interference Is Real
|
|
1368
|
+
|
|
1369
|
+
**What We Learned**: Full test suite execution creates significant overhead that can cause performance tests to fail even when the underlying code is performant.
|
|
1370
|
+
|
|
1371
|
+
**Evidence**: Spec 029's P9 investigation found that operations taking 0.5ms in isolation took 25ms in the full test suite - a 50x slowdown from Jest worker overhead, concurrent tests, and shared resources.
|
|
1372
|
+
|
|
1373
|
+
**Best Practice**: Performance tests should either run in isolation (separate npm script) or have thresholds that account for full-suite overhead. Document which approach is used and why.
|
|
1374
|
+
|
|
1375
|
+
#### Lesson 12: Cross-Platform Differences May Be Intentional
|
|
1376
|
+
|
|
1377
|
+
**What We Learned**: Not all cross-platform inconsistencies are bugs. Some are intentional platform-specific affordances.
|
|
1378
|
+
|
|
1379
|
+
**Evidence**: Spec 029 found cross-platform consistency failures (P6) where platforms had different token counts. Investigation revealed some differences were intentional (platform-specific features) while others were bugs.
|
|
1380
|
+
|
|
1381
|
+
**Best Practice**: Create an "acknowledged differences registry" documenting which cross-platform differences are intentional. Update tests to allow intentional differences while catching unintentional inconsistencies.
|
|
1382
|
+
|
|
1383
|
+
#### Lesson 13: Clean Exit Audits Prevent Issue Accumulation
|
|
1384
|
+
|
|
1385
|
+
**What We Learned**: Without mandatory exit audits, issues accumulate silently until a dedicated cleanup spec becomes necessary.
|
|
1386
|
+
|
|
1387
|
+
**Evidence**: Specs 025, 026, and 029 demonstrate this pattern - issues discovered in one spec were not documented, reappeared in subsequent specs, and eventually required a dedicated audit spec (029) to address.
|
|
1388
|
+
|
|
1389
|
+
**Best Practice**: Make clean exit audits mandatory. Every spec should end with documented issues (resolved or explicitly deferred). This prevents the "I'll just ignore that" pattern.
|
|
1390
|
+
|
|
1391
|
+
### Anti-Patterns to Avoid
|
|
1392
|
+
|
|
1393
|
+
#### Anti-Pattern 1: Fixing Tests Without Understanding Root Cause
|
|
1394
|
+
|
|
1395
|
+
**Problem**: Jumping to fix tests without understanding why they're failing leads to incorrect fixes and wasted effort.
|
|
1396
|
+
|
|
1397
|
+
**Example**: Changing test expectations to match current behavior without verifying the behavior is correct.
|
|
1398
|
+
|
|
1399
|
+
**Better Approach**: Complete audit phase first. Understand whether the test is wrong, the code is wrong, or the expectation is outdated.
|
|
1400
|
+
|
|
1401
|
+
#### Anti-Pattern 2: Threshold Inflation Without Investigation
|
|
1402
|
+
|
|
1403
|
+
**Problem**: Increasing timeout thresholds whenever tests fail hides real performance regressions.
|
|
1404
|
+
|
|
1405
|
+
**Example**: Test fails at 10s threshold, increase to 15s. Fails again, increase to 20s. Eventually thresholds are meaningless.
|
|
1406
|
+
|
|
1407
|
+
**Better Approach**: Use Performance Investigation Protocol. Measure isolated performance, identify bottleneck, then decide whether to optimize code or adjust threshold with documented justification.
|
|
1408
|
+
|
|
1409
|
+
#### Anti-Pattern 3: Silent Issue Ignoring
|
|
1410
|
+
|
|
1411
|
+
**Problem**: Noticing issues but not documenting them leads to issue accumulation and eventual cleanup specs.
|
|
1412
|
+
|
|
1413
|
+
**Example**: Seeing a test failure during unrelated work, working around it, and not logging it anywhere.
|
|
1414
|
+
|
|
1415
|
+
**Better Approach**: Log every discovered issue in the issues registry. Takes 2 minutes and prevents future rediscovery.
|
|
1416
|
+
|
|
1417
|
+
#### Anti-Pattern 4: Applying Wrong Evaluation Criteria
|
|
1418
|
+
|
|
1419
|
+
**Problem**: Using Test Development Standards criteria for performance tests, or performance criteria for unit tests.
|
|
1420
|
+
|
|
1421
|
+
**Example**: Evaluating a performance test by asking "does it check behavior or implementation?" when the real question is "is the threshold realistic?"
|
|
1422
|
+
|
|
1423
|
+
**Better Approach**: Identify test category first, then apply appropriate evaluation criteria for that category.
|
|
1424
|
+
|
|
1425
|
+
#### Anti-Pattern 5: Test-by-Test Analysis
|
|
1426
|
+
|
|
1427
|
+
**Problem**: Analyzing each failing test individually creates overwhelming documentation and misses patterns.
|
|
1428
|
+
|
|
1429
|
+
**Example**: Creating 40 separate findings entries for 40 failing tests when they share 5 common root causes.
|
|
1430
|
+
|
|
1431
|
+
**Better Approach**: Group by pattern first. If 10 tests fail for the same reason, that's one pattern with 10 affected tests.
|
|
1432
|
+
|
|
1433
|
+
#### Anti-Pattern 6: Assuming Code Is Always Wrong
|
|
1434
|
+
|
|
1435
|
+
**Problem**: Assuming test failures always indicate code bugs leads to unnecessary code changes.
|
|
1436
|
+
|
|
1437
|
+
**Example**: Test expects `strokeWidth="var(--icon-stroke-width)"` but component outputs `strokeWidth="2"`. Assuming the component is wrong without checking if the test expectation is correct.
|
|
1438
|
+
|
|
1439
|
+
**Better Approach**: Evaluate both possibilities. The test might be checking the right thing (component should use CSS variable) or the test might be outdated (component correctly uses hard-coded value for valid reason).
|
|
1440
|
+
|
|
1441
|
+
#### Anti-Pattern 7: Parallel Audit and Implementation
|
|
1442
|
+
|
|
1443
|
+
**Problem**: Fixing tests while still auditing creates confusion and potential rework.
|
|
1444
|
+
|
|
1445
|
+
**Example**: Fixing Pattern 1 tests while still discovering Pattern 2 tests, then realizing Pattern 1 and Pattern 2 share a root cause that requires different fix.
|
|
1446
|
+
|
|
1447
|
+
**Better Approach**: Complete full audit before any implementation. The time invested in understanding the full landscape prevents rework.
|
|
1448
|
+
|
|
1449
|
+
### Best Practices Summary
|
|
1450
|
+
|
|
1451
|
+
| Practice | Rationale |
|
|
1452
|
+
|----------|-----------|
|
|
1453
|
+
| **Audit before implementing** | Prevents wasted effort on tests that should be deleted |
|
|
1454
|
+
| **Group by pattern** | Makes findings scannable and actionable |
|
|
1455
|
+
| **Track lineage** | Reveals recurring issues and informs strategy |
|
|
1456
|
+
| **Use nuanced recommendations** | Captures nuance that binary thinking misses |
|
|
1457
|
+
| **Apply appropriate criteria** | Different test types need different evaluation |
|
|
1458
|
+
| **Investigate before adjusting thresholds** | Prevents erosion of performance standards |
|
|
1459
|
+
| **Test performance in isolation** | Distinguishes code issues from environment issues |
|
|
1460
|
+
| **Change one variable at a time** | Enables root cause identification |
|
|
1461
|
+
| **Fail loudly during development** | Surfaces issues early rather than masking them |
|
|
1462
|
+
| **Document all discovered issues** | Prevents silent accumulation |
|
|
1463
|
+
| **Complete clean exit audits** | Ensures explicit decisions about all issues |
|
|
1464
|
+
|
|
1465
|
+
---
|
|
1466
|
+
|
|
1467
|
+
## Related Documentation
|
|
1468
|
+
|
|
1469
|
+
- [Development Workflow](process-development-workflow) - Task completion and git practices
|
|
1470
|
+
- [File Organization Standards](process-file-organization) - Documentation organization
|
|
1471
|
+
- [Spec Planning Standards](process-spec-planning) - Spec document formatting
|
|
1472
|
+
|
|
1473
|
+
---
|
|
1474
|
+
|
|
1475
|
+
*This methodology was developed through the systematic audit work in Specs 025, 026, and 029, capturing institutional knowledge for future test quality initiatives.*
|