@cyberskill/design 2.5.0 → 2.7.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 (486) hide show
  1. package/DESIGN.md +3 -3
  2. package/README.md +6 -5
  3. package/SECURITY.md +4 -4
  4. package/VERSION +1 -1
  5. package/_ds_bundle.js +2 -2
  6. package/_ds_bundle.js.map +1 -1
  7. package/_ds_manifest.json +0 -96
  8. package/_esm/cs.mjs +2 -2
  9. package/base/a11y.css +6 -11
  10. package/components/ai/ai-conversation.card.html +1 -1
  11. package/components/ai/ai-lumi.card.html +1 -1
  12. package/components/ai/ai.card.html +1 -1
  13. package/components/api-discovery.json +6 -6
  14. package/components/api-index.json +57 -16
  15. package/components/brand/brand.card.html +1 -1
  16. package/components/button/buttons.card.html +1 -1
  17. package/components/contracts.json +5 -5
  18. package/components/data/collections.card.html +1 -1
  19. package/components/data/data.card.html +1 -1
  20. package/components/datatable/datatable.card.html +1 -1
  21. package/components/dialog/dialog.card.html +1 -1
  22. package/components/feedback/feedback-2.card.html +1 -1
  23. package/components/feedback/feedback.card.html +2 -2
  24. package/components/forms/Cascader.jsx +1 -1
  25. package/components/forms/ColorPicker.jsx +1 -1
  26. package/components/forms/InlineEdit.jsx +12 -2
  27. package/components/forms/SearchField.jsx +1 -1
  28. package/components/forms/TreeSelect.jsx +1 -1
  29. package/components/forms/forms-2.card.html +1 -1
  30. package/components/forms/forms.card.html +1 -1
  31. package/components/i18n/i18n.card.html +1 -1
  32. package/components/icon/icon.card.html +1 -1
  33. package/components/lifecycle.json +51 -10
  34. package/components/logo/logo.card.html +2 -2
  35. package/components/navigation/navigation.card.html +1 -1
  36. package/components/navigation/shell.card.html +1 -1
  37. package/components/overlays/alertdialog.card.html +1 -1
  38. package/components/overlays/overlays.card.html +1 -1
  39. package/components/prompt-api.json +3 -3
  40. package/components/release-compatibility.json +1 -1
  41. package/components/scenarios.json +15 -15
  42. package/components/specifications.json +453 -453
  43. package/components/static-html-reference.json +25 -25
  44. package/components/textfield/textfield.card.html +1 -1
  45. package/dist/esm/_esm/react.mjs +5 -5
  46. package/dist/esm/build.json +52 -52
  47. package/dist/esm/chunks/{chunk-GLPQBE2J.mjs → chunk-4D7SFITE.mjs} +17 -3
  48. package/dist/esm/chunks/chunk-4D7SFITE.mjs.map +7 -0
  49. package/dist/esm/chunks/{chunk-MRXEJSQQ.mjs → chunk-B5V7HN5G.mjs} +5 -2
  50. package/dist/esm/chunks/{chunk-MRXEJSQQ.mjs.map → chunk-B5V7HN5G.mjs.map} +2 -2
  51. package/dist/esm/chunks/{chunk-5FQGNCKS.mjs → chunk-LU45KTWU.mjs} +2 -1
  52. package/dist/esm/chunks/{chunk-5FQGNCKS.mjs.map → chunk-LU45KTWU.mjs.map} +2 -2
  53. package/dist/esm/chunks/{chunk-D7A4ZCMJ.mjs → chunk-RUB6XN27.mjs} +5 -2
  54. package/dist/esm/chunks/{chunk-D7A4ZCMJ.mjs.map → chunk-RUB6XN27.mjs.map} +2 -2
  55. package/dist/esm/chunks/{chunk-FF5D53IP.mjs → chunk-SA7L22XE.mjs} +5 -2
  56. package/dist/esm/chunks/{chunk-FF5D53IP.mjs.map → chunk-SA7L22XE.mjs.map} +2 -2
  57. package/dist/esm/components/forms/Cascader.mjs +1 -1
  58. package/dist/esm/components/forms/ColorPicker.mjs +1 -1
  59. package/dist/esm/components/forms/InlineEdit.mjs +1 -1
  60. package/dist/esm/components/forms/SearchField.mjs +1 -1
  61. package/dist/esm/components/forms/TreeSelect.mjs +1 -1
  62. package/dist/styles.css +3177 -0
  63. package/dist/styles.min.css +1 -1
  64. package/docs/UPSTREAM.md +39 -0
  65. package/docs/consuming.md +1 -1
  66. package/docs/contrast-report.md +1 -1
  67. package/docs/conventions.md +1 -1
  68. package/docs/guideline-language.md +2 -2
  69. package/docs/reference-catalog.json +36 -24
  70. package/docs/release-notes.md +25 -1
  71. package/docs/static-html-reference.md +23 -23
  72. package/docs/template-inventory.json +125 -125
  73. package/docs/vi/UPSTREAM.md +39 -0
  74. package/docs/vi/consuming.md +1 -1
  75. package/docs/vi/contrast-report.md +1 -1
  76. package/docs/vi/conventions.md +1 -1
  77. package/docs/vi/entrypoints/DESIGN.md +3 -3
  78. package/docs/vi/entrypoints/README.md +6 -5
  79. package/docs/vi/guideline-language.md +2 -2
  80. package/docs/vi/release-notes.md +25 -1
  81. package/docs/vi/static-html-reference.md +23 -23
  82. package/docs/viewer.html +2 -2
  83. package/guidelines/atomic-view.html +5 -5
  84. package/guidelines/brand-iconography.html +1 -1
  85. package/guidelines/brand-imagery.html +1 -1
  86. package/guidelines/brand-interaction.html +1 -1
  87. package/guidelines/brand-voice.html +1 -1
  88. package/guidelines/colors-anchors.html +1 -1
  89. package/guidelines/colors-semantic.html +1 -1
  90. package/guidelines/colors-surfaces.html +1 -1
  91. package/guidelines/colors-text.html +1 -1
  92. package/guidelines/documents.html +1 -1
  93. package/guidelines/elements-components.html +1 -1
  94. package/guidelines/elements-concept.html +1 -1
  95. package/guidelines/elements-geometry.html +1 -1
  96. package/guidelines/elements-variants.html +1 -1
  97. package/guidelines/guideline-language.js +6 -5
  98. package/guidelines/motion-interaction.html +1 -1
  99. package/guidelines/motion.html +1 -1
  100. package/guidelines/responsive-bilingual.html +1 -1
  101. package/guidelines/rtl-preview.html +1 -1
  102. package/guidelines/spacing-breakpoints.html +1 -1
  103. package/guidelines/spacing-radius.html +1 -1
  104. package/guidelines/spacing-scale.html +1 -1
  105. package/guidelines/surfaces-aurora.html +1 -1
  106. package/guidelines/surfaces-depth.html +1 -1
  107. package/guidelines/surfaces-glass.html +1 -1
  108. package/guidelines/surfaces-shadow.html +1 -1
  109. package/guidelines/type-families.html +1 -1
  110. package/guidelines/type-lineheight.html +1 -1
  111. package/guidelines/type-scale.html +1 -1
  112. package/guidelines/type-weights.html +1 -1
  113. package/package.json +12 -4
  114. package/styles/components/manifest.json +130 -130
  115. package/styles.layered.css +8 -10
  116. package/styles.layered.provenance.json +3 -3
  117. package/templates/_ds-base.canonical.js +6 -4
  118. package/templates/app-shell/ds-base.js +6 -4
  119. package/templates/article/ds-base.js +6 -4
  120. package/templates/auth/ds-base.js +6 -4
  121. package/templates/bod-deck/ds-base.js +6 -4
  122. package/templates/bod-investor-update/ds-base.js +6 -4
  123. package/templates/bod-memo/ds-base.js +6 -4
  124. package/templates/bod-minutes/ds-base.js +6 -4
  125. package/templates/bod-report/ds-base.js +6 -4
  126. package/templates/bod-resolution/ds-base.js +6 -4
  127. package/templates/culture-event-invite/ds-base.js +6 -4
  128. package/templates/dashboard/ds-base.js +6 -4
  129. package/templates/delivery-change-note/ds-base.js +6 -4
  130. package/templates/delivery-kickoff/ds-base.js +6 -4
  131. package/templates/delivery-qbr-deck/ds-base.js +6 -4
  132. package/templates/delivery-runbook/ds-base.js +6 -4
  133. package/templates/delivery-status-email/ds-base.js +6 -4
  134. package/templates/doc-style-guide/ds-base.js +6 -4
  135. package/templates/doc-suite-index/ds-base.js +6 -4
  136. package/templates/doc-templates/ds-base.js +6 -4
  137. package/templates/email/ds-base.js +6 -4
  138. package/templates/finance-dunning-email/ds-base.js +6 -4
  139. package/templates/finance-expense-report/ds-base.js +6 -4
  140. package/templates/finance-invoice/ds-base.js +6 -4
  141. package/templates/finance-quote/ds-base.js +6 -4
  142. package/templates/hr-announcement/ds-base.js +6 -4
  143. package/templates/hr-interview-kit/ds-base.js +6 -4
  144. package/templates/hr-offboarding/ds-base.js +6 -4
  145. package/templates/hr-performance-review/ds-base.js +6 -4
  146. package/templates/hr-pip/ds-base.js +6 -4
  147. package/templates/kitchen-sink.html +1 -1
  148. package/templates/legal-msa/ds-base.js +6 -4
  149. package/templates/legal-sow/ds-base.js +6 -4
  150. package/templates/marketing-campaign-brief/ds-base.js +6 -4
  151. package/templates/marketing-case-study/ds-base.js +6 -4
  152. package/templates/marketing-launch/ds-base.js +6 -4
  153. package/templates/marketing-newsletter/ds-base.js +6 -4
  154. package/templates/marketing-page/ds-base.js +6 -4
  155. package/templates/marketing-press-release/ds-base.js +6 -4
  156. package/templates/marketing-social-kit/ds-base.js +6 -4
  157. package/templates/sales-one-pager/ds-base.js +6 -4
  158. package/templates/sales-proposal-deck/ds-base.js +6 -4
  159. package/templates/settings/ds-base.js +6 -4
  160. package/templates/slide-deck/ds-base.js +6 -4
  161. package/templates/team-meeting-agenda/ds-base.js +6 -4
  162. package/templates/tech-incident-report/ds-base.js +6 -4
  163. package/templates/tech-release-notes/ds-base.js +6 -4
  164. package/templates/tech-retro/ds-base.js +6 -4
  165. package/templates/tech-rfc/ds-base.js +6 -4
  166. package/templates/vn-appointment-transfer/ds-base.js +6 -4
  167. package/templates/vn-certificate-of-employment/ds-base.js +6 -4
  168. package/templates/vn-code-of-conduct/ds-base.js +6 -4
  169. package/templates/vn-compensation-regulation/ds-base.js +6 -4
  170. package/templates/vn-contract-amendment/ds-base.js +6 -4
  171. package/templates/vn-contractor-agreement/ds-base.js +6 -4
  172. package/templates/vn-data-protection-policy/ds-base.js +6 -4
  173. package/templates/vn-disciplinary-case-file/ds-base.js +6 -4
  174. package/templates/vn-disciplinary-schedule/ds-base.js +6 -4
  175. package/templates/vn-employee-request/ds-base.js +6 -4
  176. package/templates/vn-exit-handover/ds-base.js +6 -4
  177. package/templates/vn-foreign-employee-pack/ds-base.js +6 -4
  178. package/templates/vn-framework-agreement/ds-base.js +6 -4
  179. package/templates/vn-grassroots-democracy/ds-base.js +6 -4
  180. package/templates/vn-infosec-policy/ds-base.js +6 -4
  181. package/templates/vn-internal-labor-regulations/ds-base.js +6 -4
  182. package/templates/vn-internship-agreement/ds-base.js +6 -4
  183. package/templates/vn-job-description/ds-base.js +6 -4
  184. package/templates/vn-labor-contract/ds-base.js +6 -4
  185. package/templates/vn-labour-management-book/ds-base.js +6 -4
  186. package/templates/vn-mutual-nda/ds-base.js +6 -4
  187. package/templates/vn-ndnca-ip/ds-base.js +6 -4
  188. package/templates/vn-offer-letter/ds-base.js +6 -4
  189. package/templates/vn-onboarding-checklist/ds-base.js +6 -4
  190. package/templates/vn-pdpl-consent/ds-base.js +6 -4
  191. package/templates/vn-performance-evaluation-regulation/ds-base.js +6 -4
  192. package/templates/vn-performance-review-form/ds-base.js +6 -4
  193. package/templates/vn-phantom-stock/ds-base.js +6 -4
  194. package/templates/vn-probation-contract/ds-base.js +6 -4
  195. package/templates/vn-receipt-acknowledgement/ds-base.js +6 -4
  196. package/templates/vn-remote-work-policy/ds-base.js +6 -4
  197. package/templates/vn-resignation-letter/ds-base.js +6 -4
  198. package/templates/vn-salary-scale/ds-base.js +6 -4
  199. package/templates/vn-sow-appendix/ds-base.js +6 -4
  200. package/templates/vn-termination-decision/ds-base.js +6 -4
  201. package/templates/vn-total-rewards-appendix/ds-base.js +6 -4
  202. package/templates/vn-training-commitment/ds-base.js +6 -4
  203. package/templates/vn-travel-expense-policy/ds-base.js +6 -4
  204. package/tokens/declarations.json +2 -128
  205. package/tokens/element-seeds.json +1 -1
  206. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  207. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  208. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  209. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  210. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  211. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  212. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  213. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  214. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  215. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  216. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  217. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  218. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  219. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  220. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  221. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  222. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  223. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  224. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  225. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  226. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  227. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  228. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  229. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  230. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  231. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  232. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  233. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  234. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  235. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  236. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  237. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  238. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  239. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  240. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  241. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  242. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  243. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  244. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  245. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  246. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  247. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  248. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  249. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  250. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  251. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  252. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  253. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  254. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  255. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  256. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  257. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  258. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  259. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  260. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  261. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  262. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  263. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  264. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  265. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  266. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  267. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  268. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  269. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  270. package/tokens/modes/index.json +260 -260
  271. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  272. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  273. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  274. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  275. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  276. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  277. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  278. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  279. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  280. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  281. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  282. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  283. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  284. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  285. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  286. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  287. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  288. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  289. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  290. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  291. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  292. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  293. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  294. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  295. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  296. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  297. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  298. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  299. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  300. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  301. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  302. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  303. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  304. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  305. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  306. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  307. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  308. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  309. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  310. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  311. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  312. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  313. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  314. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  315. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  316. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  317. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  318. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  319. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  320. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  321. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  322. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  323. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  324. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  325. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  326. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  327. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  328. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  329. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  330. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  331. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  332. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  333. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  334. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  335. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  336. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  337. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  338. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  339. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  340. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  341. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  342. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  343. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  344. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  345. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  346. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  347. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  348. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  349. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  350. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  351. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  352. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  353. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  354. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  355. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  356. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  357. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  358. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  359. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  360. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  361. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  362. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  363. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  364. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  365. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  366. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  367. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  368. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  369. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  370. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  371. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  372. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  373. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  374. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  375. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  376. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  377. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  378. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  379. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  380. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  381. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  382. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  383. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  384. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  385. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  386. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  387. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  388. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  389. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  390. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  391. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  392. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  393. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  394. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  395. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  396. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  397. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  398. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  399. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  400. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  401. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  402. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  403. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  404. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  405. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  406. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  407. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  408. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  409. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  410. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  411. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  412. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  413. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  414. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  415. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  416. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  417. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  418. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  419. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  420. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  421. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  422. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  423. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  424. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  425. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  426. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  427. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  428. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  429. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  430. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  431. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  432. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  433. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  434. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  435. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  436. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  437. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  438. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  439. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  440. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  441. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  442. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  443. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  444. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  445. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  446. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  447. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  448. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  449. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  450. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  451. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  452. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  453. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  454. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  455. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  456. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  457. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  458. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  459. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  460. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  461. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  462. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  463. package/tokens/native/CSModes.kt +3 -3
  464. package/tokens/native/CSModes.swift +3 -3
  465. package/tokens/native/CSTokens.kt +1 -1
  466. package/tokens/native/CSTokens.swift +1 -1
  467. package/tokens/native/cs_modes.dart +3 -3
  468. package/tokens/native/cs_tokens.dart +1 -1
  469. package/tokens/native/mode-provenance.json +6 -6
  470. package/tokens/provenance.json +6 -6
  471. package/tokens/styles.css +1 -1
  472. package/tokens/tokens.dtcg.json +4 -4
  473. package/tokens/tokens.js +5 -5
  474. package/tokens/tokens.json +4 -4
  475. package/tokens/variables.css +0 -9
  476. package/ui_kits/deck/index.html +1 -1
  477. package/ui_kits/status-hub/index.html +1 -1
  478. package/ui_kits/status-hub/login.html +1 -1
  479. package/ui_kits/status-hub/project.html +1 -1
  480. package/ui_kits/status-hub/settings.html +1 -1
  481. package/ui_kits/status-hub/static-locale.js +2 -0
  482. package/ui_kits/website/careers.html +1 -1
  483. package/ui_kits/website/chat.html +1 -1
  484. package/ui_kits/website/index.html +1 -1
  485. package/ui_kits/website/work.html +1 -1
  486. package/dist/esm/chunks/chunk-GLPQBE2J.mjs.map +0 -7
@@ -0,0 +1,39 @@
1
+ # Kiểm chứng & đối soát upstream — cyberskill-official/design · v2.5.0
2
+
3
+ Trạng thái: **Đã hợp nhất vào `main` (`v2.5.0`–`v2.6.0`)**.
4
+ Đã kiểm chứng trực tiếp trên trình duyệt: **69/69** phép kiểm tra `D1`–`D10` (**10.0 / 10**), **64/64** phép kiểm tra cơ sở (**10.0 / 10**), và **146/146** trang hiển thị sạch qua các chế độ nguyên bản, ép tối và tương phản cao (`0 watch`).
5
+
6
+ ## 1 · Các bản sửa lỗi đã triển khai
7
+
8
+ | Tệp | Thay đổi | Lý do |
9
+ |---|---|---|
10
+ | `dist/styles.css` | Toàn bộ chuỗi `styles.css` được làm phẳng thành một tệp (25 bảng kiểu, giữ nguyên thứ tự, đường dẫn `url()` giữ `../fonts`, `../assets`), được liên kết bởi các thẻ, trang hướng dẫn và UI kit. | Bộ kết xuất thẻ và các môi trường tiêu thụ không đi theo chuỗi `@import` vẫn nhận đủ phông chữ và token ngay ở lần vẽ đầu tiên. Được sinh lại qua `node scripts/flatten-css.mjs` (`npm run build:css`). |
11
+ | `base/a11y.css` | Đã gỡ các quy tắc ghi đè thuộc tính tùy chỉnh `@media (prefers-contrast: more)` bị che khuất. | Bộ phân giải phạm vi trong `tokens/elements.css` (`:is(:root, [data-theme], …)`, độ đặc hiệu `0,3,0`) đã có độ ưu tiên cao hơn và sinh cùng giá trị tương phản cao. |
12
+ | `tokens/elements.css` | Quy tắc đảo công tắc `prefers-contrast: more` rút gọn thành `:root { --_cs-standard: ; --_cs-high: initial; }`. | Kết quả tầng kế thừa không đổi (các quy tắc `[data-cs-contrast]` tường minh cùng độ đặc hiệu `0,1,0` và đứng sau theo thứ tự nguồn); giúp công cụ token ghi nhận các công tắc. |
13
+ | `guidelines/guideline-language.js` | Thoát sớm khi đã có `window.CS_GuidelinesLanguage` hoặc không khớp bề mặt hướng dẫn nào; ngôn ngữ mặc định là **en** (`?language=vi` cho tiếng Việt). | Ngăn các công cụ đóng gói thực thi mọi tệp `.js` ném lỗi trên những bề mặt không phải trang hướng dẫn. |
14
+ | `guidelines/atomic-view.html` | Giải cấu trúc `Image: CsImage`, `Comment: CsComment` và dùng tên bí danh trong các hàng Molecule. | Tránh che khuất `window.Image` / `window.Comment` khi công cụ bên ngoài gọi `new Image()`. |
15
+ | `ui_kits/status-hub/static-locale.js` | Thoát sớm nếu trang không có `[data-preview-language-toggle]` / `[data-preview-language-select]`. | Tự động bỏ qua an toàn khi tập lệnh được đánh giá trên những trang không chứa công tắc ngôn ngữ. |
16
+ | `components/feedback/feedback.card.html` | `.frame { flex: 1 1 100%; min-width: 0 }` | Ngăn khung minh họa toast bị co về chiều rộng bằng 0 trong hàng flex. |
17
+ | `components/logo/logo.card.html` | Chữ thương hiệu trong cụm logo dùng `color: var(--cs-color-text-primary)`. | Đảm bảo chữ thương hiệu luôn nhìn thấy rõ ở chế độ tối. |
18
+
19
+ ## 2 · Bộ công cụ kiểm chứng đã phát hành (`audit/`)
20
+
21
+ | Tệp | Mục đích |
22
+ |---|---|
23
+ | `audit/v2.5.0-verification.html`, `audit/verify-v2.5.0.js`, `audit/fixture-v2.5.0.html` | Bảng công cụ Kiểm chứng & Mẫu thử: 10 chiều đánh giá (`P0` an toàn nền pha sắc · `P1` tương phản WCAG 1.4.11 trên 32 phạm vi · `P2` tách lớp Umber, đồng bộ trạng thái không hợp lệ của 14 điều khiển, khoảng thoáng dấu tiếng Việt · `P3` kính lồng nhau, hợp đồng `DESIGN.md`/tài sản · `D8`–`D10` Bất biến học thuyết: focus hai vòng, vùng chạm ≥ 44px & an toàn chuyển động, tương phản cao, mật độ & trạng thái ngữ nghĩa), 69 phép kiểm tra × `v2.5.0+` / `v2.4.0` / `v2.3.1`, ma trận tương phản 32×6, báo cáo trường hợp biên, xuất JSON và bộ chuyển mẫu thử (`version × theme × element × variant`). |
24
+ | `audit/v2.5.0-verification.json`, `_audit/ci/verify-audit-benchmarks-browser.mjs` | Biên nhận máy đọc và cổng chống thoái lui tự động (`npm run test:audit-regression`): đạt **10.0 / 10** (`69/69` trên `D1`–`D10`), bộ cơ sở nhúng đạt **64/64** (`v2.4.0` tag đạt `62/64`, `v2.3.1` đạt `8/64`), sức khỏe hiển thị đạt **146/146**, và **0 watch**. |
25
+ | `audit/render-health.html` | Nạp toàn bộ 146 mẫu tài liệu, thẻ thành phần và trang UI-kit/hướng dẫn trong các khung ẩn (theo nguyên bản / ép tối / tương phản cao / bất kỳ phạm vi Ngũ Hành nào) và xác nhận không có trang mất kiểu, chưa phân giải, lỗi runtime, trống hoặc thiếu tương phản. |
26
+ | `audit/fixture.html`, `audit/verify.js`, `audit/v2.4.0-verification.html` | Bộ nạp ba phiên bản (`?v=current|v240|baseline`) chạy lại 64 phép kiểm tra cơ sở trên `v2.5.0`, `v2.4.0` và `v2.3.1`. |
27
+ | `audit/baseline-2.4.0/styles.flat.css`, `audit/baseline-2.3.1/styles.flat.css` | Các bản đóng gói phẳng `styles.css` từ tag `v2.4.0` và `v2.3.1` phục vụ đối chiếu trực tiếp ba phiên bản. |
28
+
29
+ ## 3 · Các mục đặc thù môi trường chủ không đưa vào upstream
30
+
31
+ - Đổi tên tệp/xuất `OverlayManager` → `OverlayProvider` và bí danh `LocaleProvider.useMessages` (đặc thù quy tắc không gian tên gói của môi trường lưu trữ bên ngoài).
32
+ - Không gian tên `window.DesignSystem_52f6e2` trong các thẻ (mẫu tài liệu chấp nhận cả biến toàn cục theo tiền tố môi trường chủ và `CyberSkillDS`).
33
+ - Bản sao runtime DC đặc thù môi trường chủ và siêu dữ liệu sandbox (`thumbnail.html`, `github.md`).
34
+
35
+ ## 4 · Ghi chú đã ghi nhận
36
+
37
+ - Mực trên nền pha sắc ở phạm vi tối mặc định: `.cs-item.is-selected` đạt **10.54:1**, `.cs-result__icon` đạt **8.42:1** — cả hai đều vượt xa ngưỡng WCAG AA (`4.5:1`).
38
+ - `.cs-item.is-selected` áp dụng `--cs-color-text-accent` lên `border-color` và giữ màu chữ chính (`#F5EAD9`) theo đúng thiết kế.
39
+ - Chấm chuyển trang của Carousel được đo cho con trỏ tinh trên máy tính; dưới `(pointer: coarse)`, `base/a11y.css` thay chấm `::before` bằng vùng chạm hướng tâm `44px` tô màu `--cs-color-text-accent`.
@@ -1,6 +1,6 @@
1
1
  # Tiêu thụ & nâng cấp CyberSkill Design System
2
2
 
3
- **Checkout nguồn:** VERSION **<!-- cs-source-version:checkout -->2.5.0<!-- /cs-source-version -->** là định danh nguồn cục bộ, không xác nhận phiên bản có trên registry. Với bản ứng viên chưa công bố, kiểm chứng tarball gói cục bộ hoặc checkout nguồn đã rà soát. Lệnh registry bên dưới chỉ bản ổn định 2.3.0 đã công bố (và inventory sibling ADOPT-001 ghi ngày tại 1.7.2), không tự đổi khi chuẩn bị bản phát hành. Chuẩn bị không cấp quyền công bố.
3
+ **Checkout nguồn:** VERSION **<!-- cs-source-version:checkout -->2.7.0<!-- /cs-source-version -->** là định danh nguồn cục bộ, không xác nhận phiên bản có trên registry. Với bản ứng viên chưa công bố, kiểm chứng tarball gói cục bộ hoặc checkout nguồn đã rà soát. Lệnh registry bên dưới chỉ bản ổn định 2.6.0 đã công bố (và inventory sibling ADOPT-001 ghi ngày tại 1.7.2), không tự đổi khi chuẩn bị bản phát hành. Chuẩn bị không cấp quyền công bố.
4
4
 
5
5
  Cách mọi project — do người hoặc agent điều khiển — áp dụng design system HTML-first này, và cách nhận update an toàn. Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Báo cáo contrast — cặp elemental (APCA)
2
2
 
3
- Tạo · quét tại VERSION 2.5.0.
3
+ Tạo · quét tại VERSION 2.7.0.
4
4
 
5
5
  Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
6
6
 
@@ -79,7 +79,7 @@ phần tử HTML, không dùng trong URL, thuộc tính, CSS hay script.
79
79
 
80
80
  **Element variant mới** — ở trong envelope oklch của element; đặt 10 token hợp đồng `--cs-accent-*` (gồm `--cs-accent-on-strong` ≥4.5:1 và APCA75 cho nội dung thường trên `-strong`) cộng `--cs-color-text-accent`/`--cs-color-link` (APCA-check cả hai); aurora wash kế thừa từ element qua `.cs-aurora-wash` (chỉ override class rule nếu variant thật sự cần ảnh riêng); đối tác gradient (`grad-b`) phải theo Tương sinh.
81
81
 
82
- **Ship check** — theo gate kiểm chứng portable trong `docs/doctrine.md`, rồi chạy `_audit/docs-consistency.html` **và** `_audit/namespace-portability.html` (cả hai phải xanh). VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.5.0<!-- /cs-source-version -->**.
82
+ **Ship check** — theo gate kiểm chứng portable trong `docs/doctrine.md`, rồi chạy `_audit/docs-consistency.html` **và** `_audit/namespace-portability.html` (cả hai phải xanh). VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.7.0<!-- /cs-source-version -->**.
83
83
 
84
84
  ## Decision log (owner duyệt)
85
85
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "CyberSkill Design System"
3
- version: "2.5.0"
3
+ version: "2.7.0"
4
4
  generated: "2026-07-23"
5
5
  generator: "scripts/generate-design-md.mjs (npm run build:design-md)"
6
6
  sources:
@@ -287,7 +287,7 @@ Các giá trị ghi đè theo phạm vi (tách biệt với các hàng token cơ
287
287
  ### Triết lý khoảng trắng, thang bán kính bo góc và hình học đa phương tiện
288
288
 
289
289
  - **Khoảng trắng và nhịp phân đoạn:** tách các dải nội dung lớn bằng `--cs-space-16` (`64px`) đến `--cs-space-24` (`96px`), giữ đệm trong của thẻ ở `--cs-space-4` (`16px`) đến `--cs-space-6` (`24px`), và giới hạn độ rộng cột đọc dài bằng `.cs-prose` (`--cs-prose-measure` `45rem`).
290
- - **Thang bán kính bo góc và hình học đa phương tiện (`Shapes`):** `--cs-radius-sm` (`4px`) cho `.cs-kbd`, `.cs-code`, và nhãn nhỏ; `--cs-radius-md` (`8px`) cho `.cs-button`, `.cs-field__control`, `.cs-popover__panel`, và `.cs-menu__list`; `--cs-radius-lg` (`14px`) cho `.cs-card`, `.cs-dialog`, `.cs-cmdk`, và tấm kính `.cs-surface-*`; `--cs-radius-full` (`999px`) cho `.cs-badge`, `.cs-tag`, và `.cs-avatar` tròn; đóng khung hình ảnh bằng `.cs-card__media`, `AspectRatio` (`16:9`, `4:3`, `1:1`), `.cs-image__zoom`, và `.cs-aurora--photo`; tài nguyên logo chính thức nằm tại `assets/logo-mark.svg`, `assets/logo-mark.png`, `assets/favicon.svg`, và `components/logo/logo-data.js` (không có thư mục `assets/logos/*`).
290
+ - **Thang bán kính bo góc và hình học đa phương tiện (`Shapes`):** `--cs-radius-sm` (`4px`) cho `.cs-kbd`, `.cs-code`, và nhãn nhỏ; `--cs-radius-md` (`8px`) cho `.cs-button`, `.cs-field__control`, `.cs-popover__panel`, và `.cs-menu__list`; `--cs-radius-lg` (`14px`) cho `.cs-card`, `.cs-dialog`, `.cs-cmdk`, và tấm kính `.cs-surface-*`; `--cs-radius-full` (`999px`) cho `.cs-badge`, `.cs-tag`, và `.cs-avatar` tròn; đóng khung hình ảnh bằng `.cs-card__media`, `AspectRatio` (`16:9`, `4:3`, `1:1`), `.cs-image__zoom`, và `.cs-aurora--photo`; tài nguyên logo chính thức nằm tại `assets/logo-mark.svg`, `assets/logo-mark.png`, `assets/favicon.svg`, và `components/logo/logo-data.js` (không có thư mục `assets/logos/*`; trong bản xem trước HTML đơn tệp hoặc sandbox đám mây không có máy chủ tài nguyên tĩnh, nhúng trực tiếp `<svg viewBox="0 0 64 64">` nội tuyến thay vì `<img src="assets/logo-mark.svg">`).
291
291
 
292
292
  ## Độ nổi
293
293
 
@@ -399,7 +399,7 @@ Quyết định thiết kế ở cấp thành phần (button · textfield). Giá
399
399
 
400
400
  ## Cấu trúc thành phần HTML tĩnh (.cs-*)
401
401
 
402
- Bên dùng HTML tĩnh và công cụ sinh mã không kèm runtime định kiểu trực tiếp cho phần tử HTML ngữ nghĩa bằng các lớp `.cs-*` từ `styles.css` (hoặc `styles.layered.css`). Quản lý trạng thái tương tác, điều hướng bàn phím, giữ focus trong lớp phủ và thông báo ARIA động cần thành phần React hoặc mã kịch bản do bên dùng cung cấp; xem `docs/static-html-reference.md` để đối chiếu DOM đã kết xuất.
402
+ Bên dùng HTML tĩnh và công cụ sinh mã không kèm runtime định kiểu trực tiếp cho phần tử HTML ngữ nghĩa bằng các lớp `.cs-*` từ `styles.css` (hoặc `styles.layered.css`). `dist/styles.css` là cùng tập hợp được làm phẳng thành một tệp cho các môi trường không theo chuỗi `@import` (bộ kết xuất thẻ, một số sandbox); sinh lại bằng `npm run build:css` sau khi sửa `tokens/` hoặc `base/`; các thẻ hướng dẫn trong `guidelines/` mặc định hiển thị tiếng Anh (`?language=vi` cho tiếng Việt). Quản lý trạng thái tương tác, điều hướng bàn phím, giữ focus trong lớp phủ và thông báo ARIA động cần thành phần React hoặc mã kịch bản do bên dùng cung cấp; xem `docs/static-html-reference.md` để đối chiếu DOM đã kết xuất.
403
403
 
404
404
  - **Tác vụ và nút bấm (`base/components.css`):** nút chính `.cs-button`, các biến thể `.cs-button--secondary`, `.cs-button--tertiary`, `.cs-button--ghost`, `.cs-button--danger`, `.cs-button--danger-ghost`; kích thước `.cs-button--xs` (`28px`, nâng lên `44px` khi `pointer: coarse`), `.cs-button--sm` (`36px`, nâng lên `44px` khi `pointer: coarse`), cỡ trung bình mặc định (`44px`), `.cs-button--lg` (`52px`), trải rộng toàn khung `.cs-button--full`; trạng thái `.is-disabled`, `.is-loading` kèm `.cs-button__spinner`.
405
405
  - **Điều khiển biểu mẫu và trường nhập (`base/components.css`, `base/forms.css`, `base/controls.css`):** khung trường `.cs-field` gồm `.cs-field__label`, `.cs-field__control`, `.cs-field__description`, `.cs-field__error` và trạng thái lỗi `.cs-field.is-invalid`; điều khiển lựa chọn `.cs-check`, `.cs-radio`, `.cs-switch` (`.cs-switch__track`); ô nhập phức hợp `.cs-select`, `.cs-native-select`, `.cs-search` (`.cs-search__clear`), `.cs-stepper`, `.cs-otp`, `.cs-slider`, `.cs-segmented`.
@@ -4,20 +4,20 @@
4
4
 
5
5
  [![Design System Gates](https://github.com/cyberskill-official/design/actions/workflows/design-system-gates.yml/badge.svg)](https://github.com/cyberskill-official/design/actions/workflows/design-system-gates.yml)
6
6
 
7
- Hệ thống thiết kế ấm áp, chuẩn doanh nghiệp, **ưu tiên tiếng Việt** cho **CyberSkill** — studio phần mềm Sài Gòn (thành lập 2020) biến *điều ước* rõ ràng thành phần mềm hoạt động. Neo trên **Umber** và **Ochre**, dẫn dắt bởi thần đèn vàng **Lumi**, mọi bề mặt giải quyết bốn trục độc lập: **Theme** (light · dark · system) × **Element** (bản sắc sản phẩm Ngũ Hành: Kim · Mộc · Thủy · Hỏa · Thổ, 15 biến thể) × **Language** (EN · VI) × **Style** (`data-cs-style` — gói duy nhất **liquid-glass**; không khai báo ≡ mặc định). Phía sử dụng chỉ cần liên kết một tệp: **`styles.css`**.
7
+ Hệ thống thiết kế ấm áp, chuẩn doanh nghiệp, **ưu tiên tiếng Việt** cho **CyberSkill** — studio phần mềm Sài Gòn (thành lập 2020) biến *điều ước* rõ ràng thành phần mềm hoạt động. Neo trên **Umber** và **Ochre**, dẫn dắt bởi thần đèn vàng **Lumi**, mọi bề mặt giải quyết bốn trục độc lập: **Theme** (light · dark · system) × **Element** (bản sắc sản phẩm Ngũ Hành: Kim · Mộc · Thủy · Hỏa · Thổ, 15 biến thể) × **Language** (EN · VI) × **Style** (`data-cs-style` — gói duy nhất **liquid-glass**; không khai báo ≡ mặc định). Phía sử dụng chỉ cần liên kết một tệp: **`styles.css`** (`dist/styles.css` là cùng closure được làm phẳng thành một tệp cho các môi trường không theo chuỗi `@import` như bộ hiển thị thẻ và một số sandbox; sinh lại bằng `npm run build:css` sau khi sửa `tokens/` hoặc `base/`).
8
8
 
9
9
  ---
10
10
 
11
11
  ## Bắt đầu tại đây
12
12
 
13
- Đây là **tài liệu điểm vào** của CyberSkill Design System — VERSION của bản nguồn **<!-- cs-source-version:checkout -->2.5.0<!-- /cs-source-version -->** (xem `VERSION`; không xác nhận phiên bản có trên registry). **Trang sản phẩm** là Storybook tại **`/`** trên `design.cyberskill.world` (chỉ trên host; cục bộ: `npm run storybook`). Tài liệu vận hành được công bố ở thanh bên **Docs** của Storybook và Thư viện tài liệu tại `/docs/viewer.html` (các đường dẫn cũ `/dashboard`, `/dashboard.html` và `/playground/*` chuyển hướng về `/`).
13
+ Đây là **tài liệu điểm vào** của CyberSkill Design System — VERSION của bản nguồn **<!-- cs-source-version:checkout -->2.7.0<!-- /cs-source-version -->** (xem `VERSION`; không xác nhận phiên bản có trên registry). **Trang sản phẩm** là Storybook tại **`/`** trên `design.cyberskill.world` (chỉ trên host; cục bộ: `npm run storybook`). Tài liệu vận hành được công bố ở thanh bên **Docs** của Storybook và Thư viện tài liệu tại `/docs/viewer.html` (các đường dẫn cũ `/dashboard`, `/dashboard.html` và `/playground/*` chuyển hướng về `/`).
14
14
 
15
15
  ### Bắt đầu nhanh theo đối tượng
16
16
 
17
17
  - **Nhà thiết kế** — mở Storybook (**Foundations / Components / Templates / Pages / Docs**). **Templates** liệt kê toàn bộ <!-- cs-count:templates -->85<!-- /cs-count --> điểm khởi đầu (Gallery → Atomic View, cùng story theo nhóm, gồm bộ 38 tài liệu VN A4 (Employment Suite + khung thương mại) tại **Templates → HR**). Đổi trực tiếp Theme × Element × Language × Style qua thanh công cụ Storybook, Atomic View và mẫu Elements Geometry.
18
18
  - **Soạn template trình duyệt** (máy chủ HTTP tĩnh) — đọc `SKILL.md` (chọn runtime + ràng buộc thiết kế), rồi hướng dẫn bên dưới; phối hợp `styles.css` + ESM đã biên dịch `@cyberskill/design` (`dist/esm/_esm/react.mjs`; JSX thô qua `@cyberskill/design/source`) / `_esm/cs.mjs` cũ / `_ds_bundle.js` (tìm theo tiền tố). `support.js` được cung cấp thông dịch `*.dc.html` trong trình duyệt; xem `docs/template-grammar.md` về ngữ pháp và ranh giới chỉ ở host. Hợp đồng component nằm cạnh từng component (`.d.ts` + `.prompt.md`).
19
19
  - **Tĩnh / open-spec** (ví dụ Google Stitch) — bắt đầu từ **`DESIGN.md`** (open-spec được sinh) → `llms.txt` → `tokens/tokens.dtcg.json`. Dựng giao diện **tĩnh** bằng `styles.css` + `.cs-*` / kitchen-sink / `examples/static-hello/`. Dùng `.dc.html` qua trình thông dịch được cung cấp hoặc công cụ hiểu ngữ pháp; công cụ HTML thuần dùng `.cs-*` hoặc ảnh chụp kết quả hiển thị đã kiểm chứng.
20
- - **Người triển khai** — gói npm ổn định đã công bố **`@cyberskill/design@2.3.0`** (xem `docs/consuming.md`; quyền dùng trong `docs/consumer-grant.md` — vẫn UNLICENSED). **Next/SSR:** `import { Button } from "@cyberskill/design"` (peer React). **Demo trình duyệt:** **`examples/npm-hello/`** (Lumi · Hỏa · plasma, `_esm/cs.mjs` cũ). Hoặc liên kết **`styles.css`** từ clone/subtree (một tệp cho toàn bộ), hoặc chép thư mục `templates/<slug>/` và sửa một dòng trong `ds-base.js` (đổi liên kết một dòng, được kiểm định đầu cuối tháng 7/2026). Xác định scope bằng `data-theme` · `data-cs-element` (+`data-cs-variant`) · `lang`. Dấu hiệu bản phát hành: SHA đầu nhánh + `docs/release-notes.md` (VERSION nguồn là **<!-- cs-source-version:release-signal -->2.5.0<!-- /cs-source-version -->**; không có CHANGELOG).
20
+ - **Người triển khai** — gói npm ổn định đã công bố **`@cyberskill/design@2.6.0`** (xem `docs/consuming.md`; quyền dùng trong `docs/consumer-grant.md` — vẫn UNLICENSED). **Next/SSR:** `import { Button } from "@cyberskill/design"` (peer React). **Demo trình duyệt:** **`examples/npm-hello/`** (Lumi · Hỏa · plasma, `_esm/cs.mjs` cũ). Hoặc liên kết **`styles.css`** từ clone/subtree (một tệp cho toàn bộ), hoặc chép thư mục `templates/<slug>/` và sửa một dòng trong `ds-base.js` (đổi liên kết một dòng, được kiểm định đầu cuối tháng 7/2026). Xác định scope bằng `data-theme` · `data-cs-element` (+`data-cs-variant`) · `lang`. Dấu hiệu bản phát hành: SHA đầu nhánh + `docs/release-notes.md` (VERSION nguồn là **<!-- cs-source-version:release-signal -->2.7.0<!-- /cs-source-version -->**; không có CHANGELOG).
21
21
  - **Người bảo trì** — `docs/doctrine.md` (mở rộng + kiểm chứng), rồi `CONTRIBUTING.md` và `docs/quality-gates.md`.
22
22
 
23
23
  ### Bản đồ tài liệu — phía sử dụng
@@ -151,7 +151,7 @@ CyberSkill **không kèm thư viện icon bên ngoài**. Hệ thống dùng **b
151
151
  <!-- END CATALOG COMPONENT INVENTORY -->
152
152
 
153
153
  - **Điểm nổi bật:** **Button** — primary Umber; biến thể primary/secondary/tertiary/ghost/danger/danger-ghost; cỡ xs–lg; loading, icon, fullWidth. **TextField / Textarea / Select / NativeSelect** dùng chung khung `.cs-field` (nhãn + mô tả/lỗi; an toàn dấu/IME). **DataTable** — caption, header có scope, render theo cột, bộ trạng thái idle/loading/error/empty. **Card** — panel ấm + header/body/footer. **Logo** hiển thị đúng biểu trưng chính thức; **Icon** điều khiển bộ icon nét nội bộ. Họ **AI-native** mang doctrine giải trình của thương hiệu — công bố, review của con người, thu nhận điều ước và độ tin cậy, đều diễn đạt bằng lời (không chỉ bằng màu).
154
- - **Cài đặt / tên gói:** Tên gói là **`@cyberskill/design`** (VERSION bản nguồn **<!-- cs-source-version:package-source -->2.5.0<!-- /cs-source-version -->**; quyền trong `docs/consumer-grant.md` chi phối *sử dụng* — gói vẫn UNLICENSED). **Không** cài `@cyberskill/react` cho cây này — tên đó thuộc danh mục trang marketing lịch sử, không phải gói này.
154
+ - **Cài đặt / tên gói:** Tên gói là **`@cyberskill/design`** (VERSION bản nguồn **<!-- cs-source-version:package-source -->2.7.0<!-- /cs-source-version -->**; quyền trong `docs/consumer-grant.md` chi phối *sử dụng* — gói vẫn UNLICENSED). **Không** cài `@cyberskill/react` cho cây này — tên đó thuộc danh mục trang marketing lịch sử, không phải gói này.
155
155
  - **Danh mục nguồn và phần mở rộng:** Bề mặt CyberSkill trước đây có sáu primitive — `Button`, `TextField`, `Dialog`, `DataTable`, `AIDisclosureBadge`, `HumanReviewGate` — cùng `Logo` thương hiệu. Mọi thành phần khác trong gói **này** là **mở rộng có chủ ý**, dựng bằng vốn token riêng của thương hiệu: `Icon`, các primitive Forms / Feedback / Data / Navigation / Overlays chuẩn, nhóm AI-native (`PromptInput`, `ChatMessage`, `ConfidenceMeter`, `PromptSuggestions`, `TypingIndicator`, `CitationList`) chính thức hóa luồng điều ước Lumi, và linh vật `LumiAvatar`.
156
156
 
157
157
  ---
@@ -240,7 +240,7 @@ tokens/ fonts · colors · typography · spacing · elevation
240
240
  base/ reset · typography · components · forms · feedback · data · navigation · ai · controls · collections · shell · glass · interaction · a11y · responsive
241
241
  components/ button · textfield · dialog · datatable · forms · feedback · data · navigation · overlays · ai · logo · icon · brand
242
242
  (each Name: Name.jsx + Name.d.ts + Name.prompt.md; one *.card.html per group)
243
- guidelines/ specimen cards (Colors · Type · Spacing · Surfaces · Brand · Motion · Elements · Responsive & Bilingual) · atomic-view.html
243
+ guidelines/ specimen cards (Colors · Type · Spacing · Surfaces · Brand · Motion · Elements · Responsive & Bilingual; default to English, `?language=vi` for Vietnamese) · atomic-view.html
244
244
  templates/ marketing-page · dashboard · slide-deck · auth · settings · app-shell · article · email (copyable .dc.html)
245
245
  + team artifacts — tech (release/incident/rfc) · team (meeting-agenda) · hr (announcement) · board (report/deck/memo) · marketing (brief/newsletter/launch/case-study/press-release)
246
246
  + business — legal (vn-mutual-nda / msa / sow; fictional legal-nda retired) · finance (invoice/quote) · sales (one-pager/proposal-deck) — letter print docs + client deck
@@ -270,6 +270,7 @@ SKILL.md Agent-Skills-compatible entry
270
270
  - **Thang chữ, chuyển động & vai trò tương phản:** `tokens/typography.css` và `tokens/motion.css` cung cấp alias vai trò ngữ nghĩa (`--cs-text-h1`…) và tiện ích `.cs-h1` / `.cs-body` trong `base/typography.css`. Trạng thái ngữ nghĩa cung cấp vai trò nền, chữ ghép cặp (`-fg`) và chữ trên bề mặt (`-text`) riêng. `--cs-accent-on-strong` là chữ ghép cặp cho nền nhấn mạnh (APCA ≥ 75 cho văn bản nội dung và WCAG ≥ 4.5 ở cả hai chế độ; bộ sinh nhắm 78, kiểm chứng bởi `test:strong-text-contrast`).
271
271
  - **UI kit & catalog tham chiếu:** UI kit là bản tái hiện diện mạo HTML-first với dữ liệu hư cấu. Số lượng khai báo và vai trò tài liệu công khai được sinh trong [catalog tham chiếu](../../../docs/reference-catalog.json).
272
272
  - **Kiểm chứng tiếp cận:** `_audit/a11y-harness.html` và `npm run test:a11y-harness` kiểm tra tên tiếp cận bằng axe cục bộ được ghim trên Chromium, Firefox và WebKit.
273
+ - **Bảng kiểm chứng, quét sức khỏe hiển thị & cổng chống thoái lui:** `audit/v2.5.0-verification.html` chấm 69 phép kiểm tra trên 10 chiều (`D1`–`D7` khắc phục + `D8`–`D10` Bất biến học thuyết) đạt **10.0 / 10** và nhúng bộ cơ sở 64 phép kiểm tra (**64/64** trên bản hiện tại, **62/64** trên v2.4.0, **8/64** trên v2.3.1); `audit/render-health.html` quét toàn bộ **146** template, thẻ và UI kit với **0 bad** ở chế độ gốc, khi ép `theme=dark`, và khi kết hợp `theme=dark` + `contrast=high` trên `set=cards`, cùng bằng chứng máy đọc tại `audit/v2.5.0-verification.json` và được cưỡng chế bởi `npm run test:audit-regression` (`_audit/ci/verify-audit-benchmarks-browser.mjs`). Mực nền nhuộm phạm vi mặc định tối đạt **8.42:1–10.54:1** (`.cs-result__icon` đạt **8.42:1**, `.cs-item.is-selected` đạt **10.54:1** — cả hai đều vượt chuẩn WCAG AAA `7:1` với `0 watch`).
273
274
 
274
275
  <!-- BEGIN PINNED TOOLCHAIN BOOTSTRAP -->
275
276
  Trước khi chạy các lệnh `npm ci` hoặc `npm run` trong kho nguồn, dùng Node >=22.12.0 và chạy trực tiếp `node scripts/bootstrap-toolchain.mjs`. Lệnh này cài fixture npm 11.21.1 đã audit, ghim bằng lockfile, với lifecycle scripts bị tắt. Thêm `_audit/ci/fixtures/npm-cli/node_modules/.bin` vào PATH, hoặc chạy `node scripts/npm.mjs ci` và dùng `node scripts/npm.mjs` thay cho `npm` ở các lệnh tiếp theo (`devEngines` từ chối phiên bản npm khác trong kho nguồn; người dùng gói đã phát hành giữ package manager riêng). Xem [hướng dẫn kiểm tra và toolchain](../../../docs/validation.md).
@@ -1,6 +1,6 @@
1
1
  # Chế độ xem hướng dẫn ưu tiên tiếng Việt
2
2
 
3
- Hướng dẫn được biên soạn trong `guidelines/` mở bằng tiếng Việt. Mỗi hướng dẫn cũng có chế độ tiếng Anh gốc qua `?language=en`; `?lang=en` là bí danh. Đường dẫn trang và bookmark `#fragment` hiện có vẫn hợp lệ. Dùng `?language=vi` để chọn tiếng Việt rõ ràng. Trang `rtl-preview.html` tiếng Ả Rập là phép kiểm tra hai chiều có chủ ý, giữ nguyên nội dung và hướng chữ Ả Rập.
3
+ Hướng dẫn được biên soạn trong `guidelines/` mặc định mở bằng tiếng Anh và cung cấp chế độ tiếng Việt qua `?language=vi`; `?lang=vi` là bí danh (`?language=en` / `?lang=en` chọn tiếng Anh rõ ràng). Đường dẫn trang và bookmark `#fragment` hiện có vẫn hợp lệ. Trang `rtl-preview.html` tiếng Ả Rập là phép kiểm tra hai chiều có chủ ý, giữ nguyên nội dung và hướng chữ Ả Rập.
4
4
 
5
5
  Trục Ngôn ngữ đổi văn bản hướng dẫn và mô tả ảnh hỗ trợ tiếp cận thực tế, không chỉ đổi `lang` của tài liệu. Atomic View áp dụng cùng lựa chọn cho giao diện hướng dẫn và hướng dẫn chuyển động được nhúng. Ví dụ component giữ hành vi ngôn ngữ đã khai báo: ví dụ dùng tham số ngôn ngữ theo trục, ví dụ tiếng Anh cố định có phạm vi tiếng Anh, còn nhãn tiếng Việt rõ ràng vẫn là tiếng Việt bên trong các ví dụ đó. Phép thử component tiếng Nhật được giữ lại; văn xuôi hướng dẫn chỉ hỗ trợ tiếng Việt và tiếng Anh.
6
6
 
@@ -22,4 +22,4 @@ Chính sách màu chỉ cho nguồn trong `scripts/guideline-hex-policy.json` gh
22
22
 
23
23
  Các kiểm tra tập trung xác minh mọi chủ sở hữu nguồn đã khai báo ở hai chế độ, mô tả hỗ trợ tiếp cận và ngôn ngữ cây con, compiler/CSP thực tế, tiêu điểm bàn phím và chọn ngôn ngữ bằng điều khiển native, đồng bộ hướng dẫn lồng và văn bản được escape. Bằng chứng trình duyệt phân biệt canvas thẻ trên máy tính với điều khiển chạm và mẫu có chiều rộng cố định. Kiểm tra tự động về độ đầy đủ và kết xuất không xác lập chất lượng ngôn ngữ hay nghiệm thu thị giác/hỗ trợ tiếp cận của con người. Nghiệm thu bản dịch tiếng Việt vẫn chưa được xác minh cho đến khi có người rà soát.
24
24
 
25
- HTML nguồn tiếng Anh giữ `lang="en"` khi JavaScript bị tắt hoặc không tải được tập lệnh ngôn ngữ. Runtime chiếu nội dung đã chọn trước khi đặt ngôn ngữ tài liệu; giao diện có thực thi mặc định là tiếng Việt.
25
+ HTML nguồn tiếng Anh giữ `lang="en"` khi JavaScript bị tắt hoặc không tải được tập lệnh ngôn ngữ. Runtime chiếu nội dung đã chọn trước khi đặt ngôn ngữ tài liệu; giao diện có thực thi mặc định là tiếng Anh (`?language=vi` cho tiếng Việt).
@@ -1,6 +1,6 @@
1
1
  # Ghi chú phát hành
2
2
 
3
- Điểm nổi bật sản phẩm cho operator — **không** phải git log và **không** phải `CHANGELOG.md`. Hệ thống thiết kế không maintain file changelog. VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.5.0<!-- /cs-source-version -->** là phiên bản trong repository. Trang này cung cấp nội dung Storybook **Release Notes**; sửa cục bộ chưa xác nhận nội dung đang triển khai tại `design.cyberskill.world`.
3
+ Điểm nổi bật sản phẩm cho operator — **không** phải git log và **không** phải `CHANGELOG.md`. Hệ thống thiết kế không maintain file changelog. VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.7.0<!-- /cs-source-version -->** là phiên bản trong repository. Trang này cung cấp nội dung Storybook **Release Notes**; sửa cục bộ chưa xác nhận nội dung đang triển khai tại `design.cyberskill.world`.
4
4
 
5
5
  ## Bản sửa đổi chưa phát hành — đã triển khai cục bộ, chờ nghiệm thu
6
6
 
@@ -28,6 +28,30 @@ Các thay đổi này thuộc working tree đang sửa đổi. Đây chưa phả
28
28
 
29
29
  Release vẫn chờ nghiệm thu thị giác của con người, kiểm tra native/công nghệ hỗ trợ thủ công bắt buộc, quyết định về nguồn gốc tài nguyên và nghiệm thu hiện vật pilot đã thay đổi. Bằng chứng hỗ trợ đã thay đổi phải được review lại trong `components/lifecycle.json`. EN/VI là phạm vi ngôn ngữ mục tiêu; tiếng Nhật vẫn là spike chưa đầy đủ. Ghi chú này không cho phép mở rộng cam kết hỗ trợ, deprecate hay loại bỏ API.
30
30
 
31
+ ## Release — `@cyberskill/design@2.6.0`
32
+
33
+ Phiên bản minor ổn định đã công bố được ghi nhận trong `_audit/ci/fixtures/npm-published-release.json` (quan sát lúc `2026-11-09T17:39:34.494Z`, tag `v2.6.0` tại commit `48ed4be40e83bc6d5e2763b03111b07aa2c26df4`).
34
+
35
+ - **Benchmark 10 chiều & Cổng chống thoái lui tự động trên CI (`audit/v2.5.0-verification.html`, `audit/verify-v2.5.0.js`, `audit/fixture-v2.5.0.html`, `_audit/ci/verify-audit-benchmarks-browser.mjs`):** Mở rộng bộ kiểm toán trình duyệt trực tiếp lên **10 chiều (`69/69` phép kiểm tra đạt `10.0 / 10`, `0 watch`)** với `D8` (Vùng chạm ≥ 44px, Bảo toàn vòng lấy nét, Chế độ tương phản cao), `D9` (Đầy đủ token 5 Hành × 2 Chủ đề × 3 Biến thể, Toàn vẹn trang in A4, Giảm chuyển động), và `D10` (Nhận diện thương hiệu, Đầy đủ song ngữ EN/VI, Độ thuần khiết token), được cưỡng chế trong CI và `prepublishOnly` qua `npm run test:audit-regression`.
36
+ - **Xuất CSS phẳng một tệp & Hướng dẫn logo nội tuyến (`package.json`, `scripts/flatten-css.mjs`, `DESIGN.md`, `docs/vi/entrypoints/DESIGN.md`):** Mở `"./dist/styles.css": "./dist/styles.css"` trong `package.json#exports`, tự động đóng dấu `VERSION` vào tiêu đề `dist/styles.css`, và quy định mẫu logo `<svg viewBox="0 0 64 64">` nội tuyến cho môi trường một tệp và cloud sandbox.
37
+ - **Xác thực nhanh shard `act` gắn với commit (`.github/workflows/design-system-gates.yml`, `scripts/run-act-ci.mjs`, `scripts/verify-ci-checks.mjs`):** Kiểm chứng biên nhận `ci/act/unit-tests (1/4..4/4)` gắn với commit trước các bước cài đặt phụ thuộc và trình duyệt nặng, rút ngắn thời gian chạy `unit-tests` trên GitHub Actions xuống ~15 giây khi đã xác minh cục bộ qua `act`.
38
+
39
+ ```bash
40
+ npm install @cyberskill/design@2.6.0
41
+ ```
42
+
43
+ ## Release — `@cyberskill/design@2.5.0`
44
+
45
+ Phiên bản minor ổn định đã công bố được ghi nhận trong `_audit/ci/fixtures/npm-published-release.json` (quan sát lúc `2026-11-09T06:04:11.249Z`, tag `v2.5.0` tại commit `6e7fe3c158b122c8ca19b8253eb06460c7f2f919`). Các tag kho mã `v2.3.1` và `v2.4.0` đi trước `v2.5.0`.
46
+
47
+ - **Đồng bộ chủ đề lồng nhau & Liquid Glass (`base/glass.css`, `tokens/theme-dark.css`):** Tính lại các token `--_cs-light` / `--_cs-dark`, `--_cs-surface-scrim` và toàn bộ tám chất liệu `--cs-glass-*-{bg,border}` bên trong các khối `[data-theme]` lồng nhau.
48
+ - **Tương phản 32 scope & an toàn nền Dark mặc định (`base/collections.css`, `base/controls.css`, `base/feedback.css`, `base/shell.css`, `base/ai.css`):** Thay nền `--cs-accent-tint` thiếu scope ở Dark Mode bằng `color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel))`, nâng các chỉ báo phi văn bản lên `--cs-color-text-accent` (`WCAG 1.4.11 ≥ 3:1` trên toàn bộ 32 scope) và bổ sung viền nội tiếp cho bề mặt Umber trên nền tối.
49
+ - **Đồng bộ trạng thái lỗi 13 form control & chiều cao dòng tiếng Việt (`base/components.css`, `base/controls.css`, `base/typography.css`, `base/data.css`):** Thống nhất viền lỗi `.is-invalid` / `[aria-invalid="true"]` trên cả 13 loại form control và áp dụng `:lang(vi) { line-height: 1.22; }` cho `.cs-display` cùng `.cs-stat__value`.
50
+
51
+ ```bash
52
+ npm install @cyberskill/design@2.5.0
53
+ ```
54
+
31
55
  ## Release — `@cyberskill/design@2.3.0`
32
56
 
33
57
  Phiên bản minor ổn định đã công bố được ghi nhận trong `_audit/ci/fixtures/npm-published-release.json` (quan sát lúc `2026-11-06T03:56:00.000Z`, tag `v2.3.0` tại commit `1f873e812e9a02ec68bbc49c3b7ae3248a165ac9`).