@3fn/core 14.0.0 → 15.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/steering/AI-Collaboration-Principles.md +9 -3
- package/.kiro/steering/Agent-Directory.md +31 -7
- package/.kiro/steering/Civitas-System-Overview.md +5 -14
- package/.kiro/steering/DesignerPunk-Systems-Overview.md +3 -3
- package/.kiro/steering/Spec-Feedback-Protocol.md +2 -11
- package/.kiro/steering/Task-Completion-Protocol.md +17 -16
- package/.kiro/steering/start-up-tasks.md +15 -7
- package/CHANGELOG.md +74 -0
- package/README.md +26 -21
- package/application-mcp-server/src/__tests__/consumerRootLiveReindex.test.ts +118 -0
- package/application-mcp-server/src/__tests__/errorCatalogWiring.test.ts +73 -0
- package/application-mcp-server/src/__tests__/mcpDataRootsDeclaration.test.ts +107 -0
- package/application-mcp-server/src/__tests__/tool-boundary.contract.test.ts +55 -0
- package/application-mcp-server/src/index.ts +249 -59
- package/application-mcp-server/src/indexer/ComponentIndexer.ts +273 -46
- package/application-mcp-server/src/indexer/ModeClassifier.ts +23 -16
- package/application-mcp-server/src/indexer/SemanticOverrideReader.ts +113 -0
- package/application-mcp-server/src/indexer/TokenIndexer.ts +195 -3
- package/application-mcp-server/src/indexer/__tests__/MultiRootIndexing.test.ts +134 -0
- package/application-mcp-server/src/indexer/__tests__/ThemeResolution.test.ts +241 -0
- package/application-mcp-server/src/indexer/__tests__/ThemeRootFollowsIndex.test.ts +216 -0
- package/application-mcp-server/src/indexer/__tests__/fixtures/consumerFixture.ts +84 -0
- package/application-mcp-server/src/indexer/resolveThemeTierRoot.ts +61 -0
- package/application-mcp-server/src/watcher/FileWatcher.ts +20 -7
- package/dist/ComponentTokens.android.kt +12 -12
- package/dist/ComponentTokens.ios.swift +12 -12
- package/dist/ComponentTokens.web.css +3 -3
- package/dist/DesignTokens.android.kt +1 -5
- package/dist/DesignTokens.dtcg.json +388 -122
- package/dist/DesignTokens.figma.json +281 -941
- package/dist/DesignTokens.ios.swift +1 -5
- package/dist/DesignTokens.web.css +5 -5
- package/dist/browser/designerpunk.esm.js +174 -103
- package/dist/browser/designerpunk.esm.min.js +58 -55
- package/dist/browser/designerpunk.umd.js +174 -103
- package/dist/browser/designerpunk.umd.min.js +58 -55
- package/dist/browser/tokens.css +7 -7
- package/dist/build/platforms/AndroidMotionTokenFormatter.d.ts +101 -0
- package/dist/build/platforms/AndroidMotionTokenFormatter.js +220 -0
- package/dist/build/platforms/WebMotionTokenFormatter.d.ts +85 -0
- package/dist/build/platforms/WebMotionTokenFormatter.js +167 -0
- package/dist/build/platforms/iOSMotionTokenFormatter.d.ts +99 -0
- package/dist/build/platforms/iOSMotionTokenFormatter.js +221 -0
- package/dist/build/tokens/defineComponentTokens.d.ts +10 -0
- package/dist/build/tokens/defineComponentTokens.js +26 -0
- package/dist/build/validation/index.d.ts +0 -4
- package/dist/build/validation/index.js +1 -8
- package/dist/cli/attach.d.ts +153 -0
- package/dist/cli/attach.js +423 -0
- package/dist/cli/designerpunk.d.ts +46 -0
- package/dist/cli/designerpunk.js +171 -34
- package/dist/cli/figma-extract.js +10 -1
- package/dist/cli/figma-push.js +11 -2
- package/dist/cli/init.d.ts +36 -5
- package/dist/cli/init.js +348 -143
- package/dist/cli/loadComponentTokens.d.ts +25 -0
- package/dist/cli/loadComponentTokens.js +87 -8
- package/dist/cli/shared/bornRepo.d.ts +50 -0
- package/dist/cli/shared/bornRepo.js +199 -0
- package/dist/cli/shared/errorCatalog.d.ts +130 -0
- package/dist/cli/shared/errorCatalog.js +148 -0
- package/dist/cli/shared/mcpConfig/cc.d.ts +25 -0
- package/dist/cli/shared/mcpConfig/cc.js +156 -0
- package/dist/cli/shared/mcpConfig/kiro.d.ts +53 -0
- package/dist/cli/shared/mcpConfig/kiro.js +140 -0
- package/dist/cli/shared/mcpDataRoots.d.ts +88 -1
- package/dist/cli/shared/mcpDataRoots.js +76 -2
- package/dist/cli/shared/transforms.d.ts +64 -0
- package/dist/cli/shared/transforms.js +138 -0
- package/dist/cli/shared/vocabulary.d.ts +50 -0
- package/dist/cli/shared/vocabulary.js +62 -0
- package/dist/cli/sync/Applier.d.ts +25 -26
- package/dist/cli/sync/Applier.js +37 -73
- package/dist/cli/sync/Classifier.d.ts +70 -6
- package/dist/cli/sync/Classifier.js +123 -84
- package/dist/cli/sync/FileScanner.d.ts +19 -10
- package/dist/cli/sync/FileScanner.js +33 -25
- package/dist/cli/sync/KeyGrain.d.ts +106 -0
- package/dist/cli/sync/KeyGrain.js +301 -0
- package/dist/cli/sync/Manifest.d.ts +147 -12
- package/dist/cli/sync/Manifest.js +276 -21
- package/dist/cli/sync/Migration.d.ts +271 -0
- package/dist/cli/sync/Migration.js +764 -0
- package/dist/cli/sync/NameContract.d.ts +169 -0
- package/dist/cli/sync/NameContract.js +246 -0
- package/dist/cli/sync/RegionGrain.d.ts +118 -0
- package/dist/cli/sync/RegionGrain.js +167 -0
- package/dist/cli/sync/Reporter.d.ts +33 -4
- package/dist/cli/sync/Reporter.js +112 -53
- package/dist/cli/sync/SteeringDirCheck.d.ts +32 -4
- package/dist/cli/sync/SteeringDirCheck.js +62 -14
- package/dist/cli/sync/index.d.ts +125 -6
- package/dist/cli/sync/index.js +716 -66
- package/dist/color/OklchValidator.d.ts +43 -3
- package/dist/color/OklchValidator.js +46 -8
- package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +21 -26
- package/dist/components/core/Avatar-Base/avatar.tokens.js +31 -34
- package/dist/components/core/Avatar-Base/index.d.ts +1 -1
- package/dist/components/core/Avatar-Base/index.js +2 -2
- package/dist/components/core/Button-CTA/Button-CTA.refs.d.ts +83 -0
- package/dist/components/core/Button-CTA/Button-CTA.refs.js +86 -0
- package/dist/components/core/Button-CTA/Button-CTA.tokens.d.ts +20 -10
- package/dist/components/core/Button-CTA/Button-CTA.tokens.js +21 -10
- package/dist/components/core/Button-CTA/index.d.ts +2 -2
- package/dist/components/core/Button-CTA/index.js +3 -3
- package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +28 -14
- package/dist/components/core/Button-Icon/buttonIcon.tokens.js +35 -20
- package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.d.ts +11 -30
- package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.js +16 -49
- package/dist/components/core/Container-Base/Container-Base.refs.d.ts +181 -0
- package/dist/components/core/Container-Base/Container-Base.refs.js +223 -0
- package/dist/components/core/Container-Base/index.d.ts +2 -2
- package/dist/components/core/Container-Base/index.js +10 -10
- package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.js +1 -1
- package/dist/components/core/Container-Base/platforms/web/token-mapping.d.ts +27 -9
- package/dist/components/core/Container-Base/platforms/web/token-mapping.js +50 -22
- package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.d.ts +149 -0
- package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.js +207 -0
- package/dist/components/core/Container-Card-Base/index.d.ts +1 -1
- package/dist/components/core/Container-Card-Base/index.js +19 -19
- package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.js +7 -6
- package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.d.ts +15 -0
- package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.js +41 -1
- package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.d.ts +331 -0
- package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.js +164 -0
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.js +1 -1
- package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.d.ts +20 -0
- package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.js +34 -0
- package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.d.ts +20 -0
- package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.js +34 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.d.ts +30 -0
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +72 -3
- package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.d.ts +20 -0
- package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.js +34 -0
- package/dist/consumer-canonical/agents/ada.md +331 -0
- package/dist/consumer-canonical/agents/data.md +429 -0
- package/dist/consumer-canonical/agents/kenya.md +400 -0
- package/dist/consumer-canonical/agents/leonardo.md +524 -0
- package/dist/consumer-canonical/agents/lina.md +501 -0
- package/dist/consumer-canonical/agents/sparky.md +395 -0
- package/dist/consumer-canonical/agents/stacy.md +515 -0
- package/dist/consumer-canonical/agents/thurgood.md +463 -0
- package/dist/consumer-canonical/always-set/agent-directory.dispositions.yaml +21 -0
- package/dist/consumer-canonical/always-set/agent-directory.overlay.md +51 -0
- package/dist/consumer-canonical/always-set/ai-collaboration-principles.dispositions.yaml +15 -0
- package/dist/consumer-canonical/always-set/ai-collaboration-principles.overlay.md +26 -0
- package/dist/consumer-canonical/always-set/civitas-system-overview.dispositions.yaml +15 -0
- package/dist/consumer-canonical/always-set/civitas-system-overview.overlay.md +70 -0
- package/dist/consumer-canonical/always-set/core-goals.dispositions.yaml +9 -0
- package/dist/consumer-canonical/always-set/core-goals.overlay.md +74 -0
- package/dist/consumer-canonical/always-set/designerpunk-systems-overview.dispositions.yaml +16 -0
- package/dist/consumer-canonical/always-set/designerpunk-systems-overview.overlay.md +44 -0
- package/dist/consumer-canonical/always-set/spec-feedback-protocol.dispositions.yaml +21 -0
- package/dist/consumer-canonical/always-set/spec-feedback-protocol.overlay.md +44 -0
- package/dist/consumer-canonical/always-set/start-up-tasks.dispositions.yaml +15 -0
- package/dist/consumer-canonical/always-set/start-up-tasks.overlay.md +25 -0
- package/dist/consumer-canonical/always-set/task-completion-protocol.dispositions.yaml +19 -0
- package/dist/consumer-canonical/always-set/task-completion-protocol.overlay.md +116 -0
- package/dist/consumer-canonical/consumer-profile.yaml +9 -0
- package/dist/consumer-canonical/shared/always-set.yaml +113 -0
- package/dist/consumer-canonical/shared/field-dispositions.yaml +85 -0
- package/dist/consumer-canonical/shared/shared-catalog.yaml +19 -0
- package/dist/consumer-canonical/shared/skills-map.yaml +33 -0
- package/dist/consumer-canonical/skills/adaptive/SKILL.md +301 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +238 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +168 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +329 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
- package/dist/consumer-canonical/skills/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
- package/dist/consumer-canonical/skills/edge-to-edge/SKILL.md +426 -0
- package/dist/consumer-canonical/skills/impeccable/SKILL.md +237 -0
- package/dist/consumer-canonical/skills/impeccable/detector-exclusions.md +42 -0
- package/dist/consumer-canonical/skills/impeccable/reference/adapt.md +190 -0
- package/dist/consumer-canonical/skills/impeccable/reference/animate.md +194 -0
- package/dist/consumer-canonical/skills/impeccable/reference/audit.md +150 -0
- package/dist/consumer-canonical/skills/impeccable/reference/bolder.md +113 -0
- package/dist/consumer-canonical/skills/impeccable/reference/brand-dp.md +103 -0
- package/dist/consumer-canonical/skills/impeccable/reference/clarify.md +174 -0
- package/dist/consumer-canonical/skills/impeccable/reference/codex.md +105 -0
- package/dist/consumer-canonical/skills/impeccable/reference/cognitive-load.md +106 -0
- package/dist/consumer-canonical/skills/impeccable/reference/color-and-contrast.md +122 -0
- package/dist/consumer-canonical/skills/impeccable/reference/colorize.md +155 -0
- package/dist/consumer-canonical/skills/impeccable/reference/craft.md +123 -0
- package/dist/consumer-canonical/skills/impeccable/reference/critique.md +245 -0
- package/dist/consumer-canonical/skills/impeccable/reference/delight.md +302 -0
- package/dist/consumer-canonical/skills/impeccable/reference/distill.md +111 -0
- package/dist/consumer-canonical/skills/impeccable/reference/extract-dp.md +43 -0
- package/dist/consumer-canonical/skills/impeccable/reference/harden.md +347 -0
- package/dist/consumer-canonical/skills/impeccable/reference/heuristics-scoring.md +234 -0
- package/dist/consumer-canonical/skills/impeccable/reference/interaction-design.md +195 -0
- package/dist/consumer-canonical/skills/impeccable/reference/layout.md +141 -0
- package/dist/consumer-canonical/skills/impeccable/reference/live.md +622 -0
- package/dist/consumer-canonical/skills/impeccable/reference/motion-design.md +109 -0
- package/dist/consumer-canonical/skills/impeccable/reference/onboard.md +234 -0
- package/dist/consumer-canonical/skills/impeccable/reference/optimize.md +258 -0
- package/dist/consumer-canonical/skills/impeccable/reference/overdrive.md +130 -0
- package/dist/consumer-canonical/skills/impeccable/reference/personas.md +179 -0
- package/dist/consumer-canonical/skills/impeccable/reference/polish.md +242 -0
- package/dist/consumer-canonical/skills/impeccable/reference/product-dp.md +79 -0
- package/dist/consumer-canonical/skills/impeccable/reference/quieter.md +99 -0
- package/dist/consumer-canonical/skills/impeccable/reference/responsive-design.md +114 -0
- package/dist/consumer-canonical/skills/impeccable/reference/shape.md +165 -0
- package/dist/consumer-canonical/skills/impeccable/reference/spatial-design.md +100 -0
- package/dist/consumer-canonical/skills/impeccable/reference/typeset.md +126 -0
- package/dist/consumer-canonical/skills/impeccable/reference/typography.md +159 -0
- package/dist/consumer-canonical/skills/impeccable/reference/ux-writing.md +107 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detect.mjs +21 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/browser/injected/index.mjs +1725 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/cli/main.mjs +244 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4567 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +535 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +986 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/findings.mjs +12 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/rules/checks.mjs +2316 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/color.mjs +156 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
- package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/dist/consumer-canonical/skills/navigation-3/SKILL.md +110 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/index.md +38 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +498 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-advanced.md +155 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-basic.md +744 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +436 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +272 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
- package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
- package/dist/consumer-canonical/skills/theming-styles/SKILL.md +220 -0
- package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
- package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/fundamentals.md +420 -0
- package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
- package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
- package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/theming.md +257 -0
- package/dist/generator/consumer-entry.js +5939 -0
- package/dist/generators/DTCGFormatGenerator.d.ts +14 -4
- package/dist/generators/DTCGFormatGenerator.js +35 -18
- package/dist/generators/TokenFileGenerator.js +20 -15
- package/dist/generators/generateTokenIndex.d.ts +14 -0
- package/dist/generators/generateTokenIndex.js +23 -0
- package/dist/generators/transformers/FigmaTransformer.d.ts +35 -0
- package/dist/generators/transformers/FigmaTransformer.js +101 -13
- package/dist/generators/types/DTCGTypes.d.ts +10 -0
- package/dist/mcp/application-mcp.js +1062 -261
- package/dist/mcp/docs-mcp.js +93 -13
- package/dist/mcp/product-mcp.js +539 -41
- package/dist/mcp/tool-manifest.json +184 -0
- package/dist/name-contract.json +4283 -0
- package/dist/tokens/BlurTokens.d.ts +3 -1
- package/dist/tokens/BlurTokens.js +6 -4
- package/dist/tokens/ShadowOffsetTokens.js +14 -14
- package/dist/tokens/SizingTokens.js +3 -3
- package/dist/tokens/TapAreaTokens.d.ts +13 -2
- package/dist/tokens/TapAreaTokens.js +19 -8
- package/dist/tokens/component/progress.d.ts +65 -5
- package/dist/tokens/component/progress.js +79 -18
- package/dist/tokens/semantic/ColorTokens.js +50 -5
- package/dist/tokens/semantic/TypographyTokens.js +10 -10
- package/dist/tokens/themes/dark/SemanticOverrides.js +21 -4
- package/dist/tools/integrity/Invariants.d.ts +23 -8
- package/dist/tools/integrity/Invariants.js +27 -8
- package/dist/tools/integrity/cli/run-audit.js +1 -1
- package/dist/types/PrimitiveToken.d.ts +15 -1
- package/dist/types/generated/TokenTypes.d.ts +1 -1
- package/dist/types/generated/TokenTypes.js +1 -1
- package/dist/types/index.d.ts +1 -0
- package/governance/AI-Collaboration-Framework.md +19 -10
- package/governance/BUILD-SYSTEM-SETUP.md +1 -2
- package/governance/Component-Development-Guide.md +1 -1
- package/governance/Component-Development-Standards.md +19 -18
- package/governance/Component-Family-Avatar.md +6 -6
- package/governance/Component-Family-Badge.md +19 -19
- package/governance/Component-Family-Button.md +26 -26
- package/governance/Component-Family-Chip.md +14 -14
- package/governance/Component-Family-Container.md +12 -12
- package/governance/Component-Family-Form-Inputs.md +61 -61
- package/governance/Component-Family-Icon.md +8 -8
- package/governance/Component-Family-Navigation.md +3 -3
- package/governance/Component-Inheritance-Structures.md +29 -28
- package/governance/Component-Readiness-Status.md +6 -7
- package/governance/Component-Templates.md +26 -26
- package/governance/Contract-System-Reference.md +1 -1
- package/governance/DTCG-Integration-Guide.md +63 -36
- package/governance/DesignerPunk-Integration-Guide.md +57 -61
- package/governance/Figma-Workflow-Guide.md +15 -8
- package/governance/Process-Development-Workflow.md +4 -4
- package/governance/Process-File-Organization.md +1 -4
- package/governance/Process-Hook-Operations.md +6 -7
- package/governance/Process-Integration-Methodology.md +5 -5
- package/governance/Process-Spec-Planning.md +187 -68
- package/governance/Product-Handoff-Protocol.md +27 -2
- package/governance/Rosetta-System-Architecture.md +7 -5
- package/governance/Test-Behavioral-Contract-Validation.md +5 -0
- package/governance/Test-Development-Standards.md +4 -4
- package/governance/Token-Family-Accessibility.md +18 -14
- package/governance/Token-Family-Blend.md +5 -4
- package/governance/Token-Family-Blur.md +8 -8
- package/governance/Token-Family-Color.md +40 -22
- package/governance/Token-Family-Glow.md +26 -24
- package/governance/Token-Family-Layering.md +1 -0
- package/governance/Token-Family-Motion.md +22 -13
- package/governance/Token-Family-Opacity.md +20 -34
- package/governance/Token-Family-Radius.md +4 -2
- package/governance/Token-Family-Responsive.md +4 -4
- package/governance/Token-Family-Shadow.md +69 -46
- package/governance/Token-Family-Spacing.md +22 -12
- package/governance/Token-Family-Typography.md +86 -85
- package/governance/Token-Governance.md +5 -1
- package/governance/Token-Quick-Reference.md +97 -80
- package/governance/Transformer-Development-Guide.md +5 -4
- package/governance/Web-Authoring-Standards.md +1 -1
- package/governance/classification-map.md +706 -10
- package/governance/completion-documentation-guide.md +298 -33
- package/governance/platform-implementation-guidelines.md +3 -3
- package/governance/release-management-system.md +28 -63
- package/mcp-server/src/index.ts +16 -12
- package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +3 -3
- package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +70 -49
- package/mcp-server/src/tools/find-docs.ts +1 -0
- package/mcp-server/src/tools/get-document-full.ts +1 -0
- package/mcp-server/src/tools/get-document-summary.ts +1 -0
- package/mcp-server/src/tools/get-index-health.ts +1 -0
- package/mcp-server/src/tools/get-section.ts +1 -0
- package/mcp-server/src/tools/list-cross-references.ts +1 -0
- package/mcp-server/src/tools/rebuild-index.ts +1 -0
- package/mcp-server/src/tools/validate-metadata.ts +1 -0
- package/package.json +76 -16
- package/src/build/tokens/defineComponentTokens.ts +43 -1
- package/src/cli/templates/mcp-config.json.template +15 -20
- package/src/components/core/Avatar-Base/platforms/android/AvatarPreview.kt +9 -2
- package/src/components/core/Container-Base/Container-Base.schema.yaml +9 -11
- package/src/components/core/Container-Base/platforms/android/ContainerBase.android.kt +5 -5
- package/src/components/core/Container-Base/platforms/ios/ContainerBase.ios.swift +5 -5
- package/src/components/core/Container-Card-Base/platforms/android/ContainerCardBase.android.kt +3 -3
- package/src/components/core/Container-Card-Base/platforms/ios/ContainerCardBase.ios.swift +2 -2
- package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
- package/src/components/core/Nav-Header-Base/component-meta.yaml +0 -1
- package/src/components/core/Nav-Header-Base/contracts.yaml +1 -1
- package/src/components/core/Nav-Header-Page/contracts.yaml +1 -1
- package/src/components/core/Nav-TabBar-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Bar-Base/contracts.yaml +1 -1
- package/src/tokens/BlurTokens.ts +6 -4
- package/src/tokens/ShadowOffsetTokens.ts +14 -14
- package/src/tokens/SizingTokens.ts +3 -3
- package/src/tokens/TapAreaTokens.ts +20 -8
- package/src/tokens/__tests__/BaselineGridAlignmentFlag.test.ts +116 -0
- package/src/tokens/__tests__/BlurTokens.test.ts +10 -2
- package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +5 -3
- package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +11 -11
- package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +22 -20
- package/src/tokens/__tests__/SemanticColorContrast.test.ts +339 -0
- package/src/tokens/__tests__/ShadowOffsetTokens.test.ts +8 -7
- package/src/tokens/__tests__/SizingTokens.test.ts +10 -2
- package/src/tokens/__tests__/TokenCategories.test.ts +1 -1
- package/src/tokens/__tests__/neutral-partition.test.ts +28 -0
- package/src/tokens/component/progress.ts +83 -21
- package/src/tokens/semantic/AccessibilityTokens.README.md +2 -2
- package/src/tokens/semantic/ColorTokens.ts +50 -5
- package/src/tokens/semantic/TypographyTokens.ts +10 -10
- package/src/tokens/semantic/__tests__/ColorTokens.test.ts +8 -4
- package/src/tokens/themes/dark/SemanticOverrides.ts +23 -4
- package/src/types/PrimitiveToken.ts +15 -1
- package/token-index/components.yaml +8 -8
- package/token-index/meta.json +3 -0
- package/token-index/semantics.yaml +21 -15
- package/.kiro/agents/ada-prompt.md +0 -213
- package/.kiro/agents/ada-prompt.md.attribution.json +0 -45
- package/.kiro/agents/ada.json +0 -72
- package/.kiro/agents/ada.json.attribution.json +0 -13
- package/.kiro/agents/data-prompt.md +0 -324
- package/.kiro/agents/data-prompt.md.attribution.json +0 -53
- package/.kiro/agents/data.json +0 -51
- package/.kiro/agents/data.json.attribution.json +0 -13
- package/.kiro/agents/kenya-prompt.md +0 -309
- package/.kiro/agents/kenya-prompt.md.attribution.json +0 -53
- package/.kiro/agents/kenya.json +0 -46
- package/.kiro/agents/kenya.json.attribution.json +0 -13
- package/.kiro/agents/leonardo-prompt.md +0 -359
- package/.kiro/agents/leonardo-prompt.md.attribution.json +0 -45
- package/.kiro/agents/leonardo.json +0 -47
- package/.kiro/agents/leonardo.json.attribution.json +0 -13
- package/.kiro/agents/lina-prompt.md +0 -344
- package/.kiro/agents/lina-prompt.md.attribution.json +0 -53
- package/.kiro/agents/lina.json +0 -64
- package/.kiro/agents/lina.json.attribution.json +0 -13
- package/.kiro/agents/sparky-prompt.md +0 -312
- package/.kiro/agents/sparky-prompt.md.attribution.json +0 -53
- package/.kiro/agents/sparky.json +0 -56
- package/.kiro/agents/sparky.json.attribution.json +0 -13
- package/.kiro/agents/stacy-prompt.md +0 -304
- package/.kiro/agents/stacy-prompt.md.attribution.json +0 -45
- package/.kiro/agents/stacy.json +0 -46
- package/.kiro/agents/stacy.json.attribution.json +0 -13
- package/.kiro/agents/thurgood-prompt.md +0 -363
- package/.kiro/agents/thurgood-prompt.md.attribution.json +0 -45
- package/.kiro/agents/thurgood.json +0 -47
- package/.kiro/agents/thurgood.json.attribution.json +0 -13
- package/.kiro/steering/personal-note.md +0 -35
- package/designerpunk.config.ts +0 -27
- package/dist/android/DesignTokens.android.kt +0 -695
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.d.ts +0 -26
- package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.js +0 -224
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.d.ts +0 -30
- package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.js +0 -254
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.d.ts +0 -44
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.js +0 -376
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.d.ts +0 -38
- package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.js +0 -328
- package/dist/ios/DesignTokens.ios.swift +0 -697
- package/dist/web/DesignTokens.web.css +0 -929
- package/product-template/agents/README.md +0 -73
- package/product-template/agents/ada-prompt.md +0 -83
- package/product-template/agents/data-prompt.md +0 -74
- package/product-template/agents/kenya-prompt.md +0 -74
- package/product-template/agents/leonardo-prompt.md +0 -99
- package/product-template/agents/lina-prompt.md +0 -61
- package/product-template/agents/sparky-prompt.md +0 -66
- package/product-template/agents/stacy-prompt.md +0 -51
- package/product-template/agents/thurgood-prompt.md +0 -64
- package/src/TokenEngine.ts +0 -628
- package/src/__tests__/BuildSystemIntegration.test.ts +0 -485
- package/src/__tests__/ProductMCPIntegration.test.ts +0 -204
- package/src/__tests__/__mocks__/styleMock.js +0 -18
- package/src/__tests__/browser-distribution/build-error-handling.test.ts +0 -143
- package/src/__tests__/browser-distribution/bundle-loading.test.ts +0 -353
- package/src/__tests__/browser-distribution/bundler-resolution.test.ts +0 -223
- package/src/__tests__/browser-distribution/component-registration.test.ts +0 -217
- package/src/__tests__/browser-distribution/css-bundling.test.ts +0 -233
- package/src/__tests__/browser-distribution/demo-system.test.ts +0 -588
- package/src/__tests__/browser-distribution/mcp-format-compliance.property.test.ts +0 -379
- package/src/__tests__/browser-distribution/mcp-queryability.test.ts +0 -342
- package/src/__tests__/browser-distribution/minification-effectiveness.property.test.ts +0 -188
- package/src/__tests__/browser-distribution/registration-idempotency.property.test.ts +0 -372
- package/src/__tests__/browser-distribution/soft-ceiling-warning.test.ts +0 -161
- package/src/__tests__/browser-distribution/token-completeness.property.test.ts +0 -412
- package/src/__tests__/browser-distribution/token-loading.test.ts +0 -344
- package/src/__tests__/browser-distribution/umd-bundle-loading.test.ts +0 -169
- package/src/__tests__/console-allowlist.json +0 -14
- package/src/__tests__/console-fail-setup.ts +0 -169
- package/src/__tests__/examples/improved-test-example.test.ts +0 -120
- package/src/__tests__/expected-exports.json +0 -66
- package/src/__tests__/export-contracts.test.ts +0 -83
- package/src/__tests__/fixtures/acknowledged-differences.json +0 -127
- package/src/__tests__/fixtures/acknowledged-differences.schema.json +0 -113
- package/src/__tests__/fixtures/acknowledged-differences.types.ts +0 -230
- package/src/__tests__/fixtures/tokenFixtures.ts +0 -248
- package/src/__tests__/helpers/configModuleLoader.ts +0 -20
- package/src/__tests__/helpers/tsModuleLoader.ts +0 -24
- package/src/__tests__/helpers/web-component-test-utils.ts +0 -39
- package/src/__tests__/integration/BlendCrossPlatformConsistency.test.ts +0 -505
- package/src/__tests__/integration/BuildSystemCompatibility.test.ts +0 -551
- package/src/__tests__/integration/CrossPlatformConsistency.test.ts +0 -855
- package/src/__tests__/integration/EndToEndWorkflow.test.ts +0 -601
- package/src/__tests__/integration/ErrorHandling.test.ts +0 -459
- package/src/__tests__/integration/OpacityPlatformTranslation.test.ts +0 -364
- package/src/__tests__/integration/PerformanceValidation.test.ts +0 -887
- package/src/__tests__/integration/SemanticTokenGeneration.test.ts +0 -451
- package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +0 -139
- package/src/__tests__/integration/TokenSystemIntegration.test.ts +0 -890
- package/src/__tests__/integration/ValidationPipeline.test.ts +0 -404
- package/src/__tests__/package-drift-validation.test.ts +0 -249
- package/src/__tests__/performance/GenerationPerformance.test.ts +0 -409
- package/src/__tests__/performance/OptimizationValidation.test.ts +0 -509
- package/src/__tests__/platform-parity/ProgressPlatformParity.test.ts +0 -546
- package/src/__tests__/spec073-opacity-architecture.test.ts +0 -344
- package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +0 -520
- package/src/__tests__/stemma-system/composition-compliance-validation.test.ts +0 -162
- package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +0 -184
- package/src/__tests__/stemma-system/contract-existence-validation.test.ts +0 -43
- package/src/__tests__/stemma-system/contract-test-reporter.ts +0 -269
- package/src/__tests__/stemma-system/cross-platform-consistency.test.ts +0 -564
- package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +0 -710
- package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +0 -298
- package/src/__tests__/stemma-system/mcp-component-integration.test.ts +0 -445
- package/src/analytics/PrimitiveTokenFallbackTracker.ts +0 -228
- package/src/analytics/SemanticTokenUsageTracker.ts +0 -193
- package/src/analytics/StrategicFlexibilityTracker.ts +0 -226
- package/src/analytics/TokenUsageTracker.ts +0 -177
- package/src/analytics/UsagePatternAnalyzer.ts +0 -177
- package/src/analytics/__tests__/UsageTracking.test.ts +0 -647
- package/src/analytics/index.ts +0 -42
- package/src/assets/fonts/__tests__/androidFontLoadingValidation.test.ts +0 -600
- package/src/assets/fonts/__tests__/fontLoading.test.ts +0 -341
- package/src/assets/fonts/__tests__/iosFontConfiguration.test.ts +0 -256
- package/src/assets/fonts/__tests__/iosFontLoadingValidation.test.ts +0 -465
- 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 +0 -49
- package/src/blend/BlendCalculator.ts +0 -120
- package/src/blend/ColorSpaceUtils.ts +0 -325
- package/src/blend/OklchBlendCalculator.ts +0 -82
- package/src/blend/ThemeAwareBlendUtilities.web.ts +0 -323
- package/src/blend/__tests__/BlendCalculator.test.ts +0 -393
- package/src/blend/__tests__/BlendUtilities.property.test.ts +0 -600
- package/src/blend/__tests__/ColorSpaceUtils.test.ts +0 -885
- package/src/blend/__tests__/InteractionStateAudit.test.ts +0 -238
- package/src/blend/__tests__/OklchBlendCalculator.test.ts +0 -134
- package/src/blend/__tests__/ThemeAwareBlendUtilities.test.ts +0 -200
- package/src/blend/__tests__/ThemeSwitching.test.ts +0 -508
- package/src/blend/index.ts +0 -37
- package/src/browser-entry.ts +0 -270
- package/src/build/.gitkeep +0 -1
- package/src/build/BuildOrchestrator.ts +0 -663
- package/src/build/__tests__/AndroidBuildIntegration.test.ts +0 -437
- package/src/build/__tests__/AndroidMotionTokenGeneration.test.ts +0 -256
- package/src/build/__tests__/BuildOrchestrator.test.ts +0 -562
- package/src/build/__tests__/MotionTokenCrossPlatformIntegration.test.ts +0 -424
- package/src/build/__tests__/WebCSSTokenGeneration.test.ts +0 -271
- package/src/build/__tests__/WebMotionTokenGeneration.test.ts +0 -305
- package/src/build/__tests__/WebNPMPackageStructure.test.ts +0 -447
- package/src/build/__tests__/iOSMotionTokenGeneration.test.ts +0 -298
- package/src/build/errors/BuildError.ts +0 -140
- package/src/build/errors/ErrorDocumentation.ts +0 -638
- package/src/build/errors/ErrorHandler.ts +0 -406
- package/src/build/errors/ErrorReporter.ts +0 -573
- package/src/build/errors/PlatformGenerationError.ts +0 -201
- package/src/build/errors/README.md +0 -486
- package/src/build/errors/RecoveryStrategy.ts +0 -393
- package/src/build/errors/TokenGenerationError.ts +0 -196
- package/src/build/errors/TokenReferenceError.ts +0 -204
- package/src/build/errors/__tests__/BuildError.test.ts +0 -212
- package/src/build/errors/__tests__/ErrorDocumentation.example.ts +0 -272
- package/src/build/errors/__tests__/ErrorDocumentation.test.ts +0 -458
- package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +0 -303
- package/src/build/errors/__tests__/ErrorHandler.test.ts +0 -502
- package/src/build/errors/__tests__/ErrorReporter.test.ts +0 -581
- package/src/build/errors/__tests__/MotionTokenErrors.test.ts +0 -392
- package/src/build/errors/__tests__/RecoveryStrategy.test.ts +0 -643
- package/src/build/errors/index.ts +0 -90
- package/src/build/index.ts +0 -73
- package/src/build/orchestration/IncrementalBuilder.ts +0 -532
- package/src/build/orchestration/ParallelExecutor.ts +0 -336
- package/src/build/orchestration/ProgressTracker.ts +0 -582
- package/src/build/orchestration/SequentialExecutor.ts +0 -305
- package/src/build/orchestration/__tests__/IncrementalBuilder.test.ts +0 -354
- package/src/build/orchestration/__tests__/ParallelExecutor.integration.test.ts +0 -295
- package/src/build/orchestration/__tests__/ParallelExecutor.test.ts +0 -493
- package/src/build/orchestration/__tests__/ProgressTracker.test.ts +0 -529
- package/src/build/orchestration/__tests__/SequentialExecutor.integration.test.ts +0 -202
- package/src/build/orchestration/__tests__/SequentialExecutor.test.ts +0 -232
- package/src/build/orchestration/index.ts +0 -35
- package/src/build/platforms/.gitkeep +0 -1
- package/src/build/platforms/AndroidBuilder.ts +0 -1366
- package/src/build/platforms/AndroidShadowGenerator.ts +0 -394
- package/src/build/platforms/IOSShadowGenerator.ts +0 -324
- package/src/build/platforms/PlatformBuilder.ts +0 -131
- package/src/build/platforms/WebBuilder.ts +0 -1414
- package/src/build/platforms/WebShadowGenerator.ts +0 -288
- package/src/build/platforms/__tests__/AndroidBuilder.tokenGeneration.test.ts +0 -146
- package/src/build/platforms/__tests__/AndroidShadowGenerator.test.ts +0 -195
- package/src/build/platforms/__tests__/IOSShadowGenerator.test.ts +0 -156
- package/src/build/platforms/__tests__/WebShadowGenerator.test.ts +0 -123
- package/src/build/platforms/__tests__/iOSBuilder.test.ts +0 -1599
- package/src/build/platforms/iOSBuilder.ts +0 -1746
- package/src/build/platforms/index.ts +0 -9
- package/src/build/product/ProductTokenGenerator.ts +0 -162
- package/src/build/product/TokenIndexReader.ts +0 -78
- package/src/build/product/__tests__/KotlinEmitter.test.ts +0 -109
- package/src/build/product/__tests__/ProductTokenGenerator.test.ts +0 -135
- package/src/build/product/__tests__/SwiftEmitter.test.ts +0 -90
- package/src/build/product/__tests__/TokenIndexReader.test.ts +0 -85
- package/src/build/product/__tests__/WebEmitter.test.ts +0 -111
- package/src/build/product/__tests__/fixtures/tokens/layout.yaml +0 -21
- package/src/build/product/__tests__/fixtures/tokens/motion.yaml +0 -11
- package/src/build/product/__tests__/fixtures/tokens/visualization.yaml +0 -8
- package/src/build/product/emitters/KotlinEmitter.ts +0 -83
- package/src/build/product/emitters/SwiftEmitter.ts +0 -95
- package/src/build/product/emitters/WebEmitter.ts +0 -69
- package/src/build/tokens/.gitkeep +0 -1
- package/src/build/tokens/__tests__/ClassInvariantGuard.test.ts +0 -167
- package/src/build/tokens/__tests__/ComponentTokenGenerator.test.ts +0 -285
- package/src/build/tokens/__tests__/TokenIntegrator.test.ts +0 -319
- package/src/build/tokens/__tests__/TokenSelector.test.ts +0 -264
- package/src/build/tokens/__tests__/UnitConverter.applyScaleWithRounding.test.ts +0 -160
- package/src/build/tokens/__tests__/UnitConverter.test.ts +0 -331
- package/src/build/tokens/__tests__/brand-dual-instance.test.ts +0 -135
- package/src/build/tokens/__tests__/defineComponentTokens.test.ts +0 -440
- package/src/build/types/.gitkeep +0 -1
- package/src/build/types/BuildConfig.ts +0 -123
- package/src/build/types/BuildOrchestrator.ts +0 -114
- package/src/build/types/BuildResult.ts +0 -125
- package/src/build/types/index.ts +0 -39
- package/src/build/validation/.gitkeep +0 -1
- package/src/build/validation/AndroidBuildValidator.ts +0 -630
- package/src/build/validation/CrossPlatformValidationReporter.ts +0 -1267
- package/src/build/validation/InterfaceContractValidator.ts +0 -417
- package/src/build/validation/InterfaceValidator.ts +0 -326
- package/src/build/validation/MathematicalConsistencyValidator.ts +0 -874
- package/src/build/validation/MethodSignatureValidator.ts +0 -374
- package/src/build/validation/PropertyTypeValidator.ts +0 -312
- package/src/build/validation/TokenComparator.ts +0 -796
- package/src/build/validation/ValidationReporter.example.ts +0 -310
- package/src/build/validation/ValidationReporter.ts +0 -745
- package/src/build/validation/WebBuildValidator.ts +0 -583
- package/src/build/validation/__tests__/AndroidBuildValidator.test.ts +0 -522
- package/src/build/validation/__tests__/CrossPlatformValidationReporter.test.ts +0 -593
- package/src/build/validation/__tests__/InterfaceContractValidator.test.ts +0 -647
- package/src/build/validation/__tests__/InterfaceValidation.functional.test.ts +0 -360
- package/src/build/validation/__tests__/InterfaceValidator.test.ts +0 -318
- package/src/build/validation/__tests__/MethodSignatureValidator.test.ts +0 -625
- package/src/build/validation/__tests__/MotionTokenCrossPlatformValidation.test.ts +0 -305
- package/src/build/validation/__tests__/MotionTokenValidation.test.ts +0 -309
- package/src/build/validation/__tests__/PropertyTypeValidator.test.ts +0 -557
- package/src/build/validation/__tests__/TokenComparator.test.ts +0 -358
- package/src/build/validation/__tests__/ValidationReporter.integration.test.ts +0 -424
- package/src/build/validation/__tests__/ValidationReporter.test.ts +0 -793
- package/src/build/validation/__tests__/WebBuildValidator.test.ts +0 -495
- package/src/build/validation/iOSBuildValidator.ts +0 -783
- package/src/build/validation/index.ts +0 -74
- package/src/build/validation/types/InterfaceDefinition.ts +0 -101
- package/src/build/validation/types/ValidationResult.ts +0 -114
- package/src/build/workflow/BuildMode.ts +0 -336
- package/src/build/workflow/CICDIntegration.ts +0 -503
- package/src/build/workflow/ConfigHelpers.example.ts +0 -317
- package/src/build/workflow/ConfigHelpers.ts +0 -834
- package/src/build/workflow/README.md +0 -327
- package/src/build/workflow/SourceMapGenerator.ts +0 -362
- package/src/build/workflow/__tests__/BuildMode.test.ts +0 -544
- package/src/build/workflow/__tests__/CICDIntegration.test.ts +0 -602
- package/src/build/workflow/__tests__/ConfigHelpers.test.ts +0 -559
- package/src/build/workflow/__tests__/SourceMapGenerator.test.ts +0 -421
- package/src/build/workflow/index.ts +0 -42
- package/src/cli/__tests__/Applier.test.ts +0 -202
- package/src/cli/__tests__/Classifier.test.ts +0 -187
- package/src/cli/__tests__/FileScanner.test.ts +0 -108
- package/src/cli/__tests__/IgnoreFilter.test.ts +0 -92
- package/src/cli/__tests__/Manifest.test.ts +0 -107
- package/src/cli/__tests__/PackageResolver.test.ts +0 -66
- package/src/cli/__tests__/Prompter.test.ts +0 -165
- package/src/cli/__tests__/Reporter.test.ts +0 -128
- package/src/cli/__tests__/backward-compat.test.ts +0 -142
- package/src/cli/__tests__/figma-extract.test.ts +0 -342
- package/src/cli/__tests__/figma-push.test.ts +0 -350
- package/src/cli/__tests__/init.test.ts +0 -293
- package/src/cli/__tests__/loadComponentTokens.test.ts +0 -187
- package/src/cli/__tests__/pipeline-independence.test.ts +0 -127
- package/src/cli/__tests__/product-only.test.ts +0 -130
- package/src/cli/__tests__/resolveTokens.test.ts +0 -88
- package/src/cli/__tests__/staleness.test.ts +0 -132
- package/src/cli/__tests__/sync.test.ts +0 -199
- package/src/cli/__tests__/validate.test.ts +0 -69
- package/src/cli/designerpunk.ts +0 -410
- package/src/cli/figma-extract.ts +0 -331
- package/src/cli/figma-push.ts +0 -288
- package/src/cli/generateProductTokens.ts +0 -69
- package/src/cli/init.ts +0 -481
- package/src/cli/loadComponentTokens.ts +0 -145
- package/src/cli/resolveTokens.ts +0 -123
- package/src/cli/shared/mcpDataRoots.ts +0 -122
- package/src/cli/shared/resolvePackageRoot.ts +0 -58
- package/src/cli/shared/transforms.ts +0 -18
- package/src/cli/staleness.ts +0 -81
- package/src/cli/sync/Applier.ts +0 -128
- package/src/cli/sync/Classifier.ts +0 -130
- package/src/cli/sync/FileScanner.ts +0 -64
- package/src/cli/sync/IgnoreFilter.ts +0 -44
- package/src/cli/sync/Manifest.ts +0 -64
- package/src/cli/sync/PackageResolver.ts +0 -40
- package/src/cli/sync/Prompter.ts +0 -173
- package/src/cli/sync/Reporter.ts +0 -78
- package/src/cli/sync/SteeringDirCheck.ts +0 -166
- package/src/cli/sync/index.ts +0 -115
- package/src/cli/validate.ts +0 -135
- package/src/cli/validateProductTokens.ts +0 -55
- package/src/color/OklchConverter.ts +0 -284
- package/src/color/OklchValidator.ts +0 -186
- package/src/color/__tests__/OklchConverter.test.ts +0 -232
- package/src/color/__tests__/OklchRegression.test.ts +0 -101
- package/src/color/__tests__/OklchValidator.test.ts +0 -199
- package/src/color/__tests__/WcagContrast.test.ts +0 -76
- package/src/components/__tests__/BlendTokenUsageValidation.test.ts +0 -726
- package/src/components/__tests__/DynamicImportGuard.test.ts +0 -226
- package/src/components/__tests__/ExtensionLintPolicy.test.ts +0 -113
- package/src/components/__tests__/TokenCompliance.test.ts +0 -921
- package/src/components/__tests__/colorInheritanceValidation.test.ts +0 -267
- package/src/components/__tests__/componentTypographyInheritance.test.ts +0 -326
- package/src/components/core/Avatar-Base/README.md +0 -366
- package/src/components/core/Avatar-Base/__tests__/.gitkeep +0 -3
- package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +0 -597
- package/src/components/core/Avatar-Base/__tests__/Avatar.icon-integration.test.ts +0 -656
- package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +0 -396
- package/src/components/core/Avatar-Base/__tests__/Avatar.lifecycle.test.ts +0 -545
- package/src/components/core/Avatar-Base/__tests__/Avatar.rendering.test.ts +0 -505
- package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +0 -701
- package/src/components/core/Avatar-Base/avatar.tokens.ts +0 -376
- package/src/components/core/Avatar-Base/index.ts +0 -25
- package/src/components/core/Avatar-Base/platforms/ios/.gitkeep +0 -3
- package/src/components/core/Avatar-Base/platforms/web/.gitkeep +0 -3
- package/src/components/core/Avatar-Base/platforms/web/Avatar.styles.css +0 -595
- package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +0 -892
- package/src/components/core/Avatar-Base/platforms/web/hexagon-clip.svg +0 -87
- package/src/components/core/Avatar-Base/tokens/.gitkeep +0 -4
- package/src/components/core/Avatar-Base/types.ts +0 -86
- package/src/components/core/Badge-Count-Base/README.md +0 -323
- package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.stemma.test.ts +0 -548
- package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.test.ts +0 -452
- package/src/components/core/Badge-Count-Base/__tests__/test-utils.ts +0 -244
- package/src/components/core/Badge-Count-Base/index.ts +0 -37
- package/src/components/core/Badge-Count-Base/platforms/ios/.gitkeep +0 -1
- package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.styles.css +0 -148
- package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.ts +0 -363
- package/src/components/core/Badge-Count-Base/types.ts +0 -150
- package/src/components/core/Badge-Count-Notification/README.md +0 -396
- package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.stemma.test.ts +0 -571
- package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.test.ts +0 -490
- package/src/components/core/Badge-Count-Notification/__tests__/test-utils.ts +0 -256
- package/src/components/core/Badge-Count-Notification/index.ts +0 -60
- package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.styles.css +0 -182
- package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.ts +0 -401
- package/src/components/core/Badge-Count-Notification/tokens.ts +0 -124
- package/src/components/core/Badge-Count-Notification/types.ts +0 -119
- package/src/components/core/Badge-Label-Base/README.md +0 -251
- package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.stemma.test.ts +0 -549
- package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.test.ts +0 -439
- package/src/components/core/Badge-Label-Base/__tests__/test-utils.ts +0 -269
- package/src/components/core/Badge-Label-Base/__tests__/tokens.test.ts +0 -88
- package/src/components/core/Badge-Label-Base/index.ts +0 -41
- package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.styles.css +0 -166
- package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.ts +0 -340
- package/src/components/core/Badge-Label-Base/tokens.ts +0 -80
- package/src/components/core/Badge-Label-Base/types.ts +0 -148
- package/src/components/core/Button-CTA/Button-CTA.tokens.ts +0 -79
- package/src/components/core/Button-CTA/README.md +0 -293
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.alignment.test.ts +0 -355
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +0 -698
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.tokens.test.ts +0 -89
- package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -209
- package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -185
- package/src/components/core/Button-CTA/examples/BasicUsage.html +0 -133
- package/src/components/core/Button-CTA/examples/BasicUsage.tsx +0 -219
- package/src/components/core/Button-CTA/examples/Variants.html +0 -263
- package/src/components/core/Button-CTA/examples/WithIcon.html +0 -166
- package/src/components/core/Button-CTA/index.ts +0 -20
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +0 -395
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +0 -644
- package/src/components/core/Button-CTA/platforms/web/__tests__/ButtonCTA.icon-integration.test.ts +0 -476
- package/src/components/core/Button-CTA/types.ts +0 -239
- package/src/components/core/Button-Icon/README.md +0 -371
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.alignment.test.ts +0 -358
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties-8-13.test.ts +0 -953
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties.test.ts +0 -920
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.stemma.test.ts +0 -622
- package/src/components/core/Button-Icon/__tests__/ButtonIcon.unit.test.ts +0 -560
- package/src/components/core/Button-Icon/__tests__/setup.test.ts +0 -361
- package/src/components/core/Button-Icon/__tests__/test-utils.ts +0 -248
- package/src/components/core/Button-Icon/buttonIcon.tokens.ts +0 -202
- package/src/components/core/Button-Icon/platforms/web/.gitkeep +0 -4
- package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.css +0 -600
- package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.ts +0 -625
- package/src/components/core/Button-Icon/types.ts +0 -186
- package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.ts +0 -112
- package/src/components/core/Button-VerticalList-Item/README.md +0 -450
- package/src/components/core/Button-VerticalList-Item/__tests__/.gitkeep +0 -2
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.alignment.test.ts +0 -271
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.failLoudly.test.ts +0 -106
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.integration.test.ts +0 -480
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.properties.test.ts +0 -634
- package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.unit.test.ts +0 -746
- package/src/components/core/Button-VerticalList-Item/__tests__/rtlSupport.test.ts +0 -206
- package/src/components/core/Button-VerticalList-Item/__tests__/test-utils.ts +0 -297
- package/src/components/core/Button-VerticalList-Item/__tests__/visualStateMapping.test.ts +0 -419
- package/src/components/core/Button-VerticalList-Item/index.ts +0 -49
- package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItemTest.kt +0 -1109
- package/src/components/core/Button-VerticalList-Item/platforms/ios/.gitkeep +0 -2
- package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItemTests.swift +0 -794
- package/src/components/core/Button-VerticalList-Item/platforms/web/.gitkeep +0 -2
- package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.styles.css +0 -459
- package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts +0 -1030
- package/src/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.ts +0 -411
- package/src/components/core/Button-VerticalList-Item/types.ts +0 -338
- package/src/components/core/Button-VerticalList-Set/README.md +0 -578
- package/src/components/core/Button-VerticalList-Set/__tests__/.gitkeep +0 -5
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.integration.test.ts +0 -676
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property.test.ts +0 -786
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property2.test.ts +0 -1109
- package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.unit.test.ts +0 -924
- package/src/components/core/Button-VerticalList-Set/__tests__/animationTiming.test.ts +0 -182
- package/src/components/core/Button-VerticalList-Set/__tests__/crossPlatformConsistency.test.ts +0 -685
- package/src/components/core/Button-VerticalList-Set/__tests__/deriveItemStates.test.ts +0 -179
- package/src/components/core/Button-VerticalList-Set/__tests__/validation.test.ts +0 -275
- package/src/components/core/Button-VerticalList-Set/index.ts +0 -32
- package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetTest.kt +0 -961
- package/src/components/core/Button-VerticalList-Set/platforms/ios/.gitkeep +0 -0
- package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetTests.swift +0 -475
- package/src/components/core/Button-VerticalList-Set/platforms/web/.gitkeep +0 -4
- package/src/components/core/Button-VerticalList-Set/platforms/web/Button-VerticalList-Set.styles.css +0 -167
- package/src/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.ts +0 -1446
- package/src/components/core/Button-VerticalList-Set/types.ts +0 -788
- package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +0 -534
- package/src/components/core/Chip-Base/index.ts +0 -40
- package/src/components/core/Chip-Base/platforms/ios/.gitkeep +0 -3
- package/src/components/core/Chip-Base/platforms/web/.gitkeep +0 -5
- package/src/components/core/Chip-Base/platforms/web/ChipBase.styles.css +0 -280
- package/src/components/core/Chip-Base/platforms/web/ChipBase.web.ts +0 -480
- package/src/components/core/Chip-Base/types.ts +0 -189
- package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +0 -592
- package/src/components/core/Chip-Filter/index.ts +0 -34
- package/src/components/core/Chip-Filter/platforms/web/ChipFilter.styles.css +0 -105
- package/src/components/core/Chip-Filter/platforms/web/ChipFilter.web.ts +0 -539
- package/src/components/core/Chip-Filter/types.ts +0 -47
- package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +0 -472
- package/src/components/core/Chip-Input/index.ts +0 -35
- package/src/components/core/Chip-Input/platforms/ios/.gitkeep +0 -3
- package/src/components/core/Chip-Input/platforms/web/ChipInput.styles.css +0 -99
- package/src/components/core/Chip-Input/platforms/web/ChipInput.web.ts +0 -485
- package/src/components/core/Chip-Input/types.ts +0 -35
- package/src/components/core/Container-Base/README.md +0 -450
- package/src/components/core/Container-Base/__tests__/ContainerBase.test.ts +0 -712
- package/src/components/core/Container-Base/index.ts +0 -47
- package/src/components/core/Container-Base/platforms/web/ContainerBase.web.ts +0 -405
- package/src/components/core/Container-Base/platforms/web/styles.css +0 -198
- package/src/components/core/Container-Base/platforms/web/token-mapping.ts +0 -573
- package/src/components/core/Container-Base/tokens.ts +0 -241
- package/src/components/core/Container-Base/types.ts +0 -307
- package/src/components/core/Container-Card-Base/README.md +0 -506
- package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.composition.test.ts +0 -167
- package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.test.ts +0 -646
- package/src/components/core/Container-Card-Base/index.ts +0 -64
- package/src/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.ts +0 -373
- package/src/components/core/Container-Card-Base/tokens.ts +0 -224
- package/src/components/core/Container-Card-Base/types.ts +0 -332
- package/src/components/core/Icon-Base/README.md +0 -168
- package/src/components/core/Icon-Base/__tests__/IconBase.test.ts +0 -192
- package/src/components/core/Icon-Base/index.ts +0 -34
- package/src/components/core/Icon-Base/platforms/ios/ASSET_CATALOG_SETUP.md +0 -239
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Contents.json +0 -6
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/Contents.json +0 -9
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/alert-circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/arrow-down.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/arrow-left.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/arrow-right.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/arrow-up.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/award.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/bell.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/briefcase.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/calendar.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/check-circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/check.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/chevron-down.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/chevron-left.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/chevron-right.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/clock.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/credit-card.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/dollar-sign.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/external-link.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/eye-off.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/eye.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/file-text.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/filter.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/globe.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/heart.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/info.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/mail.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/map-pin.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/minus.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/more-horizontal.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/more-vertical.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/phone.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/plus.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/refresh-cw.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/save.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/search.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/settings.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/share-2.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/share.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/shield.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/smartphone.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/smile.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/star.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/trending-up.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/user-check.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/user-x.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/user.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/users.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/wifi.svg +0 -1
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/Contents.json +0 -15
- package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/x.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/IconBase.web.ts +0 -553
- package/src/components/core/Icon-Base/platforms/web/assets/alert-circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-down.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-left.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-right.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/arrow-up.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/award.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/bell.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/briefcase.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/calendar.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/check-circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/check.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-down.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-left.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/chevron-right.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/circle.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/clock.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/credit-card.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/dollar-sign.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/external-link.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/eye-off.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/eye.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/file-text.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/filter.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/globe.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/heart.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/info.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/mail.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/map-pin.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/minus.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/more-horizontal.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/more-vertical.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/phone.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/plus.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/refresh-cw.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/save.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/search.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/settings.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/share-2.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/share.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/shield.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/smartphone.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/smile.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/star.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/trending-up.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/user-check.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/user-x.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/user.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/users.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/wifi.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/assets/x.svg +0 -1
- package/src/components/core/Icon-Base/platforms/web/styles.css +0 -203
- package/src/components/core/Icon-Base/types.ts +0 -338
- package/src/components/core/Input-Checkbox-Base/README.md +0 -390
- package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.stemma.test.ts +0 -552
- package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.test.ts +0 -878
- package/src/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.ts +0 -37
- package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.css +0 -477
- package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.ts +0 -561
- package/src/components/core/Input-Checkbox-Base/types.ts +0 -399
- package/src/components/core/Input-Checkbox-Legal/README.md +0 -554
- package/src/components/core/Input-Checkbox-Legal/__tests__/InputCheckboxLegal.test.ts +0 -727
- package/src/components/core/Input-Checkbox-Legal/platforms/ios/.gitkeep +0 -2
- package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.css +0 -112
- package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.ts +0 -505
- package/src/components/core/Input-Checkbox-Legal/types.ts +0 -348
- package/src/components/core/Input-Radio-Base/.gitkeep +0 -2
- package/src/components/core/Input-Radio-Base/README.md +0 -427
- package/src/components/core/Input-Radio-Base/__tests__/.gitkeep +0 -1
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.form.test.ts +0 -299
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.stemma.test.ts +0 -543
- package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.test.ts +0 -429
- package/src/components/core/Input-Radio-Base/platforms/ios/.gitkeep +0 -1
- package/src/components/core/Input-Radio-Base/platforms/web/.gitkeep +0 -1
- package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.css +0 -504
- package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.ts +0 -648
- package/src/components/core/Input-Radio-Base/radio-sizing.tokens.ts +0 -37
- package/src/components/core/Input-Radio-Base/types.ts +0 -362
- package/src/components/core/Input-Radio-Set/README.md +0 -373
- package/src/components/core/Input-Radio-Set/__tests__/.gitkeep +0 -0
- package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.stemma.test.ts +0 -493
- package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.test.ts +0 -499
- package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.css +0 -99
- package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.ts +0 -790
- package/src/components/core/Input-Radio-Set/types.ts +0 -301
- package/src/components/core/Input-Text-Base/README.md +0 -258
- package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +0 -311
- package/src/components/core/Input-Text-Base/__tests__/keyboardNavigation.test.ts +0 -444
- package/src/components/core/Input-Text-Base/__tests__/labelAssociation.test.ts +0 -418
- package/src/components/core/Input-Text-Base/__tests__/screenReaderSupport.test.ts +0 -405
- package/src/components/core/Input-Text-Base/__tests__/setup.ts +0 -17
- package/src/components/core/Input-Text-Base/__tests__/stateManagement.test.ts +0 -718
- package/src/components/core/Input-Text-Base/__tests__/test-utils.ts +0 -81
- package/src/components/core/Input-Text-Base/__tests__/touchTargetSizing.test.ts +0 -319
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.ts +0 -241
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.css +0 -293
- package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.ts +0 -448
- package/src/components/core/Input-Text-Base/stateManagement.ts +0 -267
- package/src/components/core/Input-Text-Base/tokens.ts +0 -210
- package/src/components/core/Input-Text-Base/types.ts +0 -114
- package/src/components/core/Input-Text-Email/README.md +0 -252
- package/src/components/core/Input-Text-Email/__tests__/validation.test.ts +0 -127
- package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.ts +0 -276
- package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.ts +0 -319
- package/src/components/core/Input-Text-Email/stateManagement.ts +0 -160
- package/src/components/core/Input-Text-Email/tokens.ts +0 -33
- package/src/components/core/Input-Text-Email/types.ts +0 -72
- package/src/components/core/Input-Text-Email/validation.ts +0 -130
- package/src/components/core/Input-Text-Password/README.md +0 -360
- package/src/components/core/Input-Text-Password/__tests__/validation.test.ts +0 -362
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.ts +0 -434
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +0 -512
- package/src/components/core/Input-Text-Password/stateManagement.ts +0 -244
- package/src/components/core/Input-Text-Password/tokens.ts +0 -32
- package/src/components/core/Input-Text-Password/types.ts +0 -177
- package/src/components/core/Input-Text-Password/validation.ts +0 -207
- package/src/components/core/Input-Text-PhoneNumber/README.md +0 -276
- package/src/components/core/Input-Text-PhoneNumber/__tests__/validation.test.ts +0 -301
- package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.ts +0 -370
- package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.ts +0 -393
- package/src/components/core/Input-Text-PhoneNumber/stateManagement.ts +0 -250
- package/src/components/core/Input-Text-PhoneNumber/tokens.ts +0 -33
- package/src/components/core/Input-Text-PhoneNumber/types.ts +0 -135
- package/src/components/core/Input-Text-PhoneNumber/validation.ts +0 -302
- package/src/components/core/Nav-Header-App/README.md +0 -29
- package/src/components/core/Nav-Header-App/index.ts +0 -5
- package/src/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.ts +0 -37
- package/src/components/core/Nav-Header-App/types.ts +0 -32
- package/src/components/core/Nav-Header-Base/README.md +0 -21
- package/src/components/core/Nav-Header-Base/index.ts +0 -12
- package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.styles.css +0 -75
- package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.ts +0 -120
- package/src/components/core/Nav-Header-Base/types.ts +0 -63
- package/src/components/core/Nav-Header-Page/README.md +0 -34
- package/src/components/core/Nav-Header-Page/__tests__/NavHeaderPage.test.ts +0 -250
- package/src/components/core/Nav-Header-Page/index.ts +0 -12
- package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.styles.css +0 -90
- package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.ts +0 -169
- package/src/components/core/Nav-Header-Page/types.ts +0 -55
- package/src/components/core/Nav-SegmentedChoice-Base/README.md +0 -327
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.android.test.ts +0 -218
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.interaction.test.ts +0 -419
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.ios.test.ts +0 -207
- package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.visual.test.ts +0 -371
- package/src/components/core/Nav-SegmentedChoice-Base/index.ts +0 -38
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.styles.css +0 -160
- package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.ts +0 -477
- package/src/components/core/Nav-SegmentedChoice-Base/types.ts +0 -65
- package/src/components/core/Nav-TabBar-Base/README.md +0 -264
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.android.test.ts +0 -270
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.ios.test.ts +0 -221
- package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.test.ts +0 -421
- package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.html +0 -2
- package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.tsx +0 -2
- package/src/components/core/Nav-TabBar-Base/index.ts +0 -20
- package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.styles.css +0 -281
- package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.ts +0 -420
- package/src/components/core/Nav-TabBar-Base/types.ts +0 -43
- package/src/components/core/Progress-Bar-Base/README.md +0 -31
- package/src/components/core/Progress-Bar-Base/__tests__/ProgressBarBase.test.ts +0 -202
- package/src/components/core/Progress-Bar-Base/index.ts +0 -6
- package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.styles.css +0 -52
- package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.ts +0 -135
- package/src/components/core/Progress-Bar-Base/types.ts +0 -46
- package/src/components/core/Progress-Indicator-Connector-Base/README.md +0 -169
- package/src/components/core/Progress-Indicator-Connector-Base/index.ts +0 -33
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.styles.css +0 -50
- package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.ts +0 -141
- package/src/components/core/Progress-Indicator-Connector-Base/types.ts +0 -67
- package/src/components/core/Progress-Indicator-Label-Base/README.md +0 -191
- package/src/components/core/Progress-Indicator-Label-Base/index.ts +0 -28
- package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.styles.css +0 -81
- package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.ts +0 -174
- package/src/components/core/Progress-Indicator-Label-Base/types.ts +0 -64
- package/src/components/core/Progress-Indicator-Node-Base/README.md +0 -206
- package/src/components/core/Progress-Indicator-Node-Base/__tests__/VisualStates.test.ts +0 -259
- package/src/components/core/Progress-Indicator-Node-Base/index.ts +0 -36
- package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.styles.css +0 -193
- package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.ts +0 -226
- package/src/components/core/Progress-Indicator-Node-Base/types.ts +0 -142
- package/src/components/core/Progress-Pagination-Base/README.md +0 -290
- package/src/components/core/Progress-Pagination-Base/__tests__/PaginationBase.test.ts +0 -290
- package/src/components/core/Progress-Pagination-Base/index.ts +0 -40
- package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.styles.css +0 -80
- package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.ts +0 -293
- package/src/components/core/Progress-Pagination-Base/types.ts +0 -112
- package/src/components/core/Progress-Stepper-Base/README.md +0 -311
- package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +0 -345
- package/src/components/core/Progress-Stepper-Base/index.ts +0 -43
- package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.styles.css +0 -49
- package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.ts +0 -288
- package/src/components/core/Progress-Stepper-Base/types.ts +0 -175
- package/src/components/core/Progress-Stepper-Detailed/README.md +0 -401
- package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +0 -481
- package/src/components/core/Progress-Stepper-Detailed/index.ts +0 -48
- package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.styles.css +0 -106
- package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.ts +0 -336
- package/src/components/core/Progress-Stepper-Detailed/types.ts +0 -195
- package/src/composition/BlendComposition.ts +0 -46
- package/src/composition/BlendCompositionParser.ts +0 -215
- package/src/composition/OpacityComposition.ts +0 -62
- package/src/composition/OpacityCompositionParser.ts +0 -308
- package/src/composition/__tests__/BlendCompositionParser.test.ts +0 -431
- package/src/composition/__tests__/OpacityCompositionParser.test.ts +0 -539
- package/src/composition/index.ts +0 -20
- package/src/config/ConfigLoader.ts +0 -143
- package/src/config/__resolution-matrix__/README.md +0 -76
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/compiled/defineConfig.js +0 -9
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/designerpunk.config.ts +0 -20
- package/src/config/__resolution-matrix__/fixtures/faithful-cjs/my-overrides.ts +0 -8
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/compiled/defineConfig.js +0 -11
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/designerpunk.config.ts +0 -23
- package/src/config/__resolution-matrix__/fixtures/faithful-esm/my-overrides.ts +0 -6
- package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/designerpunk.config.ts +0 -11
- package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/src/config/index.ts +0 -15
- package/src/config/__resolution-matrix__/fixtures/source-dir-esm/designerpunk.config.ts +0 -15
- package/src/config/__resolution-matrix__/fixtures/source-dir-esm/src/config/index.ts +0 -13
- package/src/config/__resolution-matrix__/run-matrix.js +0 -107
- package/src/config/__resolution-matrix__/runner.js +0 -153
- package/src/config/__resolution-matrix__/verify-real-loadconfig.js +0 -122
- package/src/config/__tests__/ConfigLoader.test.ts +0 -115
- package/src/config/defineConfig.ts +0 -71
- package/src/config/index.ts +0 -7
- package/src/config/scopedTsRequire.ts +0 -62
- package/src/constants/BaselineGrid.ts +0 -41
- package/src/constants/SpacingTokens.ts +0 -55
- package/src/figma/ComponentAnalysis.ts +0 -292
- package/src/figma/ComponentAnalysisGenerator.ts +0 -444
- package/src/figma/ConsoleMCPClient.ts +0 -168
- package/src/figma/ConsoleMCPClientImpl.ts +0 -1034
- package/src/figma/DesignExtractor.ts +0 -3620
- package/src/figma/TokenSyncWorkflow.ts +0 -915
- package/src/figma/TokenTranslator.ts +0 -891
- package/src/figma/VariantAnalyzer.ts +0 -712
- package/src/figma/__tests__/ComponentAnalysisGenerator.json.test.ts +0 -429
- package/src/figma/__tests__/ComponentAnalysisGenerator.markdown.test.ts +0 -428
- package/src/figma/__tests__/ConsoleMCPClient.bugfix.test.ts +0 -261
- package/src/figma/__tests__/ConsoleMCPClient.preservation.test.ts +0 -395
- package/src/figma/__tests__/ConsoleMCPClient.test.ts +0 -375
- package/src/figma/__tests__/DesignExtractor.boundVariableResolution.test.ts +0 -580
- package/src/figma/__tests__/DesignExtractor.buildNodeTree.test.ts +0 -535
- package/src/figma/__tests__/DesignExtractor.captureComponentScreenshot.test.ts +0 -176
- package/src/figma/__tests__/DesignExtractor.detectBehavioralContracts.test.ts +0 -263
- package/src/figma/__tests__/DesignExtractor.detectComponentTokenDecisions.test.ts +0 -379
- package/src/figma/__tests__/DesignExtractor.detectCompositionPatterns.test.ts +0 -507
- package/src/figma/__tests__/DesignExtractor.detectPlatformParity.test.ts +0 -406
- package/src/figma/__tests__/DesignExtractor.queryContext.test.ts +0 -214
- package/src/figma/__tests__/DesignExtractor.readFigmaComponent.test.ts +0 -431
- package/src/figma/__tests__/DesignExtractor.readStyles.test.ts +0 -204
- package/src/figma/__tests__/DesignExtractor.readTokenBindings.test.ts +0 -268
- package/src/figma/__tests__/DesignExtractor.reconstructCompositeTokens.test.ts +0 -403
- package/src/figma/__tests__/DesignExtractor.resolveUnknownVariableIds.test.ts +0 -259
- package/src/figma/__tests__/DesignExtractor.translateTokens.test.ts +0 -433
- package/src/figma/__tests__/DesignExtractor.validateModes.test.ts +0 -350
- package/src/figma/__tests__/TokenSyncWorkflow.batch.test.ts +0 -277
- package/src/figma/__tests__/TokenSyncWorkflow.drift.test.ts +0 -187
- package/src/figma/__tests__/TokenSyncWorkflow.preservation.test.ts +0 -544
- package/src/figma/__tests__/TokenSyncWorkflow.styles.test.ts +0 -245
- package/src/figma/__tests__/TokenSyncWorkflow.sync.test.ts +0 -217
- package/src/figma/__tests__/TokenTranslator.test.ts +0 -757
- package/src/figma/__tests__/VariantAnalyzer.detectConflicts.test.ts +0 -126
- package/src/figma/__tests__/VariantAnalyzer.test.ts +0 -633
- package/src/figma/__tests__/error-reporting.test.ts +0 -254
- package/src/figma/__tests__/preflight.test.ts +0 -94
- package/src/figma/error-reporting.ts +0 -260
- package/src/figma/index.ts +0 -98
- package/src/figma/portCleanup.ts +0 -86
- package/src/figma/preflight.ts +0 -120
- package/src/generators/BlendUtilityGenerator.ts +0 -847
- package/src/generators/BlendValueGenerator.ts +0 -198
- package/src/generators/DTCGFormatGenerator.ts +0 -1355
- package/src/generators/DTCGGeneratorConfig.ts +0 -46
- package/src/generators/ModeResolvedTokens.ts +0 -58
- package/src/generators/ResponsiveGridGenerator.ts +0 -273
- package/src/generators/TokenFileGenerator.ts +0 -2070
- package/src/generators/__tests__/AccessibilityTokenGeneration.test.ts +0 -350
- package/src/generators/__tests__/BlendUtilityGenerator.test.ts +0 -829
- package/src/generators/__tests__/BlendValueGenerator.test.ts +0 -200
- package/src/generators/__tests__/BreakpointTokenGeneration.test.ts +0 -172
- package/src/generators/__tests__/CSSThemeScoping.test.ts +0 -153
- package/src/generators/__tests__/DTCGConfigOptions.test.ts +0 -271
- package/src/generators/__tests__/DTCGErrorHandling.test.ts +0 -139
- package/src/generators/__tests__/DTCGFormatGenerator.integration.test.ts +0 -346
- package/src/generators/__tests__/DTCGFormatGenerator.property.test.ts +0 -497
- package/src/generators/__tests__/DTCGFormatGenerator.test.ts +0 -469
- package/src/generators/__tests__/FigmaTransformer.styles.test.ts +0 -398
- package/src/generators/__tests__/FigmaTransformer.variables.test.ts +0 -540
- package/src/generators/__tests__/GridSpacingTokenGeneration.test.ts +0 -254
- package/src/generators/__tests__/IconTokenGeneration.test.ts +0 -452
- package/src/generators/__tests__/KotlinThemeTypes.test.ts +0 -110
- package/src/generators/__tests__/ModeAwareGeneration.test.ts +0 -160
- package/src/generators/__tests__/NativeOklchOutput.test.ts +0 -56
- package/src/generators/__tests__/OklchExport.test.ts +0 -71
- package/src/generators/__tests__/ProductRepoSimulation.test.ts +0 -91
- package/src/generators/__tests__/ResponsiveGridGeneration.test.ts +0 -291
- package/src/generators/__tests__/Spec076TokenMigration.test.ts +0 -106
- package/src/generators/__tests__/Spec077ModesVerification.test.ts +0 -52
- package/src/generators/__tests__/SwiftThemeTypes.test.ts +0 -122
- package/src/generators/__tests__/TokenFileGenerator.test.ts +0 -914
- package/src/generators/__tests__/TransformerRegistry.test.ts +0 -118
- package/src/generators/__tests__/WcagValueExportSupport.test.ts +0 -84
- package/src/generators/__tests__/WcagValueInfrastructure.test.ts +0 -122
- package/src/generators/__tests__/WebOklchOutput.test.ts +0 -72
- package/src/generators/__tests__/generateTokenIndex.test.ts +0 -204
- package/src/generators/__tests__/helpers/defaultSemanticOptions.ts +0 -24
- package/src/generators/generateTokenFiles.ts +0 -337
- package/src/generators/generateTokenIndex.ts +0 -258
- package/src/generators/oklch/OklchExportUtils.ts +0 -57
- package/src/generators/oklch/OklchTokenIndexMetadata.ts +0 -30
- package/src/generators/transformers/FigmaTransformer.ts +0 -912
- package/src/generators/transformers/ITokenTransformer.ts +0 -56
- package/src/generators/transformers/TransformerRegistry.ts +0 -63
- package/src/generators/transformers/index.ts +0 -52
- package/src/generators/types/DTCGTypes.ts +0 -101
- package/src/integration/BuildErrorHandler.ts +0 -440
- package/src/integration/BuildSystemInterface.ts +0 -338
- package/src/integration/PlatformFileSelector.ts +0 -288
- package/src/integration/RegistryCoordinator.ts +0 -404
- package/src/integration/TranslationCoordinator.ts +0 -458
- package/src/integration/TreeShakingOptimizer.ts +0 -350
- package/src/integration/ValidationCoordinator.ts +0 -780
- package/src/integration/__tests__/ComponentTokenValidation.test.ts +0 -762
- package/src/integration/__tests__/ValidationCoordinator.test.ts +0 -609
- package/src/integration/__tests__/performance/ComponentTokenValidationPerformance.test.ts +0 -161
- package/src/integration/index.ts +0 -55
- package/src/naming/NamingConventionManager.ts +0 -318
- package/src/naming/PlatformNamingRules.ts +0 -278
- package/src/naming/__tests__/NamingConventions.test.ts +0 -224
- package/src/naming/index.ts +0 -23
- package/src/parent-completion.md +0 -1
- package/src/performance/CachingStrategy.ts +0 -426
- package/src/performance/FileGenerationOptimizer.ts +0 -294
- package/src/performance/PerformanceMonitor.ts +0 -185
- package/src/performance/PerformanceOptimizer.ts +0 -348
- package/src/performance/index.ts +0 -30
- package/src/providers/AndroidFileOrganizer.ts +0 -241
- package/src/providers/AndroidFormatGenerator.ts +0 -750
- package/src/providers/AndroidUnitConverter.ts +0 -177
- package/src/providers/FormatProvider.ts +0 -187
- package/src/providers/PathProvider.ts +0 -197
- package/src/providers/UnitProvider.ts +0 -106
- package/src/providers/WebFileOrganizer.ts +0 -121
- package/src/providers/WebFormatGenerator.ts +0 -611
- package/src/providers/WebUnitConverter.ts +0 -116
- package/src/providers/__tests__/AndroidAccessibilityTokens.test.ts +0 -86
- package/src/providers/__tests__/AndroidFormatGenerator-semantic.test.ts +0 -494
- package/src/providers/__tests__/FormatProviders.test.ts +0 -828
- package/src/providers/__tests__/InsetTokenGeneration.test.ts +0 -627
- package/src/providers/__tests__/PathProviders.test.ts +0 -512
- package/src/providers/__tests__/PlatformOutputFormat.test.ts +0 -252
- package/src/providers/__tests__/UnitProviders.test.ts +0 -721
- package/src/providers/__tests__/WebFormatGenerator-semantic.test.ts +0 -293
- package/src/providers/__tests__/iOSFormatGenerator-semantic.test.ts +0 -410
- package/src/providers/iOSFileOrganizer.ts +0 -162
- package/src/providers/iOSFormatGenerator.ts +0 -599
- package/src/providers/iOSUnitConverter.ts +0 -125
- package/src/providers/index.ts +0 -26
- package/src/registries/ComponentTokenRegistry.ts +0 -292
- package/src/registries/IRegistry.ts +0 -170
- package/src/registries/__tests__/ComponentTokenRegistry.test.ts +0 -446
- package/src/registries/__tests__/IRegistry.test.ts +0 -250
- package/src/registries/__tests__/PrimitiveTokenRegistry.test.ts +0 -342
- package/src/registries/__tests__/SemanticTokenRegistry.test.ts +0 -444
- package/src/resolvers/AndroidColorResolver.ts +0 -333
- package/src/resolvers/ModeThemeResolver.ts +0 -152
- package/src/resolvers/SemanticOverrideResolver.ts +0 -155
- package/src/resolvers/SemanticValueResolver.ts +0 -133
- package/src/resolvers/WebColorResolver.ts +0 -240
- package/src/resolvers/__tests__/AndroidColorResolver.test.ts +0 -507
- package/src/resolvers/__tests__/ModeThemeResolver.test.ts +0 -411
- package/src/resolvers/__tests__/SemanticOverrideResolver.test.ts +0 -186
- package/src/resolvers/__tests__/WebColorResolver.test.ts +0 -405
- package/src/resolvers/__tests__/iOSColorResolver.test.ts +0 -432
- package/src/resolvers/iOSColorResolver.ts +0 -224
- package/src/resolvers/index.ts +0 -11
- package/src/security/AIAgentRestrictions.ts +0 -298
- package/src/security/ContaminationAuditor.ts +0 -393
- package/src/security/ContaminationPrevention.ts +0 -275
- package/src/security/DocumentationGuard.ts +0 -258
- package/src/security/FlexibilityTokenGuard.ts +0 -256
- package/src/security/HumanApprovalWorkflow.ts +0 -319
- package/src/security/__tests__/AIAgentRestrictions.test.ts +0 -482
- package/src/security/__tests__/ContaminationPrevention.test.ts +0 -424
- package/src/security/__tests__/SecurityIntegration.test.ts +0 -505
- package/src/security/index.ts +0 -48
- package/src/testing/__tests__/utilities.test.ts +0 -175
- package/src/testing/index.ts +0 -154
- package/src/testing/jest-preset.ts +0 -62
- package/src/testing/style-mock.ts +0 -7
- package/src/testing/validators.ts +0 -10
- package/src/themes/ResolvedThemeSet.ts +0 -22
- package/src/themes/ThemeRegistry.ts +0 -97
- package/src/themes/__tests__/ThemeRegistry.test.ts +0 -162
- package/src/tools/ThemeFileGenerator.ts +0 -109
- package/src/tools/integrity/DiskFreshGenerator.ts +0 -36
- package/src/tools/integrity/GenerationIntegrityCheck.ts +0 -132
- package/src/tools/integrity/Invariants.ts +0 -228
- package/src/tools/integrity/Normalizer.ts +0 -94
- package/src/tools/integrity/SemanticComparator.ts +0 -127
- package/src/tools/integrity/__tests__/GenerationIntegrityCheck.test.ts +0 -132
- package/src/tools/integrity/__tests__/Invariants.test.ts +0 -142
- package/src/tools/integrity/__tests__/Normalizer.test.ts +0 -65
- package/src/tools/integrity/__tests__/SemanticComparator.test.ts +0 -62
- package/src/tools/integrity/__tests__/consumer-package-mode.test.ts +0 -205
- package/src/tools/integrity/cli/run-audit.ts +0 -150
- package/src/tools/integrity/inventory.ts +0 -51
- package/src/tools/integrity/manifest.ts +0 -56
- package/src/tools/integrity/types/index.ts +0 -183
- package/src/tools/release/__tests__/ChangeClassifier.test.ts +0 -133
- package/src/tools/release/__tests__/ChangeExtractor.test.ts +0 -222
- package/src/tools/release/__tests__/GitHubPublisher.test.ts +0 -240
- package/src/tools/release/__tests__/NotesRenderer.test.ts +0 -142
- package/src/tools/release/__tests__/NpmPublisher.test.ts +0 -289
- package/src/tools/release/__tests__/PipelineIntegration.test.ts +0 -188
- package/src/tools/release/__tests__/ReleasePipeline.test.ts +0 -192
- package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +0 -49
- package/src/tools/release/__tests__/SummaryScanner.test.ts +0 -141
- package/src/tools/release/__tests__/TagResolver.test.ts +0 -91
- package/src/tools/release/__tests__/VersionCalculator.test.ts +0 -270
- package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +0 -80
- package/src/tools/release/cli/ReleasePipeline.ts +0 -165
- package/src/tools/release/cli/release-tool.ts +0 -107
- package/src/tools/release/pipeline/ChangeClassifier.ts +0 -61
- package/src/tools/release/pipeline/ChangeExtractor.ts +0 -87
- package/src/tools/release/pipeline/NotesRenderer.ts +0 -66
- package/src/tools/release/pipeline/SummaryScanner.ts +0 -70
- package/src/tools/release/pipeline/TagResolver.ts +0 -40
- package/src/tools/release/pipeline/VersionCalculator.ts +0 -375
- package/src/tools/release/publishers/GitHubPublisher.ts +0 -228
- package/src/tools/release/publishers/NpmPublisher.ts +0 -196
- package/src/tools/release/release-config.json +0 -5
- package/src/tools/release/types/index.ts +0 -282
- package/src/tools/release/validators/SemanticVersionValidator.ts +0 -67
- package/src/types/ComponentTypes.ts +0 -76
- package/src/types/TranslationOutput.ts +0 -105
- package/src/types/ValidationResult.ts +0 -74
- package/src/types/__tests__/ComponentTypes.test.ts +0 -73
- package/src/types/css.d.ts +0 -35
- package/src/types/generated/TokenTypes.ts +0 -142
- package/src/types/index.ts +0 -42
- package/src/validators/BaselineGridValidator.ts +0 -119
- package/src/validators/CompositionPatternValidator.ts +0 -259
- package/src/validators/CrossPlatformConsistencyValidator.ts +0 -498
- package/src/validators/ErrorValidator.ts +0 -998
- package/src/validators/IValidator.ts +0 -273
- package/src/validators/MathematicalRelationshipParser.ts +0 -434
- package/src/validators/ModeParity.ts +0 -123
- package/src/validators/PassValidator.ts +0 -533
- package/src/validators/PlatformConstraintHandler.ts +0 -453
- package/src/validators/PrimitiveReferenceValidator.ts +0 -284
- package/src/validators/SemanticTokenValidator.ts +0 -496
- package/src/validators/StemmaComponentNamingValidator.ts +0 -524
- package/src/validators/StemmaErrorGuidanceSystem.ts +0 -1600
- package/src/validators/StemmaPropertyAccessibilityValidator.ts +0 -823
- package/src/validators/StemmaTokenUsageValidator.ts +0 -651
- package/src/validators/SyntaxValidator.ts +0 -537
- package/src/validators/ThreeTierValidator.ts +0 -822
- package/src/validators/ToleranceCalculator.ts +0 -324
- package/src/validators/ValidationReasoning.ts +0 -464
- package/src/validators/WCAGValidator.ts +0 -219
- package/src/validators/WarningValidator.ts +0 -626
- package/src/validators/__tests__/BaselineGridValidator.test.ts +0 -292
- package/src/validators/__tests__/BorderWidthValidation.test.ts +0 -595
- package/src/validators/__tests__/CompositionPatterns.test.ts +0 -463
- package/src/validators/__tests__/CrossPlatformConsistency.test.ts +0 -834
- package/src/validators/__tests__/IValidator.test.ts +0 -258
- package/src/validators/__tests__/MathematicalRelationshipParser.test.ts +0 -465
- package/src/validators/__tests__/PlatformConstraints.test.ts +0 -486
- package/src/validators/__tests__/SemanticTokenValidator.test.ts +0 -723
- package/src/validators/__tests__/StemmaComponentNamingValidator.test.ts +0 -597
- package/src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts +0 -717
- package/src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts +0 -349
- package/src/validators/__tests__/StemmaTokenUsageValidator.test.ts +0 -432
- package/src/validators/__tests__/SyntaxValidator.test.ts +0 -360
- package/src/validators/__tests__/ThreeTierValidator.test.ts +0 -906
- package/src/validators/__tests__/ValidationReasoning.test.ts +0 -636
- package/src/validators/__tests__/WCAGValidator.test.ts +0 -243
- package/src/validators/buildValidation.ts +0 -170
- package/src/validators/index.ts +0 -144
- package/src/workflows/ConsistencyValidator.ts +0 -339
- package/src/workflows/TokenGenerationWorkflow.ts +0 -460
- package/src/workflows/ValidationPipeline.ts +0 -284
- package/src/workflows/WorkflowErrorHandler.ts +0 -441
|
@@ -1,892 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Avatar Component for Web Platform (Vanilla Web Component)
|
|
3
|
-
*
|
|
4
|
-
* Visual representation component for users (Human) and AI agents (Agent) with
|
|
5
|
-
* distinct shape-based differentiation. Human avatars render as circles (organic, natural),
|
|
6
|
-
* while AI agent avatars render as hexagons (synthetic, constructed).
|
|
7
|
-
*
|
|
8
|
-
* Stemma System Naming: [Family]-[Type] = Avatar
|
|
9
|
-
* Component Type: Primitive (Base)
|
|
10
|
-
*
|
|
11
|
-
* Follows True Native Architecture with build-time platform separation.
|
|
12
|
-
* Uses Shadow DOM for style encapsulation and token-based styling via CSS custom properties.
|
|
13
|
-
*
|
|
14
|
-
* @module Avatar/platforms/web
|
|
15
|
-
* @see Requirements: 1.1, 1.5, 2.7, 3.1-3.8, 11.1, 15.1, 15.2 in .kiro/specs/042-avatar-component/requirements.md
|
|
16
|
-
* @see .kiro/specs/042-avatar-component/design.md for implementation details
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import { AvatarType, AvatarSize, AVATAR_DEFAULTS } from '../../types';
|
|
20
|
-
import { AvatarSizingTokens } from '../../avatar.tokens';
|
|
21
|
-
import { IconBaseSize } from '../../../Icon-Base/types';
|
|
22
|
-
// Import createIconBase for rendering icons within Avatar
|
|
23
|
-
// Using the functional API for simpler integration within shadow DOM
|
|
24
|
-
import { createIconBase } from '../../../Icon-Base/platforms/web/IconBase.web';
|
|
25
|
-
|
|
26
|
-
// Import CSS as string for browser bundle compatibility
|
|
27
|
-
// The esbuild CSS-as-string plugin transforms this import into a JS string export
|
|
28
|
-
// @see scripts/esbuild-css-plugin.js
|
|
29
|
-
// @see Requirements: 1.1, 1.2, 1.3, 2.1-2.6 (token-based styling)
|
|
30
|
-
import avatarStyles from './Avatar.styles.css';
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Generate SVG path for a rounded hexagon using quadratic Bézier curves.
|
|
34
|
-
*
|
|
35
|
-
* Creates a pointy-top hexagon with smooth rounded corners using Q (quadratic Bézier)
|
|
36
|
-
* commands. The hexagon fits within a square bounding box (1:1 aspect ratio) with
|
|
37
|
-
* the hexagon's natural proportions maintained inside.
|
|
38
|
-
*
|
|
39
|
-
* Hexagon Geometry (pointy-top, inscribed in square):
|
|
40
|
-
* - 6 vertices with quadratic curves at each corner
|
|
41
|
-
* - Corner radius proportional to size
|
|
42
|
-
* - Pointy-top orientation (vertex at top and bottom)
|
|
43
|
-
* - Width = Height × cos(30°) ≈ 0.866 (hexagon fits inside square)
|
|
44
|
-
*
|
|
45
|
-
* @param size - The size of the bounding box (width = height)
|
|
46
|
-
* @param cornerRadius - The radius for rounded corners (default: 8% of size)
|
|
47
|
-
* @returns SVG path string with M, L, and Q commands
|
|
48
|
-
*
|
|
49
|
-
* @see Requirements: 1.2, 1.3, 1.4, 11.1-11.4 in .kiro/specs/042-avatar-component/requirements.md
|
|
50
|
-
*/
|
|
51
|
-
function generateRoundedHexagonPath(size: number, cornerRadius?: number): string {
|
|
52
|
-
// Default corner radius is 8% of size for visually pleasing rounded corners
|
|
53
|
-
const r = cornerRadius ?? size * 0.08;
|
|
54
|
-
|
|
55
|
-
// Hexagon geometry calculations
|
|
56
|
-
// For a pointy-top hexagon inscribed in a square:
|
|
57
|
-
// - Center is at (size/2, size/2)
|
|
58
|
-
// - The hexagon's width = height × cos(30°) ≈ 0.866
|
|
59
|
-
// - We center the hexagon horizontally in the square
|
|
60
|
-
const cx = size / 2;
|
|
61
|
-
const cy = size / 2;
|
|
62
|
-
|
|
63
|
-
// Hexagon dimensions (fits inside square bounding box)
|
|
64
|
-
// Height spans full size, width is narrower due to hexagon proportions
|
|
65
|
-
const hexHeight = size;
|
|
66
|
-
const hexWidth = size * Math.cos(Math.PI / 6); // cos(30°) ≈ 0.866
|
|
67
|
-
|
|
68
|
-
// Calculate vertex positions (pointy-top orientation)
|
|
69
|
-
// Vertices numbered 0-5 starting from top, going clockwise
|
|
70
|
-
const halfWidth = hexWidth / 2;
|
|
71
|
-
const quarterHeight = hexHeight / 4;
|
|
72
|
-
|
|
73
|
-
// Vertex coordinates (clockwise from top)
|
|
74
|
-
const vertices = [
|
|
75
|
-
{ x: cx, y: 0 }, // 0: Top vertex
|
|
76
|
-
{ x: cx + halfWidth, y: quarterHeight }, // 1: Top-right vertex
|
|
77
|
-
{ x: cx + halfWidth, y: 3 * quarterHeight }, // 2: Bottom-right vertex
|
|
78
|
-
{ x: cx, y: hexHeight }, // 3: Bottom vertex
|
|
79
|
-
{ x: cx - halfWidth, y: 3 * quarterHeight }, // 4: Bottom-left vertex
|
|
80
|
-
{ x: cx - halfWidth, y: quarterHeight }, // 5: Top-left vertex
|
|
81
|
-
];
|
|
82
|
-
|
|
83
|
-
// Build path with quadratic Bézier curves at corners
|
|
84
|
-
// For each vertex, we:
|
|
85
|
-
// 1. Draw a line to a point before the vertex (offset by corner radius)
|
|
86
|
-
// 2. Draw a quadratic curve through the vertex to a point after it
|
|
87
|
-
|
|
88
|
-
const pathParts: string[] = [];
|
|
89
|
-
const numVertices = vertices.length;
|
|
90
|
-
|
|
91
|
-
for (let i = 0; i < numVertices; i++) {
|
|
92
|
-
const curr = vertices[i];
|
|
93
|
-
const next = vertices[(i + 1) % numVertices];
|
|
94
|
-
const prev = vertices[(i - 1 + numVertices) % numVertices];
|
|
95
|
-
|
|
96
|
-
// Calculate direction vectors
|
|
97
|
-
const toPrev = { x: prev.x - curr.x, y: prev.y - curr.y };
|
|
98
|
-
const toNext = { x: next.x - curr.x, y: next.y - curr.y };
|
|
99
|
-
|
|
100
|
-
// Normalize direction vectors
|
|
101
|
-
const lenToPrev = Math.sqrt(toPrev.x * toPrev.x + toPrev.y * toPrev.y);
|
|
102
|
-
const lenToNext = Math.sqrt(toNext.x * toNext.x + toNext.y * toNext.y);
|
|
103
|
-
|
|
104
|
-
const normToPrev = { x: toPrev.x / lenToPrev, y: toPrev.y / lenToPrev };
|
|
105
|
-
const normToNext = { x: toNext.x / lenToNext, y: toNext.y / lenToNext };
|
|
106
|
-
|
|
107
|
-
// Calculate points before and after the vertex (offset by corner radius)
|
|
108
|
-
const beforeVertex = {
|
|
109
|
-
x: curr.x + normToPrev.x * r,
|
|
110
|
-
y: curr.y + normToPrev.y * r,
|
|
111
|
-
};
|
|
112
|
-
const afterVertex = {
|
|
113
|
-
x: curr.x + normToNext.x * r,
|
|
114
|
-
y: curr.y + normToNext.y * r,
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
if (i === 0) {
|
|
118
|
-
// Start path at the point after the first vertex
|
|
119
|
-
pathParts.push(`M ${afterVertex.x.toFixed(2)} ${afterVertex.y.toFixed(2)}`);
|
|
120
|
-
} else {
|
|
121
|
-
// Line to point before current vertex
|
|
122
|
-
pathParts.push(`L ${beforeVertex.x.toFixed(2)} ${beforeVertex.y.toFixed(2)}`);
|
|
123
|
-
// Quadratic curve through vertex to point after vertex
|
|
124
|
-
pathParts.push(`Q ${curr.x.toFixed(2)} ${curr.y.toFixed(2)} ${afterVertex.x.toFixed(2)} ${afterVertex.y.toFixed(2)}`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Close the path: line to before first vertex, then curve through it
|
|
129
|
-
const firstVertex = vertices[0];
|
|
130
|
-
const secondVertex = vertices[1];
|
|
131
|
-
const lastVertex = vertices[numVertices - 1];
|
|
132
|
-
|
|
133
|
-
// Direction from first vertex to last and to second
|
|
134
|
-
const toLastFromFirst = { x: lastVertex.x - firstVertex.x, y: lastVertex.y - firstVertex.y };
|
|
135
|
-
const toSecondFromFirst = { x: secondVertex.x - firstVertex.x, y: secondVertex.y - firstVertex.y };
|
|
136
|
-
|
|
137
|
-
const lenToLast = Math.sqrt(toLastFromFirst.x * toLastFromFirst.x + toLastFromFirst.y * toLastFromFirst.y);
|
|
138
|
-
const lenToSecond = Math.sqrt(toSecondFromFirst.x * toSecondFromFirst.x + toSecondFromFirst.y * toSecondFromFirst.y);
|
|
139
|
-
|
|
140
|
-
const normToLast = { x: toLastFromFirst.x / lenToLast, y: toLastFromFirst.y / lenToLast };
|
|
141
|
-
const normToSecond = { x: toSecondFromFirst.x / lenToSecond, y: toSecondFromFirst.y / lenToSecond };
|
|
142
|
-
|
|
143
|
-
const beforeFirst = {
|
|
144
|
-
x: firstVertex.x + normToLast.x * r,
|
|
145
|
-
y: firstVertex.y + normToLast.y * r,
|
|
146
|
-
};
|
|
147
|
-
const afterFirst = {
|
|
148
|
-
x: firstVertex.x + normToSecond.x * r,
|
|
149
|
-
y: firstVertex.y + normToSecond.y * r,
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
// Line to before first vertex
|
|
153
|
-
pathParts.push(`L ${beforeFirst.x.toFixed(2)} ${beforeFirst.y.toFixed(2)}`);
|
|
154
|
-
// Curve through first vertex back to start point
|
|
155
|
-
pathParts.push(`Q ${firstVertex.x.toFixed(2)} ${firstVertex.y.toFixed(2)} ${afterFirst.x.toFixed(2)} ${afterFirst.y.toFixed(2)}`);
|
|
156
|
-
|
|
157
|
-
// Close path
|
|
158
|
-
pathParts.push('Z');
|
|
159
|
-
|
|
160
|
-
return pathParts.join(' ');
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Icon size mapping for Avatar sizes.
|
|
165
|
-
*
|
|
166
|
-
* Maps avatar sizes to IconBaseSize values for the Icon component.
|
|
167
|
-
* Uses existing icon tokens where available, with special handling for
|
|
168
|
-
* xs and xxl which derive from icon.size050 using calc() multipliers.
|
|
169
|
-
*
|
|
170
|
-
* Icon sizes maintain 50% ratio with avatar sizes:
|
|
171
|
-
* - xs (24px avatar) → 12px icon (calc(icon.size050 × 0.75))
|
|
172
|
-
* - sm (32px avatar) → 16px icon (icon.size050, IconBaseSize 13)
|
|
173
|
-
* - md (40px avatar) → 20px icon (icon.size075, IconBaseSize 20)
|
|
174
|
-
* - lg (48px avatar) → 24px icon (icon.size100, IconBaseSize 24)
|
|
175
|
-
* - xl (80px avatar) → 40px icon (icon.size500, IconBaseSize 40)
|
|
176
|
-
* - xxl (128px avatar) → 64px icon (calc(icon.size050 × 4))
|
|
177
|
-
*
|
|
178
|
-
* @see Requirements: 3.1-3.6 in .kiro/specs/042-avatar-component/requirements.md
|
|
179
|
-
*/
|
|
180
|
-
const AVATAR_ICON_SIZE_MAP: Record<AvatarSize, IconBaseSize | 'xs' | 'xxl'> = {
|
|
181
|
-
xs: 'xs', // 12px - uses avatar.icon.size.xs component token
|
|
182
|
-
sm: 13, // 16px - maps to icon.size050
|
|
183
|
-
md: 20, // 20px - maps to icon.size075
|
|
184
|
-
lg: 24, // 24px - maps to icon.size100
|
|
185
|
-
xl: 40, // 40px - maps to icon.size500
|
|
186
|
-
xxl: 'xxl', // 64px - uses avatar.icon.size.xxl component token
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Avatar size to pixel value mapping.
|
|
191
|
-
*
|
|
192
|
-
* Used for SVG rendering where we need actual pixel values.
|
|
193
|
-
* These values match the token-based CSS sizing.
|
|
194
|
-
*
|
|
195
|
-
* @see Requirements: 2.1-2.6 in .kiro/specs/042-avatar-component/requirements.md
|
|
196
|
-
*/
|
|
197
|
-
const AVATAR_SIZE_PX: Record<AvatarSize, number> = {
|
|
198
|
-
xs: AvatarSizingTokens['size.xs'],
|
|
199
|
-
sm: AvatarSizingTokens['size.sm'],
|
|
200
|
-
md: AvatarSizingTokens['size.md'],
|
|
201
|
-
lg: AvatarSizingTokens['size.lg'],
|
|
202
|
-
xl: AvatarSizingTokens['size.xl'],
|
|
203
|
-
xxl: AvatarSizingTokens['size.xxl'],
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Icon names for avatar types.
|
|
208
|
-
*
|
|
209
|
-
* - Human: 'user' icon (person silhouette)
|
|
210
|
-
* - Agent: 'settings' icon (placeholder for bot/AI icon)
|
|
211
|
-
*
|
|
212
|
-
* @see Requirements: 3.7, 3.8 in .kiro/specs/042-avatar-component/requirements.md
|
|
213
|
-
*/
|
|
214
|
-
const AVATAR_ICON_NAMES = {
|
|
215
|
-
human: 'user',
|
|
216
|
-
agent: 'settings', // Placeholder - ideally would be a bot/AI icon
|
|
217
|
-
} as const;
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Avatar Web Component
|
|
221
|
-
*
|
|
222
|
-
* A native web component that renders avatars with shape-based entity differentiation:
|
|
223
|
-
* - Human type: Circle shape (border-radius: 50%)
|
|
224
|
-
* - Agent type: Hexagon shape (SVG clipPath)
|
|
225
|
-
*
|
|
226
|
-
* @remarks
|
|
227
|
-
* - Uses Shadow DOM for style encapsulation
|
|
228
|
-
* - Token-based styling via CSS custom properties
|
|
229
|
-
* - Supports six size variants (xs, sm, md, lg, xl, xxl)
|
|
230
|
-
* - Interactive mode enables hover visual feedback
|
|
231
|
-
* - Decorative mode hides avatar from screen readers
|
|
232
|
-
* - WCAG 2.1 AA compliant accessibility
|
|
233
|
-
*
|
|
234
|
-
* @example
|
|
235
|
-
* ```html
|
|
236
|
-
* <!-- Basic human avatar -->
|
|
237
|
-
* <avatar-base type="human" size="md"></avatar-base>
|
|
238
|
-
*
|
|
239
|
-
* <!-- Agent avatar with interactive hover -->
|
|
240
|
-
* <avatar-base type="agent" size="lg" interactive="true"></avatar-base>
|
|
241
|
-
*
|
|
242
|
-
* <!-- Human avatar with image -->
|
|
243
|
-
* <avatar-base type="human" size="xl" src="/profile.jpg" alt="User profile"></avatar-base>
|
|
244
|
-
*
|
|
245
|
-
* <!-- Decorative avatar (hidden from screen readers) -->
|
|
246
|
-
* <avatar-base type="human" size="sm" decorative="true"></avatar-base>
|
|
247
|
-
* ```
|
|
248
|
-
*
|
|
249
|
-
* @example
|
|
250
|
-
* ```typescript
|
|
251
|
-
* // Programmatic usage
|
|
252
|
-
* const avatar = document.createElement('avatar-base') as AvatarBaseElement;
|
|
253
|
-
* avatar.type = 'agent';
|
|
254
|
-
* avatar.size = 'lg';
|
|
255
|
-
* avatar.interactive = true;
|
|
256
|
-
* document.body.appendChild(avatar);
|
|
257
|
-
* ```
|
|
258
|
-
*
|
|
259
|
-
* @see Requirements: 1.1, 1.5, 2.7, 11.1 in .kiro/specs/042-avatar-component/requirements.md
|
|
260
|
-
*/
|
|
261
|
-
export class AvatarBaseElement extends HTMLElement {
|
|
262
|
-
private _shadowRoot: ShadowRoot;
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Observed attributes for automatic re-rendering on change.
|
|
266
|
-
*
|
|
267
|
-
* When these attributes change, attributeChangedCallback is invoked.
|
|
268
|
-
*
|
|
269
|
-
* Attributes:
|
|
270
|
-
* - type: Entity type ('human' | 'agent') - determines shape
|
|
271
|
-
* - size: Size variant ('xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl')
|
|
272
|
-
* - src: Image source URL (human only)
|
|
273
|
-
* - alt: Alt text for accessibility (required if src provided)
|
|
274
|
-
* - interactive: Whether avatar shows hover visual feedback
|
|
275
|
-
* - decorative: Hide from screen readers
|
|
276
|
-
* - testid: Test ID for automated testing
|
|
277
|
-
*
|
|
278
|
-
* @see Requirements: 1.5, 2.7 in .kiro/specs/042-avatar-component/requirements.md
|
|
279
|
-
*/
|
|
280
|
-
static get observedAttributes(): string[] {
|
|
281
|
-
return ['type', 'size', 'src', 'alt', 'interactive', 'decorative', 'testid'];
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
constructor() {
|
|
285
|
-
super();
|
|
286
|
-
|
|
287
|
-
// Attach shadow DOM for style encapsulation
|
|
288
|
-
// @see Requirements: 11.1 - Web component with Shadow DOM
|
|
289
|
-
this._shadowRoot = this.attachShadow({ mode: 'open' });
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Called when the element is added to the DOM.
|
|
294
|
-
*
|
|
295
|
-
* Performs initial render of the avatar component.
|
|
296
|
-
*
|
|
297
|
-
* @see Requirements: 11.1 - connectedCallback with initial render
|
|
298
|
-
*/
|
|
299
|
-
connectedCallback(): void {
|
|
300
|
-
this.render();
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Called when an observed attribute changes.
|
|
305
|
-
*
|
|
306
|
-
* Triggers re-render to reflect the new attribute value.
|
|
307
|
-
* Only re-renders if the element is connected to the DOM to prevent
|
|
308
|
-
* errors during initial attribute setup before connectedCallback.
|
|
309
|
-
*
|
|
310
|
-
* @param _name - Attribute name (unused, prefixed with underscore)
|
|
311
|
-
* @param oldValue - Previous attribute value
|
|
312
|
-
* @param newValue - New attribute value
|
|
313
|
-
*
|
|
314
|
-
* @see Requirements: 11.1 - attributeChangedCallback for prop updates
|
|
315
|
-
*/
|
|
316
|
-
attributeChangedCallback(_name: string, oldValue: string | null, newValue: string | null): void {
|
|
317
|
-
// Only re-render if the element is connected to the DOM
|
|
318
|
-
if (oldValue !== newValue && this.isConnected) {
|
|
319
|
-
this.render();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// ============================================================================
|
|
324
|
-
// Property Getters/Setters
|
|
325
|
-
// ============================================================================
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* Get the avatar entity type.
|
|
329
|
-
*
|
|
330
|
-
* @returns 'human' or 'agent' (defaults to 'human')
|
|
331
|
-
* @see Requirements: 1.5 - Default to "human" type when prop omitted
|
|
332
|
-
*/
|
|
333
|
-
get type(): AvatarType {
|
|
334
|
-
const type = this.getAttribute('type');
|
|
335
|
-
return (type === 'human' || type === 'agent') ? type : AVATAR_DEFAULTS.type;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Set the avatar entity type.
|
|
340
|
-
*/
|
|
341
|
-
set type(value: AvatarType) {
|
|
342
|
-
this.setAttribute('type', value);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* Get the avatar size variant.
|
|
347
|
-
*
|
|
348
|
-
* @returns Size variant (defaults to 'md')
|
|
349
|
-
* @see Requirements: 2.7 - Default to "md" size when prop omitted
|
|
350
|
-
*/
|
|
351
|
-
get size(): AvatarSize {
|
|
352
|
-
const size = this.getAttribute('size');
|
|
353
|
-
const validSizes: AvatarSize[] = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
354
|
-
return validSizes.includes(size as AvatarSize) ? (size as AvatarSize) : AVATAR_DEFAULTS.size;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* Set the avatar size variant.
|
|
359
|
-
*/
|
|
360
|
-
set size(value: AvatarSize) {
|
|
361
|
-
this.setAttribute('size', value);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
* Get the image source URL.
|
|
366
|
-
*
|
|
367
|
-
* @returns Image URL or null
|
|
368
|
-
*/
|
|
369
|
-
get src(): string | null {
|
|
370
|
-
return this.getAttribute('src');
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* Set the image source URL.
|
|
375
|
-
*/
|
|
376
|
-
set src(value: string | null) {
|
|
377
|
-
if (value) {
|
|
378
|
-
this.setAttribute('src', value);
|
|
379
|
-
} else {
|
|
380
|
-
this.removeAttribute('src');
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* Get the alt text for accessibility.
|
|
386
|
-
*
|
|
387
|
-
* @returns Alt text or null
|
|
388
|
-
*/
|
|
389
|
-
get alt(): string | null {
|
|
390
|
-
return this.getAttribute('alt');
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Set the alt text for accessibility.
|
|
395
|
-
*/
|
|
396
|
-
set alt(value: string | null) {
|
|
397
|
-
if (value) {
|
|
398
|
-
this.setAttribute('alt', value);
|
|
399
|
-
} else {
|
|
400
|
-
this.removeAttribute('alt');
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* Get the interactive state.
|
|
406
|
-
*
|
|
407
|
-
* @returns true if interactive, false otherwise (defaults to false)
|
|
408
|
-
* @see Requirements: 8.4 - Default interactive to false when prop omitted
|
|
409
|
-
*/
|
|
410
|
-
get interactive(): boolean {
|
|
411
|
-
return this.getAttribute('interactive') === 'true';
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Set the interactive state.
|
|
416
|
-
*/
|
|
417
|
-
set interactive(value: boolean) {
|
|
418
|
-
if (value) {
|
|
419
|
-
this.setAttribute('interactive', 'true');
|
|
420
|
-
} else {
|
|
421
|
-
this.removeAttribute('interactive');
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
/**
|
|
426
|
-
* Get the decorative state.
|
|
427
|
-
*
|
|
428
|
-
* @returns true if decorative, false otherwise (defaults to false)
|
|
429
|
-
* @see Requirements: 9.3 - Default decorative to false when prop omitted
|
|
430
|
-
*/
|
|
431
|
-
get decorative(): boolean {
|
|
432
|
-
return this.getAttribute('decorative') === 'true';
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Set the decorative state.
|
|
437
|
-
*/
|
|
438
|
-
set decorative(value: boolean) {
|
|
439
|
-
if (value) {
|
|
440
|
-
this.setAttribute('decorative', 'true');
|
|
441
|
-
} else {
|
|
442
|
-
this.removeAttribute('decorative');
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
/**
|
|
447
|
-
* Get the test ID.
|
|
448
|
-
*
|
|
449
|
-
* @returns Test ID or null
|
|
450
|
-
*/
|
|
451
|
-
get testID(): string | null {
|
|
452
|
-
return this.getAttribute('testid');
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Set the test ID.
|
|
457
|
-
*/
|
|
458
|
-
set testID(value: string | null) {
|
|
459
|
-
if (value) {
|
|
460
|
-
this.setAttribute('testid', value);
|
|
461
|
-
} else {
|
|
462
|
-
this.removeAttribute('testid');
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
// ============================================================================
|
|
467
|
-
// Rendering
|
|
468
|
-
// ============================================================================
|
|
469
|
-
|
|
470
|
-
/**
|
|
471
|
-
* Generate icon content HTML for the avatar.
|
|
472
|
-
*
|
|
473
|
-
* Renders the appropriate icon based on avatar type:
|
|
474
|
-
* - Human: 'user' icon (person silhouette)
|
|
475
|
-
* - Agent: 'settings' icon (placeholder for bot/AI)
|
|
476
|
-
*
|
|
477
|
-
* Icon size is determined by avatar size using the 50% ratio mapping.
|
|
478
|
-
* For xs and xxl sizes, uses CSS calc() with icon tokens to derive the size.
|
|
479
|
-
* For other sizes, uses the Icon-Base component with IconBaseSize values.
|
|
480
|
-
*
|
|
481
|
-
* Icon Size Derivations (xs and xxl):
|
|
482
|
-
* - xs (12px) = icon.size050 (16px) × 0.75
|
|
483
|
-
* - xxl (64px) = icon.size050 (16px) × 4
|
|
484
|
-
*
|
|
485
|
-
* @param type - Avatar type ('human' or 'agent')
|
|
486
|
-
* @param size - Avatar size variant
|
|
487
|
-
* @returns HTML string for icon content
|
|
488
|
-
*
|
|
489
|
-
* @see Requirements: 3.1-3.8, 15.1, 15.2 in .kiro/specs/042-avatar-component/requirements.md
|
|
490
|
-
*/
|
|
491
|
-
private renderIconContent(type: AvatarType, size: AvatarSize): string {
|
|
492
|
-
const iconName = AVATAR_ICON_NAMES[type];
|
|
493
|
-
const iconSize = AVATAR_ICON_SIZE_MAP[size];
|
|
494
|
-
|
|
495
|
-
// For xs and xxl sizes, we need to use CSS calc() with icon tokens
|
|
496
|
-
// since there's no IconBaseSize equivalent for 12px and 64px
|
|
497
|
-
// Derive from icon.size050 (16px) to get proper px units
|
|
498
|
-
if (iconSize === 'xs' || iconSize === 'xxl') {
|
|
499
|
-
// Use calc() with icon.size050 to derive the size with proper px units
|
|
500
|
-
// xs (12px) = icon.size050 (16px) × 0.75
|
|
501
|
-
// xxl (64px) = icon.size050 (16px) × 4
|
|
502
|
-
const sizeCalc = iconSize === 'xs'
|
|
503
|
-
? 'calc(var(--icon-size-050) * 0.75)'
|
|
504
|
-
: 'calc(var(--icon-size-050) * 4)';
|
|
505
|
-
const iconContent = this.getIconSVGContent(iconName);
|
|
506
|
-
|
|
507
|
-
return `
|
|
508
|
-
<span class="avatar__icon avatar__icon--${type}" style="width: ${sizeCalc}; height: ${sizeCalc};">
|
|
509
|
-
<svg
|
|
510
|
-
viewBox="0 0 24 24"
|
|
511
|
-
fill="none"
|
|
512
|
-
stroke="currentColor"
|
|
513
|
-
stroke-width="var(--icon-stroke-width)"
|
|
514
|
-
stroke-linecap="round"
|
|
515
|
-
stroke-linejoin="round"
|
|
516
|
-
class="avatar__icon-svg"
|
|
517
|
-
aria-hidden="true"
|
|
518
|
-
>
|
|
519
|
-
${iconContent}
|
|
520
|
-
</svg>
|
|
521
|
-
</span>
|
|
522
|
-
`;
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
// For standard sizes (sm, md, lg, xl), use the Icon-Base component
|
|
526
|
-
// The createIconBase function generates the SVG with proper sizing
|
|
527
|
-
const iconHTML = createIconBase({
|
|
528
|
-
name: iconName,
|
|
529
|
-
size: iconSize as IconBaseSize,
|
|
530
|
-
color: 'inherit', // Inherit color from parent (set via CSS)
|
|
531
|
-
});
|
|
532
|
-
|
|
533
|
-
return `
|
|
534
|
-
<span class="avatar__icon avatar__icon--${type}">
|
|
535
|
-
${iconHTML}
|
|
536
|
-
</span>
|
|
537
|
-
`;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
/**
|
|
541
|
-
* Get SVG inner content for a given icon name.
|
|
542
|
-
*
|
|
543
|
-
* Used for xs and xxl sizes where we need custom sizing via CSS custom properties.
|
|
544
|
-
*
|
|
545
|
-
* @param name - Icon name
|
|
546
|
-
* @returns SVG inner content (paths, lines, etc.)
|
|
547
|
-
*/
|
|
548
|
-
private getIconSVGContent(name: string): string {
|
|
549
|
-
// Icon content matching Icon-Base component
|
|
550
|
-
const iconContent: Record<string, string> = {
|
|
551
|
-
'user': '<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle>',
|
|
552
|
-
'settings': '<circle cx="12" cy="12" r="3"></circle><path d="M12 1v6m0 6v6m5.66-13.66l-4.24 4.24m0 6l-4.24 4.24M23 12h-6m-6 0H1m18.66 5.66l-4.24-4.24m0-6l-4.24-4.24"></path>',
|
|
553
|
-
'circle': '<circle cx="12" cy="12" r="10"></circle>',
|
|
554
|
-
};
|
|
555
|
-
|
|
556
|
-
return iconContent[name] || iconContent['circle'];
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
/**
|
|
560
|
-
* Render image content HTML for the avatar.
|
|
561
|
-
*
|
|
562
|
-
* Renders an image element when src prop is provided for human type avatars.
|
|
563
|
-
* Agent type avatars ignore the src prop and always show icon content.
|
|
564
|
-
*
|
|
565
|
-
* Image styling:
|
|
566
|
-
* - object-fit: cover for proper scaling
|
|
567
|
-
* - Clipped to circle shape via parent border-radius
|
|
568
|
-
* - Full width/height to fill avatar container
|
|
569
|
-
*
|
|
570
|
-
* Error handling:
|
|
571
|
-
* - onerror handler falls back to icon placeholder
|
|
572
|
-
* - Removes src attribute to prevent retry loops
|
|
573
|
-
*
|
|
574
|
-
* @param src - Image source URL
|
|
575
|
-
* @param alt - Alt text for accessibility
|
|
576
|
-
* @returns HTML string for image content
|
|
577
|
-
*
|
|
578
|
-
* @see Requirements: 5.1, 5.2, 5.3, 5.6 in .kiro/specs/042-avatar-component/requirements.md
|
|
579
|
-
*/
|
|
580
|
-
private renderImageContent(src: string, alt: string | null): string {
|
|
581
|
-
// Escape HTML entities in src and alt to prevent XSS
|
|
582
|
-
const escapedSrc = this.escapeHtml(src);
|
|
583
|
-
const escapedAlt = alt ? this.escapeHtml(alt) : '';
|
|
584
|
-
|
|
585
|
-
return `
|
|
586
|
-
<img
|
|
587
|
-
class="avatar__image"
|
|
588
|
-
src="${escapedSrc}"
|
|
589
|
-
alt="${escapedAlt}"
|
|
590
|
-
loading="lazy"
|
|
591
|
-
/>
|
|
592
|
-
`;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
/**
|
|
596
|
-
* Handle image load error by falling back to icon placeholder.
|
|
597
|
-
*
|
|
598
|
-
* When an image fails to load:
|
|
599
|
-
* 1. Removes the src attribute to prevent retry loops
|
|
600
|
-
* 2. Triggers re-render to show icon placeholder
|
|
601
|
-
*
|
|
602
|
-
* This method is called from the image's onerror event handler
|
|
603
|
-
* which is set up in connectedCallback.
|
|
604
|
-
*
|
|
605
|
-
* @see Requirements: 5.6 - Fall back to icon placeholder when image fails to load
|
|
606
|
-
*/
|
|
607
|
-
private handleImageError(): void {
|
|
608
|
-
// Remove src attribute to prevent retry loops and trigger fallback
|
|
609
|
-
// @see Requirements: 5.6 - Fall back to icon placeholder when image fails to load
|
|
610
|
-
this.removeAttribute('src');
|
|
611
|
-
// Re-render will happen automatically via attributeChangedCallback
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
/**
|
|
615
|
-
* Escape HTML entities to prevent XSS attacks.
|
|
616
|
-
*
|
|
617
|
-
* @param str - String to escape
|
|
618
|
-
* @returns Escaped string safe for HTML insertion
|
|
619
|
-
*/
|
|
620
|
-
private escapeHtml(str: string): string {
|
|
621
|
-
const htmlEntities: Record<string, string> = {
|
|
622
|
-
'&': '&',
|
|
623
|
-
'<': '<',
|
|
624
|
-
'>': '>',
|
|
625
|
-
'"': '"',
|
|
626
|
-
"'": ''',
|
|
627
|
-
};
|
|
628
|
-
return str.replace(/[&<>"']/g, (char) => htmlEntities[char]);
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
* Determine what content to render based on avatar type and props.
|
|
633
|
-
*
|
|
634
|
-
* Content priority:
|
|
635
|
-
* 1. For agent type: Always render icon (src prop is ignored)
|
|
636
|
-
* 2. For human type with src: Render image
|
|
637
|
-
* 3. For human type without src: Render icon placeholder
|
|
638
|
-
*
|
|
639
|
-
* @param type - Avatar type ('human' or 'agent')
|
|
640
|
-
* @param size - Avatar size variant
|
|
641
|
-
* @param src - Image source URL (optional)
|
|
642
|
-
* @param alt - Alt text for accessibility (optional)
|
|
643
|
-
* @returns HTML string for avatar content
|
|
644
|
-
*
|
|
645
|
-
* @see Requirements: 5.1, 5.5 in .kiro/specs/042-avatar-component/requirements.md
|
|
646
|
-
*/
|
|
647
|
-
private renderContent(type: AvatarType, size: AvatarSize, src: string | null, alt: string | null): string {
|
|
648
|
-
// Agent type always shows icon, ignoring src prop
|
|
649
|
-
// @see Requirements: 5.5 - Agent type ignores src prop
|
|
650
|
-
if (type === 'agent') {
|
|
651
|
-
return this.renderIconContent(type, size);
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
// Human type with src shows image
|
|
655
|
-
// @see Requirements: 5.1 - Human type with src displays image
|
|
656
|
-
if (src) {
|
|
657
|
-
return this.renderImageContent(src, alt);
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
// Human type without src shows icon placeholder
|
|
661
|
-
return this.renderIconContent(type, size);
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
/**
|
|
665
|
-
* Render the component into shadow DOM.
|
|
666
|
-
*
|
|
667
|
-
* Generates the avatar structure with appropriate shape, size, and content.
|
|
668
|
-
* Uses external CSS file (Avatar.styles.css) for token-based styling.
|
|
669
|
-
*
|
|
670
|
-
* For agent type, uses inline SVG with Bézier curves for true rounded corners
|
|
671
|
-
* instead of CSS clip-path (which clips borders and causes visual issues).
|
|
672
|
-
*
|
|
673
|
-
* @see Requirements: 1.1, 1.2, 1.3, 1.5, 2.1-2.7, 3.1-3.8, 5.1-5.5, 11.1, 15.1, 15.2
|
|
674
|
-
*/
|
|
675
|
-
private render(): void {
|
|
676
|
-
const type = this.type;
|
|
677
|
-
const size = this.size;
|
|
678
|
-
const src = this.src;
|
|
679
|
-
const alt = this.alt;
|
|
680
|
-
const interactive = this.interactive;
|
|
681
|
-
const decorative = this.decorative;
|
|
682
|
-
const testID = this.testID;
|
|
683
|
-
|
|
684
|
-
// Generate CSS classes based on props
|
|
685
|
-
// Add 'avatar--has-image' class when displaying an image (human type with src)
|
|
686
|
-
const hasImage = type === 'human' && src;
|
|
687
|
-
const avatarClasses = [
|
|
688
|
-
'avatar',
|
|
689
|
-
`avatar--${type}`,
|
|
690
|
-
`avatar--size-${size}`,
|
|
691
|
-
interactive ? 'avatar--interactive' : '',
|
|
692
|
-
hasImage ? 'avatar--has-image' : ''
|
|
693
|
-
].filter(Boolean).join(' ');
|
|
694
|
-
|
|
695
|
-
// Generate test ID attribute
|
|
696
|
-
// Escape testID to prevent XSS attacks
|
|
697
|
-
const testIDAttr = testID ? ` data-testid="${this.escapeHtml(testID)}"` : '';
|
|
698
|
-
|
|
699
|
-
// Generate aria-hidden attribute for decorative avatars
|
|
700
|
-
// @see Requirements: 9.2 - Apply aria-hidden="true" when decorative prop is true
|
|
701
|
-
const ariaHiddenAttr = decorative ? ' aria-hidden="true"' : '';
|
|
702
|
-
|
|
703
|
-
// Warn in development if a human-type avatar is missing alt text for its image.
|
|
704
|
-
// @see Requirements: 5.4 - Human type + src SHALL require alt for accessibility
|
|
705
|
-
// @see Requirements: 5 AC 5 - Agent type SHALL ignore src entirely (src not
|
|
706
|
-
// rendered as an image), so agent-type avatars never warn regardless of alt.
|
|
707
|
-
//
|
|
708
|
-
// Settled edge semantics (Spec 126, O2, ratified 2026-07-09):
|
|
709
|
-
// - Scope is human-type only — Req 5.4 is human-type-scoped, and Req 5 AC 5
|
|
710
|
-
// affirmatively establishes that agent-type SHALL ignore src, so a src+no-alt
|
|
711
|
-
// agent avatar is not a violation of anything.
|
|
712
|
-
// - `alt == null` (loose equality — also excludes `undefined`), not `!alt`, is the
|
|
713
|
-
// test. The `alt` attribute getter returns `getAttribute('alt')`. Raw
|
|
714
|
-
// `setAttribute('alt', '')` yields `alt === ''`, which is the HTML-idiomatic
|
|
715
|
-
// explicit-empty-alt signal and must NOT warn. The `alt` *property setter*
|
|
716
|
-
// (see below) treats a falsy value as "remove the attribute," so
|
|
717
|
-
// `avatar.alt = ''` collapses to `alt === null` — indistinguishable from
|
|
718
|
-
// omitting alt entirely, and DOES warn under this condition.
|
|
719
|
-
// - `!decorative` is the operative fix for the confirmed false positive: a
|
|
720
|
-
// `decorative` avatar is the component's official signal that the image is
|
|
721
|
-
// non-informative (Req 9.2 applies `aria-hidden="true"`), so it must never warn
|
|
722
|
-
// regardless of alt.
|
|
723
|
-
if (type === 'human' && src && alt == null && !decorative && typeof console !== 'undefined') {
|
|
724
|
-
console.warn(
|
|
725
|
-
'AvatarBaseElement: "alt" is required when "src" is provided. ' +
|
|
726
|
-
'Add an alt description of the image; or, if this avatar is purely decorative ' +
|
|
727
|
-
'(non-informative), set the "decorative" prop to hide it from screen readers.'
|
|
728
|
-
);
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
// Render different structures based on type
|
|
732
|
-
// Agent type uses SVG-based hexagon with Bézier curves for true rounded corners
|
|
733
|
-
// Human type uses CSS border-radius for circle shape
|
|
734
|
-
if (type === 'agent') {
|
|
735
|
-
this._shadowRoot.innerHTML = `
|
|
736
|
-
<style>
|
|
737
|
-
:host {
|
|
738
|
-
display: inline-block;
|
|
739
|
-
}
|
|
740
|
-
${avatarStyles}
|
|
741
|
-
</style>
|
|
742
|
-
${this.renderAgentSVG(size, interactive, decorative, testID)}
|
|
743
|
-
`;
|
|
744
|
-
} else {
|
|
745
|
-
// Human type uses standard div with CSS border-radius
|
|
746
|
-
this._shadowRoot.innerHTML = `
|
|
747
|
-
<style>
|
|
748
|
-
:host {
|
|
749
|
-
display: inline-block;
|
|
750
|
-
}
|
|
751
|
-
${avatarStyles}
|
|
752
|
-
</style>
|
|
753
|
-
<div class="${avatarClasses}"${testIDAttr}${ariaHiddenAttr}>
|
|
754
|
-
${this.renderContent(type, size, src, alt)}
|
|
755
|
-
</div>
|
|
756
|
-
`;
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
// Attach error handler to image element if present
|
|
760
|
-
// @see Requirements: 5.6 - Fall back to icon placeholder when image fails to load
|
|
761
|
-
this.attachImageErrorHandler();
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
/**
|
|
765
|
-
* Render agent avatar using inline SVG with Bézier curves.
|
|
766
|
-
*
|
|
767
|
-
* Uses SVG path with quadratic Bézier curves (Q commands) for true rounded corners
|
|
768
|
-
* instead of the Ana Tudor technique (polygon + circles) which creates bumps.
|
|
769
|
-
*
|
|
770
|
-
* SVG approach benefits:
|
|
771
|
-
* - True rounded corners with smooth transitions
|
|
772
|
-
* - Border applied via SVG stroke (not clipped like CSS border)
|
|
773
|
-
* - 1:1 aspect ratio (square bounding box, hexagon fits inside)
|
|
774
|
-
* - Interactive hover state works via CSS on stroke-width
|
|
775
|
-
*
|
|
776
|
-
* @param size - Avatar size variant
|
|
777
|
-
* @param interactive - Whether avatar shows hover visual feedback
|
|
778
|
-
* @param decorative - Whether avatar is hidden from screen readers
|
|
779
|
-
* @param testID - Test ID for automated testing
|
|
780
|
-
* @returns HTML string for SVG-based agent avatar
|
|
781
|
-
*
|
|
782
|
-
* @see Requirements: 1.2, 1.3, 1.4, 7.1-7.4, 11.1-11.4
|
|
783
|
-
*/
|
|
784
|
-
private renderAgentSVG(size: AvatarSize, interactive: boolean, decorative: boolean, testID: string | null): string {
|
|
785
|
-
const sizePx = AVATAR_SIZE_PX[size];
|
|
786
|
-
const cornerRadius = sizePx * 0.08; // 8% of size for rounded corners
|
|
787
|
-
|
|
788
|
-
// Generate the hexagon path with Bézier curves
|
|
789
|
-
const hexPath = generateRoundedHexagonPath(sizePx, cornerRadius);
|
|
790
|
-
|
|
791
|
-
// Determine border width based on size and interactive state
|
|
792
|
-
// xs-xl: borderDefault (1px), xxl: borderEmphasis (2px)
|
|
793
|
-
// Interactive hover increases to borderEmphasis (handled in CSS)
|
|
794
|
-
const borderWidth = size === 'xxl' ? 2 : 1;
|
|
795
|
-
|
|
796
|
-
// Generate CSS classes for the SVG container
|
|
797
|
-
const svgClasses = [
|
|
798
|
-
'avatar',
|
|
799
|
-
'avatar--agent',
|
|
800
|
-
`avatar--size-${size}`,
|
|
801
|
-
interactive ? 'avatar--interactive' : '',
|
|
802
|
-
].filter(Boolean).join(' ');
|
|
803
|
-
|
|
804
|
-
// Generate test ID attribute
|
|
805
|
-
const testIDAttr = testID ? ` data-testid="${this.escapeHtml(testID)}"` : '';
|
|
806
|
-
|
|
807
|
-
// Generate aria-hidden attribute for decorative avatars
|
|
808
|
-
const ariaHiddenAttr = decorative ? ' aria-hidden="true"' : '';
|
|
809
|
-
|
|
810
|
-
// Unique ID for clipPath (to avoid conflicts with multiple avatars)
|
|
811
|
-
const clipId = `hexagon-clip-${Math.random().toString(36).substr(2, 9)}`;
|
|
812
|
-
|
|
813
|
-
// Render icon content
|
|
814
|
-
const iconContent = this.renderIconContent('agent', size);
|
|
815
|
-
|
|
816
|
-
return `
|
|
817
|
-
<div class="${svgClasses}"${testIDAttr}${ariaHiddenAttr}>
|
|
818
|
-
<svg
|
|
819
|
-
class="avatar__hexagon-svg"
|
|
820
|
-
width="${sizePx}"
|
|
821
|
-
height="${sizePx}"
|
|
822
|
-
viewBox="0 0 ${sizePx} ${sizePx}"
|
|
823
|
-
aria-hidden="true"
|
|
824
|
-
>
|
|
825
|
-
<defs>
|
|
826
|
-
<clipPath id="${clipId}">
|
|
827
|
-
<path d="${hexPath}" />
|
|
828
|
-
</clipPath>
|
|
829
|
-
</defs>
|
|
830
|
-
|
|
831
|
-
<!-- Background fill -->
|
|
832
|
-
<!-- Spec 058 Migration: Now references semantic token directly -->
|
|
833
|
-
<!-- Component token mapping: agent.background → color.identity.agent -->
|
|
834
|
-
<path
|
|
835
|
-
class="avatar__hexagon-bg"
|
|
836
|
-
d="${hexPath}"
|
|
837
|
-
fill="var(--color-identity-agent)"
|
|
838
|
-
/>
|
|
839
|
-
|
|
840
|
-
<!-- Border stroke -->
|
|
841
|
-
<!-- Spec 058 Migration: Now references semantic token directly -->
|
|
842
|
-
<!-- Component token mapping: default.border → color.structure.border -->
|
|
843
|
-
<path
|
|
844
|
-
class="avatar__hexagon-border"
|
|
845
|
-
d="${hexPath}"
|
|
846
|
-
fill="none"
|
|
847
|
-
stroke="${size === 'xxl' ? 'var(--color-contrast-on-dark)' : 'var(--color-structure-border)'}"
|
|
848
|
-
stroke-width="${borderWidth}"
|
|
849
|
-
stroke-opacity="${size === 'xxl' ? '1' : '0.48'}"
|
|
850
|
-
/>
|
|
851
|
-
</svg>
|
|
852
|
-
|
|
853
|
-
<!-- Icon content positioned over SVG -->
|
|
854
|
-
<div class="avatar__content" style="clip-path: url(#${clipId});">
|
|
855
|
-
${iconContent}
|
|
856
|
-
</div>
|
|
857
|
-
</div>
|
|
858
|
-
`;
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
/**
|
|
862
|
-
* Attach error handler to image element in shadow DOM.
|
|
863
|
-
*
|
|
864
|
-
* Called after render to set up the onerror handler for image fallback.
|
|
865
|
-
* Uses event listener instead of inline onerror attribute for better
|
|
866
|
-
* security and separation of concerns.
|
|
867
|
-
*
|
|
868
|
-
* @see Requirements: 5.6 - Fall back to icon placeholder when image fails to load
|
|
869
|
-
*/
|
|
870
|
-
private attachImageErrorHandler(): void {
|
|
871
|
-
const img = this._shadowRoot.querySelector('.avatar__image');
|
|
872
|
-
if (img) {
|
|
873
|
-
img.addEventListener('error', () => this.handleImageError(), { once: true });
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
/**
|
|
879
|
-
* Register the custom element.
|
|
880
|
-
*
|
|
881
|
-
* Makes <avatar-base> available as a custom HTML element.
|
|
882
|
-
*
|
|
883
|
-
* @see Requirements: 11.1 - Register custom element as <avatar-base>
|
|
884
|
-
*/
|
|
885
|
-
if (!customElements.get('avatar-base')) {
|
|
886
|
-
customElements.define('avatar-base', AvatarBaseElement);
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
/**
|
|
890
|
-
* Default export for convenience.
|
|
891
|
-
*/
|
|
892
|
-
export default AvatarBaseElement;
|