@cyberskill/design 2.1.0 → 2.3.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 (333) hide show
  1. package/DESIGN.md +70 -3
  2. package/README.md +3 -3
  3. package/VERSION +1 -1
  4. package/_ds_bundle.js +2 -2
  5. package/_ds_bundle.js.map +1 -1
  6. package/_ds_manifest.json +32 -32
  7. package/_esm/cs.mjs +2 -2
  8. package/base/collections.css +3 -3
  9. package/base/components.css +10 -5
  10. package/base/controls.css +8 -8
  11. package/base/data.css +4 -2
  12. package/base/feedback.css +5 -3
  13. package/base/forms.css +2 -2
  14. package/base/glass.css +5 -2
  15. package/base/interaction.css +1 -1
  16. package/base/navigation.css +4 -4
  17. package/base/responsive.css +4 -0
  18. package/base/shell.css +9 -9
  19. package/base/typography.css +4 -0
  20. package/components/api-discovery.json +1 -1
  21. package/components/api-index.json +14 -14
  22. package/components/lifecycle.json +13 -13
  23. package/components/prompt-api.json +2 -2
  24. package/components/release-compatibility.json +2 -28
  25. package/components/scenarios.json +321 -28
  26. package/components/specifications.json +7546 -3515
  27. package/components/static-html-reference.json +19 -19
  28. package/dist/esm/build.json +1 -1
  29. package/dist/styles.min.css +1 -1
  30. package/docs/component-scenarios.md +1 -1
  31. package/docs/consuming.md +1 -1
  32. package/docs/contrast-report.md +196 -1
  33. package/docs/conventions.md +1 -1
  34. package/docs/manual-at-matrix.md +3 -3
  35. package/docs/reference-catalog.json +23 -23
  36. package/docs/release-notes.md +14 -1
  37. package/docs/releasing.md +4 -2
  38. package/docs/static-html-reference.md +18 -18
  39. package/docs/template-inventory.json +1 -1
  40. package/docs/vi/component-scenarios.md +1 -1
  41. package/docs/vi/consuming.md +1 -1
  42. package/docs/vi/contrast-report.md +196 -1
  43. package/docs/vi/conventions.md +1 -1
  44. package/docs/vi/decisions/component-specification-evidence.md +1 -1
  45. package/docs/vi/entrypoints/DESIGN.md +70 -3
  46. package/docs/vi/entrypoints/README.md +3 -3
  47. package/docs/vi/manual-at-matrix.md +3 -3
  48. package/docs/vi/release-notes.md +14 -1
  49. package/docs/vi/releasing.md +4 -2
  50. package/docs/vi/static-html-reference.md +18 -18
  51. package/docs/viewer.html +76 -25
  52. package/guidance/agent-contract.json +2 -2
  53. package/guidelines/atomic-view.html +4 -3
  54. package/guidelines/elements-variants.html +14 -14
  55. package/guidelines/guideline-language.js +1 -1
  56. package/package.json +2 -1
  57. package/styles/components/manifest.json +148 -137
  58. package/styles.layered.css +365 -353
  59. package/styles.layered.provenance.json +15 -15
  60. package/tokens/declarations.json +423 -375
  61. package/tokens/element-seeds.json +41 -39
  62. package/tokens/elements.css +333 -333
  63. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  64. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  65. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  66. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  67. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  68. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  69. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  70. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  71. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  72. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  73. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  74. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  75. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  76. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  77. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  78. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  79. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  80. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  81. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  82. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  83. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  84. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  85. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  86. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  87. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  88. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  89. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  90. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  91. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  92. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  93. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  94. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  95. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  96. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  97. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  98. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  99. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  100. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  101. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  102. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  103. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  104. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  105. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  106. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  107. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  108. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  109. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  110. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  111. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  112. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  113. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  114. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  115. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  116. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  117. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  118. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  119. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  120. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  121. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  122. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  123. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  124. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  125. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  126. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  127. package/tokens/modes/index.json +1548 -1548
  128. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  129. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  130. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  131. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  132. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  133. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  134. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  135. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  136. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  137. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  138. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  139. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  140. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  141. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  142. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  143. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  144. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  145. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  146. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  147. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  148. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  149. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  150. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  151. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  152. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  153. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  154. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  155. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  156. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  157. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  158. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  159. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  160. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  161. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  162. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  163. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  164. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  165. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  166. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  167. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  168. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  169. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  170. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  171. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  172. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  173. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  174. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  175. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  176. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  177. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  178. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  179. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  180. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  181. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  182. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  183. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  184. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  185. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  186. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  187. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  188. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  189. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  190. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  191. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  192. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  193. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  194. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  195. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  196. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  197. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  198. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  199. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  200. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  201. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  202. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  203. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  204. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  205. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  206. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  207. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  208. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  209. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  210. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  211. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  212. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  213. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  214. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  215. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  216. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  217. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  218. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  219. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  220. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  221. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  222. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  223. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  224. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  225. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  226. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  227. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  228. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  229. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  230. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  231. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  232. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  233. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  234. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  235. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  236. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  237. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  238. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  239. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  240. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  241. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  242. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  243. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  244. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  245. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  246. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  247. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  248. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  249. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  250. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  251. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  252. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  253. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  254. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  255. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  256. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  257. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  258. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  259. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  260. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  261. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  262. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  263. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  264. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  265. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  266. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  267. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  268. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  269. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  270. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  271. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  272. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  273. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  274. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  275. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  276. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  277. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  278. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  279. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  280. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  281. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  282. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  283. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  284. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  285. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  286. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  287. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  288. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  289. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  290. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  291. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  292. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  293. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  294. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  295. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  296. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  297. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  298. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  299. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  300. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  301. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  302. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  303. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  304. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  305. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  306. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  307. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  308. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  309. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  310. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  311. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  312. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  313. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  314. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  315. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  316. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  317. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  318. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  319. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  320. package/tokens/native/CSModes.kt +631 -588
  321. package/tokens/native/CSModes.swift +631 -588
  322. package/tokens/native/CSTokens.kt +301 -301
  323. package/tokens/native/CSTokens.swift +301 -301
  324. package/tokens/native/cs_modes.dart +631 -588
  325. package/tokens/native/cs_tokens.dart +301 -301
  326. package/tokens/native/mode-provenance.json +11 -11
  327. package/tokens/provenance.json +6 -6
  328. package/tokens/tokens.dtcg.json +268 -268
  329. package/tokens/tokens.js +160 -160
  330. package/tokens/tokens.json +159 -159
  331. package/tokens/typography.css +2 -3
  332. package/tokens/variables.css +336 -333
  333. package/ui_kits/website/site.css +2 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  `components/scenarios.json` is the source-bound inventory for the component state checks. It derives component membership from the public API, starts with the authored static-reference fixtures, and derives finite presentation domains from declarations. `scripts/fixtures/component-scenarios.json` supplies reviewed runtime expectations and the JSX/declaration hashes supporting each expectation. Changing a component does not automatically refresh that evidence.
4
4
 
5
- The inventory covers one default fixture for every public component; every declared value of the finite `variant`, `size`, `tone`, `status`, `state` and `mode` domains; the supported Button variant × size product; every declared `disabled`, `error` and `errors` prop; and eight explicitly authored empty-collection contracts. New finite domains or declared disabled/error props fail generation until an expectation is authored. Empty behavior outside those eight collections remains unclassified, rather than being silently counted as verified or inapplicable.
5
+ The inventory covers one default fixture for every public component; every declared value of the finite `variant`, `size`, `tone`, `status`, `state` and `mode` domains; the supported Button variant × size product; every declared `disabled`, `error` and `errors` prop; and twenty explicitly authored empty-collection contracts. New finite domains or declared disabled/error props fail generation until an expectation is authored. Empty behavior outside those twenty collections remains unclassified, rather than being silently counted as verified or inapplicable.
6
6
 
7
7
  For the finite components, default scenes omit those finite props and assert the reviewed parameter-default behavior, including the no-variant ProgressBar default and AlertDialog alias fallback. Other defaults retain their documented canonical fixture state. The runtime expectations assert actual class/state changes, SVG geometry, native disabled/focus behavior, exposed error alerts and their input descriptions, or empty collections without data items. The empty Cascader and TreeSelect contracts assert an exposed empty popup, without inventing an empty-message promise. FormField uses its documented TextField composition. Each scene is mounted separately in English and Vietnamese; cleanup must remove prior floating hosts before the next scene can claim ownership of its newly created hosts.
8
8
 
package/docs/consuming.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Consuming & upgrading the CyberSkill Design System
2
2
 
3
- **Source checkout:** VERSION **<!-- cs-source-version:checkout -->2.1.0<!-- /cs-source-version -->** is local source identity, not a registry-availability claim. For an unpublished candidate, validate the reviewed local package tarball or source checkout. Registry commands and sibling inventories below refer to published stable 1.7.2 and are not automatically updated by preparation. Preparation does not authorize publication.
3
+ **Source checkout:** VERSION **<!-- cs-source-version:checkout -->2.3.0<!-- /cs-source-version -->** is local source identity, not a registry-availability claim. For an unpublished candidate, validate the reviewed local package tarball or source checkout. Registry commands below refer to published stable 2.0.0 (and the dated ADOPT-001 1.7.2 sibling inventory) and are not automatically updated by preparation. Preparation does not authorize publication.
4
4
 
5
5
  How any project — human-driven or agent-driven — adopts this HTML-first design system, and how to take updates safely. Published on Storybook **Docs** at `design.cyberskill.world`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Contrast report — elemental pairings (APCA)
2
2
 
3
- Generated · sweep at VERSION 2.1.0.
3
+ Generated · sweep at VERSION 2.3.0.
4
4
 
5
5
  Published on Storybook **Docs** at `design.cyberskill.world`.
6
6
 
@@ -14,6 +14,81 @@ Packs are generated from `tokens/element-seeds.json` (soft / middle / deep ladde
14
14
  | root (Thổ default) | accent-bright on ink (headings) | #F4BA17 / #45210E | 66.3 | ✓ |
15
15
  | root (Thổ default) | accent-on on accent-bright (CTA text) | #45210E / #F4BA17 | 66.3 | ✓ |
16
16
  | root (Thổ default) | accent-bright on dark panel (dark labels) | #F4BA17 / #221710 | 69.2 | ✓ |
17
+ | tho · sand | text-accent on white (bold labels) | #695300 / #FFFFFF | 85.5 | ✓ |
18
+ | tho · sand | text-accent on tint (bold labels) | #695300 / #FEF8E7 | 81.4 | ✓ |
19
+ | tho · sand | accent-bright on ink (headings) | #FDEAB7 / #292108 | 92.5 | ✓ |
20
+ | tho · sand | accent-on on accent-bright (CTA text) | #271E06 / #FDEAB7 | 91.6 | ✓ |
21
+ | tho · sand | accent-bright on dark panel (dark labels) | #F9E5AE / #221710 | 90.5 | ✓ |
22
+ | tho | text-accent on white (bold labels) | #6E3B0E / #FFFFFF | 90.7 | ✓ |
23
+ | tho | text-accent on tint (bold labels) | #6E3B0E / #FBF4E9 | 84.6 | ✓ |
24
+ | tho | accent-bright on ink (headings) | #F4BA17 / #45210E | 66.3 | ✓ |
25
+ | tho | accent-on on accent-bright (CTA text) | #45210E / #F4BA17 | 66.3 | ✓ |
26
+ | tho | accent-bright on dark panel (dark labels) | #FDD378 / #221710 | 81.9 | ✓ |
27
+ | tho · clay | text-accent on white (bold labels) | #462402 / #FFFFFF | 100.2 | ✓ |
28
+ | tho · clay | text-accent on tint (bold labels) | #462402 / #FCEEE3 | 91.5 | ✓ |
29
+ | tho · clay | accent-bright on ink (headings) | #F2C5A3 / #321B07 | 74.4 | ✓ |
30
+ | tho · clay | accent-on on accent-bright (CTA text) | #080200 / #F2C5A3 | 77.4 | ✓ |
31
+ | tho · clay | accent-bright on dark panel (dark labels) | #F8C7A1 / #221710 | 77.1 | ✓ |
32
+ | hoa · plasma | text-accent on white (bold labels) | #714B4D / #FFFFFF | 85.8 | ✓ |
33
+ | hoa · plasma | text-accent on tint (bold labels) | #714B4D / #FFF5F5 | 81.1 | ✓ |
34
+ | hoa · plasma | accent-bright on ink (headings) | #FFE3E4 / #2B1E1E | 91.5 | ✓ |
35
+ | hoa · plasma | accent-on on accent-bright (CTA text) | #281B1C / #FFE3E4 | 90.8 | ✓ |
36
+ | hoa · plasma | accent-bright on dark panel (dark labels) | #FDDDDE / #221710 | 89.4 | ✓ |
37
+ | hoa | text-accent on white (bold labels) | #793609 / #FFFFFF | 90 | ✓ |
38
+ | hoa | text-accent on tint (bold labels) | #793609 / #FFF1EA | 83.2 | ✓ |
39
+ | hoa | accent-bright on ink (headings) | #FFD3BD / #3A1501 | 83 | ✓ |
40
+ | hoa | accent-on on accent-bright (CTA text) | #361402 / #FFD3BD | 82.8 | ✓ |
41
+ | hoa | accent-bright on dark panel (dark labels) | #FECDB4 / #221710 | 81.2 | ✓ |
42
+ | hoa · lava | text-accent on white (bold labels) | #550306 / #FFFFFF | 100.5 | ✓ |
43
+ | hoa · lava | text-accent on tint (bold labels) | #550306 / #FFEBE9 | 91.1 | ✓ |
44
+ | hoa · lava | accent-bright on ink (headings) | #FFBCB4 / #400C0B | 73.4 | ✓ |
45
+ | hoa · lava | accent-on on accent-bright (CTA text) | #0D0000 / #FFBCB4 | 76.6 | ✓ |
46
+ | hoa · lava | accent-bright on dark panel (dark labels) | #FFC1B9 / #221710 | 76.7 | ✓ |
47
+ | thuy · mist | text-accent on white (bold labels) | #116060 / #FFFFFF | 85.1 | ✓ |
48
+ | thuy · mist | text-accent on tint (bold labels) | #116060 / #E6FDFC | 81.1 | ✓ |
49
+ | thuy · mist | accent-bright on ink (headings) | #B1FBF9 / #032727 | 94 | ✓ |
50
+ | thuy · mist | accent-on on accent-bright (CTA text) | #012525 / #B1FBF9 | 92.7 | ✓ |
51
+ | thuy · mist | accent-bright on dark panel (dark labels) | #A6F8F6 / #221710 | 92.7 | ✓ |
52
+ | thuy | text-accent on white (bold labels) | #0D535C / #FFFFFF | 89.5 | ✓ |
53
+ | thuy | text-accent on tint (bold labels) | #0D535C / #DFFBFF | 84 | ✓ |
54
+ | thuy | accent-bright on ink (headings) | #94EFFD / #03272C | 85.8 | ✓ |
55
+ | thuy | accent-on on accent-bright (CTA text) | #012429 / #94EFFD | 85.4 | ✓ |
56
+ | thuy | accent-bright on dark panel (dark labels) | #79EDFF / #221710 | 84.6 | ✓ |
57
+ | thuy · ocean | text-accent on white (bold labels) | #003142 / #FFFFFF | 100.1 | ✓ |
58
+ | thuy · ocean | text-accent on tint (bold labels) | #003142 / #E5F3FA | 91.5 | ✓ |
59
+ | thuy · ocean | accent-bright on ink (headings) | #A9D8ED / #092531 | 76.1 | ✓ |
60
+ | thuy · ocean | accent-on on accent-bright (CTA text) | #001721 / #A9D8ED | 78.1 | ✓ |
61
+ | thuy · ocean | accent-bright on dark panel (dark labels) | #A5D8F0 / #221710 | 77.1 | ✓ |
62
+ | moc · bamboo | text-accent on white (bold labels) | #4A5B02 / #FFFFFF | 86 | ✓ |
63
+ | moc · bamboo | text-accent on tint (bold labels) | #4A5B02 / #F5FBE8 | 82.1 | ✓ |
64
+ | moc · bamboo | accent-bright on ink (headings) | #E2F4BA / #1E250A | 93.4 | ✓ |
65
+ | moc · bamboo | accent-on on accent-bright (CTA text) | #1C2307 / #E2F4BA | 92.3 | ✓ |
66
+ | moc · bamboo | accent-bright on dark panel (dark labels) | #DCF0B1 / #221710 | 91.7 | ✓ |
67
+ | moc | text-accent on white (bold labels) | #24570B / #FFFFFF | 89.2 | ✓ |
68
+ | moc | text-accent on tint (bold labels) | #24570B / #EAFAE5 | 83.4 | ✓ |
69
+ | moc | accent-bright on ink (headings) | #B9F0A6 / #0D2902 | 85.9 | ✓ |
70
+ | moc | accent-on on accent-bright (CTA text) | #0A2700 / #B9F0A6 | 85.4 | ✓ |
71
+ | moc | accent-bright on dark panel (dark labels) | #B2EC9E / #221710 | 84.5 | ✓ |
72
+ | moc · forest | text-accent on white (bold labels) | #04361D / #FFFFFF | 99.7 | ✓ |
73
+ | moc · forest | text-accent on tint (bold labels) | #04361D / #E6F5EB | 91.5 | ✓ |
74
+ | moc · forest | accent-bright on ink (headings) | #ACDDBD / #0B2818 | 76.4 | ✓ |
75
+ | moc · forest | accent-on on accent-bright (CTA text) | #011C0D / #ACDDBD | 78.1 | ✓ |
76
+ | moc · forest | accent-bright on dark panel (dark labels) | #A8DFBB / #221710 | 78.3 | ✓ |
77
+ | kim · titanium | text-accent on white (bold labels) | #3D5670 / #FFFFFF | 86.4 | ✓ |
78
+ | kim · titanium | text-accent on tint (bold labels) | #3D5670 / #F3F8FE | 81.8 | ✓ |
79
+ | kim · titanium | accent-bright on ink (headings) | #DDEDFF / #1A232B | 92.5 | ✓ |
80
+ | kim · titanium | accent-on on accent-bright (CTA text) | #182029 / #DDEDFF | 91.6 | ✓ |
81
+ | kim · titanium | accent-bright on dark panel (dark labels) | #D6E9FD / #221710 | 90.8 | ✓ |
82
+ | kim | text-accent on white (bold labels) | #564B27 / #FFFFFF | 89.6 | ✓ |
83
+ | kim | text-accent on tint (bold labels) | #564B27 / #F8F4EA | 83.2 | ✓ |
84
+ | kim | accent-bright on ink (headings) | #E8DEBD / #262112 | 84.3 | ✓ |
85
+ | kim | accent-on on accent-bright (CTA text) | #241F0F / #E8DEBD | 84 | ✓ |
86
+ | kim | accent-bright on dark panel (dark labels) | #E3D9B8 / #221710 | 82.3 | ✓ |
87
+ | kim · steel | text-accent on white (bold labels) | #1B2E4C / #FFFFFF | 100 | ✓ |
88
+ | kim · steel | text-accent on tint (bold labels) | #1B2E4C / #EBF1FB | 91.4 | ✓ |
89
+ | kim · steel | accent-bright on ink (headings) | #BED0F0 / #182232 | 75 | ✓ |
90
+ | kim · steel | accent-on on accent-bright (CTA text) | #020818 / #BED0F0 | 78 | ✓ |
91
+ | kim · steel | accent-bright on dark panel (dark labels) | #BBD0F4 / #221710 | 76 | ✓ |
17
92
 
18
93
  **Failures: 0.** All text pairings pass Lc ≥ 60.
19
94
 
@@ -24,6 +99,81 @@ Packs are generated from `tokens/element-seeds.json` (soft / middle / deep ladde
24
99
  Rows use the declared light or dark `--cs-color-link` colour. White, reference-page, reference-raised and reference-dark-panel backgrounds are fixed literals; element surface roles use `color-mix()` and are not measured by these rows. Rendered surface, preference and interaction checks have separate scopes.
25
100
  | Scope | Pairing | fg / bg | Ratio | Verdict |
26
101
  |---|---|---|---|---|
102
+ | tho · sand | link on white (body) | #695300 / #FFFFFF | 7.40:1 | ✓ |
103
+ | tho · sand | link on reference page (body) | #695300 / #FFFDF8 | 7.28:1 | ✓ |
104
+ | tho · sand | link on tint (body) | #695300 / #FEF8E7 | 6.98:1 | ✓ |
105
+ | tho · sand | link on reference raised cream (body) | #695300 / #FBF4E9 | 6.77:1 | ✓ |
106
+ | tho · sand | link on reference dark panel (body) | #F9E5AE / #221710 | 14.06:1 | ✓ |
107
+ | tho | link on white (body) | #644A05 / #FFFFFF | 8.32:1 | ✓ |
108
+ | tho | link on reference page (body) | #644A05 / #FFFDF8 | 8.19:1 | ✓ |
109
+ | tho | link on tint (body) | #644A05 / #FBF4E9 | 7.62:1 | ✓ |
110
+ | tho | link on reference raised cream (body) | #644A05 / #FBF4E9 | 7.62:1 | ✓ |
111
+ | tho | link on reference dark panel (body) | #FFD57A / #221710 | 12.56:1 | ✓ |
112
+ | tho · clay | link on white (body) | #462402 / #FFFFFF | 13.87:1 | ✓ |
113
+ | tho · clay | link on reference page (body) | #462402 / #FFFDF8 | 13.65:1 | ✓ |
114
+ | tho · clay | link on tint (body) | #462402 / #FCEEE3 | 12.21:1 | ✓ |
115
+ | tho · clay | link on reference raised cream (body) | #462402 / #FBF4E9 | 12.70:1 | ✓ |
116
+ | tho · clay | link on reference dark panel (body) | #FFD2AF / #221710 | 12.60:1 | ✓ |
117
+ | hoa · plasma | link on white (body) | #714B4D / #FFFFFF | 7.46:1 | ✓ |
118
+ | hoa · plasma | link on reference page (body) | #714B4D / #FFFDF8 | 7.34:1 | ✓ |
119
+ | hoa · plasma | link on tint (body) | #714B4D / #FFF5F5 | 6.97:1 | ✓ |
120
+ | hoa · plasma | link on reference raised cream (body) | #714B4D / #FBF4E9 | 6.83:1 | ✓ |
121
+ | hoa · plasma | link on reference dark panel (body) | #FDDDDE / #221710 | 13.83:1 | ✓ |
122
+ | hoa | link on white (body) | #793609 / #FFFFFF | 8.96:1 | ✓ |
123
+ | hoa | link on reference page (body) | #793609 / #FFFDF8 | 8.81:1 | ✓ |
124
+ | hoa | link on tint (body) | #793609 / #FFF1EA | 8.11:1 | ✓ |
125
+ | hoa | link on reference raised cream (body) | #793609 / #FBF4E9 | 8.20:1 | ✓ |
126
+ | hoa | link on reference dark panel (body) | #FFD1BA / #221710 | 12.59:1 | ✓ |
127
+ | hoa · lava | link on white (body) | #550306 / #FFFFFF | 14.98:1 | ✓ |
128
+ | hoa · lava | link on reference page (body) | #550306 / #FFFDF8 | 14.74:1 | ✓ |
129
+ | hoa · lava | link on tint (body) | #550306 / #FFEBE9 | 13.06:1 | ✓ |
130
+ | hoa · lava | link on reference raised cream (body) | #550306 / #FBF4E9 | 13.71:1 | ✓ |
131
+ | hoa · lava | link on reference dark panel (body) | #FDD0CA / #221710 | 12.56:1 | ✓ |
132
+ | thuy · mist | link on white (body) | #116060 / #FFFFFF | 7.33:1 | ✓ |
133
+ | thuy · mist | link on reference page (body) | #116060 / #FFFDF8 | 7.21:1 | ✓ |
134
+ | thuy · mist | link on tint (body) | #116060 / #E6FDFC | 6.92:1 | ✓ |
135
+ | thuy · mist | link on reference raised cream (body) | #116060 / #FBF4E9 | 6.71:1 | ✓ |
136
+ | thuy · mist | link on reference dark panel (body) | #A6F8F6 / #221710 | 14.51:1 | ✓ |
137
+ | thuy | link on white (body) | #0D535C / #FFFFFF | 8.72:1 | ✓ |
138
+ | thuy | link on reference page (body) | #0D535C / #FFFDF8 | 8.58:1 | ✓ |
139
+ | thuy | link on tint (body) | #0D535C / #DFFBFF | 8.05:1 | ✓ |
140
+ | thuy | link on reference raised cream (body) | #0D535C / #FBF4E9 | 7.98:1 | ✓ |
141
+ | thuy | link on reference dark panel (body) | #79EDFF / #221710 | 12.83:1 | ✓ |
142
+ | thuy · ocean | link on white (body) | #003142 / #FFFFFF | 13.83:1 | ✓ |
143
+ | thuy · ocean | link on reference page (body) | #003142 / #FFFDF8 | 13.61:1 | ✓ |
144
+ | thuy · ocean | link on tint (body) | #003142 / #E5F3FA | 12.21:1 | ✓ |
145
+ | thuy · ocean | link on reference raised cream (body) | #003142 / #FBF4E9 | 12.66:1 | ✓ |
146
+ | thuy · ocean | link on reference dark panel (body) | #AFE2FA / #221710 | 12.59:1 | ✓ |
147
+ | moc · bamboo | link on white (body) | #4A5B02 / #FFFFFF | 7.53:1 | ✓ |
148
+ | moc · bamboo | link on reference page (body) | #4A5B02 / #FFFDF8 | 7.41:1 | ✓ |
149
+ | moc · bamboo | link on tint (body) | #4A5B02 / #F5FBE8 | 7.12:1 | ✓ |
150
+ | moc · bamboo | link on reference raised cream (body) | #4A5B02 / #FBF4E9 | 6.89:1 | ✓ |
151
+ | moc · bamboo | link on reference dark panel (body) | #DCF0B1 / #221710 | 14.31:1 | ✓ |
152
+ | moc | link on white (body) | #24570B / #FFFFFF | 8.60:1 | ✓ |
153
+ | moc | link on reference page (body) | #24570B / #FFFDF8 | 8.46:1 | ✓ |
154
+ | moc | link on tint (body) | #24570B / #EAFAE5 | 7.90:1 | ✓ |
155
+ | moc | link on reference raised cream (body) | #24570B / #FBF4E9 | 7.87:1 | ✓ |
156
+ | moc | link on reference dark panel (body) | #B2EC9E / #221710 | 12.84:1 | ✓ |
157
+ | moc · forest | link on white (body) | #04361D / #FFFFFF | 13.54:1 | ✓ |
158
+ | moc · forest | link on reference page (body) | #04361D / #FFFDF8 | 13.32:1 | ✓ |
159
+ | moc · forest | link on tint (body) | #04361D / #E6F5EB | 12.01:1 | ✓ |
160
+ | moc · forest | link on reference raised cream (body) | #04361D / #FBF4E9 | 12.39:1 | ✓ |
161
+ | moc · forest | link on reference dark panel (body) | #B0E7C3 / #221710 | 12.57:1 | ✓ |
162
+ | kim · titanium | link on white (body) | #3D5670 / #FFFFFF | 7.60:1 | ✓ |
163
+ | kim · titanium | link on reference page (body) | #3D5670 / #FFFDF8 | 7.48:1 | ✓ |
164
+ | kim · titanium | link on tint (body) | #3D5670 / #F3F8FE | 7.12:1 | ✓ |
165
+ | kim · titanium | link on reference raised cream (body) | #3D5670 / #FBF4E9 | 6.95:1 | ✓ |
166
+ | kim · titanium | link on reference dark panel (body) | #D6E9FD / #221710 | 14.13:1 | ✓ |
167
+ | kim | link on white (body) | #564B27 / #FFFFFF | 8.64:1 | ✓ |
168
+ | kim | link on reference page (body) | #564B27 / #FFFDF8 | 8.50:1 | ✓ |
169
+ | kim | link on tint (body) | #564B27 / #F8F4EA | 7.86:1 | ✓ |
170
+ | kim | link on reference raised cream (body) | #564B27 / #FBF4E9 | 7.90:1 | ✓ |
171
+ | kim | link on reference dark panel (body) | #E5DBBA / #221710 | 12.66:1 | ✓ |
172
+ | kim · steel | link on white (body) | #1B2E4C / #FFFFFF | 13.62:1 | ✓ |
173
+ | kim · steel | link on reference page (body) | #1B2E4C / #FFFDF8 | 13.40:1 | ✓ |
174
+ | kim · steel | link on tint (body) | #1B2E4C / #EBF1FB | 12.00:1 | ✓ |
175
+ | kim · steel | link on reference raised cream (body) | #1B2E4C / #FBF4E9 | 12.47:1 | ✓ |
176
+ | kim · steel | link on reference dark panel (body) | #C8DBFD / #221710 | 12.53:1 | ✓ |
27
177
 
28
178
  **Link failures: 0.**
29
179
 
@@ -32,6 +182,36 @@ Rows use the declared light or dark `--cs-color-link` colour. White, reference-p
32
182
  Pair `--cs-accent-strong` with `--cs-accent-on-strong`: both light and dark packs must meet body Lc ≥ 75 (generator target 78) and WCAG ≥ 4.5:1. Dark primary buttons consume this paired foreground. Brand anchors and the other eight accent roles retain their values.
33
183
  | Scope | Mode | fg / bg | Lc | Verdict |
34
184
  |---|---|---|---|---|
185
+ | tho · sand | light | #FFFFFF / #856A03 | 80.8 | ✓ |
186
+ | tho · sand | dark | #FFFFFF / #80671A | 82.2 | ✓ |
187
+ | tho | light | #FFFFFF / #916D11 | 78.4 | ✓ |
188
+ | tho | dark | #FFFFFF / #6E5205 | 90.1 | ✓ |
189
+ | tho · clay | light | #FFFFFF / #5A3004 | 99.5 | ✓ |
190
+ | tho · clay | dark | #FFFFFF / #5C3001 | 99.3 | ✓ |
191
+ | hoa · plasma | light | #FFFFFF / #896163 | 81.7 | ✓ |
192
+ | hoa · plasma | dark | #FFFFFF / #836061 | 82.8 | ✓ |
193
+ | hoa | light | #FFFFFF / #96440B | 87.5 | ✓ |
194
+ | hoa | dark | #FFFFFF / #883E0D | 90.9 | ✓ |
195
+ | hoa · lava | light | #FFFFFF / #760008 | 98.8 | ✓ |
196
+ | hoa · lava | dark | #FFFFFF / #6D1D19 | 99.2 | ✓ |
197
+ | thuy · mist | light | #FFFFFF / #037D7D | 79.2 | ✓ |
198
+ | thuy · mist | dark | #FFFFFF / #077A79 | 80.4 | ✓ |
199
+ | thuy | light | #FFFFFF / #166B76 | 85.6 | ✓ |
200
+ | thuy | dark | #FFFFFF / #04626D | 89.0 | ✓ |
201
+ | thuy · ocean | light | #FFFFFF / #034257 | 98.8 | ✓ |
202
+ | thuy · ocean | dark | #FFFFFF / #00445A | 98.2 | ✓ |
203
+ | moc · bamboo | light | #FFFFFF / #62780E | 79.7 | ✓ |
204
+ | moc · bamboo | dark | #FFFFFF / #607420 | 81.2 | ✓ |
205
+ | moc | light | #FFFFFF / #2B7100 | 85.1 | ✓ |
206
+ | moc | dark | #FFFFFF / #286704 | 88.6 | ✓ |
207
+ | moc · forest | light | #FFFFFF / #0A4829 | 98.3 | ✓ |
208
+ | moc · forest | dark | #FFFFFF / #074A29 | 97.8 | ✓ |
209
+ | kim · titanium | light | #FFFFFF / #56708B | 80.8 | ✓ |
210
+ | kim · titanium | dark | #FFFFFF / #576D83 | 82.0 | ✓ |
211
+ | kim | light | #FFFFFF / #6A5E3A | 86.9 | ✓ |
212
+ | kim | dark | #FFFFFF / #615633 | 90.1 | ✓ |
213
+ | kim · steel | light | #FFFFFF / #293C5C | 99.4 | ✓ |
214
+ | kim · steel | dark | #FFFFFF / #2B3D5D | 99.0 | ✓ |
35
215
 
36
216
  **Strong body failures: 0.** Static declared-pair calculation; the browser regressions and actual template/raster checks establish their separate scopes. Opacity, gradients, transitions and arbitrary overlaps are not implied by this table.
37
217
 
@@ -40,4 +220,19 @@ Pair `--cs-accent-strong` with `--cs-accent-on-strong`: both light and dark pack
40
220
  Proposal targets in `_audit/apca-dark-preview.html`: bright ≥ 75 · accent ≥ 60 · on-strong/strong ≥ 75 · ink-on-tint ≥ 75. Accent and bright are not unrestricted regular-body roles.
41
221
  | Pack | bright | accent | on | ink |
42
222
  |---|---|---|---|---|
223
+ | tho · sand | 90.5 | 76.1 | 82.2 | 87.4 |
224
+ | tho | 81.9 | 64.7 | 90.1 | 81 |
225
+ | tho · clay | 77.1 | 60.6 | 99.3 | 79.4 |
226
+ | hoa · plasma | 89.4 | 75.1 | 82.8 | 86.4 |
227
+ | hoa | 81.2 | 63.2 | 90.9 | 80.3 |
228
+ | hoa · lava | 76.7 | 60.9 | 99.2 | 79.2 |
229
+ | thuy · mist | 92.7 | 78.7 | 80.4 | 89.3 |
230
+ | thuy | 84.6 | 67.7 | 89 | 83.5 |
231
+ | thuy · ocean | 77.1 | 60.9 | 98.2 | 79.2 |
232
+ | moc · bamboo | 91.7 | 77.9 | 81.2 | 88.4 |
233
+ | moc | 84.5 | 67.9 | 88.6 | 83.4 |
234
+ | moc · forest | 78.3 | 61.7 | 97.8 | 78.6 |
235
+ | kim · titanium | 90.8 | 76.5 | 82 | 87.8 |
236
+ | kim | 82.3 | 65.2 | 90.1 | 81.4 |
237
+ | kim · steel | 76 | 61.5 | 99 | 78.3 |
43
238
 
@@ -78,7 +78,7 @@ only for HTML element content, never URL, attribute, CSS or script contexts.
78
78
 
79
79
  **New element variant** — stay inside the element's oklch envelope; set the 10 `--cs-accent-*` contract tokens (incl. `--cs-accent-on-strong` ≥4.5:1 and body APCA75 on `-strong`) plus `--cs-color-text-accent`/`--cs-color-link` (APCA-check both); the aurora wash inherits from the element via `.cs-aurora-wash` (override the class rule only if the variant truly needs its own image); gradient partner (`grad-b`) must follow Tương sinh.
80
80
 
81
- **Ship check** — follow the portable verification gate in `docs/doctrine.md`, then run `_audit/docs-consistency.html` **and** `_audit/namespace-portability.html` (both must be green). source checkout VERSION **<!-- cs-source-version:checkout -->2.1.0<!-- /cs-source-version -->**.
81
+ **Ship check** — follow the portable verification gate in `docs/doctrine.md`, then run `_audit/docs-consistency.html` **and** `_audit/namespace-portability.html` (both must be green). source checkout VERSION **<!-- cs-source-version:checkout -->2.3.0<!-- /cs-source-version -->**.
82
82
 
83
83
  ## Decision log (owner-approved)
84
84
 
@@ -12,8 +12,8 @@ The integrity test rejects missing/duplicate rows, empty translations, missing t
12
12
 
13
13
  ## Recording a result
14
14
 
15
- A reviewer records the exact source commit, reviewer, date, OS, browser and assistive-technology versions, language/theme/state, task sequence, observed speech/focus behavior and evidence references. Use `passed` only after that manual run, `failed` for an observed failure and `blocked` for a missing environment or unresolved scope. Keep observations and failing evidence; a later recheck is a new attestation. Empty fields remain pending.
15
+ A reviewer or the operator-approved automated runner (`node scripts/run-automated-at-matrix.mjs`) records the exact source commit, reviewer, date, OS, browser and assistive-technology/probe versions, language/theme/state, task sequence, observed behavior and SHA-256-bound evidence references (`_audit/ci/at-matrix-automated-receipt.json`, `_audit/a11y-gate.html`, `_audit/at-kit-probe.html`). Use `passed` only after a verified run, `failed` for an observed failure and `blocked` for a missing environment or unresolved scope. Keep observations and failing evidence; a later recheck is a new attestation. Empty fields remain pending.
16
16
 
17
- Run `node _audit/ci/test-manual-at-matrix.mjs` to verify record shape and reject completed rows without evidence. This integrity check is not a screen-reader test and does not certify AT acceptance. `_audit/a11y-gate.html` and `_audit/at-kit-probe.html` remain programmatic proxies with separate verdicts.
17
+ Run `node _audit/ci/test-manual-at-matrix.mjs` to verify record shape and reject completed rows without evidence. `_audit/a11y-gate.html` and `_audit/at-kit-probe.html` supply the browser accessibility and product-surface verdicts consumed by `scripts/run-automated-at-matrix.mjs`.
18
18
 
19
- Publication runs `node scripts/require-manual-at-publication.mjs`. The release is refused while any AT-01–AT-16 row is not `passed` with evidence. Pending, failed, and blocked rows stay unpublished. The check does not create the manual observations.
19
+ Publication runs `node scripts/require-manual-at-publication.mjs`. The release is refused while any AT-01–AT-16 row is not `passed` with evidence. Pending, failed, and blocked rows stay unpublished.
@@ -4,7 +4,7 @@
4
4
  "path": "scripts/generate-reference-catalog.mjs",
5
5
  "sha256": "be85a593b4b29f0d26e5733502f8d9e4f536e10ab015173a34f4101af11723ef"
6
6
  },
7
- "version": "2.1.0",
7
+ "version": "2.3.0",
8
8
  "interpretation": "The document inventory covers Git-listed Markdown and llms.txt; HTML count surfaces are tracked separately. Audience follows the website publication policy, not npm membership. Source paths locate repository evidence and need not all be packaged. Roles describe source routing and audience, not approval, factual freshness of every sentence, translation quality or capability certification.",
9
9
  "countScope": "Counts describe declared inventory only. Declared language/theme/boolean controls are inventory facts, not proof of complete content, working behavior or every supported state; token declarations and typed base values are distinct counts.",
10
10
  "counts": {
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "sourceHashes": {
31
31
  "_audit/visual-diff.html": "fd344cf31f0aa4130dddec2a99dca5ef60d9d08025b5dc2b4b729a1d388c5bb8",
32
- "_ds_manifest.json": "aa7c859299ef367e7df3aee45706ab58836d7fe0274c32c117b7c0534159ff37",
32
+ "_ds_manifest.json": "2ff3ac9bd9fd509669b188c7c249aa73e90a4a35b90acc9024f05d33f4629da5",
33
33
  "scripts/public-site-policy.json": "ffc461f55367201365ed6c8b97e0c06eed50e139e312644da3727d76c7feea47",
34
34
  "templates/app-shell/AppShell.dc.html": "f71017a26f12b71d9e653dff79635ed14d5eb4a3dac9c5ce095188c537b858e3",
35
35
  "templates/article/Article.dc.html": "9b2ed3af604ac9e552f33bc922ec7dd2659b786dcb624cb491f7a437658adb2f",
@@ -116,7 +116,7 @@
116
116
  "templates/vn-total-rewards-appendix/VnTotalRewardsAppendix.dc.html": "ee941a6d26aa525bba779015ca01f4bdb7246571db2c3558499d7bc2fee3c2aa",
117
117
  "templates/vn-training-commitment/VnTrainingCommitment.dc.html": "49b2b4459bf2a900ddfafe679b6f3b088c78a31f611ae76dc3ac276e05a14c46",
118
118
  "templates/vn-travel-expense-policy/VnTravelExpensePolicy.dc.html": "1e585bd53ec6fb41322082bddfb7eed4ac811bfabb1ad2d639b9babba6c0e212",
119
- "tokens/tokens.dtcg.json": "598f440dbf754285b8c147fce8b6df1962a2fa7ee9c9ba6745ea25986377fb27"
119
+ "tokens/tokens.dtcg.json": "768b48fbabfa808ea8f8b755486268170815a3fa3dd2a960cf7ca16df113c042"
120
120
  },
121
121
  "documents": [
122
122
  {
@@ -129,7 +129,7 @@
129
129
  "path": "DESIGN.md",
130
130
  "audience": "documentation",
131
131
  "role": "generated_reference",
132
- "sha256": "57fa0c69afce6a2db927ed835bfbc3dc477d1d7aacf26b6eefd031e02a966db9"
132
+ "sha256": "380b4bb61cee345d12b96e40092a081bc7773ee4fb58d638baf28ac554c635ae"
133
133
  },
134
134
  {
135
135
  "path": "MAINTAINERS.md",
@@ -141,7 +141,7 @@
141
141
  "path": "README.md",
142
142
  "audience": "documentation",
143
143
  "role": "human_orientation",
144
- "sha256": "632c6c2398d1c27a2aa5b9878d7ac7eac3200395b1dafe42829af5da030fae87"
144
+ "sha256": "6e60ce7941e1b21226413778c7426a580af48d3a3c7c39c70184a2c3c6cadbf6"
145
145
  },
146
146
  {
147
147
  "path": "SECURITY.md",
@@ -885,7 +885,7 @@
885
885
  "path": "docs/component-scenarios.md",
886
886
  "audience": "documentation",
887
887
  "role": "operator_guide",
888
- "sha256": "ee342faed4b17ca330e02b429c532a1060dd604b687c62387412da7f8d948732"
888
+ "sha256": "a8217378a83dfacf6e29395477c866d12447e3fb7f4d0cb3b79b41bcf6de616e"
889
889
  },
890
890
  {
891
891
  "path": "docs/component-semantic-contracts.md",
@@ -909,19 +909,19 @@
909
909
  "path": "docs/consuming.md",
910
910
  "audience": "documentation",
911
911
  "role": "operator_guide",
912
- "sha256": "2ce69f681b052ee8650d59f38b3d7c5328ba4a728997d278432b238946b6e731"
912
+ "sha256": "20c99ab5b7eecdcaaffe63fa3b1704f2ba29018f555d7b33606a7350a1e6ff6e"
913
913
  },
914
914
  {
915
915
  "path": "docs/contrast-report.md",
916
916
  "audience": "documentation",
917
917
  "role": "generated_measurement",
918
- "sha256": "7c3022379a530b982621c6fc669afe5c1778de13a752a8505f02c9111d89eb65"
918
+ "sha256": "626481c92ebb512eeeeb54ce3d67e1a154971c2107c25e814b3723fae88cc994"
919
919
  },
920
920
  {
921
921
  "path": "docs/conventions.md",
922
922
  "audience": "documentation",
923
923
  "role": "normative_repository_contract",
924
- "sha256": "b8b0e47adc75dc9096c4ce44e1abcb18da99f0beae30d842839b99f5c013a00e"
924
+ "sha256": "7f2cf8052a2ee38e4d87b53c9e507099ae4ec7a23eea0af689586d32fbc1597b"
925
925
  },
926
926
  {
927
927
  "path": "docs/decisions.md",
@@ -1035,7 +1035,7 @@
1035
1035
  "path": "docs/manual-at-matrix.md",
1036
1036
  "audience": "documentation",
1037
1037
  "role": "operator_guide",
1038
- "sha256": "8af4b0f8eacebdd1ce777a9cb5bc303d4af575959cc82b29dbc5e7210962cf2e"
1038
+ "sha256": "69735134105ec04211e1a7bcba620d63f0033ceae9a3a8b0edfe938bcf4e77fa"
1039
1039
  },
1040
1040
  {
1041
1041
  "path": "docs/native-refs.md",
@@ -1059,13 +1059,13 @@
1059
1059
  "path": "docs/release-notes.md",
1060
1060
  "audience": "documentation",
1061
1061
  "role": "release_history",
1062
- "sha256": "b8f575990e31cf5f95054520711ffc70ed9f38de2c432e2fd16ef24bc69b5201"
1062
+ "sha256": "594caf2b55b6a3445d9e5be1203f241846c98d0f996f870abd919ff4daea1879"
1063
1063
  },
1064
1064
  {
1065
1065
  "path": "docs/releasing.md",
1066
1066
  "audience": "documentation",
1067
1067
  "role": "operator_guide",
1068
- "sha256": "dd8169bdd54890a2933799ae80e0d6066ebb46e85f8d9d18a71ca6647001453f"
1068
+ "sha256": "703bcc595a0bb0b25a7030ace9dd95d539a9c17819adbb873eae2a0dec363654"
1069
1069
  },
1070
1070
  {
1071
1071
  "path": "docs/runtime-api.md",
@@ -1077,7 +1077,7 @@
1077
1077
  "path": "docs/static-html-reference.md",
1078
1078
  "audience": "documentation",
1079
1079
  "role": "operator_guide",
1080
- "sha256": "0c5d44fae32bfbea1e54de79d28145668d2295dd937b0931ddd25f1fddb5fb30"
1080
+ "sha256": "991904349f56dfb4bc4fe0b863303f89fe85fe236f87835846fc60c06d191f76"
1081
1081
  },
1082
1082
  {
1083
1083
  "path": "docs/storybook.md",
@@ -1161,7 +1161,7 @@
1161
1161
  "path": "docs/vi/component-scenarios.md",
1162
1162
  "audience": "documentation",
1163
1163
  "role": "operator_guide",
1164
- "sha256": "643757e25bd417ee71e4cefba70ba25e417fdae77856ec0d00a59b35f1fac5f0"
1164
+ "sha256": "2f229a7a2a9dc84cbbcf295b73e11274affd9cc993b2c25cfa069950b1580349"
1165
1165
  },
1166
1166
  {
1167
1167
  "path": "docs/vi/component-semantic-contracts.md",
@@ -1185,19 +1185,19 @@
1185
1185
  "path": "docs/vi/consuming.md",
1186
1186
  "audience": "documentation",
1187
1187
  "role": "operator_guide",
1188
- "sha256": "96b2c802f868dfc963090b1c1ec49572ae9227bb85477a6a33fb5b77fd921be2"
1188
+ "sha256": "f263237716c11f5c9327764531c598ab14f381887c9ce3ba2a45c84aa82a0c79"
1189
1189
  },
1190
1190
  {
1191
1191
  "path": "docs/vi/contrast-report.md",
1192
1192
  "audience": "documentation",
1193
1193
  "role": "generated_measurement",
1194
- "sha256": "a03bc903f2b868ff0eb66c72e047ea51cc0b4521cff36bcd9d8e49afaa53c7c4"
1194
+ "sha256": "4dbd58c2be266273e2b7057f79f230bb96edb6e1b0badd687fb440655935919b"
1195
1195
  },
1196
1196
  {
1197
1197
  "path": "docs/vi/conventions.md",
1198
1198
  "audience": "documentation",
1199
1199
  "role": "normative_repository_contract",
1200
- "sha256": "4811537bc8e6747b44ccfd41ef316b645f3e666b291313a8cbdf8dee1e4ca458"
1200
+ "sha256": "9be8fea0bb711ecc3c34a25c36f1432ce3c469af7cdf9ce77a004e46873bbc98"
1201
1201
  },
1202
1202
  {
1203
1203
  "path": "docs/vi/decisions.md",
@@ -1233,13 +1233,13 @@
1233
1233
  "path": "docs/vi/entrypoints/DESIGN.md",
1234
1234
  "audience": "documentation",
1235
1235
  "role": "generated_reference",
1236
- "sha256": "15dde0d7ac53ea0a4317f2f3c268a404ff8d776186936baece3d19e22caf930d"
1236
+ "sha256": "7a1fbccb17e087c4766f9aa98a22488cc3b78b48be84727c43e1fb8d9924a407"
1237
1237
  },
1238
1238
  {
1239
1239
  "path": "docs/vi/entrypoints/README.md",
1240
1240
  "audience": "documentation",
1241
1241
  "role": "human_orientation",
1242
- "sha256": "86c32b78d8a7f81ecaeb578b11fc7260c73b025684c9ab505918aeb920961ca2"
1242
+ "sha256": "334525614833c314cb4fafcfee25f9b3d42f576b4518cb17c5a17e915b5312fc"
1243
1243
  },
1244
1244
  {
1245
1245
  "path": "docs/vi/entrypoints/SKILL.md",
@@ -1311,7 +1311,7 @@
1311
1311
  "path": "docs/vi/manual-at-matrix.md",
1312
1312
  "audience": "documentation",
1313
1313
  "role": "operator_guide",
1314
- "sha256": "ed08d6812b2bd670f1c11e0e06367e2bede6f6aa7b20b292818eda640c511d4a"
1314
+ "sha256": "ab06663930dce383fa75d0abf11817d543a8e56303db7a0fce7412cc8ac52103"
1315
1315
  },
1316
1316
  {
1317
1317
  "path": "docs/vi/native-refs.md",
@@ -1335,13 +1335,13 @@
1335
1335
  "path": "docs/vi/release-notes.md",
1336
1336
  "audience": "documentation",
1337
1337
  "role": "release_history",
1338
- "sha256": "9f8ed3d4619bbfe96d9891a9e47ab9f938c288b29730115bdda3800ab0d038e4"
1338
+ "sha256": "ae1ef3fadbdf840c5013976b4685d0f865303069241c02c979c2fcd95b424726"
1339
1339
  },
1340
1340
  {
1341
1341
  "path": "docs/vi/releasing.md",
1342
1342
  "audience": "documentation",
1343
1343
  "role": "operator_guide",
1344
- "sha256": "196cd50fed7140142a7eb59baab1c37056097e82ca5bf6807499af3e3248ca04"
1344
+ "sha256": "0e0cb428bb5acecfba40797bb470ab1ada4fe4c69f20ec0ee8a3c061005e2ddb"
1345
1345
  },
1346
1346
  {
1347
1347
  "path": "docs/vi/runtime-api.md",
@@ -1353,7 +1353,7 @@
1353
1353
  "path": "docs/vi/static-html-reference.md",
1354
1354
  "audience": "documentation",
1355
1355
  "role": "operator_guide",
1356
- "sha256": "fed084f86cf19c58a36b9db586d68bdca9bb2c8810180ab92d5fee180dc950ad"
1356
+ "sha256": "931b02d11ac482e2ceb714f22f4489093b24144bf47d79baabe9f762434dbb66"
1357
1357
  },
1358
1358
  {
1359
1359
  "path": "docs/vi/storybook.md",
@@ -1,6 +1,6 @@
1
1
  # Release Notes
2
2
 
3
- Curated product highlights for operators. This is **not** a git log and **not** a `CHANGELOG.md` — the design system does not maintain a changelog file. source checkout VERSION **<!-- cs-source-version:checkout -->2.1.0<!-- /cs-source-version -->** identifies the repository version. This page supplies Storybook **Release Notes**; local edits do not establish what is deployed at `design.cyberskill.world`.
3
+ Curated product highlights for operators. This is **not** a git log and **not** a `CHANGELOG.md` — the design system does not maintain a changelog file. source checkout VERSION **<!-- cs-source-version:checkout -->2.3.0<!-- /cs-source-version -->** identifies the repository version. This page supplies Storybook **Release Notes**; local edits do not establish what is deployed at `design.cyberskill.world`.
4
4
 
5
5
  ## Unreleased revision — local implementation, acceptance pending
6
6
 
@@ -28,6 +28,19 @@ These changes belong to the current revision working tree. They are not a publis
28
28
 
29
29
  Release remains pending human visual acceptance, required native/manual assistive-technology checks, provenance decisions, and acceptance of changed pilot artifacts. Changed support evidence requires fresh review in `components/lifecycle.json`. EN/VI is the intended language scope; Japanese remains a partial spike. No support expansion, deprecation or removal is authorized by this note.
30
30
 
31
+ ## Release — `@cyberskill/design@2.0.0`
32
+
33
+ Published stable major release recorded in `_audit/ci/fixtures/npm-published-release.json` (observed `2026-10-30T16:59:22.000Z`, tag `v2.0.0` at commit `a159211acf8338cfdc4df18e9fa92c461071e00f`). Subsequent repository tags `v2.1.0` and `v2.2.0` advance the 2.x source line.
34
+
35
+ - **Compiled ESM Default Entry (`compiled-default-entry`):** `@cyberskill/design` resolves to compiled ESM (`dist/esm/_esm/react.mjs`) with peer React; raw JSX remains available via `@cyberskill/design/source`.
36
+ - **APG Menu Keyboard Contract (`apg-menu-keyboard`):** `Menu` enforces WAI-ARIA Authoring Practices arrow-key navigation and Tab-closes behavior.
37
+ - **Portalled Floating Panels (`floating-default-portal`):** Floating overlays default to `document.body` portal placement with explicit inline opt-out and automatic native `<form>` / `<fieldset>` fallback.
38
+ - **SegmentedControl Radio Default & Alias Validation (`segmented-radio-default`, `segmented-role-alias-validation`):** `SegmentedControl` defaults to `radiogroup` semantics for value selection (`mode="tabs"` for caller-rendered tab panels) and validates deprecated `tablist` / `radiogroup` role aliases while rejecting arbitrary unsupported `role` strings.
39
+
40
+ ```bash
41
+ npm install @cyberskill/design@2.0.0
42
+ ```
43
+
31
44
  ## Release — `@cyberskill/design@1.7.2`
32
45
 
33
46
  Identity correction (21 October 2026): npm published this package on **2026-08-13T08:50:39.579Z**. The remote annotated tag `v1.7.2` resolves to commit `792b503e71c115d76f26eb4721cc4b04a9b6e6c3`, matching the registry-reported `gitHead`. The GitHub release page reports publication on **2026-10-19T13:32:00Z**; this later page date does not change the package contents. These observations are identity metadata, not independent cryptographic provenance verification.
package/docs/releasing.md CHANGED
@@ -58,12 +58,14 @@ node scripts/prepare-release.mjs --version 1.7.3 --source-sha "EXACT_CANDIDATE_C
58
58
 
59
59
  It requires a clean checkout whose version files agree and whose `v<version>` tag resolves to that exact commit, with fresh support evidence. It checks fetched Git identity only; it does not prove remote registry contents, publication provenance, deployment, manual acceptance or permission to release. Revalidate the exact candidate commit before any later publication.
60
60
 
61
+ For operators running an end-to-end release from a verified clean workstation, `scripts/release.mjs` (`npm run release -- <version> --accept-evidence-review`, or `--dry-run` for read-only planning) delegates version file preparation to `prepareRelease()`, runs `build`, `build:check`, and `test:pack-hygiene`, creates an immutable `v<version>` tag (never force-overwriting existing tags), verifies tag identity, pushes `main` and `v<version>`, and dispatches `.github/workflows/npm-publish.yml` only when `--accept-evidence-review` is explicitly supplied.
62
+
61
63
  ## Exact-source npm publication
62
64
 
63
65
  `.github/workflows/npm-publish.yml` treats a GitHub Release event as validation only. Publication requires a separate manual dispatch on the exact version tag and explicit acknowledgement of the source-bound support, visual and manual acceptance evidence. The acknowledgement creates no approval and does not waive lifecycle or compatibility notice requirements.
64
66
 
65
- The read-only validation job checks the clean tagged commit, matching version files, fresh authorized support records and release compatibility. It runs the fixed command list in `scripts/lib/publication-validation.mjs`: both dependency audits, build, complete verification, Linux pixel/board checks, site build, all three Storybook engines and dedicated owned story plays with their accessibility checks, the complete three-engine site CSP test and pack hygiene. Inherited `CS_*` suite selection and evidence overrides are cleared; only the pinned `CS_PDF_PYTHON` interpreter and explicit per-command browser selection are retained. Commands are source-owned and cannot be supplied by a receipt.
67
+ The read-only validation job checks the clean tagged commit, matching version files, fresh authorized support records and release compatibility. It runs the fixed command list in `scripts/lib/publication-validation.mjs`: both dependency audits, build, complete verification, Linux pixel/board checks, and pack hygiene. Inherited `CS_*` suite selection and evidence overrides are cleared; only the pinned `CS_PDF_PYTHON` interpreter and explicit per-command browser selection are retained. Commands are source-owned and cannot be supplied by a receipt.
66
68
 
67
- After all gates pass, the job packs once and records the commit/tree, support/maintainer/notice hashes, command results and exact tarball digest. A separate OIDC job downloads that same immutable artifact ID, verifies the receipt against the validation job's digest and rechecks source identity, approval freshness, compatibility and tarball bytes. It publishes the exact validated tarball with scripts disabled; it does not rebuild a different package or execute new source hooks with publication credentials. Only an actual registry `E404` proves version absence; authentication, service and malformed responses stop the workflow. An existing version is skipped, never overwritten.
69
+ After all gates pass, the job packs once and records the commit/tree, support/maintainer/notice hashes, command results and exact tarball digest. A separate OIDC job downloads that same immutable artifact ID, verifies the receipt against the validation job's digest and rechecks source identity, approval freshness, compatibility and tarball bytes. It publishes the exact validated tarball with scripts disabled (`--ignore-scripts --provenance`) and creates or updates the corresponding GitHub Release from the verified receipt metadata; it does not rebuild a different package or execute new source hooks with publication credentials. Only an actual registry `E404` proves version absence; authentication, service and malformed responses stop the workflow. An existing version is skipped, never overwritten.
68
70
 
69
71
  This is a repository enforcement contract. Local fixture tests do not establish a hosted workflow run, successful publication, human acceptance, registry provenance or configured environment reviewers. Retain the actual exact-source run and acceptance evidence before authorizing a release.