@3fn/core 13.0.0 → 14.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 (236) hide show
  1. package/.kiro/agents/ada-prompt.md +80 -132
  2. package/.kiro/agents/ada-prompt.md.attribution.json +45 -0
  3. package/.kiro/agents/ada.json +44 -59
  4. package/.kiro/agents/ada.json.attribution.json +13 -0
  5. package/.kiro/agents/data-prompt.md +83 -74
  6. package/.kiro/agents/data-prompt.md.attribution.json +53 -0
  7. package/.kiro/agents/data.json +31 -38
  8. package/.kiro/agents/data.json.attribution.json +13 -0
  9. package/.kiro/agents/kenya-prompt.md +83 -72
  10. package/.kiro/agents/kenya-prompt.md.attribution.json +53 -0
  11. package/.kiro/agents/kenya.json +27 -35
  12. package/.kiro/agents/kenya.json.attribution.json +13 -0
  13. package/.kiro/agents/leonardo-prompt.md +176 -234
  14. package/.kiro/agents/leonardo-prompt.md.attribution.json +45 -0
  15. package/.kiro/agents/leonardo.json +28 -36
  16. package/.kiro/agents/leonardo.json.attribution.json +13 -0
  17. package/.kiro/agents/lina-prompt.md +110 -151
  18. package/.kiro/agents/lina-prompt.md.attribution.json +53 -0
  19. package/.kiro/agents/lina.json +46 -59
  20. package/.kiro/agents/lina.json.attribution.json +13 -0
  21. package/.kiro/agents/sparky-prompt.md +89 -72
  22. package/.kiro/agents/sparky-prompt.md.attribution.json +53 -0
  23. package/.kiro/agents/sparky.json +37 -37
  24. package/.kiro/agents/sparky.json.attribution.json +13 -0
  25. package/.kiro/agents/stacy-prompt.md +74 -48
  26. package/.kiro/agents/stacy-prompt.md.attribution.json +45 -0
  27. package/.kiro/agents/stacy.json +28 -30
  28. package/.kiro/agents/stacy.json.attribution.json +13 -0
  29. package/.kiro/agents/thurgood-prompt.md +94 -138
  30. package/.kiro/agents/thurgood-prompt.md.attribution.json +45 -0
  31. package/.kiro/agents/thurgood.json +31 -35
  32. package/.kiro/agents/thurgood.json.attribution.json +13 -0
  33. package/.kiro/steering/AI-Collaboration-Principles.md +3 -3
  34. package/.kiro/steering/Civitas-System-Overview.md +5 -5
  35. package/.kiro/steering/DesignerPunk-Systems-Overview.md +6 -6
  36. package/.kiro/steering/Task-Completion-Protocol.md +98 -17
  37. package/.kiro/steering/core-goals.md +3 -3
  38. package/.kiro/steering/personal-note.md +1 -1
  39. package/.kiro/steering/start-up-tasks.md +14 -3
  40. package/application-mcp-server/src/index.ts +26 -0
  41. package/dist/ComponentTokens.android.kt +1 -1
  42. package/dist/ComponentTokens.ios.swift +1 -1
  43. package/dist/ComponentTokens.web.css +1 -1
  44. package/dist/DesignTokens.android.kt +1 -1
  45. package/dist/DesignTokens.dtcg.json +8 -5
  46. package/dist/DesignTokens.figma.json +2 -2
  47. package/dist/DesignTokens.ios.swift +1 -1
  48. package/dist/DesignTokens.web.css +1 -1
  49. package/dist/android/DesignTokens.android.kt +1 -1
  50. package/dist/blend/OklchBlendCalculator.js +1 -0
  51. package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +13 -2
  52. package/dist/blend/ThemeAwareBlendUtilities.web.js +6 -1
  53. package/dist/browser/designerpunk.esm.js +22 -81
  54. package/dist/browser/designerpunk.esm.min.js +29 -32
  55. package/dist/browser/designerpunk.umd.js +22 -81
  56. package/dist/browser/designerpunk.umd.min.js +42 -45
  57. package/dist/browser/tokens.css +1 -1
  58. package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +24 -5
  59. package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +16 -28
  60. package/dist/components/core/Button-CTA/examples/BasicUsage.js +18 -43
  61. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +3 -15
  62. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +9 -58
  63. package/dist/components/core/Button-CTA/types.d.ts +0 -24
  64. package/dist/components/core/Button-CTA/types.js +6 -0
  65. package/dist/components/core/Input-Text-Base/types.d.ts +13 -1
  66. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +11 -2
  67. package/dist/generators/DTCGFormatGenerator.js +8 -0
  68. package/dist/integration/BuildErrorHandler.js +2 -2
  69. package/dist/ios/DesignTokens.ios.swift +1 -1
  70. package/dist/mcp/application-mcp.js +24 -0
  71. package/dist/mcp/docs-mcp.js +130 -15
  72. package/dist/mcp/product-mcp.js +25 -0
  73. package/dist/tokens/OpacityTokens.js +1 -1
  74. package/dist/tokens/semantic/BlendTokens.d.ts +10 -3
  75. package/dist/tokens/semantic/BlendTokens.js +17 -5
  76. package/dist/tokens/semantic/OpacityTokens.d.ts +4 -4
  77. package/dist/tokens/semantic/OpacityTokens.js +4 -4
  78. package/dist/types/ComponentTypes.d.ts +1 -1
  79. package/dist/types/generated/TokenTypes.d.ts +1 -1
  80. package/dist/types/generated/TokenTypes.js +1 -1
  81. package/dist/validators/StemmaTokenUsageValidator.js +3 -2
  82. package/dist/web/DesignTokens.web.css +1 -1
  83. package/governance/Component-Development-Guide.md +22 -12
  84. package/governance/Component-Development-Standards.md +2 -2
  85. package/governance/Component-Family-Avatar.md +0 -1
  86. package/governance/Component-Family-Badge.md +0 -1
  87. package/governance/Component-Family-Button.md +4 -17
  88. package/governance/Component-Family-Chip.md +0 -1
  89. package/governance/Component-Family-Container.md +0 -1
  90. package/governance/Component-Family-Data-Display.md +1 -2
  91. package/governance/Component-Family-Divider.md +1 -2
  92. package/governance/Component-Family-Form-Inputs.md +5 -5
  93. package/governance/Component-Family-Icon.md +1 -2
  94. package/governance/Component-Family-Loading.md +1 -2
  95. package/governance/Component-Family-Modal.md +1 -2
  96. package/governance/Component-Family-Navigation.md +0 -1
  97. package/governance/Component-Family-Progress.md +0 -1
  98. package/governance/Component-Inheritance-Structures.md +195 -76
  99. package/governance/Component-MCP-Document-Template.md +6 -5
  100. package/governance/Component-Primitive-vs-Semantic-Philosophy.md +1 -1
  101. package/governance/Component-Quick-Reference.md +33 -33
  102. package/governance/Component-Readiness-Status.md +54 -38
  103. package/governance/Component-Templates.md +32 -36
  104. package/governance/Contract-System-Reference.md +6 -6
  105. package/governance/MCP-Integration-Guide.md +1 -1
  106. package/governance/Process-Cross-Reference-Standards.md +31 -13
  107. package/governance/Process-Development-Workflow.md +49 -59
  108. package/governance/Process-File-Organization.md +24 -24
  109. package/governance/Process-Hook-Operations.md +19 -7
  110. package/governance/Process-Orchestration-Model-Selection.md +92 -0
  111. package/governance/Process-Spec-Planning.md +91 -39
  112. package/governance/Process-Task-Type-Definitions.md +80 -4
  113. package/governance/Product-Handoff-Protocol.md +2 -0
  114. package/governance/Rosetta-System-Architecture.md +6 -6
  115. package/governance/Test-Behavioral-Contract-Validation.md +38 -31
  116. package/governance/Test-Failure-Audit-Methodology.md +1 -1
  117. package/governance/Token-Family-Accessibility.md +1 -2
  118. package/governance/Token-Family-Blend.md +18 -16
  119. package/governance/Token-Family-Blur.md +0 -1
  120. package/governance/Token-Family-Border.md +1 -2
  121. package/governance/Token-Family-Color.md +0 -1
  122. package/governance/Token-Family-Glow.md +1 -2
  123. package/governance/Token-Family-Layering.md +0 -1
  124. package/governance/Token-Family-Motion.md +1 -2
  125. package/governance/Token-Family-Opacity.md +0 -1
  126. package/governance/Token-Family-Radius.md +1 -2
  127. package/governance/Token-Family-Responsive.md +1 -2
  128. package/governance/Token-Family-Shadow.md +1 -2
  129. package/governance/Token-Family-Sizing.md +0 -1
  130. package/governance/Token-Family-Spacing.md +1 -2
  131. package/governance/Token-Family-Typography.md +1 -2
  132. package/governance/Token-Governance.md +8 -8
  133. package/governance/Token-Quick-Reference.md +21 -21
  134. package/governance/Token-Resolution-Patterns.md +1 -1
  135. package/governance/Token-Semantic-Structure.md +1 -1
  136. package/governance/Web-Authoring-Standards.md +5 -5
  137. package/governance/browser-distribution-guide.md +1 -4
  138. package/governance/classification-map.md +368 -0
  139. package/governance/completion-documentation-guide.md +11 -8
  140. package/governance/component-meta-authoring-guide.md +1 -1
  141. package/governance/cross-platform-vs-platform-specific-decision-framework.md +1 -1
  142. package/governance/platform-implementation-guidelines.md +1 -1
  143. package/governance/release-management-system.md +2 -2
  144. package/governance/rosetta-system-principles.md +8 -6
  145. package/governance/stemma-system-principles.md +18 -17
  146. package/mcp-server/src/index.ts +24 -6
  147. package/mcp-server/src/indexer/DocumentIndexer.ts +119 -9
  148. package/mcp-server/src/indexer/__tests__/bare-id-crossrefs.test.ts +250 -0
  149. package/mcp-server/src/indexer/cross-ref-parser.ts +29 -1
  150. package/mcp-server/src/indexer/index-health.ts +27 -2
  151. package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +11 -26
  152. package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +72 -5
  153. package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +81 -24
  154. package/mcp-server/src/tools/list-cross-references.ts +2 -2
  155. package/package.json +23 -21
  156. package/src/__tests__/browser-distribution/css-bundling.test.ts +6 -4
  157. package/src/__tests__/console-allowlist.json +14 -0
  158. package/src/__tests__/console-fail-setup.ts +169 -0
  159. package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +16 -0
  160. package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +70 -17
  161. package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +28 -0
  162. package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +223 -16
  163. package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +298 -0
  164. package/src/blend/OklchBlendCalculator.ts +3 -0
  165. package/src/blend/ThemeAwareBlendUtilities.android.kt +3 -0
  166. package/src/blend/ThemeAwareBlendUtilities.ios.swift +3 -0
  167. package/src/blend/ThemeAwareBlendUtilities.web.ts +9 -1
  168. package/src/blend/__tests__/InteractionStateAudit.test.ts +12 -9
  169. package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +8 -0
  170. package/src/build/errors/__tests__/ErrorHandler.test.ts +5 -0
  171. package/src/build/workflow/__tests__/CICDIntegration.test.ts +12 -1
  172. package/src/cli/__tests__/init.test.ts +45 -11
  173. package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +1 -1
  174. package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +121 -7
  175. package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +3 -0
  176. package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +15 -6
  177. package/src/components/core/Avatar-Base/contracts.yaml +11 -1
  178. package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +24 -5
  179. package/src/components/core/Badge-Count-Base/contracts.yaml +1 -1
  180. package/src/components/core/Badge-Label-Base/contracts.yaml +1 -1
  181. package/src/components/core/Button-CTA/Button-CTA.schema.yaml +2 -12
  182. package/src/components/core/Button-CTA/README.md +3 -6
  183. package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +35 -89
  184. package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -2
  185. package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -2
  186. package/src/components/core/Button-CTA/contracts.yaml +6 -29
  187. package/src/components/core/Button-CTA/examples/BasicUsage.html +2 -14
  188. package/src/components/core/Button-CTA/examples/BasicUsage.tsx +17 -44
  189. package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +12 -20
  190. package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +12 -51
  191. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +2 -26
  192. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +18 -71
  193. package/src/components/core/Button-CTA/types.ts +10 -28
  194. package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +13 -0
  195. package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +13 -0
  196. package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +13 -0
  197. package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +30 -2
  198. package/src/components/core/Input-Text-Base/README.md +25 -2
  199. package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +16 -15
  200. package/src/components/core/Input-Text-Base/contracts.yaml +90 -0
  201. package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +26 -12
  202. package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +195 -59
  203. package/src/components/core/Input-Text-Base/types.ts +13 -1
  204. package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +5 -1
  205. package/src/components/core/Input-Text-Email/README.md +8 -7
  206. package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +1 -4
  207. package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +2 -16
  208. package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +10 -3
  209. package/src/components/core/Input-Text-Password/README.md +9 -8
  210. package/src/components/core/Input-Text-Password/contracts.yaml +5 -0
  211. package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +17 -7
  212. package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +22 -20
  213. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +11 -2
  214. package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +5 -1
  215. package/src/components/core/Input-Text-PhoneNumber/README.md +9 -8
  216. package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +2 -5
  217. package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +3 -17
  218. package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
  219. package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +1 -1
  220. package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +1 -1
  221. package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +1 -1
  222. package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +1 -1
  223. package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +5 -2
  224. package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +5 -2
  225. package/src/generators/DTCGFormatGenerator.ts +6 -0
  226. package/src/generators/__tests__/DTCGConfigOptions.test.ts +14 -5
  227. package/src/integration/BuildErrorHandler.ts +2 -2
  228. package/src/tokens/OpacityTokens.ts +1 -1
  229. package/src/tokens/__tests__/OpacityTokens.test.ts +3 -1
  230. package/src/tokens/semantic/BlendTokens.ts +26 -5
  231. package/src/tokens/semantic/OpacityTokens.ts +4 -4
  232. package/src/tools/release/__tests__/ReleasePipeline.test.ts +1 -1
  233. package/src/types/ComponentTypes.ts +1 -1
  234. package/src/types/generated/TokenTypes.ts +1 -1
  235. package/src/validators/StemmaTokenUsageValidator.ts +3 -2
  236. package/token-index/semantics.yaml +1 -2
@@ -2,14 +2,13 @@
2
2
  id: token-family-accessibility
3
3
  inclusion: manual
4
4
  name: Token-Family-Accessibility
5
- aliases: accessibility token work
6
5
  description: Accessibility token family — focus indicators, tap area sizing, and icon sizing tokens for WCAG 2.1 AA compliance. Load when working with focus states, touch targets, or accessibility-related token selection.
7
6
  ---
8
7
 
9
8
  # Accessibility Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for accessibility-focused tokens including focus indicators, tap areas, and icon sizing
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-blend
3
3
  inclusion: manual
4
4
  name: Token-Family-Blend
5
- aliases: blend token work
6
- description: Blend token family — color modification utilities (darken, lighten, saturate, desaturate) producing opaque colors. Load when working with hover/pressed/disabled/focus color states or theme-aware color blending.
5
+ description: Blend token family — color modification utilities (darken, lighten, saturate, desaturate) producing opaque colors. Load when working with hover/pressed/focus color states or theme-aware color blending.
7
6
  ---
8
7
 
9
8
  # Blend Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-29
12
- **Last Reviewed**: 2026-05-06
11
+ **Last Reviewed**: 2026-07-15
13
12
  **Purpose**: Complete reference for blend tokens with utility functions and theme-aware patterns
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -27,7 +26,9 @@ The DesignerPunk blend token system provides a mathematically consistent foundat
27
26
  - **Opaque Color Results**: Blend operations produce new opaque colors, not transparent overlays
28
27
  - **Cross-Platform Consistency**: Same blend calculations produce identical results (±1 RGB) across Web, iOS, and Android
29
28
  - **Theme-Aware**: Blend utilities work correctly with both light and dark themes
30
- - **Semantic Meaning**: Semantic blend tokens express design intent (hover, pressed, disabled, focus)
29
+ - **Semantic Meaning**: Semantic blend tokens express design intent (hover, pressed, focus)
30
+
31
+ > **Deprecation note (2026-07-15)**: `blend.disabledDesaturate` and the `disabledColor()`/`disabledBlend()` convenience wrappers are **DEPRECATED**. DesignerPunk does not support disabled states (Button-CTA disabled-state adjudication, ruled REMOVE — the philosophy holds corpus-wide): if an action is unavailable, do not render the component. The deprecated surfaces remain for backward compatibility and are scheduled for removal in the next major version of `@3fn/core`. The generic `desaturate()` utilities are NOT deprecated.
31
32
 
32
33
  ---
33
34
 
@@ -54,7 +55,7 @@ Blend tokens can be applied in four directions:
54
55
  | `darker` | Overlay black at specified opacity | Hover/pressed states on light backgrounds |
55
56
  | `lighter` | Overlay white at specified opacity | Hover/pressed states on dark backgrounds, icon optical balance |
56
57
  | `saturate` | Increase color saturation in HSL space | Focus states, emphasis |
57
- | `desaturate` | Decrease color saturation in HSL space | Disabled states |
58
+ | `desaturate` | Decrease color saturation in HSL space | Muted, de-emphasized colors |
58
59
 
59
60
  ---
60
61
 
@@ -68,7 +69,7 @@ Semantic blend tokens provide contextual meaning for common color modification u
68
69
  | `blend.hoverLighter` | blend200 | lighter | 8% | Hover feedback on dark backgrounds |
69
70
  | `blend.pressedDarker` | blend300 | darker | 12% | Pressed state feedback |
70
71
  | `blend.focusSaturate` | blend200 | saturate | 8% | Focus state with increased saturation |
71
- | `blend.disabledDesaturate` | blend300 | desaturate | 12% | Disabled state with decreased saturation |
72
+ | `blend.disabledDesaturate` | blend300 | desaturate | 12% | **DEPRECATED 2026-07-15** — no disabled states in DesignerPunk; removal at next major |
72
73
  | `blend.containerHoverDarker` | blend100 | darker | 4% | Subtle container/surface hover |
73
74
  | `color.icon.opticalBalance` | blend200 | lighter | 8% | Icon optical weight compensation |
74
75
 
@@ -107,7 +108,7 @@ import {
107
108
  | `hoverColor(baseColor)` | darkerBlend | 8% (blend200) |
108
109
  | `pressedColor(baseColor)` | darkerBlend | 12% (blend300) |
109
110
  | `focusColor(baseColor)` | saturate | 8% (blend200) |
110
- | `disabledColor(baseColor)` | desaturate | 12% (blend300) |
111
+ | `disabledColor(baseColor)` | desaturate | **DEPRECATED 2026-07-15** — removal at next major |
111
112
  | `iconColor(baseColor)` | lighterBlend | 8% (blend200) |
112
113
 
113
114
  **Usage Example**:
@@ -125,7 +126,6 @@ class ButtonCTA extends HTMLElement {
125
126
  // Calculate state colors
126
127
  this._hoverColor = blendUtils.hoverColor(primaryColor);
127
128
  this._pressedColor = blendUtils.pressedColor(primaryColor);
128
- this._disabledColor = blendUtils.disabledColor(primaryColor);
129
129
  }
130
130
  }
131
131
  ```
@@ -168,7 +168,7 @@ extension Color {
168
168
  /// Focus state color (8% more saturated)
169
169
  func focusBlend() -> Color
170
170
 
171
- /// Disabled state color (12% less saturated)
171
+ /// DEPRECATED 2026-07-15 — no disabled states in DesignerPunk; removal at next major
172
172
  func disabledBlend() -> Color
173
173
 
174
174
  /// Icon optical balance (8% lighter)
@@ -189,7 +189,6 @@ struct ButtonCTA: View {
189
189
  .background(isPressed ? primaryColor.pressedBlend() :
190
190
  isHovered ? primaryColor.hoverBlend() :
191
191
  primaryColor)
192
- .foregroundColor(isDisabled ? primaryColor.disabledBlend() : primaryColor)
193
192
  }
194
193
  }
195
194
  ```
@@ -216,7 +215,7 @@ fun Color.desaturate(amount: Float): Color
216
215
  fun Color.hoverBlend(): Color // 8% darker
217
216
  fun Color.pressedBlend(): Color // 12% darker
218
217
  fun Color.focusBlend(): Color // 8% more saturated
219
- fun Color.disabledBlend(): Color // 12% less saturated
218
+ fun Color.disabledBlend(): Color // DEPRECATED 2026-07-15 — removal at next major
220
219
  fun Color.iconBlend(): Color // 8% lighter
221
220
  ```
222
221
 
@@ -266,7 +265,6 @@ class ButtonCTA extends HTMLElement {
266
265
  const blendUtils = getBlendUtilities();
267
266
  this._hoverColor = blendUtils.hoverColor(primaryColor);
268
267
  this._pressedColor = blendUtils.pressedColor(primaryColor);
269
- this._disabledColor = blendUtils.disabledColor(primaryColor);
270
268
  this._iconColor = blendUtils.iconColor(onPrimaryColor);
271
269
  }
272
270
 
@@ -348,7 +346,6 @@ const iconStyle = { filter: 'brightness(1.08)' };
348
346
  const blendUtils = getBlendUtilities();
349
347
  const hoverColor = blendUtils.hoverColor(primaryColor); // darkerBlend 8%
350
348
  const pressedColor = blendUtils.pressedColor(primaryColor); // darkerBlend 12%
351
- const disabledColor = blendUtils.disabledColor(primaryColor); // desaturate 12%
352
349
  const iconColor = blendUtils.iconColor(onPrimaryColor); // lighterBlend 8%
353
350
  ```
354
351
 
@@ -357,7 +354,6 @@ const iconColor = blendUtils.iconColor(onPrimaryColor); // lighterBlend 8%
357
354
  ```typescript
358
355
  const blendUtils = getBlendUtilities();
359
356
  const focusColor = blendUtils.focusColor(primaryColor); // saturate 8%
360
- const disabledColor = blendUtils.disabledColor(primaryColor); // desaturate 12%
361
357
  ```
362
358
 
363
359
  ### Container Component
@@ -414,7 +410,6 @@ Use semantic blend tokens for standard interaction states:
414
410
  | Hover (dark bg) | `blend.hoverLighter` | `lighterBlend(color, 0.08)` |
415
411
  | Pressed | `blend.pressedDarker` | `pressedColor()` |
416
412
  | Focus | `blend.focusSaturate` | `focusColor()` |
417
- | Disabled | `blend.disabledDesaturate` | `disabledColor()` |
418
413
  | Container hover | `blend.containerHoverDarker` | `darkerBlend(color, 0.04)` |
419
414
  | Icon optical | `color.icon.opticalBalance` | `iconColor()` |
420
415
 
@@ -433,6 +428,13 @@ const emphasisColor = blendUtils.darkerBlend(color, 0.16); // blend400 = 16%
433
428
 
434
429
  ### Anti-Patterns to Avoid
435
430
 
431
+ **❌ Don't style disabled states**:
432
+ ```typescript
433
+ // WRONG: DesignerPunk does not support disabled states (adjudicated 2026-07-15).
434
+ // If an action is unavailable, do not render the component.
435
+ const disabledColor = blendUtils.disabledColor(primaryColor);
436
+ ```
437
+
436
438
  **❌ Don't use opacity for state colors**:
437
439
  ```typescript
438
440
  // WRONG: Opacity creates transparency, not new colors
@@ -481,7 +483,7 @@ blend500 = base × 5 = 0.04 × 5 = 0.20 (20%)
481
483
  | blend.hoverLighter | blend200 | 8% |
482
484
  | blend.pressedDarker | blend300 | 12% |
483
485
  | blend.focusSaturate | blend200 | 8% |
484
- | blend.disabledDesaturate | blend300 | 12% |
486
+ | blend.disabledDesaturate (deprecated) | blend300 | 12% |
485
487
  | blend.containerHoverDarker | blend100 | 4% |
486
488
  | color.icon.opticalBalance | blend200 | 8% |
487
489
 
@@ -2,7 +2,6 @@
2
2
  id: token-family-blur
3
3
  inclusion: manual
4
4
  name: Token-Family-Blur
5
- aliases: blur token work
6
5
  description: Unified blur token family — single primitive scale for shadow edge softness, glow radial spread, and surface/backdrop blur. Load when working with shadows, glows, translucent surfaces, or any blur effect.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-border
3
3
  inclusion: manual
4
4
  name: Token-Family-Border
5
- aliases: border token work
6
5
  description: Border token family — border width tokens with doubling progression and numeric naming. Load when working with border widths, dividers, or outline styles.
7
6
  ---
8
7
 
9
8
  # Border Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for border width tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-color
3
3
  inclusion: manual
4
4
  name: Token-Family-Color
5
- aliases: color token work
6
5
  description: Color token family — OKLCH channel-primitive architecture, palette structure, semantic color tokens, neutral partition, blend model, theme support, and WCAG compliance. Load when working with color tokens, color selection, theme variants, or color-related accessibility.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-glow
3
3
  inclusion: manual
4
4
  name: Token-Family-Glow
5
- aliases: glow token work
6
5
  description: Glow token family — radial emphasis and energy effects with zero-offset blur, opacity, and color primitives. Load when working with glow effects, emphasis indicators, or interactive energy states.
7
6
  ---
8
7
 
9
8
  # Glow Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-10-24
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Glow token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-layering
3
3
  inclusion: manual
4
4
  name: Token-Family-Layering
5
- aliases: layering z-index token work
6
5
  description: Layering token family — z-index (web/iOS) and elevation (Android) tokens for element stacking order. Load when working with overlays, modals, tooltips, or any stacking context decisions.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-motion
3
3
  inclusion: manual
4
4
  name: Token-Family-Motion
5
- aliases: motion easing token work
6
5
  description: Motion token family — animation duration, easing curves, and scale primitives for consistent transitions. Load when working with animations, transitions, micro-interactions, or motion timing.
7
6
  ---
8
7
 
9
8
  # Motion Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-12-06
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Motion token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-opacity
3
3
  inclusion: manual
4
4
  name: Token-Family-Opacity
5
- aliases: opacity token work
6
5
  description: Opacity token family — transparency tokens with 8% base increment system and 14-token percentage-based scale (opacity000–opacity100). Load when working with transparency effects, disabled states, overlays, or visual hierarchy through opacity.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-radius
3
3
  inclusion: manual
4
4
  name: Token-Family-Radius
5
- aliases: radius token work
6
5
  description: Radius token family — corner rounding tokens on 8-unit baseline grid with strategic flexibility exceptions. Load when working with border-radius, rounded corners, or pill/circle shapes.
7
6
  ---
8
7
 
9
8
  # Radius Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for radius tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-responsive
3
3
  inclusion: manual
4
4
  name: Token-Family-Responsive
5
- aliases: responsive token work
6
5
  description: Responsive token family — breakpoint and density tokens for adaptive interfaces. Load when working with responsive layouts, viewport breakpoints, or density-based scaling.
7
6
  ---
8
7
 
9
8
  # Responsive Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for breakpoint and density tokens enabling responsive design across platforms
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-shadow
3
3
  inclusion: manual
4
4
  name: Token-Family-Shadow
5
- aliases: shadow token work
6
5
  description: Shadow token family — directional depth effects with compositional offset, blur, opacity, and color primitives. Load when working with elevation, depth, card shadows, or spatial hierarchy.
7
6
  ---
8
7
 
9
8
  # Shadow Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-10-24
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Shadow token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-sizing
3
3
  inclusion: manual
4
4
  name: Token-Family-Sizing
5
- aliases: sizing token work
6
5
  description: Sizing token family — component dimensions (width, height, box size). Separate from spacing (gaps). Load when working with component sizes, avatar dimensions, button sizes, or any component dimensional value.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-spacing
3
3
  inclusion: manual
4
4
  name: Token-Family-Spacing
5
- aliases: spacing token work
6
5
  description: Spacing token family — layout and component spacing on 8-unit baseline grid with strategic flexibility exceptions. Load when working with padding, margins, gaps, or any spatial layout decisions.
7
6
  ---
8
7
 
9
8
  # Spacing Tokens Guide
10
9
 
11
10
  **Date**: 2025-11-26
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for spacing tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-typography
3
3
  inclusion: manual
4
4
  name: Token-Family-Typography
5
- aliases: typography token work
6
5
  description: Typography token family — compositional typography tokens combining fontSize, lineHeight, fontFamily, fontWeight, and letterSpacing. Load when working with text styles, font selection, or typographic hierarchy.
7
6
  ---
8
7
 
9
8
  # Typography Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-09
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for typography tokens with font family usage and weight mapping guidance
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -625,15 +625,15 @@ This gate exists to prevent ungoverned growth of the modifier pattern. The opaci
625
625
 
626
626
  ```
627
627
  # Get this document
628
- get_document_full({ path: ".kiro/steering/Token-Governance.md" })
628
+ get_document_full({ path: "token-governance" })
629
629
 
630
630
  # Get specific sections
631
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Selection Matrix" })
632
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Usage Governance" })
633
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creation Governance" })
634
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Prior Acknowledgment" })
635
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Decision Examples" })
636
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creation Guides" })
631
+ get_section({ path: "token-governance", heading: "Token Selection Matrix" })
632
+ get_section({ path: "token-governance", heading: "Token Usage Governance" })
633
+ get_section({ path: "token-governance", heading: "Token Creation Governance" })
634
+ get_section({ path: "token-governance", heading: "Prior Acknowledgment" })
635
+ get_section({ path: "token-governance", heading: "Decision Examples" })
636
+ get_section({ path: "token-governance", heading: "Token Creation Guides" })
637
637
  ```
638
638
 
639
639
  ---
@@ -645,7 +645,7 @@ get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creati
645
645
  - [Rosetta System Principles](rosetta-system-principles) — Mathematical foundations
646
646
  - [Token Quick Reference](token-quick-reference) — Token documentation routing
647
647
  - [Token Category Pattern Guide](../specs/token-system/token-category-pattern-guide.md) — Detailed primitive/semantic creation patterns
648
- - [Core Goals](core-goals) — Project principles including token-first approach
648
+ - [Core Goals](../.kiro/steering/core-goals.md) — Project principles including token-first approach
649
649
  - [Design Authority](../specs/051-semantic-token-naming-restructure/design-outline.md) — Semantic token naming restructure design
650
650
 
651
651
  ### DTCG Integration
@@ -122,8 +122,8 @@ See Rosetta-System-Architecture § Stage 5: Generation for why these two definit
122
122
  ### MCP Queries for Mode Architecture
123
123
 
124
124
  ```
125
- get_section({ path: ".kiro/steering/Rosetta-System-Architecture.md", heading: "Stage 4: Mode Resolution (Spec 080)" })
126
- get_section({ path: ".kiro/steering/Token-Quick-Reference.md", heading: "Mode-Aware Token Lookup (Spec 080)" })
125
+ get_section({ path: "rosetta-system-architecture", heading: "Stage 4: Mode Resolution (Spec 080)" })
126
+ get_section({ path: "token-quick-reference", heading: "Mode-Aware Token Lookup (Spec 080)" })
127
127
  ```
128
128
 
129
129
  ---
@@ -286,9 +286,9 @@ Use these MCP queries to access token documentation progressively:
286
286
  Returns metadata and outline (~200 tokens) to understand document structure:
287
287
 
288
288
  ```
289
- get_document_summary({ path: ".kiro/steering/Token-Family-Color.md" })
290
- get_document_summary({ path: ".kiro/steering/Token-Family-Spacing.md" })
291
- get_document_summary({ path: ".kiro/steering/Token-Family-Typography.md" })
289
+ get_document_summary({ path: "token-family-color" })
290
+ get_document_summary({ path: "token-family-spacing" })
291
+ get_document_summary({ path: "token-family-typography" })
292
292
  ```
293
293
 
294
294
  ### Get Specific Section
@@ -296,48 +296,48 @@ Returns targeted content (~2,000 tokens) for specific information:
296
296
 
297
297
  ```
298
298
  // Get color concept tokens by category
299
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Feedback Concept" })
300
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Identity Concept" })
301
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Action Concept" })
302
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Contrast Concept" })
303
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Structure Concept" })
299
+ get_section({ path: "token-family-color", heading: "Feedback Concept" })
300
+ get_section({ path: "token-family-color", heading: "Identity Concept" })
301
+ get_section({ path: "token-family-color", heading: "Action Concept" })
302
+ get_section({ path: "token-family-color", heading: "Contrast Concept" })
303
+ get_section({ path: "token-family-color", heading: "Structure Concept" })
304
304
 
305
305
  // Get component-specific color tokens
306
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Component Tokens" })
306
+ get_section({ path: "token-family-color", heading: "Component Tokens" })
307
307
 
308
308
  // Get primitive color families
309
- get_section({ path: ".kiro/steering/Token-Family-Color.md", heading: "Primitive Color Families" })
309
+ get_section({ path: "token-family-color", heading: "Primitive Color Families" })
310
310
 
311
311
  // Get spacing scale values
312
- get_section({ path: ".kiro/steering/Token-Family-Spacing.md", heading: "Spacing Scale" })
312
+ get_section({ path: "token-family-spacing", heading: "Spacing Scale" })
313
313
 
314
314
  // Get typography composition patterns
315
- get_section({ path: ".kiro/steering/Token-Family-Typography.md", heading: "Typography Composition" })
315
+ get_section({ path: "token-family-typography", heading: "Typography Composition" })
316
316
 
317
317
  // Get shadow elevation levels
318
- get_section({ path: ".kiro/steering/Token-Family-Shadow.md", heading: "Shadow Scale" })
318
+ get_section({ path: "token-family-shadow", heading: "Shadow Scale" })
319
319
 
320
320
  // Get radius values
321
- get_section({ path: ".kiro/steering/Token-Family-Radius.md", heading: "Primitive Radius Tokens" })
321
+ get_section({ path: "token-family-radius", heading: "Primitive Radius Tokens" })
322
322
 
323
323
  // Get border width values
324
- get_section({ path: ".kiro/steering/Token-Family-Border.md", heading: "Primitive Border Width Tokens" })
324
+ get_section({ path: "token-family-border", heading: "Primitive Border Width Tokens" })
325
325
 
326
326
  // Get opacity values
327
- get_section({ path: ".kiro/steering/Token-Family-Opacity.md", heading: "Primitive Opacity Tokens" })
327
+ get_section({ path: "token-family-opacity", heading: "Primitive Opacity Tokens" })
328
328
 
329
329
  // Get breakpoint values
330
- get_section({ path: ".kiro/steering/Token-Family-Responsive.md", heading: "Breakpoint Tokens" })
330
+ get_section({ path: "token-family-responsive", heading: "Breakpoint Tokens" })
331
331
 
332
332
  // Get tap area requirements
333
- get_section({ path: ".kiro/steering/Token-Family-Accessibility.md", heading: "Tap Area Tokens" })
333
+ get_section({ path: "token-family-accessibility", heading: "Tap Area Tokens" })
334
334
  ```
335
335
 
336
336
  ### Get Full Document
337
337
  Returns complete content (2,000-15,000 tokens) when comprehensive reference needed:
338
338
 
339
339
  ```
340
- get_document_full({ path: ".kiro/steering/Token-Family-Color.md" })
340
+ get_document_full({ path: "token-family-color" })
341
341
  ```
342
342
 
343
343
  ### Recommended Workflow
@@ -8,7 +8,7 @@ description: Token resolution patterns — fixed vs flexible token types, valida
8
8
  # Token Resolution Patterns
9
9
 
10
10
  **Date**: 2025-12-19
11
- **Last Reviewed**: 2025-12-19
11
+ **Last Reviewed**: 2026-07-08
12
12
  **Purpose**: Strategic guidance on handling flexible token types with validation and type safety
13
13
  **Organization**: process-standard
14
14
  **Scope**: cross-project
@@ -9,7 +9,7 @@ description: Semantic token structure guide — SemanticToken interface requirem
9
9
  # Semantic Token Structure Guide
10
10
 
11
11
  **Date**: 2025-11-17
12
- **Last Reviewed**: 2025-12-30
12
+ **Last Reviewed**: 2026-07-08
13
13
  **Purpose**: Document SemanticToken interface requirements and usage patterns
14
14
  **Organization**: token-documentation
15
15
  **Scope**: cross-project
@@ -391,13 +391,13 @@ gap: 24px; /* "I'll tokenize this later" — no you won't, session memory is los
391
391
 
392
392
  For the full document:
393
393
  ```
394
- get_document_full({ path: ".kiro/steering/Web-Authoring-Standards.md" })
394
+ get_document_full({ path: "web-authoring-standards" })
395
395
  ```
396
396
 
397
397
  For specific sections:
398
398
  ```
399
- get_section({ path: ".kiro/steering/Web-Authoring-Standards.md", heading: "Hard Rules" })
400
- get_section({ path: ".kiro/steering/Web-Authoring-Standards.md", heading: "Token Priority" })
401
- get_section({ path: ".kiro/steering/Web-Authoring-Standards.md", heading: "Product Token Authoring (Sparky)" })
402
- get_section({ path: ".kiro/steering/Web-Authoring-Standards.md", heading: "Naming Schema" })
399
+ get_section({ path: "web-authoring-standards", heading: "Hard Rules" })
400
+ get_section({ path: "web-authoring-standards", heading: "Token Priority" })
401
+ get_section({ path: "web-authoring-standards", heading: "Product Token Authoring (Sparky)" })
402
+ get_section({ path: "web-authoring-standards", heading: "Naming Schema" })
403
403
  ```
@@ -8,7 +8,7 @@ description: Guide for loading and using DesignerPunk web components in browsers
8
8
  # Browser Distribution Guide
9
9
 
10
10
  **Date**: 2025-12-23
11
- **Last Reviewed**: 2025-12-23
11
+ **Last Reviewed**: 2026-07-08
12
12
  **Purpose**: Guide for loading and using DesignerPunk web components directly in browsers
13
13
  **Organization**: process-standard
14
14
  **Scope**: cross-project
@@ -345,9 +345,6 @@ Call-to-action button with variants, sizes, and icon support.
345
345
  <button-cta label="Primary" variant="primary"></button-cta>
346
346
  <button-cta label="Secondary" variant="secondary"></button-cta>
347
347
  <button-cta label="Tertiary" variant="tertiary"></button-cta>
348
-
349
- <!-- Disabled state -->
350
- <button-cta label="Disabled" variant="primary" disabled></button-cta>
351
348
  ```
352
349
 
353
350
  **Events:**