@cyberskill/design 2.0.0 → 2.1.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 (779) hide show
  1. package/DESIGN.md +85 -85
  2. package/README.md +3 -3
  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 +141 -141
  8. package/_esm/cs.mjs +2 -2
  9. package/base/collections.css +3 -2
  10. package/base/components.css +8 -7
  11. package/base/controls.css +14 -14
  12. package/base/data.css +3 -3
  13. package/base/feedback.css +2 -2
  14. package/base/forms.css +3 -2
  15. package/base/glass.css +2 -2
  16. package/base/interaction.css +6 -1
  17. package/base/navigation.css +2 -2
  18. package/base/reset.css +2 -0
  19. package/base/shell.css +5 -5
  20. package/base/typography.css +4 -4
  21. package/components/_i18n/strings.js +3 -3
  22. package/components/_utils/open-change.js +18 -0
  23. package/components/ai/ai-conversation.card.html +2 -0
  24. package/components/ai/ai-lumi.card.html +2 -0
  25. package/components/ai/ai.card.html +2 -0
  26. package/components/api-discovery.json +94 -24
  27. package/components/api-index.json +528 -80
  28. package/components/brand/brand.card.html +2 -0
  29. package/components/button/buttons.card.html +2 -0
  30. package/components/contracts.json +23 -9
  31. package/components/data/collections.card.html +2 -0
  32. package/components/data/data.card.html +2 -0
  33. package/components/datatable/DataGrid.jsx +1 -1
  34. package/components/datatable/datatable.card.html +2 -0
  35. package/components/dialog/Dialog.d.ts +3 -0
  36. package/components/dialog/Dialog.jsx +7 -5
  37. package/components/dialog/Dialog.prompt.md +1 -0
  38. package/components/dialog/dialog.card.html +2 -0
  39. package/components/feedback/Alert.d.ts +5 -1
  40. package/components/feedback/Alert.jsx +4 -3
  41. package/components/feedback/Alert.prompt.md +2 -0
  42. package/components/feedback/Toast.d.ts +3 -0
  43. package/components/feedback/Toast.jsx +4 -3
  44. package/components/feedback/Toast.prompt.md +1 -0
  45. package/components/feedback/feedback-2.card.html +2 -0
  46. package/components/feedback/feedback.card.html +2 -0
  47. package/components/forms/forms-2.card.html +2 -0
  48. package/components/forms/forms.card.html +2 -0
  49. package/components/i18n/i18n.card.html +2 -1
  50. package/components/icon/icon.card.html +2 -0
  51. package/components/lifecycle.json +433 -55
  52. package/components/logo/logo.card.html +2 -0
  53. package/components/navigation/CommandPalette.d.ts +4 -1
  54. package/components/navigation/CommandPalette.jsx +6 -5
  55. package/components/navigation/CommandPalette.prompt.md +1 -0
  56. package/components/navigation/Menubar.jsx +2 -2
  57. package/components/navigation/navigation.card.html +2 -0
  58. package/components/navigation/shell.card.html +2 -0
  59. package/components/overlays/Drawer.d.ts +3 -0
  60. package/components/overlays/Drawer.jsx +6 -5
  61. package/components/overlays/Drawer.prompt.md +1 -0
  62. package/components/overlays/Tour.d.ts +3 -0
  63. package/components/overlays/Tour.jsx +8 -5
  64. package/components/overlays/Tour.prompt.md +1 -0
  65. package/components/overlays/alertdialog.card.html +2 -0
  66. package/components/overlays/overlays.card.html +2 -0
  67. package/components/prompt-api.json +17 -10
  68. package/components/scenarios.json +37 -37
  69. package/components/specifications.json +3403 -1401
  70. package/components/static-html-reference.json +36 -36
  71. package/components/textfield/textfield.card.html +2 -0
  72. package/dist/esm/_esm/react.mjs +69 -68
  73. package/dist/esm/build.json +526 -518
  74. package/dist/esm/chunks/{chunk-FEUTSZBN.mjs → chunk-2CCVFTPL.mjs} +2 -2
  75. package/dist/esm/chunks/{chunk-W5VR7GTL.mjs → chunk-2VVGZEOQ.mjs} +2 -2
  76. package/dist/esm/chunks/{chunk-3RC4CDAE.mjs → chunk-3R5WJQCB.mjs} +2 -2
  77. package/dist/esm/chunks/{chunk-W6N22NMF.mjs → chunk-4FGB6VHN.mjs} +2 -2
  78. package/dist/esm/chunks/{chunk-JN57OITY.mjs → chunk-4RSFD6QC.mjs} +10 -7
  79. package/dist/esm/chunks/chunk-4RSFD6QC.mjs.map +7 -0
  80. package/dist/esm/chunks/{chunk-YZR3C7V2.mjs → chunk-4TO35YGK.mjs} +2 -2
  81. package/dist/esm/chunks/{chunk-JSAPFO73.mjs → chunk-4YWKKULF.mjs} +2 -2
  82. package/dist/esm/chunks/{chunk-W2RF4NWB.mjs → chunk-5FQGNCKS.mjs} +2 -2
  83. package/dist/esm/chunks/chunk-65SIJBJX.mjs +22 -0
  84. package/dist/esm/chunks/chunk-65SIJBJX.mjs.map +7 -0
  85. package/dist/esm/chunks/{chunk-SYCXNMYP.mjs → chunk-6ECKJ6RS.mjs} +2 -2
  86. package/dist/esm/chunks/{chunk-CH4W6RCG.mjs → chunk-6H7JYBPI.mjs} +10 -5
  87. package/dist/esm/chunks/chunk-6H7JYBPI.mjs.map +7 -0
  88. package/dist/esm/chunks/{chunk-72AUOI37.mjs → chunk-6TZDNLHE.mjs} +2 -2
  89. package/dist/esm/chunks/{chunk-QGCPHFSI.mjs → chunk-72STPBL4.mjs} +2 -2
  90. package/dist/esm/chunks/{chunk-37AN57S5.mjs → chunk-7GSR2NGL.mjs} +3 -3
  91. package/dist/esm/chunks/{chunk-A3PGQW3X.mjs → chunk-AA5BSO3T.mjs} +2 -2
  92. package/dist/esm/chunks/{chunk-NH6M42ZI.mjs → chunk-ASGO2FW5.mjs} +2 -2
  93. package/dist/esm/chunks/{chunk-GP5ITSCH.mjs → chunk-C3NAMBA7.mjs} +2 -2
  94. package/dist/esm/chunks/{chunk-YA7Y7PEC.mjs → chunk-CKBL3UEA.mjs} +2 -2
  95. package/dist/esm/chunks/{chunk-H7EJ7TNP.mjs → chunk-CYZ22MB7.mjs} +2 -2
  96. package/dist/esm/chunks/{chunk-JRIWHAWW.mjs → chunk-D7A4ZCMJ.mjs} +2 -2
  97. package/dist/esm/chunks/{chunk-A7RWM4XH.mjs → chunk-DANUZS4S.mjs} +2 -2
  98. package/dist/esm/chunks/{chunk-FAVSLU7E.mjs → chunk-DFBKBVSE.mjs} +2 -2
  99. package/dist/esm/chunks/{chunk-TNHQB6CI.mjs → chunk-DW4AWLA5.mjs} +2 -2
  100. package/dist/esm/chunks/{chunk-5R5KMLUR.mjs → chunk-DWJIX65T.mjs} +2 -2
  101. package/dist/esm/chunks/{chunk-YJNSQ5PJ.mjs → chunk-EITZT2U5.mjs} +2 -2
  102. package/dist/esm/chunks/{chunk-CSJHR2W2.mjs → chunk-EOCMQT4L.mjs} +2 -2
  103. package/dist/esm/chunks/{chunk-4QBKN42N.mjs → chunk-EXOOST5G.mjs} +2 -2
  104. package/dist/esm/chunks/{chunk-7HTAAMIY.mjs → chunk-FF5D53IP.mjs} +2 -2
  105. package/dist/esm/chunks/{chunk-JNK7QN24.mjs → chunk-FOEJO2YQ.mjs} +2 -2
  106. package/dist/esm/chunks/{chunk-F3M5TQ76.mjs → chunk-GB6VWFOE.mjs} +11 -6
  107. package/dist/esm/chunks/chunk-GB6VWFOE.mjs.map +7 -0
  108. package/dist/esm/chunks/{chunk-UFE32JPH.mjs → chunk-GHWOEHEX.mjs} +8 -4
  109. package/dist/esm/chunks/chunk-GHWOEHEX.mjs.map +7 -0
  110. package/dist/esm/chunks/{chunk-HYQG5XND.mjs → chunk-GLPQBE2J.mjs} +2 -2
  111. package/dist/esm/chunks/{chunk-HUW6OY7C.mjs → chunk-GNEVR5Q4.mjs} +2 -2
  112. package/dist/esm/chunks/{chunk-SEYKDGXE.mjs → chunk-H4TKHAB3.mjs} +2 -2
  113. package/dist/esm/chunks/{chunk-ANWF2NX3.mjs → chunk-H6HQZ5RI.mjs} +3 -3
  114. package/dist/esm/chunks/{chunk-ANWF2NX3.mjs.map → chunk-H6HQZ5RI.mjs.map} +2 -2
  115. package/dist/esm/chunks/{chunk-OR5UTKW7.mjs → chunk-I3H7EAH5.mjs} +2 -2
  116. package/dist/esm/chunks/{chunk-P64YS5W2.mjs → chunk-I3PQVFX5.mjs} +2 -2
  117. package/dist/esm/chunks/{chunk-5MR3C2QG.mjs → chunk-IOEWPBAL.mjs} +2 -2
  118. package/dist/esm/chunks/{chunk-TN2MZXGS.mjs → chunk-JIHWIDMP.mjs} +2 -2
  119. package/dist/esm/chunks/{chunk-FXELBWXK.mjs → chunk-JTAYZ36C.mjs} +4 -3
  120. package/dist/esm/chunks/{chunk-FXELBWXK.mjs.map → chunk-JTAYZ36C.mjs.map} +2 -2
  121. package/dist/esm/chunks/{chunk-25AOTZAM.mjs → chunk-JZYRXWPD.mjs} +4 -4
  122. package/dist/esm/chunks/{chunk-25AOTZAM.mjs.map → chunk-JZYRXWPD.mjs.map} +2 -2
  123. package/dist/esm/chunks/{chunk-YX62AV33.mjs → chunk-KAOUK33L.mjs} +2 -2
  124. package/dist/esm/chunks/{chunk-UVJ5BBQG.mjs → chunk-KWPNHP73.mjs} +2 -2
  125. package/dist/esm/chunks/{chunk-BABSYWVB.mjs → chunk-LCC4ZVVO.mjs} +2 -2
  126. package/dist/esm/chunks/{chunk-GWBINWTF.mjs → chunk-LWRFPVX7.mjs} +8 -4
  127. package/dist/esm/chunks/chunk-LWRFPVX7.mjs.map +7 -0
  128. package/dist/esm/chunks/{chunk-HVF4NT6P.mjs → chunk-MRXEJSQQ.mjs} +2 -2
  129. package/dist/esm/chunks/{chunk-DIIXA7WD.mjs → chunk-NZKMM4FK.mjs} +2 -2
  130. package/dist/esm/chunks/{chunk-CLWTVJM3.mjs → chunk-OEWAQZYE.mjs} +2 -2
  131. package/dist/esm/chunks/{chunk-IH4I7JSB.mjs → chunk-OILXJXVX.mjs} +10 -7
  132. package/dist/esm/chunks/chunk-OILXJXVX.mjs.map +7 -0
  133. package/dist/esm/chunks/{chunk-OOZKMXYB.mjs → chunk-PBP2MKZH.mjs} +2 -2
  134. package/dist/esm/chunks/{chunk-JKKJHQVQ.mjs → chunk-PE6KC2U7.mjs} +2 -2
  135. package/dist/esm/chunks/{chunk-N5TM7UIY.mjs → chunk-PFTKXY5Q.mjs} +2 -2
  136. package/dist/esm/chunks/{chunk-R7QVE2JP.mjs → chunk-PLN3ITUB.mjs} +2 -2
  137. package/dist/esm/chunks/{chunk-NEMFYL4X.mjs → chunk-QBPDNM7S.mjs} +2 -2
  138. package/dist/esm/chunks/{chunk-JDI3UMJW.mjs → chunk-SIMVM4RV.mjs} +2 -2
  139. package/dist/esm/chunks/{chunk-WJF2Q2Y3.mjs → chunk-TMXLSCAG.mjs} +2 -2
  140. package/dist/esm/chunks/{chunk-TGYG7JP4.mjs → chunk-TNQXCIBM.mjs} +2 -2
  141. package/dist/esm/chunks/{chunk-DHTD5KM5.mjs → chunk-TWCJMLGG.mjs} +2 -2
  142. package/dist/esm/chunks/{chunk-EPFDMHPK.mjs → chunk-U7RKPGRO.mjs} +2 -2
  143. package/dist/esm/chunks/{chunk-NMIGE2IM.mjs → chunk-UWNMGKAN.mjs} +2 -2
  144. package/dist/esm/chunks/{chunk-KXFGO7N4.mjs → chunk-VAPKJRQI.mjs} +2 -2
  145. package/dist/esm/chunks/{chunk-XTBN55D3.mjs → chunk-VUCJT2QJ.mjs} +2 -2
  146. package/dist/esm/chunks/{chunk-TVTBVHT2.mjs → chunk-WLANQTOU.mjs} +2 -2
  147. package/dist/esm/chunks/{chunk-3MCNCG2L.mjs → chunk-XZ5NWMO7.mjs} +2 -2
  148. package/dist/esm/chunks/{chunk-QPXQZBQC.mjs → chunk-YKU2KVAQ.mjs} +2 -2
  149. package/dist/esm/chunks/{chunk-ZKFOGW4D.mjs → chunk-YLSFKG64.mjs} +2 -2
  150. package/dist/esm/chunks/{chunk-TO2T6EEB.mjs → chunk-YVSAUCWW.mjs} +3 -3
  151. package/dist/esm/chunks/{chunk-XN74VX5H.mjs → chunk-ZKBAIIAQ.mjs} +2 -2
  152. package/dist/esm/chunks/{chunk-7IJTTRPK.mjs → chunk-ZPLENPV2.mjs} +2 -2
  153. package/dist/esm/components/ai/AIDisclosureBadge.mjs +2 -2
  154. package/dist/esm/components/ai/ChatMessage.mjs +2 -2
  155. package/dist/esm/components/ai/CitationList.mjs +2 -2
  156. package/dist/esm/components/ai/ConfidenceMeter.mjs +2 -2
  157. package/dist/esm/components/ai/HumanReviewGate.mjs +2 -2
  158. package/dist/esm/components/ai/PromptInput.mjs +2 -2
  159. package/dist/esm/components/ai/TypingIndicator.mjs +2 -2
  160. package/dist/esm/components/data/Carousel.mjs +2 -2
  161. package/dist/esm/components/data/Chart.mjs +2 -2
  162. package/dist/esm/components/data/CodeBlock.mjs +2 -2
  163. package/dist/esm/components/data/Comment.mjs +2 -2
  164. package/dist/esm/components/data/Image.mjs +2 -2
  165. package/dist/esm/components/data/Sortable.mjs +2 -2
  166. package/dist/esm/components/data/Splitter.mjs +2 -2
  167. package/dist/esm/components/data/Terminal.mjs +2 -2
  168. package/dist/esm/components/data/Tooltip.mjs +2 -2
  169. package/dist/esm/components/datatable/DataGrid.mjs +2 -2
  170. package/dist/esm/components/datatable/DataTable.mjs +3 -3
  171. package/dist/esm/components/datatable/TreeTable.mjs +2 -2
  172. package/dist/esm/components/dialog/Dialog.mjs +3 -2
  173. package/dist/esm/components/feedback/Alert.mjs +3 -2
  174. package/dist/esm/components/feedback/EmptyState.mjs +2 -2
  175. package/dist/esm/components/feedback/ProgressBar.mjs +2 -2
  176. package/dist/esm/components/feedback/Result.mjs +2 -2
  177. package/dist/esm/components/feedback/Spinner.mjs +2 -2
  178. package/dist/esm/components/feedback/Tag.mjs +2 -2
  179. package/dist/esm/components/feedback/Toast.mjs +3 -2
  180. package/dist/esm/components/forms/Calendar.mjs +2 -2
  181. package/dist/esm/components/forms/Cascader.mjs +2 -2
  182. package/dist/esm/components/forms/ColorPicker.mjs +2 -2
  183. package/dist/esm/components/forms/Combobox.mjs +2 -2
  184. package/dist/esm/components/forms/DatePicker.mjs +3 -3
  185. package/dist/esm/components/forms/Editor.mjs +2 -2
  186. package/dist/esm/components/forms/FileUpload.mjs +2 -2
  187. package/dist/esm/components/forms/Form.mjs +2 -2
  188. package/dist/esm/components/forms/InlineEdit.mjs +2 -2
  189. package/dist/esm/components/forms/InputGroup.mjs +2 -2
  190. package/dist/esm/components/forms/InputOTP.mjs +2 -2
  191. package/dist/esm/components/forms/Mentions.mjs +2 -2
  192. package/dist/esm/components/forms/NumberField.mjs +2 -2
  193. package/dist/esm/components/forms/Rating.mjs +2 -2
  194. package/dist/esm/components/forms/SearchField.mjs +2 -2
  195. package/dist/esm/components/forms/Select.mjs +2 -2
  196. package/dist/esm/components/forms/Slider.mjs +2 -2
  197. package/dist/esm/components/forms/Switch.mjs +2 -2
  198. package/dist/esm/components/forms/TagInput.mjs +2 -2
  199. package/dist/esm/components/forms/TimePicker.mjs +2 -2
  200. package/dist/esm/components/forms/Toggle.mjs +2 -2
  201. package/dist/esm/components/forms/Transfer.mjs +2 -2
  202. package/dist/esm/components/forms/TreeSelect.mjs +2 -2
  203. package/dist/esm/components/i18n/LocaleProvider.mjs +2 -2
  204. package/dist/esm/components/navigation/BackTop.mjs +2 -2
  205. package/dist/esm/components/navigation/Breadcrumb.mjs +2 -2
  206. package/dist/esm/components/navigation/CommandPalette.mjs +3 -2
  207. package/dist/esm/components/navigation/HotKeys.mjs +2 -2
  208. package/dist/esm/components/navigation/Menu.mjs +2 -2
  209. package/dist/esm/components/navigation/Menubar.mjs +2 -2
  210. package/dist/esm/components/navigation/Pagination.mjs +2 -2
  211. package/dist/esm/components/navigation/Steps.mjs +2 -2
  212. package/dist/esm/components/navigation/Tabs.mjs +2 -2
  213. package/dist/esm/components/navigation/Toolbar.mjs +2 -2
  214. package/dist/esm/components/overlays/AlertDialog.mjs +2 -2
  215. package/dist/esm/components/overlays/ContextMenu.mjs +2 -2
  216. package/dist/esm/components/overlays/Drawer.mjs +3 -2
  217. package/dist/esm/components/overlays/Popconfirm.mjs +2 -2
  218. package/dist/esm/components/overlays/Popover.mjs +2 -2
  219. package/dist/esm/components/overlays/Tour.mjs +3 -2
  220. package/dist/styles.min.css +1 -1
  221. package/docs/ci-cd.md +1 -1
  222. package/docs/component-api.md +1 -1
  223. package/docs/consuming.md +1 -1
  224. package/docs/contrast-report.md +1 -1
  225. package/docs/conventions.md +1 -1
  226. package/docs/design-styles.md +1 -1
  227. package/docs/manual-at-matrix.md +2 -0
  228. package/docs/quality-gates.md +2 -1
  229. package/docs/reference-catalog.json +81 -81
  230. package/docs/release-notes.md +1 -1
  231. package/docs/static-html-reference.md +27 -27
  232. package/docs/template-inventory.json +162 -162
  233. package/docs/vi/ci-cd.md +1 -1
  234. package/docs/vi/component-api.md +1 -1
  235. package/docs/vi/consuming.md +1 -1
  236. package/docs/vi/contrast-report.md +1 -1
  237. package/docs/vi/conventions.md +1 -1
  238. package/docs/vi/decisions/component-specification-evidence.md +1 -1
  239. package/docs/vi/decisions/token-alias-compatibility.md +1 -1
  240. package/docs/vi/design-styles.md +1 -1
  241. package/docs/vi/entrypoints/DESIGN.md +85 -85
  242. package/docs/vi/entrypoints/README.md +3 -3
  243. package/docs/vi/manual-at-matrix.md +2 -0
  244. package/docs/vi/quality-gates.md +2 -1
  245. package/docs/vi/release-notes.md +1 -1
  246. package/docs/vi/static-html-reference.md +27 -27
  247. package/docs/viewer.html +9 -12
  248. package/guidelines/atomic-view.html +35 -31
  249. package/guidelines/brand-iconography.html +33 -32
  250. package/guidelines/brand-imagery.html +2 -1
  251. package/guidelines/brand-interaction.html +3 -2
  252. package/guidelines/brand-voice.html +2 -1
  253. package/guidelines/colors-anchors.html +2 -1
  254. package/guidelines/colors-semantic.html +2 -1
  255. package/guidelines/colors-surfaces.html +2 -1
  256. package/guidelines/colors-text.html +2 -1
  257. package/guidelines/documents.html +3 -2
  258. package/guidelines/elements-components.html +4 -3
  259. package/guidelines/elements-concept.html +3 -2
  260. package/guidelines/elements-geometry.html +4 -3
  261. package/guidelines/elements-variants.html +4 -3
  262. package/guidelines/guideline-language.js +1 -1
  263. package/guidelines/motion-interaction.html +2 -1
  264. package/guidelines/motion.html +12 -13
  265. package/guidelines/responsive-bilingual.html +7 -6
  266. package/guidelines/rtl-preview.html +2 -2
  267. package/guidelines/spacing-breakpoints.html +2 -1
  268. package/guidelines/spacing-radius.html +4 -3
  269. package/guidelines/spacing-scale.html +2 -1
  270. package/guidelines/surfaces-aurora.html +2 -1
  271. package/guidelines/surfaces-depth.html +3 -2
  272. package/guidelines/surfaces-glass.html +2 -1
  273. package/guidelines/surfaces-shadow.html +2 -1
  274. package/guidelines/type-families.html +2 -1
  275. package/guidelines/type-lineheight.html +2 -1
  276. package/guidelines/type-scale.html +2 -1
  277. package/guidelines/type-weights.html +2 -1
  278. package/package.json +3 -2
  279. package/styles/components/manifest.json +156 -148
  280. package/styles.layered.css +156 -149
  281. package/styles.layered.provenance.json +17 -17
  282. package/templates/_vendor/deck-stage.js +3 -3
  283. package/templates/_vendor/doc-export.js +1 -1
  284. package/templates/_vendor/support.js +1 -1
  285. package/templates/ai-cluster-demo.html +2 -1
  286. package/templates/app-shell/AppShell.dc.html +2 -1
  287. package/templates/app-shell/support.js +1 -1
  288. package/templates/article/Article.dc.html +2 -1
  289. package/templates/article/support.js +1 -1
  290. package/templates/auth/Auth.dc.html +2 -1
  291. package/templates/auth/support.js +1 -1
  292. package/templates/bod-deck/BodDeck.dc.html +1 -0
  293. package/templates/bod-deck/support.js +1 -1
  294. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -0
  295. package/templates/bod-investor-update/support.js +1 -1
  296. package/templates/bod-memo/support.js +1 -1
  297. package/templates/bod-minutes/BodMinutes.dc.html +1 -0
  298. package/templates/bod-minutes/support.js +1 -1
  299. package/templates/bod-report/BodReport.dc.html +1 -0
  300. package/templates/bod-report/support.js +1 -1
  301. package/templates/bod-resolution/BodResolution.dc.html +1 -0
  302. package/templates/bod-resolution/support.js +1 -1
  303. package/templates/culture-event-invite/CultureEventInvite.dc.html +1 -0
  304. package/templates/culture-event-invite/support.js +1 -1
  305. package/templates/dashboard/Dashboard.dc.html +2 -1
  306. package/templates/dashboard/support.js +1 -1
  307. package/templates/delivery-change-note/DeliveryChangeNote.dc.html +1 -0
  308. package/templates/delivery-change-note/support.js +1 -1
  309. package/templates/delivery-kickoff/DeliveryKickoff.dc.html +1 -0
  310. package/templates/delivery-kickoff/support.js +1 -1
  311. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +3 -2
  312. package/templates/delivery-qbr-deck/support.js +1 -1
  313. package/templates/delivery-runbook/DeliveryRunbook.dc.html +1 -0
  314. package/templates/delivery-runbook/support.js +1 -1
  315. package/templates/delivery-status-email/support.js +1 -1
  316. package/templates/doc-style-guide/DocStyleGuide.dc.html +1 -0
  317. package/templates/doc-style-guide/support.js +1 -1
  318. package/templates/doc-suite-index/DocSuiteIndex.dc.html +1 -0
  319. package/templates/doc-suite-index/support.js +1 -1
  320. package/templates/doc-templates/support.js +1 -1
  321. package/templates/email/Email-VN-standalone.html +2 -1
  322. package/templates/email/support.js +1 -1
  323. package/templates/email-safe/email-announcement.html +2 -1
  324. package/templates/email-safe/email-dunning.html +2 -1
  325. package/templates/email-safe/email-investor.html +2 -1
  326. package/templates/email-safe/email-launch.html +2 -1
  327. package/templates/email-safe/email-newsletter.html +2 -1
  328. package/templates/email-safe/email-status.html +2 -1
  329. package/templates/email-safe/email-transactional.html +2 -1
  330. package/templates/finance-dunning-email/support.js +1 -1
  331. package/templates/finance-expense-report/support.js +1 -1
  332. package/templates/finance-invoice/support.js +1 -1
  333. package/templates/finance-quote/support.js +1 -1
  334. package/templates/hr-announcement/support.js +1 -1
  335. package/templates/hr-interview-kit/HrInterviewKit.dc.html +1 -0
  336. package/templates/hr-interview-kit/support.js +1 -1
  337. package/templates/hr-offboarding/HrOffboarding.dc.html +1 -0
  338. package/templates/hr-offboarding/support.js +1 -1
  339. package/templates/hr-performance-review/HrPerformanceReview.dc.html +1 -0
  340. package/templates/hr-performance-review/support.js +1 -1
  341. package/templates/hr-pip/HrPip.dc.html +1 -0
  342. package/templates/hr-pip/support.js +1 -1
  343. package/templates/image-slots-demo.html +11 -9
  344. package/templates/kitchen-sink.html +8 -4
  345. package/templates/legal-msa/LegalMsa.dc.html +1 -0
  346. package/templates/legal-msa/support.js +1 -1
  347. package/templates/legal-sow/support.js +1 -1
  348. package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +1 -0
  349. package/templates/marketing-campaign-brief/support.js +1 -1
  350. package/templates/marketing-case-study/MarketingCaseStudy.dc.html +1 -0
  351. package/templates/marketing-case-study/support.js +1 -1
  352. package/templates/marketing-launch/support.js +1 -1
  353. package/templates/marketing-newsletter/support.js +1 -1
  354. package/templates/marketing-page/MarketingPage.dc.html +6 -3
  355. package/templates/marketing-page/support.js +1 -1
  356. package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
  357. package/templates/marketing-press-release/support.js +1 -1
  358. package/templates/marketing-social-kit/MarketingSocialKit.dc.html +1 -0
  359. package/templates/marketing-social-kit/support.js +1 -1
  360. package/templates/playground.html +9 -7
  361. package/templates/sales-one-pager/SalesOnePager.dc.html +1 -0
  362. package/templates/sales-one-pager/support.js +1 -1
  363. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +1 -0
  364. package/templates/sales-proposal-deck/support.js +1 -1
  365. package/templates/settings/Settings.dc.html +2 -1
  366. package/templates/settings/support.js +1 -1
  367. package/templates/slide-deck/SlideDeck.dc.html +1 -0
  368. package/templates/slide-deck/support.js +1 -1
  369. package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +1 -0
  370. package/templates/team-meeting-agenda/support.js +1 -1
  371. package/templates/tech-incident-report/TechIncidentReport.dc.html +1 -0
  372. package/templates/tech-incident-report/support.js +1 -1
  373. package/templates/tech-release-notes/support.js +1 -1
  374. package/templates/tech-retro/TechRetro.dc.html +1 -0
  375. package/templates/tech-retro/support.js +1 -1
  376. package/templates/tech-rfc/TechRfc.dc.html +2 -1
  377. package/templates/tech-rfc/support.js +1 -1
  378. package/templates/vn-appointment-transfer/support.js +1 -1
  379. package/templates/vn-certificate-of-employment/support.js +1 -1
  380. package/templates/vn-code-of-conduct/support.js +1 -1
  381. package/templates/vn-compensation-regulation/support.js +1 -1
  382. package/templates/vn-contract-amendment/support.js +1 -1
  383. package/templates/vn-contractor-agreement/support.js +1 -1
  384. package/templates/vn-data-protection-policy/support.js +1 -1
  385. package/templates/vn-disciplinary-case-file/support.js +1 -1
  386. package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +1 -0
  387. package/templates/vn-disciplinary-schedule/support.js +1 -1
  388. package/templates/vn-employee-request/support.js +1 -1
  389. package/templates/vn-exit-handover/support.js +1 -1
  390. package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +1 -0
  391. package/templates/vn-foreign-employee-pack/support.js +1 -1
  392. package/templates/vn-framework-agreement/support.js +1 -1
  393. package/templates/vn-grassroots-democracy/support.js +1 -1
  394. package/templates/vn-infosec-policy/support.js +1 -1
  395. package/templates/vn-internal-labor-regulations/support.js +1 -1
  396. package/templates/vn-internship-agreement/support.js +1 -1
  397. package/templates/vn-job-description/support.js +1 -1
  398. package/templates/vn-labor-contract/support.js +1 -1
  399. package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +1 -0
  400. package/templates/vn-labour-management-book/support.js +1 -1
  401. package/templates/vn-mutual-nda/support.js +1 -1
  402. package/templates/vn-ndnca-ip/support.js +1 -1
  403. package/templates/vn-offer-letter/support.js +1 -1
  404. package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +1 -0
  405. package/templates/vn-onboarding-checklist/support.js +1 -1
  406. package/templates/vn-pdpl-consent/support.js +1 -1
  407. package/templates/vn-performance-evaluation-regulation/support.js +1 -1
  408. package/templates/vn-performance-review-form/support.js +1 -1
  409. package/templates/vn-phantom-stock/VnPhantomStock.dc.html +1 -0
  410. package/templates/vn-phantom-stock/support.js +1 -1
  411. package/templates/vn-probation-contract/support.js +1 -1
  412. package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +1 -0
  413. package/templates/vn-receipt-acknowledgement/support.js +1 -1
  414. package/templates/vn-remote-work-policy/support.js +1 -1
  415. package/templates/vn-resignation-letter/support.js +1 -1
  416. package/templates/vn-salary-scale/VnSalaryScale.dc.html +1 -0
  417. package/templates/vn-salary-scale/support.js +1 -1
  418. package/templates/vn-sow-appendix/support.js +1 -1
  419. package/templates/vn-termination-decision/support.js +1 -1
  420. package/templates/vn-total-rewards-appendix/support.js +1 -1
  421. package/templates/vn-training-commitment/support.js +1 -1
  422. package/templates/vn-travel-expense-policy/support.js +1 -1
  423. package/tokens/base-inventory.json +22 -22
  424. package/tokens/component-tokens.css +38 -38
  425. package/tokens/declarations.json +157 -157
  426. package/tokens/element-seeds.json +1 -1
  427. package/tokens/elements.css +48 -48
  428. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  429. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  430. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  431. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  432. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  433. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  434. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  435. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  436. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  437. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  438. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  439. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  440. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  441. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  442. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  443. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  444. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  445. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  446. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  447. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  448. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  449. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  450. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  451. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  452. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  453. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  454. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  455. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  456. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  457. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  458. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  459. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  460. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  461. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  462. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  463. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  464. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  465. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  466. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  467. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  468. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  469. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  470. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  471. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  472. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  473. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  474. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  475. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  476. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  477. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  478. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  479. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  480. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  481. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  482. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  483. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  484. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  485. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  486. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  487. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  488. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  489. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  490. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  491. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  492. package/tokens/modes/index.json +2068 -2068
  493. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  494. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  495. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  496. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  497. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  498. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  499. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  500. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  501. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  502. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  503. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  504. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  505. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  506. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  507. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  508. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  509. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  510. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  511. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  512. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  513. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  514. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  515. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  516. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  517. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  518. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  519. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  520. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  521. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  522. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  523. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  524. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  525. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  526. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  527. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  528. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  529. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  530. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  531. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  532. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  533. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  534. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  535. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  536. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  537. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  538. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  539. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  540. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  541. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  542. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  543. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  544. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  545. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  546. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  547. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  548. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  549. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  550. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  551. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  552. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  553. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  554. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  555. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  556. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  557. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  558. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  559. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  560. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  561. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  562. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  563. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  564. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  565. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  566. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  567. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  568. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  569. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  570. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  571. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  572. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  573. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  574. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  575. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  576. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  577. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  578. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  579. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  580. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  581. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  582. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  583. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  584. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  585. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  586. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  587. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  588. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  589. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  590. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  591. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  592. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  593. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  594. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  595. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  596. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  597. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  598. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  599. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  600. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  601. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  602. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  603. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  604. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  605. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  606. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  607. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  608. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  609. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  610. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  611. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  612. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  613. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  614. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  615. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  616. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  617. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  618. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  619. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  620. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  621. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  622. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  623. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  624. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  625. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  626. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  627. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  628. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  629. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  630. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  631. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  632. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  633. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  634. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  635. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  636. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  637. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  638. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  639. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  640. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  641. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  642. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  643. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  644. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  645. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  646. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  647. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  648. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  649. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  650. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  651. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  652. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  653. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  654. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  655. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  656. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  657. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  658. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  659. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  660. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  661. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  662. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  663. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  664. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  665. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  666. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  667. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  668. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  669. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  670. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  671. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  672. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  673. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  674. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  675. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  676. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  677. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  678. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  679. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  680. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  681. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  682. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  683. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  684. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  685. package/tokens/native/CSModes.kt +233 -233
  686. package/tokens/native/CSModes.swift +233 -233
  687. package/tokens/native/CSTokens.kt +11 -11
  688. package/tokens/native/CSTokens.swift +11 -11
  689. package/tokens/native/cs_modes.dart +233 -233
  690. package/tokens/native/cs_tokens.dart +11 -11
  691. package/tokens/native/mode-provenance.json +11 -11
  692. package/tokens/provenance.json +6 -6
  693. package/tokens/theme-attributes.css +40 -40
  694. package/tokens/tokens.dtcg.json +187 -130
  695. package/tokens/tokens.js +87 -87
  696. package/tokens/tokens.json +86 -86
  697. package/tokens/typography.css +6 -6
  698. package/tokens/variables.css +131 -131
  699. package/tokens/viewer.html +15 -11
  700. package/ui_kits/deck/index.html +4 -2
  701. package/ui_kits/status-hub/StatusHub.jsx +7 -7
  702. package/ui_kits/status-hub/data.js +3 -3
  703. package/ui_kits/status-hub/index.html +1 -0
  704. package/ui_kits/status-hub/login.html +8 -6
  705. package/ui_kits/status-hub/project.html +7 -6
  706. package/ui_kits/status-hub/settings.html +9 -8
  707. package/ui_kits/status-hub/status.css +10 -8
  708. package/ui_kits/website/Website.jsx +3 -3
  709. package/ui_kits/website/careers.html +24 -7
  710. package/ui_kits/website/chat.html +5 -2
  711. package/ui_kits/website/index.html +1 -0
  712. package/ui_kits/website/site.css +30 -6
  713. package/ui_kits/website/work.html +12 -7
  714. package/components/_utils/use-viewport-panel.js +0 -30
  715. package/dist/esm/chunks/chunk-CH4W6RCG.mjs.map +0 -7
  716. package/dist/esm/chunks/chunk-F3M5TQ76.mjs.map +0 -7
  717. package/dist/esm/chunks/chunk-GWBINWTF.mjs.map +0 -7
  718. package/dist/esm/chunks/chunk-IH4I7JSB.mjs.map +0 -7
  719. package/dist/esm/chunks/chunk-JN57OITY.mjs.map +0 -7
  720. package/dist/esm/chunks/chunk-UFE32JPH.mjs.map +0 -7
  721. /package/dist/esm/chunks/{chunk-FEUTSZBN.mjs.map → chunk-2CCVFTPL.mjs.map} +0 -0
  722. /package/dist/esm/chunks/{chunk-W5VR7GTL.mjs.map → chunk-2VVGZEOQ.mjs.map} +0 -0
  723. /package/dist/esm/chunks/{chunk-3RC4CDAE.mjs.map → chunk-3R5WJQCB.mjs.map} +0 -0
  724. /package/dist/esm/chunks/{chunk-W6N22NMF.mjs.map → chunk-4FGB6VHN.mjs.map} +0 -0
  725. /package/dist/esm/chunks/{chunk-YZR3C7V2.mjs.map → chunk-4TO35YGK.mjs.map} +0 -0
  726. /package/dist/esm/chunks/{chunk-JSAPFO73.mjs.map → chunk-4YWKKULF.mjs.map} +0 -0
  727. /package/dist/esm/chunks/{chunk-W2RF4NWB.mjs.map → chunk-5FQGNCKS.mjs.map} +0 -0
  728. /package/dist/esm/chunks/{chunk-SYCXNMYP.mjs.map → chunk-6ECKJ6RS.mjs.map} +0 -0
  729. /package/dist/esm/chunks/{chunk-72AUOI37.mjs.map → chunk-6TZDNLHE.mjs.map} +0 -0
  730. /package/dist/esm/chunks/{chunk-QGCPHFSI.mjs.map → chunk-72STPBL4.mjs.map} +0 -0
  731. /package/dist/esm/chunks/{chunk-37AN57S5.mjs.map → chunk-7GSR2NGL.mjs.map} +0 -0
  732. /package/dist/esm/chunks/{chunk-A3PGQW3X.mjs.map → chunk-AA5BSO3T.mjs.map} +0 -0
  733. /package/dist/esm/chunks/{chunk-NH6M42ZI.mjs.map → chunk-ASGO2FW5.mjs.map} +0 -0
  734. /package/dist/esm/chunks/{chunk-GP5ITSCH.mjs.map → chunk-C3NAMBA7.mjs.map} +0 -0
  735. /package/dist/esm/chunks/{chunk-YA7Y7PEC.mjs.map → chunk-CKBL3UEA.mjs.map} +0 -0
  736. /package/dist/esm/chunks/{chunk-H7EJ7TNP.mjs.map → chunk-CYZ22MB7.mjs.map} +0 -0
  737. /package/dist/esm/chunks/{chunk-JRIWHAWW.mjs.map → chunk-D7A4ZCMJ.mjs.map} +0 -0
  738. /package/dist/esm/chunks/{chunk-A7RWM4XH.mjs.map → chunk-DANUZS4S.mjs.map} +0 -0
  739. /package/dist/esm/chunks/{chunk-FAVSLU7E.mjs.map → chunk-DFBKBVSE.mjs.map} +0 -0
  740. /package/dist/esm/chunks/{chunk-TNHQB6CI.mjs.map → chunk-DW4AWLA5.mjs.map} +0 -0
  741. /package/dist/esm/chunks/{chunk-5R5KMLUR.mjs.map → chunk-DWJIX65T.mjs.map} +0 -0
  742. /package/dist/esm/chunks/{chunk-YJNSQ5PJ.mjs.map → chunk-EITZT2U5.mjs.map} +0 -0
  743. /package/dist/esm/chunks/{chunk-CSJHR2W2.mjs.map → chunk-EOCMQT4L.mjs.map} +0 -0
  744. /package/dist/esm/chunks/{chunk-4QBKN42N.mjs.map → chunk-EXOOST5G.mjs.map} +0 -0
  745. /package/dist/esm/chunks/{chunk-7HTAAMIY.mjs.map → chunk-FF5D53IP.mjs.map} +0 -0
  746. /package/dist/esm/chunks/{chunk-JNK7QN24.mjs.map → chunk-FOEJO2YQ.mjs.map} +0 -0
  747. /package/dist/esm/chunks/{chunk-HYQG5XND.mjs.map → chunk-GLPQBE2J.mjs.map} +0 -0
  748. /package/dist/esm/chunks/{chunk-HUW6OY7C.mjs.map → chunk-GNEVR5Q4.mjs.map} +0 -0
  749. /package/dist/esm/chunks/{chunk-SEYKDGXE.mjs.map → chunk-H4TKHAB3.mjs.map} +0 -0
  750. /package/dist/esm/chunks/{chunk-OR5UTKW7.mjs.map → chunk-I3H7EAH5.mjs.map} +0 -0
  751. /package/dist/esm/chunks/{chunk-P64YS5W2.mjs.map → chunk-I3PQVFX5.mjs.map} +0 -0
  752. /package/dist/esm/chunks/{chunk-5MR3C2QG.mjs.map → chunk-IOEWPBAL.mjs.map} +0 -0
  753. /package/dist/esm/chunks/{chunk-TN2MZXGS.mjs.map → chunk-JIHWIDMP.mjs.map} +0 -0
  754. /package/dist/esm/chunks/{chunk-YX62AV33.mjs.map → chunk-KAOUK33L.mjs.map} +0 -0
  755. /package/dist/esm/chunks/{chunk-UVJ5BBQG.mjs.map → chunk-KWPNHP73.mjs.map} +0 -0
  756. /package/dist/esm/chunks/{chunk-BABSYWVB.mjs.map → chunk-LCC4ZVVO.mjs.map} +0 -0
  757. /package/dist/esm/chunks/{chunk-HVF4NT6P.mjs.map → chunk-MRXEJSQQ.mjs.map} +0 -0
  758. /package/dist/esm/chunks/{chunk-DIIXA7WD.mjs.map → chunk-NZKMM4FK.mjs.map} +0 -0
  759. /package/dist/esm/chunks/{chunk-CLWTVJM3.mjs.map → chunk-OEWAQZYE.mjs.map} +0 -0
  760. /package/dist/esm/chunks/{chunk-OOZKMXYB.mjs.map → chunk-PBP2MKZH.mjs.map} +0 -0
  761. /package/dist/esm/chunks/{chunk-JKKJHQVQ.mjs.map → chunk-PE6KC2U7.mjs.map} +0 -0
  762. /package/dist/esm/chunks/{chunk-N5TM7UIY.mjs.map → chunk-PFTKXY5Q.mjs.map} +0 -0
  763. /package/dist/esm/chunks/{chunk-R7QVE2JP.mjs.map → chunk-PLN3ITUB.mjs.map} +0 -0
  764. /package/dist/esm/chunks/{chunk-NEMFYL4X.mjs.map → chunk-QBPDNM7S.mjs.map} +0 -0
  765. /package/dist/esm/chunks/{chunk-JDI3UMJW.mjs.map → chunk-SIMVM4RV.mjs.map} +0 -0
  766. /package/dist/esm/chunks/{chunk-WJF2Q2Y3.mjs.map → chunk-TMXLSCAG.mjs.map} +0 -0
  767. /package/dist/esm/chunks/{chunk-TGYG7JP4.mjs.map → chunk-TNQXCIBM.mjs.map} +0 -0
  768. /package/dist/esm/chunks/{chunk-DHTD5KM5.mjs.map → chunk-TWCJMLGG.mjs.map} +0 -0
  769. /package/dist/esm/chunks/{chunk-EPFDMHPK.mjs.map → chunk-U7RKPGRO.mjs.map} +0 -0
  770. /package/dist/esm/chunks/{chunk-NMIGE2IM.mjs.map → chunk-UWNMGKAN.mjs.map} +0 -0
  771. /package/dist/esm/chunks/{chunk-KXFGO7N4.mjs.map → chunk-VAPKJRQI.mjs.map} +0 -0
  772. /package/dist/esm/chunks/{chunk-XTBN55D3.mjs.map → chunk-VUCJT2QJ.mjs.map} +0 -0
  773. /package/dist/esm/chunks/{chunk-TVTBVHT2.mjs.map → chunk-WLANQTOU.mjs.map} +0 -0
  774. /package/dist/esm/chunks/{chunk-3MCNCG2L.mjs.map → chunk-XZ5NWMO7.mjs.map} +0 -0
  775. /package/dist/esm/chunks/{chunk-QPXQZBQC.mjs.map → chunk-YKU2KVAQ.mjs.map} +0 -0
  776. /package/dist/esm/chunks/{chunk-ZKFOGW4D.mjs.map → chunk-YLSFKG64.mjs.map} +0 -0
  777. /package/dist/esm/chunks/{chunk-TO2T6EEB.mjs.map → chunk-YVSAUCWW.mjs.map} +0 -0
  778. /package/dist/esm/chunks/{chunk-XN74VX5H.mjs.map → chunk-ZKBAIIAQ.mjs.map} +0 -0
  779. /package/dist/esm/chunks/{chunk-7IJTTRPK.mjs.map → chunk-ZPLENPV2.mjs.map} +0 -0
package/docs/vi/ci-cd.md CHANGED
@@ -18,7 +18,7 @@
18
18
  5. **`docs-consistency-blocker`** — merge blocker `docs-consistency` + `bilingual-parity`.
19
19
  6. **`whole-set-audits`** — quyết định B của owner: mọi push/PR, cộng nightly `0 3 * * *` và `workflow_dispatch` (responsive + language + theme overflow, ~15–20 phút).
20
20
  7. **`figma-variables-push`** — trên push `main` + thủ công. **`FIGMA_TOKEN` / `FIGMA_FILE_KEY` trống → soft-skip** (exit 0 + report). Quyết định A giữ tích hợp này ở trạng thái tùy chọn. Khi có thông tin xác thực, chỉ phản hồi giới hạn truy cập Variables và API không khả dụng đã mô tả trong `docs/figma.md` mới được soft-skip. Lỗi scope khi kiểm tra file, lỗi quyền ghi thông thường và dữ liệu token local không hợp lệ vẫn là lỗi cứng. Soft-skip không chứng minh đã đồng bộ Variables live.
21
- 8. **`pixel-diff`** — so sánh ảnh chụp màn hình Playwright Chromium (`_audit/ci/pixel-diff.mjs`) với 15 baseline chọn lọc trong `_audit/baselines/*.png`; upload `pixel-baselines-linux` và `_audit/ci/pixel-diff-report.json`.
21
+ 8. **`pixel-diff`** — so sánh ảnh chụp màn hình Playwright Chromium (`_audit/ci/pixel-diff.mjs`) với 16 baseline chọn lọc trong `_audit/baselines/*.png`; upload `pixel-baselines-linux` và `_audit/ci/pixel-diff-report.json`.
22
22
  9. **`regenerate-tokens`** (pull request) + **`regenerate-tokens-push`** (push `main` / schedule / thủ công) — path filter phủ element seeds/packs (`element-seeds.json`, `elements.css`, mirror JSON/JS/DTCG, `generate-element-packs.mjs`) cộng natives / `VERSION`. Regenerate chạy `npm run tokens:generate`, gồm toàn bộ export token, bản sao native và output/catalog phụ thuộc. Trên **pull request** job chạy với `contents: read`, không bao giờ push, và **exit 1** khi có drift: chạy pipeline này ở local rồi chuẩn bị diff đã review (freshness bắt buộc trên PR). Chỉ job song sinh push/schedule/thủ công giữ `contents: write` và có thể auto-commit với `PUSH_TOKEN` (hoặc `github.token`). Auto-commit **không** dùng `[skip ci]` — tip được push phải chạy lại bảng gate (FIND-021 / TASK-IMP-008); lần chạy thứ hai deterministic là no-op.
23
23
  10. **`npm-hello-smoke`** — chứng minh consumer registry cho `@cyberskill/design@$VERSION` (**fail-closed**, FIND-087): `examples/npm-hello` → `npm install` từ registry + `npm run smoke`. Nếu VERSION **không** có trên registry, job **fail** (không soft-skip pack proof trên `cyberskill-official/design`). Fork chỉ được opt-in pack local khi đặt biến repo **`NPM_HELLO_ALLOW_LOCAL_PACK=true`**. Path-filtered trên push/PR khi `examples/npm-hello/**`, bề mặt publish package, hoặc workflow này đổi; luôn chạy trên schedule / `workflow_dispatch`.
24
24
  11. **`notify-schedule-failure`** — phát error annotation và exit 1 khi lượt chạy lịch trình hàng đêm bị lỗi; job không tạo hoặc cập nhật issue.
@@ -18,7 +18,7 @@ Hợp đồng công khai cho export được chọn là bộ ba `.d.ts`, `.jsx`,
18
18
 
19
19
  Với component khai báo `value`, `defaultValue`, `onChange`, `value` là state controlled, `defaultValue` khởi tạo state local, `onChange` báo thay đổi. Đối số callback theo khai báo từng component: có thể là scalar, collection hoặc event. Không thay DOM event native cho callback khai báo trả giá trị. Không chuyển quyền quản lý controlled/local trong một lần mount. [Consuming](consuming.md) mô tả ngoại lệ hiện tại và tích hợp form.
20
20
 
21
- API open-state khác nhau: một số overlay yêu cầu `open` và dùng `onClose`; số khác khai báo `open`, `defaultOpen`, `onOpenChange`. `onDismiss`, `onClose`, `onOpenChange` là hợp đồng riêng. Callback form được await chấp nhận kiểu trả về bất đồng bộ đã khai báo. Dùng khai báo của export được chọn thay vì giả định mọi component hỗ trợ bộ ba ownership.
21
+ Callback open-state dùng chung `onOpenChange(open)`. Dialog, Drawer, Tour, CommandPalette, Toast và Alert nhận callback này. `onClose` vẫn là alias không tham số được hỗ trợ và vẫn chạy sau `onOpenChange(false)`. `onDismiss` của Alert vẫn là handler click được hỗ trợ và vẫn chạy sau hai callback kia. Callback form được await chấp nhận kiểu trả về bất đồng bộ đã khai báo. Dùng khai báo của export được chọn thay vì giả định mọi component hỗ trợ bộ ba ownership.
22
22
 
23
23
  ## Composition, ref và attribute native
24
24
 
@@ -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.0.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 và inventory sibling bên dưới chỉ bản ổn định 1.7.2 đã công bố, 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.1.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 và inventory sibling bên dưới chỉ bản ổn định 1.7.2 đã công bố, 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.0.0.
3
+ Tạo · quét tại VERSION 2.1.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.0.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.1.0<!-- /cs-source-version -->**.
83
83
 
84
84
  ## Decision log (owner duyệt)
85
85
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Thẻ JSX, thuộc tính, phép trải, phím literal và biểu thức tham chiếu tham số giữ vị trí chính xác trong nguồn. Phép trải ghi đích/thứ tự ghi đè chưa xác minh; biểu thức là ứng viên slot, không phải slot được chấp nhận. Class hook giữ scope tệp hiện có. Định nghĩa prop chuẩn được tham chiếu thay vì sao chép thành hệ kiểu thứ hai. Khai báo native tồn tại vẫn không chứng minh có forwarding.
6
6
 
7
- `scripts/component-semantics-source.json` quản lý 614 nhóm ngữ nghĩa đã rà soát có giới hạn, gồm cấu trúc và ví dụ thuộc quyền sở hữu cho đủ 120 component, cùng 122 yêu cầu hành vi trên 81 component sau lượt sửa quy tắc mở rộng. Yêu cầu ánh xạ tới khẳng định có tên đã rà soát chính xác. 106 nhóm chưa xác minh và mọi prop do tác giả khai báo vẫn được liệt kê để đặc tả tiếp. Việc có constructor trong ca có tên chỉ là tham chiếu fixture, không bao giờ đủ chứng minh bao phủ. Đặc tả hành vi và trợ năng đầy đủ vẫn là công việc kỹ thuật còn mở.
7
+ `scripts/component-semantics-source.json` quản lý một dữ kiện đã rà soát có giới hạn trong từng nhóm trong sáu nhóm ngữ nghĩa cho đủ 120 component, cùng 161 yêu cầu hành vi trên đủ 120 component. 39 export trước đây không có yêu cầu, mỗi export nay ánh xạ một ca cổng trợ năng có tên. Yêu cầu ánh xạ tới khẳng định có tên chính xác. Mọi prop do tác giả khai báo vẫn được liệt kê vì một dữ kiện nhóm không phải hợp đồng theo từng prop. Việc có constructor trong ca có tên chỉ là tham chiếu fixture, không bao giờ đủ chứng minh bao phủ. `completeBehaviorSpecifications` đếm export đã rà soát cấu trúc, slot và ví dụ và có khẳng định trên board hành vi. `completeAccessibilitySpecifications` đếm export đã rà soát vai trò, trạng thái và bàn phím và có khẳng định trên cổng trợ năng. Hai số này không phải ma trận prop đầy đủ hay nghiệm thu trợ năng thủ công.
8
8
 
9
9
  Ghi thực thi thật bằng `node scripts/capture-component-behavior-evidence.mjs .`, rồi `node scripts/verify-component-behavior-evidence.mjs .`. Capture chạy mọi ca hành vi và board trợ năng có tên trong Chromium, Firefox, WebKit, cộng hồi quy field-association ba engine hiện có. Verifier yêu cầu khớp chính xác nguồn, bundle, CSS, kiểm thử, vị trí assertion, tập ca và tập engine. Nó từ chối producer cũ, ca lỗi/thiếu và engine trùng. Đầu ra đạt chỉ xác minh các yêu cầu được ánh xạ trên đúng producer đã ghi. Không thay thế gate board đầy đủ, trợ năng thủ công hay nghiệm thu release.
10
10
 
@@ -1,6 +1,6 @@
1
1
  # Tương thích tên token theo cách bổ sung
2
2
 
3
- Giữ nguyên 22 tên CSS camelCase đã công bố và giá trị hiện có. Tên kebab-case mới là bí danh đọc một chiều, ví dụ `--cs-component-button-md-padding-x: var(--cs-component-button-md-paddingX)`. Các phạm vi mật độ khai báo lại bí danh cạnh giá trị cũ để compact, comfortable và phạm vi lồng nhau nhất quán. Nếu ứng dụng ghi đè tên cũ trên phần tử con tùy ý không có thuộc tính phạm vi, phải khai báo lại bí danh tại đó khi sử dụng bí danh. Cơ chế kế thừa biến CSS không tạo liên kết hai chiều trực tiếp. Tên cũ vẫn là đầu vào ghi đè trong đợt tương thích này.
3
+ 22 tên kebab-case sở hữu giá trị cụ thể, ví dụ `--cs-component-button-md-padding-x: 20px`. Tên camelCase đã công bố đọc tên đó, ví dụ `--cs-component-button-md-paddingX: var(--cs-component-button-md-padding-x)`. Ghi đè tên kebab cập nhật cả hai cách viết. Ghi đè riêng tên camelCase chỉ che cách viết đó và không đổi giá trị kebab. Phạm vi mật độ đặt literal kebab và trỏ tên camelCase vào đó, nên compact, comfortable và phạm vi lồng nhau vẫn nhất quán. Định danh native không đổi: hằng camelCase giữ tên cũ, hằng kebab giữ hậu tố `Alias` với cùng số.
4
4
 
5
5
  `tokens/base-inventory.json` khai báo từng bí danh và kiểu. Extension `com.cyberskill.nativeAliasOf` cùng `nativeName` phân biệt hằng native mới như `componentButtonMdPaddingXAlias` với tên hiện có. Hai tên có cùng giá trị số đã phân giải; mọi dòng hằng Swift, Kotlin và Dart hiện có giữ nguyên. Tên chưa được duyệt hoặc trùng nhau làm bộ sinh thất bại trước khi ghi đầu ra. DTCG dùng tham chiếu nội bộ tài liệu theo chuẩn và giữ ánh xạ tương thích trong metadata có namespace.
6
6
 
@@ -44,7 +44,7 @@ Không invent trục sản phẩm thứ năm, và không thêm Style pack thứ
44
44
 
45
45
  ## Công tắc theme nội bộ
46
46
 
47
- Bộ phân giải theme chuẩn được `scripts/generate-element-packs.mjs` sinh vào `tokens/elements.css`. Hai custom property riêng tư `--_cs-light` và `--_cs-dark` chọn một nhánh trong khai báo như `color: var(--_cs-light, var(--cs-color-brand-umber)) var(--_cs-dark, var(--cs-color-brand-ochre));`. Công tắc có giá trị `initial` làm `var()` dùng fallback; công tắc rỗng không đóng góp giá trị. Theme sáng đặt công tắc sáng thành `initial` và công tắc tối rỗng; theme tối đảo ngược. `data-theme="system"` khai báo tường minh theo `prefers-color-scheme`.
47
+ Bộ phân giải theme chuẩn được `scripts/generate-element-packs.mjs` sinh vào `tokens/elements.css`. Hai custom property riêng tư `--_cs-light` và `--_cs-dark` chọn một nhánh trong khai báo như `color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre));`. Hai phép thế được nối liền, không có khoảng trắng trong stylesheet: khoảng trắng còn lại khi kênh không dùng là rỗng và khiến `background` cùng `border-color` giữ màu đã dùng trước đó. Công tắc có giá trị `initial` làm `var()` dùng fallback; công tắc rỗng không đóng góp giá trị. Theme sáng đặt công tắc sáng thành `initial` và công tắc tối rỗng; theme tối đảo ngược. `data-theme="system"` khai báo tường minh theo `prefers-color-scheme`.
48
48
 
49
49
  Consumer chọn `data-theme="light|dark|system"` và dùng token công khai `--cs-*`. Không đặt trực tiếp công tắc riêng tư, sao chép khối phân giải được sinh, hoặc đăng ký các công tắc này bằng `@property`: hành vi giá trị rỗng/không hợp lệ là một phần của bộ phân giải nội bộ. Binding được lặp tại ranh giới scope để thay đổi element và theme lồng nhau tính lại giá trị, thay vì kế thừa giá trị đã chọn của cha. Hậu duệ không đánh dấu kế thừa scope bao quanh.
50
50
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "CyberSkill Design System"
3
- version: "2.0.0"
3
+ version: "2.1.0"
4
4
  generated: "2026-07-23"
5
5
  generator: "scripts/generate-design-md.mjs (npm run build:design-md)"
6
6
  sources:
@@ -101,9 +101,9 @@ Các họ chữ được tự lưu trữ (Be Vietnam Pro · Space Grotesk · Jet
101
101
  | `--cs-font-weight-semibold` | `600` |
102
102
  | `--cs-font-weight-bold` | `700` |
103
103
  | `--cs-font-weight-extrabold` | `800` |
104
- | `--cs-font-lineHeight-body` | `1.5` |
105
- | `--cs-font-lineHeight-heading` | `1.35` |
106
- | `--cs-font-lineHeight-tight` | `1.15` |
104
+ | `--cs-font-lineHeight-body` | `var(--cs-font-line-height-body)` |
105
+ | `--cs-font-lineHeight-heading` | `var(--cs-font-line-height-heading)` |
106
+ | `--cs-font-lineHeight-tight` | `var(--cs-font-line-height-tight)` |
107
107
  | `--cs-font-size-2xs` | `0.6875rem` |
108
108
  | `--cs-font-size-xs` | `0.75rem` |
109
109
  | `--cs-font-size-sm` | `0.875rem` |
@@ -115,9 +115,9 @@ Các họ chữ được tự lưu trữ (Be Vietnam Pro · Space Grotesk · Jet
115
115
  | `--cs-font-size-3xl` | `2.25rem` |
116
116
  | `--cs-font-size-4xl` | `3rem` |
117
117
  | `--cs-font-size-5xl` | `3.75rem` |
118
- | `--cs-font-line-height-body` | `var(--cs-font-lineHeight-body)` |
119
- | `--cs-font-line-height-heading` | `var(--cs-font-lineHeight-heading)` |
120
- | `--cs-font-line-height-tight` | `var(--cs-font-lineHeight-tight)` |
118
+ | `--cs-font-line-height-body` | `1.5` |
119
+ | `--cs-font-line-height-heading` | `1.35` |
120
+ | `--cs-font-line-height-tight` | `1.15` |
121
121
 
122
122
  ### Vai trò chữ và khoảng cách ký tự
123
123
 
@@ -201,26 +201,26 @@ Các giá trị ghi đè theo phạm vi (tách biệt với các hàng token cơ
201
201
  | `data-cs-density="compact"` | `--cs-density-space-6` | `18px` |
202
202
  | `data-cs-density="compact"` | `--cs-density-control-gap` | `6px` |
203
203
  | `data-cs-density="compact"` | `--cs-component-button-gap` | `6px` |
204
- | `data-cs-density="compact"` | `--cs-component-button-xs-paddingY` | `3px` |
205
- | `data-cs-density="compact"` | `--cs-component-button-xs-padding-y` | `var(--cs-component-button-xs-paddingY)` |
206
- | `data-cs-density="compact"` | `--cs-component-button-xs-paddingX` | `8px` |
207
- | `data-cs-density="compact"` | `--cs-component-button-xs-padding-x` | `var(--cs-component-button-xs-paddingX)` |
208
- | `data-cs-density="compact"` | `--cs-component-button-sm-paddingY` | `6px` |
209
- | `data-cs-density="compact"` | `--cs-component-button-sm-padding-y` | `var(--cs-component-button-sm-paddingY)` |
210
- | `data-cs-density="compact"` | `--cs-component-button-sm-paddingX` | `12px` |
211
- | `data-cs-density="compact"` | `--cs-component-button-sm-padding-x` | `var(--cs-component-button-sm-paddingX)` |
212
- | `data-cs-density="compact"` | `--cs-component-button-md-paddingY` | `10px` |
213
- | `data-cs-density="compact"` | `--cs-component-button-md-padding-y` | `var(--cs-component-button-md-paddingY)` |
214
- | `data-cs-density="compact"` | `--cs-component-button-md-paddingX` | `16px` |
215
- | `data-cs-density="compact"` | `--cs-component-button-md-padding-x` | `var(--cs-component-button-md-paddingX)` |
216
- | `data-cs-density="compact"` | `--cs-component-button-lg-paddingY` | `12px` |
217
- | `data-cs-density="compact"` | `--cs-component-button-lg-padding-y` | `var(--cs-component-button-lg-paddingY)` |
218
- | `data-cs-density="compact"` | `--cs-component-button-lg-paddingX` | `22px` |
219
- | `data-cs-density="compact"` | `--cs-component-button-lg-padding-x` | `var(--cs-component-button-lg-paddingX)` |
220
- | `data-cs-density="compact"` | `--cs-component-textfield-paddingY` | `8px` |
221
- | `data-cs-density="compact"` | `--cs-component-textfield-padding-y` | `var(--cs-component-textfield-paddingY)` |
222
- | `data-cs-density="compact"` | `--cs-component-textfield-paddingX` | `10px` |
223
- | `data-cs-density="compact"` | `--cs-component-textfield-padding-x` | `var(--cs-component-textfield-paddingX)` |
204
+ | `data-cs-density="compact"` | `--cs-component-button-xs-paddingY` | `var(--cs-component-button-xs-padding-y)` |
205
+ | `data-cs-density="compact"` | `--cs-component-button-xs-padding-y` | `3px` |
206
+ | `data-cs-density="compact"` | `--cs-component-button-xs-paddingX` | `var(--cs-component-button-xs-padding-x)` |
207
+ | `data-cs-density="compact"` | `--cs-component-button-xs-padding-x` | `8px` |
208
+ | `data-cs-density="compact"` | `--cs-component-button-sm-paddingY` | `var(--cs-component-button-sm-padding-y)` |
209
+ | `data-cs-density="compact"` | `--cs-component-button-sm-padding-y` | `6px` |
210
+ | `data-cs-density="compact"` | `--cs-component-button-sm-paddingX` | `var(--cs-component-button-sm-padding-x)` |
211
+ | `data-cs-density="compact"` | `--cs-component-button-sm-padding-x` | `12px` |
212
+ | `data-cs-density="compact"` | `--cs-component-button-md-paddingY` | `var(--cs-component-button-md-padding-y)` |
213
+ | `data-cs-density="compact"` | `--cs-component-button-md-padding-y` | `10px` |
214
+ | `data-cs-density="compact"` | `--cs-component-button-md-paddingX` | `var(--cs-component-button-md-padding-x)` |
215
+ | `data-cs-density="compact"` | `--cs-component-button-md-padding-x` | `16px` |
216
+ | `data-cs-density="compact"` | `--cs-component-button-lg-paddingY` | `var(--cs-component-button-lg-padding-y)` |
217
+ | `data-cs-density="compact"` | `--cs-component-button-lg-padding-y` | `12px` |
218
+ | `data-cs-density="compact"` | `--cs-component-button-lg-paddingX` | `var(--cs-component-button-lg-padding-x)` |
219
+ | `data-cs-density="compact"` | `--cs-component-button-lg-padding-x` | `22px` |
220
+ | `data-cs-density="compact"` | `--cs-component-textfield-paddingY` | `var(--cs-component-textfield-padding-y)` |
221
+ | `data-cs-density="compact"` | `--cs-component-textfield-padding-y` | `8px` |
222
+ | `data-cs-density="compact"` | `--cs-component-textfield-paddingX` | `var(--cs-component-textfield-padding-x)` |
223
+ | `data-cs-density="compact"` | `--cs-component-textfield-padding-x` | `10px` |
224
224
  | `data-cs-density="comfortable"` | `--cs-density-space-1` | `var(--cs-space-1)` |
225
225
  | `data-cs-density="comfortable"` | `--cs-density-space-2` | `var(--cs-space-2)` |
226
226
  | `data-cs-density="comfortable"` | `--cs-density-space-3` | `var(--cs-space-3)` |
@@ -229,26 +229,26 @@ Các giá trị ghi đè theo phạm vi (tách biệt với các hàng token cơ
229
229
  | `data-cs-density="comfortable"` | `--cs-density-space-6` | `var(--cs-space-6)` |
230
230
  | `data-cs-density="comfortable"` | `--cs-density-control-gap` | `var(--cs-component-button-gap)` |
231
231
  | `data-cs-density="comfortable"` | `--cs-component-button-gap` | `8px` |
232
- | `data-cs-density="comfortable"` | `--cs-component-button-xs-paddingY` | `4px` |
233
- | `data-cs-density="comfortable"` | `--cs-component-button-xs-padding-y` | `var(--cs-component-button-xs-paddingY)` |
234
- | `data-cs-density="comfortable"` | `--cs-component-button-xs-paddingX` | `10px` |
235
- | `data-cs-density="comfortable"` | `--cs-component-button-xs-padding-x` | `var(--cs-component-button-xs-paddingX)` |
236
- | `data-cs-density="comfortable"` | `--cs-component-button-sm-paddingY` | `8px` |
237
- | `data-cs-density="comfortable"` | `--cs-component-button-sm-padding-y` | `var(--cs-component-button-sm-paddingY)` |
238
- | `data-cs-density="comfortable"` | `--cs-component-button-sm-paddingX` | `14px` |
239
- | `data-cs-density="comfortable"` | `--cs-component-button-sm-padding-x` | `var(--cs-component-button-sm-paddingX)` |
240
- | `data-cs-density="comfortable"` | `--cs-component-button-md-paddingY` | `12px` |
241
- | `data-cs-density="comfortable"` | `--cs-component-button-md-padding-y` | `var(--cs-component-button-md-paddingY)` |
242
- | `data-cs-density="comfortable"` | `--cs-component-button-md-paddingX` | `20px` |
243
- | `data-cs-density="comfortable"` | `--cs-component-button-md-padding-x` | `var(--cs-component-button-md-paddingX)` |
244
- | `data-cs-density="comfortable"` | `--cs-component-button-lg-paddingY` | `16px` |
245
- | `data-cs-density="comfortable"` | `--cs-component-button-lg-padding-y` | `var(--cs-component-button-lg-paddingY)` |
246
- | `data-cs-density="comfortable"` | `--cs-component-button-lg-paddingX` | `28px` |
247
- | `data-cs-density="comfortable"` | `--cs-component-button-lg-padding-x` | `var(--cs-component-button-lg-paddingX)` |
248
- | `data-cs-density="comfortable"` | `--cs-component-textfield-paddingY` | `10px` |
249
- | `data-cs-density="comfortable"` | `--cs-component-textfield-padding-y` | `var(--cs-component-textfield-paddingY)` |
250
- | `data-cs-density="comfortable"` | `--cs-component-textfield-paddingX` | `12px` |
251
- | `data-cs-density="comfortable"` | `--cs-component-textfield-padding-x` | `var(--cs-component-textfield-paddingX)` |
232
+ | `data-cs-density="comfortable"` | `--cs-component-button-xs-padding-y` | `4px` |
233
+ | `data-cs-density="comfortable"` | `--cs-component-button-xs-paddingY` | `var(--cs-component-button-xs-padding-y)` |
234
+ | `data-cs-density="comfortable"` | `--cs-component-button-xs-padding-x` | `10px` |
235
+ | `data-cs-density="comfortable"` | `--cs-component-button-xs-paddingX` | `var(--cs-component-button-xs-padding-x)` |
236
+ | `data-cs-density="comfortable"` | `--cs-component-button-sm-padding-y` | `8px` |
237
+ | `data-cs-density="comfortable"` | `--cs-component-button-sm-paddingY` | `var(--cs-component-button-sm-padding-y)` |
238
+ | `data-cs-density="comfortable"` | `--cs-component-button-sm-padding-x` | `14px` |
239
+ | `data-cs-density="comfortable"` | `--cs-component-button-sm-paddingX` | `var(--cs-component-button-sm-padding-x)` |
240
+ | `data-cs-density="comfortable"` | `--cs-component-button-md-padding-y` | `12px` |
241
+ | `data-cs-density="comfortable"` | `--cs-component-button-md-paddingY` | `var(--cs-component-button-md-padding-y)` |
242
+ | `data-cs-density="comfortable"` | `--cs-component-button-md-padding-x` | `20px` |
243
+ | `data-cs-density="comfortable"` | `--cs-component-button-md-paddingX` | `var(--cs-component-button-md-padding-x)` |
244
+ | `data-cs-density="comfortable"` | `--cs-component-button-lg-padding-y` | `16px` |
245
+ | `data-cs-density="comfortable"` | `--cs-component-button-lg-paddingY` | `var(--cs-component-button-lg-padding-y)` |
246
+ | `data-cs-density="comfortable"` | `--cs-component-button-lg-padding-x` | `28px` |
247
+ | `data-cs-density="comfortable"` | `--cs-component-button-lg-paddingX` | `var(--cs-component-button-lg-padding-x)` |
248
+ | `data-cs-density="comfortable"` | `--cs-component-textfield-padding-y` | `10px` |
249
+ | `data-cs-density="comfortable"` | `--cs-component-textfield-paddingY` | `var(--cs-component-textfield-padding-y)` |
250
+ | `data-cs-density="comfortable"` | `--cs-component-textfield-padding-x` | `12px` |
251
+ | `data-cs-density="comfortable"` | `--cs-component-textfield-paddingX` | `var(--cs-component-textfield-padding-x)` |
252
252
 
253
253
  ### Bố cục và biểu tượng
254
254
 
@@ -331,46 +331,46 @@ Quyết định thiết kế ở cấp thành phần (button · textfield). Giá
331
331
  | `--cs-component-button-primary-fg` | `#FFFFFF` | `#1a1108` |
332
332
  | `--cs-component-button-gap` | `8px` | — |
333
333
  | `--cs-component-button-radius` | `8px` | — |
334
- | `--cs-component-button-xs-paddingY` | `4px` | — |
335
- | `--cs-component-button-xs-paddingX` | `10px` | — |
336
- | `--cs-component-button-xs-minHeight` | `28px` | — |
337
- | `--cs-component-button-xs-minWidth` | `28px` | — |
338
- | `--cs-component-button-xs-minHeight-coarse` | `44px` | — |
339
- | `--cs-component-button-sm-paddingY` | `8px` | — |
340
- | `--cs-component-button-sm-paddingX` | `14px` | — |
341
- | `--cs-component-button-sm-minHeight` | `36px` | — |
342
- | `--cs-component-button-sm-minHeight-coarse` | `44px` | — |
343
- | `--cs-component-button-md-paddingY` | `12px` | — |
344
- | `--cs-component-button-md-paddingX` | `20px` | — |
345
- | `--cs-component-button-md-minHeight` | `44px` | — |
346
- | `--cs-component-button-md-minHeight-coarse` | `44px` | — |
347
- | `--cs-component-button-lg-paddingY` | `16px` | — |
348
- | `--cs-component-button-lg-paddingX` | `28px` | — |
349
- | `--cs-component-button-lg-minHeight` | `52px` | — |
334
+ | `--cs-component-button-xs-paddingY` | `var(--cs-component-button-xs-padding-y)` | — |
335
+ | `--cs-component-button-xs-paddingX` | `var(--cs-component-button-xs-padding-x)` | — |
336
+ | `--cs-component-button-xs-minHeight` | `var(--cs-component-button-xs-min-height)` | — |
337
+ | `--cs-component-button-xs-minWidth` | `var(--cs-component-button-xs-min-width)` | — |
338
+ | `--cs-component-button-xs-minHeight-coarse` | `var(--cs-component-button-xs-min-height-coarse)` | — |
339
+ | `--cs-component-button-sm-paddingY` | `var(--cs-component-button-sm-padding-y)` | — |
340
+ | `--cs-component-button-sm-paddingX` | `var(--cs-component-button-sm-padding-x)` | — |
341
+ | `--cs-component-button-sm-minHeight` | `var(--cs-component-button-sm-min-height)` | — |
342
+ | `--cs-component-button-sm-minHeight-coarse` | `var(--cs-component-button-sm-min-height-coarse)` | — |
343
+ | `--cs-component-button-md-paddingY` | `var(--cs-component-button-md-padding-y)` | — |
344
+ | `--cs-component-button-md-paddingX` | `var(--cs-component-button-md-padding-x)` | — |
345
+ | `--cs-component-button-md-minHeight` | `var(--cs-component-button-md-min-height)` | — |
346
+ | `--cs-component-button-md-minHeight-coarse` | `var(--cs-component-button-md-min-height-coarse)` | — |
347
+ | `--cs-component-button-lg-paddingY` | `var(--cs-component-button-lg-padding-y)` | — |
348
+ | `--cs-component-button-lg-paddingX` | `var(--cs-component-button-lg-padding-x)` | — |
349
+ | `--cs-component-button-lg-minHeight` | `var(--cs-component-button-lg-min-height)` | — |
350
350
  | `--cs-component-textfield-border-default` | `#BFA58F` | `#5a4636` |
351
- | `--cs-component-textfield-paddingY` | `10px` | — |
352
- | `--cs-component-textfield-paddingX` | `12px` | — |
353
- | `--cs-component-textfield-minHeight` | `44px` | — |
351
+ | `--cs-component-textfield-paddingY` | `var(--cs-component-textfield-padding-y)` | — |
352
+ | `--cs-component-textfield-paddingX` | `var(--cs-component-textfield-padding-x)` | — |
353
+ | `--cs-component-textfield-minHeight` | `var(--cs-component-textfield-min-height)` | — |
354
354
  | `--cs-focus-ring` | `3px` | — |
355
- | `--cs-component-button-xs-padding-y` | `var(--cs-component-button-xs-paddingY)` | — |
356
- | `--cs-component-button-xs-padding-x` | `var(--cs-component-button-xs-paddingX)` | — |
357
- | `--cs-component-button-xs-min-height` | `var(--cs-component-button-xs-minHeight)` | — |
358
- | `--cs-component-button-xs-min-width` | `var(--cs-component-button-xs-minWidth)` | — |
359
- | `--cs-component-button-xs-min-height-coarse` | `var(--cs-component-button-xs-minHeight-coarse)` | — |
360
- | `--cs-component-button-sm-padding-y` | `var(--cs-component-button-sm-paddingY)` | — |
361
- | `--cs-component-button-sm-padding-x` | `var(--cs-component-button-sm-paddingX)` | — |
362
- | `--cs-component-button-sm-min-height` | `var(--cs-component-button-sm-minHeight)` | — |
363
- | `--cs-component-button-sm-min-height-coarse` | `var(--cs-component-button-sm-minHeight-coarse)` | — |
364
- | `--cs-component-button-md-padding-y` | `var(--cs-component-button-md-paddingY)` | — |
365
- | `--cs-component-button-md-padding-x` | `var(--cs-component-button-md-paddingX)` | — |
366
- | `--cs-component-button-md-min-height` | `var(--cs-component-button-md-minHeight)` | — |
367
- | `--cs-component-button-md-min-height-coarse` | `var(--cs-component-button-md-minHeight-coarse)` | — |
368
- | `--cs-component-button-lg-padding-y` | `var(--cs-component-button-lg-paddingY)` | — |
369
- | `--cs-component-button-lg-padding-x` | `var(--cs-component-button-lg-paddingX)` | — |
370
- | `--cs-component-button-lg-min-height` | `var(--cs-component-button-lg-minHeight)` | — |
371
- | `--cs-component-textfield-padding-y` | `var(--cs-component-textfield-paddingY)` | — |
372
- | `--cs-component-textfield-padding-x` | `var(--cs-component-textfield-paddingX)` | — |
373
- | `--cs-component-textfield-min-height` | `var(--cs-component-textfield-minHeight)` | — |
355
+ | `--cs-component-button-xs-padding-y` | `4px` | — |
356
+ | `--cs-component-button-xs-padding-x` | `10px` | — |
357
+ | `--cs-component-button-xs-min-height` | `28px` | — |
358
+ | `--cs-component-button-xs-min-width` | `28px` | — |
359
+ | `--cs-component-button-xs-min-height-coarse` | `44px` | — |
360
+ | `--cs-component-button-sm-padding-y` | `8px` | — |
361
+ | `--cs-component-button-sm-padding-x` | `14px` | — |
362
+ | `--cs-component-button-sm-min-height` | `36px` | — |
363
+ | `--cs-component-button-sm-min-height-coarse` | `44px` | — |
364
+ | `--cs-component-button-md-padding-y` | `12px` | — |
365
+ | `--cs-component-button-md-padding-x` | `20px` | — |
366
+ | `--cs-component-button-md-min-height` | `44px` | — |
367
+ | `--cs-component-button-md-min-height-coarse` | `44px` | — |
368
+ | `--cs-component-button-lg-padding-y` | `16px` | — |
369
+ | `--cs-component-button-lg-padding-x` | `28px` | — |
370
+ | `--cs-component-button-lg-min-height` | `52px` | — |
371
+ | `--cs-component-textfield-padding-y` | `10px` | — |
372
+ | `--cs-component-textfield-padding-x` | `12px` | — |
373
+ | `--cs-component-textfield-min-height` | `44px` | — |
374
374
 
375
375
  ## Danh mục thành phần
376
376
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## Bắt đầu tại đây
8
8
 
9
- Đâ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.0.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`). Đường dẫn cũ `/dashboard`, `/dashboard.html` và `/playground/*` chuyển hướng đến `/`. Hệ thống ấm áp, ưu tiên tiếng Việt, đáp ứng môi trường doanh nghiệp; 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).
9
+ Đâ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.1.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`). Đường dẫn cũ `/dashboard`, `/dashboard.html` và `/playground/*` chuyển hướng đến `/`. Hệ thống ấm áp, ưu tiên tiếng Việt, đáp ứng môi trường doanh nghiệp; 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).
10
10
 
11
11
  **Bắt đầu nhanh theo đối tượng**
12
12
  - **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.
@@ -15,7 +15,7 @@
15
15
 
16
16
  - **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.
17
17
 
18
- - **Người triển khai** — gói npm ổn định đã công bố **`@cyberskill/design@1.7.2`** (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.0.0<!-- /cs-source-version -->**; không có CHANGELOG).
18
+ - **Người triển khai** — gói npm ổn định đã công bố **`@cyberskill/design@1.7.2`** (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.1.0<!-- /cs-source-version -->**; không có CHANGELOG).
19
19
 
20
20
  - **Người bảo trì** — `docs/doctrine.md` (mở rộng + kiểm chứng), rồi `CONTRIBUTING.md` và `docs/quality-gates.md`.
21
21
 
@@ -174,7 +174,7 @@ Tài sản sao chép nằm trong `assets/`: `logo-mark.svg` / `logo-mark.png` (b
174
174
 
175
175
  Đ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, nhóm 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ỉ màu).
176
176
 
177
- **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.0.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.
177
+ **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.1.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.
178
178
 
179
179
  **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 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 để phía dùng có bộ công cụ hoàn chỉnh: `Icon` (bộ icon nét nội bộ thực của trang marketing), các primitive Forms / Feedback / Data / Navigation / Overlays chuẩn (tìm kiếm, bước, slider, tải tệp, danh sách, danh sách mô tả, dòng thời gian, accordion, kbd, khối mã, sidebar, steps, command palette, popover, drawer và hơn nữa), phần AI-native thêm vào (`PromptInput`, `ChatMessage`, `ConfidenceMeter`, `PromptSuggestions`, `TypingIndicator`, `CitationList`) chính thức hóa luồng điều ước Lumi, và linh vật `LumiAvatar`. Không phần nào tạo ngôn ngữ thị giác mới — tất cả dùng lại màu neo, bề mặt, chữ và chuyển động đã định nghĩa.
180
180
 
@@ -15,3 +15,5 @@ Kiểm tra tính toàn vẹn từ chối hàng thiếu/trùng, bản dịch tr
15
15
  Reviewer ghi commit source chính xác, người kiểm tra, ngày, phiên bản OS, browser và công nghệ hỗ trợ, ngôn ngữ/theme/state, chuỗi thao tác, hành vi speech/focus quan sát được và tham chiếu bằng chứng. Chỉ dùng `passed` sau lượt chạy thủ công đó, `failed` khi quan sát lỗi, `blocked` khi thiếu môi trường hoặc scope chưa rõ. Giữ quan sát và bằng chứng lỗi; lượt kiểm lại là attestation mới. Trường trống vẫn pending.
16
16
 
17
17
  Chạy `node _audit/ci/test-manual-at-matrix.mjs` để kiểm tra hình dạng record và từ chối hàng hoàn tất thiếu bằng chứng. Đây là kiểm tra tính toàn vẹn, không phải test screen reader hay chấp nhận AT. `_audit/a11y-gate.html` và `_audit/at-kit-probe.html` vẫn là proxy lập trình có verdict riêng.
18
+
19
+ Xuất bản chạy `node scripts/require-manual-at-publication.mjs`. Bản phát hành bị từ chối khi còn hàng AT-01–AT-16 chưa `passed` kèm bằng chứng. Hàng pending, failed và blocked không được xuất bản. Kiểm tra này không tạo ra quan sát thủ công.
@@ -52,12 +52,13 @@ Nguyên tắc benchmark (WCAG · APCA · OKLCH · DTCG · doctrine CDS + mở r
52
52
  | Style contract | `_audit/style-contract.html` | Allowlist trục Style: sole pack `liquid-glass` (vắng ≡ mặc định); `styles.css` import `tokens/styles.css`; `--cs-style-pack` resolve; không `data-cs-style` lạ | `__stylecontract.pass` | Hard | Fast board CI |
53
53
  | Visual baselines | `_audit/visual-diff.html` | Baseline template tồn tại và load được để so sánh side-by-side / overlay | Baseline có; drift đánh giá bằng mắt (`__visualdiff`) | Advisory | Fast board CI |
54
54
  | Component baselines | `_audit/component-visual-diff.html` | 12 crop component curated neo các tầng atomic cho so sánh visual | Crop render + baseline có (`__componentVisualDiff`) | Advisory | Fast board CI |
55
+ | Component state paint | `_audit/component-state-paint.html` | Nút primary, secondary, ghost và danger, dialog mở, menu mở, lỗi field và dòng data được chọn sơn đúng màu light và dark đã khai báo. Sai lệch kênh dùng `PIXEL_CHANNEL_TOLERANCE` của hợp đồng pixel. 15 PNG trang Linux vẫn là bộ pixel-diff. | `__statepaint.pass` | Hard | Fast board CI + unit test ba engine |
55
56
  | Axe smoke | `_audit/axe-smoke.html` + `_audit/lib/axe-fixtures.js` | Rule serious/critical WCAG 2 A/AA của axe-core 4.10.0 (vendored tại `_audit/vendor/axe.min.js`) trên mọi public primary (fixture khoá inventory; bilingual EN·VI) — Dialog, AlertDialog, Drawer, Tour, CommandPalette và Menu mount mở, còn Cascader / TreeSelect / Menubar / Combobox được bung trước khi quét; tương đương enforcement a11y Storybook (không test-runner riêng) | 0 finding serious/critical (`__axesmoke`) | Hard | Fast board CI |
56
57
  | Print smoke | `_audit/print-smoke.html` | Mọi path in trong contract tường minh có trong manifest và tải được; đọc source inert yêu cầu đúng một marker ownership bật và rule trang A4/Letter đã parse khớp contract. Owner in ngoài danh sách và contract sai/thiếu đều fail. Không chứng nhận pagination hay độ trung thực file đã xuất. | Thành viên/format khớp contract; không lỗi source hay kiểm tra (`__printsmoke`) | Hard | Fast board CI |
57
58
  | Support no-eval (Node) | `_audit/ci/test-support-no-eval.mjs` | Canonical `templates/_vendor/support.js` + all template copies are identical and contain no Function-constructor / `eval(` call sites (CSP-safe inline-script runtime) | Exit 0 | Hard | Unit test |
58
59
  | Doc export (Node+PW) | `_audit/ci/test-doc-export.mjs` | Mọi template in dưới CSP site: không EvalError, một menu Download (PDF\|DOCX), PDF Playwright `%PDF` + MediaBox A4/Letter, `buildPdfBlob` tải về là một trang FlateDecode không méo của sheet sống (framework), DOCX ZIP + `word/document.xml` + dấu VN + toàn bộ chữ hiển thị của sheet khớp sau giải mã XML entity và ghép các run định dạng + fill vàng/colspan + text lockup header (HĐNT) trên framework | Exit 0 | Hard | Unit test; smoke kích thước PDF native, tách riêng phân trang popup, in qua OS và nghiệm thu hình ảnh |
59
60
  | DOCX source parity (Node) | `_audit/ci/test-docx-source-parity.mjs` | DC text vs committed fixtures under `_audit/fixtures/hr-suite-docx-text/` for every mapped HR instrument | ≥85% phrase overlap; exit 0 | Hard | Unit test |
60
- | Pixel CI | `_audit/pixel-ci.html` + `_audit/ci/pixel-diff.mjs` | 15 baseline curated tồn tại; script Playwright capture so sánh % pixel thật; report gần nhất phải sạch (`drifted[]` rỗng) | Hợp đồng + compare sạch (`__pixelci.pass`); drift hoặc thiếu report → fail | Hard | Fast board CI (bước compare nuôi hàng) + job `pixel-diff` |
61
+ | Pixel CI | `_audit/pixel-ci.html` + `_audit/ci/pixel-diff.mjs` | 16 baseline curated tồn tại, gồm các ô màu trạng thái component; script Playwright capture so sánh % pixel thật; report gần nhất phải sạch (`drifted[]` rỗng) | Hợp đồng + compare sạch (`__pixelci.pass`); drift hoặc thiếu report → fail | Hard | Fast board CI (bước compare nuôi hàng) + job `pixel-diff` |
61
62
 
62
63
  ## Whole-set audits — các pass theo manifest
63
64
 
@@ -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.0.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.1.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