@3fn/core 14.1.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.
Files changed (1380) hide show
  1. package/.kiro/steering/AI-Collaboration-Principles.md +9 -3
  2. package/.kiro/steering/Agent-Directory.md +31 -7
  3. package/.kiro/steering/Civitas-System-Overview.md +3 -3
  4. package/.kiro/steering/DesignerPunk-Systems-Overview.md +3 -3
  5. package/.kiro/steering/Task-Completion-Protocol.md +12 -11
  6. package/.kiro/steering/start-up-tasks.md +12 -4
  7. package/CHANGELOG.md +74 -0
  8. package/README.md +26 -21
  9. package/application-mcp-server/src/__tests__/consumerRootLiveReindex.test.ts +118 -0
  10. package/application-mcp-server/src/__tests__/errorCatalogWiring.test.ts +73 -0
  11. package/application-mcp-server/src/__tests__/mcpDataRootsDeclaration.test.ts +107 -0
  12. package/application-mcp-server/src/__tests__/tool-boundary.contract.test.ts +55 -0
  13. package/application-mcp-server/src/index.ts +249 -59
  14. package/application-mcp-server/src/indexer/ComponentIndexer.ts +273 -46
  15. package/application-mcp-server/src/indexer/ModeClassifier.ts +23 -16
  16. package/application-mcp-server/src/indexer/SemanticOverrideReader.ts +113 -0
  17. package/application-mcp-server/src/indexer/TokenIndexer.ts +195 -3
  18. package/application-mcp-server/src/indexer/__tests__/MultiRootIndexing.test.ts +134 -0
  19. package/application-mcp-server/src/indexer/__tests__/ThemeResolution.test.ts +241 -0
  20. package/application-mcp-server/src/indexer/__tests__/ThemeRootFollowsIndex.test.ts +216 -0
  21. package/application-mcp-server/src/indexer/__tests__/fixtures/consumerFixture.ts +84 -0
  22. package/application-mcp-server/src/indexer/resolveThemeTierRoot.ts +61 -0
  23. package/application-mcp-server/src/watcher/FileWatcher.ts +20 -7
  24. package/dist/ComponentTokens.android.kt +1 -1
  25. package/dist/ComponentTokens.ios.swift +1 -1
  26. package/dist/ComponentTokens.web.css +1 -1
  27. package/dist/DesignTokens.android.kt +1 -5
  28. package/dist/DesignTokens.dtcg.json +388 -122
  29. package/dist/DesignTokens.figma.json +281 -941
  30. package/dist/DesignTokens.ios.swift +1 -5
  31. package/dist/DesignTokens.web.css +5 -5
  32. package/dist/browser/designerpunk.esm.js +160 -94
  33. package/dist/browser/designerpunk.esm.min.js +58 -55
  34. package/dist/browser/designerpunk.umd.js +160 -94
  35. package/dist/browser/designerpunk.umd.min.js +57 -54
  36. package/dist/browser/tokens.css +5 -5
  37. package/dist/build/platforms/AndroidMotionTokenFormatter.d.ts +101 -0
  38. package/dist/build/platforms/AndroidMotionTokenFormatter.js +220 -0
  39. package/dist/build/platforms/WebMotionTokenFormatter.d.ts +85 -0
  40. package/dist/build/platforms/WebMotionTokenFormatter.js +167 -0
  41. package/dist/build/platforms/iOSMotionTokenFormatter.d.ts +99 -0
  42. package/dist/build/platforms/iOSMotionTokenFormatter.js +221 -0
  43. package/dist/build/validation/index.d.ts +0 -4
  44. package/dist/build/validation/index.js +1 -8
  45. package/dist/cli/attach.d.ts +153 -0
  46. package/dist/cli/attach.js +423 -0
  47. package/dist/cli/designerpunk.d.ts +46 -0
  48. package/dist/cli/designerpunk.js +171 -34
  49. package/dist/cli/figma-extract.js +10 -1
  50. package/dist/cli/figma-push.js +11 -2
  51. package/dist/cli/init.d.ts +36 -5
  52. package/dist/cli/init.js +348 -143
  53. package/dist/cli/loadComponentTokens.d.ts +25 -0
  54. package/dist/cli/loadComponentTokens.js +87 -8
  55. package/dist/cli/shared/bornRepo.d.ts +50 -0
  56. package/dist/cli/shared/bornRepo.js +199 -0
  57. package/dist/cli/shared/errorCatalog.d.ts +130 -0
  58. package/dist/cli/shared/errorCatalog.js +148 -0
  59. package/dist/cli/shared/mcpConfig/cc.d.ts +25 -0
  60. package/dist/cli/shared/mcpConfig/cc.js +156 -0
  61. package/dist/cli/shared/mcpConfig/kiro.d.ts +53 -0
  62. package/dist/cli/shared/mcpConfig/kiro.js +140 -0
  63. package/dist/cli/shared/mcpDataRoots.d.ts +88 -1
  64. package/dist/cli/shared/mcpDataRoots.js +76 -2
  65. package/dist/cli/shared/transforms.d.ts +64 -0
  66. package/dist/cli/shared/transforms.js +138 -0
  67. package/dist/cli/shared/vocabulary.d.ts +50 -0
  68. package/dist/cli/shared/vocabulary.js +62 -0
  69. package/dist/cli/sync/Applier.d.ts +25 -26
  70. package/dist/cli/sync/Applier.js +37 -73
  71. package/dist/cli/sync/Classifier.d.ts +70 -6
  72. package/dist/cli/sync/Classifier.js +123 -84
  73. package/dist/cli/sync/FileScanner.d.ts +19 -10
  74. package/dist/cli/sync/FileScanner.js +33 -25
  75. package/dist/cli/sync/KeyGrain.d.ts +106 -0
  76. package/dist/cli/sync/KeyGrain.js +301 -0
  77. package/dist/cli/sync/Manifest.d.ts +147 -12
  78. package/dist/cli/sync/Manifest.js +276 -21
  79. package/dist/cli/sync/Migration.d.ts +271 -0
  80. package/dist/cli/sync/Migration.js +764 -0
  81. package/dist/cli/sync/NameContract.d.ts +169 -0
  82. package/dist/cli/sync/NameContract.js +246 -0
  83. package/dist/cli/sync/RegionGrain.d.ts +118 -0
  84. package/dist/cli/sync/RegionGrain.js +167 -0
  85. package/dist/cli/sync/Reporter.d.ts +33 -4
  86. package/dist/cli/sync/Reporter.js +112 -53
  87. package/dist/cli/sync/SteeringDirCheck.d.ts +32 -4
  88. package/dist/cli/sync/SteeringDirCheck.js +62 -14
  89. package/dist/cli/sync/index.d.ts +125 -6
  90. package/dist/cli/sync/index.js +716 -66
  91. package/dist/color/OklchValidator.d.ts +43 -3
  92. package/dist/color/OklchValidator.js +46 -8
  93. package/dist/components/core/Button-CTA/Button-CTA.refs.d.ts +83 -0
  94. package/dist/components/core/Button-CTA/Button-CTA.refs.js +86 -0
  95. package/dist/components/core/Button-CTA/Button-CTA.tokens.d.ts +20 -10
  96. package/dist/components/core/Button-CTA/Button-CTA.tokens.js +21 -10
  97. package/dist/components/core/Button-CTA/index.d.ts +2 -2
  98. package/dist/components/core/Button-CTA/index.js +3 -3
  99. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.d.ts +11 -30
  100. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.js +16 -49
  101. package/dist/components/core/Container-Base/Container-Base.refs.d.ts +181 -0
  102. package/dist/components/core/Container-Base/Container-Base.refs.js +223 -0
  103. package/dist/components/core/Container-Base/index.d.ts +2 -2
  104. package/dist/components/core/Container-Base/index.js +10 -10
  105. package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.js +1 -1
  106. package/dist/components/core/Container-Base/platforms/web/token-mapping.d.ts +27 -9
  107. package/dist/components/core/Container-Base/platforms/web/token-mapping.js +50 -22
  108. package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.d.ts +149 -0
  109. package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.js +207 -0
  110. package/dist/components/core/Container-Card-Base/index.d.ts +1 -1
  111. package/dist/components/core/Container-Card-Base/index.js +19 -19
  112. package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.js +7 -6
  113. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.d.ts +15 -0
  114. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.js +41 -1
  115. package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.d.ts +331 -0
  116. package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.js +164 -0
  117. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.js +1 -1
  118. package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.d.ts +20 -0
  119. package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.js +34 -0
  120. package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.d.ts +20 -0
  121. package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.js +34 -0
  122. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.d.ts +30 -0
  123. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +72 -3
  124. package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.d.ts +20 -0
  125. package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.js +34 -0
  126. package/dist/consumer-canonical/agents/ada.md +331 -0
  127. package/dist/consumer-canonical/agents/data.md +429 -0
  128. package/dist/consumer-canonical/agents/kenya.md +400 -0
  129. package/dist/consumer-canonical/agents/leonardo.md +524 -0
  130. package/dist/consumer-canonical/agents/lina.md +501 -0
  131. package/dist/consumer-canonical/agents/sparky.md +395 -0
  132. package/dist/consumer-canonical/agents/stacy.md +515 -0
  133. package/dist/consumer-canonical/agents/thurgood.md +463 -0
  134. package/dist/consumer-canonical/always-set/agent-directory.dispositions.yaml +21 -0
  135. package/dist/consumer-canonical/always-set/agent-directory.overlay.md +51 -0
  136. package/dist/consumer-canonical/always-set/ai-collaboration-principles.dispositions.yaml +15 -0
  137. package/dist/consumer-canonical/always-set/ai-collaboration-principles.overlay.md +26 -0
  138. package/dist/consumer-canonical/always-set/civitas-system-overview.dispositions.yaml +15 -0
  139. package/dist/consumer-canonical/always-set/civitas-system-overview.overlay.md +70 -0
  140. package/dist/consumer-canonical/always-set/core-goals.dispositions.yaml +9 -0
  141. package/dist/consumer-canonical/always-set/core-goals.overlay.md +74 -0
  142. package/dist/consumer-canonical/always-set/designerpunk-systems-overview.dispositions.yaml +16 -0
  143. package/dist/consumer-canonical/always-set/designerpunk-systems-overview.overlay.md +44 -0
  144. package/dist/consumer-canonical/always-set/spec-feedback-protocol.dispositions.yaml +21 -0
  145. package/dist/consumer-canonical/always-set/spec-feedback-protocol.overlay.md +44 -0
  146. package/dist/consumer-canonical/always-set/start-up-tasks.dispositions.yaml +15 -0
  147. package/dist/consumer-canonical/always-set/start-up-tasks.overlay.md +25 -0
  148. package/dist/consumer-canonical/always-set/task-completion-protocol.dispositions.yaml +19 -0
  149. package/dist/consumer-canonical/always-set/task-completion-protocol.overlay.md +116 -0
  150. package/dist/consumer-canonical/consumer-profile.yaml +9 -0
  151. package/dist/consumer-canonical/shared/always-set.yaml +113 -0
  152. package/dist/consumer-canonical/shared/field-dispositions.yaml +85 -0
  153. package/dist/consumer-canonical/shared/shared-catalog.yaml +19 -0
  154. package/dist/consumer-canonical/shared/skills-map.yaml +33 -0
  155. package/dist/consumer-canonical/skills/adaptive/SKILL.md +301 -0
  156. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
  157. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
  158. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
  159. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
  160. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +238 -0
  161. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
  162. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
  163. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +168 -0
  164. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +329 -0
  165. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
  166. package/dist/consumer-canonical/skills/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  167. package/dist/consumer-canonical/skills/edge-to-edge/SKILL.md +426 -0
  168. package/dist/consumer-canonical/skills/impeccable/SKILL.md +237 -0
  169. package/dist/consumer-canonical/skills/impeccable/detector-exclusions.md +42 -0
  170. package/dist/consumer-canonical/skills/impeccable/reference/adapt.md +190 -0
  171. package/dist/consumer-canonical/skills/impeccable/reference/animate.md +194 -0
  172. package/dist/consumer-canonical/skills/impeccable/reference/audit.md +150 -0
  173. package/dist/consumer-canonical/skills/impeccable/reference/bolder.md +113 -0
  174. package/dist/consumer-canonical/skills/impeccable/reference/brand-dp.md +103 -0
  175. package/dist/consumer-canonical/skills/impeccable/reference/clarify.md +174 -0
  176. package/dist/consumer-canonical/skills/impeccable/reference/codex.md +105 -0
  177. package/dist/consumer-canonical/skills/impeccable/reference/cognitive-load.md +106 -0
  178. package/dist/consumer-canonical/skills/impeccable/reference/color-and-contrast.md +122 -0
  179. package/dist/consumer-canonical/skills/impeccable/reference/colorize.md +155 -0
  180. package/dist/consumer-canonical/skills/impeccable/reference/craft.md +123 -0
  181. package/dist/consumer-canonical/skills/impeccable/reference/critique.md +245 -0
  182. package/dist/consumer-canonical/skills/impeccable/reference/delight.md +302 -0
  183. package/dist/consumer-canonical/skills/impeccable/reference/distill.md +111 -0
  184. package/dist/consumer-canonical/skills/impeccable/reference/extract-dp.md +43 -0
  185. package/dist/consumer-canonical/skills/impeccable/reference/harden.md +347 -0
  186. package/dist/consumer-canonical/skills/impeccable/reference/heuristics-scoring.md +234 -0
  187. package/dist/consumer-canonical/skills/impeccable/reference/interaction-design.md +195 -0
  188. package/dist/consumer-canonical/skills/impeccable/reference/layout.md +141 -0
  189. package/dist/consumer-canonical/skills/impeccable/reference/live.md +622 -0
  190. package/dist/consumer-canonical/skills/impeccable/reference/motion-design.md +109 -0
  191. package/dist/consumer-canonical/skills/impeccable/reference/onboard.md +234 -0
  192. package/dist/consumer-canonical/skills/impeccable/reference/optimize.md +258 -0
  193. package/dist/consumer-canonical/skills/impeccable/reference/overdrive.md +130 -0
  194. package/dist/consumer-canonical/skills/impeccable/reference/personas.md +179 -0
  195. package/dist/consumer-canonical/skills/impeccable/reference/polish.md +242 -0
  196. package/dist/consumer-canonical/skills/impeccable/reference/product-dp.md +79 -0
  197. package/dist/consumer-canonical/skills/impeccable/reference/quieter.md +99 -0
  198. package/dist/consumer-canonical/skills/impeccable/reference/responsive-design.md +114 -0
  199. package/dist/consumer-canonical/skills/impeccable/reference/shape.md +165 -0
  200. package/dist/consumer-canonical/skills/impeccable/reference/spatial-design.md +100 -0
  201. package/dist/consumer-canonical/skills/impeccable/reference/typeset.md +126 -0
  202. package/dist/consumer-canonical/skills/impeccable/reference/typography.md +159 -0
  203. package/dist/consumer-canonical/skills/impeccable/reference/ux-writing.md +107 -0
  204. package/dist/consumer-canonical/skills/impeccable/scripts/detect.mjs +21 -0
  205. package/dist/consumer-canonical/skills/impeccable/scripts/detector/browser/injected/index.mjs +1725 -0
  206. package/dist/consumer-canonical/skills/impeccable/scripts/detector/cli/main.mjs +244 -0
  207. package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4567 -0
  208. package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
  209. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
  210. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +535 -0
  211. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +986 -0
  212. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
  213. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  214. package/dist/consumer-canonical/skills/impeccable/scripts/detector/findings.mjs +12 -0
  215. package/dist/consumer-canonical/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
  216. package/dist/consumer-canonical/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  217. package/dist/consumer-canonical/skills/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
  218. package/dist/consumer-canonical/skills/impeccable/scripts/detector/rules/checks.mjs +2316 -0
  219. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/color.mjs +156 -0
  220. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
  221. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  222. package/dist/consumer-canonical/skills/navigation-3/SKILL.md +110 -0
  223. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/index.md +38 -0
  224. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +498 -0
  225. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
  226. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
  227. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
  228. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
  229. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
  230. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
  231. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
  232. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-advanced.md +155 -0
  233. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-basic.md +744 -0
  234. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
  235. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  236. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
  237. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
  238. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
  239. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +436 -0
  240. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
  241. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +272 -0
  242. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
  243. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
  244. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
  245. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
  246. package/dist/consumer-canonical/skills/theming-styles/SKILL.md +220 -0
  247. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
  248. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/fundamentals.md +420 -0
  249. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
  250. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
  251. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/theming.md +257 -0
  252. package/dist/generator/consumer-entry.js +5939 -0
  253. package/dist/generators/DTCGFormatGenerator.d.ts +14 -4
  254. package/dist/generators/DTCGFormatGenerator.js +35 -18
  255. package/dist/generators/TokenFileGenerator.js +13 -13
  256. package/dist/generators/generateTokenIndex.d.ts +14 -0
  257. package/dist/generators/generateTokenIndex.js +23 -0
  258. package/dist/generators/transformers/FigmaTransformer.d.ts +35 -0
  259. package/dist/generators/transformers/FigmaTransformer.js +101 -13
  260. package/dist/generators/types/DTCGTypes.d.ts +10 -0
  261. package/dist/mcp/application-mcp.js +1062 -261
  262. package/dist/mcp/docs-mcp.js +93 -13
  263. package/dist/mcp/product-mcp.js +539 -41
  264. package/dist/mcp/tool-manifest.json +184 -0
  265. package/dist/name-contract.json +4283 -0
  266. package/dist/tokens/BlurTokens.d.ts +3 -1
  267. package/dist/tokens/BlurTokens.js +6 -4
  268. package/dist/tokens/ShadowOffsetTokens.js +14 -14
  269. package/dist/tokens/SizingTokens.js +3 -3
  270. package/dist/tokens/TapAreaTokens.d.ts +13 -2
  271. package/dist/tokens/TapAreaTokens.js +19 -8
  272. package/dist/tokens/semantic/ColorTokens.js +50 -5
  273. package/dist/tokens/semantic/TypographyTokens.js +10 -10
  274. package/dist/tokens/themes/dark/SemanticOverrides.js +21 -4
  275. package/dist/tools/integrity/Invariants.d.ts +23 -8
  276. package/dist/tools/integrity/Invariants.js +27 -8
  277. package/dist/tools/integrity/cli/run-audit.js +1 -1
  278. package/dist/types/PrimitiveToken.d.ts +15 -1
  279. package/dist/types/generated/TokenTypes.d.ts +1 -1
  280. package/dist/types/generated/TokenTypes.js +1 -1
  281. package/dist/types/index.d.ts +1 -0
  282. package/governance/AI-Collaboration-Framework.md +19 -10
  283. package/governance/Component-Family-Navigation.md +2 -2
  284. package/governance/DTCG-Integration-Guide.md +63 -36
  285. package/governance/DesignerPunk-Integration-Guide.md +57 -61
  286. package/governance/Figma-Workflow-Guide.md +15 -8
  287. package/governance/Process-Integration-Methodology.md +5 -5
  288. package/governance/Process-Spec-Planning.md +179 -54
  289. package/governance/Product-Handoff-Protocol.md +27 -2
  290. package/governance/Test-Behavioral-Contract-Validation.md +5 -0
  291. package/governance/Test-Development-Standards.md +4 -4
  292. package/governance/Token-Family-Accessibility.md +18 -14
  293. package/governance/Token-Family-Blend.md +5 -4
  294. package/governance/Token-Family-Blur.md +8 -8
  295. package/governance/Token-Family-Color.md +40 -22
  296. package/governance/Token-Family-Glow.md +26 -24
  297. package/governance/Token-Family-Layering.md +1 -0
  298. package/governance/Token-Family-Motion.md +22 -13
  299. package/governance/Token-Family-Opacity.md +20 -34
  300. package/governance/Token-Family-Radius.md +4 -2
  301. package/governance/Token-Family-Responsive.md +4 -4
  302. package/governance/Token-Family-Shadow.md +69 -46
  303. package/governance/Token-Family-Spacing.md +22 -12
  304. package/governance/Token-Family-Typography.md +86 -85
  305. package/governance/Token-Governance.md +5 -1
  306. package/governance/Token-Quick-Reference.md +67 -63
  307. package/governance/Transformer-Development-Guide.md +5 -4
  308. package/governance/classification-map.md +597 -7
  309. package/governance/completion-documentation-guide.md +284 -2
  310. package/governance/platform-implementation-guidelines.md +2 -1
  311. package/mcp-server/src/index.ts +16 -12
  312. package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +3 -3
  313. package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +70 -49
  314. package/mcp-server/src/tools/find-docs.ts +1 -0
  315. package/mcp-server/src/tools/get-document-full.ts +1 -0
  316. package/mcp-server/src/tools/get-document-summary.ts +1 -0
  317. package/mcp-server/src/tools/get-index-health.ts +1 -0
  318. package/mcp-server/src/tools/get-section.ts +1 -0
  319. package/mcp-server/src/tools/list-cross-references.ts +1 -0
  320. package/mcp-server/src/tools/rebuild-index.ts +1 -0
  321. package/mcp-server/src/tools/validate-metadata.ts +1 -0
  322. package/package.json +75 -11
  323. package/src/cli/templates/mcp-config.json.template +15 -20
  324. package/src/components/core/Avatar-Base/platforms/android/AvatarPreview.kt +9 -2
  325. package/src/components/core/Container-Base/Container-Base.schema.yaml +9 -11
  326. package/src/components/core/Container-Base/platforms/android/ContainerBase.android.kt +5 -5
  327. package/src/components/core/Container-Base/platforms/ios/ContainerBase.ios.swift +5 -5
  328. package/src/components/core/Container-Card-Base/platforms/android/ContainerCardBase.android.kt +3 -3
  329. package/src/components/core/Container-Card-Base/platforms/ios/ContainerCardBase.ios.swift +2 -2
  330. package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
  331. package/src/components/core/Nav-Header-Base/component-meta.yaml +0 -1
  332. package/src/components/core/Nav-Header-Base/contracts.yaml +1 -1
  333. package/src/components/core/Nav-Header-Page/contracts.yaml +1 -1
  334. package/src/components/core/Nav-TabBar-Base/contracts.yaml +1 -1
  335. package/src/components/core/Progress-Bar-Base/contracts.yaml +1 -1
  336. package/src/tokens/BlurTokens.ts +6 -4
  337. package/src/tokens/ShadowOffsetTokens.ts +14 -14
  338. package/src/tokens/SizingTokens.ts +3 -3
  339. package/src/tokens/TapAreaTokens.ts +20 -8
  340. package/src/tokens/__tests__/BaselineGridAlignmentFlag.test.ts +116 -0
  341. package/src/tokens/__tests__/BlurTokens.test.ts +10 -2
  342. package/src/tokens/__tests__/SemanticColorContrast.test.ts +339 -0
  343. package/src/tokens/__tests__/ShadowOffsetTokens.test.ts +8 -7
  344. package/src/tokens/__tests__/SizingTokens.test.ts +10 -2
  345. package/src/tokens/__tests__/TokenCategories.test.ts +1 -1
  346. package/src/tokens/__tests__/neutral-partition.test.ts +28 -0
  347. package/src/tokens/semantic/AccessibilityTokens.README.md +2 -2
  348. package/src/tokens/semantic/ColorTokens.ts +50 -5
  349. package/src/tokens/semantic/TypographyTokens.ts +10 -10
  350. package/src/tokens/semantic/__tests__/ColorTokens.test.ts +8 -4
  351. package/src/tokens/themes/dark/SemanticOverrides.ts +23 -4
  352. package/src/types/PrimitiveToken.ts +15 -1
  353. package/token-index/meta.json +3 -0
  354. package/token-index/semantics.yaml +21 -15
  355. package/.kiro/agents/ada-prompt.md +0 -213
  356. package/.kiro/agents/ada-prompt.md.attribution.json +0 -45
  357. package/.kiro/agents/ada.json +0 -72
  358. package/.kiro/agents/ada.json.attribution.json +0 -13
  359. package/.kiro/agents/data-prompt.md +0 -324
  360. package/.kiro/agents/data-prompt.md.attribution.json +0 -53
  361. package/.kiro/agents/data.json +0 -51
  362. package/.kiro/agents/data.json.attribution.json +0 -13
  363. package/.kiro/agents/kenya-prompt.md +0 -309
  364. package/.kiro/agents/kenya-prompt.md.attribution.json +0 -53
  365. package/.kiro/agents/kenya.json +0 -46
  366. package/.kiro/agents/kenya.json.attribution.json +0 -13
  367. package/.kiro/agents/leonardo-prompt.md +0 -359
  368. package/.kiro/agents/leonardo-prompt.md.attribution.json +0 -45
  369. package/.kiro/agents/leonardo.json +0 -47
  370. package/.kiro/agents/leonardo.json.attribution.json +0 -13
  371. package/.kiro/agents/lina-prompt.md +0 -344
  372. package/.kiro/agents/lina-prompt.md.attribution.json +0 -53
  373. package/.kiro/agents/lina.json +0 -64
  374. package/.kiro/agents/lina.json.attribution.json +0 -13
  375. package/.kiro/agents/sparky-prompt.md +0 -312
  376. package/.kiro/agents/sparky-prompt.md.attribution.json +0 -53
  377. package/.kiro/agents/sparky.json +0 -56
  378. package/.kiro/agents/sparky.json.attribution.json +0 -13
  379. package/.kiro/agents/stacy-prompt.md +0 -304
  380. package/.kiro/agents/stacy-prompt.md.attribution.json +0 -45
  381. package/.kiro/agents/stacy.json +0 -46
  382. package/.kiro/agents/stacy.json.attribution.json +0 -13
  383. package/.kiro/agents/thurgood-prompt.md +0 -363
  384. package/.kiro/agents/thurgood-prompt.md.attribution.json +0 -45
  385. package/.kiro/agents/thurgood.json +0 -47
  386. package/.kiro/agents/thurgood.json.attribution.json +0 -13
  387. package/.kiro/steering/personal-note.md +0 -35
  388. package/designerpunk.config.ts +0 -27
  389. package/dist/android/DesignTokens.android.kt +0 -695
  390. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.d.ts +0 -26
  391. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.js +0 -224
  392. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.d.ts +0 -30
  393. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.js +0 -254
  394. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.d.ts +0 -44
  395. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.js +0 -376
  396. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.d.ts +0 -38
  397. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.js +0 -328
  398. package/dist/ios/DesignTokens.ios.swift +0 -697
  399. package/dist/web/DesignTokens.web.css +0 -929
  400. package/product-template/agents/README.md +0 -73
  401. package/product-template/agents/ada-prompt.md +0 -83
  402. package/product-template/agents/data-prompt.md +0 -74
  403. package/product-template/agents/kenya-prompt.md +0 -74
  404. package/product-template/agents/leonardo-prompt.md +0 -99
  405. package/product-template/agents/lina-prompt.md +0 -61
  406. package/product-template/agents/sparky-prompt.md +0 -66
  407. package/product-template/agents/stacy-prompt.md +0 -51
  408. package/product-template/agents/thurgood-prompt.md +0 -64
  409. package/src/TokenEngine.ts +0 -628
  410. package/src/__tests__/BuildSystemIntegration.test.ts +0 -485
  411. package/src/__tests__/ProductMCPIntegration.test.ts +0 -204
  412. package/src/__tests__/__mocks__/styleMock.js +0 -18
  413. package/src/__tests__/browser-distribution/build-error-handling.test.ts +0 -143
  414. package/src/__tests__/browser-distribution/bundle-loading.test.ts +0 -353
  415. package/src/__tests__/browser-distribution/bundler-resolution.test.ts +0 -223
  416. package/src/__tests__/browser-distribution/component-registration.test.ts +0 -217
  417. package/src/__tests__/browser-distribution/css-bundling.test.ts +0 -233
  418. package/src/__tests__/browser-distribution/demo-system.test.ts +0 -588
  419. package/src/__tests__/browser-distribution/mcp-format-compliance.property.test.ts +0 -379
  420. package/src/__tests__/browser-distribution/mcp-queryability.test.ts +0 -342
  421. package/src/__tests__/browser-distribution/minification-effectiveness.property.test.ts +0 -188
  422. package/src/__tests__/browser-distribution/registration-idempotency.property.test.ts +0 -372
  423. package/src/__tests__/browser-distribution/soft-ceiling-warning.test.ts +0 -161
  424. package/src/__tests__/browser-distribution/token-completeness.property.test.ts +0 -412
  425. package/src/__tests__/browser-distribution/token-loading.test.ts +0 -344
  426. package/src/__tests__/browser-distribution/umd-bundle-loading.test.ts +0 -169
  427. package/src/__tests__/console-allowlist.json +0 -14
  428. package/src/__tests__/console-fail-setup.ts +0 -169
  429. package/src/__tests__/examples/improved-test-example.test.ts +0 -120
  430. package/src/__tests__/expected-exports.json +0 -66
  431. package/src/__tests__/export-contracts.test.ts +0 -83
  432. package/src/__tests__/fixtures/acknowledged-differences.json +0 -127
  433. package/src/__tests__/fixtures/acknowledged-differences.schema.json +0 -113
  434. package/src/__tests__/fixtures/acknowledged-differences.types.ts +0 -230
  435. package/src/__tests__/fixtures/tokenFixtures.ts +0 -248
  436. package/src/__tests__/helpers/configModuleLoader.ts +0 -20
  437. package/src/__tests__/helpers/tsModuleLoader.ts +0 -24
  438. package/src/__tests__/helpers/web-component-test-utils.ts +0 -39
  439. package/src/__tests__/integration/BlendCrossPlatformConsistency.test.ts +0 -505
  440. package/src/__tests__/integration/BuildSystemCompatibility.test.ts +0 -551
  441. package/src/__tests__/integration/CrossPlatformConsistency.test.ts +0 -855
  442. package/src/__tests__/integration/EndToEndWorkflow.test.ts +0 -601
  443. package/src/__tests__/integration/ErrorHandling.test.ts +0 -459
  444. package/src/__tests__/integration/OpacityPlatformTranslation.test.ts +0 -364
  445. package/src/__tests__/integration/PerformanceValidation.test.ts +0 -887
  446. package/src/__tests__/integration/SemanticTokenGeneration.test.ts +0 -451
  447. package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +0 -139
  448. package/src/__tests__/integration/TokenSystemIntegration.test.ts +0 -890
  449. package/src/__tests__/integration/ValidationPipeline.test.ts +0 -404
  450. package/src/__tests__/package-drift-validation.test.ts +0 -249
  451. package/src/__tests__/performance/GenerationPerformance.test.ts +0 -409
  452. package/src/__tests__/performance/OptimizationValidation.test.ts +0 -509
  453. package/src/__tests__/platform-parity/ProgressPlatformParity.test.ts +0 -546
  454. package/src/__tests__/spec073-opacity-architecture.test.ts +0 -344
  455. package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +0 -520
  456. package/src/__tests__/stemma-system/composition-compliance-validation.test.ts +0 -162
  457. package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +0 -184
  458. package/src/__tests__/stemma-system/contract-existence-validation.test.ts +0 -43
  459. package/src/__tests__/stemma-system/contract-test-reporter.ts +0 -269
  460. package/src/__tests__/stemma-system/cross-platform-consistency.test.ts +0 -564
  461. package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +0 -710
  462. package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +0 -298
  463. package/src/__tests__/stemma-system/mcp-component-integration.test.ts +0 -445
  464. package/src/analytics/PrimitiveTokenFallbackTracker.ts +0 -228
  465. package/src/analytics/SemanticTokenUsageTracker.ts +0 -193
  466. package/src/analytics/StrategicFlexibilityTracker.ts +0 -226
  467. package/src/analytics/TokenUsageTracker.ts +0 -177
  468. package/src/analytics/UsagePatternAnalyzer.ts +0 -177
  469. package/src/analytics/__tests__/UsageTracking.test.ts +0 -647
  470. package/src/analytics/index.ts +0 -42
  471. package/src/assets/fonts/__tests__/androidFontLoadingValidation.test.ts +0 -600
  472. package/src/assets/fonts/__tests__/fontLoading.test.ts +0 -341
  473. package/src/assets/fonts/__tests__/iosFontConfiguration.test.ts +0 -256
  474. package/src/assets/fonts/__tests__/iosFontLoadingValidation.test.ts +0 -465
  475. package/src/assets/fonts/inter/Inter-Bold.ttf +0 -0
  476. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  477. package/src/assets/fonts/inter/Inter-Medium.ttf +0 -0
  478. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  479. package/src/assets/fonts/inter/Inter-Regular.ttf +0 -0
  480. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  481. package/src/assets/fonts/inter/Inter-SemiBold.ttf +0 -0
  482. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  483. package/src/assets/fonts/inter/inter.css +0 -49
  484. package/src/blend/BlendCalculator.ts +0 -120
  485. package/src/blend/ColorSpaceUtils.ts +0 -325
  486. package/src/blend/OklchBlendCalculator.ts +0 -82
  487. package/src/blend/ThemeAwareBlendUtilities.web.ts +0 -323
  488. package/src/blend/__tests__/BlendCalculator.test.ts +0 -393
  489. package/src/blend/__tests__/BlendUtilities.property.test.ts +0 -600
  490. package/src/blend/__tests__/ColorSpaceUtils.test.ts +0 -885
  491. package/src/blend/__tests__/InteractionStateAudit.test.ts +0 -238
  492. package/src/blend/__tests__/OklchBlendCalculator.test.ts +0 -134
  493. package/src/blend/__tests__/ThemeAwareBlendUtilities.test.ts +0 -200
  494. package/src/blend/__tests__/ThemeSwitching.test.ts +0 -508
  495. package/src/blend/index.ts +0 -37
  496. package/src/browser-entry.ts +0 -270
  497. package/src/build/.gitkeep +0 -1
  498. package/src/build/BuildOrchestrator.ts +0 -663
  499. package/src/build/__tests__/AndroidBuildIntegration.test.ts +0 -437
  500. package/src/build/__tests__/AndroidMotionTokenGeneration.test.ts +0 -256
  501. package/src/build/__tests__/BuildOrchestrator.test.ts +0 -562
  502. package/src/build/__tests__/MotionTokenCrossPlatformIntegration.test.ts +0 -424
  503. package/src/build/__tests__/WebCSSTokenGeneration.test.ts +0 -271
  504. package/src/build/__tests__/WebMotionTokenGeneration.test.ts +0 -305
  505. package/src/build/__tests__/WebNPMPackageStructure.test.ts +0 -447
  506. package/src/build/__tests__/iOSMotionTokenGeneration.test.ts +0 -298
  507. package/src/build/errors/BuildError.ts +0 -140
  508. package/src/build/errors/ErrorDocumentation.ts +0 -638
  509. package/src/build/errors/ErrorHandler.ts +0 -406
  510. package/src/build/errors/ErrorReporter.ts +0 -573
  511. package/src/build/errors/PlatformGenerationError.ts +0 -201
  512. package/src/build/errors/README.md +0 -486
  513. package/src/build/errors/RecoveryStrategy.ts +0 -393
  514. package/src/build/errors/TokenGenerationError.ts +0 -196
  515. package/src/build/errors/TokenReferenceError.ts +0 -204
  516. package/src/build/errors/__tests__/BuildError.test.ts +0 -212
  517. package/src/build/errors/__tests__/ErrorDocumentation.example.ts +0 -272
  518. package/src/build/errors/__tests__/ErrorDocumentation.test.ts +0 -458
  519. package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +0 -303
  520. package/src/build/errors/__tests__/ErrorHandler.test.ts +0 -502
  521. package/src/build/errors/__tests__/ErrorReporter.test.ts +0 -581
  522. package/src/build/errors/__tests__/MotionTokenErrors.test.ts +0 -392
  523. package/src/build/errors/__tests__/RecoveryStrategy.test.ts +0 -643
  524. package/src/build/errors/index.ts +0 -90
  525. package/src/build/index.ts +0 -73
  526. package/src/build/orchestration/IncrementalBuilder.ts +0 -532
  527. package/src/build/orchestration/ParallelExecutor.ts +0 -336
  528. package/src/build/orchestration/ProgressTracker.ts +0 -582
  529. package/src/build/orchestration/SequentialExecutor.ts +0 -305
  530. package/src/build/orchestration/__tests__/IncrementalBuilder.test.ts +0 -354
  531. package/src/build/orchestration/__tests__/ParallelExecutor.integration.test.ts +0 -295
  532. package/src/build/orchestration/__tests__/ParallelExecutor.test.ts +0 -493
  533. package/src/build/orchestration/__tests__/ProgressTracker.test.ts +0 -529
  534. package/src/build/orchestration/__tests__/SequentialExecutor.integration.test.ts +0 -202
  535. package/src/build/orchestration/__tests__/SequentialExecutor.test.ts +0 -232
  536. package/src/build/orchestration/index.ts +0 -35
  537. package/src/build/platforms/.gitkeep +0 -1
  538. package/src/build/platforms/AndroidBuilder.ts +0 -1366
  539. package/src/build/platforms/AndroidShadowGenerator.ts +0 -394
  540. package/src/build/platforms/IOSShadowGenerator.ts +0 -324
  541. package/src/build/platforms/PlatformBuilder.ts +0 -131
  542. package/src/build/platforms/WebBuilder.ts +0 -1414
  543. package/src/build/platforms/WebShadowGenerator.ts +0 -288
  544. package/src/build/platforms/__tests__/AndroidBuilder.tokenGeneration.test.ts +0 -146
  545. package/src/build/platforms/__tests__/AndroidShadowGenerator.test.ts +0 -195
  546. package/src/build/platforms/__tests__/IOSShadowGenerator.test.ts +0 -156
  547. package/src/build/platforms/__tests__/WebShadowGenerator.test.ts +0 -123
  548. package/src/build/platforms/__tests__/iOSBuilder.test.ts +0 -1599
  549. package/src/build/platforms/iOSBuilder.ts +0 -1746
  550. package/src/build/platforms/index.ts +0 -9
  551. package/src/build/product/ProductTokenGenerator.ts +0 -162
  552. package/src/build/product/TokenIndexReader.ts +0 -78
  553. package/src/build/product/__tests__/KotlinEmitter.test.ts +0 -109
  554. package/src/build/product/__tests__/ProductTokenGenerator.test.ts +0 -135
  555. package/src/build/product/__tests__/SwiftEmitter.test.ts +0 -90
  556. package/src/build/product/__tests__/TokenIndexReader.test.ts +0 -85
  557. package/src/build/product/__tests__/WebEmitter.test.ts +0 -111
  558. package/src/build/product/__tests__/fixtures/tokens/layout.yaml +0 -21
  559. package/src/build/product/__tests__/fixtures/tokens/motion.yaml +0 -11
  560. package/src/build/product/__tests__/fixtures/tokens/visualization.yaml +0 -8
  561. package/src/build/product/emitters/KotlinEmitter.ts +0 -83
  562. package/src/build/product/emitters/SwiftEmitter.ts +0 -95
  563. package/src/build/product/emitters/WebEmitter.ts +0 -69
  564. package/src/build/tokens/.gitkeep +0 -1
  565. package/src/build/tokens/__tests__/ClassInvariantGuard.test.ts +0 -167
  566. package/src/build/tokens/__tests__/ComponentTokenGenerator.test.ts +0 -285
  567. package/src/build/tokens/__tests__/TokenIntegrator.test.ts +0 -319
  568. package/src/build/tokens/__tests__/TokenSelector.test.ts +0 -264
  569. package/src/build/tokens/__tests__/UnitConverter.applyScaleWithRounding.test.ts +0 -160
  570. package/src/build/tokens/__tests__/UnitConverter.test.ts +0 -331
  571. package/src/build/tokens/__tests__/brand-dual-instance.test.ts +0 -135
  572. package/src/build/tokens/__tests__/defineComponentTokens.test.ts +0 -553
  573. package/src/build/types/.gitkeep +0 -1
  574. package/src/build/types/BuildConfig.ts +0 -123
  575. package/src/build/types/BuildOrchestrator.ts +0 -114
  576. package/src/build/types/BuildResult.ts +0 -125
  577. package/src/build/types/index.ts +0 -39
  578. package/src/build/validation/.gitkeep +0 -1
  579. package/src/build/validation/AndroidBuildValidator.ts +0 -630
  580. package/src/build/validation/CrossPlatformValidationReporter.ts +0 -1267
  581. package/src/build/validation/InterfaceContractValidator.ts +0 -417
  582. package/src/build/validation/InterfaceValidator.ts +0 -326
  583. package/src/build/validation/MathematicalConsistencyValidator.ts +0 -874
  584. package/src/build/validation/MethodSignatureValidator.ts +0 -374
  585. package/src/build/validation/PropertyTypeValidator.ts +0 -312
  586. package/src/build/validation/TokenComparator.ts +0 -796
  587. package/src/build/validation/ValidationReporter.example.ts +0 -310
  588. package/src/build/validation/ValidationReporter.ts +0 -745
  589. package/src/build/validation/WebBuildValidator.ts +0 -583
  590. package/src/build/validation/__tests__/AndroidBuildValidator.test.ts +0 -522
  591. package/src/build/validation/__tests__/CrossPlatformValidationReporter.test.ts +0 -593
  592. package/src/build/validation/__tests__/InterfaceContractValidator.test.ts +0 -647
  593. package/src/build/validation/__tests__/InterfaceValidation.functional.test.ts +0 -360
  594. package/src/build/validation/__tests__/InterfaceValidator.test.ts +0 -318
  595. package/src/build/validation/__tests__/MethodSignatureValidator.test.ts +0 -625
  596. package/src/build/validation/__tests__/MotionTokenCrossPlatformValidation.test.ts +0 -305
  597. package/src/build/validation/__tests__/MotionTokenValidation.test.ts +0 -309
  598. package/src/build/validation/__tests__/PropertyTypeValidator.test.ts +0 -557
  599. package/src/build/validation/__tests__/TokenComparator.test.ts +0 -358
  600. package/src/build/validation/__tests__/ValidationReporter.integration.test.ts +0 -424
  601. package/src/build/validation/__tests__/ValidationReporter.test.ts +0 -793
  602. package/src/build/validation/__tests__/WebBuildValidator.test.ts +0 -495
  603. package/src/build/validation/iOSBuildValidator.ts +0 -783
  604. package/src/build/validation/index.ts +0 -74
  605. package/src/build/validation/types/InterfaceDefinition.ts +0 -101
  606. package/src/build/validation/types/ValidationResult.ts +0 -114
  607. package/src/build/workflow/BuildMode.ts +0 -336
  608. package/src/build/workflow/CICDIntegration.ts +0 -503
  609. package/src/build/workflow/ConfigHelpers.example.ts +0 -317
  610. package/src/build/workflow/ConfigHelpers.ts +0 -834
  611. package/src/build/workflow/README.md +0 -327
  612. package/src/build/workflow/SourceMapGenerator.ts +0 -362
  613. package/src/build/workflow/__tests__/BuildMode.test.ts +0 -544
  614. package/src/build/workflow/__tests__/CICDIntegration.test.ts +0 -602
  615. package/src/build/workflow/__tests__/ConfigHelpers.test.ts +0 -559
  616. package/src/build/workflow/__tests__/SourceMapGenerator.test.ts +0 -421
  617. package/src/build/workflow/index.ts +0 -42
  618. package/src/cli/__tests__/Applier.test.ts +0 -202
  619. package/src/cli/__tests__/Classifier.test.ts +0 -187
  620. package/src/cli/__tests__/FileScanner.test.ts +0 -108
  621. package/src/cli/__tests__/IgnoreFilter.test.ts +0 -92
  622. package/src/cli/__tests__/Manifest.test.ts +0 -107
  623. package/src/cli/__tests__/PackageResolver.test.ts +0 -66
  624. package/src/cli/__tests__/Prompter.test.ts +0 -165
  625. package/src/cli/__tests__/Reporter.test.ts +0 -128
  626. package/src/cli/__tests__/backward-compat.test.ts +0 -142
  627. package/src/cli/__tests__/figma-extract.test.ts +0 -342
  628. package/src/cli/__tests__/figma-push.test.ts +0 -350
  629. package/src/cli/__tests__/init.test.ts +0 -293
  630. package/src/cli/__tests__/loadComponentTokens.test.ts +0 -187
  631. package/src/cli/__tests__/pipeline-independence.test.ts +0 -127
  632. package/src/cli/__tests__/product-only.test.ts +0 -130
  633. package/src/cli/__tests__/resolveTokens.test.ts +0 -88
  634. package/src/cli/__tests__/staleness.test.ts +0 -132
  635. package/src/cli/__tests__/sync.test.ts +0 -199
  636. package/src/cli/__tests__/validate.test.ts +0 -69
  637. package/src/cli/designerpunk.ts +0 -410
  638. package/src/cli/figma-extract.ts +0 -331
  639. package/src/cli/figma-push.ts +0 -288
  640. package/src/cli/generateProductTokens.ts +0 -69
  641. package/src/cli/init.ts +0 -481
  642. package/src/cli/loadComponentTokens.ts +0 -145
  643. package/src/cli/resolveTokens.ts +0 -123
  644. package/src/cli/shared/mcpDataRoots.ts +0 -122
  645. package/src/cli/shared/resolvePackageRoot.ts +0 -58
  646. package/src/cli/shared/transforms.ts +0 -18
  647. package/src/cli/staleness.ts +0 -81
  648. package/src/cli/sync/Applier.ts +0 -128
  649. package/src/cli/sync/Classifier.ts +0 -130
  650. package/src/cli/sync/FileScanner.ts +0 -64
  651. package/src/cli/sync/IgnoreFilter.ts +0 -44
  652. package/src/cli/sync/Manifest.ts +0 -64
  653. package/src/cli/sync/PackageResolver.ts +0 -40
  654. package/src/cli/sync/Prompter.ts +0 -173
  655. package/src/cli/sync/Reporter.ts +0 -78
  656. package/src/cli/sync/SteeringDirCheck.ts +0 -166
  657. package/src/cli/sync/index.ts +0 -115
  658. package/src/cli/validate.ts +0 -135
  659. package/src/cli/validateProductTokens.ts +0 -55
  660. package/src/color/OklchConverter.ts +0 -284
  661. package/src/color/OklchValidator.ts +0 -186
  662. package/src/color/__tests__/OklchConverter.test.ts +0 -232
  663. package/src/color/__tests__/OklchRegression.test.ts +0 -101
  664. package/src/color/__tests__/OklchValidator.test.ts +0 -199
  665. package/src/color/__tests__/WcagContrast.test.ts +0 -76
  666. package/src/components/__tests__/BlendTokenUsageValidation.test.ts +0 -726
  667. package/src/components/__tests__/DynamicImportGuard.test.ts +0 -226
  668. package/src/components/__tests__/ExtensionLintPolicy.test.ts +0 -113
  669. package/src/components/__tests__/TokenCompliance.test.ts +0 -921
  670. package/src/components/__tests__/colorInheritanceValidation.test.ts +0 -267
  671. package/src/components/__tests__/componentTypographyInheritance.test.ts +0 -326
  672. package/src/components/core/Avatar-Base/README.md +0 -366
  673. package/src/components/core/Avatar-Base/__tests__/.gitkeep +0 -3
  674. package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +0 -597
  675. package/src/components/core/Avatar-Base/__tests__/Avatar.icon-integration.test.ts +0 -656
  676. package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +0 -396
  677. package/src/components/core/Avatar-Base/__tests__/Avatar.lifecycle.test.ts +0 -545
  678. package/src/components/core/Avatar-Base/__tests__/Avatar.rendering.test.ts +0 -505
  679. package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +0 -701
  680. package/src/components/core/Avatar-Base/avatar.tokens.ts +0 -373
  681. package/src/components/core/Avatar-Base/index.ts +0 -25
  682. package/src/components/core/Avatar-Base/platforms/ios/.gitkeep +0 -3
  683. package/src/components/core/Avatar-Base/platforms/web/.gitkeep +0 -3
  684. package/src/components/core/Avatar-Base/platforms/web/Avatar.styles.css +0 -595
  685. package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +0 -892
  686. package/src/components/core/Avatar-Base/platforms/web/hexagon-clip.svg +0 -87
  687. package/src/components/core/Avatar-Base/tokens/.gitkeep +0 -4
  688. package/src/components/core/Avatar-Base/types.ts +0 -86
  689. package/src/components/core/Badge-Count-Base/README.md +0 -323
  690. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.stemma.test.ts +0 -548
  691. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.test.ts +0 -452
  692. package/src/components/core/Badge-Count-Base/__tests__/test-utils.ts +0 -244
  693. package/src/components/core/Badge-Count-Base/index.ts +0 -37
  694. package/src/components/core/Badge-Count-Base/platforms/ios/.gitkeep +0 -1
  695. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.styles.css +0 -148
  696. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.ts +0 -363
  697. package/src/components/core/Badge-Count-Base/types.ts +0 -150
  698. package/src/components/core/Badge-Count-Notification/README.md +0 -396
  699. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.stemma.test.ts +0 -571
  700. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.test.ts +0 -490
  701. package/src/components/core/Badge-Count-Notification/__tests__/test-utils.ts +0 -256
  702. package/src/components/core/Badge-Count-Notification/index.ts +0 -60
  703. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.styles.css +0 -182
  704. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.ts +0 -401
  705. package/src/components/core/Badge-Count-Notification/tokens.ts +0 -124
  706. package/src/components/core/Badge-Count-Notification/types.ts +0 -119
  707. package/src/components/core/Badge-Label-Base/README.md +0 -251
  708. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.stemma.test.ts +0 -549
  709. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.test.ts +0 -439
  710. package/src/components/core/Badge-Label-Base/__tests__/test-utils.ts +0 -269
  711. package/src/components/core/Badge-Label-Base/__tests__/tokens.test.ts +0 -88
  712. package/src/components/core/Badge-Label-Base/index.ts +0 -41
  713. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.styles.css +0 -166
  714. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.ts +0 -340
  715. package/src/components/core/Badge-Label-Base/tokens.ts +0 -80
  716. package/src/components/core/Badge-Label-Base/types.ts +0 -148
  717. package/src/components/core/Button-CTA/Button-CTA.tokens.ts +0 -79
  718. package/src/components/core/Button-CTA/README.md +0 -293
  719. package/src/components/core/Button-CTA/__tests__/ButtonCTA.alignment.test.ts +0 -355
  720. package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +0 -698
  721. package/src/components/core/Button-CTA/__tests__/ButtonCTA.tokens.test.ts +0 -89
  722. package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -209
  723. package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -185
  724. package/src/components/core/Button-CTA/examples/BasicUsage.html +0 -133
  725. package/src/components/core/Button-CTA/examples/BasicUsage.tsx +0 -219
  726. package/src/components/core/Button-CTA/examples/Variants.html +0 -263
  727. package/src/components/core/Button-CTA/examples/WithIcon.html +0 -166
  728. package/src/components/core/Button-CTA/index.ts +0 -20
  729. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +0 -395
  730. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +0 -644
  731. package/src/components/core/Button-CTA/platforms/web/__tests__/ButtonCTA.icon-integration.test.ts +0 -476
  732. package/src/components/core/Button-CTA/types.ts +0 -239
  733. package/src/components/core/Button-Icon/README.md +0 -371
  734. package/src/components/core/Button-Icon/__tests__/ButtonIcon.alignment.test.ts +0 -358
  735. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties-8-13.test.ts +0 -953
  736. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties.test.ts +0 -920
  737. package/src/components/core/Button-Icon/__tests__/ButtonIcon.stemma.test.ts +0 -622
  738. package/src/components/core/Button-Icon/__tests__/ButtonIcon.unit.test.ts +0 -560
  739. package/src/components/core/Button-Icon/__tests__/setup.test.ts +0 -361
  740. package/src/components/core/Button-Icon/__tests__/test-utils.ts +0 -248
  741. package/src/components/core/Button-Icon/buttonIcon.tokens.ts +0 -218
  742. package/src/components/core/Button-Icon/platforms/web/.gitkeep +0 -4
  743. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.css +0 -600
  744. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.ts +0 -625
  745. package/src/components/core/Button-Icon/types.ts +0 -186
  746. package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.ts +0 -112
  747. package/src/components/core/Button-VerticalList-Item/README.md +0 -450
  748. package/src/components/core/Button-VerticalList-Item/__tests__/.gitkeep +0 -2
  749. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.alignment.test.ts +0 -271
  750. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.failLoudly.test.ts +0 -106
  751. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.integration.test.ts +0 -480
  752. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.properties.test.ts +0 -634
  753. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.unit.test.ts +0 -746
  754. package/src/components/core/Button-VerticalList-Item/__tests__/rtlSupport.test.ts +0 -206
  755. package/src/components/core/Button-VerticalList-Item/__tests__/test-utils.ts +0 -297
  756. package/src/components/core/Button-VerticalList-Item/__tests__/visualStateMapping.test.ts +0 -419
  757. package/src/components/core/Button-VerticalList-Item/index.ts +0 -49
  758. package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItemTest.kt +0 -1109
  759. package/src/components/core/Button-VerticalList-Item/platforms/ios/.gitkeep +0 -2
  760. package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItemTests.swift +0 -794
  761. package/src/components/core/Button-VerticalList-Item/platforms/web/.gitkeep +0 -2
  762. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.styles.css +0 -459
  763. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts +0 -1030
  764. package/src/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.ts +0 -411
  765. package/src/components/core/Button-VerticalList-Item/types.ts +0 -338
  766. package/src/components/core/Button-VerticalList-Set/README.md +0 -578
  767. package/src/components/core/Button-VerticalList-Set/__tests__/.gitkeep +0 -5
  768. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.integration.test.ts +0 -676
  769. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property.test.ts +0 -786
  770. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property2.test.ts +0 -1109
  771. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.unit.test.ts +0 -924
  772. package/src/components/core/Button-VerticalList-Set/__tests__/animationTiming.test.ts +0 -182
  773. package/src/components/core/Button-VerticalList-Set/__tests__/crossPlatformConsistency.test.ts +0 -685
  774. package/src/components/core/Button-VerticalList-Set/__tests__/deriveItemStates.test.ts +0 -179
  775. package/src/components/core/Button-VerticalList-Set/__tests__/validation.test.ts +0 -275
  776. package/src/components/core/Button-VerticalList-Set/index.ts +0 -32
  777. package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetTest.kt +0 -961
  778. package/src/components/core/Button-VerticalList-Set/platforms/ios/.gitkeep +0 -0
  779. package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetTests.swift +0 -475
  780. package/src/components/core/Button-VerticalList-Set/platforms/web/.gitkeep +0 -4
  781. package/src/components/core/Button-VerticalList-Set/platforms/web/Button-VerticalList-Set.styles.css +0 -167
  782. package/src/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.ts +0 -1446
  783. package/src/components/core/Button-VerticalList-Set/types.ts +0 -788
  784. package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +0 -534
  785. package/src/components/core/Chip-Base/index.ts +0 -40
  786. package/src/components/core/Chip-Base/platforms/ios/.gitkeep +0 -3
  787. package/src/components/core/Chip-Base/platforms/web/.gitkeep +0 -5
  788. package/src/components/core/Chip-Base/platforms/web/ChipBase.styles.css +0 -280
  789. package/src/components/core/Chip-Base/platforms/web/ChipBase.web.ts +0 -480
  790. package/src/components/core/Chip-Base/types.ts +0 -189
  791. package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +0 -592
  792. package/src/components/core/Chip-Filter/index.ts +0 -34
  793. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.styles.css +0 -105
  794. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.web.ts +0 -539
  795. package/src/components/core/Chip-Filter/types.ts +0 -47
  796. package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +0 -472
  797. package/src/components/core/Chip-Input/index.ts +0 -35
  798. package/src/components/core/Chip-Input/platforms/ios/.gitkeep +0 -3
  799. package/src/components/core/Chip-Input/platforms/web/ChipInput.styles.css +0 -99
  800. package/src/components/core/Chip-Input/platforms/web/ChipInput.web.ts +0 -485
  801. package/src/components/core/Chip-Input/types.ts +0 -35
  802. package/src/components/core/Container-Base/README.md +0 -450
  803. package/src/components/core/Container-Base/__tests__/ContainerBase.test.ts +0 -712
  804. package/src/components/core/Container-Base/index.ts +0 -47
  805. package/src/components/core/Container-Base/platforms/web/ContainerBase.web.ts +0 -405
  806. package/src/components/core/Container-Base/platforms/web/styles.css +0 -198
  807. package/src/components/core/Container-Base/platforms/web/token-mapping.ts +0 -573
  808. package/src/components/core/Container-Base/tokens.ts +0 -241
  809. package/src/components/core/Container-Base/types.ts +0 -307
  810. package/src/components/core/Container-Card-Base/README.md +0 -506
  811. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.composition.test.ts +0 -167
  812. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.test.ts +0 -646
  813. package/src/components/core/Container-Card-Base/index.ts +0 -64
  814. package/src/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.ts +0 -373
  815. package/src/components/core/Container-Card-Base/tokens.ts +0 -224
  816. package/src/components/core/Container-Card-Base/types.ts +0 -332
  817. package/src/components/core/Icon-Base/README.md +0 -168
  818. package/src/components/core/Icon-Base/__tests__/IconBase.test.ts +0 -192
  819. package/src/components/core/Icon-Base/index.ts +0 -34
  820. package/src/components/core/Icon-Base/platforms/ios/ASSET_CATALOG_SETUP.md +0 -239
  821. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Contents.json +0 -6
  822. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/Contents.json +0 -9
  823. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/Contents.json +0 -15
  824. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/alert-circle.svg +0 -1
  825. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/Contents.json +0 -15
  826. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/arrow-down.svg +0 -1
  827. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/Contents.json +0 -15
  828. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/arrow-left.svg +0 -1
  829. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/Contents.json +0 -15
  830. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/arrow-right.svg +0 -1
  831. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/Contents.json +0 -15
  832. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/arrow-up.svg +0 -1
  833. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/Contents.json +0 -15
  834. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/award.svg +0 -1
  835. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/Contents.json +0 -15
  836. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/bell.svg +0 -1
  837. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/Contents.json +0 -15
  838. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/briefcase.svg +0 -1
  839. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/Contents.json +0 -15
  840. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/calendar.svg +0 -1
  841. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/Contents.json +0 -15
  842. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/check-circle.svg +0 -1
  843. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/Contents.json +0 -15
  844. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/check.svg +0 -1
  845. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/Contents.json +0 -15
  846. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/chevron-down.svg +0 -1
  847. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/Contents.json +0 -15
  848. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/chevron-left.svg +0 -1
  849. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/Contents.json +0 -15
  850. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/chevron-right.svg +0 -1
  851. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/Contents.json +0 -15
  852. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/circle.svg +0 -1
  853. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/Contents.json +0 -15
  854. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/clock.svg +0 -1
  855. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/Contents.json +0 -15
  856. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/credit-card.svg +0 -1
  857. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/Contents.json +0 -15
  858. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/dollar-sign.svg +0 -1
  859. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/Contents.json +0 -15
  860. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/external-link.svg +0 -1
  861. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/Contents.json +0 -15
  862. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/eye-off.svg +0 -1
  863. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/Contents.json +0 -15
  864. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/eye.svg +0 -1
  865. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/Contents.json +0 -15
  866. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/file-text.svg +0 -1
  867. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/Contents.json +0 -15
  868. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/filter.svg +0 -1
  869. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/Contents.json +0 -15
  870. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/globe.svg +0 -1
  871. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/Contents.json +0 -15
  872. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/heart.svg +0 -1
  873. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/Contents.json +0 -15
  874. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/info.svg +0 -1
  875. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/Contents.json +0 -15
  876. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/mail.svg +0 -1
  877. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/Contents.json +0 -15
  878. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/map-pin.svg +0 -1
  879. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/Contents.json +0 -15
  880. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/minus.svg +0 -1
  881. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/Contents.json +0 -15
  882. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/more-horizontal.svg +0 -1
  883. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/Contents.json +0 -15
  884. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/more-vertical.svg +0 -1
  885. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/Contents.json +0 -15
  886. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/phone.svg +0 -1
  887. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/Contents.json +0 -15
  888. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/plus.svg +0 -1
  889. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/Contents.json +0 -15
  890. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/refresh-cw.svg +0 -1
  891. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/Contents.json +0 -15
  892. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/save.svg +0 -1
  893. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/Contents.json +0 -15
  894. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/search.svg +0 -1
  895. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/Contents.json +0 -15
  896. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/settings.svg +0 -1
  897. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/Contents.json +0 -15
  898. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/share-2.svg +0 -1
  899. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/Contents.json +0 -15
  900. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/share.svg +0 -1
  901. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/Contents.json +0 -15
  902. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/shield.svg +0 -1
  903. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/Contents.json +0 -15
  904. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/smartphone.svg +0 -1
  905. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/Contents.json +0 -15
  906. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/smile.svg +0 -1
  907. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/Contents.json +0 -15
  908. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/star.svg +0 -1
  909. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/Contents.json +0 -15
  910. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/trending-up.svg +0 -1
  911. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/Contents.json +0 -15
  912. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/user-check.svg +0 -1
  913. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/Contents.json +0 -15
  914. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/user-x.svg +0 -1
  915. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/Contents.json +0 -15
  916. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/user.svg +0 -1
  917. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/Contents.json +0 -15
  918. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/users.svg +0 -1
  919. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/Contents.json +0 -15
  920. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/wifi.svg +0 -1
  921. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/Contents.json +0 -15
  922. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/x.svg +0 -1
  923. package/src/components/core/Icon-Base/platforms/web/IconBase.web.ts +0 -553
  924. package/src/components/core/Icon-Base/platforms/web/assets/alert-circle.svg +0 -1
  925. package/src/components/core/Icon-Base/platforms/web/assets/arrow-down.svg +0 -1
  926. package/src/components/core/Icon-Base/platforms/web/assets/arrow-left.svg +0 -1
  927. package/src/components/core/Icon-Base/platforms/web/assets/arrow-right.svg +0 -1
  928. package/src/components/core/Icon-Base/platforms/web/assets/arrow-up.svg +0 -1
  929. package/src/components/core/Icon-Base/platforms/web/assets/award.svg +0 -1
  930. package/src/components/core/Icon-Base/platforms/web/assets/bell.svg +0 -1
  931. package/src/components/core/Icon-Base/platforms/web/assets/briefcase.svg +0 -1
  932. package/src/components/core/Icon-Base/platforms/web/assets/calendar.svg +0 -1
  933. package/src/components/core/Icon-Base/platforms/web/assets/check-circle.svg +0 -1
  934. package/src/components/core/Icon-Base/platforms/web/assets/check.svg +0 -1
  935. package/src/components/core/Icon-Base/platforms/web/assets/chevron-down.svg +0 -1
  936. package/src/components/core/Icon-Base/platforms/web/assets/chevron-left.svg +0 -1
  937. package/src/components/core/Icon-Base/platforms/web/assets/chevron-right.svg +0 -1
  938. package/src/components/core/Icon-Base/platforms/web/assets/circle.svg +0 -1
  939. package/src/components/core/Icon-Base/platforms/web/assets/clock.svg +0 -1
  940. package/src/components/core/Icon-Base/platforms/web/assets/credit-card.svg +0 -1
  941. package/src/components/core/Icon-Base/platforms/web/assets/dollar-sign.svg +0 -1
  942. package/src/components/core/Icon-Base/platforms/web/assets/external-link.svg +0 -1
  943. package/src/components/core/Icon-Base/platforms/web/assets/eye-off.svg +0 -1
  944. package/src/components/core/Icon-Base/platforms/web/assets/eye.svg +0 -1
  945. package/src/components/core/Icon-Base/platforms/web/assets/file-text.svg +0 -1
  946. package/src/components/core/Icon-Base/platforms/web/assets/filter.svg +0 -1
  947. package/src/components/core/Icon-Base/platforms/web/assets/globe.svg +0 -1
  948. package/src/components/core/Icon-Base/platforms/web/assets/heart.svg +0 -1
  949. package/src/components/core/Icon-Base/platforms/web/assets/info.svg +0 -1
  950. package/src/components/core/Icon-Base/platforms/web/assets/mail.svg +0 -1
  951. package/src/components/core/Icon-Base/platforms/web/assets/map-pin.svg +0 -1
  952. package/src/components/core/Icon-Base/platforms/web/assets/minus.svg +0 -1
  953. package/src/components/core/Icon-Base/platforms/web/assets/more-horizontal.svg +0 -1
  954. package/src/components/core/Icon-Base/platforms/web/assets/more-vertical.svg +0 -1
  955. package/src/components/core/Icon-Base/platforms/web/assets/phone.svg +0 -1
  956. package/src/components/core/Icon-Base/platforms/web/assets/plus.svg +0 -1
  957. package/src/components/core/Icon-Base/platforms/web/assets/refresh-cw.svg +0 -1
  958. package/src/components/core/Icon-Base/platforms/web/assets/save.svg +0 -1
  959. package/src/components/core/Icon-Base/platforms/web/assets/search.svg +0 -1
  960. package/src/components/core/Icon-Base/platforms/web/assets/settings.svg +0 -1
  961. package/src/components/core/Icon-Base/platforms/web/assets/share-2.svg +0 -1
  962. package/src/components/core/Icon-Base/platforms/web/assets/share.svg +0 -1
  963. package/src/components/core/Icon-Base/platforms/web/assets/shield.svg +0 -1
  964. package/src/components/core/Icon-Base/platforms/web/assets/smartphone.svg +0 -1
  965. package/src/components/core/Icon-Base/platforms/web/assets/smile.svg +0 -1
  966. package/src/components/core/Icon-Base/platforms/web/assets/star.svg +0 -1
  967. package/src/components/core/Icon-Base/platforms/web/assets/trending-up.svg +0 -1
  968. package/src/components/core/Icon-Base/platforms/web/assets/user-check.svg +0 -1
  969. package/src/components/core/Icon-Base/platforms/web/assets/user-x.svg +0 -1
  970. package/src/components/core/Icon-Base/platforms/web/assets/user.svg +0 -1
  971. package/src/components/core/Icon-Base/platforms/web/assets/users.svg +0 -1
  972. package/src/components/core/Icon-Base/platforms/web/assets/wifi.svg +0 -1
  973. package/src/components/core/Icon-Base/platforms/web/assets/x.svg +0 -1
  974. package/src/components/core/Icon-Base/platforms/web/styles.css +0 -203
  975. package/src/components/core/Icon-Base/types.ts +0 -338
  976. package/src/components/core/Input-Checkbox-Base/README.md +0 -390
  977. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.stemma.test.ts +0 -552
  978. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.test.ts +0 -878
  979. package/src/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.ts +0 -37
  980. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.css +0 -477
  981. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.ts +0 -561
  982. package/src/components/core/Input-Checkbox-Base/types.ts +0 -399
  983. package/src/components/core/Input-Checkbox-Legal/README.md +0 -554
  984. package/src/components/core/Input-Checkbox-Legal/__tests__/InputCheckboxLegal.test.ts +0 -727
  985. package/src/components/core/Input-Checkbox-Legal/platforms/ios/.gitkeep +0 -2
  986. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.css +0 -112
  987. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.ts +0 -505
  988. package/src/components/core/Input-Checkbox-Legal/types.ts +0 -348
  989. package/src/components/core/Input-Radio-Base/.gitkeep +0 -2
  990. package/src/components/core/Input-Radio-Base/README.md +0 -427
  991. package/src/components/core/Input-Radio-Base/__tests__/.gitkeep +0 -1
  992. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.form.test.ts +0 -299
  993. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.stemma.test.ts +0 -543
  994. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.test.ts +0 -429
  995. package/src/components/core/Input-Radio-Base/platforms/ios/.gitkeep +0 -1
  996. package/src/components/core/Input-Radio-Base/platforms/web/.gitkeep +0 -1
  997. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.css +0 -504
  998. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.ts +0 -648
  999. package/src/components/core/Input-Radio-Base/radio-sizing.tokens.ts +0 -37
  1000. package/src/components/core/Input-Radio-Base/types.ts +0 -362
  1001. package/src/components/core/Input-Radio-Set/README.md +0 -373
  1002. package/src/components/core/Input-Radio-Set/__tests__/.gitkeep +0 -0
  1003. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.stemma.test.ts +0 -493
  1004. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.test.ts +0 -499
  1005. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.css +0 -99
  1006. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.ts +0 -790
  1007. package/src/components/core/Input-Radio-Set/types.ts +0 -301
  1008. package/src/components/core/Input-Text-Base/README.md +0 -258
  1009. package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +0 -311
  1010. package/src/components/core/Input-Text-Base/__tests__/keyboardNavigation.test.ts +0 -444
  1011. package/src/components/core/Input-Text-Base/__tests__/labelAssociation.test.ts +0 -418
  1012. package/src/components/core/Input-Text-Base/__tests__/screenReaderSupport.test.ts +0 -405
  1013. package/src/components/core/Input-Text-Base/__tests__/setup.ts +0 -17
  1014. package/src/components/core/Input-Text-Base/__tests__/stateManagement.test.ts +0 -718
  1015. package/src/components/core/Input-Text-Base/__tests__/test-utils.ts +0 -81
  1016. package/src/components/core/Input-Text-Base/__tests__/touchTargetSizing.test.ts +0 -319
  1017. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.ts +0 -241
  1018. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.css +0 -293
  1019. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.ts +0 -448
  1020. package/src/components/core/Input-Text-Base/stateManagement.ts +0 -267
  1021. package/src/components/core/Input-Text-Base/tokens.ts +0 -210
  1022. package/src/components/core/Input-Text-Base/types.ts +0 -114
  1023. package/src/components/core/Input-Text-Email/README.md +0 -252
  1024. package/src/components/core/Input-Text-Email/__tests__/validation.test.ts +0 -127
  1025. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.ts +0 -276
  1026. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.ts +0 -319
  1027. package/src/components/core/Input-Text-Email/stateManagement.ts +0 -160
  1028. package/src/components/core/Input-Text-Email/tokens.ts +0 -33
  1029. package/src/components/core/Input-Text-Email/types.ts +0 -72
  1030. package/src/components/core/Input-Text-Email/validation.ts +0 -130
  1031. package/src/components/core/Input-Text-Password/README.md +0 -360
  1032. package/src/components/core/Input-Text-Password/__tests__/validation.test.ts +0 -362
  1033. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.ts +0 -434
  1034. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +0 -512
  1035. package/src/components/core/Input-Text-Password/stateManagement.ts +0 -244
  1036. package/src/components/core/Input-Text-Password/tokens.ts +0 -32
  1037. package/src/components/core/Input-Text-Password/types.ts +0 -177
  1038. package/src/components/core/Input-Text-Password/validation.ts +0 -207
  1039. package/src/components/core/Input-Text-PhoneNumber/README.md +0 -276
  1040. package/src/components/core/Input-Text-PhoneNumber/__tests__/validation.test.ts +0 -301
  1041. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.ts +0 -370
  1042. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.ts +0 -393
  1043. package/src/components/core/Input-Text-PhoneNumber/stateManagement.ts +0 -250
  1044. package/src/components/core/Input-Text-PhoneNumber/tokens.ts +0 -33
  1045. package/src/components/core/Input-Text-PhoneNumber/types.ts +0 -135
  1046. package/src/components/core/Input-Text-PhoneNumber/validation.ts +0 -302
  1047. package/src/components/core/Nav-Header-App/README.md +0 -29
  1048. package/src/components/core/Nav-Header-App/index.ts +0 -5
  1049. package/src/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.ts +0 -37
  1050. package/src/components/core/Nav-Header-App/types.ts +0 -32
  1051. package/src/components/core/Nav-Header-Base/README.md +0 -21
  1052. package/src/components/core/Nav-Header-Base/index.ts +0 -12
  1053. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.styles.css +0 -75
  1054. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.ts +0 -120
  1055. package/src/components/core/Nav-Header-Base/types.ts +0 -63
  1056. package/src/components/core/Nav-Header-Page/README.md +0 -34
  1057. package/src/components/core/Nav-Header-Page/__tests__/NavHeaderPage.test.ts +0 -250
  1058. package/src/components/core/Nav-Header-Page/index.ts +0 -12
  1059. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.styles.css +0 -90
  1060. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.ts +0 -169
  1061. package/src/components/core/Nav-Header-Page/types.ts +0 -55
  1062. package/src/components/core/Nav-SegmentedChoice-Base/README.md +0 -327
  1063. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.android.test.ts +0 -218
  1064. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.interaction.test.ts +0 -419
  1065. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.ios.test.ts +0 -207
  1066. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.visual.test.ts +0 -371
  1067. package/src/components/core/Nav-SegmentedChoice-Base/index.ts +0 -38
  1068. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.styles.css +0 -160
  1069. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.ts +0 -477
  1070. package/src/components/core/Nav-SegmentedChoice-Base/types.ts +0 -65
  1071. package/src/components/core/Nav-TabBar-Base/README.md +0 -264
  1072. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.android.test.ts +0 -270
  1073. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.ios.test.ts +0 -221
  1074. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.test.ts +0 -421
  1075. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.html +0 -2
  1076. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.tsx +0 -2
  1077. package/src/components/core/Nav-TabBar-Base/index.ts +0 -20
  1078. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.styles.css +0 -281
  1079. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.ts +0 -420
  1080. package/src/components/core/Nav-TabBar-Base/types.ts +0 -43
  1081. package/src/components/core/Progress-Bar-Base/README.md +0 -31
  1082. package/src/components/core/Progress-Bar-Base/__tests__/ProgressBarBase.test.ts +0 -202
  1083. package/src/components/core/Progress-Bar-Base/index.ts +0 -6
  1084. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.styles.css +0 -52
  1085. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.ts +0 -135
  1086. package/src/components/core/Progress-Bar-Base/types.ts +0 -46
  1087. package/src/components/core/Progress-Indicator-Connector-Base/README.md +0 -169
  1088. package/src/components/core/Progress-Indicator-Connector-Base/index.ts +0 -33
  1089. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.styles.css +0 -50
  1090. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.ts +0 -141
  1091. package/src/components/core/Progress-Indicator-Connector-Base/types.ts +0 -67
  1092. package/src/components/core/Progress-Indicator-Label-Base/README.md +0 -191
  1093. package/src/components/core/Progress-Indicator-Label-Base/index.ts +0 -28
  1094. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.styles.css +0 -81
  1095. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.ts +0 -174
  1096. package/src/components/core/Progress-Indicator-Label-Base/types.ts +0 -64
  1097. package/src/components/core/Progress-Indicator-Node-Base/README.md +0 -206
  1098. package/src/components/core/Progress-Indicator-Node-Base/__tests__/VisualStates.test.ts +0 -259
  1099. package/src/components/core/Progress-Indicator-Node-Base/index.ts +0 -36
  1100. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.styles.css +0 -193
  1101. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.ts +0 -226
  1102. package/src/components/core/Progress-Indicator-Node-Base/types.ts +0 -142
  1103. package/src/components/core/Progress-Pagination-Base/README.md +0 -290
  1104. package/src/components/core/Progress-Pagination-Base/__tests__/PaginationBase.test.ts +0 -290
  1105. package/src/components/core/Progress-Pagination-Base/index.ts +0 -40
  1106. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.styles.css +0 -80
  1107. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.ts +0 -293
  1108. package/src/components/core/Progress-Pagination-Base/types.ts +0 -112
  1109. package/src/components/core/Progress-Stepper-Base/README.md +0 -311
  1110. package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +0 -345
  1111. package/src/components/core/Progress-Stepper-Base/index.ts +0 -43
  1112. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.styles.css +0 -49
  1113. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.ts +0 -288
  1114. package/src/components/core/Progress-Stepper-Base/types.ts +0 -175
  1115. package/src/components/core/Progress-Stepper-Detailed/README.md +0 -401
  1116. package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +0 -481
  1117. package/src/components/core/Progress-Stepper-Detailed/index.ts +0 -48
  1118. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.styles.css +0 -106
  1119. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.ts +0 -336
  1120. package/src/components/core/Progress-Stepper-Detailed/types.ts +0 -195
  1121. package/src/composition/BlendComposition.ts +0 -46
  1122. package/src/composition/BlendCompositionParser.ts +0 -215
  1123. package/src/composition/OpacityComposition.ts +0 -62
  1124. package/src/composition/OpacityCompositionParser.ts +0 -308
  1125. package/src/composition/__tests__/BlendCompositionParser.test.ts +0 -431
  1126. package/src/composition/__tests__/OpacityCompositionParser.test.ts +0 -539
  1127. package/src/composition/index.ts +0 -20
  1128. package/src/config/ConfigLoader.ts +0 -143
  1129. package/src/config/__resolution-matrix__/README.md +0 -76
  1130. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/compiled/defineConfig.js +0 -9
  1131. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/designerpunk.config.ts +0 -20
  1132. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/my-overrides.ts +0 -8
  1133. package/src/config/__resolution-matrix__/fixtures/faithful-esm/compiled/defineConfig.js +0 -11
  1134. package/src/config/__resolution-matrix__/fixtures/faithful-esm/designerpunk.config.ts +0 -23
  1135. package/src/config/__resolution-matrix__/fixtures/faithful-esm/my-overrides.ts +0 -6
  1136. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/designerpunk.config.ts +0 -11
  1137. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/src/config/index.ts +0 -15
  1138. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/designerpunk.config.ts +0 -15
  1139. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/src/config/index.ts +0 -13
  1140. package/src/config/__resolution-matrix__/run-matrix.js +0 -107
  1141. package/src/config/__resolution-matrix__/runner.js +0 -153
  1142. package/src/config/__resolution-matrix__/verify-real-loadconfig.js +0 -122
  1143. package/src/config/__tests__/ConfigLoader.test.ts +0 -115
  1144. package/src/config/defineConfig.ts +0 -71
  1145. package/src/config/index.ts +0 -7
  1146. package/src/config/scopedTsRequire.ts +0 -62
  1147. package/src/constants/BaselineGrid.ts +0 -41
  1148. package/src/constants/SpacingTokens.ts +0 -55
  1149. package/src/figma/ComponentAnalysis.ts +0 -292
  1150. package/src/figma/ComponentAnalysisGenerator.ts +0 -444
  1151. package/src/figma/ConsoleMCPClient.ts +0 -168
  1152. package/src/figma/ConsoleMCPClientImpl.ts +0 -1034
  1153. package/src/figma/DesignExtractor.ts +0 -3620
  1154. package/src/figma/TokenSyncWorkflow.ts +0 -915
  1155. package/src/figma/TokenTranslator.ts +0 -891
  1156. package/src/figma/VariantAnalyzer.ts +0 -712
  1157. package/src/figma/__tests__/ComponentAnalysisGenerator.json.test.ts +0 -429
  1158. package/src/figma/__tests__/ComponentAnalysisGenerator.markdown.test.ts +0 -428
  1159. package/src/figma/__tests__/ConsoleMCPClient.bugfix.test.ts +0 -261
  1160. package/src/figma/__tests__/ConsoleMCPClient.preservation.test.ts +0 -395
  1161. package/src/figma/__tests__/ConsoleMCPClient.test.ts +0 -375
  1162. package/src/figma/__tests__/DesignExtractor.boundVariableResolution.test.ts +0 -580
  1163. package/src/figma/__tests__/DesignExtractor.buildNodeTree.test.ts +0 -535
  1164. package/src/figma/__tests__/DesignExtractor.captureComponentScreenshot.test.ts +0 -176
  1165. package/src/figma/__tests__/DesignExtractor.detectBehavioralContracts.test.ts +0 -263
  1166. package/src/figma/__tests__/DesignExtractor.detectComponentTokenDecisions.test.ts +0 -379
  1167. package/src/figma/__tests__/DesignExtractor.detectCompositionPatterns.test.ts +0 -507
  1168. package/src/figma/__tests__/DesignExtractor.detectPlatformParity.test.ts +0 -406
  1169. package/src/figma/__tests__/DesignExtractor.queryContext.test.ts +0 -214
  1170. package/src/figma/__tests__/DesignExtractor.readFigmaComponent.test.ts +0 -431
  1171. package/src/figma/__tests__/DesignExtractor.readStyles.test.ts +0 -204
  1172. package/src/figma/__tests__/DesignExtractor.readTokenBindings.test.ts +0 -268
  1173. package/src/figma/__tests__/DesignExtractor.reconstructCompositeTokens.test.ts +0 -403
  1174. package/src/figma/__tests__/DesignExtractor.resolveUnknownVariableIds.test.ts +0 -259
  1175. package/src/figma/__tests__/DesignExtractor.translateTokens.test.ts +0 -433
  1176. package/src/figma/__tests__/DesignExtractor.validateModes.test.ts +0 -350
  1177. package/src/figma/__tests__/TokenSyncWorkflow.batch.test.ts +0 -277
  1178. package/src/figma/__tests__/TokenSyncWorkflow.drift.test.ts +0 -187
  1179. package/src/figma/__tests__/TokenSyncWorkflow.preservation.test.ts +0 -544
  1180. package/src/figma/__tests__/TokenSyncWorkflow.styles.test.ts +0 -245
  1181. package/src/figma/__tests__/TokenSyncWorkflow.sync.test.ts +0 -217
  1182. package/src/figma/__tests__/TokenTranslator.test.ts +0 -757
  1183. package/src/figma/__tests__/VariantAnalyzer.detectConflicts.test.ts +0 -126
  1184. package/src/figma/__tests__/VariantAnalyzer.test.ts +0 -633
  1185. package/src/figma/__tests__/error-reporting.test.ts +0 -254
  1186. package/src/figma/__tests__/preflight.test.ts +0 -94
  1187. package/src/figma/error-reporting.ts +0 -260
  1188. package/src/figma/index.ts +0 -98
  1189. package/src/figma/portCleanup.ts +0 -86
  1190. package/src/figma/preflight.ts +0 -120
  1191. package/src/generators/BlendUtilityGenerator.ts +0 -847
  1192. package/src/generators/BlendValueGenerator.ts +0 -198
  1193. package/src/generators/DTCGFormatGenerator.ts +0 -1355
  1194. package/src/generators/DTCGGeneratorConfig.ts +0 -46
  1195. package/src/generators/ModeResolvedTokens.ts +0 -58
  1196. package/src/generators/ResponsiveGridGenerator.ts +0 -273
  1197. package/src/generators/TokenFileGenerator.ts +0 -2075
  1198. package/src/generators/__tests__/AccessibilityTokenGeneration.test.ts +0 -350
  1199. package/src/generators/__tests__/BlendUtilityGenerator.test.ts +0 -829
  1200. package/src/generators/__tests__/BlendValueGenerator.test.ts +0 -200
  1201. package/src/generators/__tests__/BreakpointTokenGeneration.test.ts +0 -172
  1202. package/src/generators/__tests__/CSSThemeScoping.test.ts +0 -153
  1203. package/src/generators/__tests__/DTCGConfigOptions.test.ts +0 -271
  1204. package/src/generators/__tests__/DTCGErrorHandling.test.ts +0 -139
  1205. package/src/generators/__tests__/DTCGFormatGenerator.integration.test.ts +0 -346
  1206. package/src/generators/__tests__/DTCGFormatGenerator.property.test.ts +0 -497
  1207. package/src/generators/__tests__/DTCGFormatGenerator.test.ts +0 -469
  1208. package/src/generators/__tests__/FigmaTransformer.styles.test.ts +0 -398
  1209. package/src/generators/__tests__/FigmaTransformer.variables.test.ts +0 -540
  1210. package/src/generators/__tests__/GridSpacingTokenGeneration.test.ts +0 -254
  1211. package/src/generators/__tests__/IconTokenGeneration.test.ts +0 -452
  1212. package/src/generators/__tests__/KotlinThemeTypes.test.ts +0 -110
  1213. package/src/generators/__tests__/ModeAwareGeneration.test.ts +0 -160
  1214. package/src/generators/__tests__/NativeOklchOutput.test.ts +0 -56
  1215. package/src/generators/__tests__/OklchExport.test.ts +0 -71
  1216. package/src/generators/__tests__/ProductRepoSimulation.test.ts +0 -91
  1217. package/src/generators/__tests__/ResponsiveGridGeneration.test.ts +0 -291
  1218. package/src/generators/__tests__/Spec076TokenMigration.test.ts +0 -106
  1219. package/src/generators/__tests__/Spec077ModesVerification.test.ts +0 -52
  1220. package/src/generators/__tests__/SwiftThemeTypes.test.ts +0 -122
  1221. package/src/generators/__tests__/TokenFileGenerator.test.ts +0 -914
  1222. package/src/generators/__tests__/TransformerRegistry.test.ts +0 -118
  1223. package/src/generators/__tests__/WcagValueExportSupport.test.ts +0 -84
  1224. package/src/generators/__tests__/WcagValueInfrastructure.test.ts +0 -122
  1225. package/src/generators/__tests__/WebOklchOutput.test.ts +0 -72
  1226. package/src/generators/__tests__/generateTokenIndex.test.ts +0 -204
  1227. package/src/generators/__tests__/helpers/defaultSemanticOptions.ts +0 -24
  1228. package/src/generators/generateTokenFiles.ts +0 -337
  1229. package/src/generators/generateTokenIndex.ts +0 -258
  1230. package/src/generators/oklch/OklchExportUtils.ts +0 -57
  1231. package/src/generators/oklch/OklchTokenIndexMetadata.ts +0 -30
  1232. package/src/generators/transformers/FigmaTransformer.ts +0 -912
  1233. package/src/generators/transformers/ITokenTransformer.ts +0 -56
  1234. package/src/generators/transformers/TransformerRegistry.ts +0 -63
  1235. package/src/generators/transformers/index.ts +0 -52
  1236. package/src/generators/types/DTCGTypes.ts +0 -101
  1237. package/src/integration/BuildErrorHandler.ts +0 -440
  1238. package/src/integration/BuildSystemInterface.ts +0 -338
  1239. package/src/integration/PlatformFileSelector.ts +0 -288
  1240. package/src/integration/RegistryCoordinator.ts +0 -404
  1241. package/src/integration/TranslationCoordinator.ts +0 -458
  1242. package/src/integration/TreeShakingOptimizer.ts +0 -350
  1243. package/src/integration/ValidationCoordinator.ts +0 -780
  1244. package/src/integration/__tests__/ComponentTokenValidation.test.ts +0 -762
  1245. package/src/integration/__tests__/ValidationCoordinator.test.ts +0 -609
  1246. package/src/integration/__tests__/performance/ComponentTokenValidationPerformance.test.ts +0 -161
  1247. package/src/integration/index.ts +0 -55
  1248. package/src/naming/NamingConventionManager.ts +0 -318
  1249. package/src/naming/PlatformNamingRules.ts +0 -278
  1250. package/src/naming/__tests__/NamingConventions.test.ts +0 -224
  1251. package/src/naming/index.ts +0 -23
  1252. package/src/parent-completion.md +0 -1
  1253. package/src/performance/CachingStrategy.ts +0 -426
  1254. package/src/performance/FileGenerationOptimizer.ts +0 -294
  1255. package/src/performance/PerformanceMonitor.ts +0 -185
  1256. package/src/performance/PerformanceOptimizer.ts +0 -348
  1257. package/src/performance/index.ts +0 -30
  1258. package/src/providers/AndroidFileOrganizer.ts +0 -241
  1259. package/src/providers/AndroidFormatGenerator.ts +0 -750
  1260. package/src/providers/AndroidUnitConverter.ts +0 -177
  1261. package/src/providers/FormatProvider.ts +0 -187
  1262. package/src/providers/PathProvider.ts +0 -197
  1263. package/src/providers/UnitProvider.ts +0 -106
  1264. package/src/providers/WebFileOrganizer.ts +0 -121
  1265. package/src/providers/WebFormatGenerator.ts +0 -611
  1266. package/src/providers/WebUnitConverter.ts +0 -116
  1267. package/src/providers/__tests__/AndroidAccessibilityTokens.test.ts +0 -86
  1268. package/src/providers/__tests__/AndroidFormatGenerator-semantic.test.ts +0 -494
  1269. package/src/providers/__tests__/FormatProviders.test.ts +0 -828
  1270. package/src/providers/__tests__/InsetTokenGeneration.test.ts +0 -627
  1271. package/src/providers/__tests__/PathProviders.test.ts +0 -512
  1272. package/src/providers/__tests__/PlatformOutputFormat.test.ts +0 -252
  1273. package/src/providers/__tests__/UnitProviders.test.ts +0 -721
  1274. package/src/providers/__tests__/WebFormatGenerator-semantic.test.ts +0 -293
  1275. package/src/providers/__tests__/iOSFormatGenerator-semantic.test.ts +0 -410
  1276. package/src/providers/iOSFileOrganizer.ts +0 -162
  1277. package/src/providers/iOSFormatGenerator.ts +0 -599
  1278. package/src/providers/iOSUnitConverter.ts +0 -125
  1279. package/src/providers/index.ts +0 -26
  1280. package/src/registries/ComponentTokenRegistry.ts +0 -292
  1281. package/src/registries/IRegistry.ts +0 -170
  1282. package/src/registries/__tests__/ComponentTokenRegistry.test.ts +0 -446
  1283. package/src/registries/__tests__/IRegistry.test.ts +0 -250
  1284. package/src/registries/__tests__/PrimitiveTokenRegistry.test.ts +0 -342
  1285. package/src/registries/__tests__/SemanticTokenRegistry.test.ts +0 -444
  1286. package/src/resolvers/AndroidColorResolver.ts +0 -333
  1287. package/src/resolvers/ModeThemeResolver.ts +0 -152
  1288. package/src/resolvers/SemanticOverrideResolver.ts +0 -155
  1289. package/src/resolvers/SemanticValueResolver.ts +0 -133
  1290. package/src/resolvers/WebColorResolver.ts +0 -240
  1291. package/src/resolvers/__tests__/AndroidColorResolver.test.ts +0 -507
  1292. package/src/resolvers/__tests__/ModeThemeResolver.test.ts +0 -411
  1293. package/src/resolvers/__tests__/SemanticOverrideResolver.test.ts +0 -186
  1294. package/src/resolvers/__tests__/WebColorResolver.test.ts +0 -405
  1295. package/src/resolvers/__tests__/iOSColorResolver.test.ts +0 -432
  1296. package/src/resolvers/iOSColorResolver.ts +0 -224
  1297. package/src/resolvers/index.ts +0 -11
  1298. package/src/security/AIAgentRestrictions.ts +0 -298
  1299. package/src/security/ContaminationAuditor.ts +0 -393
  1300. package/src/security/ContaminationPrevention.ts +0 -275
  1301. package/src/security/DocumentationGuard.ts +0 -258
  1302. package/src/security/FlexibilityTokenGuard.ts +0 -256
  1303. package/src/security/HumanApprovalWorkflow.ts +0 -319
  1304. package/src/security/__tests__/AIAgentRestrictions.test.ts +0 -482
  1305. package/src/security/__tests__/ContaminationPrevention.test.ts +0 -424
  1306. package/src/security/__tests__/SecurityIntegration.test.ts +0 -505
  1307. package/src/security/index.ts +0 -48
  1308. package/src/testing/__tests__/utilities.test.ts +0 -175
  1309. package/src/testing/index.ts +0 -154
  1310. package/src/testing/jest-preset.ts +0 -62
  1311. package/src/testing/style-mock.ts +0 -7
  1312. package/src/testing/validators.ts +0 -10
  1313. package/src/themes/ResolvedThemeSet.ts +0 -22
  1314. package/src/themes/ThemeRegistry.ts +0 -97
  1315. package/src/themes/__tests__/ThemeRegistry.test.ts +0 -162
  1316. package/src/tools/ThemeFileGenerator.ts +0 -109
  1317. package/src/tools/integrity/DiskFreshGenerator.ts +0 -36
  1318. package/src/tools/integrity/GenerationIntegrityCheck.ts +0 -132
  1319. package/src/tools/integrity/Invariants.ts +0 -228
  1320. package/src/tools/integrity/Normalizer.ts +0 -94
  1321. package/src/tools/integrity/SemanticComparator.ts +0 -127
  1322. package/src/tools/integrity/__tests__/GenerationIntegrityCheck.test.ts +0 -132
  1323. package/src/tools/integrity/__tests__/Invariants.test.ts +0 -142
  1324. package/src/tools/integrity/__tests__/Normalizer.test.ts +0 -65
  1325. package/src/tools/integrity/__tests__/SemanticComparator.test.ts +0 -62
  1326. package/src/tools/integrity/__tests__/consumer-package-mode.test.ts +0 -205
  1327. package/src/tools/integrity/cli/run-audit.ts +0 -150
  1328. package/src/tools/integrity/inventory.ts +0 -51
  1329. package/src/tools/integrity/manifest.ts +0 -56
  1330. package/src/tools/integrity/types/index.ts +0 -183
  1331. package/src/types/ComponentTypes.ts +0 -76
  1332. package/src/types/TranslationOutput.ts +0 -105
  1333. package/src/types/ValidationResult.ts +0 -74
  1334. package/src/types/__tests__/ComponentTypes.test.ts +0 -73
  1335. package/src/types/css.d.ts +0 -35
  1336. package/src/types/generated/TokenTypes.ts +0 -142
  1337. package/src/types/index.ts +0 -42
  1338. package/src/validators/BaselineGridValidator.ts +0 -119
  1339. package/src/validators/CompositionPatternValidator.ts +0 -259
  1340. package/src/validators/CrossPlatformConsistencyValidator.ts +0 -498
  1341. package/src/validators/ErrorValidator.ts +0 -998
  1342. package/src/validators/IValidator.ts +0 -273
  1343. package/src/validators/MathematicalRelationshipParser.ts +0 -434
  1344. package/src/validators/ModeParity.ts +0 -123
  1345. package/src/validators/PassValidator.ts +0 -533
  1346. package/src/validators/PlatformConstraintHandler.ts +0 -453
  1347. package/src/validators/PrimitiveReferenceValidator.ts +0 -284
  1348. package/src/validators/SemanticTokenValidator.ts +0 -496
  1349. package/src/validators/StemmaComponentNamingValidator.ts +0 -524
  1350. package/src/validators/StemmaErrorGuidanceSystem.ts +0 -1600
  1351. package/src/validators/StemmaPropertyAccessibilityValidator.ts +0 -823
  1352. package/src/validators/StemmaTokenUsageValidator.ts +0 -651
  1353. package/src/validators/SyntaxValidator.ts +0 -537
  1354. package/src/validators/ThreeTierValidator.ts +0 -822
  1355. package/src/validators/ToleranceCalculator.ts +0 -324
  1356. package/src/validators/ValidationReasoning.ts +0 -464
  1357. package/src/validators/WCAGValidator.ts +0 -219
  1358. package/src/validators/WarningValidator.ts +0 -626
  1359. package/src/validators/__tests__/BaselineGridValidator.test.ts +0 -292
  1360. package/src/validators/__tests__/BorderWidthValidation.test.ts +0 -595
  1361. package/src/validators/__tests__/CompositionPatterns.test.ts +0 -463
  1362. package/src/validators/__tests__/CrossPlatformConsistency.test.ts +0 -834
  1363. package/src/validators/__tests__/IValidator.test.ts +0 -258
  1364. package/src/validators/__tests__/MathematicalRelationshipParser.test.ts +0 -465
  1365. package/src/validators/__tests__/PlatformConstraints.test.ts +0 -486
  1366. package/src/validators/__tests__/SemanticTokenValidator.test.ts +0 -723
  1367. package/src/validators/__tests__/StemmaComponentNamingValidator.test.ts +0 -597
  1368. package/src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts +0 -717
  1369. package/src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts +0 -349
  1370. package/src/validators/__tests__/StemmaTokenUsageValidator.test.ts +0 -432
  1371. package/src/validators/__tests__/SyntaxValidator.test.ts +0 -360
  1372. package/src/validators/__tests__/ThreeTierValidator.test.ts +0 -906
  1373. package/src/validators/__tests__/ValidationReasoning.test.ts +0 -636
  1374. package/src/validators/__tests__/WCAGValidator.test.ts +0 -243
  1375. package/src/validators/buildValidation.ts +0 -170
  1376. package/src/validators/index.ts +0 -144
  1377. package/src/workflows/ConsistencyValidator.ts +0 -339
  1378. package/src/workflows/TokenGenerationWorkflow.ts +0 -460
  1379. package/src/workflows/ValidationPipeline.ts +0 -284
  1380. package/src/workflows/WorkflowErrorHandler.ts +0 -441
@@ -1,1446 +0,0 @@
1
- /**
2
- * Button-VerticalList-Set Web Component
3
- *
4
- * Stemma System: Buttons Family
5
- * Component Type: Pattern (VerticalList-Set)
6
- * Custom Element Tag: <button-vertical-list-set>
7
- *
8
- * Container/orchestrator component that manages selection behavior,
9
- * state coordination, animations, keyboard navigation, and accessibility
10
- * for vertical list button groups.
11
- *
12
- * RENDERING ARCHITECTURE:
13
- * Uses incremental DOM updates rather than full re-renders to enable CSS transitions.
14
- * - _createDOM(): Called once on first render, creates the full DOM structure
15
- * - _updateDOM(): Called on attribute changes, updates only changed properties
16
- * This preserves DOM element identity, allowing CSS transitions to animate smoothly.
17
- *
18
- * @module Button-VerticalList-Set/platforms/web
19
- * @see Requirements: 2.1, 2.6, 11.2
20
- */
21
-
22
- /// <reference lib="dom" />
23
-
24
- import type {
25
- SelectionMode,
26
- SetInternalState
27
- } from '../../types';
28
-
29
- import {
30
- deriveItemStates,
31
- validateSelection,
32
- canSelectItem,
33
- calculateStaggeredDelays,
34
- calculateFirstSelectionDelays,
35
- calculateDeselectionDelays,
36
- calculateMultiSelectDelay,
37
- getCheckmarkTransition
38
- } from '../../types';
39
-
40
- // Import CSS as string for browser bundle compatibility
41
- // The esbuild CSS-as-string plugin transforms this import into a JS string export
42
- import componentStyles from './Button-VerticalList-Set.styles.css';
43
-
44
- /**
45
- * Get the ARIA role for the container based on mode.
46
- *
47
- * @param mode - The selection mode
48
- * @returns The appropriate ARIA role
49
- * @see Requirements: 2.1, 3.4, 4.6, 5.4
50
- */
51
- function getContainerRole(mode: SelectionMode): string {
52
- switch (mode) {
53
- case 'tap':
54
- return 'group';
55
- case 'select':
56
- return 'radiogroup';
57
- case 'multiSelect':
58
- return 'group';
59
- default:
60
- return 'group';
61
- }
62
- }
63
-
64
- /**
65
- * Button-VerticalList-Set Web Component
66
- *
67
- * A native web component that orchestrates selection behavior and coordinates
68
- * visual states across child Button-VerticalList-Item components.
69
- *
70
- * @remarks
71
- * - Uses Shadow DOM for style encapsulation
72
- * - Follows controlled component pattern (parent manages state)
73
- * - Coordinates animation timing across children
74
- * - Manages keyboard navigation with roving tabindex
75
- * - Provides appropriate ARIA roles based on mode
76
- *
77
- * @example
78
- * ```html
79
- * <!-- Tap mode - action buttons -->
80
- * <button-vertical-list-set mode="tap">
81
- * <button-vertical-list-item label="Settings"></button-vertical-list-item>
82
- * <button-vertical-list-item label="Help"></button-vertical-list-item>
83
- * </button-vertical-list-set>
84
- *
85
- * <!-- Select mode - single selection -->
86
- * <button-vertical-list-set mode="select" selected-index="0">
87
- * <button-vertical-list-item label="Option A"></button-vertical-list-item>
88
- * <button-vertical-list-item label="Option B"></button-vertical-list-item>
89
- * </button-vertical-list-set>
90
- *
91
- * <!-- MultiSelect mode - multiple selections -->
92
- * <button-vertical-list-set mode="multiSelect" selected-indices="[0,2]">
93
- * <button-vertical-list-item label="Choice 1"></button-vertical-list-item>
94
- * <button-vertical-list-item label="Choice 2"></button-vertical-list-item>
95
- * <button-vertical-list-item label="Choice 3"></button-vertical-list-item>
96
- * </button-vertical-list-set>
97
- * ```
98
- *
99
- * @see Requirements 2.1, 2.6, 11.2
100
- */
101
- export class ButtonVerticalListSet extends HTMLElement {
102
- // ─────────────────────────────────────────────────────────────────
103
- // Static Properties
104
- // ─────────────────────────────────────────────────────────────────
105
-
106
- /**
107
- * Observed attributes for attribute change callbacks.
108
- *
109
- * When these attributes change, attributeChangedCallback is invoked.
110
- */
111
- static get observedAttributes(): string[] {
112
- return [
113
- 'mode',
114
- 'selected-index',
115
- 'selected-indices',
116
- 'required',
117
- 'min-selections',
118
- 'max-selections',
119
- 'error',
120
- 'error-message',
121
- 'test-id'
122
- ];
123
- }
124
-
125
- // ─────────────────────────────────────────────────────────────────
126
- // Private Properties
127
- // ─────────────────────────────────────────────────────────────────
128
-
129
- /** Shadow root reference */
130
- private _shadowRoot: ShadowRoot;
131
-
132
- /** Whether DOM has been created */
133
- private _domCreated: boolean = false;
134
-
135
- // Cached DOM element references for incremental updates
136
- private _container: HTMLDivElement | null = null;
137
- private _errorMessageEl: HTMLDivElement | null = null;
138
-
139
- // Props (backed by attributes)
140
- private _mode: SelectionMode = 'tap';
141
- private _selectedIndex: number | null = null;
142
- private _selectedIndices: number[] = [];
143
- private _required: boolean = false;
144
- private _minSelections?: number;
145
- private _maxSelections?: number;
146
- private _error: boolean = false;
147
- private _errorMessage?: string;
148
- private _testID?: string;
149
-
150
- // Internal state for focus management and animation tracking
151
- private _internalState: SetInternalState = {
152
- focusedIndex: 0,
153
- previousSelectedIndex: null,
154
- isFirstSelection: true
155
- };
156
-
157
- // Callbacks (set via properties, not attributes)
158
- private _onItemClick?: (index: number) => void;
159
- private _onSelectionChange?: (index: number | null) => void;
160
- private _onMultiSelectionChange?: (indices: number[]) => void;
161
-
162
- // Unique ID for error message element (for aria-describedby)
163
- private _errorMessageId: string;
164
-
165
- // ─────────────────────────────────────────────────────────────────
166
- // Constructor
167
- // ─────────────────────────────────────────────────────────────────
168
-
169
- constructor() {
170
- super();
171
-
172
- // Attach shadow DOM for style encapsulation
173
- // delegatesFocus: true enables proper tab navigation
174
- this._shadowRoot = this.attachShadow({ mode: 'open', delegatesFocus: true });
175
-
176
- // Generate unique ID for error message element
177
- this._errorMessageId = `vls-error-${Math.random().toString(36).slice(2, 11)}`;
178
- }
179
-
180
- // ─────────────────────────────────────────────────────────────────
181
- // Lifecycle Callbacks
182
- // ─────────────────────────────────────────────────────────────────
183
-
184
- /**
185
- * Called when the element is added to the DOM.
186
- *
187
- * Performs initial render and sets up event listeners.
188
- */
189
- connectedCallback(): void {
190
- // Defer rendering until DOM is ready to ensure CSS is applied
191
- if (document.readyState === 'loading') {
192
- document.addEventListener('DOMContentLoaded', () => {
193
- this._render();
194
- }, { once: true });
195
- } else {
196
- this._render();
197
- }
198
- }
199
-
200
- /**
201
- * Called when the element is removed from the DOM.
202
- *
203
- * Cleans up event listeners to prevent memory leaks.
204
- */
205
- disconnectedCallback(): void {
206
- this._detachEventListeners();
207
- }
208
-
209
- /**
210
- * Called when an observed attribute changes.
211
- *
212
- * Triggers incremental DOM update to reflect the new attribute value.
213
- *
214
- * @param name - Attribute name
215
- * @param oldValue - Previous attribute value
216
- * @param newValue - New attribute value
217
- */
218
- attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {
219
- // Only update if value changed and DOM exists
220
- if (oldValue === newValue) return;
221
-
222
- // Parse attribute values into internal properties
223
- switch (name) {
224
- case 'mode':
225
- this._mode = (newValue as SelectionMode) || 'tap';
226
- break;
227
- case 'selected-index':
228
- this._selectedIndex = newValue !== null ? parseInt(newValue, 10) : null;
229
- if (isNaN(this._selectedIndex as number)) {
230
- this._selectedIndex = null;
231
- }
232
- break;
233
- case 'selected-indices':
234
- try {
235
- this._selectedIndices = newValue ? JSON.parse(newValue) : [];
236
- } catch {
237
- this._selectedIndices = [];
238
- }
239
- break;
240
- case 'required':
241
- this._required = newValue !== null;
242
- break;
243
- case 'min-selections':
244
- this._minSelections = newValue !== null ? parseInt(newValue, 10) : undefined;
245
- break;
246
- case 'max-selections':
247
- this._maxSelections = newValue !== null ? parseInt(newValue, 10) : undefined;
248
- break;
249
- case 'error':
250
- this._error = newValue !== null;
251
- break;
252
- case 'error-message':
253
- this._errorMessage = newValue || undefined;
254
- break;
255
- case 'test-id':
256
- this._testID = newValue || undefined;
257
- break;
258
- }
259
-
260
- // Update DOM if it exists
261
- if (this.isConnected && this._domCreated) {
262
- this._updateDOM();
263
- }
264
- }
265
-
266
- // ─────────────────────────────────────────────────────────────────
267
- // Public Getters/Setters
268
- // ─────────────────────────────────────────────────────────────────
269
-
270
- /**
271
- * Get the selection mode.
272
- */
273
- get mode(): SelectionMode {
274
- return this._mode;
275
- }
276
-
277
- /**
278
- * Set the selection mode.
279
- */
280
- set mode(value: SelectionMode) {
281
- this._mode = value;
282
- this.setAttribute('mode', value);
283
- }
284
-
285
- /**
286
- * Get the selected index (Select mode).
287
- */
288
- get selectedIndex(): number | null {
289
- return this._selectedIndex;
290
- }
291
-
292
- /**
293
- * Set the selected index (Select mode).
294
- */
295
- set selectedIndex(value: number | null) {
296
- this._selectedIndex = value;
297
- if (value !== null) {
298
- this.setAttribute('selected-index', String(value));
299
- } else {
300
- this.removeAttribute('selected-index');
301
- }
302
- }
303
-
304
- /**
305
- * Get the selected indices (MultiSelect mode).
306
- */
307
- get selectedIndices(): number[] {
308
- return this._selectedIndices;
309
- }
310
-
311
- /**
312
- * Set the selected indices (MultiSelect mode).
313
- */
314
- set selectedIndices(value: number[]) {
315
- this._selectedIndices = value;
316
- this.setAttribute('selected-indices', JSON.stringify(value));
317
- }
318
-
319
- /**
320
- * Get the required flag.
321
- */
322
- get required(): boolean {
323
- return this._required;
324
- }
325
-
326
- /**
327
- * Set the required flag.
328
- */
329
- set required(value: boolean) {
330
- this._required = value;
331
- if (value) {
332
- this.setAttribute('required', '');
333
- } else {
334
- this.removeAttribute('required');
335
- }
336
- }
337
-
338
- /**
339
- * Get the minimum selections (MultiSelect mode).
340
- */
341
- get minSelections(): number | undefined {
342
- return this._minSelections;
343
- }
344
-
345
- /**
346
- * Set the minimum selections (MultiSelect mode).
347
- */
348
- set minSelections(value: number | undefined) {
349
- this._minSelections = value;
350
- if (value !== undefined) {
351
- this.setAttribute('min-selections', String(value));
352
- } else {
353
- this.removeAttribute('min-selections');
354
- }
355
- }
356
-
357
- /**
358
- * Get the maximum selections (MultiSelect mode).
359
- */
360
- get maxSelections(): number | undefined {
361
- return this._maxSelections;
362
- }
363
-
364
- /**
365
- * Set the maximum selections (MultiSelect mode).
366
- */
367
- set maxSelections(value: number | undefined) {
368
- this._maxSelections = value;
369
- if (value !== undefined) {
370
- this.setAttribute('max-selections', String(value));
371
- } else {
372
- this.removeAttribute('max-selections');
373
- }
374
- }
375
-
376
- /**
377
- * Get the error state.
378
- */
379
- get error(): boolean {
380
- return this._error;
381
- }
382
-
383
- /**
384
- * Set the error state.
385
- */
386
- set error(value: boolean) {
387
- this._error = value;
388
- if (value) {
389
- this.setAttribute('error', '');
390
- } else {
391
- this.removeAttribute('error');
392
- }
393
- }
394
-
395
- /**
396
- * Get the error message.
397
- */
398
- get errorMessage(): string | undefined {
399
- return this._errorMessage;
400
- }
401
-
402
- /**
403
- * Set the error message.
404
- */
405
- set errorMessage(value: string | undefined) {
406
- this._errorMessage = value;
407
- if (value) {
408
- this.setAttribute('error-message', value);
409
- } else {
410
- this.removeAttribute('error-message');
411
- }
412
- }
413
-
414
- /**
415
- * Get the test ID.
416
- */
417
- get testID(): string | undefined {
418
- return this._testID;
419
- }
420
-
421
- /**
422
- * Set the test ID.
423
- */
424
- set testID(value: string | undefined) {
425
- this._testID = value;
426
- if (value) {
427
- this.setAttribute('test-id', value);
428
- } else {
429
- this.removeAttribute('test-id');
430
- }
431
- }
432
-
433
- // ─────────────────────────────────────────────────────────────────
434
- // Callback Setters
435
- // ─────────────────────────────────────────────────────────────────
436
-
437
- /**
438
- * Set the onItemClick callback (Tap mode).
439
- */
440
- set onItemClick(callback: ((index: number) => void) | undefined) {
441
- this._onItemClick = callback;
442
- }
443
-
444
- /**
445
- * Get the onItemClick callback.
446
- */
447
- get onItemClick(): ((index: number) => void) | undefined {
448
- return this._onItemClick;
449
- }
450
-
451
- /**
452
- * Set the onSelectionChange callback (Select mode).
453
- */
454
- set onSelectionChange(callback: ((index: number | null) => void) | undefined) {
455
- this._onSelectionChange = callback;
456
- }
457
-
458
- /**
459
- * Get the onSelectionChange callback.
460
- */
461
- get onSelectionChange(): ((index: number | null) => void) | undefined {
462
- return this._onSelectionChange;
463
- }
464
-
465
- /**
466
- * Set the onMultiSelectionChange callback (MultiSelect mode).
467
- */
468
- set onMultiSelectionChange(callback: ((indices: number[]) => void) | undefined) {
469
- this._onMultiSelectionChange = callback;
470
- }
471
-
472
- /**
473
- * Get the onMultiSelectionChange callback.
474
- */
475
- get onMultiSelectionChange(): ((indices: number[]) => void) | undefined {
476
- return this._onMultiSelectionChange;
477
- }
478
-
479
- // ─────────────────────────────────────────────────────────────────
480
- // Public Methods
481
- // ─────────────────────────────────────────────────────────────────
482
-
483
- /**
484
- * Validate the current selection state.
485
- *
486
- * Checks if the current selection meets the validation requirements
487
- * based on the mode and configured constraints (required, minSelections, maxSelections).
488
- *
489
- * This method can be called externally to validate the selection before
490
- * form submission or other actions.
491
- *
492
- * @returns ValidationResult with isValid flag and optional error message
493
- *
494
- * @example
495
- * ```typescript
496
- * const set = document.querySelector('button-vertical-list-set');
497
- * const result = set.validate();
498
- * if (!result.isValid) {
499
- * console.log(result.message); // "Please select an option"
500
- * }
501
- * ```
502
- *
503
- * @see Requirements 7.3, 7.4, 7.5
504
- */
505
- validate(): { isValid: boolean; message: string | null } {
506
- return validateSelection(
507
- this._mode,
508
- this._selectedIndex,
509
- this._selectedIndices,
510
- this._required,
511
- this._minSelections,
512
- this._maxSelections
513
- );
514
- }
515
-
516
- // ─────────────────────────────────────────────────────────────────
517
- // Rendering (Incremental Update Architecture)
518
- // ─────────────────────────────────────────────────────────────────
519
-
520
- /**
521
- * Main render entry point.
522
- *
523
- * Routes to _createDOM() for first render or _updateDOM() for subsequent updates.
524
- * This architecture enables CSS transitions by preserving DOM element identity.
525
- */
526
- private _render(): void {
527
- if (!this._domCreated) {
528
- this._createDOM();
529
- this._domCreated = true;
530
- this._attachEventListeners();
531
- } else {
532
- this._updateDOM();
533
- }
534
- }
535
-
536
- /**
537
- * Create the initial DOM structure (called once).
538
- *
539
- * Creates the shadow DOM structure with container and slot for children.
540
- * Error message element is always present but hidden when not needed.
541
- *
542
- * @see Requirements 2.1, 11.2
543
- */
544
- private _createDOM(): void {
545
- // Get initial ARIA role based on mode
546
- const role = getContainerRole(this._mode);
547
- const ariaMultiSelectable = this._mode === 'multiSelect' ? 'true' : null;
548
-
549
- // Create the shadow DOM structure
550
- // Error message is conditionally rendered (only when errorMessage is provided)
551
- // Slot receives child Button-VerticalList-Item elements
552
- this._shadowRoot.innerHTML = `
553
- <style>${componentStyles}</style>
554
- <div
555
- class="vls-container"
556
- role="${role}"
557
- ${ariaMultiSelectable ? `aria-multiselectable="${ariaMultiSelectable}"` : ''}
558
- >
559
- <div
560
- class="vls-error-message"
561
- id="${this._errorMessageId}"
562
- role="alert"
563
- style="display: none;"
564
- ></div>
565
- <slot></slot>
566
- </div>
567
- `;
568
-
569
- // Cache element references for incremental updates
570
- this._container = this._shadowRoot.querySelector('.vls-container');
571
- this._errorMessageEl = this._shadowRoot.querySelector('.vls-error-message');
572
-
573
- // Apply initial state
574
- this._updateDOM();
575
- }
576
-
577
- /**
578
- * Update existing DOM elements (called on attribute changes).
579
- *
580
- * Only updates properties that need to change, preserving DOM element identity.
581
- * This enables CSS transitions to animate smoothly between states.
582
- *
583
- * @see Requirements 2.1, 11.2
584
- */
585
- private _updateDOM(): void {
586
- if (!this._container) return;
587
-
588
- // Update ARIA role based on mode
589
- const role = getContainerRole(this._mode);
590
- this._container.setAttribute('role', role);
591
-
592
- // Update aria-multiselectable for multiSelect mode
593
- if (this._mode === 'multiSelect') {
594
- this._container.setAttribute('aria-multiselectable', 'true');
595
- } else {
596
- this._container.removeAttribute('aria-multiselectable');
597
- }
598
-
599
- // Update error state accessibility attributes
600
- if (this._error && this._errorMessage) {
601
- this._container.setAttribute('aria-invalid', 'true');
602
- this._container.setAttribute('aria-describedby', this._errorMessageId);
603
- } else {
604
- this._container.removeAttribute('aria-invalid');
605
- this._container.removeAttribute('aria-describedby');
606
- }
607
-
608
- // Update test ID
609
- if (this._testID) {
610
- this._container.setAttribute('data-testid', this._testID);
611
- } else {
612
- this._container.removeAttribute('data-testid');
613
- }
614
-
615
- // Update error message
616
- if (this._errorMessageEl) {
617
- if (this._error && this._errorMessage) {
618
- this._errorMessageEl.textContent = this._errorMessage;
619
- this._errorMessageEl.style.display = '';
620
- } else {
621
- this._errorMessageEl.textContent = '';
622
- this._errorMessageEl.style.display = 'none';
623
- }
624
- }
625
-
626
- // Update child items (will be implemented in Task 3)
627
- // For now, just propagate error state to children
628
- this._updateChildItems();
629
- }
630
-
631
- /**
632
- * Update child Button-VerticalList-Item elements.
633
- *
634
- * Propagates visual state, transition delay, checkmark transition, error state,
635
- * and ARIA attributes to children. Uses deriveItemStates() to calculate visual
636
- * states from controlled props. Also sets up roving tabindex pattern for
637
- * keyboard navigation.
638
- *
639
- * Communication props passed to children:
640
- * - `visual-state`: Derived from controlled props (mode, selectedIndex, selectedIndices)
641
- * - `transition-delay`: Animation timing coordination (calculated in Task 6)
642
- * - `checkmark-transition`: Checkmark animation behavior ('fade' or 'instant')
643
- * - `error`: Error state propagation to all children
644
- * - `tabindex`: Roving tabindex for keyboard navigation (0 for focused, -1 for others)
645
- *
646
- * @see Requirements 3.1, 4.1, 4.2, 5.1, 6.5, 7.1, 8.6, 9.6
647
- */
648
- private _updateChildItems(): void {
649
- // Get all slotted children
650
- const slot = this._shadowRoot.querySelector('slot');
651
- if (!slot) return;
652
-
653
- const children = slot.assignedElements() as HTMLElement[];
654
- const itemCount = children.length;
655
-
656
- // Derive visual states from controlled props
657
- // This is the core state derivation logic per design document
658
- const visualStates = deriveItemStates(
659
- this._mode,
660
- this._selectedIndex,
661
- this._selectedIndices,
662
- itemCount
663
- );
664
-
665
- // Calculate transition delays for animation coordination
666
- // @see Requirements 6.1, 6.2, 6.3, 6.4: Animation timing coordination
667
- const transitionDelays = this._calculateTransitionDelays(itemCount, visualStates);
668
-
669
- // Calculate checkmark transitions for animation coordination
670
- // @see Requirement 6.5: "checkmarkTransition='instant' on deselecting items in Select mode"
671
- const checkmarkTransitions = this._calculateCheckmarkTransitions(itemCount, visualStates);
672
-
673
- // Determine ARIA role for items based on mode
674
- // @see Requirements 3.4, 4.7, 5.5
675
- const itemRole = this._getItemRole();
676
-
677
- // Ensure focused index is within bounds
678
- // @see Requirement 8.6: Roving tabindex pattern
679
- if (this._internalState.focusedIndex >= itemCount) {
680
- this._internalState.focusedIndex = Math.max(0, itemCount - 1);
681
- }
682
-
683
- // Update each child with derived state
684
- children.forEach((child, index) => {
685
- if (child.tagName.toLowerCase() === 'button-vertical-list-item') {
686
- // Set visual state derived from controlled props
687
- // @see Requirements 9.6: "derive child visual states from controlled props"
688
- const visualState = visualStates[index];
689
- child.setAttribute('visual-state', visualState);
690
-
691
- // Set transition delay for animation coordination
692
- // @see Requirements 6.1, 6.2, 6.3, 6.4: Animation timing coordination
693
- const transitionDelay = transitionDelays[index];
694
- child.setAttribute('transition-delay', String(transitionDelay));
695
-
696
- // Set checkmark transition for animation coordination
697
- // @see Requirement 6.5: "checkmarkTransition='instant' on deselecting items in Select mode"
698
- // Note: Map 'animated' to 'fade' for Item component compatibility
699
- const checkmarkTransition = checkmarkTransitions[index];
700
- child.setAttribute('checkmark-transition', checkmarkTransition === 'instant' ? 'instant' : 'fade');
701
-
702
- // Propagate error state to all children
703
- // @see Requirements 7.1: "pass error={true} to all child items"
704
- if (this._error) {
705
- child.setAttribute('error', 'true');
706
- } else {
707
- child.setAttribute('error', 'false');
708
- }
709
-
710
- // Set ARIA role for the item based on mode
711
- // @see Requirements 3.4, 4.7, 5.5
712
- child.setAttribute('role', itemRole);
713
-
714
- // Set aria-checked for radio and checkbox roles
715
- // @see Requirements 4.7, 5.5
716
- if (itemRole === 'radio' || itemRole === 'checkbox') {
717
- const isChecked = this._getItemAriaChecked(index, visualState);
718
- child.setAttribute('aria-checked', isChecked ? 'true' : 'false');
719
- } else {
720
- // Button role doesn't use aria-checked
721
- child.removeAttribute('aria-checked');
722
- }
723
-
724
- // Set tabindex for roving tabindex pattern
725
- // @see Requirement 8.6: "focused item has tabindex=0, others have tabindex=-1"
726
- if (index === this._internalState.focusedIndex) {
727
- child.setAttribute('tabindex', '0');
728
- } else {
729
- child.setAttribute('tabindex', '-1');
730
- }
731
- }
732
- });
733
- }
734
-
735
- /**
736
- * Get the ARIA role for child items based on mode.
737
- *
738
- * Role mapping:
739
- * - Tap mode: 'button' (simple action buttons)
740
- * - Select mode: 'radio' (single-selection radio-button style)
741
- * - MultiSelect mode: 'checkbox' (multiple-selection checkbox style)
742
- *
743
- * @returns The ARIA role for child items
744
- * @see Requirements 3.4, 4.7, 5.5
745
- */
746
- private _getItemRole(): 'button' | 'radio' | 'checkbox' {
747
- switch (this._mode) {
748
- case 'tap':
749
- return 'button';
750
- case 'select':
751
- return 'radio';
752
- case 'multiSelect':
753
- return 'checkbox';
754
- default:
755
- return 'button';
756
- }
757
- }
758
-
759
- /**
760
- * Determine if an item should have aria-checked="true".
761
- *
762
- * For Select mode (radio): Item is checked if it's the selected item
763
- * For MultiSelect mode (checkbox): Item is checked if it's in the selectedIndices array
764
- *
765
- * @param index - The index of the item
766
- * @param visualState - The visual state of the item
767
- * @returns true if the item should be aria-checked="true"
768
- * @see Requirements 4.7, 5.5
769
- */
770
- private _getItemAriaChecked(index: number, visualState: string): boolean {
771
- switch (this._mode) {
772
- case 'select':
773
- // In Select mode, item is checked if it's the selected item
774
- // Visual states 'selected' indicates the item is checked
775
- return visualState === 'selected';
776
- case 'multiSelect':
777
- // In MultiSelect mode, item is checked if it's in the selectedIndices array
778
- // Visual state 'checked' indicates the item is checked
779
- return visualState === 'checked';
780
- default:
781
- // Tap mode doesn't use aria-checked
782
- return false;
783
- }
784
- }
785
-
786
- /**
787
- * Calculate transition delays for animation coordination.
788
- *
789
- * This method coordinates animation timing across child items based on
790
- * the current mode and selection state. It uses the animation timing
791
- * functions from types.ts to determine appropriate delays.
792
- *
793
- * Animation timing rules:
794
- * - **Select mode - Selection change**: Deselecting item gets 0ms, selecting item gets 125ms (staggered handoff)
795
- * - **Select mode - First selection**: All items get 0ms (simultaneous)
796
- * - **Select mode - Deselection**: All items get 0ms (simultaneous)
797
- * - **MultiSelect mode - Toggle**: Toggled item gets 0ms (independent)
798
- * - **Tap mode**: All items get 0ms (no selection state)
799
- *
800
- * @param itemCount - Number of child items
801
- * @param visualStates - Array of visual states for each item
802
- * @returns Array of transition delays in milliseconds
803
- * @see Requirements 6.1, 6.2, 6.3, 6.4
804
- */
805
- private _calculateTransitionDelays(itemCount: number, visualStates: string[]): number[] {
806
- // Tap mode: No animation coordination needed
807
- if (this._mode === 'tap') {
808
- return Array(itemCount).fill(0);
809
- }
810
-
811
- // MultiSelect mode: Independent animation per item
812
- // Each item animates immediately when toggled
813
- // @see Requirement 6.4: "WHEN items toggle in MultiSelect mode THEN toggled item gets 0ms"
814
- if (this._mode === 'multiSelect') {
815
- // In multiSelect mode, we don't track previous state for staggering
816
- // Each toggle is independent, so all items get 0ms delay
817
- return calculateMultiSelectDelay(0, itemCount);
818
- }
819
-
820
- // Select mode: Coordinate animation timing based on selection state
821
- // @see Requirements 6.1, 6.2, 6.3
822
- if (this._mode === 'select') {
823
- const previousIndex = this._internalState.previousSelectedIndex;
824
- const currentIndex = this._selectedIndex;
825
- const isFirstSelection = this._internalState.isFirstSelection;
826
-
827
- // Case 1: First selection (no previous selection)
828
- // All items animate simultaneously
829
- // @see Requirement 6.2: "WHEN first selection is made THEN all items get 0ms"
830
- if (isFirstSelection && currentIndex !== null) {
831
- return calculateFirstSelectionDelays(itemCount);
832
- }
833
-
834
- // Case 2: Deselection (clearing selection)
835
- // All items animate simultaneously back to rest
836
- // @see Requirement 6.3: "WHEN deselection occurs THEN all items get 0ms"
837
- if (currentIndex === null && previousIndex !== null) {
838
- return calculateDeselectionDelays(itemCount);
839
- }
840
-
841
- // Case 3: Selection change (from one item to another)
842
- // Staggered animation: deselecting item starts first, selecting item follows
843
- // @see Requirement 6.1: "WHEN selection changes THEN deselecting gets 0ms, selecting gets 125ms"
844
- if (previousIndex !== null && currentIndex !== null && previousIndex !== currentIndex) {
845
- return calculateStaggeredDelays(previousIndex, currentIndex, itemCount);
846
- }
847
-
848
- // Default: No animation coordination needed
849
- return Array(itemCount).fill(0);
850
- }
851
-
852
- // Fallback: No animation coordination
853
- return Array(itemCount).fill(0);
854
- }
855
-
856
- /**
857
- * Calculate checkmark transitions for animation coordination.
858
- *
859
- * This method determines the checkmark transition behavior for each child item
860
- * based on the current mode and selection state. In Select mode, deselecting
861
- * items get 'instant' checkmark removal while selecting items get 'animated'.
862
- *
863
- * Checkmark transition rules:
864
- * - **Select mode - Deselecting item**: 'instant' (checkmark hides immediately)
865
- * - **Select mode - Selecting item**: 'animated' (checkmark fades in)
866
- * - **Select mode - Other items**: 'animated' (default)
867
- * - **MultiSelect mode**: 'animated' (all items animate normally)
868
- * - **Tap mode**: 'animated' (no checkmarks, but default to animated)
869
- *
870
- * @param itemCount - Number of child items
871
- * @param visualStates - Array of visual states for each item
872
- * @returns Array of checkmark transition values ('animated' | 'instant')
873
- * @see Requirement 6.5: "checkmarkTransition='instant' on deselecting items in Select mode"
874
- */
875
- private _calculateCheckmarkTransitions(itemCount: number, visualStates: string[]): ('animated' | 'instant')[] {
876
- // Tap mode: No checkmarks, default to animated
877
- if (this._mode === 'tap') {
878
- return Array(itemCount).fill('animated');
879
- }
880
-
881
- // MultiSelect mode: All items animate normally
882
- // @see Requirement 6.5: Only Select mode uses instant checkmark removal
883
- if (this._mode === 'multiSelect') {
884
- return Array(itemCount).fill('animated');
885
- }
886
-
887
- // Select mode: Determine which item is deselecting
888
- // @see Requirement 6.5: "checkmarkTransition='instant' on deselecting items in Select mode"
889
- if (this._mode === 'select') {
890
- const previousIndex = this._internalState.previousSelectedIndex;
891
- const currentIndex = this._selectedIndex;
892
-
893
- // Create array with default 'animated' transitions
894
- const transitions: ('animated' | 'instant')[] = Array(itemCount).fill('animated');
895
-
896
- // Case: Selection change (from one item to another)
897
- // The deselecting item (previousIndex) gets 'instant' checkmark removal
898
- if (previousIndex !== null && currentIndex !== null && previousIndex !== currentIndex) {
899
- // Use getCheckmarkTransition to determine the transition for the deselecting item
900
- transitions[previousIndex] = getCheckmarkTransition(true, this._mode);
901
- // Selecting item gets animated transition
902
- transitions[currentIndex] = getCheckmarkTransition(false, this._mode);
903
- }
904
-
905
- // Case: Deselection (clearing selection by clicking selected item)
906
- // The deselecting item gets 'instant' checkmark removal
907
- if (currentIndex === null && previousIndex !== null) {
908
- transitions[previousIndex] = getCheckmarkTransition(true, this._mode);
909
- }
910
-
911
- return transitions;
912
- }
913
-
914
- // Fallback: All items animate normally
915
- return Array(itemCount).fill('animated');
916
- }
917
-
918
- // ─────────────────────────────────────────────────────────────────
919
- // Event Handling
920
- // ─────────────────────────────────────────────────────────────────
921
-
922
- /**
923
- * Attach event listeners.
924
- *
925
- * Sets up listeners for child item clicks and keyboard navigation.
926
- *
927
- * @see Requirements 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
928
- */
929
- private _attachEventListeners(): void {
930
- // Listen for slot changes to update child items
931
- const slot = this._shadowRoot.querySelector('slot');
932
- if (slot) {
933
- slot.addEventListener('slotchange', this._handleSlotChange);
934
- }
935
-
936
- // Listen for click events from children (bubbles through slot)
937
- this.addEventListener('click', this._handleChildClick);
938
-
939
- // Listen for keyboard events for navigation
940
- // @see Requirements 8.1, 8.2, 8.3, 8.4, 8.5
941
- this.addEventListener('keydown', this._handleKeyDown);
942
-
943
- // Listen for focus events to track which item has focus
944
- // @see Requirement 8.6: Roving tabindex pattern
945
- this.addEventListener('focusin', this._handleFocusIn);
946
- }
947
-
948
- /**
949
- * Detach event listeners.
950
- */
951
- private _detachEventListeners(): void {
952
- const slot = this._shadowRoot.querySelector('slot');
953
- if (slot) {
954
- slot.removeEventListener('slotchange', this._handleSlotChange);
955
- }
956
-
957
- this.removeEventListener('click', this._handleChildClick);
958
- this.removeEventListener('keydown', this._handleKeyDown);
959
- this.removeEventListener('focusin', this._handleFocusIn);
960
- }
961
-
962
- /**
963
- * Handle slot change events.
964
- *
965
- * Called when children are added or removed from the slot.
966
- */
967
- private _handleSlotChange = (): void => {
968
- // Update child items when slot content changes
969
- this._updateChildItems();
970
- };
971
-
972
- /**
973
- * Handle click events from child items.
974
- *
975
- * Determines which child was clicked and invokes appropriate callback
976
- * based on the current mode.
977
- *
978
- * Mode behaviors:
979
- * - **Tap**: Invokes onItemClick callback with clicked index
980
- * - **Select**: Toggles selection (select new item or deselect if same)
981
- * - **MultiSelect**: Toggles item in selection array (Task 3.4)
982
- *
983
- * @param event - The click event
984
- * @see Requirements 3.2, 4.2, 4.3, 4.4, 4.5, 9.3, 9.5
985
- */
986
- private _handleChildClick = (event: Event): void => {
987
- // Find the clicked child item
988
- const target = event.target as HTMLElement;
989
-
990
- // Check if the click came from a button-vertical-list-item
991
- const item = target.closest('button-vertical-list-item');
992
- if (!item) return;
993
-
994
- // Get the index of the clicked item
995
- const slot = this._shadowRoot.querySelector('slot');
996
- if (!slot) return;
997
-
998
- const children = slot.assignedElements();
999
- const index = children.indexOf(item);
1000
-
1001
- if (index === -1) return;
1002
-
1003
- // Handle click based on mode
1004
- switch (this._mode) {
1005
- case 'tap':
1006
- // Tap mode: Invoke callback with clicked index
1007
- // No selection state tracking
1008
- // @see Requirements 3.2, 9.5
1009
- if (this._onItemClick) {
1010
- this._onItemClick(index);
1011
- }
1012
- break;
1013
-
1014
- case 'select':
1015
- // Select mode: Single-selection (radio-button style)
1016
- // @see Requirements 4.2, 4.3, 4.4, 4.5, 9.3
1017
- this._handleSelectModeClick(index);
1018
- break;
1019
-
1020
- case 'multiSelect':
1021
- // MultiSelect mode: Multiple-selection (checkbox style)
1022
- // @see Requirements 5.2, 5.3, 9.4
1023
- this._handleMultiSelectModeClick(index);
1024
- break;
1025
- }
1026
- };
1027
-
1028
- /**
1029
- * Handle click in Select mode.
1030
- *
1031
- * Implements single-selection behavior:
1032
- * - Clicking an unselected item selects it (and deselects any previous selection)
1033
- * - Clicking the currently selected item deselects it (returns to null)
1034
- *
1035
- * This is a controlled component, so we invoke the callback and let the parent
1036
- * update the selectedIndex prop. The visual state update happens when the
1037
- * attribute changes.
1038
- *
1039
- * Also handles:
1040
- * - Error clearing: when a valid selection is made and required is true
1041
- * - Selection history tracking: updates previousSelectedIndex and isFirstSelection
1042
- * for animation coordination
1043
- *
1044
- * @param clickedIndex - The index of the clicked item
1045
- * @see Requirements 4.2, 4.3, 4.4, 4.5, 6.1, 6.2, 6.3, 7.3, 9.3
1046
- */
1047
- private _handleSelectModeClick(clickedIndex: number): void {
1048
- // Determine the new selection state
1049
- let newSelectedIndex: number | null;
1050
-
1051
- if (this._selectedIndex === clickedIndex) {
1052
- // Clicking the currently selected item deselects it
1053
- // @see Requirement 4.3: "clicking selected item SHALL reset all items to rest state"
1054
- newSelectedIndex = null;
1055
- } else {
1056
- // Clicking a different item selects it
1057
- // @see Requirement 4.2, 4.4: "selecting an item SHALL set that item to selected state"
1058
- newSelectedIndex = clickedIndex;
1059
- }
1060
-
1061
- // ─────────────────────────────────────────────────────────────────
1062
- // Selection History Tracking for Animation Coordination
1063
- // @see Requirements 6.1, 6.2, 6.3
1064
- // ─────────────────────────────────────────────────────────────────
1065
-
1066
- // Track previous selection for stagger calculation
1067
- // @see Requirement 6.1: "WHEN selection changes between items THEN
1068
- // deselecting item gets 0ms, selecting item gets 125ms"
1069
- this._internalState.previousSelectedIndex = this._selectedIndex;
1070
-
1071
- // Handle deselection: reset isFirstSelection flag
1072
- // @see Requirement 6.3: "WHEN deselection occurs THEN all items get 0ms"
1073
- if (newSelectedIndex === null) {
1074
- // Deselection resets the first selection flag
1075
- // Next selection will be treated as "first selection" again
1076
- this._internalState.isFirstSelection = true;
1077
- } else if (this._internalState.isFirstSelection) {
1078
- // First selection made - clear the flag for future selections
1079
- // @see Requirement 6.2: "WHEN first selection is made THEN all items get 0ms"
1080
- // After this selection, subsequent selections will use staggered animation
1081
- this._internalState.isFirstSelection = false;
1082
- }
1083
-
1084
- // Clear error on valid selection
1085
- // @see Requirement 7.3: "WHEN a valid selection is made AND required is true THEN clear error"
1086
- if (this._error && this._required && newSelectedIndex !== null) {
1087
- // Validate the new selection
1088
- const validation = validateSelection(
1089
- this._mode,
1090
- newSelectedIndex,
1091
- this._selectedIndices,
1092
- this._required,
1093
- this._minSelections,
1094
- this._maxSelections
1095
- );
1096
-
1097
- if (validation.isValid) {
1098
- // Clear error state
1099
- this._error = false;
1100
- this._errorMessage = undefined;
1101
- this.removeAttribute('error');
1102
- this.removeAttribute('error-message');
1103
-
1104
- // Update DOM to reflect cleared error
1105
- if (this._domCreated) {
1106
- this._updateDOM();
1107
- }
1108
- }
1109
- }
1110
-
1111
- // Invoke the callback with the new selection
1112
- // @see Requirement 4.5, 9.3: "SHALL invoke onSelectionChange callback"
1113
- if (this._onSelectionChange) {
1114
- this._onSelectionChange(newSelectedIndex);
1115
- }
1116
- }
1117
-
1118
- /**
1119
- * Handle click in MultiSelect mode.
1120
- *
1121
- * Implements multiple-selection behavior (checkbox style):
1122
- * - Clicking an unchecked item adds it to the selection (toggles to checked)
1123
- * - Clicking a checked item removes it from the selection (toggles to unchecked)
1124
- *
1125
- * This is a controlled component, so we invoke the callback and let the parent
1126
- * update the selectedIndices prop. The visual state update happens when the
1127
- * attribute changes.
1128
- *
1129
- * Also handles:
1130
- * - Max selection enforcement: prevents selecting beyond maxSelections
1131
- * - Error clearing: clears error when selection becomes valid
1132
- *
1133
- * @param clickedIndex - The index of the clicked item
1134
- * @see Requirements 5.2, 5.3, 7.4, 7.5, 9.4
1135
- */
1136
- private _handleMultiSelectModeClick(clickedIndex: number): void {
1137
- // Check if the item can be selected (respects maxSelections)
1138
- // @see Requirement 7.5: "WHEN maxSelections is set THEN prevent selecting more"
1139
- if (!canSelectItem(clickedIndex, this._selectedIndices, this._maxSelections)) {
1140
- // At max selections and trying to select a new item - do nothing
1141
- return;
1142
- }
1143
-
1144
- // Create a new array to avoid mutating the existing one
1145
- let newSelectedIndices: number[];
1146
-
1147
- if (this._selectedIndices.includes(clickedIndex)) {
1148
- // Item is currently checked - remove it from selection (toggle to unchecked)
1149
- // @see Requirement 5.2: "toggling an item SHALL toggle between checked and unchecked"
1150
- newSelectedIndices = this._selectedIndices.filter(i => i !== clickedIndex);
1151
- } else {
1152
- // Item is currently unchecked - add it to selection (toggle to checked)
1153
- // @see Requirement 5.2: "toggling an item SHALL toggle between checked and unchecked"
1154
- newSelectedIndices = [...this._selectedIndices, clickedIndex];
1155
- }
1156
-
1157
- // Clear error on valid selection
1158
- // @see Requirement 7.4: "WHEN minSelections is set THEN validate at least that many"
1159
- if (this._error) {
1160
- // Validate the new selection
1161
- const validation = validateSelection(
1162
- this._mode,
1163
- this._selectedIndex,
1164
- newSelectedIndices,
1165
- this._required,
1166
- this._minSelections,
1167
- this._maxSelections
1168
- );
1169
-
1170
- if (validation.isValid) {
1171
- // Clear error state
1172
- this._error = false;
1173
- this._errorMessage = undefined;
1174
- this.removeAttribute('error');
1175
- this.removeAttribute('error-message');
1176
-
1177
- // Update DOM to reflect cleared error
1178
- if (this._domCreated) {
1179
- this._updateDOM();
1180
- }
1181
- }
1182
- }
1183
-
1184
- // Invoke the callback with the complete array of selected indices
1185
- // @see Requirement 5.3, 9.4: "SHALL invoke onMultiSelectionChange callback with array of selected indices"
1186
- if (this._onMultiSelectionChange) {
1187
- this._onMultiSelectionChange(newSelectedIndices);
1188
- }
1189
- }
1190
-
1191
- // ─────────────────────────────────────────────────────────────────
1192
- // Keyboard Navigation
1193
- // ─────────────────────────────────────────────────────────────────
1194
-
1195
- /**
1196
- * Handle keyboard events for navigation.
1197
- *
1198
- * Implements keyboard navigation per WCAG 2.1 AA requirements:
1199
- * - Arrow Up/Down: Move focus between items with wrapping
1200
- * - Home: Move focus to first item
1201
- * - End: Move focus to last item
1202
- * - Enter/Space: Activate the focused item based on mode
1203
- *
1204
- * @param event - The keyboard event
1205
- * @see Requirements 8.2, 8.3, 8.4, 8.5
1206
- */
1207
- private _handleKeyDown = (event: KeyboardEvent): void => {
1208
- // Get all child items
1209
- const children = this._getChildItems();
1210
- const itemCount = children.length;
1211
-
1212
- // No items to navigate
1213
- if (itemCount === 0) return;
1214
-
1215
- // Process the key and determine action
1216
- const result = this._processKeyboardNavigation(event, itemCount);
1217
-
1218
- // If the key wasn't handled, let it propagate
1219
- if (!result.handled) return;
1220
-
1221
- // Prevent default behavior for handled keys
1222
- event.preventDefault();
1223
-
1224
- // Update focus if needed
1225
- if (result.newFocusIndex !== this._internalState.focusedIndex) {
1226
- this._moveFocusToIndex(result.newFocusIndex, children);
1227
- }
1228
-
1229
- // Activate item if needed (Enter/Space)
1230
- if (result.shouldActivate) {
1231
- this._activateItem(this._internalState.focusedIndex);
1232
- }
1233
- };
1234
-
1235
- /**
1236
- * Process keyboard navigation and determine the action to take.
1237
- *
1238
- * Implements the key handler logic from the design document:
1239
- * - Arrow Down: Move focus to next item (wrap to first)
1240
- * - Arrow Up: Move focus to previous item (wrap to last)
1241
- * - Home: Move focus to first item
1242
- * - End: Move focus to last item
1243
- * - Enter/Space: Activate the focused item
1244
- *
1245
- * @param event - The keyboard event
1246
- * @param itemCount - Number of child items
1247
- * @returns Object with newFocusIndex, shouldActivate, and handled flags
1248
- * @see Requirements 8.2, 8.3, 8.4, 8.5
1249
- */
1250
- private _processKeyboardNavigation(
1251
- event: KeyboardEvent,
1252
- itemCount: number
1253
- ): { newFocusIndex: number; shouldActivate: boolean; handled: boolean } {
1254
- const currentIndex = this._internalState.focusedIndex;
1255
-
1256
- switch (event.key) {
1257
- case 'ArrowDown':
1258
- // Move focus to next item, wrap to first if at end
1259
- // @see Requirement 8.2: "Arrow Down SHALL move focus between items"
1260
- return {
1261
- newFocusIndex: (currentIndex + 1) % itemCount,
1262
- shouldActivate: false,
1263
- handled: true
1264
- };
1265
-
1266
- case 'ArrowUp':
1267
- // Move focus to previous item, wrap to last if at beginning
1268
- // @see Requirement 8.2: "Arrow Up SHALL move focus between items"
1269
- return {
1270
- newFocusIndex: (currentIndex - 1 + itemCount) % itemCount,
1271
- shouldActivate: false,
1272
- handled: true
1273
- };
1274
-
1275
- case 'Home':
1276
- // Move focus to first item
1277
- // @see Requirement 8.4: "Home SHALL move focus to first item"
1278
- return {
1279
- newFocusIndex: 0,
1280
- shouldActivate: false,
1281
- handled: true
1282
- };
1283
-
1284
- case 'End':
1285
- // Move focus to last item
1286
- // @see Requirement 8.5: "End SHALL move focus to last item"
1287
- return {
1288
- newFocusIndex: itemCount - 1,
1289
- shouldActivate: false,
1290
- handled: true
1291
- };
1292
-
1293
- case 'Enter':
1294
- case ' ':
1295
- // Activate the focused item
1296
- // @see Requirement 8.3: "Enter/Space SHALL activate or toggle item based on mode"
1297
- return {
1298
- newFocusIndex: currentIndex,
1299
- shouldActivate: true,
1300
- handled: true
1301
- };
1302
-
1303
- default:
1304
- // Key not handled
1305
- return {
1306
- newFocusIndex: currentIndex,
1307
- shouldActivate: false,
1308
- handled: false
1309
- };
1310
- }
1311
- }
1312
-
1313
- /**
1314
- * Move focus to a specific item index.
1315
- *
1316
- * Updates the internal focused index, updates tabindex values using
1317
- * roving tabindex pattern, and moves DOM focus to the new item.
1318
- *
1319
- * @param newIndex - The index to focus
1320
- * @param children - Array of child elements (optional, will be fetched if not provided)
1321
- * @see Requirement 8.6: Roving tabindex pattern
1322
- */
1323
- private _moveFocusToIndex(newIndex: number, children?: HTMLElement[]): void {
1324
- const items = children || this._getChildItems();
1325
-
1326
- if (items.length === 0 || newIndex < 0 || newIndex >= items.length) return;
1327
-
1328
- // Update internal state
1329
- this._internalState.focusedIndex = newIndex;
1330
-
1331
- // Update tabindex values (roving tabindex pattern)
1332
- // @see Requirement 8.6: "focused item has tabindex=0, others have tabindex=-1"
1333
- this._updateTabIndices(items, newIndex);
1334
-
1335
- // Move DOM focus to the new item
1336
- const targetItem = items[newIndex];
1337
- if (targetItem) {
1338
- targetItem.focus();
1339
- }
1340
- }
1341
-
1342
- /**
1343
- * Update tabindex values for roving tabindex pattern.
1344
- *
1345
- * Sets tabindex="0" on the focused item and tabindex="-1" on all others.
1346
- * This ensures only one item is in the tab order at a time.
1347
- *
1348
- * @param items - Array of child elements
1349
- * @param focusedIndex - Index of the item that should have tabindex="0"
1350
- * @see Requirement 8.6: Roving tabindex pattern
1351
- */
1352
- private _updateTabIndices(items: HTMLElement[], focusedIndex: number): void {
1353
- items.forEach((item, index) => {
1354
- if (index === focusedIndex) {
1355
- item.setAttribute('tabindex', '0');
1356
- } else {
1357
- item.setAttribute('tabindex', '-1');
1358
- }
1359
- });
1360
- }
1361
-
1362
- /**
1363
- * Activate an item at the specified index.
1364
- *
1365
- * Simulates a click on the item, which triggers the appropriate
1366
- * mode-specific behavior (tap callback, selection change, or toggle).
1367
- *
1368
- * @param index - The index of the item to activate
1369
- * @see Requirement 8.3: "Enter/Space SHALL activate or toggle item based on mode"
1370
- */
1371
- private _activateItem(index: number): void {
1372
- // Handle activation based on mode (same as click handling)
1373
- switch (this._mode) {
1374
- case 'tap':
1375
- // Tap mode: Invoke callback with index
1376
- if (this._onItemClick) {
1377
- this._onItemClick(index);
1378
- }
1379
- break;
1380
-
1381
- case 'select':
1382
- // Select mode: Toggle selection
1383
- this._handleSelectModeClick(index);
1384
- break;
1385
-
1386
- case 'multiSelect':
1387
- // MultiSelect mode: Toggle item
1388
- this._handleMultiSelectModeClick(index);
1389
- break;
1390
- }
1391
- }
1392
-
1393
- /**
1394
- * Handle focus-in events to track which item has focus.
1395
- *
1396
- * Updates the internal focused index when focus moves to a child item.
1397
- * This ensures the roving tabindex pattern stays in sync with actual focus.
1398
- *
1399
- * @param event - The focus event
1400
- * @see Requirement 8.6: Roving tabindex pattern
1401
- */
1402
- private _handleFocusIn = (event: FocusEvent): void => {
1403
- const target = event.target as HTMLElement;
1404
-
1405
- // Check if the focus target is a child item
1406
- const item = target.closest('button-vertical-list-item');
1407
- if (!item) return;
1408
-
1409
- // Get the index of the focused item
1410
- const children = this._getChildItems();
1411
- const index = children.indexOf(item as HTMLElement);
1412
-
1413
- if (index !== -1 && index !== this._internalState.focusedIndex) {
1414
- // Update internal state
1415
- this._internalState.focusedIndex = index;
1416
-
1417
- // Update tabindex values to reflect new focus
1418
- this._updateTabIndices(children, index);
1419
- }
1420
- };
1421
-
1422
- /**
1423
- * Get all child Button-VerticalList-Item elements.
1424
- *
1425
- * @returns Array of child elements
1426
- */
1427
- private _getChildItems(): HTMLElement[] {
1428
- const slot = this._shadowRoot.querySelector('slot');
1429
- if (!slot) return [];
1430
-
1431
- return slot.assignedElements().filter(
1432
- el => el.tagName.toLowerCase() === 'button-vertical-list-item'
1433
- ) as HTMLElement[];
1434
- }
1435
- }
1436
-
1437
- // Register custom element
1438
- // Uses conditional check for idempotent registration
1439
- if (typeof customElements !== 'undefined' && !customElements.get('button-vertical-list-set')) {
1440
- customElements.define('button-vertical-list-set', ButtonVerticalListSet);
1441
- }
1442
-
1443
- /**
1444
- * Default export for convenience.
1445
- */
1446
- export default ButtonVerticalListSet;