@cyberskill/design 1.1.0 → 1.2.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 (358) hide show
  1. package/DESIGN.md +25 -3
  2. package/README.md +7 -7
  3. package/SKILL.md +4 -4
  4. package/VERSION +1 -1
  5. package/_ds_bundle.js +819 -416
  6. package/_ds_manifest.json +1 -1
  7. package/_esm/cs.mjs +18 -4
  8. package/_esm/react.d.ts +2 -0
  9. package/_esm/react.mjs +1 -0
  10. package/base/a11y.css +18 -0
  11. package/base/ai.css +2 -2
  12. package/base/collections.css +8 -3
  13. package/base/components.css +11 -2
  14. package/base/controls.css +61 -48
  15. package/base/data.css +3 -3
  16. package/base/feedback.css +5 -0
  17. package/base/forms.css +9 -3
  18. package/base/glass.css +6 -0
  19. package/base/navigation.css +8 -2
  20. package/base/reset.css +1 -1
  21. package/base/responsive.css +25 -0
  22. package/base/shell.css +7 -1
  23. package/components/_i18n/i18n.js +13 -1
  24. package/components/_i18n/strings.js +52 -3
  25. package/components/ai/ConfidenceMeter.jsx +8 -6
  26. package/components/data/Watermark.jsx +11 -3
  27. package/components/datatable/DataGrid.jsx +10 -1
  28. package/components/dialog/Dialog.jsx +13 -45
  29. package/components/feedback/ProgressBar.jsx +4 -2
  30. package/components/forms/Cascader.jsx +69 -6
  31. package/components/forms/Editor.jsx +37 -2
  32. package/components/forms/FileUpload.jsx +22 -8
  33. package/components/forms/Switch.jsx +16 -2
  34. package/components/forms/TimePicker.jsx +3 -1
  35. package/components/icon/Icon.jsx +1 -0
  36. package/components/navigation/CommandPalette.jsx +22 -7
  37. package/components/navigation/Toolbar.jsx +2 -1
  38. package/components/overlays/AlertDialog.jsx +19 -49
  39. package/components/overlays/Drawer.jsx +24 -20
  40. package/components/overlays/OverlayManager.d.ts +40 -0
  41. package/components/overlays/OverlayManager.jsx +214 -0
  42. package/components/overlays/OverlayManager.prompt.md +12 -0
  43. package/components/overlays/Tour.jsx +14 -7
  44. package/dist/styles.min.css +2004 -0
  45. package/docs/benchmark-rubric.md +1 -1
  46. package/docs/ci-cd.md +3 -1
  47. package/docs/consuming.md +6 -6
  48. package/docs/contrast-report.md +1 -1
  49. package/docs/conventions.md +4 -4
  50. package/docs/decisions/container-query-migration.md +18 -0
  51. package/docs/decisions/overlay-manager-design.md +101 -0
  52. package/docs/decisions.md +5 -5
  53. package/docs/design-styles.md +1 -1
  54. package/docs/plans/cyberskill-design-system-audit-and-12-month-evolution-plan.md +1490 -0
  55. package/docs/quality-gates.md +21 -9
  56. package/docs/release-notes.md +10 -2
  57. package/docs/status/data/status-feed.json +1 -1
  58. package/docs/status/data/task/TASK-REL-002.js +1 -0
  59. package/docs/status/index.html +7 -6
  60. package/docs/status/status-legacy.html +13 -12
  61. package/docs/sync.md +1 -1
  62. package/docs/tasks/BACKLOG.md +1 -0
  63. package/docs/tasks/_state/commit-links.yaml +14 -0
  64. package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +54 -0
  65. package/docs/vi/benchmark-rubric.md +1 -1
  66. package/docs/vi/ci-cd.md +3 -1
  67. package/docs/vi/consuming.md +6 -6
  68. package/docs/vi/contrast-report.md +1 -1
  69. package/docs/vi/conventions.md +2 -2
  70. package/docs/vi/decisions.md +5 -5
  71. package/docs/vi/quality-gates.md +21 -9
  72. package/docs/vi/release-notes.md +10 -2
  73. package/docs/vi/sync.md +1 -1
  74. package/guidelines/atomic-view.html +11 -7
  75. package/llms.txt +5 -5
  76. package/package.json +14 -6
  77. package/templates/_ds-base.canonical.js +55 -0
  78. package/templates/ai-cluster-demo.html +2 -2
  79. package/templates/app-shell/AppShell.dc.html +5 -3
  80. package/templates/app-shell/ds-base.js +33 -1
  81. package/templates/app-shell/support.js +13 -20
  82. package/templates/article/Article.dc.html +5 -1
  83. package/templates/article/ds-base.js +33 -1
  84. package/templates/article/support.js +13 -20
  85. package/templates/auth/Auth.dc.html +10 -5
  86. package/templates/auth/content-schema.json +12 -0
  87. package/templates/auth/ds-base.js +33 -1
  88. package/templates/auth/support.js +13 -20
  89. package/templates/bod-deck/BodDeck.dc.html +11 -10
  90. package/templates/bod-deck/ds-base.js +33 -1
  91. package/templates/bod-deck/support.js +13 -20
  92. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +4 -3
  93. package/templates/bod-investor-update/ds-base.js +33 -1
  94. package/templates/bod-investor-update/support.js +13 -20
  95. package/templates/bod-memo/BodMemo.dc.html +6 -5
  96. package/templates/bod-memo/ds-base.js +33 -1
  97. package/templates/bod-memo/support.js +13 -20
  98. package/templates/bod-minutes/BodMinutes.dc.html +2 -1
  99. package/templates/bod-minutes/ds-base.js +33 -1
  100. package/templates/bod-minutes/support.js +13 -20
  101. package/templates/bod-report/BodReport.dc.html +3 -2
  102. package/templates/bod-report/ds-base.js +33 -1
  103. package/templates/bod-report/support.js +13 -20
  104. package/templates/bod-resolution/BodResolution.dc.html +5 -4
  105. package/templates/bod-resolution/ds-base.js +33 -1
  106. package/templates/bod-resolution/support.js +13 -20
  107. package/templates/culture-event-invite/CultureEventInvite.dc.html +3 -2
  108. package/templates/culture-event-invite/ds-base.js +33 -1
  109. package/templates/culture-event-invite/support.js +13 -20
  110. package/templates/dashboard/Dashboard.dc.html +7 -3
  111. package/templates/dashboard/ds-base.js +33 -1
  112. package/templates/dashboard/support.js +13 -20
  113. package/templates/delivery-change-note/DeliveryChangeNote.dc.html +2 -1
  114. package/templates/delivery-change-note/ds-base.js +33 -1
  115. package/templates/delivery-change-note/support.js +13 -20
  116. package/templates/delivery-kickoff/DeliveryKickoff.dc.html +3 -2
  117. package/templates/delivery-kickoff/ds-base.js +33 -1
  118. package/templates/delivery-kickoff/support.js +13 -20
  119. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +6 -5
  120. package/templates/delivery-qbr-deck/ds-base.js +33 -1
  121. package/templates/delivery-qbr-deck/support.js +13 -20
  122. package/templates/delivery-runbook/DeliveryRunbook.dc.html +3 -2
  123. package/templates/delivery-runbook/ds-base.js +33 -1
  124. package/templates/delivery-runbook/support.js +13 -20
  125. package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +3 -2
  126. package/templates/delivery-status-email/ds-base.js +33 -1
  127. package/templates/delivery-status-email/support.js +13 -20
  128. package/templates/doc-style-guide/DocStyleGuide.dc.html +67 -64
  129. package/templates/doc-style-guide/ds-base.js +33 -1
  130. package/templates/doc-style-guide/support.js +13 -20
  131. package/templates/doc-suite-index/DocSuiteIndex.dc.html +46 -45
  132. package/templates/doc-suite-index/ds-base.js +33 -1
  133. package/templates/doc-suite-index/support.js +13 -20
  134. package/templates/doc-templates/DocTemplates.dc.html +42 -41
  135. package/templates/doc-templates/ds-base.js +33 -1
  136. package/templates/doc-templates/support.js +13 -20
  137. package/templates/email/Email.dc.html +3 -2
  138. package/templates/email/ds-base.js +33 -1
  139. package/templates/email/support.js +13 -20
  140. package/templates/finance-dunning-email/FinanceDunningEmail.dc.html +4 -3
  141. package/templates/finance-dunning-email/ds-base.js +33 -1
  142. package/templates/finance-dunning-email/support.js +13 -20
  143. package/templates/finance-expense-report/FinanceExpenseReport.dc.html +4 -3
  144. package/templates/finance-expense-report/ds-base.js +33 -1
  145. package/templates/finance-expense-report/support.js +13 -20
  146. package/templates/finance-invoice/FinanceInvoice.dc.html +4 -3
  147. package/templates/finance-invoice/ds-base.js +33 -1
  148. package/templates/finance-invoice/support.js +13 -20
  149. package/templates/finance-quote/FinanceQuote.dc.html +4 -3
  150. package/templates/finance-quote/ds-base.js +33 -1
  151. package/templates/finance-quote/support.js +13 -20
  152. package/templates/hr-announcement/HrAnnouncement.dc.html +5 -4
  153. package/templates/hr-announcement/ds-base.js +33 -1
  154. package/templates/hr-announcement/support.js +13 -20
  155. package/templates/hr-interview-kit/HrInterviewKit.dc.html +4 -3
  156. package/templates/hr-interview-kit/ds-base.js +33 -1
  157. package/templates/hr-interview-kit/support.js +13 -20
  158. package/templates/hr-offboarding/HrOffboarding.dc.html +2 -1
  159. package/templates/hr-offboarding/ds-base.js +33 -1
  160. package/templates/hr-offboarding/support.js +13 -20
  161. package/templates/hr-performance-review/HrPerformanceReview.dc.html +2 -1
  162. package/templates/hr-performance-review/ds-base.js +33 -1
  163. package/templates/hr-performance-review/support.js +13 -20
  164. package/templates/hr-pip/HrPip.dc.html +2 -1
  165. package/templates/hr-pip/ds-base.js +33 -1
  166. package/templates/hr-pip/support.js +13 -20
  167. package/templates/kitchen-sink.html +9 -4
  168. package/templates/legal-msa/LegalMsa.dc.html +2 -1
  169. package/templates/legal-msa/ds-base.js +33 -1
  170. package/templates/legal-msa/support.js +13 -20
  171. package/templates/legal-sow/LegalSow.dc.html +2 -1
  172. package/templates/legal-sow/ds-base.js +33 -1
  173. package/templates/legal-sow/support.js +13 -20
  174. package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +3 -2
  175. package/templates/marketing-campaign-brief/ds-base.js +33 -1
  176. package/templates/marketing-campaign-brief/support.js +13 -20
  177. package/templates/marketing-case-study/MarketingCaseStudy.dc.html +5 -4
  178. package/templates/marketing-case-study/ds-base.js +33 -1
  179. package/templates/marketing-case-study/support.js +13 -20
  180. package/templates/marketing-launch/MarketingLaunch.dc.html +6 -5
  181. package/templates/marketing-launch/ds-base.js +33 -1
  182. package/templates/marketing-launch/support.js +13 -20
  183. package/templates/marketing-newsletter/MarketingNewsletter.dc.html +13 -12
  184. package/templates/marketing-newsletter/ds-base.js +33 -1
  185. package/templates/marketing-newsletter/support.js +13 -20
  186. package/templates/marketing-page/MarketingPage.dc.html +17 -12
  187. package/templates/marketing-page/ds-base.js +33 -1
  188. package/templates/marketing-page/support.js +13 -20
  189. package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
  190. package/templates/marketing-press-release/ds-base.js +33 -1
  191. package/templates/marketing-press-release/support.js +13 -20
  192. package/templates/marketing-social-kit/MarketingSocialKit.dc.html +5 -4
  193. package/templates/marketing-social-kit/ds-base.js +33 -1
  194. package/templates/marketing-social-kit/support.js +13 -20
  195. package/templates/sales-one-pager/SalesOnePager.dc.html +5 -4
  196. package/templates/sales-one-pager/ds-base.js +33 -1
  197. package/templates/sales-one-pager/support.js +13 -20
  198. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +7 -6
  199. package/templates/sales-proposal-deck/ds-base.js +33 -1
  200. package/templates/sales-proposal-deck/support.js +13 -20
  201. package/templates/settings/Settings.dc.html +5 -1
  202. package/templates/settings/ds-base.js +33 -1
  203. package/templates/settings/support.js +13 -20
  204. package/templates/slide-deck/SlideDeck.dc.html +5 -4
  205. package/templates/slide-deck/ds-base.js +33 -1
  206. package/templates/slide-deck/support.js +13 -20
  207. package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +2 -1
  208. package/templates/team-meeting-agenda/ds-base.js +33 -1
  209. package/templates/team-meeting-agenda/support.js +13 -20
  210. package/templates/tech-incident-report/TechIncidentReport.dc.html +3 -2
  211. package/templates/tech-incident-report/ds-base.js +33 -1
  212. package/templates/tech-incident-report/support.js +13 -20
  213. package/templates/tech-release-notes/TechReleaseNotes.dc.html +6 -5
  214. package/templates/tech-release-notes/ds-base.js +33 -1
  215. package/templates/tech-release-notes/support.js +13 -20
  216. package/templates/tech-retro/TechRetro.dc.html +4 -3
  217. package/templates/tech-retro/ds-base.js +33 -1
  218. package/templates/tech-retro/support.js +13 -20
  219. package/templates/tech-rfc/TechRfc.dc.html +3 -2
  220. package/templates/tech-rfc/ds-base.js +33 -1
  221. package/templates/tech-rfc/support.js +13 -20
  222. package/templates/vn-appointment-transfer/VnAppointmentTransfer.dc.html +36 -35
  223. package/templates/vn-appointment-transfer/ds-base.js +33 -1
  224. package/templates/vn-appointment-transfer/support.js +13 -20
  225. package/templates/vn-certificate-of-employment/VnCertificateOfEmployment.dc.html +27 -26
  226. package/templates/vn-certificate-of-employment/ds-base.js +33 -1
  227. package/templates/vn-certificate-of-employment/support.js +13 -20
  228. package/templates/vn-code-of-conduct/VnCodeOfConduct.dc.html +44 -43
  229. package/templates/vn-code-of-conduct/ds-base.js +33 -1
  230. package/templates/vn-code-of-conduct/support.js +13 -20
  231. package/templates/vn-compensation-regulation/VnCompensationRegulation.dc.html +53 -52
  232. package/templates/vn-compensation-regulation/ds-base.js +33 -1
  233. package/templates/vn-compensation-regulation/support.js +13 -20
  234. package/templates/vn-contract-amendment/VnContractAmendment.dc.html +41 -40
  235. package/templates/vn-contract-amendment/ds-base.js +33 -1
  236. package/templates/vn-contract-amendment/support.js +13 -20
  237. package/templates/vn-contractor-agreement/VnContractorAgreement.dc.html +50 -49
  238. package/templates/vn-contractor-agreement/ds-base.js +33 -1
  239. package/templates/vn-contractor-agreement/support.js +13 -20
  240. package/templates/vn-data-protection-policy/VnDataProtectionPolicy.dc.html +54 -53
  241. package/templates/vn-data-protection-policy/ds-base.js +33 -1
  242. package/templates/vn-data-protection-policy/support.js +13 -20
  243. package/templates/vn-disciplinary-case-file/VnDisciplinaryCaseFile.dc.html +72 -71
  244. package/templates/vn-disciplinary-case-file/ds-base.js +33 -1
  245. package/templates/vn-disciplinary-case-file/support.js +13 -20
  246. package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +21 -20
  247. package/templates/vn-disciplinary-schedule/ds-base.js +33 -1
  248. package/templates/vn-disciplinary-schedule/support.js +13 -20
  249. package/templates/vn-employee-request/VnEmployeeRequest.dc.html +54 -53
  250. package/templates/vn-employee-request/ds-base.js +33 -1
  251. package/templates/vn-employee-request/support.js +13 -20
  252. package/templates/vn-exit-handover/VnExitHandover.dc.html +122 -121
  253. package/templates/vn-exit-handover/ds-base.js +33 -1
  254. package/templates/vn-exit-handover/support.js +13 -20
  255. package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +31 -30
  256. package/templates/vn-foreign-employee-pack/ds-base.js +33 -1
  257. package/templates/vn-foreign-employee-pack/support.js +13 -20
  258. package/templates/vn-grassroots-democracy/VnGrassrootsDemocracy.dc.html +54 -53
  259. package/templates/vn-grassroots-democracy/ds-base.js +33 -1
  260. package/templates/vn-grassroots-democracy/support.js +13 -20
  261. package/templates/vn-infosec-policy/VnInfosecPolicy.dc.html +50 -49
  262. package/templates/vn-infosec-policy/ds-base.js +33 -1
  263. package/templates/vn-infosec-policy/support.js +13 -20
  264. package/templates/vn-internal-labor-regulations/VnInternalLaborRegulations.dc.html +84 -83
  265. package/templates/vn-internal-labor-regulations/ds-base.js +33 -1
  266. package/templates/vn-internal-labor-regulations/support.js +13 -20
  267. package/templates/vn-internship-agreement/VnInternshipAgreement.dc.html +44 -43
  268. package/templates/vn-internship-agreement/ds-base.js +33 -1
  269. package/templates/vn-internship-agreement/support.js +13 -20
  270. package/templates/vn-job-description/VnJobDescription.dc.html +28 -27
  271. package/templates/vn-job-description/ds-base.js +33 -1
  272. package/templates/vn-job-description/support.js +13 -20
  273. package/templates/vn-labor-contract/VnLaborContract.dc.html +109 -108
  274. package/templates/vn-labor-contract/ds-base.js +33 -1
  275. package/templates/vn-labor-contract/support.js +13 -20
  276. package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +32 -31
  277. package/templates/vn-labour-management-book/ds-base.js +33 -1
  278. package/templates/vn-labour-management-book/support.js +13 -20
  279. package/templates/vn-mutual-nda/VnMutualNda.dc.html +45 -44
  280. package/templates/vn-mutual-nda/ds-base.js +33 -1
  281. package/templates/vn-mutual-nda/support.js +13 -20
  282. package/templates/vn-ndnca-ip/VnNdncaIp.dc.html +73 -72
  283. package/templates/vn-ndnca-ip/ds-base.js +33 -1
  284. package/templates/vn-ndnca-ip/support.js +13 -20
  285. package/templates/vn-offer-letter/VnOfferLetter.dc.html +32 -31
  286. package/templates/vn-offer-letter/ds-base.js +33 -1
  287. package/templates/vn-offer-letter/support.js +13 -20
  288. package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +16 -15
  289. package/templates/vn-onboarding-checklist/ds-base.js +33 -1
  290. package/templates/vn-onboarding-checklist/support.js +13 -20
  291. package/templates/vn-pdpl-consent/VnPdplConsent.dc.html +43 -42
  292. package/templates/vn-pdpl-consent/ds-base.js +33 -1
  293. package/templates/vn-pdpl-consent/support.js +13 -20
  294. package/templates/vn-performance-evaluation-regulation/VnPerformanceEvaluationRegulation.dc.html +65 -64
  295. package/templates/vn-performance-evaluation-regulation/ds-base.js +33 -1
  296. package/templates/vn-performance-evaluation-regulation/support.js +13 -20
  297. package/templates/vn-performance-review-form/VnPerformanceReviewForm.dc.html +49 -48
  298. package/templates/vn-performance-review-form/ds-base.js +33 -1
  299. package/templates/vn-performance-review-form/support.js +13 -20
  300. package/templates/vn-phantom-stock/VnPhantomStock.dc.html +41 -40
  301. package/templates/vn-phantom-stock/ds-base.js +33 -1
  302. package/templates/vn-phantom-stock/support.js +13 -20
  303. package/templates/vn-probation-contract/VnProbationContract.dc.html +56 -55
  304. package/templates/vn-probation-contract/ds-base.js +33 -1
  305. package/templates/vn-probation-contract/support.js +13 -20
  306. package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +28 -27
  307. package/templates/vn-receipt-acknowledgement/ds-base.js +33 -1
  308. package/templates/vn-receipt-acknowledgement/support.js +13 -20
  309. package/templates/vn-remote-work-policy/VnRemoteWorkPolicy.dc.html +44 -43
  310. package/templates/vn-remote-work-policy/ds-base.js +33 -1
  311. package/templates/vn-remote-work-policy/support.js +13 -20
  312. package/templates/vn-resignation-letter/VnResignationLetter.dc.html +20 -19
  313. package/templates/vn-resignation-letter/ds-base.js +33 -1
  314. package/templates/vn-resignation-letter/support.js +13 -20
  315. package/templates/vn-salary-scale/VnSalaryScale.dc.html +39 -38
  316. package/templates/vn-salary-scale/ds-base.js +33 -1
  317. package/templates/vn-salary-scale/support.js +13 -20
  318. package/templates/vn-sow-appendix/VnSowAppendix.dc.html +21 -20
  319. package/templates/vn-sow-appendix/ds-base.js +33 -1
  320. package/templates/vn-sow-appendix/support.js +13 -20
  321. package/templates/vn-termination-decision/VnTerminationDecision.dc.html +25 -24
  322. package/templates/vn-termination-decision/ds-base.js +33 -1
  323. package/templates/vn-termination-decision/support.js +13 -20
  324. package/templates/vn-total-rewards-appendix/VnTotalRewardsAppendix.dc.html +63 -62
  325. package/templates/vn-total-rewards-appendix/ds-base.js +33 -1
  326. package/templates/vn-total-rewards-appendix/support.js +13 -20
  327. package/templates/vn-training-commitment/VnTrainingCommitment.dc.html +39 -38
  328. package/templates/vn-training-commitment/ds-base.js +33 -1
  329. package/templates/vn-training-commitment/support.js +13 -20
  330. package/templates/vn-travel-expense-policy/VnTravelExpensePolicy.dc.html +50 -49
  331. package/templates/vn-travel-expense-policy/ds-base.js +33 -1
  332. package/templates/vn-travel-expense-policy/support.js +13 -20
  333. package/tokens/colors.css +19 -1
  334. package/tokens/component-tokens.css +1 -0
  335. package/tokens/elements.css +35 -2
  336. package/tokens/elevation.css +8 -2
  337. package/tokens/native/CSTokens.kt +35 -1
  338. package/tokens/native/CSTokens.swift +35 -1
  339. package/tokens/native/cs_tokens.dart +35 -1
  340. package/tokens/provenance.json +12 -12
  341. package/tokens/spacing.css +2 -0
  342. package/tokens/tokens.dtcg.json +111 -3
  343. package/tokens/tokens.js +46 -6
  344. package/tokens/tokens.json +45 -5
  345. package/tokens/typography.css +2 -0
  346. package/ui_kits/deck/index.html +4 -0
  347. package/ui_kits/status-hub/StatusHub.jsx +30 -4
  348. package/ui_kits/status-hub/index.html +3 -3
  349. package/ui_kits/status-hub/login.html +4 -0
  350. package/ui_kits/status-hub/project.html +4 -0
  351. package/ui_kits/status-hub/settings.html +35 -13
  352. package/ui_kits/status-hub/status.css +5 -1
  353. package/ui_kits/website/Website.jsx +25 -3
  354. package/ui_kits/website/careers.html +4 -0
  355. package/ui_kits/website/chat.html +5 -3
  356. package/ui_kits/website/index.html +3 -3
  357. package/ui_kits/website/site.css +2 -2
  358. package/ui_kits/website/work.html +4 -0
@@ -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;
@@ -5,10 +5,12 @@
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.
13
+ * Text on -strong uses --cs-accent-on-strong (WCAG AA ≥4.5:1 light and dark).
12
14
  * Focus ring --cs-color-accent-ochre 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 {
@@ -16,6 +18,7 @@
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);
@@ -51,6 +54,7 @@
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);
@@ -62,6 +66,7 @@
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);
@@ -75,6 +80,7 @@
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);
@@ -90,6 +96,7 @@
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);
@@ -103,6 +110,7 @@
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);
@@ -116,6 +124,7 @@
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,6 +140,7 @@
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);
@@ -144,6 +154,7 @@
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);
@@ -157,6 +168,7 @@
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,6 +184,7 @@
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);
@@ -185,6 +198,7 @@
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);
@@ -198,6 +212,7 @@
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,6 +228,7 @@
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);
@@ -226,6 +242,7 @@
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);
@@ -239,6 +256,7 @@
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);
@@ -270,6 +288,7 @@
270
288
  --cs-accent-bright: #F6EBCC;
271
289
  --cs-accent-strong: #665A37;
272
290
  --cs-accent-on: #f5ead9;
291
+ --cs-accent-on-strong: #FFFDF8;
273
292
  --cs-accent-tint: #332701;
274
293
  --cs-accent-ink: #F6EBCC;
275
294
  }
@@ -278,6 +297,7 @@
278
297
  --cs-accent-bright: #FEC42C;
279
298
  --cs-accent-strong: #73560B;
280
299
  --cs-accent-on: #f5ead9;
300
+ --cs-accent-on-strong: #FFFDF8;
281
301
  --cs-accent-tint: #352602;
282
302
  --cs-accent-ink: #FECD5E;
283
303
  }
@@ -286,6 +306,7 @@
286
306
  --cs-accent-bright: #E4CDA8;
287
307
  --cs-accent-strong: #1F1300;
288
308
  --cs-accent-on: #f5ead9;
309
+ --cs-accent-on-strong: #FFFDF8;
289
310
  --cs-accent-tint: #372502;
290
311
  --cs-accent-ink: #E7D0AB;
291
312
  }
@@ -294,6 +315,7 @@
294
315
  --cs-accent-bright: #FCE6DF;
295
316
  --cs-accent-strong: #6F5750;
296
317
  --cs-accent-on: #f5ead9;
318
+ --cs-accent-on-strong: #FFFDF8;
297
319
  --cs-accent-tint: #38231C;
298
320
  --cs-accent-ink: #FCE6DF;
299
321
  }
@@ -302,6 +324,7 @@
302
324
  --cs-accent-bright: #FED3C3;
303
325
  --cs-accent-strong: #8A4A30;
304
326
  --cs-accent-on: #f5ead9;
327
+ --cs-accent-on-strong: #FFFDF8;
305
328
  --cs-accent-tint: #411E0F;
306
329
  --cs-accent-ink: #FED3C3;
307
330
  }
@@ -310,6 +333,7 @@
310
333
  --cs-accent-bright: #F8C4AA;
311
334
  --cs-accent-strong: #280D00;
312
335
  --cs-accent-on: #f5ead9;
336
+ --cs-accent-on-strong: #FFFDF8;
313
337
  --cs-accent-tint: #401F0B;
314
338
  --cs-accent-ink: #FBC7AD;
315
339
  }
@@ -318,6 +342,7 @@
318
342
  --cs-accent-bright: #CDF4F9;
319
343
  --cs-accent-strong: #316167;
320
344
  --cs-accent-on: #f5ead9;
345
+ --cs-accent-on-strong: #FFFDF8;
321
346
  --cs-accent-tint: #022F34;
322
347
  --cs-accent-ink: #CDF4F9;
323
348
  }
@@ -326,6 +351,7 @@
326
351
  --cs-accent-bright: #99EEFF;
327
352
  --cs-accent-strong: #046270;
328
353
  --cs-accent-on: #f5ead9;
354
+ --cs-accent-on-strong: #FFFDF8;
329
355
  --cs-accent-tint: #032F36;
330
356
  --cs-accent-ink: #99EEFF;
331
357
  }
@@ -334,6 +360,7 @@
334
360
  --cs-accent-bright: #ABD6E3;
335
361
  --cs-accent-strong: #011A21;
336
362
  --cs-accent-on: #f5ead9;
363
+ --cs-accent-on-strong: #FFFDF8;
337
364
  --cs-accent-tint: #002F3A;
338
365
  --cs-accent-ink: #AED9E6;
339
366
  }
@@ -342,6 +369,7 @@
342
369
  --cs-accent-bright: #E5F1D2;
343
370
  --cs-accent-strong: #54603E;
344
371
  --cs-accent-on: #f5ead9;
372
+ --cs-accent-on-strong: #FFFDF8;
345
373
  --cs-accent-tint: #232D0B;
346
374
  --cs-accent-ink: #E5F1D2;
347
375
  }
@@ -350,6 +378,7 @@
350
378
  --cs-accent-bright: #C5ED9C;
351
379
  --cs-accent-strong: #416501;
352
380
  --cs-accent-on: #f5ead9;
381
+ --cs-accent-on-strong: #FFFDF8;
353
382
  --cs-accent-tint: #1F2E0B;
354
383
  --cs-accent-ink: #C5ED9C;
355
384
  }
@@ -358,6 +387,7 @@
358
387
  --cs-accent-bright: #B0D8A3;
359
388
  --cs-accent-strong: #061D00;
360
389
  --cs-accent-on: #f5ead9;
390
+ --cs-accent-on-strong: #FFFDF8;
361
391
  --cs-accent-tint: #193011;
362
392
  --cs-accent-ink: #B6DFA9;
363
393
  }
@@ -366,6 +396,7 @@
366
396
  --cs-accent-bright: #FBE8D2;
367
397
  --cs-accent-strong: #6B573E;
368
398
  --cs-accent-on: #f5ead9;
399
+ --cs-accent-on-strong: #FFFDF8;
369
400
  --cs-accent-tint: #37250B;
370
401
  --cs-accent-ink: #FBE8D2;
371
402
  }
@@ -374,6 +405,7 @@
374
405
  --cs-accent-bright: #FDD89F;
375
406
  --cs-accent-strong: #795303;
376
407
  --cs-accent-on: #f5ead9;
408
+ --cs-accent-on-strong: #FFFDF8;
377
409
  --cs-accent-tint: #382503;
378
410
  --cs-accent-ink: #FDD89F;
379
411
  }
@@ -382,6 +414,7 @@
382
414
  --cs-accent-bright: #DFCBA5;
383
415
  --cs-accent-strong: #1F1400;
384
416
  --cs-accent-on: #f5ead9;
417
+ --cs-accent-on-strong: #FFFDF8;
385
418
  --cs-accent-tint: #362602;
386
419
  --cs-accent-ink: #E6D1AB;
387
420
  }
@@ -4,13 +4,19 @@
4
4
  * the material composition + classes live in base/glass.css.
5
5
  * Shadow values are warm (umber-tinted), taken from the shipped surfaces. */
6
6
  :root {
7
- /* ---- Depth (z-index) ---- */
7
+ /* ---- Depth (z-index) ----
8
+ * Order (low → high): bg < section < card < nav < dropdown < overlay < modal < toast.
9
+ * Toasts intentionally stack above modals so save-confirmation feedback stays visible
10
+ * while a dialog is open (UX-009). Dropdown sits above sticky nav; overlay (scrims
11
+ * that are not modal-owned) sits between dropdown and modal. */
8
12
  --cs-depth-bg: 0; /* @kind other */ /* page background / hero washes */
9
13
  --cs-depth-section: 5; /* @kind other */ /* major sections (matte, no glass) */
10
14
  --cs-depth-card: 10; /* @kind other */ /* cards/panels (Standard Glass) */
11
15
  --cs-depth-nav: 50; /* @kind other */ /* sticky nav (Light Glass) */
16
+ --cs-depth-dropdown: 60; /* @kind other */ /* menus, combobox, datepicker pops */
17
+ --cs-depth-overlay: 80; /* @kind other */ /* non-modal scrims / light overlays */
12
18
  --cs-depth-modal: 100; /* @kind other */ /* modals, command palette (Heavy Glass) */
13
- --cs-depth-toast: 200; /* @kind other */ /* toasts, popovers, dropdowns (Heavy Glass) */
19
+ --cs-depth-toast: 200; /* @kind other */ /* toasts above modals (Heavy Glass) */
14
20
 
15
21
  /* ---- Glass material scalars (blur / saturate / surface opacity) ---- */
16
22
  --cs-glass-whisper-blur: 8px; --cs-glass-whisper-saturate: 110%; --cs-glass-whisper-opacity: 60%;
@@ -1,6 +1,6 @@
1
1
  // CyberSkill Design System — native design tokens.
2
2
  // GENERATED from tokens/tokens.dtcg.json — do not hand-edit; regenerate on token change.
3
- // release v1.0.0 · source sha256 3fad99b545d4ee20…
3
+ // release v1.1.1 · source sha256 16b39bda3ee5b664…
4
4
  // conversions: rem→px at 16 · em→…Em relative doubles · rgba alpha→ARGB byte (round(a*255)) · durations in ms
5
5
  // dark element packs: see $extensions.overrides.elementsDark
6
6
  // provenance: tokens/provenance.json · parity gate: _audit/token-pipeline-test.html
@@ -28,6 +28,10 @@ object CSTokens {
28
28
  val colorBorderDefault = Color(0xFFE7D9C6)
29
29
  val colorLink = Color(0xFF6E3B0E)
30
30
  val colorLinkHover = Color(0xFF45210E)
31
+ val colorSemanticSuccessFg = Color(0xFFFFFFFF)
32
+ val colorSemanticDangerFg = Color(0xFFFFFFFF)
33
+ val colorSemanticWarningFg = Color(0xFFFFFFFF)
34
+ val colorSemanticInfoFg = Color(0xFFFFFFFF)
31
35
  val componentButtonPrimaryBg = Color(0xFF45210E)
32
36
  val componentButtonPrimaryFg = Color(0xFFFFFFFF)
33
37
  val componentButtonGap = 8.dp
@@ -52,6 +56,7 @@ object CSTokens {
52
56
  val componentTextfieldPaddingY = 10.dp
53
57
  val componentTextfieldPaddingX = 12.dp
54
58
  val componentTextfieldMinHeight = 44.dp
59
+ val focusRing = 3.dp
55
60
  val accent = Color(0xFFF4BA17)
56
61
  val accentStrong = Color(0xFFA47D17)
57
62
  val accentBright = Color(0xFFF4BA17)
@@ -61,12 +66,15 @@ object CSTokens {
61
66
  val accentGlow = Color(0x7AF4BA17)
62
67
  val accentGradA = Color(0xFFF4BA17)
63
68
  val accentGradB = Color(0xFFFCAF91)
69
+ val accentOnStrong = Color(0xFF1A1108)
64
70
  val depthBg = 0
65
71
  val depthSection = 5
66
72
  val depthCard = 10
67
73
  val depthNav = 50
68
74
  val depthModal = 100
69
75
  val depthToast = 200
76
+ val depthDropdown = 60
77
+ val depthOverlay = 80
70
78
  val glassWhisperBlur = 8.dp
71
79
  val glassWhisperSaturate = "110%"
72
80
  val glassWhisperOpacity = "60%"
@@ -116,6 +124,7 @@ object CSTokens {
116
124
  val breakpointXl = 1280.dp
117
125
  val breakpoint2xl = 1536.dp
118
126
  val containerMax = 1320.dp
127
+ val proseMeasure = 720.dp
119
128
  val fontFamilyUi = "Be Vietnam Pro, ui-sans-serif, system-ui, sans-serif"
120
129
  val fontFamilyDisplay = "Space Grotesk, Be Vietnam Pro, ui-sans-serif, system-ui, sans-serif"
121
130
  val fontFamilyMono = "JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
@@ -127,6 +136,7 @@ object CSTokens {
127
136
  val fontLineHeightBody = 1.5f
128
137
  val fontLineHeightHeading = 1.35f
129
138
  val fontLineHeightTight = 1.15f
139
+ val fontSize2xs = 11.dp
130
140
  val fontSizeXs = 12.dp
131
141
  val fontSizeSm = 14.dp
132
142
  val fontSizeBase = 16.dp
@@ -145,6 +155,7 @@ object CSTokens {
145
155
  val textBodyLg = "var(--cs-font-size-md)"
146
156
  val textBody = "var(--cs-font-size-base)"
147
157
  val textSecondary = "var(--cs-font-size-sm)"
158
+ val textMicro = "var(--cs-font-size-2xs)"
148
159
  val textCaption = "var(--cs-font-size-xs)"
149
160
  val textEyebrow = "var(--cs-font-size-xs)"
150
161
  val letterSpacingTightEm = -0.01f
@@ -157,6 +168,10 @@ object CSTokens {
157
168
  val iconSm = 16.dp
158
169
  val iconMd = 20.dp
159
170
  val iconLg = 24.dp
171
+ val docInk = Color(0xFF1A1614)
172
+ val docSlate = Color(0xFF3F4C55)
173
+ val docFill = Color(0xFFFDE68A)
174
+ val docFillInk = Color(0xFF1A1614)
160
175
 
161
176
  // dark-theme color overrides
162
177
  val colorSurfacePageDark = Color(0xFF1A1108)
@@ -176,96 +191,115 @@ object CSTokens {
176
191
  val componentButtonPrimaryBgDark = Color(0xFFF4BA17)
177
192
  val componentButtonPrimaryFgDark = Color(0xFF1A1108)
178
193
  val componentTextfieldBorderDefaultDark = Color(0xFF5A4636)
194
+ val colorSemanticSuccessFgDark = Color(0xFF1A1108)
195
+ val colorSemanticDangerFgDark = Color(0xFF1A1108)
196
+ val colorSemanticWarningFgDark = Color(0xFF1A1108)
197
+ val colorSemanticInfoFgDark = Color(0xFF1A1108)
179
198
 
180
199
  // dark elemental accent packs (APCA-derived, v4.0.0)
181
200
  val accentThoSandDark = Color(0xFFF8E9C0)
182
201
  val accentBrightThoSandDark = Color(0xFFF6EBCC)
183
202
  val accentStrongThoSandDark = Color(0xFF665A37)
184
203
  val accentOnThoSandDark = Color(0xFFF5EAD9)
204
+ val accentOnStrongThoSandDark = Color(0xFFFFFDF8)
185
205
  val accentTintThoSandDark = Color(0xFF332701)
186
206
  val accentInkThoSandDark = Color(0xFFF6EBCC)
187
207
  val accentThoDark = Color(0xFFF4BA17)
188
208
  val accentBrightThoDark = Color(0xFFFEC42C)
189
209
  val accentStrongThoDark = Color(0xFF73560B)
190
210
  val accentOnThoDark = Color(0xFFF5EAD9)
211
+ val accentOnStrongThoDark = Color(0xFFFFFDF8)
191
212
  val accentTintThoDark = Color(0xFF352602)
192
213
  val accentInkThoDark = Color(0xFFFECD5E)
193
214
  val accentThoClayDark = Color(0xFFCDB07E)
194
215
  val accentBrightThoClayDark = Color(0xFFE4CDA8)
195
216
  val accentStrongThoClayDark = Color(0xFF1F1300)
196
217
  val accentOnThoClayDark = Color(0xFFF5EAD9)
218
+ val accentOnStrongThoClayDark = Color(0xFFFFFDF8)
197
219
  val accentTintThoClayDark = Color(0xFF372502)
198
220
  val accentInkThoClayDark = Color(0xFFE7D0AB)
199
221
  val accentHoaPlasmaDark = Color(0xFFFFE1D8)
200
222
  val accentBrightHoaPlasmaDark = Color(0xFFFCE6DF)
201
223
  val accentStrongHoaPlasmaDark = Color(0xFF6F5750)
202
224
  val accentOnHoaPlasmaDark = Color(0xFFF5EAD9)
225
+ val accentOnStrongHoaPlasmaDark = Color(0xFFFFFDF8)
203
226
  val accentTintHoaPlasmaDark = Color(0xFF38231C)
204
227
  val accentInkHoaPlasmaDark = Color(0xFFFCE6DF)
205
228
  val accentHoaDark = Color(0xFFFCAF91)
206
229
  val accentBrightHoaDark = Color(0xFFFED3C3)
207
230
  val accentStrongHoaDark = Color(0xFF8A4A30)
208
231
  val accentOnHoaDark = Color(0xFFF5EAD9)
232
+ val accentOnStrongHoaDark = Color(0xFFFFFDF8)
209
233
  val accentTintHoaDark = Color(0xFF411E0F)
210
234
  val accentInkHoaDark = Color(0xFFFED3C3)
211
235
  val accentHoaLavaDark = Color(0xFFE8A683)
212
236
  val accentBrightHoaLavaDark = Color(0xFFF8C4AA)
213
237
  val accentStrongHoaLavaDark = Color(0xFF280D00)
214
238
  val accentOnHoaLavaDark = Color(0xFFF5EAD9)
239
+ val accentOnStrongHoaLavaDark = Color(0xFFFFFDF8)
215
240
  val accentTintHoaLavaDark = Color(0xFF401F0B)
216
241
  val accentInkHoaLavaDark = Color(0xFFFBC7AD)
217
242
  val accentThuyMistDark = Color(0xFFC0F5FC)
218
243
  val accentBrightThuyMistDark = Color(0xFFCDF4F9)
219
244
  val accentStrongThuyMistDark = Color(0xFF316167)
220
245
  val accentOnThuyMistDark = Color(0xFFF5EAD9)
246
+ val accentOnStrongThuyMistDark = Color(0xFFFFFDF8)
221
247
  val accentTintThuyMistDark = Color(0xFF022F34)
222
248
  val accentInkThuyMistDark = Color(0xFFCDF4F9)
223
249
  val accentThuyDark = Color(0xFF2EDBF7)
224
250
  val accentBrightThuyDark = Color(0xFF99EEFF)
225
251
  val accentStrongThuyDark = Color(0xFF046270)
226
252
  val accentOnThuyDark = Color(0xFFF5EAD9)
253
+ val accentOnStrongThuyDark = Color(0xFFFFFDF8)
227
254
  val accentTintThuyDark = Color(0xFF032F36)
228
255
  val accentInkThuyDark = Color(0xFF99EEFF)
229
256
  val accentThuyOceanDark = Color(0xFF82BCCD)
230
257
  val accentBrightThuyOceanDark = Color(0xFFABD6E3)
231
258
  val accentStrongThuyOceanDark = Color(0xFF011A21)
232
259
  val accentOnThuyOceanDark = Color(0xFFF5EAD9)
260
+ val accentOnStrongThuyOceanDark = Color(0xFFFFFDF8)
233
261
  val accentTintThuyOceanDark = Color(0xFF002F3A)
234
262
  val accentInkThuyOceanDark = Color(0xFFAED9E6)
235
263
  val accentMocBambooDark = Color(0xFFE1F1C8)
236
264
  val accentBrightMocBambooDark = Color(0xFFE5F1D2)
237
265
  val accentStrongMocBambooDark = Color(0xFF54603E)
238
266
  val accentOnMocBambooDark = Color(0xFFF5EAD9)
267
+ val accentOnStrongMocBambooDark = Color(0xFFFFFDF8)
239
268
  val accentTintMocBambooDark = Color(0xFF232D0B)
240
269
  val accentInkMocBambooDark = Color(0xFFE5F1D2)
241
270
  val accentMocDark = Color(0xFFA3D768)
242
271
  val accentBrightMocDark = Color(0xFFC5ED9C)
243
272
  val accentStrongMocDark = Color(0xFF416501)
244
273
  val accentOnMocDark = Color(0xFFF5EAD9)
274
+ val accentOnStrongMocDark = Color(0xFFFFFDF8)
245
275
  val accentTintMocDark = Color(0xFF1F2E0B)
246
276
  val accentInkMocDark = Color(0xFFC5ED9C)
247
277
  val accentMocForestDark = Color(0xFF8EC27D)
248
278
  val accentBrightMocForestDark = Color(0xFFB0D8A3)
249
279
  val accentStrongMocForestDark = Color(0xFF061D00)
250
280
  val accentOnMocForestDark = Color(0xFFF5EAD9)
281
+ val accentOnStrongMocForestDark = Color(0xFFFFFDF8)
251
282
  val accentTintMocForestDark = Color(0xFF193011)
252
283
  val accentInkMocForestDark = Color(0xFFB6DFA9)
253
284
  val accentKimTitaniumDark = Color(0xFFFEE5C7)
254
285
  val accentBrightKimTitaniumDark = Color(0xFFFBE8D2)
255
286
  val accentStrongKimTitaniumDark = Color(0xFF6B573E)
256
287
  val accentOnKimTitaniumDark = Color(0xFFF5EAD9)
288
+ val accentOnStrongKimTitaniumDark = Color(0xFFFFFDF8)
257
289
  val accentTintKimTitaniumDark = Color(0xFF37250B)
258
290
  val accentInkKimTitaniumDark = Color(0xFFFBE8D2)
259
291
  val accentKimDark = Color(0xFFF3B958)
260
292
  val accentBrightKimDark = Color(0xFFFDD89F)
261
293
  val accentStrongKimDark = Color(0xFF795303)
262
294
  val accentOnKimDark = Color(0xFFF5EAD9)
295
+ val accentOnStrongKimDark = Color(0xFFFFFDF8)
263
296
  val accentTintKimDark = Color(0xFF382503)
264
297
  val accentInkKimDark = Color(0xFFFDD89F)
265
298
  val accentKimSteelDark = Color(0xFFCCB17E)
266
299
  val accentBrightKimSteelDark = Color(0xFFDFCBA5)
267
300
  val accentStrongKimSteelDark = Color(0xFF1F1400)
268
301
  val accentOnKimSteelDark = Color(0xFFF5EAD9)
302
+ val accentOnStrongKimSteelDark = Color(0xFFFFFDF8)
269
303
  val accentTintKimSteelDark = Color(0xFF362602)
270
304
  val accentInkKimSteelDark = Color(0xFFE6D1AB)
271
305
  }