@3fn/core 14.0.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1442) 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 +5 -14
  4. package/.kiro/steering/DesignerPunk-Systems-Overview.md +3 -3
  5. package/.kiro/steering/Spec-Feedback-Protocol.md +2 -11
  6. package/.kiro/steering/Task-Completion-Protocol.md +17 -16
  7. package/.kiro/steering/start-up-tasks.md +15 -7
  8. package/CHANGELOG.md +74 -0
  9. package/README.md +26 -21
  10. package/application-mcp-server/src/__tests__/consumerRootLiveReindex.test.ts +118 -0
  11. package/application-mcp-server/src/__tests__/errorCatalogWiring.test.ts +73 -0
  12. package/application-mcp-server/src/__tests__/mcpDataRootsDeclaration.test.ts +107 -0
  13. package/application-mcp-server/src/__tests__/tool-boundary.contract.test.ts +55 -0
  14. package/application-mcp-server/src/index.ts +249 -59
  15. package/application-mcp-server/src/indexer/ComponentIndexer.ts +273 -46
  16. package/application-mcp-server/src/indexer/ModeClassifier.ts +23 -16
  17. package/application-mcp-server/src/indexer/SemanticOverrideReader.ts +113 -0
  18. package/application-mcp-server/src/indexer/TokenIndexer.ts +195 -3
  19. package/application-mcp-server/src/indexer/__tests__/MultiRootIndexing.test.ts +134 -0
  20. package/application-mcp-server/src/indexer/__tests__/ThemeResolution.test.ts +241 -0
  21. package/application-mcp-server/src/indexer/__tests__/ThemeRootFollowsIndex.test.ts +216 -0
  22. package/application-mcp-server/src/indexer/__tests__/fixtures/consumerFixture.ts +84 -0
  23. package/application-mcp-server/src/indexer/resolveThemeTierRoot.ts +61 -0
  24. package/application-mcp-server/src/watcher/FileWatcher.ts +20 -7
  25. package/dist/ComponentTokens.android.kt +12 -12
  26. package/dist/ComponentTokens.ios.swift +12 -12
  27. package/dist/ComponentTokens.web.css +3 -3
  28. package/dist/DesignTokens.android.kt +1 -5
  29. package/dist/DesignTokens.dtcg.json +388 -122
  30. package/dist/DesignTokens.figma.json +281 -941
  31. package/dist/DesignTokens.ios.swift +1 -5
  32. package/dist/DesignTokens.web.css +5 -5
  33. package/dist/browser/designerpunk.esm.js +174 -103
  34. package/dist/browser/designerpunk.esm.min.js +58 -55
  35. package/dist/browser/designerpunk.umd.js +174 -103
  36. package/dist/browser/designerpunk.umd.min.js +58 -55
  37. package/dist/browser/tokens.css +7 -7
  38. package/dist/build/platforms/AndroidMotionTokenFormatter.d.ts +101 -0
  39. package/dist/build/platforms/AndroidMotionTokenFormatter.js +220 -0
  40. package/dist/build/platforms/WebMotionTokenFormatter.d.ts +85 -0
  41. package/dist/build/platforms/WebMotionTokenFormatter.js +167 -0
  42. package/dist/build/platforms/iOSMotionTokenFormatter.d.ts +99 -0
  43. package/dist/build/platforms/iOSMotionTokenFormatter.js +221 -0
  44. package/dist/build/tokens/defineComponentTokens.d.ts +10 -0
  45. package/dist/build/tokens/defineComponentTokens.js +26 -0
  46. package/dist/build/validation/index.d.ts +0 -4
  47. package/dist/build/validation/index.js +1 -8
  48. package/dist/cli/attach.d.ts +153 -0
  49. package/dist/cli/attach.js +423 -0
  50. package/dist/cli/designerpunk.d.ts +46 -0
  51. package/dist/cli/designerpunk.js +171 -34
  52. package/dist/cli/figma-extract.js +10 -1
  53. package/dist/cli/figma-push.js +11 -2
  54. package/dist/cli/init.d.ts +36 -5
  55. package/dist/cli/init.js +348 -143
  56. package/dist/cli/loadComponentTokens.d.ts +25 -0
  57. package/dist/cli/loadComponentTokens.js +87 -8
  58. package/dist/cli/shared/bornRepo.d.ts +50 -0
  59. package/dist/cli/shared/bornRepo.js +199 -0
  60. package/dist/cli/shared/errorCatalog.d.ts +130 -0
  61. package/dist/cli/shared/errorCatalog.js +148 -0
  62. package/dist/cli/shared/mcpConfig/cc.d.ts +25 -0
  63. package/dist/cli/shared/mcpConfig/cc.js +156 -0
  64. package/dist/cli/shared/mcpConfig/kiro.d.ts +53 -0
  65. package/dist/cli/shared/mcpConfig/kiro.js +140 -0
  66. package/dist/cli/shared/mcpDataRoots.d.ts +88 -1
  67. package/dist/cli/shared/mcpDataRoots.js +76 -2
  68. package/dist/cli/shared/transforms.d.ts +64 -0
  69. package/dist/cli/shared/transforms.js +138 -0
  70. package/dist/cli/shared/vocabulary.d.ts +50 -0
  71. package/dist/cli/shared/vocabulary.js +62 -0
  72. package/dist/cli/sync/Applier.d.ts +25 -26
  73. package/dist/cli/sync/Applier.js +37 -73
  74. package/dist/cli/sync/Classifier.d.ts +70 -6
  75. package/dist/cli/sync/Classifier.js +123 -84
  76. package/dist/cli/sync/FileScanner.d.ts +19 -10
  77. package/dist/cli/sync/FileScanner.js +33 -25
  78. package/dist/cli/sync/KeyGrain.d.ts +106 -0
  79. package/dist/cli/sync/KeyGrain.js +301 -0
  80. package/dist/cli/sync/Manifest.d.ts +147 -12
  81. package/dist/cli/sync/Manifest.js +276 -21
  82. package/dist/cli/sync/Migration.d.ts +271 -0
  83. package/dist/cli/sync/Migration.js +764 -0
  84. package/dist/cli/sync/NameContract.d.ts +169 -0
  85. package/dist/cli/sync/NameContract.js +246 -0
  86. package/dist/cli/sync/RegionGrain.d.ts +118 -0
  87. package/dist/cli/sync/RegionGrain.js +167 -0
  88. package/dist/cli/sync/Reporter.d.ts +33 -4
  89. package/dist/cli/sync/Reporter.js +112 -53
  90. package/dist/cli/sync/SteeringDirCheck.d.ts +32 -4
  91. package/dist/cli/sync/SteeringDirCheck.js +62 -14
  92. package/dist/cli/sync/index.d.ts +125 -6
  93. package/dist/cli/sync/index.js +716 -66
  94. package/dist/color/OklchValidator.d.ts +43 -3
  95. package/dist/color/OklchValidator.js +46 -8
  96. package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +21 -26
  97. package/dist/components/core/Avatar-Base/avatar.tokens.js +31 -34
  98. package/dist/components/core/Avatar-Base/index.d.ts +1 -1
  99. package/dist/components/core/Avatar-Base/index.js +2 -2
  100. package/dist/components/core/Button-CTA/Button-CTA.refs.d.ts +83 -0
  101. package/dist/components/core/Button-CTA/Button-CTA.refs.js +86 -0
  102. package/dist/components/core/Button-CTA/Button-CTA.tokens.d.ts +20 -10
  103. package/dist/components/core/Button-CTA/Button-CTA.tokens.js +21 -10
  104. package/dist/components/core/Button-CTA/index.d.ts +2 -2
  105. package/dist/components/core/Button-CTA/index.js +3 -3
  106. package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +28 -14
  107. package/dist/components/core/Button-Icon/buttonIcon.tokens.js +35 -20
  108. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.d.ts +11 -30
  109. package/dist/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.js +16 -49
  110. package/dist/components/core/Container-Base/Container-Base.refs.d.ts +181 -0
  111. package/dist/components/core/Container-Base/Container-Base.refs.js +223 -0
  112. package/dist/components/core/Container-Base/index.d.ts +2 -2
  113. package/dist/components/core/Container-Base/index.js +10 -10
  114. package/dist/components/core/Container-Base/platforms/web/ContainerBase.web.js +1 -1
  115. package/dist/components/core/Container-Base/platforms/web/token-mapping.d.ts +27 -9
  116. package/dist/components/core/Container-Base/platforms/web/token-mapping.js +50 -22
  117. package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.d.ts +149 -0
  118. package/dist/components/core/Container-Card-Base/Container-Card-Base.refs.js +207 -0
  119. package/dist/components/core/Container-Card-Base/index.d.ts +1 -1
  120. package/dist/components/core/Container-Card-Base/index.js +19 -19
  121. package/dist/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.js +7 -6
  122. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.d.ts +15 -0
  123. package/dist/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.js +41 -1
  124. package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.d.ts +331 -0
  125. package/dist/components/core/Input-Text-Base/Input-Text-Base.refs.js +164 -0
  126. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.web.js +1 -1
  127. package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.d.ts +20 -0
  128. package/dist/components/core/Input-Text-Email/Input-Text-Email.refs.js +34 -0
  129. package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.d.ts +20 -0
  130. package/dist/components/core/Input-Text-Password/Input-Text-Password.refs.js +34 -0
  131. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.d.ts +30 -0
  132. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +72 -3
  133. package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.d.ts +20 -0
  134. package/dist/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.refs.js +34 -0
  135. package/dist/consumer-canonical/agents/ada.md +331 -0
  136. package/dist/consumer-canonical/agents/data.md +429 -0
  137. package/dist/consumer-canonical/agents/kenya.md +400 -0
  138. package/dist/consumer-canonical/agents/leonardo.md +524 -0
  139. package/dist/consumer-canonical/agents/lina.md +501 -0
  140. package/dist/consumer-canonical/agents/sparky.md +395 -0
  141. package/dist/consumer-canonical/agents/stacy.md +515 -0
  142. package/dist/consumer-canonical/agents/thurgood.md +463 -0
  143. package/dist/consumer-canonical/always-set/agent-directory.dispositions.yaml +21 -0
  144. package/dist/consumer-canonical/always-set/agent-directory.overlay.md +51 -0
  145. package/dist/consumer-canonical/always-set/ai-collaboration-principles.dispositions.yaml +15 -0
  146. package/dist/consumer-canonical/always-set/ai-collaboration-principles.overlay.md +26 -0
  147. package/dist/consumer-canonical/always-set/civitas-system-overview.dispositions.yaml +15 -0
  148. package/dist/consumer-canonical/always-set/civitas-system-overview.overlay.md +70 -0
  149. package/dist/consumer-canonical/always-set/core-goals.dispositions.yaml +9 -0
  150. package/dist/consumer-canonical/always-set/core-goals.overlay.md +74 -0
  151. package/dist/consumer-canonical/always-set/designerpunk-systems-overview.dispositions.yaml +16 -0
  152. package/dist/consumer-canonical/always-set/designerpunk-systems-overview.overlay.md +44 -0
  153. package/dist/consumer-canonical/always-set/spec-feedback-protocol.dispositions.yaml +21 -0
  154. package/dist/consumer-canonical/always-set/spec-feedback-protocol.overlay.md +44 -0
  155. package/dist/consumer-canonical/always-set/start-up-tasks.dispositions.yaml +15 -0
  156. package/dist/consumer-canonical/always-set/start-up-tasks.overlay.md +25 -0
  157. package/dist/consumer-canonical/always-set/task-completion-protocol.dispositions.yaml +19 -0
  158. package/dist/consumer-canonical/always-set/task-completion-protocol.overlay.md +116 -0
  159. package/dist/consumer-canonical/consumer-profile.yaml +9 -0
  160. package/dist/consumer-canonical/shared/always-set.yaml +113 -0
  161. package/dist/consumer-canonical/shared/field-dispositions.yaml +85 -0
  162. package/dist/consumer-canonical/shared/shared-catalog.yaml +19 -0
  163. package/dist/consumer-canonical/shared/skills-map.yaml +33 -0
  164. package/dist/consumer-canonical/skills/adaptive/SKILL.md +301 -0
  165. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
  166. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
  167. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
  168. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
  169. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +238 -0
  170. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
  171. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
  172. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +168 -0
  173. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +329 -0
  174. package/dist/consumer-canonical/skills/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
  175. package/dist/consumer-canonical/skills/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  176. package/dist/consumer-canonical/skills/edge-to-edge/SKILL.md +426 -0
  177. package/dist/consumer-canonical/skills/impeccable/SKILL.md +237 -0
  178. package/dist/consumer-canonical/skills/impeccable/detector-exclusions.md +42 -0
  179. package/dist/consumer-canonical/skills/impeccable/reference/adapt.md +190 -0
  180. package/dist/consumer-canonical/skills/impeccable/reference/animate.md +194 -0
  181. package/dist/consumer-canonical/skills/impeccable/reference/audit.md +150 -0
  182. package/dist/consumer-canonical/skills/impeccable/reference/bolder.md +113 -0
  183. package/dist/consumer-canonical/skills/impeccable/reference/brand-dp.md +103 -0
  184. package/dist/consumer-canonical/skills/impeccable/reference/clarify.md +174 -0
  185. package/dist/consumer-canonical/skills/impeccable/reference/codex.md +105 -0
  186. package/dist/consumer-canonical/skills/impeccable/reference/cognitive-load.md +106 -0
  187. package/dist/consumer-canonical/skills/impeccable/reference/color-and-contrast.md +122 -0
  188. package/dist/consumer-canonical/skills/impeccable/reference/colorize.md +155 -0
  189. package/dist/consumer-canonical/skills/impeccable/reference/craft.md +123 -0
  190. package/dist/consumer-canonical/skills/impeccable/reference/critique.md +245 -0
  191. package/dist/consumer-canonical/skills/impeccable/reference/delight.md +302 -0
  192. package/dist/consumer-canonical/skills/impeccable/reference/distill.md +111 -0
  193. package/dist/consumer-canonical/skills/impeccable/reference/extract-dp.md +43 -0
  194. package/dist/consumer-canonical/skills/impeccable/reference/harden.md +347 -0
  195. package/dist/consumer-canonical/skills/impeccable/reference/heuristics-scoring.md +234 -0
  196. package/dist/consumer-canonical/skills/impeccable/reference/interaction-design.md +195 -0
  197. package/dist/consumer-canonical/skills/impeccable/reference/layout.md +141 -0
  198. package/dist/consumer-canonical/skills/impeccable/reference/live.md +622 -0
  199. package/dist/consumer-canonical/skills/impeccable/reference/motion-design.md +109 -0
  200. package/dist/consumer-canonical/skills/impeccable/reference/onboard.md +234 -0
  201. package/dist/consumer-canonical/skills/impeccable/reference/optimize.md +258 -0
  202. package/dist/consumer-canonical/skills/impeccable/reference/overdrive.md +130 -0
  203. package/dist/consumer-canonical/skills/impeccable/reference/personas.md +179 -0
  204. package/dist/consumer-canonical/skills/impeccable/reference/polish.md +242 -0
  205. package/dist/consumer-canonical/skills/impeccable/reference/product-dp.md +79 -0
  206. package/dist/consumer-canonical/skills/impeccable/reference/quieter.md +99 -0
  207. package/dist/consumer-canonical/skills/impeccable/reference/responsive-design.md +114 -0
  208. package/dist/consumer-canonical/skills/impeccable/reference/shape.md +165 -0
  209. package/dist/consumer-canonical/skills/impeccable/reference/spatial-design.md +100 -0
  210. package/dist/consumer-canonical/skills/impeccable/reference/typeset.md +126 -0
  211. package/dist/consumer-canonical/skills/impeccable/reference/typography.md +159 -0
  212. package/dist/consumer-canonical/skills/impeccable/reference/ux-writing.md +107 -0
  213. package/dist/consumer-canonical/skills/impeccable/scripts/detect.mjs +21 -0
  214. package/dist/consumer-canonical/skills/impeccable/scripts/detector/browser/injected/index.mjs +1725 -0
  215. package/dist/consumer-canonical/skills/impeccable/scripts/detector/cli/main.mjs +244 -0
  216. package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4567 -0
  217. package/dist/consumer-canonical/skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
  218. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
  219. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +535 -0
  220. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +986 -0
  221. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
  222. package/dist/consumer-canonical/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  223. package/dist/consumer-canonical/skills/impeccable/scripts/detector/findings.mjs +12 -0
  224. package/dist/consumer-canonical/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
  225. package/dist/consumer-canonical/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  226. package/dist/consumer-canonical/skills/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
  227. package/dist/consumer-canonical/skills/impeccable/scripts/detector/rules/checks.mjs +2316 -0
  228. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/color.mjs +156 -0
  229. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
  230. package/dist/consumer-canonical/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  231. package/dist/consumer-canonical/skills/navigation-3/SKILL.md +110 -0
  232. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/index.md +38 -0
  233. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +498 -0
  234. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
  235. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
  236. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
  237. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
  238. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
  239. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
  240. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
  241. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-advanced.md +155 -0
  242. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-basic.md +744 -0
  243. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
  244. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  245. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
  246. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
  247. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
  248. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +436 -0
  249. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
  250. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +272 -0
  251. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
  252. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
  253. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
  254. package/dist/consumer-canonical/skills/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
  255. package/dist/consumer-canonical/skills/theming-styles/SKILL.md +220 -0
  256. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
  257. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/fundamentals.md +420 -0
  258. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
  259. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
  260. package/dist/consumer-canonical/skills/theming-styles/references/android/develop/ui/compose/styles/theming.md +257 -0
  261. package/dist/generator/consumer-entry.js +5939 -0
  262. package/dist/generators/DTCGFormatGenerator.d.ts +14 -4
  263. package/dist/generators/DTCGFormatGenerator.js +35 -18
  264. package/dist/generators/TokenFileGenerator.js +20 -15
  265. package/dist/generators/generateTokenIndex.d.ts +14 -0
  266. package/dist/generators/generateTokenIndex.js +23 -0
  267. package/dist/generators/transformers/FigmaTransformer.d.ts +35 -0
  268. package/dist/generators/transformers/FigmaTransformer.js +101 -13
  269. package/dist/generators/types/DTCGTypes.d.ts +10 -0
  270. package/dist/mcp/application-mcp.js +1062 -261
  271. package/dist/mcp/docs-mcp.js +93 -13
  272. package/dist/mcp/product-mcp.js +539 -41
  273. package/dist/mcp/tool-manifest.json +184 -0
  274. package/dist/name-contract.json +4283 -0
  275. package/dist/tokens/BlurTokens.d.ts +3 -1
  276. package/dist/tokens/BlurTokens.js +6 -4
  277. package/dist/tokens/ShadowOffsetTokens.js +14 -14
  278. package/dist/tokens/SizingTokens.js +3 -3
  279. package/dist/tokens/TapAreaTokens.d.ts +13 -2
  280. package/dist/tokens/TapAreaTokens.js +19 -8
  281. package/dist/tokens/component/progress.d.ts +65 -5
  282. package/dist/tokens/component/progress.js +79 -18
  283. package/dist/tokens/semantic/ColorTokens.js +50 -5
  284. package/dist/tokens/semantic/TypographyTokens.js +10 -10
  285. package/dist/tokens/themes/dark/SemanticOverrides.js +21 -4
  286. package/dist/tools/integrity/Invariants.d.ts +23 -8
  287. package/dist/tools/integrity/Invariants.js +27 -8
  288. package/dist/tools/integrity/cli/run-audit.js +1 -1
  289. package/dist/types/PrimitiveToken.d.ts +15 -1
  290. package/dist/types/generated/TokenTypes.d.ts +1 -1
  291. package/dist/types/generated/TokenTypes.js +1 -1
  292. package/dist/types/index.d.ts +1 -0
  293. package/governance/AI-Collaboration-Framework.md +19 -10
  294. package/governance/BUILD-SYSTEM-SETUP.md +1 -2
  295. package/governance/Component-Development-Guide.md +1 -1
  296. package/governance/Component-Development-Standards.md +19 -18
  297. package/governance/Component-Family-Avatar.md +6 -6
  298. package/governance/Component-Family-Badge.md +19 -19
  299. package/governance/Component-Family-Button.md +26 -26
  300. package/governance/Component-Family-Chip.md +14 -14
  301. package/governance/Component-Family-Container.md +12 -12
  302. package/governance/Component-Family-Form-Inputs.md +61 -61
  303. package/governance/Component-Family-Icon.md +8 -8
  304. package/governance/Component-Family-Navigation.md +3 -3
  305. package/governance/Component-Inheritance-Structures.md +29 -28
  306. package/governance/Component-Readiness-Status.md +6 -7
  307. package/governance/Component-Templates.md +26 -26
  308. package/governance/Contract-System-Reference.md +1 -1
  309. package/governance/DTCG-Integration-Guide.md +63 -36
  310. package/governance/DesignerPunk-Integration-Guide.md +57 -61
  311. package/governance/Figma-Workflow-Guide.md +15 -8
  312. package/governance/Process-Development-Workflow.md +4 -4
  313. package/governance/Process-File-Organization.md +1 -4
  314. package/governance/Process-Hook-Operations.md +6 -7
  315. package/governance/Process-Integration-Methodology.md +5 -5
  316. package/governance/Process-Spec-Planning.md +187 -68
  317. package/governance/Product-Handoff-Protocol.md +27 -2
  318. package/governance/Rosetta-System-Architecture.md +7 -5
  319. package/governance/Test-Behavioral-Contract-Validation.md +5 -0
  320. package/governance/Test-Development-Standards.md +4 -4
  321. package/governance/Token-Family-Accessibility.md +18 -14
  322. package/governance/Token-Family-Blend.md +5 -4
  323. package/governance/Token-Family-Blur.md +8 -8
  324. package/governance/Token-Family-Color.md +40 -22
  325. package/governance/Token-Family-Glow.md +26 -24
  326. package/governance/Token-Family-Layering.md +1 -0
  327. package/governance/Token-Family-Motion.md +22 -13
  328. package/governance/Token-Family-Opacity.md +20 -34
  329. package/governance/Token-Family-Radius.md +4 -2
  330. package/governance/Token-Family-Responsive.md +4 -4
  331. package/governance/Token-Family-Shadow.md +69 -46
  332. package/governance/Token-Family-Spacing.md +22 -12
  333. package/governance/Token-Family-Typography.md +86 -85
  334. package/governance/Token-Governance.md +5 -1
  335. package/governance/Token-Quick-Reference.md +97 -80
  336. package/governance/Transformer-Development-Guide.md +5 -4
  337. package/governance/Web-Authoring-Standards.md +1 -1
  338. package/governance/classification-map.md +706 -10
  339. package/governance/completion-documentation-guide.md +298 -33
  340. package/governance/platform-implementation-guidelines.md +3 -3
  341. package/governance/release-management-system.md +28 -63
  342. package/mcp-server/src/index.ts +16 -12
  343. package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +3 -3
  344. package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +70 -49
  345. package/mcp-server/src/tools/find-docs.ts +1 -0
  346. package/mcp-server/src/tools/get-document-full.ts +1 -0
  347. package/mcp-server/src/tools/get-document-summary.ts +1 -0
  348. package/mcp-server/src/tools/get-index-health.ts +1 -0
  349. package/mcp-server/src/tools/get-section.ts +1 -0
  350. package/mcp-server/src/tools/list-cross-references.ts +1 -0
  351. package/mcp-server/src/tools/rebuild-index.ts +1 -0
  352. package/mcp-server/src/tools/validate-metadata.ts +1 -0
  353. package/package.json +76 -16
  354. package/src/build/tokens/defineComponentTokens.ts +43 -1
  355. package/src/cli/templates/mcp-config.json.template +15 -20
  356. package/src/components/core/Avatar-Base/platforms/android/AvatarPreview.kt +9 -2
  357. package/src/components/core/Container-Base/Container-Base.schema.yaml +9 -11
  358. package/src/components/core/Container-Base/platforms/android/ContainerBase.android.kt +5 -5
  359. package/src/components/core/Container-Base/platforms/ios/ContainerBase.ios.swift +5 -5
  360. package/src/components/core/Container-Card-Base/platforms/android/ContainerCardBase.android.kt +3 -3
  361. package/src/components/core/Container-Card-Base/platforms/ios/ContainerCardBase.ios.swift +2 -2
  362. package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
  363. package/src/components/core/Nav-Header-Base/component-meta.yaml +0 -1
  364. package/src/components/core/Nav-Header-Base/contracts.yaml +1 -1
  365. package/src/components/core/Nav-Header-Page/contracts.yaml +1 -1
  366. package/src/components/core/Nav-TabBar-Base/contracts.yaml +1 -1
  367. package/src/components/core/Progress-Bar-Base/contracts.yaml +1 -1
  368. package/src/tokens/BlurTokens.ts +6 -4
  369. package/src/tokens/ShadowOffsetTokens.ts +14 -14
  370. package/src/tokens/SizingTokens.ts +3 -3
  371. package/src/tokens/TapAreaTokens.ts +20 -8
  372. package/src/tokens/__tests__/BaselineGridAlignmentFlag.test.ts +116 -0
  373. package/src/tokens/__tests__/BlurTokens.test.ts +10 -2
  374. package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +5 -3
  375. package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +11 -11
  376. package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +22 -20
  377. package/src/tokens/__tests__/SemanticColorContrast.test.ts +339 -0
  378. package/src/tokens/__tests__/ShadowOffsetTokens.test.ts +8 -7
  379. package/src/tokens/__tests__/SizingTokens.test.ts +10 -2
  380. package/src/tokens/__tests__/TokenCategories.test.ts +1 -1
  381. package/src/tokens/__tests__/neutral-partition.test.ts +28 -0
  382. package/src/tokens/component/progress.ts +83 -21
  383. package/src/tokens/semantic/AccessibilityTokens.README.md +2 -2
  384. package/src/tokens/semantic/ColorTokens.ts +50 -5
  385. package/src/tokens/semantic/TypographyTokens.ts +10 -10
  386. package/src/tokens/semantic/__tests__/ColorTokens.test.ts +8 -4
  387. package/src/tokens/themes/dark/SemanticOverrides.ts +23 -4
  388. package/src/types/PrimitiveToken.ts +15 -1
  389. package/token-index/components.yaml +8 -8
  390. package/token-index/meta.json +3 -0
  391. package/token-index/semantics.yaml +21 -15
  392. package/.kiro/agents/ada-prompt.md +0 -213
  393. package/.kiro/agents/ada-prompt.md.attribution.json +0 -45
  394. package/.kiro/agents/ada.json +0 -72
  395. package/.kiro/agents/ada.json.attribution.json +0 -13
  396. package/.kiro/agents/data-prompt.md +0 -324
  397. package/.kiro/agents/data-prompt.md.attribution.json +0 -53
  398. package/.kiro/agents/data.json +0 -51
  399. package/.kiro/agents/data.json.attribution.json +0 -13
  400. package/.kiro/agents/kenya-prompt.md +0 -309
  401. package/.kiro/agents/kenya-prompt.md.attribution.json +0 -53
  402. package/.kiro/agents/kenya.json +0 -46
  403. package/.kiro/agents/kenya.json.attribution.json +0 -13
  404. package/.kiro/agents/leonardo-prompt.md +0 -359
  405. package/.kiro/agents/leonardo-prompt.md.attribution.json +0 -45
  406. package/.kiro/agents/leonardo.json +0 -47
  407. package/.kiro/agents/leonardo.json.attribution.json +0 -13
  408. package/.kiro/agents/lina-prompt.md +0 -344
  409. package/.kiro/agents/lina-prompt.md.attribution.json +0 -53
  410. package/.kiro/agents/lina.json +0 -64
  411. package/.kiro/agents/lina.json.attribution.json +0 -13
  412. package/.kiro/agents/sparky-prompt.md +0 -312
  413. package/.kiro/agents/sparky-prompt.md.attribution.json +0 -53
  414. package/.kiro/agents/sparky.json +0 -56
  415. package/.kiro/agents/sparky.json.attribution.json +0 -13
  416. package/.kiro/agents/stacy-prompt.md +0 -304
  417. package/.kiro/agents/stacy-prompt.md.attribution.json +0 -45
  418. package/.kiro/agents/stacy.json +0 -46
  419. package/.kiro/agents/stacy.json.attribution.json +0 -13
  420. package/.kiro/agents/thurgood-prompt.md +0 -363
  421. package/.kiro/agents/thurgood-prompt.md.attribution.json +0 -45
  422. package/.kiro/agents/thurgood.json +0 -47
  423. package/.kiro/agents/thurgood.json.attribution.json +0 -13
  424. package/.kiro/steering/personal-note.md +0 -35
  425. package/designerpunk.config.ts +0 -27
  426. package/dist/android/DesignTokens.android.kt +0 -695
  427. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.d.ts +0 -26
  428. package/dist/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.js +0 -224
  429. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.d.ts +0 -30
  430. package/dist/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.js +0 -254
  431. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.d.ts +0 -44
  432. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.js +0 -376
  433. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.d.ts +0 -38
  434. package/dist/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.js +0 -328
  435. package/dist/ios/DesignTokens.ios.swift +0 -697
  436. package/dist/web/DesignTokens.web.css +0 -929
  437. package/product-template/agents/README.md +0 -73
  438. package/product-template/agents/ada-prompt.md +0 -83
  439. package/product-template/agents/data-prompt.md +0 -74
  440. package/product-template/agents/kenya-prompt.md +0 -74
  441. package/product-template/agents/leonardo-prompt.md +0 -99
  442. package/product-template/agents/lina-prompt.md +0 -61
  443. package/product-template/agents/sparky-prompt.md +0 -66
  444. package/product-template/agents/stacy-prompt.md +0 -51
  445. package/product-template/agents/thurgood-prompt.md +0 -64
  446. package/src/TokenEngine.ts +0 -628
  447. package/src/__tests__/BuildSystemIntegration.test.ts +0 -485
  448. package/src/__tests__/ProductMCPIntegration.test.ts +0 -204
  449. package/src/__tests__/__mocks__/styleMock.js +0 -18
  450. package/src/__tests__/browser-distribution/build-error-handling.test.ts +0 -143
  451. package/src/__tests__/browser-distribution/bundle-loading.test.ts +0 -353
  452. package/src/__tests__/browser-distribution/bundler-resolution.test.ts +0 -223
  453. package/src/__tests__/browser-distribution/component-registration.test.ts +0 -217
  454. package/src/__tests__/browser-distribution/css-bundling.test.ts +0 -233
  455. package/src/__tests__/browser-distribution/demo-system.test.ts +0 -588
  456. package/src/__tests__/browser-distribution/mcp-format-compliance.property.test.ts +0 -379
  457. package/src/__tests__/browser-distribution/mcp-queryability.test.ts +0 -342
  458. package/src/__tests__/browser-distribution/minification-effectiveness.property.test.ts +0 -188
  459. package/src/__tests__/browser-distribution/registration-idempotency.property.test.ts +0 -372
  460. package/src/__tests__/browser-distribution/soft-ceiling-warning.test.ts +0 -161
  461. package/src/__tests__/browser-distribution/token-completeness.property.test.ts +0 -412
  462. package/src/__tests__/browser-distribution/token-loading.test.ts +0 -344
  463. package/src/__tests__/browser-distribution/umd-bundle-loading.test.ts +0 -169
  464. package/src/__tests__/console-allowlist.json +0 -14
  465. package/src/__tests__/console-fail-setup.ts +0 -169
  466. package/src/__tests__/examples/improved-test-example.test.ts +0 -120
  467. package/src/__tests__/expected-exports.json +0 -66
  468. package/src/__tests__/export-contracts.test.ts +0 -83
  469. package/src/__tests__/fixtures/acknowledged-differences.json +0 -127
  470. package/src/__tests__/fixtures/acknowledged-differences.schema.json +0 -113
  471. package/src/__tests__/fixtures/acknowledged-differences.types.ts +0 -230
  472. package/src/__tests__/fixtures/tokenFixtures.ts +0 -248
  473. package/src/__tests__/helpers/configModuleLoader.ts +0 -20
  474. package/src/__tests__/helpers/tsModuleLoader.ts +0 -24
  475. package/src/__tests__/helpers/web-component-test-utils.ts +0 -39
  476. package/src/__tests__/integration/BlendCrossPlatformConsistency.test.ts +0 -505
  477. package/src/__tests__/integration/BuildSystemCompatibility.test.ts +0 -551
  478. package/src/__tests__/integration/CrossPlatformConsistency.test.ts +0 -855
  479. package/src/__tests__/integration/EndToEndWorkflow.test.ts +0 -601
  480. package/src/__tests__/integration/ErrorHandling.test.ts +0 -459
  481. package/src/__tests__/integration/OpacityPlatformTranslation.test.ts +0 -364
  482. package/src/__tests__/integration/PerformanceValidation.test.ts +0 -887
  483. package/src/__tests__/integration/SemanticTokenGeneration.test.ts +0 -451
  484. package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +0 -139
  485. package/src/__tests__/integration/TokenSystemIntegration.test.ts +0 -890
  486. package/src/__tests__/integration/ValidationPipeline.test.ts +0 -404
  487. package/src/__tests__/package-drift-validation.test.ts +0 -249
  488. package/src/__tests__/performance/GenerationPerformance.test.ts +0 -409
  489. package/src/__tests__/performance/OptimizationValidation.test.ts +0 -509
  490. package/src/__tests__/platform-parity/ProgressPlatformParity.test.ts +0 -546
  491. package/src/__tests__/spec073-opacity-architecture.test.ts +0 -344
  492. package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +0 -520
  493. package/src/__tests__/stemma-system/composition-compliance-validation.test.ts +0 -162
  494. package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +0 -184
  495. package/src/__tests__/stemma-system/contract-existence-validation.test.ts +0 -43
  496. package/src/__tests__/stemma-system/contract-test-reporter.ts +0 -269
  497. package/src/__tests__/stemma-system/cross-platform-consistency.test.ts +0 -564
  498. package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +0 -710
  499. package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +0 -298
  500. package/src/__tests__/stemma-system/mcp-component-integration.test.ts +0 -445
  501. package/src/analytics/PrimitiveTokenFallbackTracker.ts +0 -228
  502. package/src/analytics/SemanticTokenUsageTracker.ts +0 -193
  503. package/src/analytics/StrategicFlexibilityTracker.ts +0 -226
  504. package/src/analytics/TokenUsageTracker.ts +0 -177
  505. package/src/analytics/UsagePatternAnalyzer.ts +0 -177
  506. package/src/analytics/__tests__/UsageTracking.test.ts +0 -647
  507. package/src/analytics/index.ts +0 -42
  508. package/src/assets/fonts/__tests__/androidFontLoadingValidation.test.ts +0 -600
  509. package/src/assets/fonts/__tests__/fontLoading.test.ts +0 -341
  510. package/src/assets/fonts/__tests__/iosFontConfiguration.test.ts +0 -256
  511. package/src/assets/fonts/__tests__/iosFontLoadingValidation.test.ts +0 -465
  512. package/src/assets/fonts/inter/Inter-Bold.ttf +0 -0
  513. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  514. package/src/assets/fonts/inter/Inter-Medium.ttf +0 -0
  515. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  516. package/src/assets/fonts/inter/Inter-Regular.ttf +0 -0
  517. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  518. package/src/assets/fonts/inter/Inter-SemiBold.ttf +0 -0
  519. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  520. package/src/assets/fonts/inter/inter.css +0 -49
  521. package/src/blend/BlendCalculator.ts +0 -120
  522. package/src/blend/ColorSpaceUtils.ts +0 -325
  523. package/src/blend/OklchBlendCalculator.ts +0 -82
  524. package/src/blend/ThemeAwareBlendUtilities.web.ts +0 -323
  525. package/src/blend/__tests__/BlendCalculator.test.ts +0 -393
  526. package/src/blend/__tests__/BlendUtilities.property.test.ts +0 -600
  527. package/src/blend/__tests__/ColorSpaceUtils.test.ts +0 -885
  528. package/src/blend/__tests__/InteractionStateAudit.test.ts +0 -238
  529. package/src/blend/__tests__/OklchBlendCalculator.test.ts +0 -134
  530. package/src/blend/__tests__/ThemeAwareBlendUtilities.test.ts +0 -200
  531. package/src/blend/__tests__/ThemeSwitching.test.ts +0 -508
  532. package/src/blend/index.ts +0 -37
  533. package/src/browser-entry.ts +0 -270
  534. package/src/build/.gitkeep +0 -1
  535. package/src/build/BuildOrchestrator.ts +0 -663
  536. package/src/build/__tests__/AndroidBuildIntegration.test.ts +0 -437
  537. package/src/build/__tests__/AndroidMotionTokenGeneration.test.ts +0 -256
  538. package/src/build/__tests__/BuildOrchestrator.test.ts +0 -562
  539. package/src/build/__tests__/MotionTokenCrossPlatformIntegration.test.ts +0 -424
  540. package/src/build/__tests__/WebCSSTokenGeneration.test.ts +0 -271
  541. package/src/build/__tests__/WebMotionTokenGeneration.test.ts +0 -305
  542. package/src/build/__tests__/WebNPMPackageStructure.test.ts +0 -447
  543. package/src/build/__tests__/iOSMotionTokenGeneration.test.ts +0 -298
  544. package/src/build/errors/BuildError.ts +0 -140
  545. package/src/build/errors/ErrorDocumentation.ts +0 -638
  546. package/src/build/errors/ErrorHandler.ts +0 -406
  547. package/src/build/errors/ErrorReporter.ts +0 -573
  548. package/src/build/errors/PlatformGenerationError.ts +0 -201
  549. package/src/build/errors/README.md +0 -486
  550. package/src/build/errors/RecoveryStrategy.ts +0 -393
  551. package/src/build/errors/TokenGenerationError.ts +0 -196
  552. package/src/build/errors/TokenReferenceError.ts +0 -204
  553. package/src/build/errors/__tests__/BuildError.test.ts +0 -212
  554. package/src/build/errors/__tests__/ErrorDocumentation.example.ts +0 -272
  555. package/src/build/errors/__tests__/ErrorDocumentation.test.ts +0 -458
  556. package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +0 -303
  557. package/src/build/errors/__tests__/ErrorHandler.test.ts +0 -502
  558. package/src/build/errors/__tests__/ErrorReporter.test.ts +0 -581
  559. package/src/build/errors/__tests__/MotionTokenErrors.test.ts +0 -392
  560. package/src/build/errors/__tests__/RecoveryStrategy.test.ts +0 -643
  561. package/src/build/errors/index.ts +0 -90
  562. package/src/build/index.ts +0 -73
  563. package/src/build/orchestration/IncrementalBuilder.ts +0 -532
  564. package/src/build/orchestration/ParallelExecutor.ts +0 -336
  565. package/src/build/orchestration/ProgressTracker.ts +0 -582
  566. package/src/build/orchestration/SequentialExecutor.ts +0 -305
  567. package/src/build/orchestration/__tests__/IncrementalBuilder.test.ts +0 -354
  568. package/src/build/orchestration/__tests__/ParallelExecutor.integration.test.ts +0 -295
  569. package/src/build/orchestration/__tests__/ParallelExecutor.test.ts +0 -493
  570. package/src/build/orchestration/__tests__/ProgressTracker.test.ts +0 -529
  571. package/src/build/orchestration/__tests__/SequentialExecutor.integration.test.ts +0 -202
  572. package/src/build/orchestration/__tests__/SequentialExecutor.test.ts +0 -232
  573. package/src/build/orchestration/index.ts +0 -35
  574. package/src/build/platforms/.gitkeep +0 -1
  575. package/src/build/platforms/AndroidBuilder.ts +0 -1366
  576. package/src/build/platforms/AndroidShadowGenerator.ts +0 -394
  577. package/src/build/platforms/IOSShadowGenerator.ts +0 -324
  578. package/src/build/platforms/PlatformBuilder.ts +0 -131
  579. package/src/build/platforms/WebBuilder.ts +0 -1414
  580. package/src/build/platforms/WebShadowGenerator.ts +0 -288
  581. package/src/build/platforms/__tests__/AndroidBuilder.tokenGeneration.test.ts +0 -146
  582. package/src/build/platforms/__tests__/AndroidShadowGenerator.test.ts +0 -195
  583. package/src/build/platforms/__tests__/IOSShadowGenerator.test.ts +0 -156
  584. package/src/build/platforms/__tests__/WebShadowGenerator.test.ts +0 -123
  585. package/src/build/platforms/__tests__/iOSBuilder.test.ts +0 -1599
  586. package/src/build/platforms/iOSBuilder.ts +0 -1746
  587. package/src/build/platforms/index.ts +0 -9
  588. package/src/build/product/ProductTokenGenerator.ts +0 -162
  589. package/src/build/product/TokenIndexReader.ts +0 -78
  590. package/src/build/product/__tests__/KotlinEmitter.test.ts +0 -109
  591. package/src/build/product/__tests__/ProductTokenGenerator.test.ts +0 -135
  592. package/src/build/product/__tests__/SwiftEmitter.test.ts +0 -90
  593. package/src/build/product/__tests__/TokenIndexReader.test.ts +0 -85
  594. package/src/build/product/__tests__/WebEmitter.test.ts +0 -111
  595. package/src/build/product/__tests__/fixtures/tokens/layout.yaml +0 -21
  596. package/src/build/product/__tests__/fixtures/tokens/motion.yaml +0 -11
  597. package/src/build/product/__tests__/fixtures/tokens/visualization.yaml +0 -8
  598. package/src/build/product/emitters/KotlinEmitter.ts +0 -83
  599. package/src/build/product/emitters/SwiftEmitter.ts +0 -95
  600. package/src/build/product/emitters/WebEmitter.ts +0 -69
  601. package/src/build/tokens/.gitkeep +0 -1
  602. package/src/build/tokens/__tests__/ClassInvariantGuard.test.ts +0 -167
  603. package/src/build/tokens/__tests__/ComponentTokenGenerator.test.ts +0 -285
  604. package/src/build/tokens/__tests__/TokenIntegrator.test.ts +0 -319
  605. package/src/build/tokens/__tests__/TokenSelector.test.ts +0 -264
  606. package/src/build/tokens/__tests__/UnitConverter.applyScaleWithRounding.test.ts +0 -160
  607. package/src/build/tokens/__tests__/UnitConverter.test.ts +0 -331
  608. package/src/build/tokens/__tests__/brand-dual-instance.test.ts +0 -135
  609. package/src/build/tokens/__tests__/defineComponentTokens.test.ts +0 -440
  610. package/src/build/types/.gitkeep +0 -1
  611. package/src/build/types/BuildConfig.ts +0 -123
  612. package/src/build/types/BuildOrchestrator.ts +0 -114
  613. package/src/build/types/BuildResult.ts +0 -125
  614. package/src/build/types/index.ts +0 -39
  615. package/src/build/validation/.gitkeep +0 -1
  616. package/src/build/validation/AndroidBuildValidator.ts +0 -630
  617. package/src/build/validation/CrossPlatformValidationReporter.ts +0 -1267
  618. package/src/build/validation/InterfaceContractValidator.ts +0 -417
  619. package/src/build/validation/InterfaceValidator.ts +0 -326
  620. package/src/build/validation/MathematicalConsistencyValidator.ts +0 -874
  621. package/src/build/validation/MethodSignatureValidator.ts +0 -374
  622. package/src/build/validation/PropertyTypeValidator.ts +0 -312
  623. package/src/build/validation/TokenComparator.ts +0 -796
  624. package/src/build/validation/ValidationReporter.example.ts +0 -310
  625. package/src/build/validation/ValidationReporter.ts +0 -745
  626. package/src/build/validation/WebBuildValidator.ts +0 -583
  627. package/src/build/validation/__tests__/AndroidBuildValidator.test.ts +0 -522
  628. package/src/build/validation/__tests__/CrossPlatformValidationReporter.test.ts +0 -593
  629. package/src/build/validation/__tests__/InterfaceContractValidator.test.ts +0 -647
  630. package/src/build/validation/__tests__/InterfaceValidation.functional.test.ts +0 -360
  631. package/src/build/validation/__tests__/InterfaceValidator.test.ts +0 -318
  632. package/src/build/validation/__tests__/MethodSignatureValidator.test.ts +0 -625
  633. package/src/build/validation/__tests__/MotionTokenCrossPlatformValidation.test.ts +0 -305
  634. package/src/build/validation/__tests__/MotionTokenValidation.test.ts +0 -309
  635. package/src/build/validation/__tests__/PropertyTypeValidator.test.ts +0 -557
  636. package/src/build/validation/__tests__/TokenComparator.test.ts +0 -358
  637. package/src/build/validation/__tests__/ValidationReporter.integration.test.ts +0 -424
  638. package/src/build/validation/__tests__/ValidationReporter.test.ts +0 -793
  639. package/src/build/validation/__tests__/WebBuildValidator.test.ts +0 -495
  640. package/src/build/validation/iOSBuildValidator.ts +0 -783
  641. package/src/build/validation/index.ts +0 -74
  642. package/src/build/validation/types/InterfaceDefinition.ts +0 -101
  643. package/src/build/validation/types/ValidationResult.ts +0 -114
  644. package/src/build/workflow/BuildMode.ts +0 -336
  645. package/src/build/workflow/CICDIntegration.ts +0 -503
  646. package/src/build/workflow/ConfigHelpers.example.ts +0 -317
  647. package/src/build/workflow/ConfigHelpers.ts +0 -834
  648. package/src/build/workflow/README.md +0 -327
  649. package/src/build/workflow/SourceMapGenerator.ts +0 -362
  650. package/src/build/workflow/__tests__/BuildMode.test.ts +0 -544
  651. package/src/build/workflow/__tests__/CICDIntegration.test.ts +0 -602
  652. package/src/build/workflow/__tests__/ConfigHelpers.test.ts +0 -559
  653. package/src/build/workflow/__tests__/SourceMapGenerator.test.ts +0 -421
  654. package/src/build/workflow/index.ts +0 -42
  655. package/src/cli/__tests__/Applier.test.ts +0 -202
  656. package/src/cli/__tests__/Classifier.test.ts +0 -187
  657. package/src/cli/__tests__/FileScanner.test.ts +0 -108
  658. package/src/cli/__tests__/IgnoreFilter.test.ts +0 -92
  659. package/src/cli/__tests__/Manifest.test.ts +0 -107
  660. package/src/cli/__tests__/PackageResolver.test.ts +0 -66
  661. package/src/cli/__tests__/Prompter.test.ts +0 -165
  662. package/src/cli/__tests__/Reporter.test.ts +0 -128
  663. package/src/cli/__tests__/backward-compat.test.ts +0 -142
  664. package/src/cli/__tests__/figma-extract.test.ts +0 -342
  665. package/src/cli/__tests__/figma-push.test.ts +0 -350
  666. package/src/cli/__tests__/init.test.ts +0 -293
  667. package/src/cli/__tests__/loadComponentTokens.test.ts +0 -187
  668. package/src/cli/__tests__/pipeline-independence.test.ts +0 -127
  669. package/src/cli/__tests__/product-only.test.ts +0 -130
  670. package/src/cli/__tests__/resolveTokens.test.ts +0 -88
  671. package/src/cli/__tests__/staleness.test.ts +0 -132
  672. package/src/cli/__tests__/sync.test.ts +0 -199
  673. package/src/cli/__tests__/validate.test.ts +0 -69
  674. package/src/cli/designerpunk.ts +0 -410
  675. package/src/cli/figma-extract.ts +0 -331
  676. package/src/cli/figma-push.ts +0 -288
  677. package/src/cli/generateProductTokens.ts +0 -69
  678. package/src/cli/init.ts +0 -481
  679. package/src/cli/loadComponentTokens.ts +0 -145
  680. package/src/cli/resolveTokens.ts +0 -123
  681. package/src/cli/shared/mcpDataRoots.ts +0 -122
  682. package/src/cli/shared/resolvePackageRoot.ts +0 -58
  683. package/src/cli/shared/transforms.ts +0 -18
  684. package/src/cli/staleness.ts +0 -81
  685. package/src/cli/sync/Applier.ts +0 -128
  686. package/src/cli/sync/Classifier.ts +0 -130
  687. package/src/cli/sync/FileScanner.ts +0 -64
  688. package/src/cli/sync/IgnoreFilter.ts +0 -44
  689. package/src/cli/sync/Manifest.ts +0 -64
  690. package/src/cli/sync/PackageResolver.ts +0 -40
  691. package/src/cli/sync/Prompter.ts +0 -173
  692. package/src/cli/sync/Reporter.ts +0 -78
  693. package/src/cli/sync/SteeringDirCheck.ts +0 -166
  694. package/src/cli/sync/index.ts +0 -115
  695. package/src/cli/validate.ts +0 -135
  696. package/src/cli/validateProductTokens.ts +0 -55
  697. package/src/color/OklchConverter.ts +0 -284
  698. package/src/color/OklchValidator.ts +0 -186
  699. package/src/color/__tests__/OklchConverter.test.ts +0 -232
  700. package/src/color/__tests__/OklchRegression.test.ts +0 -101
  701. package/src/color/__tests__/OklchValidator.test.ts +0 -199
  702. package/src/color/__tests__/WcagContrast.test.ts +0 -76
  703. package/src/components/__tests__/BlendTokenUsageValidation.test.ts +0 -726
  704. package/src/components/__tests__/DynamicImportGuard.test.ts +0 -226
  705. package/src/components/__tests__/ExtensionLintPolicy.test.ts +0 -113
  706. package/src/components/__tests__/TokenCompliance.test.ts +0 -921
  707. package/src/components/__tests__/colorInheritanceValidation.test.ts +0 -267
  708. package/src/components/__tests__/componentTypographyInheritance.test.ts +0 -326
  709. package/src/components/core/Avatar-Base/README.md +0 -366
  710. package/src/components/core/Avatar-Base/__tests__/.gitkeep +0 -3
  711. package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +0 -597
  712. package/src/components/core/Avatar-Base/__tests__/Avatar.icon-integration.test.ts +0 -656
  713. package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +0 -396
  714. package/src/components/core/Avatar-Base/__tests__/Avatar.lifecycle.test.ts +0 -545
  715. package/src/components/core/Avatar-Base/__tests__/Avatar.rendering.test.ts +0 -505
  716. package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +0 -701
  717. package/src/components/core/Avatar-Base/avatar.tokens.ts +0 -376
  718. package/src/components/core/Avatar-Base/index.ts +0 -25
  719. package/src/components/core/Avatar-Base/platforms/ios/.gitkeep +0 -3
  720. package/src/components/core/Avatar-Base/platforms/web/.gitkeep +0 -3
  721. package/src/components/core/Avatar-Base/platforms/web/Avatar.styles.css +0 -595
  722. package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +0 -892
  723. package/src/components/core/Avatar-Base/platforms/web/hexagon-clip.svg +0 -87
  724. package/src/components/core/Avatar-Base/tokens/.gitkeep +0 -4
  725. package/src/components/core/Avatar-Base/types.ts +0 -86
  726. package/src/components/core/Badge-Count-Base/README.md +0 -323
  727. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.stemma.test.ts +0 -548
  728. package/src/components/core/Badge-Count-Base/__tests__/BadgeCountBase.test.ts +0 -452
  729. package/src/components/core/Badge-Count-Base/__tests__/test-utils.ts +0 -244
  730. package/src/components/core/Badge-Count-Base/index.ts +0 -37
  731. package/src/components/core/Badge-Count-Base/platforms/ios/.gitkeep +0 -1
  732. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.styles.css +0 -148
  733. package/src/components/core/Badge-Count-Base/platforms/web/BadgeCountBase.web.ts +0 -363
  734. package/src/components/core/Badge-Count-Base/types.ts +0 -150
  735. package/src/components/core/Badge-Count-Notification/README.md +0 -396
  736. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.stemma.test.ts +0 -571
  737. package/src/components/core/Badge-Count-Notification/__tests__/BadgeCountNotification.test.ts +0 -490
  738. package/src/components/core/Badge-Count-Notification/__tests__/test-utils.ts +0 -256
  739. package/src/components/core/Badge-Count-Notification/index.ts +0 -60
  740. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.styles.css +0 -182
  741. package/src/components/core/Badge-Count-Notification/platforms/web/BadgeCountNotification.web.ts +0 -401
  742. package/src/components/core/Badge-Count-Notification/tokens.ts +0 -124
  743. package/src/components/core/Badge-Count-Notification/types.ts +0 -119
  744. package/src/components/core/Badge-Label-Base/README.md +0 -251
  745. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.stemma.test.ts +0 -549
  746. package/src/components/core/Badge-Label-Base/__tests__/BadgeLabelBase.test.ts +0 -439
  747. package/src/components/core/Badge-Label-Base/__tests__/test-utils.ts +0 -269
  748. package/src/components/core/Badge-Label-Base/__tests__/tokens.test.ts +0 -88
  749. package/src/components/core/Badge-Label-Base/index.ts +0 -41
  750. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.styles.css +0 -166
  751. package/src/components/core/Badge-Label-Base/platforms/web/BadgeLabelBase.web.ts +0 -340
  752. package/src/components/core/Badge-Label-Base/tokens.ts +0 -80
  753. package/src/components/core/Badge-Label-Base/types.ts +0 -148
  754. package/src/components/core/Button-CTA/Button-CTA.tokens.ts +0 -79
  755. package/src/components/core/Button-CTA/README.md +0 -293
  756. package/src/components/core/Button-CTA/__tests__/ButtonCTA.alignment.test.ts +0 -355
  757. package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +0 -698
  758. package/src/components/core/Button-CTA/__tests__/ButtonCTA.tokens.test.ts +0 -89
  759. package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -209
  760. package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -185
  761. package/src/components/core/Button-CTA/examples/BasicUsage.html +0 -133
  762. package/src/components/core/Button-CTA/examples/BasicUsage.tsx +0 -219
  763. package/src/components/core/Button-CTA/examples/Variants.html +0 -263
  764. package/src/components/core/Button-CTA/examples/WithIcon.html +0 -166
  765. package/src/components/core/Button-CTA/index.ts +0 -20
  766. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +0 -395
  767. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +0 -644
  768. package/src/components/core/Button-CTA/platforms/web/__tests__/ButtonCTA.icon-integration.test.ts +0 -476
  769. package/src/components/core/Button-CTA/types.ts +0 -239
  770. package/src/components/core/Button-Icon/README.md +0 -371
  771. package/src/components/core/Button-Icon/__tests__/ButtonIcon.alignment.test.ts +0 -358
  772. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties-8-13.test.ts +0 -953
  773. package/src/components/core/Button-Icon/__tests__/ButtonIcon.properties.test.ts +0 -920
  774. package/src/components/core/Button-Icon/__tests__/ButtonIcon.stemma.test.ts +0 -622
  775. package/src/components/core/Button-Icon/__tests__/ButtonIcon.unit.test.ts +0 -560
  776. package/src/components/core/Button-Icon/__tests__/setup.test.ts +0 -361
  777. package/src/components/core/Button-Icon/__tests__/test-utils.ts +0 -248
  778. package/src/components/core/Button-Icon/buttonIcon.tokens.ts +0 -202
  779. package/src/components/core/Button-Icon/platforms/web/.gitkeep +0 -4
  780. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.css +0 -600
  781. package/src/components/core/Button-Icon/platforms/web/ButtonIcon.web.ts +0 -625
  782. package/src/components/core/Button-Icon/types.ts +0 -186
  783. package/src/components/core/Button-VerticalList-Item/Button-VerticalList-Item.tokens.ts +0 -112
  784. package/src/components/core/Button-VerticalList-Item/README.md +0 -450
  785. package/src/components/core/Button-VerticalList-Item/__tests__/.gitkeep +0 -2
  786. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.alignment.test.ts +0 -271
  787. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.failLoudly.test.ts +0 -106
  788. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.integration.test.ts +0 -480
  789. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.properties.test.ts +0 -634
  790. package/src/components/core/Button-VerticalList-Item/__tests__/ButtonVerticalListItem.unit.test.ts +0 -746
  791. package/src/components/core/Button-VerticalList-Item/__tests__/rtlSupport.test.ts +0 -206
  792. package/src/components/core/Button-VerticalList-Item/__tests__/test-utils.ts +0 -297
  793. package/src/components/core/Button-VerticalList-Item/__tests__/visualStateMapping.test.ts +0 -419
  794. package/src/components/core/Button-VerticalList-Item/index.ts +0 -49
  795. package/src/components/core/Button-VerticalList-Item/platforms/android/VerticalListButtonItemTest.kt +0 -1109
  796. package/src/components/core/Button-VerticalList-Item/platforms/ios/.gitkeep +0 -2
  797. package/src/components/core/Button-VerticalList-Item/platforms/ios/VerticalListButtonItemTests.swift +0 -794
  798. package/src/components/core/Button-VerticalList-Item/platforms/web/.gitkeep +0 -2
  799. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.styles.css +0 -459
  800. package/src/components/core/Button-VerticalList-Item/platforms/web/ButtonVerticalListItem.web.ts +0 -1030
  801. package/src/components/core/Button-VerticalList-Item/platforms/web/visualStateMapping.ts +0 -411
  802. package/src/components/core/Button-VerticalList-Item/types.ts +0 -338
  803. package/src/components/core/Button-VerticalList-Set/README.md +0 -578
  804. package/src/components/core/Button-VerticalList-Set/__tests__/.gitkeep +0 -5
  805. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.integration.test.ts +0 -676
  806. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property.test.ts +0 -786
  807. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.property2.test.ts +0 -1109
  808. package/src/components/core/Button-VerticalList-Set/__tests__/ButtonVerticalListSet.unit.test.ts +0 -924
  809. package/src/components/core/Button-VerticalList-Set/__tests__/animationTiming.test.ts +0 -182
  810. package/src/components/core/Button-VerticalList-Set/__tests__/crossPlatformConsistency.test.ts +0 -685
  811. package/src/components/core/Button-VerticalList-Set/__tests__/deriveItemStates.test.ts +0 -179
  812. package/src/components/core/Button-VerticalList-Set/__tests__/validation.test.ts +0 -275
  813. package/src/components/core/Button-VerticalList-Set/index.ts +0 -32
  814. package/src/components/core/Button-VerticalList-Set/platforms/android/ButtonVerticalListSetTest.kt +0 -961
  815. package/src/components/core/Button-VerticalList-Set/platforms/ios/.gitkeep +0 -0
  816. package/src/components/core/Button-VerticalList-Set/platforms/ios/ButtonVerticalListSetTests.swift +0 -475
  817. package/src/components/core/Button-VerticalList-Set/platforms/web/.gitkeep +0 -4
  818. package/src/components/core/Button-VerticalList-Set/platforms/web/Button-VerticalList-Set.styles.css +0 -167
  819. package/src/components/core/Button-VerticalList-Set/platforms/web/ButtonVerticalListSet.web.ts +0 -1446
  820. package/src/components/core/Button-VerticalList-Set/types.ts +0 -788
  821. package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +0 -534
  822. package/src/components/core/Chip-Base/index.ts +0 -40
  823. package/src/components/core/Chip-Base/platforms/ios/.gitkeep +0 -3
  824. package/src/components/core/Chip-Base/platforms/web/.gitkeep +0 -5
  825. package/src/components/core/Chip-Base/platforms/web/ChipBase.styles.css +0 -280
  826. package/src/components/core/Chip-Base/platforms/web/ChipBase.web.ts +0 -480
  827. package/src/components/core/Chip-Base/types.ts +0 -189
  828. package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +0 -592
  829. package/src/components/core/Chip-Filter/index.ts +0 -34
  830. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.styles.css +0 -105
  831. package/src/components/core/Chip-Filter/platforms/web/ChipFilter.web.ts +0 -539
  832. package/src/components/core/Chip-Filter/types.ts +0 -47
  833. package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +0 -472
  834. package/src/components/core/Chip-Input/index.ts +0 -35
  835. package/src/components/core/Chip-Input/platforms/ios/.gitkeep +0 -3
  836. package/src/components/core/Chip-Input/platforms/web/ChipInput.styles.css +0 -99
  837. package/src/components/core/Chip-Input/platforms/web/ChipInput.web.ts +0 -485
  838. package/src/components/core/Chip-Input/types.ts +0 -35
  839. package/src/components/core/Container-Base/README.md +0 -450
  840. package/src/components/core/Container-Base/__tests__/ContainerBase.test.ts +0 -712
  841. package/src/components/core/Container-Base/index.ts +0 -47
  842. package/src/components/core/Container-Base/platforms/web/ContainerBase.web.ts +0 -405
  843. package/src/components/core/Container-Base/platforms/web/styles.css +0 -198
  844. package/src/components/core/Container-Base/platforms/web/token-mapping.ts +0 -573
  845. package/src/components/core/Container-Base/tokens.ts +0 -241
  846. package/src/components/core/Container-Base/types.ts +0 -307
  847. package/src/components/core/Container-Card-Base/README.md +0 -506
  848. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.composition.test.ts +0 -167
  849. package/src/components/core/Container-Card-Base/__tests__/ContainerCardBase.test.ts +0 -646
  850. package/src/components/core/Container-Card-Base/index.ts +0 -64
  851. package/src/components/core/Container-Card-Base/platforms/web/ContainerCardBase.web.ts +0 -373
  852. package/src/components/core/Container-Card-Base/tokens.ts +0 -224
  853. package/src/components/core/Container-Card-Base/types.ts +0 -332
  854. package/src/components/core/Icon-Base/README.md +0 -168
  855. package/src/components/core/Icon-Base/__tests__/IconBase.test.ts +0 -192
  856. package/src/components/core/Icon-Base/index.ts +0 -34
  857. package/src/components/core/Icon-Base/platforms/ios/ASSET_CATALOG_SETUP.md +0 -239
  858. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Contents.json +0 -6
  859. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/Contents.json +0 -9
  860. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/Contents.json +0 -15
  861. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/alert-circle.imageset/alert-circle.svg +0 -1
  862. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/Contents.json +0 -15
  863. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-down.imageset/arrow-down.svg +0 -1
  864. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/Contents.json +0 -15
  865. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-left.imageset/arrow-left.svg +0 -1
  866. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/Contents.json +0 -15
  867. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-right.imageset/arrow-right.svg +0 -1
  868. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/Contents.json +0 -15
  869. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/arrow-up.imageset/arrow-up.svg +0 -1
  870. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/Contents.json +0 -15
  871. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/award.imageset/award.svg +0 -1
  872. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/Contents.json +0 -15
  873. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/bell.imageset/bell.svg +0 -1
  874. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/Contents.json +0 -15
  875. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/briefcase.imageset/briefcase.svg +0 -1
  876. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/Contents.json +0 -15
  877. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/calendar.imageset/calendar.svg +0 -1
  878. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/Contents.json +0 -15
  879. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check-circle.imageset/check-circle.svg +0 -1
  880. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/Contents.json +0 -15
  881. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/check.imageset/check.svg +0 -1
  882. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/Contents.json +0 -15
  883. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-down.imageset/chevron-down.svg +0 -1
  884. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/Contents.json +0 -15
  885. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-left.imageset/chevron-left.svg +0 -1
  886. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/Contents.json +0 -15
  887. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/chevron-right.imageset/chevron-right.svg +0 -1
  888. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/Contents.json +0 -15
  889. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/circle.imageset/circle.svg +0 -1
  890. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/Contents.json +0 -15
  891. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/clock.imageset/clock.svg +0 -1
  892. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/Contents.json +0 -15
  893. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/credit-card.imageset/credit-card.svg +0 -1
  894. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/Contents.json +0 -15
  895. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/dollar-sign.imageset/dollar-sign.svg +0 -1
  896. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/Contents.json +0 -15
  897. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/external-link.imageset/external-link.svg +0 -1
  898. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/Contents.json +0 -15
  899. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye-off.imageset/eye-off.svg +0 -1
  900. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/Contents.json +0 -15
  901. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/eye.imageset/eye.svg +0 -1
  902. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/Contents.json +0 -15
  903. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/file-text.imageset/file-text.svg +0 -1
  904. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/Contents.json +0 -15
  905. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/filter.imageset/filter.svg +0 -1
  906. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/Contents.json +0 -15
  907. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/globe.imageset/globe.svg +0 -1
  908. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/Contents.json +0 -15
  909. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/heart.imageset/heart.svg +0 -1
  910. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/Contents.json +0 -15
  911. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/info.imageset/info.svg +0 -1
  912. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/Contents.json +0 -15
  913. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/mail.imageset/mail.svg +0 -1
  914. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/Contents.json +0 -15
  915. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/map-pin.imageset/map-pin.svg +0 -1
  916. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/Contents.json +0 -15
  917. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/minus.imageset/minus.svg +0 -1
  918. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/Contents.json +0 -15
  919. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-horizontal.imageset/more-horizontal.svg +0 -1
  920. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/Contents.json +0 -15
  921. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/more-vertical.imageset/more-vertical.svg +0 -1
  922. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/Contents.json +0 -15
  923. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/phone.imageset/phone.svg +0 -1
  924. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/Contents.json +0 -15
  925. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/plus.imageset/plus.svg +0 -1
  926. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/Contents.json +0 -15
  927. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/refresh-cw.imageset/refresh-cw.svg +0 -1
  928. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/Contents.json +0 -15
  929. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/save.imageset/save.svg +0 -1
  930. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/Contents.json +0 -15
  931. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/search.imageset/search.svg +0 -1
  932. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/Contents.json +0 -15
  933. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/settings.imageset/settings.svg +0 -1
  934. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/Contents.json +0 -15
  935. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share-2.imageset/share-2.svg +0 -1
  936. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/Contents.json +0 -15
  937. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/share.imageset/share.svg +0 -1
  938. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/Contents.json +0 -15
  939. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/shield.imageset/shield.svg +0 -1
  940. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/Contents.json +0 -15
  941. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smartphone.imageset/smartphone.svg +0 -1
  942. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/Contents.json +0 -15
  943. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/smile.imageset/smile.svg +0 -1
  944. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/Contents.json +0 -15
  945. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/star.imageset/star.svg +0 -1
  946. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/Contents.json +0 -15
  947. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/trending-up.imageset/trending-up.svg +0 -1
  948. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/Contents.json +0 -15
  949. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-check.imageset/user-check.svg +0 -1
  950. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/Contents.json +0 -15
  951. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user-x.imageset/user-x.svg +0 -1
  952. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/Contents.json +0 -15
  953. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/user.imageset/user.svg +0 -1
  954. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/Contents.json +0 -15
  955. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/users.imageset/users.svg +0 -1
  956. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/Contents.json +0 -15
  957. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/wifi.imageset/wifi.svg +0 -1
  958. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/Contents.json +0 -15
  959. package/src/components/core/Icon-Base/platforms/ios/Icons.xcassets/Icons/x.imageset/x.svg +0 -1
  960. package/src/components/core/Icon-Base/platforms/web/IconBase.web.ts +0 -553
  961. package/src/components/core/Icon-Base/platforms/web/assets/alert-circle.svg +0 -1
  962. package/src/components/core/Icon-Base/platforms/web/assets/arrow-down.svg +0 -1
  963. package/src/components/core/Icon-Base/platforms/web/assets/arrow-left.svg +0 -1
  964. package/src/components/core/Icon-Base/platforms/web/assets/arrow-right.svg +0 -1
  965. package/src/components/core/Icon-Base/platforms/web/assets/arrow-up.svg +0 -1
  966. package/src/components/core/Icon-Base/platforms/web/assets/award.svg +0 -1
  967. package/src/components/core/Icon-Base/platforms/web/assets/bell.svg +0 -1
  968. package/src/components/core/Icon-Base/platforms/web/assets/briefcase.svg +0 -1
  969. package/src/components/core/Icon-Base/platforms/web/assets/calendar.svg +0 -1
  970. package/src/components/core/Icon-Base/platforms/web/assets/check-circle.svg +0 -1
  971. package/src/components/core/Icon-Base/platforms/web/assets/check.svg +0 -1
  972. package/src/components/core/Icon-Base/platforms/web/assets/chevron-down.svg +0 -1
  973. package/src/components/core/Icon-Base/platforms/web/assets/chevron-left.svg +0 -1
  974. package/src/components/core/Icon-Base/platforms/web/assets/chevron-right.svg +0 -1
  975. package/src/components/core/Icon-Base/platforms/web/assets/circle.svg +0 -1
  976. package/src/components/core/Icon-Base/platforms/web/assets/clock.svg +0 -1
  977. package/src/components/core/Icon-Base/platforms/web/assets/credit-card.svg +0 -1
  978. package/src/components/core/Icon-Base/platforms/web/assets/dollar-sign.svg +0 -1
  979. package/src/components/core/Icon-Base/platforms/web/assets/external-link.svg +0 -1
  980. package/src/components/core/Icon-Base/platforms/web/assets/eye-off.svg +0 -1
  981. package/src/components/core/Icon-Base/platforms/web/assets/eye.svg +0 -1
  982. package/src/components/core/Icon-Base/platforms/web/assets/file-text.svg +0 -1
  983. package/src/components/core/Icon-Base/platforms/web/assets/filter.svg +0 -1
  984. package/src/components/core/Icon-Base/platforms/web/assets/globe.svg +0 -1
  985. package/src/components/core/Icon-Base/platforms/web/assets/heart.svg +0 -1
  986. package/src/components/core/Icon-Base/platforms/web/assets/info.svg +0 -1
  987. package/src/components/core/Icon-Base/platforms/web/assets/mail.svg +0 -1
  988. package/src/components/core/Icon-Base/platforms/web/assets/map-pin.svg +0 -1
  989. package/src/components/core/Icon-Base/platforms/web/assets/minus.svg +0 -1
  990. package/src/components/core/Icon-Base/platforms/web/assets/more-horizontal.svg +0 -1
  991. package/src/components/core/Icon-Base/platforms/web/assets/more-vertical.svg +0 -1
  992. package/src/components/core/Icon-Base/platforms/web/assets/phone.svg +0 -1
  993. package/src/components/core/Icon-Base/platforms/web/assets/plus.svg +0 -1
  994. package/src/components/core/Icon-Base/platforms/web/assets/refresh-cw.svg +0 -1
  995. package/src/components/core/Icon-Base/platforms/web/assets/save.svg +0 -1
  996. package/src/components/core/Icon-Base/platforms/web/assets/search.svg +0 -1
  997. package/src/components/core/Icon-Base/platforms/web/assets/settings.svg +0 -1
  998. package/src/components/core/Icon-Base/platforms/web/assets/share-2.svg +0 -1
  999. package/src/components/core/Icon-Base/platforms/web/assets/share.svg +0 -1
  1000. package/src/components/core/Icon-Base/platforms/web/assets/shield.svg +0 -1
  1001. package/src/components/core/Icon-Base/platforms/web/assets/smartphone.svg +0 -1
  1002. package/src/components/core/Icon-Base/platforms/web/assets/smile.svg +0 -1
  1003. package/src/components/core/Icon-Base/platforms/web/assets/star.svg +0 -1
  1004. package/src/components/core/Icon-Base/platforms/web/assets/trending-up.svg +0 -1
  1005. package/src/components/core/Icon-Base/platforms/web/assets/user-check.svg +0 -1
  1006. package/src/components/core/Icon-Base/platforms/web/assets/user-x.svg +0 -1
  1007. package/src/components/core/Icon-Base/platforms/web/assets/user.svg +0 -1
  1008. package/src/components/core/Icon-Base/platforms/web/assets/users.svg +0 -1
  1009. package/src/components/core/Icon-Base/platforms/web/assets/wifi.svg +0 -1
  1010. package/src/components/core/Icon-Base/platforms/web/assets/x.svg +0 -1
  1011. package/src/components/core/Icon-Base/platforms/web/styles.css +0 -203
  1012. package/src/components/core/Icon-Base/types.ts +0 -338
  1013. package/src/components/core/Input-Checkbox-Base/README.md +0 -390
  1014. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.stemma.test.ts +0 -552
  1015. package/src/components/core/Input-Checkbox-Base/__tests__/InputCheckboxBase.test.ts +0 -878
  1016. package/src/components/core/Input-Checkbox-Base/checkbox-sizing.tokens.ts +0 -37
  1017. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.css +0 -477
  1018. package/src/components/core/Input-Checkbox-Base/platforms/web/InputCheckboxBase.web.ts +0 -561
  1019. package/src/components/core/Input-Checkbox-Base/types.ts +0 -399
  1020. package/src/components/core/Input-Checkbox-Legal/README.md +0 -554
  1021. package/src/components/core/Input-Checkbox-Legal/__tests__/InputCheckboxLegal.test.ts +0 -727
  1022. package/src/components/core/Input-Checkbox-Legal/platforms/ios/.gitkeep +0 -2
  1023. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.css +0 -112
  1024. package/src/components/core/Input-Checkbox-Legal/platforms/web/InputCheckboxLegal.web.ts +0 -505
  1025. package/src/components/core/Input-Checkbox-Legal/types.ts +0 -348
  1026. package/src/components/core/Input-Radio-Base/.gitkeep +0 -2
  1027. package/src/components/core/Input-Radio-Base/README.md +0 -427
  1028. package/src/components/core/Input-Radio-Base/__tests__/.gitkeep +0 -1
  1029. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.form.test.ts +0 -299
  1030. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.stemma.test.ts +0 -543
  1031. package/src/components/core/Input-Radio-Base/__tests__/InputRadioBase.test.ts +0 -429
  1032. package/src/components/core/Input-Radio-Base/platforms/ios/.gitkeep +0 -1
  1033. package/src/components/core/Input-Radio-Base/platforms/web/.gitkeep +0 -1
  1034. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.css +0 -504
  1035. package/src/components/core/Input-Radio-Base/platforms/web/InputRadioBase.web.ts +0 -648
  1036. package/src/components/core/Input-Radio-Base/radio-sizing.tokens.ts +0 -37
  1037. package/src/components/core/Input-Radio-Base/types.ts +0 -362
  1038. package/src/components/core/Input-Radio-Set/README.md +0 -373
  1039. package/src/components/core/Input-Radio-Set/__tests__/.gitkeep +0 -0
  1040. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.stemma.test.ts +0 -493
  1041. package/src/components/core/Input-Radio-Set/__tests__/InputRadioSet.test.ts +0 -499
  1042. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.css +0 -99
  1043. package/src/components/core/Input-Radio-Set/platforms/web/InputRadioSet.web.ts +0 -790
  1044. package/src/components/core/Input-Radio-Set/types.ts +0 -301
  1045. package/src/components/core/Input-Text-Base/README.md +0 -258
  1046. package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +0 -311
  1047. package/src/components/core/Input-Text-Base/__tests__/keyboardNavigation.test.ts +0 -444
  1048. package/src/components/core/Input-Text-Base/__tests__/labelAssociation.test.ts +0 -418
  1049. package/src/components/core/Input-Text-Base/__tests__/screenReaderSupport.test.ts +0 -405
  1050. package/src/components/core/Input-Text-Base/__tests__/setup.ts +0 -17
  1051. package/src/components/core/Input-Text-Base/__tests__/stateManagement.test.ts +0 -718
  1052. package/src/components/core/Input-Text-Base/__tests__/test-utils.ts +0 -81
  1053. package/src/components/core/Input-Text-Base/__tests__/touchTargetSizing.test.ts +0 -319
  1054. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.browser.ts +0 -241
  1055. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.css +0 -293
  1056. package/src/components/core/Input-Text-Base/platforms/web/InputTextBase.web.ts +0 -448
  1057. package/src/components/core/Input-Text-Base/stateManagement.ts +0 -267
  1058. package/src/components/core/Input-Text-Base/tokens.ts +0 -210
  1059. package/src/components/core/Input-Text-Base/types.ts +0 -114
  1060. package/src/components/core/Input-Text-Email/README.md +0 -252
  1061. package/src/components/core/Input-Text-Email/__tests__/validation.test.ts +0 -127
  1062. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.browser.ts +0 -276
  1063. package/src/components/core/Input-Text-Email/platforms/web/InputTextEmail.web.ts +0 -319
  1064. package/src/components/core/Input-Text-Email/stateManagement.ts +0 -160
  1065. package/src/components/core/Input-Text-Email/tokens.ts +0 -33
  1066. package/src/components/core/Input-Text-Email/types.ts +0 -72
  1067. package/src/components/core/Input-Text-Email/validation.ts +0 -130
  1068. package/src/components/core/Input-Text-Password/README.md +0 -360
  1069. package/src/components/core/Input-Text-Password/__tests__/validation.test.ts +0 -362
  1070. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.browser.ts +0 -434
  1071. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +0 -512
  1072. package/src/components/core/Input-Text-Password/stateManagement.ts +0 -244
  1073. package/src/components/core/Input-Text-Password/tokens.ts +0 -32
  1074. package/src/components/core/Input-Text-Password/types.ts +0 -177
  1075. package/src/components/core/Input-Text-Password/validation.ts +0 -207
  1076. package/src/components/core/Input-Text-PhoneNumber/README.md +0 -276
  1077. package/src/components/core/Input-Text-PhoneNumber/__tests__/validation.test.ts +0 -301
  1078. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.browser.ts +0 -370
  1079. package/src/components/core/Input-Text-PhoneNumber/platforms/web/InputTextPhoneNumber.web.ts +0 -393
  1080. package/src/components/core/Input-Text-PhoneNumber/stateManagement.ts +0 -250
  1081. package/src/components/core/Input-Text-PhoneNumber/tokens.ts +0 -33
  1082. package/src/components/core/Input-Text-PhoneNumber/types.ts +0 -135
  1083. package/src/components/core/Input-Text-PhoneNumber/validation.ts +0 -302
  1084. package/src/components/core/Nav-Header-App/README.md +0 -29
  1085. package/src/components/core/Nav-Header-App/index.ts +0 -5
  1086. package/src/components/core/Nav-Header-App/platforms/web/NavHeaderApp.web.ts +0 -37
  1087. package/src/components/core/Nav-Header-App/types.ts +0 -32
  1088. package/src/components/core/Nav-Header-Base/README.md +0 -21
  1089. package/src/components/core/Nav-Header-Base/index.ts +0 -12
  1090. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.styles.css +0 -75
  1091. package/src/components/core/Nav-Header-Base/platforms/web/NavHeaderBase.web.ts +0 -120
  1092. package/src/components/core/Nav-Header-Base/types.ts +0 -63
  1093. package/src/components/core/Nav-Header-Page/README.md +0 -34
  1094. package/src/components/core/Nav-Header-Page/__tests__/NavHeaderPage.test.ts +0 -250
  1095. package/src/components/core/Nav-Header-Page/index.ts +0 -12
  1096. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.styles.css +0 -90
  1097. package/src/components/core/Nav-Header-Page/platforms/web/NavHeaderPage.web.ts +0 -169
  1098. package/src/components/core/Nav-Header-Page/types.ts +0 -55
  1099. package/src/components/core/Nav-SegmentedChoice-Base/README.md +0 -327
  1100. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.android.test.ts +0 -218
  1101. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.interaction.test.ts +0 -419
  1102. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.ios.test.ts +0 -207
  1103. package/src/components/core/Nav-SegmentedChoice-Base/__tests__/NavSegmentedChoiceBase.visual.test.ts +0 -371
  1104. package/src/components/core/Nav-SegmentedChoice-Base/index.ts +0 -38
  1105. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.styles.css +0 -160
  1106. package/src/components/core/Nav-SegmentedChoice-Base/platforms/web/NavSegmentedChoiceBase.web.ts +0 -477
  1107. package/src/components/core/Nav-SegmentedChoice-Base/types.ts +0 -65
  1108. package/src/components/core/Nav-TabBar-Base/README.md +0 -264
  1109. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.android.test.ts +0 -270
  1110. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.ios.test.ts +0 -221
  1111. package/src/components/core/Nav-TabBar-Base/__tests__/NavTabBarBase.test.ts +0 -421
  1112. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.html +0 -2
  1113. package/src/components/core/Nav-TabBar-Base/examples/BasicUsage.tsx +0 -2
  1114. package/src/components/core/Nav-TabBar-Base/index.ts +0 -20
  1115. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.styles.css +0 -281
  1116. package/src/components/core/Nav-TabBar-Base/platforms/web/NavTabBarBase.web.ts +0 -420
  1117. package/src/components/core/Nav-TabBar-Base/types.ts +0 -43
  1118. package/src/components/core/Progress-Bar-Base/README.md +0 -31
  1119. package/src/components/core/Progress-Bar-Base/__tests__/ProgressBarBase.test.ts +0 -202
  1120. package/src/components/core/Progress-Bar-Base/index.ts +0 -6
  1121. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.styles.css +0 -52
  1122. package/src/components/core/Progress-Bar-Base/platforms/web/ProgressBarBase.web.ts +0 -135
  1123. package/src/components/core/Progress-Bar-Base/types.ts +0 -46
  1124. package/src/components/core/Progress-Indicator-Connector-Base/README.md +0 -169
  1125. package/src/components/core/Progress-Indicator-Connector-Base/index.ts +0 -33
  1126. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.styles.css +0 -50
  1127. package/src/components/core/Progress-Indicator-Connector-Base/platforms/web/ProgressIndicatorConnectorBase.web.ts +0 -141
  1128. package/src/components/core/Progress-Indicator-Connector-Base/types.ts +0 -67
  1129. package/src/components/core/Progress-Indicator-Label-Base/README.md +0 -191
  1130. package/src/components/core/Progress-Indicator-Label-Base/index.ts +0 -28
  1131. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.styles.css +0 -81
  1132. package/src/components/core/Progress-Indicator-Label-Base/platforms/web/ProgressIndicatorLabelBase.web.ts +0 -174
  1133. package/src/components/core/Progress-Indicator-Label-Base/types.ts +0 -64
  1134. package/src/components/core/Progress-Indicator-Node-Base/README.md +0 -206
  1135. package/src/components/core/Progress-Indicator-Node-Base/__tests__/VisualStates.test.ts +0 -259
  1136. package/src/components/core/Progress-Indicator-Node-Base/index.ts +0 -36
  1137. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.styles.css +0 -193
  1138. package/src/components/core/Progress-Indicator-Node-Base/platforms/web/ProgressIndicatorNodeBase.web.ts +0 -226
  1139. package/src/components/core/Progress-Indicator-Node-Base/types.ts +0 -142
  1140. package/src/components/core/Progress-Pagination-Base/README.md +0 -290
  1141. package/src/components/core/Progress-Pagination-Base/__tests__/PaginationBase.test.ts +0 -290
  1142. package/src/components/core/Progress-Pagination-Base/index.ts +0 -40
  1143. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.styles.css +0 -80
  1144. package/src/components/core/Progress-Pagination-Base/platforms/web/ProgressPaginationBase.web.ts +0 -293
  1145. package/src/components/core/Progress-Pagination-Base/types.ts +0 -112
  1146. package/src/components/core/Progress-Stepper-Base/README.md +0 -311
  1147. package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +0 -345
  1148. package/src/components/core/Progress-Stepper-Base/index.ts +0 -43
  1149. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.styles.css +0 -49
  1150. package/src/components/core/Progress-Stepper-Base/platforms/web/ProgressStepperBase.web.ts +0 -288
  1151. package/src/components/core/Progress-Stepper-Base/types.ts +0 -175
  1152. package/src/components/core/Progress-Stepper-Detailed/README.md +0 -401
  1153. package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +0 -481
  1154. package/src/components/core/Progress-Stepper-Detailed/index.ts +0 -48
  1155. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.styles.css +0 -106
  1156. package/src/components/core/Progress-Stepper-Detailed/platforms/web/ProgressStepperDetailed.web.ts +0 -336
  1157. package/src/components/core/Progress-Stepper-Detailed/types.ts +0 -195
  1158. package/src/composition/BlendComposition.ts +0 -46
  1159. package/src/composition/BlendCompositionParser.ts +0 -215
  1160. package/src/composition/OpacityComposition.ts +0 -62
  1161. package/src/composition/OpacityCompositionParser.ts +0 -308
  1162. package/src/composition/__tests__/BlendCompositionParser.test.ts +0 -431
  1163. package/src/composition/__tests__/OpacityCompositionParser.test.ts +0 -539
  1164. package/src/composition/index.ts +0 -20
  1165. package/src/config/ConfigLoader.ts +0 -143
  1166. package/src/config/__resolution-matrix__/README.md +0 -76
  1167. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/compiled/defineConfig.js +0 -9
  1168. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/designerpunk.config.ts +0 -20
  1169. package/src/config/__resolution-matrix__/fixtures/faithful-cjs/my-overrides.ts +0 -8
  1170. package/src/config/__resolution-matrix__/fixtures/faithful-esm/compiled/defineConfig.js +0 -11
  1171. package/src/config/__resolution-matrix__/fixtures/faithful-esm/designerpunk.config.ts +0 -23
  1172. package/src/config/__resolution-matrix__/fixtures/faithful-esm/my-overrides.ts +0 -6
  1173. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/designerpunk.config.ts +0 -11
  1174. package/src/config/__resolution-matrix__/fixtures/source-dir-cjs/src/config/index.ts +0 -15
  1175. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/designerpunk.config.ts +0 -15
  1176. package/src/config/__resolution-matrix__/fixtures/source-dir-esm/src/config/index.ts +0 -13
  1177. package/src/config/__resolution-matrix__/run-matrix.js +0 -107
  1178. package/src/config/__resolution-matrix__/runner.js +0 -153
  1179. package/src/config/__resolution-matrix__/verify-real-loadconfig.js +0 -122
  1180. package/src/config/__tests__/ConfigLoader.test.ts +0 -115
  1181. package/src/config/defineConfig.ts +0 -71
  1182. package/src/config/index.ts +0 -7
  1183. package/src/config/scopedTsRequire.ts +0 -62
  1184. package/src/constants/BaselineGrid.ts +0 -41
  1185. package/src/constants/SpacingTokens.ts +0 -55
  1186. package/src/figma/ComponentAnalysis.ts +0 -292
  1187. package/src/figma/ComponentAnalysisGenerator.ts +0 -444
  1188. package/src/figma/ConsoleMCPClient.ts +0 -168
  1189. package/src/figma/ConsoleMCPClientImpl.ts +0 -1034
  1190. package/src/figma/DesignExtractor.ts +0 -3620
  1191. package/src/figma/TokenSyncWorkflow.ts +0 -915
  1192. package/src/figma/TokenTranslator.ts +0 -891
  1193. package/src/figma/VariantAnalyzer.ts +0 -712
  1194. package/src/figma/__tests__/ComponentAnalysisGenerator.json.test.ts +0 -429
  1195. package/src/figma/__tests__/ComponentAnalysisGenerator.markdown.test.ts +0 -428
  1196. package/src/figma/__tests__/ConsoleMCPClient.bugfix.test.ts +0 -261
  1197. package/src/figma/__tests__/ConsoleMCPClient.preservation.test.ts +0 -395
  1198. package/src/figma/__tests__/ConsoleMCPClient.test.ts +0 -375
  1199. package/src/figma/__tests__/DesignExtractor.boundVariableResolution.test.ts +0 -580
  1200. package/src/figma/__tests__/DesignExtractor.buildNodeTree.test.ts +0 -535
  1201. package/src/figma/__tests__/DesignExtractor.captureComponentScreenshot.test.ts +0 -176
  1202. package/src/figma/__tests__/DesignExtractor.detectBehavioralContracts.test.ts +0 -263
  1203. package/src/figma/__tests__/DesignExtractor.detectComponentTokenDecisions.test.ts +0 -379
  1204. package/src/figma/__tests__/DesignExtractor.detectCompositionPatterns.test.ts +0 -507
  1205. package/src/figma/__tests__/DesignExtractor.detectPlatformParity.test.ts +0 -406
  1206. package/src/figma/__tests__/DesignExtractor.queryContext.test.ts +0 -214
  1207. package/src/figma/__tests__/DesignExtractor.readFigmaComponent.test.ts +0 -431
  1208. package/src/figma/__tests__/DesignExtractor.readStyles.test.ts +0 -204
  1209. package/src/figma/__tests__/DesignExtractor.readTokenBindings.test.ts +0 -268
  1210. package/src/figma/__tests__/DesignExtractor.reconstructCompositeTokens.test.ts +0 -403
  1211. package/src/figma/__tests__/DesignExtractor.resolveUnknownVariableIds.test.ts +0 -259
  1212. package/src/figma/__tests__/DesignExtractor.translateTokens.test.ts +0 -433
  1213. package/src/figma/__tests__/DesignExtractor.validateModes.test.ts +0 -350
  1214. package/src/figma/__tests__/TokenSyncWorkflow.batch.test.ts +0 -277
  1215. package/src/figma/__tests__/TokenSyncWorkflow.drift.test.ts +0 -187
  1216. package/src/figma/__tests__/TokenSyncWorkflow.preservation.test.ts +0 -544
  1217. package/src/figma/__tests__/TokenSyncWorkflow.styles.test.ts +0 -245
  1218. package/src/figma/__tests__/TokenSyncWorkflow.sync.test.ts +0 -217
  1219. package/src/figma/__tests__/TokenTranslator.test.ts +0 -757
  1220. package/src/figma/__tests__/VariantAnalyzer.detectConflicts.test.ts +0 -126
  1221. package/src/figma/__tests__/VariantAnalyzer.test.ts +0 -633
  1222. package/src/figma/__tests__/error-reporting.test.ts +0 -254
  1223. package/src/figma/__tests__/preflight.test.ts +0 -94
  1224. package/src/figma/error-reporting.ts +0 -260
  1225. package/src/figma/index.ts +0 -98
  1226. package/src/figma/portCleanup.ts +0 -86
  1227. package/src/figma/preflight.ts +0 -120
  1228. package/src/generators/BlendUtilityGenerator.ts +0 -847
  1229. package/src/generators/BlendValueGenerator.ts +0 -198
  1230. package/src/generators/DTCGFormatGenerator.ts +0 -1355
  1231. package/src/generators/DTCGGeneratorConfig.ts +0 -46
  1232. package/src/generators/ModeResolvedTokens.ts +0 -58
  1233. package/src/generators/ResponsiveGridGenerator.ts +0 -273
  1234. package/src/generators/TokenFileGenerator.ts +0 -2070
  1235. package/src/generators/__tests__/AccessibilityTokenGeneration.test.ts +0 -350
  1236. package/src/generators/__tests__/BlendUtilityGenerator.test.ts +0 -829
  1237. package/src/generators/__tests__/BlendValueGenerator.test.ts +0 -200
  1238. package/src/generators/__tests__/BreakpointTokenGeneration.test.ts +0 -172
  1239. package/src/generators/__tests__/CSSThemeScoping.test.ts +0 -153
  1240. package/src/generators/__tests__/DTCGConfigOptions.test.ts +0 -271
  1241. package/src/generators/__tests__/DTCGErrorHandling.test.ts +0 -139
  1242. package/src/generators/__tests__/DTCGFormatGenerator.integration.test.ts +0 -346
  1243. package/src/generators/__tests__/DTCGFormatGenerator.property.test.ts +0 -497
  1244. package/src/generators/__tests__/DTCGFormatGenerator.test.ts +0 -469
  1245. package/src/generators/__tests__/FigmaTransformer.styles.test.ts +0 -398
  1246. package/src/generators/__tests__/FigmaTransformer.variables.test.ts +0 -540
  1247. package/src/generators/__tests__/GridSpacingTokenGeneration.test.ts +0 -254
  1248. package/src/generators/__tests__/IconTokenGeneration.test.ts +0 -452
  1249. package/src/generators/__tests__/KotlinThemeTypes.test.ts +0 -110
  1250. package/src/generators/__tests__/ModeAwareGeneration.test.ts +0 -160
  1251. package/src/generators/__tests__/NativeOklchOutput.test.ts +0 -56
  1252. package/src/generators/__tests__/OklchExport.test.ts +0 -71
  1253. package/src/generators/__tests__/ProductRepoSimulation.test.ts +0 -91
  1254. package/src/generators/__tests__/ResponsiveGridGeneration.test.ts +0 -291
  1255. package/src/generators/__tests__/Spec076TokenMigration.test.ts +0 -106
  1256. package/src/generators/__tests__/Spec077ModesVerification.test.ts +0 -52
  1257. package/src/generators/__tests__/SwiftThemeTypes.test.ts +0 -122
  1258. package/src/generators/__tests__/TokenFileGenerator.test.ts +0 -914
  1259. package/src/generators/__tests__/TransformerRegistry.test.ts +0 -118
  1260. package/src/generators/__tests__/WcagValueExportSupport.test.ts +0 -84
  1261. package/src/generators/__tests__/WcagValueInfrastructure.test.ts +0 -122
  1262. package/src/generators/__tests__/WebOklchOutput.test.ts +0 -72
  1263. package/src/generators/__tests__/generateTokenIndex.test.ts +0 -204
  1264. package/src/generators/__tests__/helpers/defaultSemanticOptions.ts +0 -24
  1265. package/src/generators/generateTokenFiles.ts +0 -337
  1266. package/src/generators/generateTokenIndex.ts +0 -258
  1267. package/src/generators/oklch/OklchExportUtils.ts +0 -57
  1268. package/src/generators/oklch/OklchTokenIndexMetadata.ts +0 -30
  1269. package/src/generators/transformers/FigmaTransformer.ts +0 -912
  1270. package/src/generators/transformers/ITokenTransformer.ts +0 -56
  1271. package/src/generators/transformers/TransformerRegistry.ts +0 -63
  1272. package/src/generators/transformers/index.ts +0 -52
  1273. package/src/generators/types/DTCGTypes.ts +0 -101
  1274. package/src/integration/BuildErrorHandler.ts +0 -440
  1275. package/src/integration/BuildSystemInterface.ts +0 -338
  1276. package/src/integration/PlatformFileSelector.ts +0 -288
  1277. package/src/integration/RegistryCoordinator.ts +0 -404
  1278. package/src/integration/TranslationCoordinator.ts +0 -458
  1279. package/src/integration/TreeShakingOptimizer.ts +0 -350
  1280. package/src/integration/ValidationCoordinator.ts +0 -780
  1281. package/src/integration/__tests__/ComponentTokenValidation.test.ts +0 -762
  1282. package/src/integration/__tests__/ValidationCoordinator.test.ts +0 -609
  1283. package/src/integration/__tests__/performance/ComponentTokenValidationPerformance.test.ts +0 -161
  1284. package/src/integration/index.ts +0 -55
  1285. package/src/naming/NamingConventionManager.ts +0 -318
  1286. package/src/naming/PlatformNamingRules.ts +0 -278
  1287. package/src/naming/__tests__/NamingConventions.test.ts +0 -224
  1288. package/src/naming/index.ts +0 -23
  1289. package/src/parent-completion.md +0 -1
  1290. package/src/performance/CachingStrategy.ts +0 -426
  1291. package/src/performance/FileGenerationOptimizer.ts +0 -294
  1292. package/src/performance/PerformanceMonitor.ts +0 -185
  1293. package/src/performance/PerformanceOptimizer.ts +0 -348
  1294. package/src/performance/index.ts +0 -30
  1295. package/src/providers/AndroidFileOrganizer.ts +0 -241
  1296. package/src/providers/AndroidFormatGenerator.ts +0 -750
  1297. package/src/providers/AndroidUnitConverter.ts +0 -177
  1298. package/src/providers/FormatProvider.ts +0 -187
  1299. package/src/providers/PathProvider.ts +0 -197
  1300. package/src/providers/UnitProvider.ts +0 -106
  1301. package/src/providers/WebFileOrganizer.ts +0 -121
  1302. package/src/providers/WebFormatGenerator.ts +0 -611
  1303. package/src/providers/WebUnitConverter.ts +0 -116
  1304. package/src/providers/__tests__/AndroidAccessibilityTokens.test.ts +0 -86
  1305. package/src/providers/__tests__/AndroidFormatGenerator-semantic.test.ts +0 -494
  1306. package/src/providers/__tests__/FormatProviders.test.ts +0 -828
  1307. package/src/providers/__tests__/InsetTokenGeneration.test.ts +0 -627
  1308. package/src/providers/__tests__/PathProviders.test.ts +0 -512
  1309. package/src/providers/__tests__/PlatformOutputFormat.test.ts +0 -252
  1310. package/src/providers/__tests__/UnitProviders.test.ts +0 -721
  1311. package/src/providers/__tests__/WebFormatGenerator-semantic.test.ts +0 -293
  1312. package/src/providers/__tests__/iOSFormatGenerator-semantic.test.ts +0 -410
  1313. package/src/providers/iOSFileOrganizer.ts +0 -162
  1314. package/src/providers/iOSFormatGenerator.ts +0 -599
  1315. package/src/providers/iOSUnitConverter.ts +0 -125
  1316. package/src/providers/index.ts +0 -26
  1317. package/src/registries/ComponentTokenRegistry.ts +0 -292
  1318. package/src/registries/IRegistry.ts +0 -170
  1319. package/src/registries/__tests__/ComponentTokenRegistry.test.ts +0 -446
  1320. package/src/registries/__tests__/IRegistry.test.ts +0 -250
  1321. package/src/registries/__tests__/PrimitiveTokenRegistry.test.ts +0 -342
  1322. package/src/registries/__tests__/SemanticTokenRegistry.test.ts +0 -444
  1323. package/src/resolvers/AndroidColorResolver.ts +0 -333
  1324. package/src/resolvers/ModeThemeResolver.ts +0 -152
  1325. package/src/resolvers/SemanticOverrideResolver.ts +0 -155
  1326. package/src/resolvers/SemanticValueResolver.ts +0 -133
  1327. package/src/resolvers/WebColorResolver.ts +0 -240
  1328. package/src/resolvers/__tests__/AndroidColorResolver.test.ts +0 -507
  1329. package/src/resolvers/__tests__/ModeThemeResolver.test.ts +0 -411
  1330. package/src/resolvers/__tests__/SemanticOverrideResolver.test.ts +0 -186
  1331. package/src/resolvers/__tests__/WebColorResolver.test.ts +0 -405
  1332. package/src/resolvers/__tests__/iOSColorResolver.test.ts +0 -432
  1333. package/src/resolvers/iOSColorResolver.ts +0 -224
  1334. package/src/resolvers/index.ts +0 -11
  1335. package/src/security/AIAgentRestrictions.ts +0 -298
  1336. package/src/security/ContaminationAuditor.ts +0 -393
  1337. package/src/security/ContaminationPrevention.ts +0 -275
  1338. package/src/security/DocumentationGuard.ts +0 -258
  1339. package/src/security/FlexibilityTokenGuard.ts +0 -256
  1340. package/src/security/HumanApprovalWorkflow.ts +0 -319
  1341. package/src/security/__tests__/AIAgentRestrictions.test.ts +0 -482
  1342. package/src/security/__tests__/ContaminationPrevention.test.ts +0 -424
  1343. package/src/security/__tests__/SecurityIntegration.test.ts +0 -505
  1344. package/src/security/index.ts +0 -48
  1345. package/src/testing/__tests__/utilities.test.ts +0 -175
  1346. package/src/testing/index.ts +0 -154
  1347. package/src/testing/jest-preset.ts +0 -62
  1348. package/src/testing/style-mock.ts +0 -7
  1349. package/src/testing/validators.ts +0 -10
  1350. package/src/themes/ResolvedThemeSet.ts +0 -22
  1351. package/src/themes/ThemeRegistry.ts +0 -97
  1352. package/src/themes/__tests__/ThemeRegistry.test.ts +0 -162
  1353. package/src/tools/ThemeFileGenerator.ts +0 -109
  1354. package/src/tools/integrity/DiskFreshGenerator.ts +0 -36
  1355. package/src/tools/integrity/GenerationIntegrityCheck.ts +0 -132
  1356. package/src/tools/integrity/Invariants.ts +0 -228
  1357. package/src/tools/integrity/Normalizer.ts +0 -94
  1358. package/src/tools/integrity/SemanticComparator.ts +0 -127
  1359. package/src/tools/integrity/__tests__/GenerationIntegrityCheck.test.ts +0 -132
  1360. package/src/tools/integrity/__tests__/Invariants.test.ts +0 -142
  1361. package/src/tools/integrity/__tests__/Normalizer.test.ts +0 -65
  1362. package/src/tools/integrity/__tests__/SemanticComparator.test.ts +0 -62
  1363. package/src/tools/integrity/__tests__/consumer-package-mode.test.ts +0 -205
  1364. package/src/tools/integrity/cli/run-audit.ts +0 -150
  1365. package/src/tools/integrity/inventory.ts +0 -51
  1366. package/src/tools/integrity/manifest.ts +0 -56
  1367. package/src/tools/integrity/types/index.ts +0 -183
  1368. package/src/tools/release/__tests__/ChangeClassifier.test.ts +0 -133
  1369. package/src/tools/release/__tests__/ChangeExtractor.test.ts +0 -222
  1370. package/src/tools/release/__tests__/GitHubPublisher.test.ts +0 -240
  1371. package/src/tools/release/__tests__/NotesRenderer.test.ts +0 -142
  1372. package/src/tools/release/__tests__/NpmPublisher.test.ts +0 -289
  1373. package/src/tools/release/__tests__/PipelineIntegration.test.ts +0 -188
  1374. package/src/tools/release/__tests__/ReleasePipeline.test.ts +0 -192
  1375. package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +0 -49
  1376. package/src/tools/release/__tests__/SummaryScanner.test.ts +0 -141
  1377. package/src/tools/release/__tests__/TagResolver.test.ts +0 -91
  1378. package/src/tools/release/__tests__/VersionCalculator.test.ts +0 -270
  1379. package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +0 -80
  1380. package/src/tools/release/cli/ReleasePipeline.ts +0 -165
  1381. package/src/tools/release/cli/release-tool.ts +0 -107
  1382. package/src/tools/release/pipeline/ChangeClassifier.ts +0 -61
  1383. package/src/tools/release/pipeline/ChangeExtractor.ts +0 -87
  1384. package/src/tools/release/pipeline/NotesRenderer.ts +0 -66
  1385. package/src/tools/release/pipeline/SummaryScanner.ts +0 -70
  1386. package/src/tools/release/pipeline/TagResolver.ts +0 -40
  1387. package/src/tools/release/pipeline/VersionCalculator.ts +0 -375
  1388. package/src/tools/release/publishers/GitHubPublisher.ts +0 -228
  1389. package/src/tools/release/publishers/NpmPublisher.ts +0 -196
  1390. package/src/tools/release/release-config.json +0 -5
  1391. package/src/tools/release/types/index.ts +0 -282
  1392. package/src/tools/release/validators/SemanticVersionValidator.ts +0 -67
  1393. package/src/types/ComponentTypes.ts +0 -76
  1394. package/src/types/TranslationOutput.ts +0 -105
  1395. package/src/types/ValidationResult.ts +0 -74
  1396. package/src/types/__tests__/ComponentTypes.test.ts +0 -73
  1397. package/src/types/css.d.ts +0 -35
  1398. package/src/types/generated/TokenTypes.ts +0 -142
  1399. package/src/types/index.ts +0 -42
  1400. package/src/validators/BaselineGridValidator.ts +0 -119
  1401. package/src/validators/CompositionPatternValidator.ts +0 -259
  1402. package/src/validators/CrossPlatformConsistencyValidator.ts +0 -498
  1403. package/src/validators/ErrorValidator.ts +0 -998
  1404. package/src/validators/IValidator.ts +0 -273
  1405. package/src/validators/MathematicalRelationshipParser.ts +0 -434
  1406. package/src/validators/ModeParity.ts +0 -123
  1407. package/src/validators/PassValidator.ts +0 -533
  1408. package/src/validators/PlatformConstraintHandler.ts +0 -453
  1409. package/src/validators/PrimitiveReferenceValidator.ts +0 -284
  1410. package/src/validators/SemanticTokenValidator.ts +0 -496
  1411. package/src/validators/StemmaComponentNamingValidator.ts +0 -524
  1412. package/src/validators/StemmaErrorGuidanceSystem.ts +0 -1600
  1413. package/src/validators/StemmaPropertyAccessibilityValidator.ts +0 -823
  1414. package/src/validators/StemmaTokenUsageValidator.ts +0 -651
  1415. package/src/validators/SyntaxValidator.ts +0 -537
  1416. package/src/validators/ThreeTierValidator.ts +0 -822
  1417. package/src/validators/ToleranceCalculator.ts +0 -324
  1418. package/src/validators/ValidationReasoning.ts +0 -464
  1419. package/src/validators/WCAGValidator.ts +0 -219
  1420. package/src/validators/WarningValidator.ts +0 -626
  1421. package/src/validators/__tests__/BaselineGridValidator.test.ts +0 -292
  1422. package/src/validators/__tests__/BorderWidthValidation.test.ts +0 -595
  1423. package/src/validators/__tests__/CompositionPatterns.test.ts +0 -463
  1424. package/src/validators/__tests__/CrossPlatformConsistency.test.ts +0 -834
  1425. package/src/validators/__tests__/IValidator.test.ts +0 -258
  1426. package/src/validators/__tests__/MathematicalRelationshipParser.test.ts +0 -465
  1427. package/src/validators/__tests__/PlatformConstraints.test.ts +0 -486
  1428. package/src/validators/__tests__/SemanticTokenValidator.test.ts +0 -723
  1429. package/src/validators/__tests__/StemmaComponentNamingValidator.test.ts +0 -597
  1430. package/src/validators/__tests__/StemmaErrorGuidanceSystem.test.ts +0 -717
  1431. package/src/validators/__tests__/StemmaPropertyAccessibilityValidator.test.ts +0 -349
  1432. package/src/validators/__tests__/StemmaTokenUsageValidator.test.ts +0 -432
  1433. package/src/validators/__tests__/SyntaxValidator.test.ts +0 -360
  1434. package/src/validators/__tests__/ThreeTierValidator.test.ts +0 -906
  1435. package/src/validators/__tests__/ValidationReasoning.test.ts +0 -636
  1436. package/src/validators/__tests__/WCAGValidator.test.ts +0 -243
  1437. package/src/validators/buildValidation.ts +0 -170
  1438. package/src/validators/index.ts +0 -144
  1439. package/src/workflows/ConsistencyValidator.ts +0 -339
  1440. package/src/workflows/TokenGenerationWorkflow.ts +0 -460
  1441. package/src/workflows/ValidationPipeline.ts +0 -284
  1442. package/src/workflows/WorkflowErrorHandler.ts +0 -441
@@ -2982,7 +2982,7 @@ var require_compile = __commonJS({
2982
2982
  const schOrFunc = root.refs[ref];
2983
2983
  if (schOrFunc)
2984
2984
  return schOrFunc;
2985
- let _sch = resolve3.call(this, root, ref);
2985
+ let _sch = resolve5.call(this, root, ref);
2986
2986
  if (_sch === void 0) {
2987
2987
  const schema2 = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
2988
2988
  const { schemaId } = this.opts;
@@ -3009,7 +3009,7 @@ var require_compile = __commonJS({
3009
3009
  function sameSchemaEnv(s1, s2) {
3010
3010
  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
3011
3011
  }
3012
- function resolve3(root, ref) {
3012
+ function resolve5(root, ref) {
3013
3013
  let sch;
3014
3014
  while (typeof (sch = this.refs[ref]) == "string")
3015
3015
  ref = sch;
@@ -3227,8 +3227,8 @@ var require_utils = __commonJS({
3227
3227
  }
3228
3228
  return ind;
3229
3229
  }
3230
- function removeDotSegments(path10) {
3231
- let input = path10;
3230
+ function removeDotSegments(path11) {
3231
+ let input = path11;
3232
3232
  const output = [];
3233
3233
  let nextSlash = -1;
3234
3234
  let len = 0;
@@ -3480,8 +3480,8 @@ var require_schemes = __commonJS({
3480
3480
  wsComponent.secure = void 0;
3481
3481
  }
3482
3482
  if (wsComponent.resourceName) {
3483
- const [path10, query] = wsComponent.resourceName.split("?");
3484
- wsComponent.path = path10 && path10 !== "/" ? path10 : void 0;
3483
+ const [path11, query] = wsComponent.resourceName.split("?");
3484
+ wsComponent.path = path11 && path11 !== "/" ? path11 : void 0;
3485
3485
  wsComponent.query = query;
3486
3486
  wsComponent.resourceName = void 0;
3487
3487
  }
@@ -3640,7 +3640,7 @@ var require_fast_uri = __commonJS({
3640
3640
  }
3641
3641
  return uri;
3642
3642
  }
3643
- function resolve3(baseURI, relativeURI, options) {
3643
+ function resolve5(baseURI, relativeURI, options) {
3644
3644
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3645
3645
  const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3646
3646
  schemelessOptions.skipEscape = true;
@@ -3898,7 +3898,7 @@ var require_fast_uri = __commonJS({
3898
3898
  var fastUri = {
3899
3899
  SCHEMES,
3900
3900
  normalize,
3901
- resolve: resolve3,
3901
+ resolve: resolve5,
3902
3902
  resolveComponent,
3903
3903
  equal,
3904
3904
  serialize,
@@ -6874,12 +6874,12 @@ var require_dist = __commonJS({
6874
6874
  throw new Error(`Unknown format "${name}"`);
6875
6875
  return f;
6876
6876
  };
6877
- function addFormats(ajv, list, fs12, exportName) {
6877
+ function addFormats(ajv, list, fs14, exportName) {
6878
6878
  var _a;
6879
6879
  var _b;
6880
6880
  (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : _b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`;
6881
6881
  for (const f of list)
6882
- ajv.addFormat(f, fs12[f]);
6882
+ ajv.addFormat(f, fs14[f]);
6883
6883
  }
6884
6884
  module2.exports = exports2 = formatsPlugin;
6885
6885
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -6923,11 +6923,11 @@ var require_resolvePackageRoot = __commonJS({
6923
6923
  resolvePackageRoot: () => resolvePackageRoot2
6924
6924
  });
6925
6925
  module2.exports = __toCommonJS2(resolvePackageRoot_exports);
6926
- var path10 = __toESM2(require("path"));
6927
- var fs12 = __toESM2(require("fs"));
6926
+ var path11 = __toESM2(require("path"));
6927
+ var fs14 = __toESM2(require("fs"));
6928
6928
  function resolvePackageRoot2(fromDir) {
6929
- const fromCli = path10.resolve(fromDir, "../..");
6930
- if (fs12.existsSync(path10.join(fromCli, "package.json"))) {
6929
+ const fromCli = path11.resolve(fromDir, "../..");
6930
+ if (fs14.existsSync(path11.join(fromCli, "package.json"))) {
6931
6931
  return fromCli;
6932
6932
  }
6933
6933
  console.error(
@@ -6971,51 +6971,452 @@ var require_mcpDataRoots = __commonJS({
6971
6971
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
6972
6972
  var mcpDataRoots_exports = {};
6973
6973
  __export2(mcpDataRoots_exports, {
6974
+ resolveComponentRoots: () => resolveComponentRoots,
6974
6975
  resolveConsumerOwnedRoot: () => resolveConsumerOwnedRoot,
6975
6976
  resolvePackageOwnedRoot: () => resolvePackageOwnedRoot,
6976
- resolvePackageRoot: () => import_resolvePackageRoot.resolvePackageRoot
6977
+ resolvePackageRoot: () => import_resolvePackageRoot.resolvePackageRoot,
6978
+ resolveProductRoot: () => resolveProductRoot,
6979
+ resolveTokenIndexRoot: () => resolveTokenIndexRoot
6977
6980
  });
6978
6981
  module2.exports = __toCommonJS2(mcpDataRoots_exports);
6979
- var path10 = __toESM2(require("path"));
6980
- var fs12 = __toESM2(require("fs"));
6982
+ var path11 = __toESM2(require("path"));
6983
+ var fs14 = __toESM2(require("fs"));
6981
6984
  var import_resolvePackageRoot = require_resolvePackageRoot();
6982
6985
  function resolvePackageOwnedRoot(opts) {
6983
6986
  if (opts.envValue) {
6984
- return { path: path10.resolve(opts.envValue), source: "env" };
6987
+ return { path: path11.resolve(opts.envValue), source: "env" };
6985
6988
  }
6986
- return { path: path10.resolve(opts.packageRoot, opts.relPath), source: "package" };
6989
+ return { path: path11.resolve(opts.packageRoot, opts.relPath), source: "package" };
6987
6990
  }
6988
6991
  function resolveConsumerOwnedRoot(opts) {
6989
6992
  if (opts.envValue) {
6990
- return { path: path10.resolve(opts.envValue), source: "env" };
6993
+ return { path: path11.resolve(opts.envValue), source: "env" };
6991
6994
  }
6992
- const cwdPath = path10.resolve(process.cwd(), opts.relPath);
6995
+ const cwdPath = path11.resolve(process.cwd(), opts.relPath);
6993
6996
  if (existsNonEmpty(cwdPath)) {
6994
6997
  return { path: cwdPath, source: "cwd" };
6995
6998
  }
6996
6999
  if (opts.packageRoot) {
6997
- return { path: path10.resolve(opts.packageRoot, opts.relPath), source: "package" };
7000
+ return { path: path11.resolve(opts.packageRoot, opts.relPath), source: "package" };
6998
7001
  }
6999
7002
  return { path: cwdPath, source: "cwd" };
7000
7003
  }
7001
7004
  function existsNonEmpty(p) {
7002
7005
  try {
7003
- const stat = fs12.statSync(p);
7006
+ const stat = fs14.statSync(p);
7004
7007
  if (stat.isDirectory()) {
7005
- return fs12.readdirSync(p).length > 0;
7008
+ return fs14.readdirSync(p).length > 0;
7006
7009
  }
7007
7010
  return stat.size > 0;
7008
7011
  } catch {
7009
7012
  return false;
7010
7013
  }
7011
7014
  }
7015
+ function isAbsentOrEmptyDir(p) {
7016
+ try {
7017
+ const stat = fs14.statSync(p);
7018
+ if (stat.isDirectory()) {
7019
+ return fs14.readdirSync(p).length === 0;
7020
+ }
7021
+ return false;
7022
+ } catch {
7023
+ return true;
7024
+ }
7025
+ }
7026
+ function resolveComponentRoots(opts) {
7027
+ const roots = [];
7028
+ const sources = [];
7029
+ if (opts.envValue) {
7030
+ roots.push(path11.resolve(opts.envValue));
7031
+ sources.push("env");
7032
+ } else if (opts.dsRoot.state === "born" && opts.dsRoot.root) {
7033
+ roots.push(path11.join(opts.dsRoot.root, "src", "components"));
7034
+ sources.push("cwd");
7035
+ }
7036
+ roots.push(path11.resolve(opts.packageRoot, "src", "components", "core"));
7037
+ sources.push("package");
7038
+ return { roots, sources };
7039
+ }
7040
+ function resolveTokenIndexRoot(opts) {
7041
+ if (opts.envValue !== void 0) {
7042
+ if (opts.envValue === "") {
7043
+ return { ok: false, reason: "empty-env-value" };
7044
+ }
7045
+ const resolved = path11.resolve(opts.envValue);
7046
+ if (isAbsentOrEmptyDir(resolved)) {
7047
+ return { ok: false, reason: "empty-env-value" };
7048
+ }
7049
+ return { ok: true, path: resolved, source: "env" };
7050
+ }
7051
+ switch (opts.dsRoot.state) {
7052
+ case "born": {
7053
+ const indexPath = path11.join(opts.dsRoot.root, "token-index");
7054
+ if (isAbsentOrEmptyDir(indexPath)) return { ok: false, reason: "run-generate" };
7055
+ return { ok: true, path: indexPath, source: "cwd" };
7056
+ }
7057
+ case "package-mode": {
7058
+ const indexPath = path11.join(opts.dsRoot.root, "token-index");
7059
+ if (isAbsentOrEmptyDir(indexPath)) return { ok: false, reason: "run-generate" };
7060
+ return { ok: true, path: indexPath, source: "cwd", tokenOrigin: "designerpunk-package-mode" };
7061
+ }
7062
+ case "partial":
7063
+ return { ok: false, reason: "partial", partialCase: opts.dsRoot.partialCase };
7064
+ case "unborn":
7065
+ default:
7066
+ return {
7067
+ ok: true,
7068
+ path: path11.resolve(opts.packageRoot, "token-index"),
7069
+ source: "package-consume",
7070
+ tokenOrigin: "designerpunk-reference"
7071
+ };
7072
+ }
7073
+ }
7074
+ function resolveProductRoot(opts) {
7075
+ if (opts.envValue) {
7076
+ return { path: path11.resolve(opts.envValue), source: "env" };
7077
+ }
7078
+ if (opts.dsRoot.state !== "unborn" && opts.dsRoot.root) {
7079
+ return { path: path11.join(opts.dsRoot.root, "product"), source: "cwd" };
7080
+ }
7081
+ return { path: path11.resolve(opts.cwd, "product"), source: "cwd" };
7082
+ }
7083
+ }
7084
+ });
7085
+
7086
+ // dist/cli/shared/bornRepo.js
7087
+ var require_bornRepo = __commonJS({
7088
+ "dist/cli/shared/bornRepo.js"(exports2, module2) {
7089
+ "use strict";
7090
+ var __create2 = Object.create;
7091
+ var __defProp2 = Object.defineProperty;
7092
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
7093
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
7094
+ var __getProtoOf2 = Object.getPrototypeOf;
7095
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
7096
+ var __export2 = (target, all) => {
7097
+ for (var name in all)
7098
+ __defProp2(target, name, { get: all[name], enumerable: true });
7099
+ };
7100
+ var __copyProps2 = (to, from, except, desc) => {
7101
+ if (from && typeof from === "object" || typeof from === "function") {
7102
+ for (let key of __getOwnPropNames2(from))
7103
+ if (!__hasOwnProp2.call(to, key) && key !== except)
7104
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
7105
+ }
7106
+ return to;
7107
+ };
7108
+ var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
7109
+ // If the importer is in node compatibility mode or this is not an ESM
7110
+ // file that has been converted to a CommonJS file using a Babel-
7111
+ // compatible transform (i.e. "__esModule" has not been set), then set
7112
+ // "default" to the CommonJS "module.exports" for node compatibility.
7113
+ isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
7114
+ mod
7115
+ ));
7116
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
7117
+ var bornRepo_exports = {};
7118
+ __export2(bornRepo_exports, {
7119
+ findDesignSystemRoot: () => findDesignSystemRoot,
7120
+ isDesignerPunkTier: () => isDesignerPunkTier
7121
+ });
7122
+ module2.exports = __toCommonJS2(bornRepo_exports);
7123
+ var path11 = __toESM2(require("path"));
7124
+ var fs14 = __toESM2(require("fs"));
7125
+ var import_resolvePackageRoot = require_resolvePackageRoot();
7126
+ var CONFIG_FILE = "designerpunk.config.ts";
7127
+ var MANIFEST_FILE = "designerpunk.manifest.json";
7128
+ var LEGACY_MANIFEST_RELPATH = path11.join(".kiro", "sync-manifest.json");
7129
+ var TOKEN_SOURCE_RELPATH = path11.join("src", "tokens");
7130
+ var GIT_MARKER = ".git";
7131
+ function hasNodeModulesSegment(dir) {
7132
+ return dir.split(path11.sep).includes("node_modules");
7133
+ }
7134
+ function isGitBoundary(dir) {
7135
+ return fs14.existsSync(path11.join(dir, GIT_MARKER));
7136
+ }
7137
+ function exportsTextually(source, exportName) {
7138
+ const escaped = exportName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
7139
+ const functionForm = new RegExp(`export\\s+(?:async\\s+)?function\\s*\\*?\\s*${escaped}\\b`);
7140
+ const constLetForm = new RegExp(`export\\s+(?:const|let)\\s+${escaped}\\b`);
7141
+ const reExportForm = new RegExp(`export\\s*\\{[^}]*\\b${escaped}\\b[^}]*\\}\\s*from\\s*['"\`]`);
7142
+ return functionForm.test(source) || constLetForm.test(source) || reExportForm.test(source);
7143
+ }
7144
+ function readFileTextSafe(filePath) {
7145
+ try {
7146
+ const text = fs14.readFileSync(filePath, "utf8");
7147
+ return typeof text === "string" ? text : null;
7148
+ } catch {
7149
+ return null;
7150
+ }
7151
+ }
7152
+ function isDesignerPunkTier(dir) {
7153
+ const indexText = readFileTextSafe(path11.join(dir, "index.ts"));
7154
+ if (indexText === null || !exportsTextually(indexText, "getAllPrimitiveTokens")) return false;
7155
+ const semanticIndexText = readFileTextSafe(path11.join(dir, "semantic", "index.ts"));
7156
+ if (semanticIndexText === null || !exportsTextually(semanticIndexText, "getAllSemanticTokens")) return false;
7157
+ return true;
7158
+ }
7159
+ function readConfigTokenSource(configPath) {
7160
+ const text = readFileTextSafe(configPath);
7161
+ if (text === null) return { present: false };
7162
+ const uncommented = text.split("\n").filter((line) => !/^\s*\/\//.test(line)).join("\n");
7163
+ const literalMatch = uncommented.match(/\btokenSource\s*:\s*['"`]([^'"`]+)['"`]/);
7164
+ if (literalMatch) return { present: true, literal: true, value: literalMatch[1] };
7165
+ if (/\btokenSource\s*:/.test(uncommented)) return { present: true, literal: false };
7166
+ return { present: false };
7167
+ }
7168
+ function readManifestPosture(manifestPath) {
7169
+ const text = readFileTextSafe(manifestPath);
7170
+ if (text === null) return null;
7171
+ try {
7172
+ const parsed = JSON.parse(text);
7173
+ return typeof parsed.posture === "string" ? parsed.posture : null;
7174
+ } catch {
7175
+ return null;
7176
+ }
7177
+ }
7178
+ function evaluateDirectory(dir, packageRoot) {
7179
+ const configPath = path11.join(dir, CONFIG_FILE);
7180
+ const hasConfig = fs14.existsSync(configPath);
7181
+ const tokenSourceRead = hasConfig ? readConfigTokenSource(configPath) : { present: false };
7182
+ const hasTokenSource = tokenSourceRead.present;
7183
+ const localTierDir = path11.join(dir, TOKEN_SOURCE_RELPATH);
7184
+ const localBarrelIsTier = isDesignerPunkTier(localTierDir);
7185
+ const tokenSourceRoot = tokenSourceRead.present && tokenSourceRead.literal ? path11.resolve(dir, tokenSourceRead.value) : null;
7186
+ const tierPresentAtTokenSource = tokenSourceRoot !== null && isDesignerPunkTier(tokenSourceRoot);
7187
+ const packageOwnedTierDir = path11.resolve(packageRoot, TOKEN_SOURCE_RELPATH);
7188
+ const manifestPath = path11.join(dir, MANIFEST_FILE);
7189
+ const manifestExists = fs14.existsSync(manifestPath);
7190
+ const manifestPosture = manifestExists ? readManifestPosture(manifestPath) : null;
7191
+ const manifestSignal = manifestExists && manifestPosture !== "consume";
7192
+ const legacyManifestSignal = fs14.existsSync(path11.join(dir, LEGACY_MANIFEST_RELPATH));
7193
+ const isSteward = path11.resolve(dir) === path11.resolve(packageRoot);
7194
+ let state;
7195
+ let partialCase;
7196
+ let tierDir = null;
7197
+ if (hasConfig && hasTokenSource) {
7198
+ if (tierPresentAtTokenSource) {
7199
+ state = "born";
7200
+ tierDir = tokenSourceRoot;
7201
+ } else {
7202
+ state = "partial";
7203
+ partialCase = "config-no-tier";
7204
+ }
7205
+ } else if (hasConfig) {
7206
+ if (localBarrelIsTier && !isSteward) {
7207
+ state = "partial";
7208
+ partialCase = "unused-local-tier";
7209
+ } else {
7210
+ state = "package-mode";
7211
+ tierDir = packageOwnedTierDir;
7212
+ }
7213
+ } else if (localBarrelIsTier) {
7214
+ state = "partial";
7215
+ partialCase = "tier-no-config";
7216
+ } else if (manifestSignal) {
7217
+ state = "partial";
7218
+ partialCase = "manifest-only";
7219
+ } else {
7220
+ state = "unborn";
7221
+ }
7222
+ const anySignal = hasConfig || localBarrelIsTier || manifestSignal;
7223
+ const tierSignal = localBarrelIsTier || tierPresentAtTokenSource;
7224
+ const attemptedTokenSource = partialCase === "config-no-tier" && tokenSourceRoot !== null ? tokenSourceRoot : void 0;
7225
+ return {
7226
+ anySignal,
7227
+ state,
7228
+ partialCase,
7229
+ tierDir,
7230
+ attemptedTokenSource,
7231
+ signals: {
7232
+ config: hasConfig,
7233
+ tier: tierSignal,
7234
+ manifest: manifestSignal,
7235
+ legacyManifest: legacyManifestSignal
7236
+ }
7237
+ };
7238
+ }
7239
+ function resolveOwnPackageRoot() {
7240
+ let dir = __dirname;
7241
+ while (true) {
7242
+ if (fs14.existsSync(path11.join(dir, "package.json"))) return dir;
7243
+ const parent = path11.dirname(dir);
7244
+ if (parent === dir) return (0, import_resolvePackageRoot.resolvePackageRoot)(path11.dirname(__dirname));
7245
+ dir = parent;
7246
+ }
7247
+ }
7248
+ var UNBORN_RESULT = {
7249
+ state: "unborn",
7250
+ root: null,
7251
+ tierDir: null,
7252
+ signals: { config: false, tier: false, manifest: false, legacyManifest: false }
7253
+ };
7254
+ function findDesignSystemRoot(startDir) {
7255
+ const packageRoot = resolveOwnPackageRoot();
7256
+ let dir = path11.resolve(startDir);
7257
+ while (true) {
7258
+ if (!hasNodeModulesSegment(dir)) {
7259
+ const evaluation = evaluateDirectory(dir, packageRoot);
7260
+ if (evaluation.anySignal) {
7261
+ return {
7262
+ state: evaluation.state,
7263
+ root: dir,
7264
+ tierDir: evaluation.tierDir,
7265
+ partialCase: evaluation.partialCase,
7266
+ attemptedTokenSource: evaluation.attemptedTokenSource,
7267
+ signals: evaluation.signals
7268
+ };
7269
+ }
7270
+ }
7271
+ if (isGitBoundary(dir)) {
7272
+ break;
7273
+ }
7274
+ const parent = path11.dirname(dir);
7275
+ if (parent === dir) {
7276
+ break;
7277
+ }
7278
+ dir = parent;
7279
+ }
7280
+ return UNBORN_RESULT;
7281
+ }
7282
+ }
7283
+ });
7284
+
7285
+ // dist/cli/shared/errorCatalog.js
7286
+ var require_errorCatalog = __commonJS({
7287
+ "dist/cli/shared/errorCatalog.js"(exports2, module2) {
7288
+ "use strict";
7289
+ var __defProp2 = Object.defineProperty;
7290
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
7291
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
7292
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
7293
+ var __export2 = (target, all) => {
7294
+ for (var name in all)
7295
+ __defProp2(target, name, { get: all[name], enumerable: true });
7296
+ };
7297
+ var __copyProps2 = (to, from, except, desc) => {
7298
+ if (from && typeof from === "object" || typeof from === "function") {
7299
+ for (let key of __getOwnPropNames2(from))
7300
+ if (!__hasOwnProp2.call(to, key) && key !== except)
7301
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
7302
+ }
7303
+ return to;
7304
+ };
7305
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
7306
+ var errorCatalog_exports = {};
7307
+ __export2(errorCatalog_exports, {
7308
+ attachUnbornRepoMessage: () => attachUnbornRepoMessage,
7309
+ bornIndexAbsentMessage: () => bornIndexAbsentMessage,
7310
+ cloneHatchMessage: () => cloneHatchMessage,
7311
+ componentTokenFamilyMismatchMessage: () => componentTokenFamilyMismatchMessage,
7312
+ componentTokenFileLoadFailedMessage: () => componentTokenFileLoadFailedMessage,
7313
+ consumerDegradationMessage: () => consumerDegradationMessage,
7314
+ existingMcpEntryMessage: () => existingMcpEntryMessage,
7315
+ explicitTokenIndexMissingMessage: () => explicitTokenIndexMissingMessage,
7316
+ initBornRepoMessage: () => initBornRepoMessage,
7317
+ jestConfigCollisionMessage: () => jestConfigCollisionMessage,
7318
+ managedRegionEditedInsideMessage: () => managedRegionEditedInsideMessage,
7319
+ managedRegionMarkersMissingMessage: () => managedRegionMarkersMissingMessage,
7320
+ packageModeIndexAbsentMessage: () => packageModeIndexAbsentMessage,
7321
+ partialCaseMessage: () => partialCaseMessage,
7322
+ partialConfigNoTierMessage: () => partialConfigNoTierMessage,
7323
+ partialManifestOnlyMessage: () => partialManifestOnlyMessage,
7324
+ partialTierNoConfigMessage: () => partialTierNoConfigMessage,
7325
+ partialUnusedLocalTierMessage: () => partialUnusedLocalTierMessage,
7326
+ personalNoteNamingMessage: () => personalNoteNamingMessage,
7327
+ restartLineNowMessage: () => restartLineNowMessage,
7328
+ restartLineSequencedMessage: () => restartLineSequencedMessage
7329
+ });
7330
+ module2.exports = __toCommonJS2(errorCatalog_exports);
7331
+ function partialConfigNoTierMessage(root, tokenSource) {
7332
+ const tokenSourceSlot = tokenSource ?? "(a non-literal tokenSource value in designerpunk.config.ts)";
7333
+ return `found designerpunk.config.ts at ${root} but no DesignerPunk token tier at ${tokenSourceSlot} \u2014 this repo looks partly initialized. Refusing rather than guessing. Inspect it, or complete it deliberately: npx designerpunk init --re-scaffold`;
7334
+ }
7335
+ function partialUnusedLocalTierMessage(root) {
7336
+ return `found a token tier at ${root}/src/tokens but your config omits tokenSource, so generate would use DesignerPunk's tokens, not yours. Add tokenSource: './src/tokens' to designerpunk.config.ts. (Refusing to generate until then.)`;
7337
+ }
7338
+ function partialTierNoConfigMessage(root) {
7339
+ return `found a DesignerPunk token tier at ${root}/src/tokens but no designerpunk.config.ts \u2014 refusing to generate or serve DesignerPunk's reference index as yours. Restore the config, or run: npx designerpunk init --re-scaffold`;
7340
+ }
7341
+ function partialManifestOnlyMessage(root) {
7342
+ return `found designerpunk.manifest.json at ${root} but no config or token tier \u2014 the design system files are missing. Restore them from version control, or run: npx designerpunk init --re-scaffold`;
7343
+ }
7344
+ function partialCaseMessage(root, partialCase, attemptedTokenSource) {
7345
+ switch (partialCase) {
7346
+ case "config-no-tier":
7347
+ return partialConfigNoTierMessage(root, attemptedTokenSource);
7348
+ case "unused-local-tier":
7349
+ return partialUnusedLocalTierMessage(root);
7350
+ case "tier-no-config":
7351
+ return partialTierNoConfigMessage(root);
7352
+ case "manifest-only":
7353
+ return partialManifestOnlyMessage(root);
7354
+ }
7355
+ }
7356
+ function packageModeIndexAbsentMessage() {
7357
+ return `this repo runs in package mode (designerpunk.config.ts has no tokenSource), so its token index is DesignerPunk's tokens \u2014 run 'npx designerpunk generate' to build it. To make a design system of your own: npx designerpunk init --re-scaffold`;
7358
+ }
7359
+ function bornIndexAbsentMessage(root) {
7360
+ return `no token index in this design system (${root}/token-index is absent or empty) \u2014 run 'npx designerpunk generate'`;
7361
+ }
7362
+ function explicitTokenIndexMissingMessage(explicitPath) {
7363
+ return `TOKEN_INDEX_DIR is set to ${explicitPath}, which is absent or empty \u2014 unset it, or run generate`;
7364
+ }
7365
+ function initBornRepoMessage(root) {
7366
+ return `this repo already has a design system (${root}) \u2014 init is the birth event and runs once. To join it: npm install \u2192 npx designerpunk generate \u2192 fill in .designerpunk/personal-note.local.md (generate creates it) \u2192 restart your agent session (approve DesignerPunk's MCP servers if asked). Using a different agent tool than this repo was set up for? Also run: npx designerpunk attach --target=<cc|kiro> to attach a harness (agents + MCP config + approvals). To deliberately re-scaffold: npx designerpunk init --re-scaffold`;
7367
+ }
7368
+ function restartLineSequencedMessage() {
7369
+ return `when the steps above are done, restart your agent session \u2014 DesignerPunk's MCP servers and your personal note load when a session starts, so this session cannot see them yet (approve the servers if your tool asks)`;
7370
+ }
7371
+ function cloneHatchMessage() {
7372
+ return `want to own the engine too? Clone github.com/3fn/DesignerPunk \u2014 init already made the token language yours; the clone adds the engine and the components`;
7373
+ }
7374
+ function personalNoteNamingMessage() {
7375
+ return `fill in .designerpunk/personal-note.local.md \u2014 who you are and how you want to be worked with; your agents read it every session (it stays on your machine)`;
7376
+ }
7377
+ function jestConfigCollisionMessage() {
7378
+ return `skipped: jest.config.js (already exists) \u2014 the DesignerPunk jest preset is not applied; to test your own forked components with @3fn/core/testing, add ...require('@3fn/core/jest-preset') to your config`;
7379
+ }
7380
+ function consumerDegradationMessage(member, where, consequence) {
7381
+ return `warning: ${member} is missing from the installed @3fn/core (${where}) \u2014 ${consequence}. Generation continued without it. If a clean reinstall (remove node_modules, then npm install) does not restore it, the package you installed does not contain it.`;
7382
+ }
7383
+ function managedRegionMarkersMissingMessage(file) {
7384
+ return `the DesignerPunk-managed region in ${file} is missing its markers \u2014 not rewriting the file. Restore the markers (see install doc \xA7 "Your agent layer") or re-run attach`;
7385
+ }
7386
+ function managedRegionEditedInsideMessage(file) {
7387
+ return `you edited inside the DesignerPunk-managed region of ${file} \u2014 those edits will be replaced. Move them outside the region; not applying without --apply`;
7388
+ }
7389
+ function attachUnbornRepoMessage() {
7390
+ return `no design system here. To create one: npx designerpunk init. Only reading DesignerPunk's docs and components? No init needed: npx designerpunk attach --target=<cc|kiro> --reference`;
7391
+ }
7392
+ function restartLineNowMessage() {
7393
+ return `restart your agent session now \u2014 DesignerPunk's MCP servers load when a session starts, so this session cannot see them yet (approve them if your tool asks)`;
7394
+ }
7395
+ function existingMcpEntryMessage(configFile, key, target) {
7396
+ return `${configFile} already has '${key}' entry; left unchanged. If it is outdated, delete the entry and re-run: npx designerpunk attach --target=${target} \u2014 or update it by hand.`;
7397
+ }
7398
+ function componentTokenFamilyMismatchMessage(file, guardMessage) {
7399
+ let alternative = "";
7400
+ if (file.startsWith("src/tokens/")) {
7401
+ alternative = ` Or, if an earlier DesignerPunk init copied this file, replace it with the package's version at node_modules/@3fn/core/${file} and change its '../../build/tokens' import to '@3fn/core/build'.`;
7402
+ } else if (file.startsWith("src/components/core/")) {
7403
+ alternative = ` Or, if this is an unedited copy an earlier DesignerPunk init made, delete it \u2014 its component tokens then leave your generated ComponentTokens.* files.`;
7404
+ }
7405
+ return `generate stopped \u2014 ${file} declares a component token in the wrong family's defineComponentTokens() call. ${guardMessage} To fix it, split that file's defineComponentTokens() into one call per token family.${alternative} Nothing was written.`;
7406
+ }
7407
+ function componentTokenFileLoadFailedMessage(file, reason) {
7408
+ const firstLine = reason.split(/\r?\n/, 1)[0].trim();
7409
+ return `generate stopped \u2014 ${file} could not be loaded: ${firstLine} Fix the file and run generate again. Nothing was written.`;
7410
+ }
7012
7411
  }
7013
7412
  });
7014
7413
 
7015
7414
  // application-mcp-server/src/index.ts
7016
7415
  var index_exports = {};
7017
7416
  __export(index_exports, {
7018
- createTestableServer: () => createTestableServer
7417
+ createTestableServer: () => createTestableServer,
7418
+ resolveTokenIndexUnavailableMessage: () => resolveTokenIndexUnavailableMessage,
7419
+ tools: () => tools
7019
7420
  });
7020
7421
  module.exports = __toCommonJS(index_exports);
7021
7422
 
@@ -7214,10 +7615,10 @@ function assignProp(target, prop, value) {
7214
7615
  configurable: true
7215
7616
  });
7216
7617
  }
7217
- function getElementAtPath(obj, path10) {
7218
- if (!path10)
7618
+ function getElementAtPath(obj, path11) {
7619
+ if (!path11)
7219
7620
  return obj;
7220
- return path10.reduce((acc, key) => acc?.[key], obj);
7621
+ return path11.reduce((acc, key) => acc?.[key], obj);
7221
7622
  }
7222
7623
  function promiseAllObject(promisesObj) {
7223
7624
  const keys = Object.keys(promisesObj);
@@ -7537,11 +7938,11 @@ function aborted(x, startIndex = 0) {
7537
7938
  }
7538
7939
  return false;
7539
7940
  }
7540
- function prefixIssues(path10, issues) {
7941
+ function prefixIssues(path11, issues) {
7541
7942
  return issues.map((iss) => {
7542
7943
  var _a;
7543
7944
  (_a = iss).path ?? (_a.path = []);
7544
- iss.path.unshift(path10);
7945
+ iss.path.unshift(path11);
7545
7946
  return iss;
7546
7947
  });
7547
7948
  }
@@ -12859,7 +13260,7 @@ var Protocol = class {
12859
13260
  return;
12860
13261
  }
12861
13262
  const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
12862
- await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
13263
+ await new Promise((resolve5) => setTimeout(resolve5, pollInterval));
12863
13264
  options?.signal?.throwIfAborted();
12864
13265
  }
12865
13266
  } catch (error2) {
@@ -12876,7 +13277,7 @@ var Protocol = class {
12876
13277
  */
12877
13278
  request(request, resultSchema, options) {
12878
13279
  const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
12879
- return new Promise((resolve3, reject) => {
13280
+ return new Promise((resolve5, reject) => {
12880
13281
  const earlyReject = (error2) => {
12881
13282
  reject(error2);
12882
13283
  };
@@ -12954,7 +13355,7 @@ var Protocol = class {
12954
13355
  if (!parseResult.success) {
12955
13356
  reject(parseResult.error);
12956
13357
  } else {
12957
- resolve3(parseResult.data);
13358
+ resolve5(parseResult.data);
12958
13359
  }
12959
13360
  } catch (error2) {
12960
13361
  reject(error2);
@@ -13215,12 +13616,12 @@ var Protocol = class {
13215
13616
  }
13216
13617
  } catch {
13217
13618
  }
13218
- return new Promise((resolve3, reject) => {
13619
+ return new Promise((resolve5, reject) => {
13219
13620
  if (signal.aborted) {
13220
13621
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
13221
13622
  return;
13222
13623
  }
13223
- const timeoutId = setTimeout(resolve3, interval);
13624
+ const timeoutId = setTimeout(resolve5, interval);
13224
13625
  signal.addEventListener("abort", () => {
13225
13626
  clearTimeout(timeoutId);
13226
13627
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
@@ -14090,20 +14491,20 @@ var StdioServerTransport = class {
14090
14491
  this.onclose?.();
14091
14492
  }
14092
14493
  send(message) {
14093
- return new Promise((resolve3) => {
14494
+ return new Promise((resolve5) => {
14094
14495
  const json2 = serializeMessage(message);
14095
14496
  if (this._stdout.write(json2)) {
14096
- resolve3();
14497
+ resolve5();
14097
14498
  } else {
14098
- this._stdout.once("drain", resolve3);
14499
+ this._stdout.once("drain", resolve5);
14099
14500
  }
14100
14501
  });
14101
14502
  }
14102
14503
  };
14103
14504
 
14104
14505
  // application-mcp-server/src/indexer/ComponentIndexer.ts
14105
- var fs8 = __toESM(require("fs"));
14106
- var path7 = __toESM(require("path"));
14506
+ var fs11 = __toESM(require("fs"));
14507
+ var path9 = __toESM(require("path"));
14107
14508
 
14108
14509
  // application-mcp-server/src/indexer/parsers.ts
14109
14510
  var fs = __toESM(require("fs"));
@@ -17511,8 +17912,8 @@ var LayoutTemplateIndexer = class {
17511
17912
  };
17512
17913
 
17513
17914
  // application-mcp-server/src/indexer/TokenIndexer.ts
17514
- var fs6 = __toESM(require("fs"));
17515
- var path5 = __toESM(require("path"));
17915
+ var fs8 = __toESM(require("fs"));
17916
+ var path6 = __toESM(require("path"));
17516
17917
 
17517
17918
  // application-mcp-server/src/indexer/TokenRefResolver.ts
17518
17919
  var fs5 = __toESM(require("fs"));
@@ -17643,7 +18044,80 @@ var TokenRefResolver = class {
17643
18044
  }
17644
18045
  };
17645
18046
 
18047
+ // application-mcp-server/src/indexer/SemanticOverrideReader.ts
18048
+ var fs6 = __toESM(require("fs"));
18049
+ var KEY_PATTERN = /^\s*'([^']+)':\s*\{\s*primitiveReferences:/gm;
18050
+ var REF_PAIR_PATTERN = /(?:'([^']+)'|([A-Za-z_$][\w$]*))\s*:\s*'([^']*)'/g;
18051
+ function extractBalancedBlock(content, openIndex) {
18052
+ if (content[openIndex] !== "{") return null;
18053
+ let depth = 0;
18054
+ for (let i = openIndex; i < content.length; i++) {
18055
+ const ch = content[i];
18056
+ if (ch === "{") depth++;
18057
+ else if (ch === "}") {
18058
+ depth--;
18059
+ if (depth === 0) return content.slice(openIndex + 1, i);
18060
+ }
18061
+ }
18062
+ return null;
18063
+ }
18064
+ function parseRefs(block) {
18065
+ const refs = {};
18066
+ REF_PAIR_PATTERN.lastIndex = 0;
18067
+ let match;
18068
+ while ((match = REF_PAIR_PATTERN.exec(block)) !== null) {
18069
+ const key = match[1] ?? match[2];
18070
+ refs[key] = match[3];
18071
+ }
18072
+ return refs;
18073
+ }
18074
+ function parseSemanticOverrides(overridesPath) {
18075
+ const overrides = /* @__PURE__ */ new Map();
18076
+ if (!fs6.existsSync(overridesPath)) return { overrides, fileFound: false };
18077
+ let content;
18078
+ try {
18079
+ content = fs6.readFileSync(overridesPath, "utf-8");
18080
+ } catch {
18081
+ return { overrides, fileFound: false };
18082
+ }
18083
+ KEY_PATTERN.lastIndex = 0;
18084
+ let match;
18085
+ while ((match = KEY_PATTERN.exec(content)) !== null) {
18086
+ const name = match[1];
18087
+ const braceIndex = content.indexOf("{", match.index + match[0].length - 1);
18088
+ const block = braceIndex === -1 ? null : extractBalancedBlock(content, braceIndex);
18089
+ overrides.set(name, block === null ? {} : parseRefs(block));
18090
+ }
18091
+ return { overrides, fileFound: true };
18092
+ }
18093
+
18094
+ // application-mcp-server/src/indexer/resolveThemeTierRoot.ts
18095
+ var fs7 = __toESM(require("fs"));
18096
+ var path5 = __toESM(require("path"));
18097
+ function resolveThemeTierRoot(tokenIndexDir, explicitTierDir, projectRoot) {
18098
+ if (tokenIndexDir) {
18099
+ try {
18100
+ const raw = fs7.readFileSync(path5.join(tokenIndexDir, "meta.json"), "utf8");
18101
+ const meta = JSON.parse(raw);
18102
+ if (typeof meta.tierDir === "string" && meta.tierDir.length > 0) {
18103
+ const recorded = path5.isAbsolute(meta.tierDir) ? meta.tierDir : path5.resolve(tokenIndexDir, meta.tierDir);
18104
+ if (fs7.existsSync(recorded)) return recorded;
18105
+ }
18106
+ } catch {
18107
+ }
18108
+ }
18109
+ if (explicitTierDir) return explicitTierDir;
18110
+ return path5.join(projectRoot, "src", "tokens");
18111
+ }
18112
+
17646
18113
  // application-mcp-server/src/indexer/TokenIndexer.ts
18114
+ function extractDarkModeValue(value) {
18115
+ if (!value || typeof value !== "object") return null;
18116
+ const dark = value.dark;
18117
+ if (!dark || typeof dark !== "object") return null;
18118
+ const base = dark.base;
18119
+ return typeof base === "string" || typeof base === "number" ? base : null;
18120
+ }
17647
18121
  var TokenIndexer = class {
17648
18122
  constructor() {
17649
18123
  this.primitives = /* @__PURE__ */ new Map();
@@ -17651,20 +18125,38 @@ var TokenIndexer = class {
17651
18125
  this.componentTokens = /* @__PURE__ */ new Map();
17652
18126
  this.consumerIndex = /* @__PURE__ */ new Map();
17653
18127
  this.warnings = [];
18128
+ // Level 2 dark overrides, text-parsed from src/tokens/themes/dark/SemanticOverrides.ts
18129
+ // (issue 2026-09-12). Empty map = no overrides loaded; see the ThemeResolutions contract.
18130
+ this.darkOverrides = /* @__PURE__ */ new Map();
17654
18131
  }
17655
- async indexTokens(tokenIndexDir) {
18132
+ /**
18133
+ * @param tokenIndexDir Directory holding primitives/semantics/components.yaml. Also where
18134
+ * `meta.json`'s `tierDir` is read from (Spec 123 Task 1.5, DD24) —
18135
+ * the AUTHORITATIVE theme-root source when present.
18136
+ * @param projectRoot LEGACY fallback used only when neither `meta.json` nor
18137
+ * `explicitTierDir` resolves a tier. Defaults to the token index's
18138
+ * parent (`<root>/token-index` is the standard layout).
18139
+ * @param explicitTierDir The caller's own resolved tier (e.g. `DesignSystemRoot.tierDir`),
18140
+ * used when `meta.json` is absent (a pre-1.5 index) — second
18141
+ * precedence, per `resolveThemeTierRoot`.
18142
+ */
18143
+ async indexTokens(tokenIndexDir, projectRoot, explicitTierDir) {
17656
18144
  this.primitives.clear();
17657
18145
  this.semantics.clear();
17658
18146
  this.componentTokens.clear();
17659
18147
  this.consumerIndex.clear();
18148
+ this.darkOverrides.clear();
17660
18149
  this.warnings = [];
17661
- if (!fs6.existsSync(tokenIndexDir)) {
18150
+ this.loadThemeOverrides(
18151
+ resolveThemeTierRoot(tokenIndexDir, explicitTierDir, projectRoot ?? path6.resolve(tokenIndexDir, ".."))
18152
+ );
18153
+ if (!fs8.existsSync(tokenIndexDir)) {
17662
18154
  this.warnings.push(`Token index directory not found: ${tokenIndexDir}`);
17663
18155
  return;
17664
18156
  }
17665
- this.loadTier(path5.join(tokenIndexDir, "primitives.yaml"), "primitive", this.primitives);
17666
- this.loadTier(path5.join(tokenIndexDir, "semantics.yaml"), "semantic", this.semantics);
17667
- this.loadTier(path5.join(tokenIndexDir, "components.yaml"), "component", this.componentTokens);
18157
+ this.loadTier(path6.join(tokenIndexDir, "primitives.yaml"), "primitive", this.primitives);
18158
+ this.loadTier(path6.join(tokenIndexDir, "semantics.yaml"), "semantic", this.semantics);
18159
+ this.loadTier(path6.join(tokenIndexDir, "components.yaml"), "component", this.componentTokens);
17668
18160
  this.resolver = new TokenRefResolver(tokenIndexDir);
17669
18161
  this.resolver.load();
17670
18162
  this.buildConsumerIndex();
@@ -17690,7 +18182,8 @@ var TokenIndexer = class {
17690
18182
  getDetails(name) {
17691
18183
  const entry = this.primitives.get(name) || this.semantics.get(name) || this.componentTokens.get(name) || null;
17692
18184
  if (!entry) return null;
17693
- return { ...entry, ...this.resolveTriple(name) };
18185
+ const triple = this.resolveTriple(name);
18186
+ return { ...entry, ...triple, themeResolutions: this.resolveThemeResolutions(name, triple) };
17694
18187
  }
17695
18188
  /**
17696
18189
  * Map TokenRefResolver's ResolvedRef → the resolved-value triple (Req 2 null-contract, verbatim):
@@ -17710,6 +18203,80 @@ var TokenIndexer = class {
17710
18203
  resolutionDepth: resolved.depth
17711
18204
  };
17712
18205
  }
18206
+ /**
18207
+ * Build the theme-scoped resolutions for a token (issue 2026-09-12).
18208
+ * Currently one theme: `dark`. See the ThemeResolutions doc for the null contract and for
18209
+ * why wcag/dark-wcag are deliberately not resolved here.
18210
+ *
18211
+ * @param baseTriple the token's base resolution — used only as the unitType fallback, so the
18212
+ * theme branch and the base branch agree on unit typing without
18213
+ * duplicating TokenRefResolver's category→unit table.
18214
+ */
18215
+ resolveThemeResolutions(name, baseTriple) {
18216
+ const refs = this.darkOverrides.get(name);
18217
+ if (!refs) return { dark: null };
18218
+ return { dark: this.resolveOverride(name, refs, baseTriple) };
18219
+ }
18220
+ /**
18221
+ * Resolve one override's primitiveReferences through the same chain the base triple uses.
18222
+ * Primary-ref extraction mirrors TokenRefResolver.extractPrimaryRef exactly (single key →
18223
+ * that key; multi-key with `value` → `value`; otherwise composite → partial).
18224
+ */
18225
+ resolveOverride(name, refs, baseTriple) {
18226
+ const keys = Object.keys(refs);
18227
+ const primaryRef = keys.length === 1 ? refs[keys[0]] : "value" in refs ? refs.value : null;
18228
+ if (primaryRef == null) {
18229
+ return {
18230
+ primitiveReferences: { ...refs },
18231
+ resolvedValue: name,
18232
+ resolvedUnitType: baseTriple.resolvedUnitType,
18233
+ resolutionDepth: "partial",
18234
+ modeValue: null
18235
+ };
18236
+ }
18237
+ const resolved = this.resolver?.resolve(primaryRef) ?? null;
18238
+ if (!resolved) {
18239
+ return {
18240
+ primitiveReferences: { ...refs },
18241
+ resolvedValue: primaryRef,
18242
+ resolvedUnitType: baseTriple.resolvedUnitType,
18243
+ resolutionDepth: "partial",
18244
+ modeValue: null
18245
+ };
18246
+ }
18247
+ return {
18248
+ primitiveReferences: { ...refs },
18249
+ resolvedValue: resolved.value,
18250
+ resolvedUnitType: resolved.unitType,
18251
+ resolutionDepth: resolved.depth,
18252
+ modeValue: extractDarkModeValue(resolved.value)
18253
+ };
18254
+ }
18255
+ /**
18256
+ * Load theme override files. Text-parsed — no coupling to the token pipeline.
18257
+ * A missing file is WARNED (not silent): without it every token reports `dark: null`,
18258
+ * which is indistinguishable from "no override" at the field level.
18259
+ *
18260
+ * @param tierRoot The resolved theme TIER ROOT (`resolveThemeTierRoot`'s return) — NOT a
18261
+ * project root. `themes/dark/SemanticOverrides.ts` is read directly under it (Spec 123
18262
+ * Task 1.5, DD24).
18263
+ */
18264
+ loadThemeOverrides(tierRoot) {
18265
+ const darkPath = path6.join(tierRoot, "themes/dark/SemanticOverrides.ts");
18266
+ const { overrides, fileFound } = parseSemanticOverrides(darkPath);
18267
+ if (!fileFound) {
18268
+ this.warnings.push(
18269
+ `Dark theme overrides not found: ${darkPath} \u2014 get_token_details will report themeResolutions.dark = null for every token`
18270
+ );
18271
+ return;
18272
+ }
18273
+ if (overrides.size === 0) {
18274
+ this.warnings.push(
18275
+ `Dark theme overrides parsed to 0 entries: ${darkPath} \u2014 the file exists but no override entries matched (parser may be stale)`
18276
+ );
18277
+ }
18278
+ this.darkOverrides = overrides;
18279
+ }
17713
18280
  getFamily(family) {
17714
18281
  const f = family.toLowerCase();
17715
18282
  const results = [];
@@ -17738,9 +18305,9 @@ var TokenIndexer = class {
17738
18305
  }
17739
18306
  // --- Private ---
17740
18307
  loadTier(filePath, tier, map2) {
17741
- if (!fs6.existsSync(filePath)) return;
18308
+ if (!fs8.existsSync(filePath)) return;
17742
18309
  try {
17743
- const content = fs6.readFileSync(filePath, "utf-8");
18310
+ const content = fs8.readFileSync(filePath, "utf-8");
17744
18311
  const data = load(content);
17745
18312
  if (!data?.tokens) return;
17746
18313
  for (const [name, entry] of Object.entries(data.tokens)) {
@@ -17779,8 +18346,8 @@ var TokenIndexer = class {
17779
18346
  };
17780
18347
 
17781
18348
  // application-mcp-server/src/indexer/ModeClassifier.ts
17782
- var fs7 = __toESM(require("fs"));
17783
- var path6 = __toESM(require("path"));
18349
+ var fs9 = __toESM(require("fs"));
18350
+ var path7 = __toESM(require("path"));
17784
18351
  var MODE_INVARIANT_TOKENS = /* @__PURE__ */ new Set([
17785
18352
  "color.scrim.standard",
17786
18353
  "color.print.default",
@@ -17797,15 +18364,7 @@ function isColorToken(name) {
17797
18364
  return COLOR_PREFIXES.some((p) => name.startsWith(p));
17798
18365
  }
17799
18366
  function extractOverrideKeys(overridesPath) {
17800
- const keys = /* @__PURE__ */ new Set();
17801
- if (!fs7.existsSync(overridesPath)) return keys;
17802
- const content = fs7.readFileSync(overridesPath, "utf-8");
17803
- const keyPattern = /^\s*'([^']+)':\s*\{\s*primitiveReferences:/gm;
17804
- let match;
17805
- while ((match = keyPattern.exec(content)) !== null) {
17806
- keys.add(match[1]);
17807
- }
17808
- return keys;
18367
+ return new Set(parseSemanticOverrides(overridesPath).overrides.keys());
17809
18368
  }
17810
18369
  var ModeClassifier = class {
17811
18370
  constructor() {
@@ -17814,12 +18373,26 @@ var ModeClassifier = class {
17814
18373
  }
17815
18374
  /**
17816
18375
  * Load classification data from the project's SemanticOverrides file.
17817
- * @param projectRoot Absolute path to the project root
18376
+ *
18377
+ * Spec 123 Task 1.5 (DD24 — "the theme root travels with the index"): the theme
18378
+ * root is resolved via `resolveThemeTierRoot` (meta.json's `tierDir` → the
18379
+ * caller's explicit tier → the legacy `<projectRoot>/src/tokens` default), NOT
18380
+ * hardcoded to `<projectRoot>/src/tokens` — that hardcoding is wrong for
18381
+ * package-mode consumers, whose live tier is the PACKAGE's `src/tokens`.
18382
+ *
18383
+ * @param projectRoot Absolute path to the project root (the LEGACY fallback tier
18384
+ * base — kept as the third-precedence source; unchanged callers see identical
18385
+ * behavior when neither `tokenIndexDir` nor `explicitTierDir` is passed).
18386
+ * @param tokenIndexDir The served token-index directory, so `meta.json`'s
18387
+ * recorded `tierDir` can be read (optional — omit when unknown).
18388
+ * @param explicitTierDir The caller's own resolved tier (e.g.
18389
+ * `DesignSystemRoot.tierDir`), used when `meta.json` is absent (optional).
17818
18390
  */
17819
- load(projectRoot) {
17820
- const overridesPath = path6.join(projectRoot, "src/tokens/themes/dark/SemanticOverrides.ts");
18391
+ load(projectRoot, tokenIndexDir, explicitTierDir) {
18392
+ const tierRoot = resolveThemeTierRoot(tokenIndexDir, explicitTierDir, projectRoot);
18393
+ const overridesPath = path7.join(tierRoot, "themes/dark/SemanticOverrides.ts");
17821
18394
  this.level2Keys = extractOverrideKeys(overridesPath);
17822
- if (!fs7.existsSync(overridesPath)) {
18395
+ if (!fs9.existsSync(overridesPath)) {
17823
18396
  this.warnings.push("SemanticOverrides.ts not found \u2014 mode classification unavailable");
17824
18397
  }
17825
18398
  }
@@ -17844,7 +18417,95 @@ var ModeClassifier = class {
17844
18417
  }
17845
18418
  };
17846
18419
 
18420
+ // application-mcp-server/src/staleness/StalenessGate.ts
18421
+ var fs10 = __toESM(require("fs"));
18422
+ var path8 = __toESM(require("path"));
18423
+ var StalenessGate = class {
18424
+ constructor(config2) {
18425
+ this.lastCheckTime = 0;
18426
+ this.lastIndexTime = 0;
18427
+ this.dataDirs = config2.dataDirs;
18428
+ this.fileExtensions = new Set(config2.fileExtensions);
18429
+ this.thresholdMs = config2.thresholdMs ?? 3e4;
18430
+ this.isImmutable = config2.isImmutable ?? false;
18431
+ this.onRebuild = config2.onRebuild;
18432
+ }
18433
+ /**
18434
+ * Call before every data-returning tool.
18435
+ * Returns true if a rebuild was triggered.
18436
+ */
18437
+ async checkAndRebuildIfNeeded() {
18438
+ if (this.isImmutable) return false;
18439
+ const now = Date.now();
18440
+ if (now - this.lastCheckTime < this.thresholdMs) return false;
18441
+ this.lastCheckTime = now;
18442
+ const staleFiles = this.getStaleFiles();
18443
+ if (staleFiles.length === 0) return false;
18444
+ console.error("\u26A0\uFE0F Index stale \u2014 rebuilding...");
18445
+ await this.onRebuild();
18446
+ this.markIndexed();
18447
+ return true;
18448
+ }
18449
+ /** Update lastIndexTime after successful index/rebuild. */
18450
+ markIndexed() {
18451
+ this.lastIndexTime = Date.now();
18452
+ }
18453
+ /** Get files newer than lastIndexTime. */
18454
+ getStaleFiles() {
18455
+ if (this.isImmutable) return [];
18456
+ if (this.lastIndexTime === 0) return [];
18457
+ const stale = [];
18458
+ for (const dir of this.dataDirs) {
18459
+ if (!fs10.existsSync(dir)) continue;
18460
+ this.scanDir(dir, stale);
18461
+ }
18462
+ return stale;
18463
+ }
18464
+ scanDir(dir, stale) {
18465
+ let entries;
18466
+ try {
18467
+ entries = fs10.readdirSync(dir, { withFileTypes: true });
18468
+ } catch {
18469
+ return;
18470
+ }
18471
+ for (const entry of entries) {
18472
+ const fullPath = path8.join(dir, entry.name);
18473
+ if (entry.isDirectory()) {
18474
+ this.scanDir(fullPath, stale);
18475
+ } else if (this.fileExtensions.has(path8.extname(entry.name))) {
18476
+ try {
18477
+ const mtime = fs10.statSync(fullPath).mtimeMs;
18478
+ if (mtime > this.lastIndexTime) {
18479
+ stale.push(fullPath);
18480
+ }
18481
+ } catch {
18482
+ }
18483
+ }
18484
+ }
18485
+ }
18486
+ };
18487
+ function isImmutableContext(dataPath) {
18488
+ return dataPath.includes("/node_modules/");
18489
+ }
18490
+
17847
18491
  // application-mcp-server/src/indexer/ComponentIndexer.ts
18492
+ function mutableComponentRoots(roots) {
18493
+ return roots.filter((r) => !isImmutableContext(r));
18494
+ }
18495
+ function normalizeRoots(componentsDir) {
18496
+ const list = Array.isArray(componentsDir) ? componentsDir : [componentsDir];
18497
+ const seen = /* @__PURE__ */ new Set();
18498
+ const out = [];
18499
+ for (const r of list) {
18500
+ if (!r) continue;
18501
+ const abs = path9.resolve(r);
18502
+ if (seen.has(abs)) continue;
18503
+ seen.add(abs);
18504
+ out.push(abs);
18505
+ }
18506
+ return out;
18507
+ }
18508
+ var LEGACY_LEVEL_DIR = "core";
17848
18509
  function tokenizeString(input) {
17849
18510
  if (!input) return [];
17850
18511
  const dehyphenated = input.replace(/[-_]+/g, " ");
@@ -17860,6 +18521,12 @@ var ComponentIndexer = class {
17860
18521
  this.layoutTemplateIndexer = new LayoutTemplateIndexer();
17861
18522
  this.tokenIndexer = new TokenIndexer();
17862
18523
  this.modeClassifier = new ModeClassifier();
18524
+ /** The pass-1 root set, precedence order (consumer first, package last). */
18525
+ this.componentRoots = [];
18526
+ /** Declared component name → the precedence winner's source (Spec 123 C3: precedence keys on the DECLARED name). */
18527
+ this.ownerByDeclaredName = /* @__PURE__ */ new Map();
18528
+ /** Component directory → the index key (schema name) it produced — lets a reindex remove exactly its own entry. */
18529
+ this.indexKeyByDir = /* @__PURE__ */ new Map();
17863
18530
  this.lastIndexTime = "";
17864
18531
  this.lastIndexTimeMs = 0;
17865
18532
  this.indexWarnings = [];
@@ -17868,44 +18535,72 @@ var ComponentIndexer = class {
17868
18535
  this.keywordIndex = /* @__PURE__ */ new Map();
17869
18536
  }
17870
18537
  /**
17871
- * Scan component directories and build initial index.
18538
+ * Scan the component root set and build the index.
18539
+ *
18540
+ * `componentsDir` is the pass-1 ROOT SET in precedence order — consumer root first, package
18541
+ * root last (Spec 123 C3; `resolveComponentRoots` produces it). A single string is the legacy
18542
+ * single-root form. The union is applied AT PASS 1: the contracts cache is filled from every
18543
+ * root before any component is assembled, so a consumer fork inheriting a package parent
18544
+ * resolves (Req 2.5). Precedence keys on the DECLARED component name (the contracts
18545
+ * `component` field; the schema `name` when a component has no contracts), never the
18546
+ * directory name.
17872
18547
  */
17873
- async indexComponents(componentsDir, patternsDir, templatesDir, guidanceDir, tokenIndexDir) {
18548
+ async indexComponents(componentsDir, patternsDir, templatesDir, guidanceDir, tokenIndexDir, options = {}) {
17874
18549
  this.index.clear();
17875
18550
  this.contractsCache.clear();
17876
18551
  this.keywordIndex.clear();
18552
+ this.ownerByDeclaredName.clear();
18553
+ this.indexKeyByDir.clear();
17877
18554
  this.indexWarnings = [];
17878
- this.dataDirs = [componentsDir, patternsDir, templatesDir, guidanceDir, tokenIndexDir].filter(Boolean);
17879
- if (!fs8.existsSync(componentsDir)) {
17880
- this.indexWarnings.push(`Components directory not found: ${componentsDir}`);
18555
+ const roots = normalizeRoots(componentsDir);
18556
+ this.componentRoots = roots;
18557
+ const packageComponentsRoot = roots[roots.length - 1] ?? path9.resolve(String(componentsDir));
18558
+ const legacyProjectRoot = path9.resolve(packageComponentsRoot, "..", "..", "..");
18559
+ const projectRoot = options.projectRoot ? path9.resolve(options.projectRoot) : legacyProjectRoot;
18560
+ this.bornRoot = projectRoot;
18561
+ this.explicitTierDir = options.tierDir;
18562
+ this.dataDirs = [...mutableComponentRoots(roots), patternsDir, templatesDir, guidanceDir, tokenIndexDir].filter(Boolean);
18563
+ const existingRoots = roots.filter((r) => fs11.existsSync(r));
18564
+ if (existingRoots.length === 0) {
18565
+ for (const r of roots) this.indexWarnings.push(`Components directory not found: ${r}`);
17881
18566
  this.lastIndexTime = (/* @__PURE__ */ new Date()).toISOString();
17882
18567
  return;
17883
18568
  }
17884
- const dirs = fs8.readdirSync(componentsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
17885
- for (const dir of dirs) {
17886
- const contractsPath = path7.join(componentsDir, dir, "contracts.yaml");
17887
- const contractsResult = parseContractsYaml(contractsPath);
18569
+ const winners = [];
18570
+ for (const source of this.collectComponentSources(roots)) {
18571
+ const owner = this.ownerByDeclaredName.get(source.declaredName);
18572
+ if (owner) {
18573
+ if (owner.rank === source.rank) {
18574
+ this.indexWarnings.push(
18575
+ `Duplicate declared component name ${source.declaredName}: ${source.dirPath} is shadowed by ${owner.dirPath}`
18576
+ );
18577
+ }
18578
+ continue;
18579
+ }
18580
+ this.ownerByDeclaredName.set(source.declaredName, { dirPath: source.dirPath, rank: source.rank });
18581
+ winners.push(source);
18582
+ const contractsResult = parseContractsYaml(path9.join(source.dirPath, "contracts.yaml"));
17888
18583
  if (contractsResult.data) {
17889
18584
  this.contractsCache.set(contractsResult.data.component, contractsResult.data);
17890
18585
  }
17891
18586
  }
17892
- const projectRoot = path7.resolve(componentsDir, "..", "..", "..");
17893
- this.modeClassifier.load(projectRoot);
17894
- for (const dir of dirs) {
17895
- this.assembleComponent(componentsDir, dir);
18587
+ this.modeClassifier.load(projectRoot, tokenIndexDir, options.tierDir);
18588
+ for (const source of winners) {
18589
+ const key = this.assembleComponent(source.dirPath);
18590
+ if (key) this.indexKeyByDir.set(source.dirPath, key);
17896
18591
  }
17897
18592
  this.resolveComposedTokens();
17898
- const effectivePatternsDir = patternsDir || path7.resolve(componentsDir, "..", "..", "..", "experience-patterns");
18593
+ const effectivePatternsDir = patternsDir || path9.join(legacyProjectRoot, "experience-patterns");
17899
18594
  await this.patternIndexer.indexPatterns(effectivePatternsDir);
17900
- const effectiveTemplatesDir = templatesDir || path7.resolve(componentsDir, "..", "..", "..", "layout-templates");
18595
+ const effectiveTemplatesDir = templatesDir || path9.join(legacyProjectRoot, "layout-templates");
17901
18596
  await this.layoutTemplateIndexer.indexTemplates(effectiveTemplatesDir);
17902
- const effectiveGuidanceDir = guidanceDir || path7.resolve(componentsDir, "..", "..", "..", "family-guidance");
18597
+ const effectiveGuidanceDir = guidanceDir || path9.join(legacyProjectRoot, "family-guidance");
17903
18598
  await this.guidanceIndexer.indexGuidance(effectiveGuidanceDir);
17904
18599
  const componentNames = new Set(Array.from(this.index.keys()));
17905
18600
  const patternNames = new Set(this.patternIndexer.getCatalog().map((p) => p.name));
17906
18601
  this.guidanceIndexer.validateCrossReferences(componentNames, patternNames, projectRoot);
17907
18602
  if (tokenIndexDir) {
17908
- await this.tokenIndexer.indexTokens(tokenIndexDir);
18603
+ await this.tokenIndexer.indexTokens(tokenIndexDir, projectRoot, options.tierDir);
17909
18604
  }
17910
18605
  this.lastIndexTime = (/* @__PURE__ */ new Date()).toISOString();
17911
18606
  this.lastIndexTimeMs = this.computeMaxMtime();
@@ -17914,7 +18609,7 @@ var ComponentIndexer = class {
17914
18609
  computeMaxMtime() {
17915
18610
  let max = 0;
17916
18611
  for (const dir of this.dataDirs) {
17917
- if (!fs8.existsSync(dir)) continue;
18612
+ if (!fs11.existsSync(dir)) continue;
17918
18613
  this.walkMaxMtime(dir, (mtime) => {
17919
18614
  if (mtime > max) max = mtime;
17920
18615
  });
@@ -17924,41 +18619,55 @@ var ComponentIndexer = class {
17924
18619
  walkMaxMtime(dir, cb) {
17925
18620
  let entries;
17926
18621
  try {
17927
- entries = fs8.readdirSync(dir, { withFileTypes: true });
18622
+ entries = fs11.readdirSync(dir, { withFileTypes: true });
17928
18623
  } catch {
17929
18624
  return;
17930
18625
  }
17931
18626
  for (const entry of entries) {
17932
- const fullPath = path7.join(dir, entry.name);
18627
+ const fullPath = path9.join(dir, entry.name);
17933
18628
  if (entry.isDirectory()) {
17934
18629
  this.walkMaxMtime(fullPath, cb);
17935
18630
  } else {
17936
18631
  try {
17937
- cb(fs8.statSync(fullPath).mtimeMs);
18632
+ cb(fs11.statSync(fullPath).mtimeMs);
17938
18633
  } catch {
17939
18634
  }
17940
18635
  }
17941
18636
  }
17942
18637
  }
17943
18638
  /**
17944
- * Re-index a single component after file change.
18639
+ * Re-index a single component after a file change (watcher path).
18640
+ *
18641
+ * Precedence-aware (Spec 123 C3): a directory whose declared name is owned by a
18642
+ * higher-precedence source is shadowed and left out; a consumer component ADDED over a
18643
+ * package one of the same declared name replaces it. Only the entry this directory
18644
+ * produced is removed first (the pre-123 removal loop deleted an arbitrary first entry —
18645
+ * `path.basename(componentDir) === dir` was always true).
17945
18646
  */
17946
18647
  async reindexComponent(componentDir) {
17947
- const dir = path7.basename(componentDir);
17948
- const componentsDir = path7.dirname(componentDir);
17949
- const contractsPath = path7.join(componentDir, "contracts.yaml");
17950
- const contractsResult = parseContractsYaml(contractsPath);
18648
+ const dirPath = path9.resolve(componentDir);
18649
+ const rank = this.rankOf(dirPath);
18650
+ const declaredName = this.declaredNameOf(dirPath);
18651
+ const owner = this.ownerByDeclaredName.get(declaredName);
18652
+ if (owner && owner.dirPath !== dirPath && owner.rank <= rank && fs11.existsSync(owner.dirPath)) {
18653
+ return;
18654
+ }
18655
+ const oldKey = this.indexKeyByDir.get(dirPath);
18656
+ if (oldKey !== void 0) {
18657
+ this.index.delete(oldKey);
18658
+ this.keywordIndex.delete(oldKey);
18659
+ this.indexKeyByDir.delete(dirPath);
18660
+ }
18661
+ for (const [name, src] of this.ownerByDeclaredName) {
18662
+ if (src.dirPath === dirPath) this.ownerByDeclaredName.delete(name);
18663
+ }
18664
+ const contractsResult = parseContractsYaml(path9.join(dirPath, "contracts.yaml"));
17951
18665
  if (contractsResult.data) {
17952
18666
  this.contractsCache.set(contractsResult.data.component, contractsResult.data);
17953
18667
  }
17954
- for (const [name, meta] of this.index) {
17955
- if (meta.name === dir || path7.basename(componentDir) === dir) {
17956
- this.index.delete(name);
17957
- this.keywordIndex.delete(name);
17958
- break;
17959
- }
17960
- }
17961
- this.assembleComponent(componentsDir, dir);
18668
+ this.ownerByDeclaredName.set(declaredName, { dirPath, rank });
18669
+ const key = this.assembleComponent(dirPath);
18670
+ if (key) this.indexKeyByDir.set(dirPath, key);
17962
18671
  this.resolveComposedTokens();
17963
18672
  this.lastIndexTime = (/* @__PURE__ */ new Date()).toISOString();
17964
18673
  }
@@ -17980,9 +18689,19 @@ var ComponentIndexer = class {
17980
18689
  this.lastIndexTime = (/* @__PURE__ */ new Date()).toISOString();
17981
18690
  this.lastIndexTimeMs = this.computeMaxMtime();
17982
18691
  }
17983
- /** Re-index token data from the given directory. */
18692
+ /**
18693
+ * Re-index token data from the given directory (file-watcher path).
18694
+ * Anchors on `bornRoot` — the explicit anchor the last full index was given (C3
18695
+ * `projectRoot = bornRoot`) — so theme overrides resolve from the same place a full reindex
18696
+ * uses (issue 2026-09-12). Never re-derived from a component root (Spec 123 Task 1.4 (iv)).
18697
+ *
18698
+ * Spec 123 Task 1.5 (DD24): `indexTokens` re-reads `<tokenIndexDir>/meta.json` on EVERY
18699
+ * call (including this one), so a `generate` re-run that changes the recorded `tierDir`
18700
+ * is picked up here too — the theme root "follows the served index," never a stale
18701
+ * snapshot from the last full index.
18702
+ */
17984
18703
  async reindexTokens(tokenIndexDir) {
17985
- await this.tokenIndexer.indexTokens(tokenIndexDir);
18704
+ await this.tokenIndexer.indexTokens(tokenIndexDir, this.bornRoot, this.explicitTierDir);
17986
18705
  this.lastIndexTime = (/* @__PURE__ */ new Date()).toISOString();
17987
18706
  this.lastIndexTimeMs = this.computeMaxMtime();
17988
18707
  }
@@ -18043,7 +18762,7 @@ var ComponentIndexer = class {
18043
18762
  if (this.lastIndexTimeMs === 0) return [];
18044
18763
  const stale = [];
18045
18764
  for (const dir of this.dataDirs) {
18046
- if (!fs8.existsSync(dir)) continue;
18765
+ if (!fs11.existsSync(dir)) continue;
18047
18766
  this.scanForStaleFiles(dir, stale);
18048
18767
  }
18049
18768
  return stale;
@@ -18051,17 +18770,17 @@ var ComponentIndexer = class {
18051
18770
  scanForStaleFiles(dir, stale) {
18052
18771
  let entries;
18053
18772
  try {
18054
- entries = fs8.readdirSync(dir, { withFileTypes: true });
18773
+ entries = fs11.readdirSync(dir, { withFileTypes: true });
18055
18774
  } catch {
18056
18775
  return;
18057
18776
  }
18058
18777
  for (const entry of entries) {
18059
- const fullPath = path7.join(dir, entry.name);
18778
+ const fullPath = path9.join(dir, entry.name);
18060
18779
  if (entry.isDirectory()) {
18061
18780
  this.scanForStaleFiles(fullPath, stale);
18062
18781
  } else if (entry.name.endsWith(".yaml") || entry.name.endsWith(".md") || entry.name.endsWith(".ts")) {
18063
18782
  try {
18064
- if (fs8.statSync(fullPath).mtimeMs > this.lastIndexTimeMs) {
18783
+ if (fs11.statSync(fullPath).mtimeMs > this.lastIndexTimeMs) {
18065
18784
  stale.push(fullPath);
18066
18785
  }
18067
18786
  } catch {
@@ -18108,20 +18827,99 @@ var ComponentIndexer = class {
18108
18827
  // ---------------------------------------------------------------------------
18109
18828
  // Private
18110
18829
  // ---------------------------------------------------------------------------
18111
- assembleComponent(componentsDir, dir) {
18112
- const dirPath = path7.join(componentsDir, dir);
18113
- const schemaFile = fs8.readdirSync(dirPath).find((f) => f.endsWith(".schema.yaml"));
18830
+ /**
18831
+ * Collect every component directory across the root set, in precedence order.
18832
+ * Under a root, a `core/` directory that holds component directories is recognized as ONE
18833
+ * legacy level (L-D8 — the pre-123 copy layout), with a named warning on each load; its
18834
+ * components rank with that root. A legacy level that IS another root in the set (the steward
18835
+ * repo: `src/components/core` is the package root) is left to that root.
18836
+ */
18837
+ collectComponentSources(roots) {
18838
+ const sources = [];
18839
+ const rootSet = new Set(roots);
18840
+ roots.forEach((root, rank) => {
18841
+ if (!fs11.existsSync(root)) return;
18842
+ const children = fs11.readdirSync(root, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
18843
+ const legacyDirs = [];
18844
+ for (const dir of children) {
18845
+ const dirPath = path9.join(root, dir);
18846
+ if (dir === LEGACY_LEVEL_DIR && !rootSet.has(dirPath)) {
18847
+ const nested = fs11.readdirSync(dirPath, { withFileTypes: true }).filter((d) => d.isDirectory() && this.isComponentDir(path9.join(dirPath, d.name))).map((d) => d.name);
18848
+ if (nested.length > 0 && !this.isComponentDir(dirPath)) {
18849
+ legacyDirs.push(...nested);
18850
+ continue;
18851
+ }
18852
+ }
18853
+ if (dir === LEGACY_LEVEL_DIR && rootSet.has(dirPath)) continue;
18854
+ sources.push({ dirPath, dir, rank, declaredName: this.declaredNameOf(dirPath) });
18855
+ }
18856
+ if (legacyDirs.length > 0) {
18857
+ const legacyRoot = path9.join(root, LEGACY_LEVEL_DIR);
18858
+ this.indexWarnings.push(
18859
+ `Legacy component level: ${legacyRoot} holds ${legacyDirs.length} component(s) in the pre-123 'core/' layout \u2014 indexed as one legacy level; move them up to ${root}`
18860
+ );
18861
+ for (const dir of legacyDirs) {
18862
+ const dirPath = path9.join(legacyRoot, dir);
18863
+ sources.push({ dirPath, dir, rank, declaredName: this.declaredNameOf(dirPath) });
18864
+ }
18865
+ }
18866
+ });
18867
+ return sources;
18868
+ }
18869
+ /** A component directory holds a `*.schema.yaml` or a `contracts.yaml`. */
18870
+ isComponentDir(dirPath) {
18871
+ try {
18872
+ const files = fs11.readdirSync(dirPath);
18873
+ return files.some((f) => f.endsWith(".schema.yaml")) || files.includes("contracts.yaml");
18874
+ } catch {
18875
+ return false;
18876
+ }
18877
+ }
18878
+ /**
18879
+ * The DECLARED component name of a directory — the contracts `component` field; the schema
18880
+ * `name` when there are no contracts; the directory name only as a last resort (so the
18881
+ * assembly step still reports the directory's own warning).
18882
+ */
18883
+ declaredNameOf(dirPath) {
18884
+ const contracts = parseContractsYaml(path9.join(dirPath, "contracts.yaml")).data;
18885
+ if (contracts?.component) return contracts.component;
18886
+ try {
18887
+ const schemaFile = fs11.readdirSync(dirPath).find((f) => f.endsWith(".schema.yaml"));
18888
+ if (schemaFile) {
18889
+ const schema2 = parseSchemaYaml(path9.join(dirPath, schemaFile)).data;
18890
+ if (schema2?.name) return schema2.name;
18891
+ }
18892
+ } catch {
18893
+ }
18894
+ return path9.basename(dirPath);
18895
+ }
18896
+ /** Precedence rank of a component directory: the index of the longest root containing it. */
18897
+ rankOf(dirPath) {
18898
+ let best = -1;
18899
+ let bestLen = -1;
18900
+ this.componentRoots.forEach((root, i) => {
18901
+ if ((dirPath === root || dirPath.startsWith(root + path9.sep)) && root.length > bestLen) {
18902
+ best = i;
18903
+ bestLen = root.length;
18904
+ }
18905
+ });
18906
+ return best === -1 ? 0 : best;
18907
+ }
18908
+ /** Assemble one component directory into the index; returns its index key (schema name) or null. */
18909
+ assembleComponent(dirPath) {
18910
+ const dir = path9.basename(dirPath);
18911
+ const schemaFile = fs11.readdirSync(dirPath).find((f) => f.endsWith(".schema.yaml"));
18114
18912
  if (!schemaFile) {
18115
18913
  this.indexWarnings.push(`Component directory has no schema.yaml: ${dir}`);
18116
- return;
18914
+ return null;
18117
18915
  }
18118
- const schemaResult = parseSchemaYaml(path7.join(dirPath, schemaFile));
18916
+ const schemaResult = parseSchemaYaml(path9.join(dirPath, schemaFile));
18119
18917
  if (!schemaResult.data) {
18120
18918
  if (schemaResult.warning) this.indexWarnings.push(schemaResult.warning);
18121
- return;
18919
+ return null;
18122
18920
  }
18123
18921
  const schema2 = schemaResult.data;
18124
- const contractsResult = parseContractsYaml(path7.join(dirPath, "contracts.yaml"));
18922
+ const contractsResult = parseContractsYaml(path9.join(dirPath, "contracts.yaml"));
18125
18923
  let contracts;
18126
18924
  const warnings = [];
18127
18925
  if (contractsResult.data) {
@@ -18138,7 +18936,7 @@ var ComponentIndexer = class {
18138
18936
  if (contractsResult.warning) warnings.push(contractsResult.warning);
18139
18937
  contracts = { inheritsFrom: null, active: {}, excluded: {}, own: [], inherited: [] };
18140
18938
  }
18141
- const metaResult = parseComponentMetaYaml(path7.join(dirPath, "component-meta.yaml"));
18939
+ const metaResult = parseComponentMetaYaml(path9.join(dirPath, "component-meta.yaml"));
18142
18940
  if (schema2.omits.length > 0) {
18143
18941
  const parentName = contracts.inheritsFrom;
18144
18942
  const parentMeta = parentName ? this.index.get(parentName) : null;
@@ -18177,6 +18975,7 @@ var ComponentIndexer = class {
18177
18975
  };
18178
18976
  this.index.set(schema2.name, metadata);
18179
18977
  this.buildKeywordEntry(schema2.name, metadata);
18978
+ return schema2.name;
18180
18979
  }
18181
18980
  /**
18182
18981
  * Build the per-component keyword index entry.
@@ -18227,9 +19026,9 @@ var ComponentIndexer = class {
18227
19026
  * Design Decision 4 (Spec 086).
18228
19027
  */
18229
19028
  derivePlatformReadiness(componentDir, schemaReadiness) {
18230
- const hasSchema = fs8.readdirSync(componentDir).some((f) => f.endsWith(".schema.yaml"));
18231
- const hasContracts = fs8.existsSync(path7.join(componentDir, "contracts.yaml"));
18232
- const hasTypes = fs8.existsSync(path7.join(componentDir, "types.ts"));
19029
+ const hasSchema = fs11.readdirSync(componentDir).some((f) => f.endsWith(".schema.yaml"));
19030
+ const hasContracts = fs11.existsSync(path9.join(componentDir, "contracts.yaml"));
19031
+ const hasTypes = fs11.existsSync(path9.join(componentDir, "types.ts"));
18233
19032
  const baselineComplete = hasSchema && hasContracts && hasTypes;
18234
19033
  const platforms = [
18235
19034
  { key: "web", implPattern: /\.web\.ts$/, testPatterns: [/\.test\.ts$/] },
@@ -18245,10 +19044,10 @@ var ComponentIndexer = class {
18245
19044
  result[p.key] = { status: "not-applicable", reason: naReason, reviewed: false, hasImplementation: false, hasTests: false };
18246
19045
  continue;
18247
19046
  }
18248
- const platformDir = path7.join(componentDir, "platforms", p.key);
18249
- const hasImpl = fs8.existsSync(platformDir) && fs8.readdirSync(platformDir).some((f) => p.implPattern.test(f));
18250
- const testsDir = path7.join(componentDir, "__tests__");
18251
- const hasTests = fs8.existsSync(platformDir) && fs8.readdirSync(platformDir).some((f) => p.testPatterns.some((tp) => tp.test(f))) || fs8.existsSync(testsDir) && fs8.readdirSync(testsDir).some((f) => p.testPatterns.some((tp) => tp.test(f)));
19047
+ const platformDir = path9.join(componentDir, "platforms", p.key);
19048
+ const hasImpl = fs11.existsSync(platformDir) && fs11.readdirSync(platformDir).some((f) => p.implPattern.test(f));
19049
+ const testsDir = path9.join(componentDir, "__tests__");
19050
+ const hasTests = fs11.existsSync(platformDir) && fs11.readdirSync(platformDir).some((f) => p.testPatterns.some((tp) => tp.test(f))) || fs11.existsSync(testsDir) && fs11.readdirSync(testsDir).some((f) => p.testPatterns.some((tp) => tp.test(f)));
18252
19051
  let status;
18253
19052
  if (!hasImpl) {
18254
19053
  status = "not-started";
@@ -18712,17 +19511,17 @@ var AssemblyValidator = class {
18712
19511
  accessibility
18713
19512
  };
18714
19513
  }
18715
- walk(node, path10, errors, warnings) {
19514
+ walk(node, path11, errors, warnings) {
18716
19515
  const meta = this.indexer.getComponent(node.component);
18717
19516
  if (!meta) {
18718
- errors.push({ path: path10, component: node.component, message: `Component "${node.component}" not found in catalog` });
19517
+ errors.push({ path: path11, component: node.component, message: `Component "${node.component}" not found in catalog` });
18719
19518
  return;
18720
19519
  }
18721
19520
  const children = node.children ?? [];
18722
19521
  const index = this.indexer.getIndex();
18723
19522
  for (let i = 0; i < children.length; i++) {
18724
19523
  const child = children[i];
18725
- const childPath = `${path10}.children[${i}]`;
19524
+ const childPath = `${path11}.children[${i}]`;
18726
19525
  const result = checkComposition(meta, child.component, index, node.props);
18727
19526
  if (!result.allowed) {
18728
19527
  errors.push({ path: childPath, component: child.component, message: result.reason });
@@ -18731,31 +19530,30 @@ var AssemblyValidator = class {
18731
19530
  const childNames = children.map((c) => c.component);
18732
19531
  const req = validateRequires(meta, childNames);
18733
19532
  if (!req.complete) {
18734
- errors.push({ path: path10, component: node.component, message: `Missing required children: ${req.missing.join(", ")}` });
19533
+ errors.push({ path: path11, component: node.component, message: `Missing required children: ${req.missing.join(", ")}` });
18735
19534
  }
18736
19535
  const comp = meta.composition;
18737
19536
  if (comp?.children && children.length > 0) {
18738
19537
  if (comp.children.minCount !== void 0 && children.length < comp.children.minCount) {
18739
- errors.push({ path: path10, component: node.component, message: `Requires at least ${comp.children.minCount} children, found ${children.length}` });
19538
+ errors.push({ path: path11, component: node.component, message: `Requires at least ${comp.children.minCount} children, found ${children.length}` });
18740
19539
  }
18741
19540
  if (comp.children.maxCount !== void 0 && children.length > comp.children.maxCount) {
18742
- errors.push({ path: path10, component: node.component, message: `Allows at most ${comp.children.maxCount} children, found ${children.length}` });
19541
+ errors.push({ path: path11, component: node.component, message: `Allows at most ${comp.children.maxCount} children, found ${children.length}` });
18743
19542
  }
18744
19543
  }
18745
19544
  for (let i = 0; i < children.length; i++) {
18746
- this.walk(children[i], `${path10}.children[${i}]`, errors, warnings);
19545
+ this.walk(children[i], `${path11}.children[${i}]`, errors, warnings);
18747
19546
  }
18748
19547
  }
18749
19548
  };
18750
19549
 
18751
19550
  // application-mcp-server/src/watcher/FileWatcher.ts
18752
- var fs9 = __toESM(require("fs"));
18753
- var path8 = __toESM(require("path"));
19551
+ var fs12 = __toESM(require("fs"));
19552
+ var path10 = __toESM(require("path"));
18754
19553
  var COMPONENT_FILES = /* @__PURE__ */ new Set(["contracts.yaml", "component-meta.yaml"]);
18755
19554
  var FileWatcher = class {
18756
19555
  constructor(indexer, componentsDir, patternsDir, templatesDir, guidanceDir, tokenIndexDir, debounceMs = 100) {
18757
19556
  this.indexer = indexer;
18758
- this.componentsDir = componentsDir;
18759
19557
  this.patternsDir = patternsDir;
18760
19558
  this.templatesDir = templatesDir;
18761
19559
  this.guidanceDir = guidanceDir;
@@ -18763,20 +19561,26 @@ var FileWatcher = class {
18763
19561
  this.debounceMs = debounceMs;
18764
19562
  this.watchers = [];
18765
19563
  this.debounceTimers = /* @__PURE__ */ new Map();
19564
+ this.componentsDirs = (Array.isArray(componentsDir) ? componentsDir : [componentsDir]).filter(Boolean);
19565
+ }
19566
+ /** The component roots this watcher watches (the mutable set it was given). */
19567
+ getWatchedComponentRoots() {
19568
+ return [...this.componentsDirs];
18766
19569
  }
18767
19570
  start() {
18768
19571
  this.stop();
18769
- const configs = [
18770
- { dir: this.componentsDir, handler: (f) => this.handleComponentChange(f) }
18771
- ];
19572
+ const configs = this.componentsDirs.map((root) => ({
19573
+ dir: root,
19574
+ handler: (f) => this.handleComponentChange(root, f)
19575
+ }));
18772
19576
  if (this.patternsDir) configs.push({ dir: this.patternsDir, handler: () => this.debounceReindex("patterns", () => this.indexer.reindexPatterns(this.patternsDir)) });
18773
19577
  if (this.templatesDir) configs.push({ dir: this.templatesDir, handler: () => this.debounceReindex("templates", () => this.indexer.reindexTemplates(this.templatesDir)) });
18774
19578
  if (this.guidanceDir) configs.push({ dir: this.guidanceDir, handler: () => this.debounceReindex("guidance", () => this.indexer.reindexGuidance(this.guidanceDir)) });
18775
19579
  if (this.tokenIndexDir) configs.push({ dir: this.tokenIndexDir, handler: () => this.debounceReindex("tokens", () => this.indexer.reindexTokens(this.tokenIndexDir)) });
18776
19580
  for (const config2 of configs) {
18777
- if (!fs9.existsSync(config2.dir)) continue;
19581
+ if (!fs12.existsSync(config2.dir)) continue;
18778
19582
  try {
18779
- const watcher = fs9.watch(config2.dir, { recursive: true }, (_event, filename) => {
19583
+ const watcher = fs12.watch(config2.dir, { recursive: true }, (_event, filename) => {
18780
19584
  if (filename && filename.endsWith(".yaml")) config2.handler(filename);
18781
19585
  });
18782
19586
  watcher.on("error", (err) => console.error(`FileWatcher error (${config2.dir}): ${err.message}`));
@@ -18796,10 +19600,10 @@ var FileWatcher = class {
18796
19600
  isWatching() {
18797
19601
  return this.watchers.length > 0;
18798
19602
  }
18799
- handleComponentChange(filename) {
18800
- const base = path8.basename(filename);
19603
+ handleComponentChange(root, filename) {
19604
+ const base = path10.basename(filename);
18801
19605
  if (!base.endsWith(".schema.yaml") && !COMPONENT_FILES.has(base)) return;
18802
- const componentDir = path8.join(this.componentsDir, path8.dirname(filename));
19606
+ const componentDir = path10.join(root, path10.dirname(filename));
18803
19607
  this.debounceReindex(componentDir, () => this.indexer.reindexComponent(componentDir));
18804
19608
  }
18805
19609
  debounceReindex(key, action) {
@@ -18819,7 +19623,7 @@ var FileWatcher = class {
18819
19623
  };
18820
19624
 
18821
19625
  // application-mcp-server/src/indexer/DesignPhilosophyIndexer.ts
18822
- var fs10 = __toESM(require("fs"));
19626
+ var fs13 = __toESM(require("fs"));
18823
19627
  var DesignPhilosophyIndexer = class {
18824
19628
  constructor() {
18825
19629
  this.data = null;
@@ -18828,12 +19632,12 @@ var DesignPhilosophyIndexer = class {
18828
19632
  async index(filePath) {
18829
19633
  this.data = null;
18830
19634
  this.warnings = [];
18831
- if (!fs10.existsSync(filePath)) {
19635
+ if (!fs13.existsSync(filePath)) {
18832
19636
  this.warnings.push(`Design philosophy file not found: ${filePath}`);
18833
19637
  return;
18834
19638
  }
18835
19639
  try {
18836
- const content = fs10.readFileSync(filePath, "utf-8");
19640
+ const content = fs13.readFileSync(filePath, "utf-8");
18837
19641
  this.data = load(content);
18838
19642
  this.validate();
18839
19643
  } catch (err) {
@@ -18880,77 +19684,6 @@ var DesignPhilosophyIndexer = class {
18880
19684
  }
18881
19685
  };
18882
19686
 
18883
- // application-mcp-server/src/staleness/StalenessGate.ts
18884
- var fs11 = __toESM(require("fs"));
18885
- var path9 = __toESM(require("path"));
18886
- var StalenessGate = class {
18887
- constructor(config2) {
18888
- this.lastCheckTime = 0;
18889
- this.lastIndexTime = 0;
18890
- this.dataDirs = config2.dataDirs;
18891
- this.fileExtensions = new Set(config2.fileExtensions);
18892
- this.thresholdMs = config2.thresholdMs ?? 3e4;
18893
- this.isImmutable = config2.isImmutable ?? false;
18894
- this.onRebuild = config2.onRebuild;
18895
- }
18896
- /**
18897
- * Call before every data-returning tool.
18898
- * Returns true if a rebuild was triggered.
18899
- */
18900
- async checkAndRebuildIfNeeded() {
18901
- if (this.isImmutable) return false;
18902
- const now = Date.now();
18903
- if (now - this.lastCheckTime < this.thresholdMs) return false;
18904
- this.lastCheckTime = now;
18905
- const staleFiles = this.getStaleFiles();
18906
- if (staleFiles.length === 0) return false;
18907
- console.error("\u26A0\uFE0F Index stale \u2014 rebuilding...");
18908
- await this.onRebuild();
18909
- this.markIndexed();
18910
- return true;
18911
- }
18912
- /** Update lastIndexTime after successful index/rebuild. */
18913
- markIndexed() {
18914
- this.lastIndexTime = Date.now();
18915
- }
18916
- /** Get files newer than lastIndexTime. */
18917
- getStaleFiles() {
18918
- if (this.isImmutable) return [];
18919
- if (this.lastIndexTime === 0) return [];
18920
- const stale = [];
18921
- for (const dir of this.dataDirs) {
18922
- if (!fs11.existsSync(dir)) continue;
18923
- this.scanDir(dir, stale);
18924
- }
18925
- return stale;
18926
- }
18927
- scanDir(dir, stale) {
18928
- let entries;
18929
- try {
18930
- entries = fs11.readdirSync(dir, { withFileTypes: true });
18931
- } catch {
18932
- return;
18933
- }
18934
- for (const entry of entries) {
18935
- const fullPath = path9.join(dir, entry.name);
18936
- if (entry.isDirectory()) {
18937
- this.scanDir(fullPath, stale);
18938
- } else if (this.fileExtensions.has(path9.extname(entry.name))) {
18939
- try {
18940
- const mtime = fs11.statSync(fullPath).mtimeMs;
18941
- if (mtime > this.lastIndexTime) {
18942
- stale.push(fullPath);
18943
- }
18944
- } catch {
18945
- }
18946
- }
18947
- }
18948
- }
18949
- };
18950
- function isImmutableContext(dataPath) {
18951
- return dataPath.includes("/node_modules/");
18952
- }
18953
-
18954
19687
  // application-mcp-server/src/index.ts
18955
19688
  var SERVER_NAME = "mcp-component-server";
18956
19689
  var SERVER_VERSION = "0.1.0";
@@ -18959,11 +19692,13 @@ var DEFAULT_TOKEN_INDEX_DIR = "token-index";
18959
19692
  var tools = [
18960
19693
  {
18961
19694
  name: "get_component_catalog",
19695
+ annotations: { readOnlyHint: true },
18962
19696
  description: "Get lightweight catalog of all components with name, type, family, purpose, and readiness. ~50 tokens per component.",
18963
19697
  inputSchema: { type: "object", properties: {} }
18964
19698
  },
18965
19699
  {
18966
19700
  name: "get_component_summary",
19701
+ annotations: { readOnlyHint: true },
18967
19702
  description: "Get component summary: identity, contract categories, token count, annotations. ~200 tokens.",
18968
19703
  inputSchema: {
18969
19704
  type: "object",
@@ -18973,6 +19708,7 @@ var tools = [
18973
19708
  },
18974
19709
  {
18975
19710
  name: "get_component_full",
19711
+ annotations: { readOnlyHint: true },
18976
19712
  description: "Get complete assembled metadata including all contracts, composition rules, and token relationships.",
18977
19713
  inputSchema: {
18978
19714
  type: "object",
@@ -18982,6 +19718,7 @@ var tools = [
18982
19718
  },
18983
19719
  {
18984
19720
  name: "find_components",
19721
+ annotations: { readOnlyHint: true },
18985
19722
  description: 'Find components by category, concept, platform, purpose keyword, or usage context. Returns ApplicationSummary with promoted selection guidance (purpose, whenToUse, whenNotToUse, alternatives, contexts). All parameters optional and combinable (conjunctive). Use `keyword` for natural-language tokenized discovery (e.g. "primary action button", "login", "text input field").',
18986
19723
  inputSchema: {
18987
19724
  type: "object",
@@ -18998,6 +19735,7 @@ var tools = [
18998
19735
  },
18999
19736
  {
19000
19737
  name: "check_composition",
19738
+ annotations: { readOnlyHint: true },
19001
19739
  description: "Check if a parent component can contain a child component, with optional prop context.",
19002
19740
  inputSchema: {
19003
19741
  type: "object",
@@ -19011,21 +19749,25 @@ var tools = [
19011
19749
  },
19012
19750
  {
19013
19751
  name: "get_component_health",
19752
+ annotations: { readOnlyHint: true },
19014
19753
  description: "Get index health: status, component count, pattern count, warnings, gaps.",
19015
19754
  inputSchema: { type: "object", properties: {} }
19016
19755
  },
19017
19756
  {
19018
19757
  name: "rebuild_index",
19758
+ annotations: { readOnlyHint: false },
19019
19759
  description: "Rebuild the component index from scratch. Use when index is stale or out of sync. Returns new health status after reindex.",
19020
19760
  inputSchema: { type: "object", properties: {} }
19021
19761
  },
19022
19762
  {
19023
19763
  name: "list_experience_patterns",
19764
+ annotations: { readOnlyHint: true },
19024
19765
  description: "List all experience patterns with name, description, category, tags, step count, and component count.",
19025
19766
  inputSchema: { type: "object", properties: {} }
19026
19767
  },
19027
19768
  {
19028
19769
  name: "get_experience_pattern",
19770
+ annotations: { readOnlyHint: true },
19029
19771
  description: "Get full experience pattern by name: steps, components with roles and hints, accessibility notes, and alternatives.",
19030
19772
  inputSchema: {
19031
19773
  type: "object",
@@ -19035,11 +19777,13 @@ var tools = [
19035
19777
  },
19036
19778
  {
19037
19779
  name: "list_layout_templates",
19780
+ annotations: { readOnlyHint: true },
19038
19781
  description: "List all layout templates with name, description, category, tags, and region count.",
19039
19782
  inputSchema: { type: "object", properties: {} }
19040
19783
  },
19041
19784
  {
19042
19785
  name: "get_layout_template",
19786
+ annotations: { readOnlyHint: true },
19043
19787
  description: "Get full layout template by name: regions with grid behavior per breakpoint, stacking rules, and token references.",
19044
19788
  inputSchema: {
19045
19789
  type: "object",
@@ -19049,6 +19793,7 @@ var tools = [
19049
19793
  },
19050
19794
  {
19051
19795
  name: "validate_assembly",
19796
+ annotations: { readOnlyHint: true },
19052
19797
  description: "Validate a component tree. Checks component existence, parent-child composition rules, requires/count constraints, and assembly-level accessibility (form labels, submit actions, page headings). Returns errors, warnings, and accessibility issues with paths.",
19053
19798
  inputSchema: {
19054
19799
  type: "object",
@@ -19063,6 +19808,7 @@ var tools = [
19063
19808
  },
19064
19809
  {
19065
19810
  name: "get_prop_guidance",
19811
+ annotations: { readOnlyHint: true },
19066
19812
  description: "Get prop selection and family member guidance for a component or family. Returns whenToUse, whenNotToUse, selectionRules (scenario\u2192recommendation with optional props), accessibilityNotes, and family-scoped patterns. Query by component name (returns its family guidance) or family name.",
19067
19813
  inputSchema: {
19068
19814
  type: "object",
@@ -19076,6 +19822,7 @@ var tools = [
19076
19822
  // Token query tools (Spec 096)
19077
19823
  {
19078
19824
  name: "search_tokens",
19825
+ annotations: { readOnlyHint: true },
19079
19826
  description: "Search tokens by family, tier (primitive/semantic/component), or name. All parameters optional and combinable.",
19080
19827
  inputSchema: {
19081
19828
  type: "object",
@@ -19088,6 +19835,7 @@ var tools = [
19088
19835
  },
19089
19836
  {
19090
19837
  name: "get_token_details",
19838
+ annotations: { readOnlyHint: true },
19091
19839
  description: "Get full details for a token: value, family, tier, platform names, formula, theme-varying status, consumers.",
19092
19840
  inputSchema: {
19093
19841
  type: "object",
@@ -19099,6 +19847,7 @@ var tools = [
19099
19847
  },
19100
19848
  {
19101
19849
  name: "get_token_family",
19850
+ annotations: { readOnlyHint: true },
19102
19851
  description: "Get all tokens in a family across all tiers.",
19103
19852
  inputSchema: {
19104
19853
  type: "object",
@@ -19110,6 +19859,7 @@ var tools = [
19110
19859
  },
19111
19860
  {
19112
19861
  name: "get_token_consumers",
19862
+ annotations: { readOnlyHint: true },
19113
19863
  description: "Get all components that reference a token.",
19114
19864
  inputSchema: {
19115
19865
  type: "object",
@@ -19121,16 +19871,19 @@ var tools = [
19121
19871
  },
19122
19872
  {
19123
19873
  name: "get_design_philosophy",
19874
+ annotations: { readOnlyHint: true },
19124
19875
  description: "Get the design system's creative north star, aesthetic philosophy, and key characteristics.",
19125
19876
  inputSchema: { type: "object", properties: {} }
19126
19877
  },
19127
19878
  {
19128
19879
  name: "get_design_rules",
19880
+ annotations: { readOnlyHint: true },
19129
19881
  description: "Get named design rules as structured data (name, constraint, rationale).",
19130
19882
  inputSchema: { type: "object", properties: {} }
19131
19883
  },
19132
19884
  {
19133
19885
  name: "get_design_guidance",
19886
+ annotations: { readOnlyHint: true },
19134
19887
  description: "Get design do's and don'ts as categorized directives. Optionally filter by category.",
19135
19888
  inputSchema: {
19136
19889
  type: "object",
@@ -19141,6 +19894,7 @@ var tools = [
19141
19894
  },
19142
19895
  {
19143
19896
  name: "get_color_strategy",
19897
+ annotations: { readOnlyHint: true },
19144
19898
  description: "Get color strategy vocabulary (Restrained/Committed/Full/Drenched) with usage guidance. Optionally filter by tier.",
19145
19899
  inputSchema: {
19146
19900
  type: "object",
@@ -19154,54 +19908,52 @@ var STALENESS_EXEMPT_TOOLS = /* @__PURE__ */ new Set([
19154
19908
  "get_component_health",
19155
19909
  "rebuild_index"
19156
19910
  ]);
19157
- function createTestableServer(paths) {
19158
- const server = new ComponentMCPServer(paths);
19911
+ function createTestableServer(paths, options = {}) {
19912
+ const server = new ComponentMCPServer(paths, options);
19159
19913
  return {
19160
- initialize: () => server.indexer.indexComponents(
19161
- paths.componentsDir,
19162
- paths.patternsDir,
19163
- paths.templatesDir,
19164
- paths.guidanceDir,
19165
- paths.tokenIndexDir
19166
- ),
19167
- callTool: (name, args) => server.handleTool(name, args)
19914
+ initialize: async () => {
19915
+ await server.fullIndex();
19916
+ server.markIndexed();
19917
+ },
19918
+ callTool: (name, args) => server.handleTool(name, args),
19919
+ startWatching: () => server.startWatching(),
19920
+ stopWatching: () => server.stopWatching(),
19921
+ getWatchedDirs: () => server.getWatchedDirs()
19168
19922
  };
19169
19923
  }
19170
19924
  var ComponentMCPServer = class {
19171
- constructor(paths) {
19925
+ constructor(paths, options = {}) {
19172
19926
  this.paths = paths;
19173
19927
  this.server = new Server({ name: SERVER_NAME, version: SERVER_VERSION }, { capabilities: { tools: {} } });
19174
19928
  this.indexer = new ComponentIndexer();
19175
19929
  this.queryEngine = new ComponentQueryEngine(this.indexer);
19176
19930
  this.assemblyValidator = new AssemblyValidator(this.indexer);
19931
+ const componentRoots = Array.isArray(this.paths.componentsDir) ? this.paths.componentsDir : [this.paths.componentsDir];
19932
+ this.watchedComponentRoots = mutableComponentRoots(componentRoots);
19177
19933
  this.fileWatcher = new FileWatcher(
19178
19934
  this.indexer,
19179
- this.paths.componentsDir,
19935
+ this.watchedComponentRoots,
19180
19936
  this.paths.patternsDir,
19181
19937
  this.paths.templatesDir,
19182
19938
  this.paths.guidanceDir,
19183
19939
  this.paths.tokenIndexDir
19184
19940
  );
19185
19941
  this.philosophyIndexer = new DesignPhilosophyIndexer();
19186
- const dataDirs = [
19187
- this.paths.componentsDir,
19942
+ const otherDirs = [
19188
19943
  this.paths.patternsDir,
19189
19944
  this.paths.templatesDir,
19190
19945
  this.paths.guidanceDir,
19191
19946
  this.paths.tokenIndexDir
19192
- ].filter(Boolean);
19947
+ ].filter((d) => Boolean(d) && !isImmutableContext(d));
19948
+ this.stalenessDataDirs = [...this.watchedComponentRoots, ...otherDirs];
19193
19949
  this.stalenessGate = new StalenessGate({
19194
- dataDirs,
19950
+ dataDirs: this.stalenessDataDirs,
19195
19951
  fileExtensions: [".yaml", ".ts", ".md"],
19196
- isImmutable: isImmutableContext(this.paths.componentsDir),
19952
+ thresholdMs: options.stalenessThresholdMs,
19953
+ // Nothing mutable to scan (e.g. an unborn consumer: everything is package data) → skip all checks.
19954
+ isImmutable: this.stalenessDataDirs.length === 0,
19197
19955
  onRebuild: async () => {
19198
- await this.indexer.indexComponents(
19199
- this.paths.componentsDir,
19200
- this.paths.patternsDir,
19201
- this.paths.templatesDir,
19202
- this.paths.guidanceDir,
19203
- this.paths.tokenIndexDir
19204
- );
19956
+ await this.fullIndex();
19205
19957
  if (this.paths.designLanguagePath) {
19206
19958
  await this.philosophyIndexer.index(this.paths.designLanguagePath);
19207
19959
  }
@@ -19209,14 +19961,38 @@ var ComponentMCPServer = class {
19209
19961
  });
19210
19962
  this.registerHandlers();
19211
19963
  }
19212
- async start() {
19964
+ /** Full index over the component root set, anchored on `projectRoot` (C3 `projectRoot = bornRoot`). */
19965
+ async fullIndex() {
19213
19966
  await this.indexer.indexComponents(
19214
19967
  this.paths.componentsDir,
19215
19968
  this.paths.patternsDir,
19216
19969
  this.paths.templatesDir,
19217
19970
  this.paths.guidanceDir,
19218
- this.paths.tokenIndexDir
19971
+ this.paths.tokenIndexDir,
19972
+ { projectRoot: this.paths.projectRoot }
19219
19973
  );
19974
+ }
19975
+ /** @internal Test seam (Spec 123 Task 1.4). */
19976
+ markIndexed() {
19977
+ this.stalenessGate.markIndexed();
19978
+ }
19979
+ /** @internal Test seam (Spec 123 Task 1.4). */
19980
+ startWatching() {
19981
+ this.fileWatcher.start();
19982
+ }
19983
+ /** @internal Test seam (Spec 123 Task 1.4). */
19984
+ stopWatching() {
19985
+ this.fileWatcher.stop();
19986
+ }
19987
+ /** @internal Test seam (Spec 123 Task 1.4). */
19988
+ getWatchedDirs() {
19989
+ return {
19990
+ stalenessDataDirs: [...this.stalenessDataDirs],
19991
+ watchedComponentRoots: this.fileWatcher.getWatchedComponentRoots()
19992
+ };
19993
+ }
19994
+ async start() {
19995
+ await this.fullIndex();
19220
19996
  this.fileWatcher.start();
19221
19997
  if (this.paths.tokenIndexDir) {
19222
19998
  const th = this.indexer.getTokenIndexer().getHealth();
@@ -19224,9 +20000,6 @@ var ComponentMCPServer = class {
19224
20000
  }
19225
20001
  const health = this.indexer.getHealth();
19226
20002
  console.error(`[${SERVER_NAME}] Indexed ${health.componentsIndexed} components (${health.warnings.length} warnings)`);
19227
- if (!this.paths.tokenIndexDir) {
19228
- console.error(`[${SERVER_NAME}] Token index not available (Spec 096 pending)`);
19229
- }
19230
20003
  if (this.paths.designLanguagePath) {
19231
20004
  await this.philosophyIndexer.index(this.paths.designLanguagePath);
19232
20005
  const pw = this.philosophyIndexer.getWarnings();
@@ -19300,13 +20073,7 @@ var ComponentMCPServer = class {
19300
20073
  case "get_component_health":
19301
20074
  return this.queryEngine.getHealth();
19302
20075
  case "rebuild_index":
19303
- await this.indexer.indexComponents(
19304
- this.paths.componentsDir,
19305
- this.paths.patternsDir,
19306
- this.paths.templatesDir,
19307
- this.paths.guidanceDir,
19308
- this.paths.tokenIndexDir
19309
- );
20076
+ await this.fullIndex();
19310
20077
  if (this.paths.designLanguagePath) {
19311
20078
  await this.philosophyIndexer.index(this.paths.designLanguagePath);
19312
20079
  }
@@ -19364,6 +20131,16 @@ var ComponentMCPServer = class {
19364
20131
  });
19365
20132
  }
19366
20133
  };
20134
+ function resolveTokenIndexUnavailableMessage(reason, dsRoot, packageRoot, errorCatalog, explicitTokenIndexDirEnv) {
20135
+ switch (reason) {
20136
+ case "empty-env-value":
20137
+ return errorCatalog.explicitTokenIndexMissingMessage(explicitTokenIndexDirEnv ?? "");
20138
+ case "run-generate":
20139
+ return dsRoot.state === "package-mode" ? errorCatalog.packageModeIndexAbsentMessage() : errorCatalog.bornIndexAbsentMessage(dsRoot.root ?? packageRoot);
20140
+ case "partial":
20141
+ return dsRoot.partialCase ? errorCatalog.partialCaseMessage(dsRoot.root ?? packageRoot, dsRoot.partialCase, dsRoot.attemptedTokenSource) : `token index unavailable: partial state with no named sub-case`;
20142
+ }
20143
+ }
19367
20144
  if (require.main === module) {
19368
20145
  const logRoot = (label, root, note = "") => {
19369
20146
  console.error(`[${SERVER_NAME}] Data root ${label}: ${root.path} (source: ${root.source})${note}`);
@@ -19371,15 +20148,19 @@ if (require.main === module) {
19371
20148
  let dataPaths;
19372
20149
  try {
19373
20150
  const shared = require_mcpDataRoots();
20151
+ const bornRepo = require_bornRepo();
20152
+ const errorCatalog = require_errorCatalog();
19374
20153
  const packageRoot = shared.resolvePackageRoot(__dirname);
19375
- const components = shared.resolveConsumerOwnedRoot({
19376
- envValue: process.env.COMPONENTS_DIR,
19377
- relPath: DEFAULT_COMPONENTS_DIR,
20154
+ const dsRoot = bornRepo.findDesignSystemRoot(process.cwd());
20155
+ const componentRoots = shared.resolveComponentRoots({
20156
+ envValue: process.env.COMPONENTS_DIR || process.env.COMPONENT_DIR,
20157
+ dsRoot,
19378
20158
  packageRoot
19379
20159
  });
19380
- const tokenIndex = shared.resolveConsumerOwnedRoot({
20160
+ const projectRoot = dsRoot.root ?? packageRoot;
20161
+ const tokenIndex = shared.resolveTokenIndexRoot({
19381
20162
  envValue: process.env.TOKEN_INDEX_DIR,
19382
- relPath: DEFAULT_TOKEN_INDEX_DIR,
20163
+ dsRoot,
19383
20164
  packageRoot
19384
20165
  });
19385
20166
  const patterns = shared.resolvePackageOwnedRoot({
@@ -19407,24 +20188,42 @@ if (require.main === module) {
19407
20188
  packageRoot,
19408
20189
  relPath: "design-language/design-philosophy.yaml"
19409
20190
  });
19410
- logRoot("components", components);
19411
- logRoot(
19412
- "token-index",
19413
- tokenIndex,
19414
- tokenIndex.source === "package" ? " \u2014 package token snapshot in use; if this project customizes tokens, run 'npx designerpunk generate' to build a local token-index" : ""
20191
+ console.error(`[${SERVER_NAME}] Design-system root: ${dsRoot.state}${dsRoot.partialCase ? ` (${dsRoot.partialCase})` : ""}`);
20192
+ console.error(
20193
+ `[${SERVER_NAME}] Project root: ${projectRoot} (source: ${dsRoot.root ? dsRoot.state : "unborn \u2192 package"})`
19415
20194
  );
20195
+ componentRoots.roots.forEach((root, i) => {
20196
+ logRoot(`components[${i}]`, { path: root, source: componentRoots.sources[i] });
20197
+ });
20198
+ if (tokenIndex.ok) {
20199
+ logRoot(
20200
+ "token-index",
20201
+ { path: tokenIndex.path, source: tokenIndex.source },
20202
+ tokenIndex.tokenOrigin ? ` (tokenOrigin: ${tokenIndex.tokenOrigin})` : ""
20203
+ );
20204
+ } else {
20205
+ const tokenIndexMessage = resolveTokenIndexUnavailableMessage(
20206
+ tokenIndex.reason,
20207
+ dsRoot,
20208
+ packageRoot,
20209
+ errorCatalog,
20210
+ process.env.TOKEN_INDEX_DIR
20211
+ );
20212
+ console.error(`[${SERVER_NAME}] ${tokenIndexMessage}`);
20213
+ }
19416
20214
  logRoot("experience-patterns", patterns);
19417
20215
  logRoot("layout-templates", templates);
19418
20216
  logRoot("family-guidance", guidance);
19419
20217
  logRoot("family-registry", registry2);
19420
20218
  logRoot("design-language", designLanguage);
19421
20219
  dataPaths = {
19422
- componentsDir: components.path,
20220
+ componentsDir: componentRoots.roots,
20221
+ projectRoot,
19423
20222
  patternsDir: patterns.path,
19424
20223
  templatesDir: templates.path,
19425
20224
  guidanceDir: guidance.path,
19426
20225
  registryPath: registry2.path,
19427
- tokenIndexDir: tokenIndex.path,
20226
+ tokenIndexDir: tokenIndex.ok ? tokenIndex.path : void 0,
19428
20227
  designLanguagePath: designLanguage.path
19429
20228
  };
19430
20229
  } catch {
@@ -19449,7 +20248,9 @@ if (require.main === module) {
19449
20248
  }
19450
20249
  // Annotate the CommonJS export names for ESM import in node:
19451
20250
  0 && (module.exports = {
19452
- createTestableServer
20251
+ createTestableServer,
20252
+ resolveTokenIndexUnavailableMessage,
20253
+ tools
19453
20254
  });
19454
20255
  /*! Bundled license information:
19455
20256