@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
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -4,9 +4,10 @@
4
4
  <title>Email · CyberSkill</title>
5
5
  <meta charset="utf-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="Email · CyberSkill reference in the CyberSkill Design System." />
7
8
  <script src="./support.js"></script>
8
9
  <template id="__bundler_thumbnail" data-bg-color="#2a1a0d">
9
- <svg viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg">
10
+ <svg aria-hidden="true" viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg">
10
11
  <rect width="1200" height="800" fill="#2a1a0d"/>
11
12
  <rect x="300" y="210" width="600" height="380" rx="26" fill="#f7f2ea"/>
12
13
  <rect x="300" y="210" width="600" height="96" rx="26" fill="#45210E"/>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · Welcome An reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -19,7 +20,7 @@
19
20
  }
20
21
  @media (prefers-color-scheme: dark){
21
22
  .bodybg{background:#1a1108!important}
22
- .container,.card{background:#221710!important}
23
+ .container,.card{background:#221710!important;color:#f5ead9!important}
23
24
  .raise{background:#2b1e14!important}
24
25
  .ink{color:#f5ead9!important}
25
26
  .muted{color:#c9b7a3!important}
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · Invoice INV-2026-0142 reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -11,7 +12,7 @@
11
12
  <style>
12
13
  a{color:#6E3B0E}
13
14
  @media only screen and (max-width:600px){.container{width:100%!important}.px{padding-left:22px!important;padding-right:22px!important}}
14
- @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.box{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
+ @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.box{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
16
  </style>
16
17
  </head>
17
18
  <body class="bodybg" style="margin:0;padding:0;background:#efe6d8;-webkit-text-size-adjust:100%;">
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · Investor update reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -19,7 +20,7 @@
19
20
  }
20
21
  @media (prefers-color-scheme: dark){
21
22
  .bodybg{background:#1a1108!important}
22
- .container,.card{background:#221710!important}
23
+ .container,.card{background:#221710!important;color:#f5ead9!important}
23
24
  .raise{background:#2b1e14!important}
24
25
  .ink{color:#f5ead9!important}
25
26
  .muted{color:#c9b7a3!important}
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · 15 element packs are live reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -19,7 +20,7 @@
19
20
  }
20
21
  @media (prefers-color-scheme: dark){
21
22
  .bodybg{background:#1a1108!important}
22
- .container,.card{background:#221710!important}
23
+ .container,.card{background:#221710!important;color:#f5ead9!important}
23
24
  .raise{background:#2b1e14!important}
24
25
  .ink{color:#f5ead9!important}
25
26
  .muted{color:#c9b7a3!important}
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · This month reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -11,7 +12,7 @@
11
12
  <style>
12
13
  a{color:#6E3B0E}
13
14
  @media only screen and (max-width:600px){.container{width:100%!important}.px{padding-left:22px!important;padding-right:22px!important}}
14
- @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.raise{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
+ @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.raise{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
16
  </style>
16
17
  </head>
17
18
  <body class="bodybg" style="margin:0;padding:0;background:#efe6d8;-webkit-text-size-adjust:100%;">
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · Weekly update reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -19,7 +20,7 @@
19
20
  }
20
21
  @media (prefers-color-scheme: dark){
21
22
  .bodybg{background:#1a1108!important}
22
- .container,.card{background:#221710!important}
23
+ .container,.card{background:#221710!important;color:#f5ead9!important}
23
24
  .raise{background:#2b1e14!important}
24
25
  .ink{color:#f5ead9!important}
25
26
  .muted{color:#c9b7a3!important}
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="description" content="CyberSkill · Your wish is in motion reference in the CyberSkill Design System." />
6
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
8
  <meta name="color-scheme" content="light dark">
8
9
  <meta name="supported-color-schemes" content="light dark">
@@ -19,7 +20,7 @@
19
20
  }
20
21
  @media (prefers-color-scheme: dark){
21
22
  .bodybg{background:#1a1108!important}
22
- .container,.card{background:#221710!important}
23
+ .container,.card{background:#221710!important;color:#f5ead9!important}
23
24
  .raise{background:#2b1e14!important}
24
25
  .ink{color:#f5ead9!important}
25
26
  .muted{color:#c9b7a3!important}
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -5,6 +5,7 @@
5
5
  <title>HR · Interview kit · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="HR · Interview kit · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -5,6 +5,7 @@
5
5
  <title>HR · Offboarding checklist · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="HR · Offboarding checklist · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -5,6 +5,7 @@
5
5
  <title>HR · Performance review · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="HR · Performance review · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -5,6 +5,7 @@
5
5
  <title>HR · Performance improvement plan · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="HR · Performance improvement plan · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -1,32 +1,34 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en"><head><meta charset="utf-8">
3
3
  <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <meta name="description" content="Layout-safe patterns for real photography in CyberSkill templates.">
4
5
  <link rel="stylesheet" href="../styles.css">
5
6
  <script src="../image-slot.js"></script>
6
7
  <title>CyberSkill — real imagery pattern</title>
7
8
  <style>
8
9
  body{margin:0;background:var(--cs-color-surface-page);color:var(--cs-color-text-primary);font-family:var(--cs-font-family-ui);padding:36px 28px;max-width:960px;margin:0 auto}
9
- h1{font-size:26px;letter-spacing:-.02em;margin:0 0 4px}h1 b{color:var(--cs-color-brand-umber)}
10
- .sub{color:var(--cs-color-text-muted);margin:0 0 26px;font-size:14px;line-height:1.55}
11
- .lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--cs-color-text-accent);margin:26px 0 10px}
10
+ h1{font-size:26px;letter-spacing:-.02em;margin:0 0 4px}
11
+ .sub{color:var(--cs-color-text-muted);margin:0 0 26px;font-size:14px;line-height:1.55;max-width:68ch}
12
+ .lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--cs-color-text-accent);margin:26px 0 10px}
12
13
  /* Full-bleed hero: slot behind, aurora tint, warm scrim so the empty drop-tile
13
14
  still reads, content on top (click-through so the slot stays droppable). */
14
- .hero{position:relative;height:300px;border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-md)}
15
+ .hero{position:relative;height:300px;border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-md);margin-bottom:48px}
15
16
  .hero .slot{position:absolute;inset:0;z-index:0}
16
17
  .hero .aurora{position:absolute;inset:0;opacity:.5;z-index:1;pointer-events:none}
17
- .hero .scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(42,26,13,.82),rgba(42,26,13,.35) 62%,transparent)}
18
+ .hero .scrim{position:absolute;inset:0;z-index:2;pointer-events:none}
19
+ .hero .scrim::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,26,13,.82),rgba(42,26,13,.35) 62%,transparent)}
18
20
  .hero .content{position:absolute;z-index:3;left:0;bottom:0;padding:32px 36px;color:#fff;pointer-events:none;max-width:560px}
19
21
  .hero .k{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--cs-accent-bright)}
20
22
  .hero h2{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.06;margin:8px 0 6px;color:#fff}
21
23
  .hero p{font-size:15px;line-height:1.5;opacity:.92;margin:0}
22
- .row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
24
+ .row{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-bottom:64px}
23
25
  .person{display:flex;gap:12px;align-items:center}
24
26
  .person .nm{font-weight:700;font-size:14px}.person .rl{font-size:12px;color:var(--cs-color-text-muted)}
25
27
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
26
- .card{border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);overflow:hidden;background:var(--cs-color-surface-panel);box-shadow:var(--cs-shadow-sm)}
28
+ .card{border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);overflow:hidden;background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);box-shadow:var(--cs-shadow-xs)}
27
29
  .card .cap{padding:14px 16px}.card .cap b{font-size:15px}.card .cap p{margin:4px 0 0;font-size:13px;color:var(--cs-color-text-muted);line-height:1.5}
28
- .note{margin-top:28px;font-size:12.5px;color:var(--cs-color-text-muted);line-height:1.6;border-top:1px dashed var(--cs-color-border-default);padding-top:14px}
29
- .note code{font-family:var(--cs-font-family-mono);font-size:11.5px;background:var(--cs-color-surface-raised);border-radius:4px;padding:0 4px}
30
+ .note{margin-top:28px;font-size:12.5px;color:var(--cs-color-text-muted);line-height:1.6;border-top:1px dashed var(--cs-color-border-default);padding-top:14px;max-width:68ch}
31
+ .note code{font-family:var(--cs-font-family-mono);font-size:12px;background:var(--cs-color-surface-raised);color:var(--cs-color-text-primary);border-radius:4px;padding:0 4px}
30
32
  </style></head>
31
33
  <body>
32
34
  <main>
@@ -1,21 +1,25 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en"><head><meta charset="utf-8">
3
3
  <meta name="viewport" content="width=device-width, initial-scale=1">
4
+ <meta name="description" content="CyberSkill Design System component kitchen sink reference.">
4
5
  <link rel="stylesheet" href="../styles.css">
5
6
  <title>CyberSkill — component kitchen sink</title>
6
7
  <style>
7
8
  body{margin:0;background:var(--cs-color-surface-page);color:var(--cs-color-text-primary);font-family:var(--cs-font-family-ui)}
8
- .top{position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--cs-color-surface-panel) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--cs-color-border-default);padding:14px 32px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
9
- .top h1{font-size:17px;margin:0;letter-spacing:-.01em}.top h1 b{color:var(--cs-color-brand-umber)}
9
+ .top{position:sticky;top:1px;z-index:10;background:color-mix(in oklab,var(--cs-color-surface-panel) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--cs-color-border-default);padding:14px 32px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
10
+ @media (prefers-reduced-transparency: reduce){.top{backdrop-filter:none;background:var(--cs-color-surface-panel)}}
11
+ .top h1{font-size:17px;margin:0;letter-spacing:-.01em}
10
12
  .top nav{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px}
11
13
  .top nav a{color:var(--cs-color-text-muted);text-decoration:none;font-weight:600}.top nav a:hover{color:var(--cs-color-brand-ochre)}
12
14
  main{max-width:960px;margin:0 auto;padding:28px 32px 80px}
13
15
  section{margin:0 0 14px;border-bottom:1px dashed var(--cs-color-border-default);padding-bottom:24px}
14
- h2{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--cs-color-brand-umber);margin:26px 0 14px}
16
+ h2{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--_cs-light,var(--cs-color-brand-umber)) var(--_cs-dark,var(--cs-color-brand-ochre));margin:26px 0 14px}
15
17
  .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
16
18
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
17
19
  .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--cs-color-text-muted);width:100%;margin:2px 0 -4px}
18
20
  .cs-kbd{--k:1}
21
+ @media (max-width:768px),(min-width:1024px){.top{padding-inline:max(32px,calc((100% - 960px)/2))}.lbl{font-size:12px}#form .cs-slider{inline-size:160px;flex:none}h2,.cs-stat__value{font-weight:700}section:nth-of-type(even){background-color:var(--cs-color-surface-raised);color:var(--cs-color-text-primary)}section{margin-bottom:44px;padding-bottom:36px}section:first-of-type{margin-bottom:52px}}
22
+ @media (max-width:640px){.top{padding:12px 16px}main{padding:20px 16px 64px}.grid2{grid-template-columns:minmax(0,1fr)}.grid2>*{min-width:0}}
19
23
  </style></head>
20
24
  <body>
21
25
  <div class="top">
@@ -57,7 +61,7 @@
57
61
  <div class="cs-segmented"><button aria-pressed="true">Board</button><button>Table</button></div>
58
62
  </div>
59
63
  <div class="row"><span class="lbl">Controls</span>
60
- <div class="cs-search" style="width:220px"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg><input placeholder="Search" aria-label="Search"></div>
64
+ <div class="cs-search" style="width:220px"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg><input placeholder="Search" aria-label="Search"></div>
61
65
  <div class="cs-stepper" role="group" aria-label="Quantity"><button type="button" aria-label="Decrease">−</button><input value="3" aria-label="Quantity"><button type="button" aria-label="Increase">+</button></div>
62
66
  <input type="range" class="cs-slider" value="60" style="width:160px" aria-label="Progress">
63
67
  </div>
@@ -5,6 +5,7 @@
5
5
  <title>Legal · Master services agreement · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="Legal · Master services agreement · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -4,6 +4,7 @@
4
4
  <title>Marketing · Campaign brief · CyberSkill</title>
5
5
  <meta charset="utf-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="Marketing · Campaign brief · CyberSkill reference in the CyberSkill Design System." />
7
8
  <script src="./support.js"></script>
8
9
  </head>
9
10
  <body>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -5,6 +5,7 @@
5
5
  <title>Marketing · Case study · CyberSkill</title>
6
6
  <meta charset="utf-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="description" content="Marketing · Case study · CyberSkill reference in the CyberSkill Design System." />
8
9
  <meta name="omelette-owns-print" content="1">
9
10
  <script src="./support.js"></script>
10
11
  </head>
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;
@@ -4,6 +4,7 @@
4
4
  <title>Marketing page · CyberSkill</title>
5
5
  <meta charset="utf-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="Marketing page · CyberSkill reference in the CyberSkill Design System." />
7
8
  <script src="./support.js"></script>
8
9
  </head>
9
10
  <body>
@@ -27,7 +28,8 @@
27
28
  <div data-theme="{{ rootTheme }}" lang="{{ langAttr }}" data-cs-element="{{ elAttr }}" data-cs-variant="{{ vaAttr }}" style="font-family:var(--cs-font-family-ui);color:var(--cs-color-text-primary);background:var(--cs-color-surface-page);min-height:100vh">
28
29
  <a class="cs-skip" href="#main">{{ skipLabel }}</a>
29
30
  <main id="main">
30
- <header style="position:sticky;top:0;z-index:50;display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;padding:14px 32px;background:color-mix(in oklab,var(--cs-color-surface-panel) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--cs-color-border-default)">
31
+ <div style="position:sticky;top:0;z-index:50">
32
+ <header style="display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;padding:14px 32px;background:color-mix(in oklab,var(--cs-color-surface-panel) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--cs-color-border-default)">
31
33
  <div style="display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:var(--cs-color-text-primary);letter-spacing:-0.01em">
32
34
  <x-import component-from-global-scope="CyberSkillDS.Logo" size="32" hint-size="32px,32px"></x-import>
33
35
  CyberSkill
@@ -43,6 +45,7 @@
43
45
  </div>
44
46
  </sc-if>
45
47
  </header>
48
+ </div>
46
49
 
47
50
  <section style="position:relative;overflow:hidden;background:var(--cs-color-brand-umber);color:#FFFDF8;padding:84px 32px 96px">
48
51
  <image-slot id="cs-mktg-hero" shape="rect" lang="{{ langAttr }}" placeholder="{{ heroImagePlaceholder }}" placeholder-vi="{{ heroImagePlaceholder }}" style="position:absolute;inset:0;--image-slot-hint-color:var(--cs-color-text-primary)"></image-slot>
@@ -64,7 +67,7 @@
64
67
  <div style="font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-accent)">{{ svcKicker }}</div>
65
68
  <h2 style="font-size:34px;font-weight:800;letter-spacing:-0.02em;margin:8px 0 8px">{{ svcH }}</h2>
66
69
  <p style="font-size:17px;color:var(--cs-color-text-muted);max-width:620px;margin:0 0 32px">{{ svcP }}</p>
67
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px">
70
+ <div data-slot="services" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px">
68
71
  <div style="background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);box-shadow:var(--cs-shadow-sm);padding:24px">
69
72
  <h3 style="font-size:20px;font-weight:700;margin:0 0 8px">{{ c1h }}</h3>
70
73
  <p style="color:var(--cs-color-text-muted);font-size:15px;line-height:1.5;margin:0">{{ c1p }}</p>
@@ -138,7 +141,7 @@ class Component extends DCLogic {
138
141
  const [elAttr, vaAttr] = EL[this.props.element] || EL["Thổ · studio"];
139
142
  const vn = this.props.language === "Tiếng Việt";
140
143
  const en = { heroImagePlaceholder:/* @generated template-literal:dictionary.en.6865726f496d616765506c616365686f6c646572 */ "Drop a hero image (optional)" /* @endgenerated template-literal:dictionary.en.6865726f496d616765506c616365686f6c646572 */, closeLabel:/* @generated template-literal:dictionary.en.636c6f73654c6162656c */ "Close" /* @endgenerated template-literal:dictionary.en.636c6f73654c6162656c */, skipLabel:/* @generated template-literal:copy.skip-to-content.en */ "Skip to content" /* @endgenerated template-literal:copy.skip-to-content.en */, navServices:/* @generated template-literal:copy.services.en */ "Services" /* @endgenerated template-literal:copy.services.en */, navProcess:/* @generated template-literal:dictionary.en.6e617650726f63657373 */ "Process" /* @endgenerated template-literal:dictionary.en.6e617650726f63657373 */, navContact:/* @generated template-literal:dictionary.en.6e6176436f6e74616374 */ "Contact" /* @endgenerated template-literal:dictionary.en.6e6176436f6e74616374 */, talkBtn:/* @generated template-literal:dictionary.en.74616c6b42746e */ "Talk to Lumi" /* @endgenerated template-literal:dictionary.en.74616c6b42746e */, heroKicker:/* @generated template-literal:dictionary.en.6865726f4b69636b6572 */ "A Saigon studio · since 2020" /* @endgenerated template-literal:dictionary.en.6865726f4b69636b6572 */, heroH:/* @generated template-literal:copy.turn-your-will-into-real.en */ "Turn Your Will Into Real" /* @endgenerated template-literal:copy.turn-your-will-into-real.en */, heroSub:/* @generated template-literal:dictionary.en.6865726f537562 */ "Hiện Thực Hoá Ý Chí" /* @endgenerated template-literal:dictionary.en.6865726f537562 */, heroP:/* @generated template-literal:dictionary.en.6865726f50 */ "Tell us a wish in a sentence. Lumi shares plain advice, then hands it to a real team who build software your people actually run — built to ship, built to last." /* @endgenerated template-literal:dictionary.en.6865726f50 */, promptPh:/* @generated template-literal:dictionary.en.70726f6d70745068 */ "Make a wish… a faster checkout, an app, a tool" /* @endgenerated template-literal:dictionary.en.70726f6d70745068 */, promptSend:/* @generated template-literal:copy.make-a-wish.en */ "Make a wish" /* @endgenerated template-literal:copy.make-a-wish.en */, svcKicker:/* @generated template-literal:copy.services.en */ "Services" /* @endgenerated template-literal:copy.services.en */, svcH:/* @generated template-literal:dictionary.en.73766348 */ "What we build" /* @endgenerated template-literal:dictionary.en.73766348 */, svcP:/* @generated template-literal:dictionary.en.73766350 */ "Three focused practices. One team that answers for the result." /* @endgenerated template-literal:dictionary.en.73766350 */, c1h:/* @generated template-literal:dictionary.en.633168 */ "Web & mobile apps" /* @endgenerated template-literal:dictionary.en.633168 */, c1p:/* @generated template-literal:dictionary.en.633170 */ "Product apps your customers reach for — fast, accessible, bilingual by default." /* @endgenerated template-literal:dictionary.en.633170 */, c2h:/* @generated template-literal:dictionary.en.633268 */ "Internal systems & automation" /* @endgenerated template-literal:dictionary.en.633268 */, c2p:/* @generated template-literal:dictionary.en.633270 */ "The tools your team runs on: dashboards, workflows, and the automation behind them." /* @endgenerated template-literal:dictionary.en.633270 */, c3h:/* @generated template-literal:dictionary.en.633368 */ "Built to last" /* @endgenerated template-literal:dictionary.en.633368 */, c3p:/* @generated template-literal:dictionary.en.633370 */ "Shipped software that keeps running — tested, documented, handed over cleanly." /* @endgenerated template-literal:dictionary.en.633370 */, ctaH:/* @generated template-literal:dictionary.en.63746148 */ "Ready to make a wish?" /* @endgenerated template-literal:dictionary.en.63746148 */, ctaP:/* @generated template-literal:dictionary.en.63746150 */ "Send a short note. We reply within one business day." /* @endgenerated template-literal:dictionary.en.63746150 */, chatHello:/* @generated template-literal:dictionary.en.6368617448656c6c6f */ "Hello, I’m Lumi. Tell me a wish, and I’ll share plain advice before asking for anything." /* @endgenerated template-literal:dictionary.en.6368617448656c6c6f */, chatPh:/* @generated template-literal:dictionary.en.636861745068 */ "Type your wish…" /* @endgenerated template-literal:dictionary.en.636861745068 */, chatSend:/* @generated template-literal:dictionary.en.6368617453656e64 */ "Send" /* @endgenerated template-literal:dictionary.en.6368617453656e64 */, footer:/* @generated template-literal:dictionary.en.666f6f746572 */ "© 2026 CyberSkill · Saigon · Turn Your Will Into Real" /* @endgenerated template-literal:dictionary.en.666f6f746572 */, genieLabel:/* @generated template-literal:dictionary.en.67656e69654c6162656c */ "golden genie" /* @endgenerated template-literal:dictionary.en.67656e69654c6162656c */ };
141
- const vi = { heroImagePlaceholder:/* @generated template-literal:dictionary.vi.6865726f496d616765506c616365686f6c646572 */ "Thả ảnh bìa (không bắt buộc)" /* @endgenerated template-literal:dictionary.vi.6865726f496d616765506c616365686f6c646572 */, closeLabel:/* @generated template-literal:dictionary.vi.636c6f73654c6162656c */ "Đóng" /* @endgenerated template-literal:dictionary.vi.636c6f73654c6162656c */, skipLabel:/* @generated template-literal:copy.skip-to-content.vi */ "Bỏ qua nội dung" /* @endgenerated template-literal:copy.skip-to-content.vi */, navServices:/* @generated template-literal:copy.services.vi */ "Dịch vụ" /* @endgenerated template-literal:copy.services.vi */, navProcess:/* @generated template-literal:dictionary.vi.6e617650726f63657373 */ "Quy trình" /* @endgenerated template-literal:dictionary.vi.6e617650726f63657373 */, navContact:/* @generated template-literal:dictionary.vi.6e6176436f6e74616374 */ "Liên hệ" /* @endgenerated template-literal:dictionary.vi.6e6176436f6e74616374 */, talkBtn:/* @generated template-literal:dictionary.vi.74616c6b42746e */ "Trò chuyện với Lumi" /* @endgenerated template-literal:dictionary.vi.74616c6b42746e */, heroKicker:/* @generated template-literal:dictionary.vi.6865726f4b69636b6572 */ "Studio Sài Gòn · từ 2020" /* @endgenerated template-literal:dictionary.vi.6865726f4b69636b6572 */, heroH:/* @generated template-literal:copy.turn-your-will-into-real.vi */ "Hiện Thực Hoá Ý Chí" /* @endgenerated template-literal:copy.turn-your-will-into-real.vi */, heroSub:/* @generated template-literal:dictionary.vi.6865726f537562 */ "Turn Your Will Into Real" /* @endgenerated template-literal:dictionary.vi.6865726f537562 */, heroP:/* @generated template-literal:dictionary.vi.6865726f50 */ "Kể cho chúng tôi một điều ước trong một câu. Lumi chia sẻ lời khuyên thẳng thắn, rồi trao cho một đội ngũ thật xây phần mềm mà người của bạn thực sự vận hành — làm để chạy được, làm để bền lâu." /* @endgenerated template-literal:dictionary.vi.6865726f50 */, promptPh:/* @generated template-literal:dictionary.vi.70726f6d70745068 */ "Gửi điều ước… thanh toán nhanh hơn, một app, một công cụ" /* @endgenerated template-literal:dictionary.vi.70726f6d70745068 */, promptSend:/* @generated template-literal:copy.make-a-wish.vi */ "Gửi điều ước" /* @endgenerated template-literal:copy.make-a-wish.vi */, svcKicker:/* @generated template-literal:copy.services.vi */ "Dịch vụ" /* @endgenerated template-literal:copy.services.vi */, svcH:/* @generated template-literal:dictionary.vi.73766348 */ "Chúng tôi xây gì" /* @endgenerated template-literal:dictionary.vi.73766348 */, svcP:/* @generated template-literal:dictionary.vi.73766350 */ "Ba mảng tập trung. Một đội ngũ chịu trách nhiệm về kết quả." /* @endgenerated template-literal:dictionary.vi.73766350 */, c1h:/* @generated template-literal:dictionary.vi.633168 */ "Ứng dụng web & di động" /* @endgenerated template-literal:dictionary.vi.633168 */, c1p:/* @generated template-literal:dictionary.vi.633170 */ "Sản phẩm khách hàng muốn dùng — nhanh, dễ tiếp cận, song ngữ mặc định." /* @endgenerated template-literal:dictionary.vi.633170 */, c2h:/* @generated template-literal:dictionary.vi.633268 */ "Hệ thống nội bộ & tự động hoá" /* @endgenerated template-literal:dictionary.vi.633268 */, c2p:/* @generated template-literal:dictionary.vi.633270 */ "Công cụ đội bạn vận hành: dashboard, luồng công việc, và tự động hoá phía sau." /* @endgenerated template-literal:dictionary.vi.633270 */, c3h:/* @generated template-literal:dictionary.vi.633368 */ "Làm để bền lâu" /* @endgenerated template-literal:dictionary.vi.633368 */, c3p:/* @generated template-literal:dictionary.vi.633370 */ "Phần mềm đã ra mắt vẫn chạy đều — kiểm thử, tài liệu, bàn giao gọn gàng." /* @endgenerated template-literal:dictionary.vi.633370 */, ctaH:/* @generated template-literal:dictionary.vi.63746148 */ "Sẵn sàng gửi điều ước?" /* @endgenerated template-literal:dictionary.vi.63746148 */, ctaP:/* @generated template-literal:dictionary.vi.63746150 */ "Gửi một ghi chú ngắn. Chúng tôi phản hồi trong một ngày làm việc." /* @endgenerated template-literal:dictionary.vi.63746150 */, chatHello:/* @generated template-literal:dictionary.vi.6368617448656c6c6f */ "Xin chào, tôi là Lumi. Kể cho tôi một điều ước, tôi sẽ chia sẻ lời khuyên thẳng thắn trước khi hỏi bất cứ điều gì." /* @endgenerated template-literal:dictionary.vi.6368617448656c6c6f */, chatPh:/* @generated template-literal:dictionary.vi.636861745068 */ "Nhập điều ước của bạn…" /* @endgenerated template-literal:dictionary.vi.636861745068 */, chatSend:/* @generated template-literal:dictionary.vi.6368617453656e64 */ "Gửi" /* @endgenerated template-literal:dictionary.vi.6368617453656e64 */, footer:/* @generated template-literal:dictionary.vi.666f6f746572 */ "© 2026 CyberSkill · Sài Gòn · Hiện Thực Hoá Ý Chí" /* @endgenerated template-literal:dictionary.vi.666f6f746572 */, genieLabel:/* @generated template-literal:dictionary.vi.67656e69654c6162656c */ "thần đèn vàng" /* @endgenerated template-literal:dictionary.vi.67656e69654c6162656c */ };
144
+ const vi = { heroImagePlaceholder:/* @generated template-literal:dictionary.vi.6865726f496d616765506c616365686f6c646572 */ "Thả ảnh bìa (không bắt buộc)" /* @endgenerated template-literal:dictionary.vi.6865726f496d616765506c616365686f6c646572 */, closeLabel:/* @generated template-literal:dictionary.vi.636c6f73654c6162656c */ "Đóng" /* @endgenerated template-literal:dictionary.vi.636c6f73654c6162656c */, skipLabel:/* @generated template-literal:copy.skip-to-content.vi */ "Bỏ qua đến nội dung" /* @endgenerated template-literal:copy.skip-to-content.vi */, navServices:/* @generated template-literal:copy.services.vi */ "Dịch vụ" /* @endgenerated template-literal:copy.services.vi */, navProcess:/* @generated template-literal:dictionary.vi.6e617650726f63657373 */ "Quy trình" /* @endgenerated template-literal:dictionary.vi.6e617650726f63657373 */, navContact:/* @generated template-literal:dictionary.vi.6e6176436f6e74616374 */ "Liên hệ" /* @endgenerated template-literal:dictionary.vi.6e6176436f6e74616374 */, talkBtn:/* @generated template-literal:dictionary.vi.74616c6b42746e */ "Trò chuyện với Lumi" /* @endgenerated template-literal:dictionary.vi.74616c6b42746e */, heroKicker:/* @generated template-literal:dictionary.vi.6865726f4b69636b6572 */ "Studio Sài Gòn · từ 2020" /* @endgenerated template-literal:dictionary.vi.6865726f4b69636b6572 */, heroH:/* @generated template-literal:copy.turn-your-will-into-real.vi */ "Hiện Thực Hoá Ý Chí" /* @endgenerated template-literal:copy.turn-your-will-into-real.vi */, heroSub:/* @generated template-literal:dictionary.vi.6865726f537562 */ "Turn Your Will Into Real" /* @endgenerated template-literal:dictionary.vi.6865726f537562 */, heroP:/* @generated template-literal:dictionary.vi.6865726f50 */ "Kể cho chúng tôi một điều ước trong một câu. Lumi chia sẻ lời khuyên thẳng thắn, rồi trao cho một đội ngũ thật xây phần mềm mà người của bạn thực sự vận hành — làm để chạy được, làm để bền lâu." /* @endgenerated template-literal:dictionary.vi.6865726f50 */, promptPh:/* @generated template-literal:dictionary.vi.70726f6d70745068 */ "Gửi điều ước… thanh toán nhanh hơn, một app, một công cụ" /* @endgenerated template-literal:dictionary.vi.70726f6d70745068 */, promptSend:/* @generated template-literal:copy.make-a-wish.vi */ "Gửi điều ước" /* @endgenerated template-literal:copy.make-a-wish.vi */, svcKicker:/* @generated template-literal:copy.services.vi */ "Dịch vụ" /* @endgenerated template-literal:copy.services.vi */, svcH:/* @generated template-literal:dictionary.vi.73766348 */ "Chúng tôi xây gì" /* @endgenerated template-literal:dictionary.vi.73766348 */, svcP:/* @generated template-literal:dictionary.vi.73766350 */ "Ba mảng tập trung. Một đội ngũ chịu trách nhiệm về kết quả." /* @endgenerated template-literal:dictionary.vi.73766350 */, c1h:/* @generated template-literal:dictionary.vi.633168 */ "Ứng dụng web & di động" /* @endgenerated template-literal:dictionary.vi.633168 */, c1p:/* @generated template-literal:dictionary.vi.633170 */ "Sản phẩm khách hàng muốn dùng — nhanh, dễ tiếp cận, song ngữ mặc định." /* @endgenerated template-literal:dictionary.vi.633170 */, c2h:/* @generated template-literal:dictionary.vi.633268 */ "Hệ thống nội bộ & tự động hoá" /* @endgenerated template-literal:dictionary.vi.633268 */, c2p:/* @generated template-literal:dictionary.vi.633270 */ "Công cụ đội bạn vận hành: dashboard, luồng công việc, và tự động hoá phía sau." /* @endgenerated template-literal:dictionary.vi.633270 */, c3h:/* @generated template-literal:dictionary.vi.633368 */ "Làm để bền lâu" /* @endgenerated template-literal:dictionary.vi.633368 */, c3p:/* @generated template-literal:dictionary.vi.633370 */ "Phần mềm đã ra mắt vẫn chạy đều — kiểm thử, tài liệu, bàn giao gọn gàng." /* @endgenerated template-literal:dictionary.vi.633370 */, ctaH:/* @generated template-literal:dictionary.vi.63746148 */ "Sẵn sàng gửi điều ước?" /* @endgenerated template-literal:dictionary.vi.63746148 */, ctaP:/* @generated template-literal:dictionary.vi.63746150 */ "Gửi một ghi chú ngắn. Chúng tôi phản hồi trong một ngày làm việc." /* @endgenerated template-literal:dictionary.vi.63746150 */, chatHello:/* @generated template-literal:dictionary.vi.6368617448656c6c6f */ "Xin chào, tôi là Lumi. Kể cho tôi một điều ước, tôi sẽ chia sẻ lời khuyên thẳng thắn trước khi hỏi bất cứ điều gì." /* @endgenerated template-literal:dictionary.vi.6368617448656c6c6f */, chatPh:/* @generated template-literal:dictionary.vi.636861745068 */ "Nhập điều ước của bạn…" /* @endgenerated template-literal:dictionary.vi.636861745068 */, chatSend:/* @generated template-literal:dictionary.vi.6368617453656e64 */ "Gửi" /* @endgenerated template-literal:dictionary.vi.6368617453656e64 */, footer:/* @generated template-literal:dictionary.vi.666f6f746572 */ "© 2026 CyberSkill · Sài Gòn · Hiện Thực Hoá Ý Chí" /* @endgenerated template-literal:dictionary.vi.666f6f746572 */, genieLabel:/* @generated template-literal:dictionary.vi.67656e69654c6162656c */ "thần đèn vàng" /* @endgenerated template-literal:dictionary.vi.67656e69654c6162656c */ };
142
145
  const showChat = this.props.showChat ?? true;
143
146
  return Object.assign({ langAttr: (this.props.language ?? "English") === "Tiếng Việt" ? "vi" : "en", elAttr, vaAttr, rootTheme: this.props.theme === "dark" ? "dark" : "",
144
147
  /* FAB omitted — header Talk to Lumi is the single secondary CTA (UX-016). */
@@ -90,7 +90,7 @@
90
90
  const R = window.React;
91
91
  return Array.from(nodes).map((node, index) => {
92
92
  const key = prefix + index;
93
- if (node.nodeType === Node.TEXT_NODE) return binding(node.textContent, scope);
93
+ if (node.nodeType === Node.TEXT_NODE) return node.textContent.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (_, name) => String(resolveName(name.trim(), scope) ?? ''));
94
94
  if (node.nodeType !== Node.ELEMENT_NODE) return null;
95
95
  const tag = node.localName;
96
96
  const control = tag === 'template' ? node.getAttribute('data-cs-dc-control') : tag === 'sc-for' ? 'for' : tag === 'sc-if' ? 'if' : null;