@cyberskill/design 1.1.1 → 1.3.8

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 (481) hide show
  1. package/DESIGN.md +28 -5
  2. package/README.md +23 -22
  3. package/SKILL.md +7 -7
  4. package/THIRD-PARTY-NOTICES.md +35 -0
  5. package/VERSION +1 -1
  6. package/_ds_bundle.js +1495 -1733
  7. package/_ds_manifest.json +1 -1
  8. package/_esm/cs.mjs +18 -4
  9. package/_esm/react.d.ts +2 -0
  10. package/_esm/react.mjs +7 -1
  11. package/_vendor/NOTICE.md +16 -0
  12. package/_vendor/babel/README.md +7 -0
  13. package/_vendor/babel/babel.min.js +4 -0
  14. package/_vendor/react/README.md +3 -0
  15. package/_vendor/react/react-dom.production.min.js +1 -0
  16. package/_vendor/react/react.production.min.js +1 -0
  17. package/assets/aurora-hoa.webp +0 -0
  18. package/assets/aurora-kim.webp +0 -0
  19. package/assets/aurora-moc.webp +0 -0
  20. package/assets/aurora-tho.webp +0 -0
  21. package/assets/aurora-thuy.webp +0 -0
  22. package/base/a11y.css +18 -0
  23. package/base/ai.css +9 -4
  24. package/base/collections.css +18 -7
  25. package/base/components.css +16 -4
  26. package/base/controls.css +116 -66
  27. package/base/data.css +4 -4
  28. package/base/feedback.css +14 -2
  29. package/base/forms.css +10 -4
  30. package/base/glass.css +7 -1
  31. package/base/interaction.css +6 -2
  32. package/base/navigation.css +9 -3
  33. package/base/reset.css +7 -1
  34. package/base/responsive.css +38 -12
  35. package/base/shell.css +15 -3
  36. package/components/_i18n/i18n.js +41 -4
  37. package/components/_i18n/strings.js +89 -22
  38. package/components/ai/ChatMessage.d.ts +2 -0
  39. package/components/ai/ChatMessage.jsx +8 -4
  40. package/components/ai/ConfidenceMeter.d.ts +2 -0
  41. package/components/ai/ConfidenceMeter.jsx +8 -6
  42. package/components/ai/HumanReviewGate.d.ts +2 -0
  43. package/components/ai/PromptInput.d.ts +2 -0
  44. package/components/ai/TypingIndicator.d.ts +2 -0
  45. package/components/ai/ai-conversation.card.html +3 -3
  46. package/components/ai/ai-lumi.card.html +3 -3
  47. package/components/ai/ai.card.html +3 -3
  48. package/components/brand/brand.card.html +3 -3
  49. package/components/button/buttons.card.html +3 -3
  50. package/components/data/Image.jsx +18 -2
  51. package/components/data/Sortable.d.ts +5 -1
  52. package/components/data/Sortable.jsx +42 -9
  53. package/components/data/Sortable.prompt.md +4 -2
  54. package/components/data/Terminal.jsx +3 -2
  55. package/components/data/Tooltip.d.ts +2 -0
  56. package/components/data/Tooltip.jsx +6 -3
  57. package/components/data/Tree.d.ts +2 -1
  58. package/components/data/Tree.jsx +137 -16
  59. package/components/data/Tree.prompt.md +1 -1
  60. package/components/data/Watermark.jsx +11 -3
  61. package/components/data/collections.card.html +3 -3
  62. package/components/data/data.card.html +3 -3
  63. package/components/datatable/DataGrid.jsx +10 -1
  64. package/components/datatable/DataTable.d.ts +24 -1
  65. package/components/datatable/DataTable.jsx +78 -5
  66. package/components/datatable/DataTable.prompt.md +2 -1
  67. package/components/datatable/datatable.card.html +20 -16
  68. package/components/dialog/Dialog.jsx +13 -45
  69. package/components/dialog/dialog.card.html +3 -3
  70. package/components/feedback/Alert.d.ts +2 -0
  71. package/components/feedback/Alert.jsx +8 -2
  72. package/components/feedback/EmptyState.d.ts +2 -0
  73. package/components/feedback/EmptyState.jsx +6 -3
  74. package/components/feedback/ProgressBar.d.ts +2 -0
  75. package/components/feedback/ProgressBar.jsx +9 -4
  76. package/components/feedback/Toast.jsx +15 -1
  77. package/components/feedback/Toast.prompt.md +2 -1
  78. package/components/feedback/feedback-2.card.html +3 -3
  79. package/components/feedback/feedback.card.html +3 -3
  80. package/components/forms/Cascader.jsx +76 -8
  81. package/components/forms/Editor.jsx +37 -2
  82. package/components/forms/FileUpload.d.ts +2 -0
  83. package/components/forms/FileUpload.jsx +22 -8
  84. package/components/forms/Form.d.ts +3 -1
  85. package/components/forms/Form.jsx +9 -1
  86. package/components/forms/Form.prompt.md +1 -1
  87. package/components/forms/Mentions.d.ts +1 -1
  88. package/components/forms/Mentions.jsx +59 -7
  89. package/components/forms/Mentions.prompt.md +3 -1
  90. package/components/forms/Rating.d.ts +3 -2
  91. package/components/forms/Rating.jsx +34 -3
  92. package/components/forms/Rating.prompt.md +1 -1
  93. package/components/forms/Select.d.ts +2 -0
  94. package/components/forms/Select.jsx +6 -2
  95. package/components/forms/Slider.d.ts +2 -0
  96. package/components/forms/Slider.jsx +5 -2
  97. package/components/forms/Switch.d.ts +2 -0
  98. package/components/forms/Switch.jsx +15 -3
  99. package/components/forms/TimePicker.jsx +3 -1
  100. package/components/forms/Toggle.d.ts +2 -0
  101. package/components/forms/Toggle.jsx +14 -2
  102. package/components/forms/forms-2.card.html +3 -3
  103. package/components/forms/forms.card.html +3 -3
  104. package/components/icon/Icon.d.ts +1 -1
  105. package/components/icon/Icon.jsx +1 -0
  106. package/components/icon/Icon.prompt.md +1 -1
  107. package/components/icon/icon.card.html +3 -3
  108. package/components/logo/logo.card.html +3 -3
  109. package/components/navigation/CommandPalette.d.ts +2 -0
  110. package/components/navigation/CommandPalette.jsx +22 -7
  111. package/components/navigation/Menu.d.ts +2 -0
  112. package/components/navigation/Menu.jsx +60 -6
  113. package/components/navigation/Steps.d.ts +2 -0
  114. package/components/navigation/Steps.jsx +6 -3
  115. package/components/navigation/Tabs.d.ts +2 -0
  116. package/components/navigation/Tabs.jsx +6 -3
  117. package/components/navigation/Toolbar.d.ts +3 -2
  118. package/components/navigation/Toolbar.jsx +119 -12
  119. package/components/navigation/Toolbar.prompt.md +1 -1
  120. package/components/navigation/navigation.card.html +3 -3
  121. package/components/navigation/shell.card.html +3 -3
  122. package/components/overlays/AlertDialog.jsx +19 -49
  123. package/components/overlays/ContextMenu.d.ts +2 -0
  124. package/components/overlays/ContextMenu.jsx +6 -3
  125. package/components/overlays/Drawer.d.ts +2 -0
  126. package/components/overlays/Drawer.jsx +24 -20
  127. package/components/overlays/OverlayManager.d.ts +40 -0
  128. package/components/overlays/OverlayManager.jsx +214 -0
  129. package/components/overlays/OverlayManager.prompt.md +12 -0
  130. package/components/overlays/Tour.jsx +14 -7
  131. package/components/overlays/alertdialog.card.html +3 -3
  132. package/components/overlays/overlays.card.html +3 -3
  133. package/components/textfield/textfield.card.html +3 -3
  134. package/dist/styles.min.css +2252 -0
  135. package/docs/benchmark-rubric.md +1 -1
  136. package/docs/ci-cd.md +19 -12
  137. package/docs/consumer-grant.md +3 -0
  138. package/docs/consuming.md +13 -13
  139. package/docs/contrast-report.md +79 -1
  140. package/docs/conventions.md +21 -8
  141. package/docs/decisions.md +45 -7
  142. package/docs/deploy.md +17 -6
  143. package/docs/design-styles.md +2 -2
  144. package/docs/quality-gates.md +35 -15
  145. package/docs/release-notes.md +2 -2
  146. package/docs/release-runbook.md +78 -0
  147. package/docs/sync.md +2 -2
  148. package/docs/vi/benchmark-rubric.md +1 -1
  149. package/docs/vi/ci-cd.md +17 -12
  150. package/docs/vi/consumer-grant.md +3 -0
  151. package/docs/vi/consuming.md +13 -13
  152. package/docs/vi/contrast-report.md +79 -1
  153. package/docs/vi/conventions.md +20 -7
  154. package/docs/vi/decisions.md +43 -6
  155. package/docs/vi/deploy.md +17 -6
  156. package/docs/vi/quality-gates.md +34 -15
  157. package/docs/vi/release-notes.md +2 -2
  158. package/docs/vi/release-runbook.md +78 -0
  159. package/docs/vi/sync.md +2 -2
  160. package/docs/viewer.html +2 -2
  161. package/fonts/OFL.txt +98 -0
  162. package/guidelines/atomic-view.html +13 -9
  163. package/guidelines/brand-imagery.html +1 -1
  164. package/guidelines/elements-variants.html +5 -5
  165. package/guidelines/spacing-breakpoints.html +2 -1
  166. package/guidelines/surfaces-glass.html +1 -1
  167. package/llms.txt +5 -5
  168. package/package.json +38 -10
  169. package/templates/_ds-base.canonical.js +55 -0
  170. package/templates/ai-cluster-demo.html +2 -2
  171. package/templates/app-shell/AppShell.dc.html +7 -5
  172. package/templates/app-shell/content-schema.json +7 -0
  173. package/templates/app-shell/ds-base.js +33 -1
  174. package/templates/app-shell/support.js +13 -20
  175. package/templates/article/Article.dc.html +7 -3
  176. package/templates/article/content-schema.json +7 -0
  177. package/templates/article/ds-base.js +33 -1
  178. package/templates/article/support.js +13 -20
  179. package/templates/auth/Auth.dc.html +33 -12
  180. package/templates/auth/content-schema.json +37 -0
  181. package/templates/auth/ds-base.js +33 -1
  182. package/templates/auth/support.js +13 -20
  183. package/templates/bod-deck/BodDeck.dc.html +11 -10
  184. package/templates/bod-deck/ds-base.js +33 -1
  185. package/templates/bod-deck/support.js +13 -20
  186. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +4 -3
  187. package/templates/bod-investor-update/ds-base.js +33 -1
  188. package/templates/bod-investor-update/support.js +13 -20
  189. package/templates/bod-memo/BodMemo.dc.html +6 -5
  190. package/templates/bod-memo/ds-base.js +33 -1
  191. package/templates/bod-memo/support.js +13 -20
  192. package/templates/bod-minutes/BodMinutes.dc.html +2 -1
  193. package/templates/bod-minutes/ds-base.js +33 -1
  194. package/templates/bod-minutes/support.js +13 -20
  195. package/templates/bod-report/BodReport.dc.html +3 -2
  196. package/templates/bod-report/ds-base.js +33 -1
  197. package/templates/bod-report/support.js +13 -20
  198. package/templates/bod-resolution/BodResolution.dc.html +5 -4
  199. package/templates/bod-resolution/ds-base.js +33 -1
  200. package/templates/bod-resolution/support.js +13 -20
  201. package/templates/culture-event-invite/CultureEventInvite.dc.html +3 -2
  202. package/templates/culture-event-invite/ds-base.js +33 -1
  203. package/templates/culture-event-invite/support.js +13 -20
  204. package/templates/dashboard/Dashboard.dc.html +10 -6
  205. package/templates/dashboard/content-schema.json +7 -0
  206. package/templates/dashboard/ds-base.js +33 -1
  207. package/templates/dashboard/support.js +13 -20
  208. package/templates/delivery-change-note/DeliveryChangeNote.dc.html +4 -3
  209. package/templates/delivery-change-note/ds-base.js +33 -1
  210. package/templates/delivery-change-note/support.js +13 -20
  211. package/templates/delivery-kickoff/DeliveryKickoff.dc.html +3 -2
  212. package/templates/delivery-kickoff/ds-base.js +33 -1
  213. package/templates/delivery-kickoff/support.js +13 -20
  214. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +6 -5
  215. package/templates/delivery-qbr-deck/ds-base.js +33 -1
  216. package/templates/delivery-qbr-deck/support.js +13 -20
  217. package/templates/delivery-runbook/DeliveryRunbook.dc.html +5 -4
  218. package/templates/delivery-runbook/ds-base.js +33 -1
  219. package/templates/delivery-runbook/support.js +13 -20
  220. package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +3 -2
  221. package/templates/delivery-status-email/ds-base.js +33 -1
  222. package/templates/delivery-status-email/support.js +13 -20
  223. package/templates/doc-style-guide/DocStyleGuide.dc.html +67 -64
  224. package/templates/doc-style-guide/ds-base.js +33 -1
  225. package/templates/doc-style-guide/support.js +13 -20
  226. package/templates/doc-suite-index/DocSuiteIndex.dc.html +46 -45
  227. package/templates/doc-suite-index/ds-base.js +33 -1
  228. package/templates/doc-suite-index/support.js +13 -20
  229. package/templates/doc-templates/DocTemplates.dc.html +42 -41
  230. package/templates/doc-templates/ds-base.js +33 -1
  231. package/templates/doc-templates/support.js +13 -20
  232. package/templates/email/Email.dc.html +3 -2
  233. package/templates/email/ds-base.js +33 -1
  234. package/templates/email/support.js +13 -20
  235. package/templates/email-safe/email-announcement.html +2 -2
  236. package/templates/email-safe/email-dunning.html +2 -2
  237. package/templates/email-safe/email-investor.html +2 -2
  238. package/templates/email-safe/email-launch.html +2 -2
  239. package/templates/email-safe/email-newsletter.html +2 -2
  240. package/templates/email-safe/email-status.html +2 -2
  241. package/templates/email-safe/email-transactional.html +2 -2
  242. package/templates/finance-dunning-email/FinanceDunningEmail.dc.html +6 -5
  243. package/templates/finance-dunning-email/ds-base.js +33 -1
  244. package/templates/finance-dunning-email/support.js +13 -20
  245. package/templates/finance-expense-report/FinanceExpenseReport.dc.html +4 -3
  246. package/templates/finance-expense-report/ds-base.js +33 -1
  247. package/templates/finance-expense-report/support.js +13 -20
  248. package/templates/finance-invoice/FinanceInvoice.dc.html +6 -5
  249. package/templates/finance-invoice/ds-base.js +33 -1
  250. package/templates/finance-invoice/support.js +13 -20
  251. package/templates/finance-quote/FinanceQuote.dc.html +6 -5
  252. package/templates/finance-quote/ds-base.js +33 -1
  253. package/templates/finance-quote/support.js +13 -20
  254. package/templates/hr-announcement/HrAnnouncement.dc.html +5 -4
  255. package/templates/hr-announcement/ds-base.js +33 -1
  256. package/templates/hr-announcement/support.js +13 -20
  257. package/templates/hr-interview-kit/HrInterviewKit.dc.html +5 -4
  258. package/templates/hr-interview-kit/ds-base.js +33 -1
  259. package/templates/hr-interview-kit/support.js +13 -20
  260. package/templates/hr-offboarding/HrOffboarding.dc.html +2 -1
  261. package/templates/hr-offboarding/ds-base.js +33 -1
  262. package/templates/hr-offboarding/support.js +13 -20
  263. package/templates/hr-performance-review/HrPerformanceReview.dc.html +2 -1
  264. package/templates/hr-performance-review/ds-base.js +33 -1
  265. package/templates/hr-performance-review/support.js +13 -20
  266. package/templates/hr-pip/HrPip.dc.html +2 -1
  267. package/templates/hr-pip/ds-base.js +33 -1
  268. package/templates/hr-pip/support.js +13 -20
  269. package/templates/kitchen-sink.html +9 -4
  270. package/templates/legal-msa/LegalMsa.dc.html +2 -1
  271. package/templates/legal-msa/ds-base.js +33 -1
  272. package/templates/legal-msa/support.js +13 -20
  273. package/templates/legal-sow/LegalSow.dc.html +2 -1
  274. package/templates/legal-sow/ds-base.js +33 -1
  275. package/templates/legal-sow/support.js +13 -20
  276. package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +3 -2
  277. package/templates/marketing-campaign-brief/ds-base.js +33 -1
  278. package/templates/marketing-campaign-brief/support.js +13 -20
  279. package/templates/marketing-case-study/MarketingCaseStudy.dc.html +6 -5
  280. package/templates/marketing-case-study/ds-base.js +33 -1
  281. package/templates/marketing-case-study/support.js +13 -20
  282. package/templates/marketing-launch/MarketingLaunch.dc.html +6 -5
  283. package/templates/marketing-launch/ds-base.js +33 -1
  284. package/templates/marketing-launch/support.js +13 -20
  285. package/templates/marketing-newsletter/MarketingNewsletter.dc.html +13 -12
  286. package/templates/marketing-newsletter/ds-base.js +33 -1
  287. package/templates/marketing-newsletter/support.js +13 -20
  288. package/templates/marketing-page/MarketingPage.dc.html +19 -14
  289. package/templates/marketing-page/content-schema.json +1 -0
  290. package/templates/marketing-page/ds-base.js +33 -1
  291. package/templates/marketing-page/support.js +13 -20
  292. package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
  293. package/templates/marketing-press-release/ds-base.js +33 -1
  294. package/templates/marketing-press-release/support.js +13 -20
  295. package/templates/marketing-social-kit/MarketingSocialKit.dc.html +5 -4
  296. package/templates/marketing-social-kit/ds-base.js +33 -1
  297. package/templates/marketing-social-kit/support.js +13 -20
  298. package/templates/sales-one-pager/SalesOnePager.dc.html +5 -4
  299. package/templates/sales-one-pager/ds-base.js +33 -1
  300. package/templates/sales-one-pager/support.js +13 -20
  301. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +7 -6
  302. package/templates/sales-proposal-deck/ds-base.js +33 -1
  303. package/templates/sales-proposal-deck/support.js +13 -20
  304. package/templates/settings/Settings.dc.html +7 -3
  305. package/templates/settings/content-schema.json +7 -0
  306. package/templates/settings/ds-base.js +33 -1
  307. package/templates/settings/support.js +13 -20
  308. package/templates/slide-deck/SlideDeck.dc.html +5 -4
  309. package/templates/slide-deck/ds-base.js +33 -1
  310. package/templates/slide-deck/support.js +13 -20
  311. package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +2 -1
  312. package/templates/team-meeting-agenda/ds-base.js +33 -1
  313. package/templates/team-meeting-agenda/support.js +13 -20
  314. package/templates/tech-incident-report/TechIncidentReport.dc.html +3 -2
  315. package/templates/tech-incident-report/ds-base.js +33 -1
  316. package/templates/tech-incident-report/support.js +13 -20
  317. package/templates/tech-release-notes/TechReleaseNotes.dc.html +6 -5
  318. package/templates/tech-release-notes/ds-base.js +33 -1
  319. package/templates/tech-release-notes/support.js +13 -20
  320. package/templates/tech-retro/TechRetro.dc.html +4 -3
  321. package/templates/tech-retro/ds-base.js +33 -1
  322. package/templates/tech-retro/support.js +13 -20
  323. package/templates/tech-rfc/TechRfc.dc.html +3 -2
  324. package/templates/tech-rfc/ds-base.js +33 -1
  325. package/templates/tech-rfc/support.js +13 -20
  326. package/templates/vn-appointment-transfer/VnAppointmentTransfer.dc.html +36 -35
  327. package/templates/vn-appointment-transfer/ds-base.js +33 -1
  328. package/templates/vn-appointment-transfer/support.js +13 -20
  329. package/templates/vn-certificate-of-employment/VnCertificateOfEmployment.dc.html +27 -26
  330. package/templates/vn-certificate-of-employment/ds-base.js +33 -1
  331. package/templates/vn-certificate-of-employment/support.js +13 -20
  332. package/templates/vn-code-of-conduct/VnCodeOfConduct.dc.html +44 -43
  333. package/templates/vn-code-of-conduct/ds-base.js +33 -1
  334. package/templates/vn-code-of-conduct/support.js +13 -20
  335. package/templates/vn-compensation-regulation/VnCompensationRegulation.dc.html +53 -52
  336. package/templates/vn-compensation-regulation/ds-base.js +33 -1
  337. package/templates/vn-compensation-regulation/support.js +13 -20
  338. package/templates/vn-contract-amendment/VnContractAmendment.dc.html +41 -40
  339. package/templates/vn-contract-amendment/ds-base.js +33 -1
  340. package/templates/vn-contract-amendment/support.js +13 -20
  341. package/templates/vn-contractor-agreement/VnContractorAgreement.dc.html +50 -49
  342. package/templates/vn-contractor-agreement/ds-base.js +33 -1
  343. package/templates/vn-contractor-agreement/support.js +13 -20
  344. package/templates/vn-data-protection-policy/VnDataProtectionPolicy.dc.html +54 -53
  345. package/templates/vn-data-protection-policy/ds-base.js +33 -1
  346. package/templates/vn-data-protection-policy/support.js +13 -20
  347. package/templates/vn-disciplinary-case-file/VnDisciplinaryCaseFile.dc.html +72 -71
  348. package/templates/vn-disciplinary-case-file/ds-base.js +33 -1
  349. package/templates/vn-disciplinary-case-file/support.js +13 -20
  350. package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +21 -20
  351. package/templates/vn-disciplinary-schedule/ds-base.js +33 -1
  352. package/templates/vn-disciplinary-schedule/support.js +13 -20
  353. package/templates/vn-employee-request/VnEmployeeRequest.dc.html +54 -53
  354. package/templates/vn-employee-request/ds-base.js +33 -1
  355. package/templates/vn-employee-request/support.js +13 -20
  356. package/templates/vn-exit-handover/VnExitHandover.dc.html +122 -121
  357. package/templates/vn-exit-handover/ds-base.js +33 -1
  358. package/templates/vn-exit-handover/support.js +13 -20
  359. package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +31 -30
  360. package/templates/vn-foreign-employee-pack/ds-base.js +33 -1
  361. package/templates/vn-foreign-employee-pack/support.js +13 -20
  362. package/templates/vn-grassroots-democracy/VnGrassrootsDemocracy.dc.html +54 -53
  363. package/templates/vn-grassroots-democracy/ds-base.js +33 -1
  364. package/templates/vn-grassroots-democracy/support.js +13 -20
  365. package/templates/vn-infosec-policy/VnInfosecPolicy.dc.html +50 -49
  366. package/templates/vn-infosec-policy/ds-base.js +33 -1
  367. package/templates/vn-infosec-policy/support.js +13 -20
  368. package/templates/vn-internal-labor-regulations/VnInternalLaborRegulations.dc.html +84 -83
  369. package/templates/vn-internal-labor-regulations/ds-base.js +33 -1
  370. package/templates/vn-internal-labor-regulations/support.js +13 -20
  371. package/templates/vn-internship-agreement/VnInternshipAgreement.dc.html +44 -43
  372. package/templates/vn-internship-agreement/ds-base.js +33 -1
  373. package/templates/vn-internship-agreement/support.js +13 -20
  374. package/templates/vn-job-description/VnJobDescription.dc.html +28 -27
  375. package/templates/vn-job-description/ds-base.js +33 -1
  376. package/templates/vn-job-description/support.js +13 -20
  377. package/templates/vn-labor-contract/VnLaborContract.dc.html +109 -108
  378. package/templates/vn-labor-contract/ds-base.js +33 -1
  379. package/templates/vn-labor-contract/support.js +13 -20
  380. package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +32 -31
  381. package/templates/vn-labour-management-book/ds-base.js +33 -1
  382. package/templates/vn-labour-management-book/support.js +13 -20
  383. package/templates/vn-mutual-nda/VnMutualNda.dc.html +45 -44
  384. package/templates/vn-mutual-nda/ds-base.js +33 -1
  385. package/templates/vn-mutual-nda/support.js +13 -20
  386. package/templates/vn-ndnca-ip/VnNdncaIp.dc.html +73 -72
  387. package/templates/vn-ndnca-ip/ds-base.js +33 -1
  388. package/templates/vn-ndnca-ip/support.js +13 -20
  389. package/templates/vn-offer-letter/VnOfferLetter.dc.html +32 -31
  390. package/templates/vn-offer-letter/ds-base.js +33 -1
  391. package/templates/vn-offer-letter/support.js +13 -20
  392. package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +16 -15
  393. package/templates/vn-onboarding-checklist/ds-base.js +33 -1
  394. package/templates/vn-onboarding-checklist/support.js +13 -20
  395. package/templates/vn-pdpl-consent/VnPdplConsent.dc.html +43 -42
  396. package/templates/vn-pdpl-consent/ds-base.js +33 -1
  397. package/templates/vn-pdpl-consent/support.js +13 -20
  398. package/templates/vn-performance-evaluation-regulation/VnPerformanceEvaluationRegulation.dc.html +65 -64
  399. package/templates/vn-performance-evaluation-regulation/ds-base.js +33 -1
  400. package/templates/vn-performance-evaluation-regulation/support.js +13 -20
  401. package/templates/vn-performance-review-form/VnPerformanceReviewForm.dc.html +49 -48
  402. package/templates/vn-performance-review-form/ds-base.js +33 -1
  403. package/templates/vn-performance-review-form/support.js +13 -20
  404. package/templates/vn-phantom-stock/VnPhantomStock.dc.html +41 -40
  405. package/templates/vn-phantom-stock/ds-base.js +33 -1
  406. package/templates/vn-phantom-stock/support.js +13 -20
  407. package/templates/vn-probation-contract/VnProbationContract.dc.html +56 -55
  408. package/templates/vn-probation-contract/ds-base.js +33 -1
  409. package/templates/vn-probation-contract/support.js +13 -20
  410. package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +28 -27
  411. package/templates/vn-receipt-acknowledgement/ds-base.js +33 -1
  412. package/templates/vn-receipt-acknowledgement/support.js +13 -20
  413. package/templates/vn-remote-work-policy/VnRemoteWorkPolicy.dc.html +44 -43
  414. package/templates/vn-remote-work-policy/ds-base.js +33 -1
  415. package/templates/vn-remote-work-policy/support.js +13 -20
  416. package/templates/vn-resignation-letter/VnResignationLetter.dc.html +20 -19
  417. package/templates/vn-resignation-letter/ds-base.js +33 -1
  418. package/templates/vn-resignation-letter/support.js +13 -20
  419. package/templates/vn-salary-scale/VnSalaryScale.dc.html +39 -38
  420. package/templates/vn-salary-scale/ds-base.js +33 -1
  421. package/templates/vn-salary-scale/support.js +13 -20
  422. package/templates/vn-sow-appendix/VnSowAppendix.dc.html +21 -20
  423. package/templates/vn-sow-appendix/ds-base.js +33 -1
  424. package/templates/vn-sow-appendix/support.js +13 -20
  425. package/templates/vn-termination-decision/VnTerminationDecision.dc.html +25 -24
  426. package/templates/vn-termination-decision/ds-base.js +33 -1
  427. package/templates/vn-termination-decision/support.js +13 -20
  428. package/templates/vn-total-rewards-appendix/VnTotalRewardsAppendix.dc.html +63 -62
  429. package/templates/vn-total-rewards-appendix/ds-base.js +33 -1
  430. package/templates/vn-total-rewards-appendix/support.js +13 -20
  431. package/templates/vn-training-commitment/VnTrainingCommitment.dc.html +39 -38
  432. package/templates/vn-training-commitment/ds-base.js +33 -1
  433. package/templates/vn-training-commitment/support.js +13 -20
  434. package/templates/vn-travel-expense-policy/VnTravelExpensePolicy.dc.html +50 -49
  435. package/templates/vn-travel-expense-policy/ds-base.js +33 -1
  436. package/templates/vn-travel-expense-policy/support.js +13 -20
  437. package/tokens/colors.css +19 -1
  438. package/tokens/component-tokens.css +1 -0
  439. package/tokens/element-seeds.json +2 -2
  440. package/tokens/elements.css +228 -21
  441. package/tokens/elevation.css +8 -2
  442. package/tokens/native/CSTokens.kt +37 -2
  443. package/tokens/native/CSTokens.swift +37 -2
  444. package/tokens/native/cs_tokens.dart +37 -2
  445. package/tokens/provenance.json +12 -12
  446. package/tokens/spacing.css +4 -1
  447. package/tokens/tokens.dtcg.json +129 -16
  448. package/tokens/tokens.js +59 -18
  449. package/tokens/tokens.json +58 -17
  450. package/tokens/typography.css +2 -0
  451. package/ui_kits/deck/index.html +4 -0
  452. package/ui_kits/status-hub/StatusHub.jsx +30 -4
  453. package/ui_kits/status-hub/index.html +3 -3
  454. package/ui_kits/status-hub/login.html +55 -9
  455. package/ui_kits/status-hub/project.html +4 -0
  456. package/ui_kits/status-hub/settings.html +35 -13
  457. package/ui_kits/status-hub/status.css +5 -1
  458. package/ui_kits/website/Website.jsx +25 -3
  459. package/ui_kits/website/careers.html +5 -1
  460. package/ui_kits/website/chat.html +5 -3
  461. package/ui_kits/website/index.html +3 -3
  462. package/ui_kits/website/site.css +3 -3
  463. package/ui_kits/website/work.html +5 -1
  464. package/assets/aurora-hoa.png +0 -0
  465. package/assets/aurora-kim.png +0 -0
  466. package/assets/aurora-moc.png +0 -0
  467. package/assets/aurora-thuy.png +0 -0
  468. package/docs/status/assets/favicon.svg +0 -5
  469. package/docs/status/assets/status-legacy.css +0 -399
  470. package/docs/status/assets/status-legacy.js +0 -505
  471. package/docs/status/assets/status.css +0 -644
  472. package/docs/status/assets/status.js +0 -1308
  473. package/docs/status/data/status-feed.json +0 -1
  474. package/docs/status/data/task/TASK-REL-001.js +0 -1
  475. package/docs/status/data/task/TASK-REL-002.js +0 -1
  476. package/docs/status/index.html +0 -42
  477. package/docs/status/roadmap.html +0 -4
  478. package/docs/status/status-legacy.html +0 -117
  479. package/docs/tasks/BACKLOG.md +0 -26
  480. package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +0 -55
  481. package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +0 -54
@@ -1070,16 +1070,15 @@
1070
1070
  }
1071
1071
 
1072
1072
  // src/cdn.ts
1073
- var REACT_URL = "https://unpkg.com/umd-react@19.2.8/dist/react.production.min.js";
1074
- var REACT_SRI = "sha384-/nh8CKeV7Pk42Gpda6L4DM1JtZ2bwPOi+eh9O7+a1Y22UkGs8+mw3aW1shQ9FV30";
1075
- var REACT_DOM_URL = "https://unpkg.com/umd-react@19.2.8/dist/react-dom.production.min.js";
1076
- var REACT_DOM_SRI = "sha384-rhLCB72qrpcezgY2QW0panvW9IeO32m94nvuDVRD/iEGHXoUbjtijL6Xi/Z5/mzu";
1077
- var BABEL_URL = "https://unpkg.com/@babel/standalone@7.29.0/babel.min.js";
1078
- var BABEL_SRI = "sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y";
1079
- function cdnScriptFor(url, sri) {
1073
+ var REACT_LOCAL = "../../_vendor/react/react.production.min.js";
1074
+ var REACT_DOM_LOCAL = "../../_vendor/react/react-dom.production.min.js";
1075
+ var BABEL_LOCAL = "../../_vendor/babel/babel.min.js";
1076
+ // Product surfaces are offline-first (UX-026 / D4): no third-party script origins.
1077
+ // Host editors may still remap via window.__resources[localPath].
1078
+ function localScriptFor(path) {
1080
1079
  const res = window.__resources;
1081
- const v = res ? res[url] : void 0;
1082
- return typeof v === "string" && v ? { src: v } : { src: url, integrity: sri };
1080
+ const v = res ? res[path] : void 0;
1081
+ return typeof v === "string" && v ? v : path;
1083
1082
  }
1084
1083
 
1085
1084
  // src/external.ts
@@ -1106,16 +1105,12 @@
1106
1105
  function ensureBabel() {
1107
1106
  if (window.Babel) return Promise.resolve();
1108
1107
  if (babelLoading) return babelLoading;
1109
- const babel = cdnScriptFor(BABEL_URL, BABEL_SRI);
1108
+ const src = localScriptFor(BABEL_LOCAL);
1110
1109
  babelLoading = new Promise((res, rej) => {
1111
1110
  const s = document.createElement("script");
1112
- s.src = babel.src;
1113
- if (babel.integrity) {
1114
- s.integrity = babel.integrity;
1115
- s.crossOrigin = "anonymous";
1116
- }
1111
+ s.src = src;
1117
1112
  s.onload = () => res();
1118
- s.onerror = rej;
1113
+ s.onerror = () => rej(new Error("failed to load local Babel: " + src));
1119
1114
  document.head.appendChild(s);
1120
1115
  });
1121
1116
  return babelLoading;
@@ -1768,11 +1763,9 @@
1768
1763
  function loadReactUmd() {
1769
1764
  const w = window;
1770
1765
  if (w.React && w.ReactDOM) return Promise.resolve();
1771
- const react = cdnScriptFor(REACT_URL, REACT_SRI);
1772
- const reactDom = cdnScriptFor(REACT_DOM_URL, REACT_DOM_SRI);
1773
1766
  return Promise.all([
1774
- loadScript(react.src, react.integrity),
1775
- loadScript(reactDom.src, reactDom.integrity)
1767
+ loadScript(localScriptFor(REACT_LOCAL)),
1768
+ loadScript(localScriptFor(REACT_DOM_LOCAL))
1776
1769
  ]).then(() => void 0);
1777
1770
  }
1778
1771
  function init() {
package/tokens/colors.css CHANGED
@@ -20,11 +20,21 @@
20
20
  --cs-color-text-accent: #6E3B0E; /* accessible ochre-adjacent link/accent text */
21
21
  --cs-color-text-muted: #6E5A4C; /* APCA-safe secondary text on page */
22
22
 
23
- /* ---- Semantic foregrounds ---- */
23
+ /* ---- Semantic fills + paired foregrounds (literal-on-semantic, UX-008) ---- */
24
24
  --cs-color-semantic-success: #166534;
25
25
  --cs-color-semantic-danger: #B42318;
26
26
  --cs-color-semantic-warning: #92400E;
27
27
  --cs-color-semantic-info: #1D4ED8;
28
+ --cs-color-semantic-success-fg: #FFFFFF;
29
+ --cs-color-semantic-danger-fg: #FFFFFF;
30
+ --cs-color-semantic-warning-fg: #FFFFFF;
31
+ --cs-color-semantic-info-fg: #FFFFFF;
32
+
33
+ /* ---- Document palette (Style Guide Articles · legal A4 instruments) ---- */
34
+ --cs-doc-ink: #1A1614;
35
+ --cs-doc-slate: #3F4C55;
36
+ --cs-doc-fill: #FDE68A;
37
+ --cs-doc-fill-ink: #1A1614;
28
38
 
29
39
  /* ---- Accent alias + border ---- */
30
40
  --cs-color-accent-ochre: #F4BA17; /* focus rings */
@@ -52,6 +62,10 @@ a:hover { color: var(--cs-color-link-hover); }
52
62
  --cs-color-semantic-danger: #F87171;
53
63
  --cs-color-semantic-warning: #FBBF24;
54
64
  --cs-color-semantic-info: #7CB2FB;
65
+ --cs-color-semantic-success-fg: #1a1108;
66
+ --cs-color-semantic-danger-fg: #1a1108;
67
+ --cs-color-semantic-warning-fg: #1a1108;
68
+ --cs-color-semantic-info-fg: #1a1108;
55
69
  --cs-color-border-default: #4a3a2c;
56
70
  --cs-color-link: #f4ba17;
57
71
  --cs-color-link-hover: #f5ead9;
@@ -70,6 +84,10 @@ a:hover { color: var(--cs-color-link-hover); }
70
84
  --cs-color-semantic-danger: #F87171;
71
85
  --cs-color-semantic-warning: #FBBF24;
72
86
  --cs-color-semantic-info: #7CB2FB;
87
+ --cs-color-semantic-success-fg: #1a1108;
88
+ --cs-color-semantic-danger-fg: #1a1108;
89
+ --cs-color-semantic-warning-fg: #1a1108;
90
+ --cs-color-semantic-info-fg: #1a1108;
73
91
  --cs-color-border-default: #4a3a2c;
74
92
  --cs-color-link: #f4ba17;
75
93
  --cs-color-link-hover: #f5ead9;
@@ -2,6 +2,7 @@
2
2
  * Exact values from @cyberskill/tokens. Buttons carry a full size ramp with a
3
3
  * 44px comfortable default touch target; TextField matches. */
4
4
  :root {
5
+ --cs-focus-ring: 3px; /* @kind other */ /* signature focus outline width */
5
6
  /* Button */
6
7
  --cs-component-button-primary-bg: #45210E;
7
8
  --cs-component-button-primary-fg: #FFFFFF;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "system": "CyberSkill Design System",
4
- "version": "1.0.0",
4
+ "version": "1.3.8",
5
5
  "note": "OKLCH seed contract for the 15 element packs × light/dark (30 sets). SoT for scripts/generate-element-packs.mjs — do not hand-edit tokens/elements.css. Owner bar (Jul 2026): soft/middle/deep clearly distinct; middle intensity synced across elements; harmonious role palettes; light↔dark same-hue identity. Public variant names unchanged."
6
6
  },
7
7
  "intensity": {
@@ -35,7 +35,7 @@
35
35
  "tintCMax": 0.06
36
36
  },
37
37
  "tuongSinh": {
38
- "tho": "hoa",
38
+ "tho": "kim",
39
39
  "hoa": "tho",
40
40
  "thuy": "moc",
41
41
  "moc": "hoa",
@@ -5,22 +5,25 @@
5
5
  * Five elements: Kim (metal) · Mộc (wood) · Thủy (water) · Hỏa (fire) · Thổ (earth).
6
6
  * Soft / middle / deep intensity ladder (middle = default). Thổ middle pins logo ochre.
7
7
  *
8
- * Contract — every element/variant sets exactly these 9 role tokens:
8
+ * Contract — every element/variant sets exactly these 10 role tokens:
9
9
  * --cs-accent · --cs-accent-strong · --cs-accent-bright · --cs-accent-on
10
- * --cs-accent-tint · --cs-accent-ink · --cs-accent-glow · --cs-accent-grad-a/b
10
+ * --cs-accent-on-strong · --cs-accent-tint · --cs-accent-ink
11
+ * --cs-accent-glow · --cs-accent-grad-a/b
11
12
  * TEXT RULE: text sits on -bright or -tint only — never on the mid-tone -accent.
12
- * Focus ring --cs-color-accent-ochre and semantic status tokens NEVER remap.
13
+ * Text on -strong uses --cs-accent-on-strong (WCAG AA ≥4.5:1 light and dark).
14
+ * Focus indicator (text-primary contour + ochre halo) and semantic status tokens NEVER remap.
13
15
  * Generative cycle (Tương sinh) only for grad-b: Mộc→Hỏa→Thổ→Kim→Thủy→Mộc. */
14
16
  :root {
15
17
  --cs-accent: #F4BA17;
16
18
  --cs-accent-strong: #A47D17;
17
19
  --cs-accent-bright: #F4BA17;
18
20
  --cs-accent-on: #45210E;
21
+ --cs-accent-on-strong: #1A1108;
19
22
  --cs-accent-tint: #FBF4E9;
20
23
  --cs-accent-ink: #45210E;
21
24
  --cs-accent-glow: rgba(244, 186, 23, 0.48);
22
25
  --cs-accent-grad-a: #F4BA17;
23
- --cs-accent-grad-b: #FCAF91;
26
+ --cs-accent-grad-b: #F3B958;
24
27
  }
25
28
 
26
29
  /* ---- Element reach beyond accent ---- */
@@ -51,35 +54,38 @@
51
54
  --cs-accent-strong: #A47D17;
52
55
  --cs-accent-bright: #F4BA17;
53
56
  --cs-accent-on: #45210E;
57
+ --cs-accent-on-strong: #1A1108;
54
58
  --cs-accent-tint: #FBF4E9;
55
59
  --cs-accent-ink: #45210E;
56
60
  --cs-accent-glow: rgba(244, 186, 23, 0.48);
57
61
  --cs-accent-grad-a: #F4BA17;
58
- --cs-accent-grad-b: #FCAF91;
62
+ --cs-accent-grad-b: #F3B958;
59
63
  }
60
64
  [data-cs-element="tho"][data-cs-variant="sand"] {
61
65
  --cs-accent: #F8E9C0;
62
66
  --cs-accent-strong: #90825E;
63
67
  --cs-accent-bright: #F6EBCC;
64
68
  --cs-accent-on: #292414;
69
+ --cs-accent-on-strong: #1A1108;
65
70
  --cs-accent-tint: #FBF7EA;
66
71
  --cs-accent-ink: #292414;
67
72
  --cs-accent-glow: rgba(248, 233, 192, 0.48);
68
73
  --cs-accent-grad-a: #F8E9C0;
69
- --cs-accent-grad-b: #FCAF91;
74
+ --cs-accent-grad-b: #F3B958;
70
75
  --cs-color-text-accent: #90825E;
71
- --cs-color-link: #90825E;
76
+ --cs-color-link: #7B6D4A;
72
77
  }
73
78
  [data-cs-element="tho"][data-cs-variant="clay"] {
74
79
  --cs-accent: #513801;
75
80
  --cs-accent-strong: #201300;
76
81
  --cs-accent-bright: #DEC7A2;
77
82
  --cs-accent-on: #2D220E;
83
+ --cs-accent-on-strong: #FFFFFF;
78
84
  --cs-accent-tint: #FFF6E7;
79
85
  --cs-accent-ink: #2D220E;
80
86
  --cs-accent-glow: rgba(81, 56, 1, 0.48);
81
87
  --cs-accent-grad-a: #513801;
82
- --cs-accent-grad-b: #FCAF91;
88
+ --cs-accent-grad-b: #F3B958;
83
89
  --cs-color-text-accent: #201300;
84
90
  --cs-color-link: #201300;
85
91
  }
@@ -90,32 +96,35 @@
90
96
  --cs-accent-strong: #B47054;
91
97
  --cs-accent-bright: #FED3C3;
92
98
  --cs-accent-on: #381B10;
99
+ --cs-accent-on-strong: #1A1108;
93
100
  --cs-accent-tint: #FFF4F0;
94
101
  --cs-accent-ink: #381B10;
95
102
  --cs-accent-glow: rgba(252, 175, 145, 0.48);
96
103
  --cs-accent-grad-a: #FCAF91;
97
104
  --cs-accent-grad-b: #F4BA17;
98
105
  --cs-color-text-accent: #B47054;
99
- --cs-color-link: #B47054;
106
+ --cs-color-link: #A15E43;
100
107
  }
101
108
  [data-cs-element="hoa"][data-cs-variant="plasma"] {
102
109
  --cs-accent: #FFE1D8;
103
110
  --cs-accent-strong: #967C75;
104
111
  --cs-accent-bright: #FCE6DF;
105
112
  --cs-accent-on: #2C211E;
113
+ --cs-accent-on-strong: #1A1108;
106
114
  --cs-accent-tint: #FEF4F2;
107
115
  --cs-accent-ink: #2C211E;
108
116
  --cs-accent-glow: rgba(255, 225, 216, 0.48);
109
117
  --cs-accent-grad-a: #FFE1D8;
110
118
  --cs-accent-grad-b: #F4BA17;
111
119
  --cs-color-text-accent: #967C75;
112
- --cs-color-link: #967C75;
120
+ --cs-color-link: #846B64;
113
121
  }
114
122
  [data-cs-element="hoa"][data-cs-variant="lava"] {
115
123
  --cs-accent: #622B06;
116
124
  --cs-accent-strong: #280D00;
117
125
  --cs-accent-bright: #F1BEA4;
118
126
  --cs-accent-on: #361D0F;
127
+ --cs-accent-on-strong: #FFFFFF;
119
128
  --cs-accent-tint: #FFF4EF;
120
129
  --cs-accent-ink: #361D0F;
121
130
  --cs-accent-glow: rgba(98, 43, 6, 0.48);
@@ -131,32 +140,35 @@
131
140
  --cs-accent-strong: #108EA0;
132
141
  --cs-accent-bright: #99EEFF;
133
142
  --cs-accent-on: #012A30;
143
+ --cs-accent-on-strong: #1A1108;
134
144
  --cs-accent-tint: #E7FBFF;
135
145
  --cs-accent-ink: #012A30;
136
146
  --cs-accent-glow: rgba(46, 219, 247, 0.48);
137
147
  --cs-accent-grad-a: #2EDBF7;
138
148
  --cs-accent-grad-b: #A3D768;
139
149
  --cs-color-text-accent: #108EA0;
140
- --cs-color-link: #108EA0;
150
+ --cs-color-link: #027B8B;
141
151
  }
142
152
  [data-cs-element="thuy"][data-cs-variant="mist"] {
143
153
  --cs-accent: #C0F5FC;
144
154
  --cs-accent-strong: #5A8A90;
145
155
  --cs-accent-bright: #CDF4F9;
146
156
  --cs-accent-on: #13282B;
157
+ --cs-accent-on-strong: #1A1108;
147
158
  --cs-accent-tint: #EBFAFC;
148
159
  --cs-accent-ink: #13282B;
149
160
  --cs-accent-glow: rgba(192, 245, 252, 0.48);
150
161
  --cs-accent-grad-a: #C0F5FC;
151
162
  --cs-accent-grad-b: #A3D768;
152
163
  --cs-color-text-accent: #5A8A90;
153
- --cs-color-link: #5A8A90;
164
+ --cs-color-link: #48787E;
154
165
  }
155
166
  [data-cs-element="thuy"][data-cs-variant="ocean"] {
156
167
  --cs-accent: #004554;
157
168
  --cs-accent-strong: #011A21;
158
169
  --cs-accent-bright: #A8D3E0;
159
170
  --cs-accent-on: #10282F;
171
+ --cs-accent-on-strong: #FFFFFF;
160
172
  --cs-accent-tint: #EAFAFF;
161
173
  --cs-accent-ink: #10282F;
162
174
  --cs-accent-glow: rgba(0, 69, 84, 0.48);
@@ -172,32 +184,35 @@
172
184
  --cs-accent-strong: #629122;
173
185
  --cs-accent-bright: #C5ED9C;
174
186
  --cs-accent-on: #182A00;
187
+ --cs-accent-on-strong: #1A1108;
175
188
  --cs-accent-tint: #EFFCE3;
176
189
  --cs-accent-ink: #182A00;
177
190
  --cs-accent-glow: rgba(163, 215, 104, 0.48);
178
191
  --cs-accent-grad-a: #A3D768;
179
192
  --cs-accent-grad-b: #FCAF91;
180
193
  --cs-color-text-accent: #629122;
181
- --cs-color-link: #629122;
194
+ --cs-color-link: #517B13;
182
195
  }
183
196
  [data-cs-element="moc"][data-cs-variant="bamboo"] {
184
197
  --cs-accent: #E1F1C8;
185
198
  --cs-accent-strong: #7C8965;
186
199
  --cs-accent-bright: #E5F1D2;
187
200
  --cs-accent-on: #212617;
201
+ --cs-accent-on-strong: #1A1108;
188
202
  --cs-accent-tint: #F4F9ED;
189
203
  --cs-accent-ink: #212617;
190
204
  --cs-accent-glow: rgba(225, 241, 200, 0.48);
191
205
  --cs-accent-grad-a: #E1F1C8;
192
206
  --cs-accent-grad-b: #FCAF91;
193
207
  --cs-color-text-accent: #7C8965;
194
- --cs-color-link: #7C8965;
208
+ --cs-color-link: #687451;
195
209
  }
196
210
  [data-cs-element="moc"][data-cs-variant="forest"] {
197
211
  --cs-accent: #1A4A01;
198
212
  --cs-accent-strong: #051D00;
199
213
  --cs-accent-bright: #B0D8A3;
200
214
  --cs-accent-on: #162A0E;
215
+ --cs-accent-on-strong: #FFFFFF;
201
216
  --cs-accent-tint: #ECFDE7;
202
217
  --cs-accent-ink: #162A0E;
203
218
  --cs-accent-glow: rgba(26, 74, 1, 0.48);
@@ -213,32 +228,35 @@
213
228
  --cs-accent-strong: #AC780B;
214
229
  --cs-accent-bright: #FDD89F;
215
230
  --cs-accent-on: #312002;
231
+ --cs-accent-on-strong: #1A1108;
216
232
  --cs-accent-tint: #FFF5E7;
217
233
  --cs-accent-ink: #312002;
218
234
  --cs-accent-glow: rgba(243, 185, 88, 0.48);
219
235
  --cs-accent-grad-a: #F3B958;
220
236
  --cs-accent-grad-b: #2EDBF7;
221
237
  --cs-color-text-accent: #AC780B;
222
- --cs-color-link: #AC780B;
238
+ --cs-color-link: #966700;
223
239
  }
224
240
  [data-cs-element="kim"][data-cs-variant="titanium"] {
225
241
  --cs-accent: #FEE5C7;
226
242
  --cs-accent-strong: #947F65;
227
243
  --cs-accent-bright: #FBE8D2;
228
244
  --cs-accent-on: #2B2217;
245
+ --cs-accent-on-strong: #1A1108;
229
246
  --cs-accent-tint: #FDF5ED;
230
247
  --cs-accent-ink: #2B2217;
231
248
  --cs-accent-glow: rgba(254, 229, 199, 0.48);
232
249
  --cs-accent-grad-a: #FEE5C7;
233
250
  --cs-accent-grad-b: #2EDBF7;
234
251
  --cs-color-text-accent: #947F65;
235
- --cs-color-link: #947F65;
252
+ --cs-color-link: #826D54;
236
253
  }
237
254
  [data-cs-element="kim"][data-cs-variant="steel"] {
238
255
  --cs-accent: #503901;
239
256
  --cs-accent-strong: #1F1400;
240
257
  --cs-accent-bright: #DCC8A2;
241
258
  --cs-accent-on: #2D220E;
259
+ --cs-accent-on-strong: #FFFFFF;
242
260
  --cs-accent-tint: #FEF6E7;
243
261
  --cs-accent-ink: #2D220E;
244
262
  --cs-accent-glow: rgba(80, 57, 1, 0.48);
@@ -256,13 +274,22 @@
256
274
  --cs-color-link: var(--cs-accent-bright);
257
275
  --cs-color-link-hover: var(--cs-color-text-primary);
258
276
  }
277
+ @media (prefers-color-scheme: dark) {
278
+ [data-theme="system"] [data-cs-element], [data-cs-element][data-theme="system"] {
279
+ --cs-component-button-primary-bg: var(--cs-accent-strong);
280
+ --cs-component-button-primary-fg: var(--cs-accent-on);
281
+ --cs-color-text-accent: var(--cs-accent-bright);
282
+ --cs-color-link: var(--cs-accent-bright);
283
+ --cs-color-link-hover: var(--cs-color-text-primary);
284
+ }
285
+ }
259
286
 
260
287
  /* ---- Aurora washes ---- */
261
- .cs-aurora-wash { background-image: url("../assets/aurora-gold.jpg"); background-size: cover; background-position: center; }
262
- [data-cs-element="hoa"] .cs-aurora-wash { background-image: url("../assets/aurora-hoa.png"); }
263
- [data-cs-element="thuy"] .cs-aurora-wash { background-image: url("../assets/aurora-thuy.png"); }
264
- [data-cs-element="moc"] .cs-aurora-wash { background-image: url("../assets/aurora-moc.png"); }
265
- [data-cs-element="kim"] .cs-aurora-wash { background-image: url("../assets/aurora-kim.png"); }
288
+ .cs-aurora-wash { background-image: url("../assets/aurora-tho.webp"); background-size: cover; background-position: center; }
289
+ [data-cs-element="hoa"] .cs-aurora-wash { background-image: url("../assets/aurora-hoa.webp"); }
290
+ [data-cs-element="thuy"] .cs-aurora-wash { background-image: url("../assets/aurora-thuy.webp"); }
291
+ [data-cs-element="moc"] .cs-aurora-wash { background-image: url("../assets/aurora-moc.webp"); }
292
+ [data-cs-element="kim"] .cs-aurora-wash { background-image: url("../assets/aurora-kim.webp"); }
266
293
 
267
294
  /* ---- APCA-derived DARK elemental packs (generated; hue-locked to light) ---- */
268
295
  [data-theme="dark"][data-cs-element="tho"][data-cs-variant="sand"] {
@@ -270,118 +297,298 @@
270
297
  --cs-accent-bright: #F6EBCC;
271
298
  --cs-accent-strong: #665A37;
272
299
  --cs-accent-on: #f5ead9;
300
+ --cs-accent-on-strong: #FFFDF8;
273
301
  --cs-accent-tint: #332701;
274
302
  --cs-accent-ink: #F6EBCC;
275
303
  }
304
+ @media (prefers-color-scheme: dark) {
305
+ [data-theme="system"][data-cs-element="tho"][data-cs-variant="sand"] {
306
+ --cs-accent: #F8E9C0;
307
+ --cs-accent-bright: #F6EBCC;
308
+ --cs-accent-strong: #665A37;
309
+ --cs-accent-on: #f5ead9;
310
+ --cs-accent-on-strong: #FFFDF8;
311
+ --cs-accent-tint: #332701;
312
+ --cs-accent-ink: #F6EBCC;
313
+ }
314
+ }
276
315
  [data-theme="dark"][data-cs-element="tho"] {
277
316
  --cs-accent: #F4BA17;
278
317
  --cs-accent-bright: #FEC42C;
279
318
  --cs-accent-strong: #73560B;
280
319
  --cs-accent-on: #f5ead9;
320
+ --cs-accent-on-strong: #FFFDF8;
281
321
  --cs-accent-tint: #352602;
282
322
  --cs-accent-ink: #FECD5E;
283
323
  }
324
+ @media (prefers-color-scheme: dark) {
325
+ [data-theme="system"][data-cs-element="tho"] {
326
+ --cs-accent: #F4BA17;
327
+ --cs-accent-bright: #FEC42C;
328
+ --cs-accent-strong: #73560B;
329
+ --cs-accent-on: #f5ead9;
330
+ --cs-accent-on-strong: #FFFDF8;
331
+ --cs-accent-tint: #352602;
332
+ --cs-accent-ink: #FECD5E;
333
+ }
334
+ }
284
335
  [data-theme="dark"][data-cs-element="tho"][data-cs-variant="clay"] {
285
336
  --cs-accent: #CDB07E;
286
337
  --cs-accent-bright: #E4CDA8;
287
338
  --cs-accent-strong: #1F1300;
288
339
  --cs-accent-on: #f5ead9;
340
+ --cs-accent-on-strong: #FFFDF8;
289
341
  --cs-accent-tint: #372502;
290
342
  --cs-accent-ink: #E7D0AB;
291
343
  }
344
+ @media (prefers-color-scheme: dark) {
345
+ [data-theme="system"][data-cs-element="tho"][data-cs-variant="clay"] {
346
+ --cs-accent: #CDB07E;
347
+ --cs-accent-bright: #E4CDA8;
348
+ --cs-accent-strong: #1F1300;
349
+ --cs-accent-on: #f5ead9;
350
+ --cs-accent-on-strong: #FFFDF8;
351
+ --cs-accent-tint: #372502;
352
+ --cs-accent-ink: #E7D0AB;
353
+ }
354
+ }
292
355
  [data-theme="dark"][data-cs-element="hoa"][data-cs-variant="plasma"] {
293
356
  --cs-accent: #FFE1D8;
294
357
  --cs-accent-bright: #FCE6DF;
295
358
  --cs-accent-strong: #6F5750;
296
359
  --cs-accent-on: #f5ead9;
360
+ --cs-accent-on-strong: #FFFDF8;
297
361
  --cs-accent-tint: #38231C;
298
362
  --cs-accent-ink: #FCE6DF;
299
363
  }
364
+ @media (prefers-color-scheme: dark) {
365
+ [data-theme="system"][data-cs-element="hoa"][data-cs-variant="plasma"] {
366
+ --cs-accent: #FFE1D8;
367
+ --cs-accent-bright: #FCE6DF;
368
+ --cs-accent-strong: #6F5750;
369
+ --cs-accent-on: #f5ead9;
370
+ --cs-accent-on-strong: #FFFDF8;
371
+ --cs-accent-tint: #38231C;
372
+ --cs-accent-ink: #FCE6DF;
373
+ }
374
+ }
300
375
  [data-theme="dark"][data-cs-element="hoa"] {
301
376
  --cs-accent: #FCAF91;
302
377
  --cs-accent-bright: #FED3C3;
303
378
  --cs-accent-strong: #8A4A30;
304
379
  --cs-accent-on: #f5ead9;
380
+ --cs-accent-on-strong: #FFFDF8;
305
381
  --cs-accent-tint: #411E0F;
306
382
  --cs-accent-ink: #FED3C3;
307
383
  }
384
+ @media (prefers-color-scheme: dark) {
385
+ [data-theme="system"][data-cs-element="hoa"] {
386
+ --cs-accent: #FCAF91;
387
+ --cs-accent-bright: #FED3C3;
388
+ --cs-accent-strong: #8A4A30;
389
+ --cs-accent-on: #f5ead9;
390
+ --cs-accent-on-strong: #FFFDF8;
391
+ --cs-accent-tint: #411E0F;
392
+ --cs-accent-ink: #FED3C3;
393
+ }
394
+ }
308
395
  [data-theme="dark"][data-cs-element="hoa"][data-cs-variant="lava"] {
309
396
  --cs-accent: #E8A683;
310
397
  --cs-accent-bright: #F8C4AA;
311
398
  --cs-accent-strong: #280D00;
312
399
  --cs-accent-on: #f5ead9;
400
+ --cs-accent-on-strong: #FFFDF8;
313
401
  --cs-accent-tint: #401F0B;
314
402
  --cs-accent-ink: #FBC7AD;
315
403
  }
404
+ @media (prefers-color-scheme: dark) {
405
+ [data-theme="system"][data-cs-element="hoa"][data-cs-variant="lava"] {
406
+ --cs-accent: #E8A683;
407
+ --cs-accent-bright: #F8C4AA;
408
+ --cs-accent-strong: #280D00;
409
+ --cs-accent-on: #f5ead9;
410
+ --cs-accent-on-strong: #FFFDF8;
411
+ --cs-accent-tint: #401F0B;
412
+ --cs-accent-ink: #FBC7AD;
413
+ }
414
+ }
316
415
  [data-theme="dark"][data-cs-element="thuy"][data-cs-variant="mist"] {
317
416
  --cs-accent: #C0F5FC;
318
417
  --cs-accent-bright: #CDF4F9;
319
418
  --cs-accent-strong: #316167;
320
419
  --cs-accent-on: #f5ead9;
420
+ --cs-accent-on-strong: #FFFDF8;
321
421
  --cs-accent-tint: #022F34;
322
422
  --cs-accent-ink: #CDF4F9;
323
423
  }
424
+ @media (prefers-color-scheme: dark) {
425
+ [data-theme="system"][data-cs-element="thuy"][data-cs-variant="mist"] {
426
+ --cs-accent: #C0F5FC;
427
+ --cs-accent-bright: #CDF4F9;
428
+ --cs-accent-strong: #316167;
429
+ --cs-accent-on: #f5ead9;
430
+ --cs-accent-on-strong: #FFFDF8;
431
+ --cs-accent-tint: #022F34;
432
+ --cs-accent-ink: #CDF4F9;
433
+ }
434
+ }
324
435
  [data-theme="dark"][data-cs-element="thuy"] {
325
436
  --cs-accent: #2EDBF7;
326
437
  --cs-accent-bright: #99EEFF;
327
438
  --cs-accent-strong: #046270;
328
439
  --cs-accent-on: #f5ead9;
440
+ --cs-accent-on-strong: #FFFDF8;
329
441
  --cs-accent-tint: #032F36;
330
442
  --cs-accent-ink: #99EEFF;
331
443
  }
444
+ @media (prefers-color-scheme: dark) {
445
+ [data-theme="system"][data-cs-element="thuy"] {
446
+ --cs-accent: #2EDBF7;
447
+ --cs-accent-bright: #99EEFF;
448
+ --cs-accent-strong: #046270;
449
+ --cs-accent-on: #f5ead9;
450
+ --cs-accent-on-strong: #FFFDF8;
451
+ --cs-accent-tint: #032F36;
452
+ --cs-accent-ink: #99EEFF;
453
+ }
454
+ }
332
455
  [data-theme="dark"][data-cs-element="thuy"][data-cs-variant="ocean"] {
333
456
  --cs-accent: #82BCCD;
334
457
  --cs-accent-bright: #ABD6E3;
335
458
  --cs-accent-strong: #011A21;
336
459
  --cs-accent-on: #f5ead9;
460
+ --cs-accent-on-strong: #FFFDF8;
337
461
  --cs-accent-tint: #002F3A;
338
462
  --cs-accent-ink: #AED9E6;
339
463
  }
464
+ @media (prefers-color-scheme: dark) {
465
+ [data-theme="system"][data-cs-element="thuy"][data-cs-variant="ocean"] {
466
+ --cs-accent: #82BCCD;
467
+ --cs-accent-bright: #ABD6E3;
468
+ --cs-accent-strong: #011A21;
469
+ --cs-accent-on: #f5ead9;
470
+ --cs-accent-on-strong: #FFFDF8;
471
+ --cs-accent-tint: #002F3A;
472
+ --cs-accent-ink: #AED9E6;
473
+ }
474
+ }
340
475
  [data-theme="dark"][data-cs-element="moc"][data-cs-variant="bamboo"] {
341
476
  --cs-accent: #E1F1C8;
342
477
  --cs-accent-bright: #E5F1D2;
343
478
  --cs-accent-strong: #54603E;
344
479
  --cs-accent-on: #f5ead9;
480
+ --cs-accent-on-strong: #FFFDF8;
345
481
  --cs-accent-tint: #232D0B;
346
482
  --cs-accent-ink: #E5F1D2;
347
483
  }
484
+ @media (prefers-color-scheme: dark) {
485
+ [data-theme="system"][data-cs-element="moc"][data-cs-variant="bamboo"] {
486
+ --cs-accent: #E1F1C8;
487
+ --cs-accent-bright: #E5F1D2;
488
+ --cs-accent-strong: #54603E;
489
+ --cs-accent-on: #f5ead9;
490
+ --cs-accent-on-strong: #FFFDF8;
491
+ --cs-accent-tint: #232D0B;
492
+ --cs-accent-ink: #E5F1D2;
493
+ }
494
+ }
348
495
  [data-theme="dark"][data-cs-element="moc"] {
349
496
  --cs-accent: #A3D768;
350
497
  --cs-accent-bright: #C5ED9C;
351
498
  --cs-accent-strong: #416501;
352
499
  --cs-accent-on: #f5ead9;
500
+ --cs-accent-on-strong: #FFFDF8;
353
501
  --cs-accent-tint: #1F2E0B;
354
502
  --cs-accent-ink: #C5ED9C;
355
503
  }
504
+ @media (prefers-color-scheme: dark) {
505
+ [data-theme="system"][data-cs-element="moc"] {
506
+ --cs-accent: #A3D768;
507
+ --cs-accent-bright: #C5ED9C;
508
+ --cs-accent-strong: #416501;
509
+ --cs-accent-on: #f5ead9;
510
+ --cs-accent-on-strong: #FFFDF8;
511
+ --cs-accent-tint: #1F2E0B;
512
+ --cs-accent-ink: #C5ED9C;
513
+ }
514
+ }
356
515
  [data-theme="dark"][data-cs-element="moc"][data-cs-variant="forest"] {
357
516
  --cs-accent: #8EC27D;
358
517
  --cs-accent-bright: #B0D8A3;
359
518
  --cs-accent-strong: #061D00;
360
519
  --cs-accent-on: #f5ead9;
520
+ --cs-accent-on-strong: #FFFDF8;
361
521
  --cs-accent-tint: #193011;
362
522
  --cs-accent-ink: #B6DFA9;
363
523
  }
524
+ @media (prefers-color-scheme: dark) {
525
+ [data-theme="system"][data-cs-element="moc"][data-cs-variant="forest"] {
526
+ --cs-accent: #8EC27D;
527
+ --cs-accent-bright: #B0D8A3;
528
+ --cs-accent-strong: #061D00;
529
+ --cs-accent-on: #f5ead9;
530
+ --cs-accent-on-strong: #FFFDF8;
531
+ --cs-accent-tint: #193011;
532
+ --cs-accent-ink: #B6DFA9;
533
+ }
534
+ }
364
535
  [data-theme="dark"][data-cs-element="kim"][data-cs-variant="titanium"] {
365
536
  --cs-accent: #FEE5C7;
366
537
  --cs-accent-bright: #FBE8D2;
367
538
  --cs-accent-strong: #6B573E;
368
539
  --cs-accent-on: #f5ead9;
540
+ --cs-accent-on-strong: #FFFDF8;
369
541
  --cs-accent-tint: #37250B;
370
542
  --cs-accent-ink: #FBE8D2;
371
543
  }
544
+ @media (prefers-color-scheme: dark) {
545
+ [data-theme="system"][data-cs-element="kim"][data-cs-variant="titanium"] {
546
+ --cs-accent: #FEE5C7;
547
+ --cs-accent-bright: #FBE8D2;
548
+ --cs-accent-strong: #6B573E;
549
+ --cs-accent-on: #f5ead9;
550
+ --cs-accent-on-strong: #FFFDF8;
551
+ --cs-accent-tint: #37250B;
552
+ --cs-accent-ink: #FBE8D2;
553
+ }
554
+ }
372
555
  [data-theme="dark"][data-cs-element="kim"] {
373
556
  --cs-accent: #F3B958;
374
557
  --cs-accent-bright: #FDD89F;
375
558
  --cs-accent-strong: #795303;
376
559
  --cs-accent-on: #f5ead9;
560
+ --cs-accent-on-strong: #FFFDF8;
377
561
  --cs-accent-tint: #382503;
378
562
  --cs-accent-ink: #FDD89F;
379
563
  }
564
+ @media (prefers-color-scheme: dark) {
565
+ [data-theme="system"][data-cs-element="kim"] {
566
+ --cs-accent: #F3B958;
567
+ --cs-accent-bright: #FDD89F;
568
+ --cs-accent-strong: #795303;
569
+ --cs-accent-on: #f5ead9;
570
+ --cs-accent-on-strong: #FFFDF8;
571
+ --cs-accent-tint: #382503;
572
+ --cs-accent-ink: #FDD89F;
573
+ }
574
+ }
380
575
  [data-theme="dark"][data-cs-element="kim"][data-cs-variant="steel"] {
381
576
  --cs-accent: #CCB17E;
382
577
  --cs-accent-bright: #DFCBA5;
383
578
  --cs-accent-strong: #1F1400;
384
579
  --cs-accent-on: #f5ead9;
580
+ --cs-accent-on-strong: #FFFDF8;
385
581
  --cs-accent-tint: #362602;
386
582
  --cs-accent-ink: #E6D1AB;
387
583
  }
584
+ @media (prefers-color-scheme: dark) {
585
+ [data-theme="system"][data-cs-element="kim"][data-cs-variant="steel"] {
586
+ --cs-accent: #CCB17E;
587
+ --cs-accent-bright: #DFCBA5;
588
+ --cs-accent-strong: #1F1400;
589
+ --cs-accent-on: #f5ead9;
590
+ --cs-accent-on-strong: #FFFDF8;
591
+ --cs-accent-tint: #362602;
592
+ --cs-accent-ink: #E6D1AB;
593
+ }
594
+ }