@cyberskill/design 2.4.0 → 2.6.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.
- package/DESIGN.md +4 -4
- package/README.md +6 -5
- package/SECURITY.md +4 -4
- package/VERSION +1 -1
- package/_ds_bundle.js +2 -2
- package/_ds_bundle.js.map +1 -1
- package/_ds_manifest.json +6 -102
- package/_esm/cs.mjs +2 -2
- package/base/a11y.css +7 -12
- package/base/ai.css +3 -2
- package/base/collections.css +1 -1
- package/base/components.css +1 -1
- package/base/controls.css +17 -9
- package/base/data.css +1 -0
- package/base/feedback.css +4 -4
- package/base/glass.css +1 -1
- package/base/shell.css +1 -1
- package/base/typography.css +1 -1
- package/components/ai/ai-conversation.card.html +1 -1
- package/components/ai/ai-lumi.card.html +1 -1
- package/components/ai/ai.card.html +1 -1
- package/components/brand/brand.card.html +1 -1
- package/components/button/buttons.card.html +1 -1
- package/components/data/collections.card.html +1 -1
- package/components/data/data.card.html +1 -1
- package/components/datatable/datatable.card.html +1 -1
- package/components/dialog/dialog.card.html +1 -1
- package/components/feedback/feedback-2.card.html +1 -1
- package/components/feedback/feedback.card.html +2 -2
- package/components/forms/forms-2.card.html +1 -1
- package/components/forms/forms.card.html +1 -1
- package/components/i18n/i18n.card.html +1 -1
- package/components/icon/icon.card.html +1 -1
- package/components/logo/logo.card.html +2 -2
- package/components/navigation/navigation.card.html +1 -1
- package/components/navigation/shell.card.html +1 -1
- package/components/overlays/alertdialog.card.html +1 -1
- package/components/overlays/overlays.card.html +1 -1
- package/components/prompt-api.json +1 -1
- package/components/release-compatibility.json +1 -1
- package/components/specifications.json +1 -1
- package/components/static-html-reference.json +20 -20
- package/components/textfield/textfield.card.html +1 -1
- package/dist/esm/build.json +1 -1
- package/dist/styles.css +3177 -0
- package/dist/styles.min.css +1 -1
- package/docs/UPSTREAM.md +39 -0
- package/docs/consuming.md +1 -1
- package/docs/contrast-report.md +1 -1
- package/docs/conventions.md +1 -1
- package/docs/guideline-language.md +2 -2
- package/docs/reference-catalog.json +34 -22
- package/docs/release-notes.md +14 -1
- package/docs/static-html-reference.md +18 -18
- package/docs/template-inventory.json +125 -125
- package/docs/vi/UPSTREAM.md +39 -0
- package/docs/vi/consuming.md +1 -1
- package/docs/vi/contrast-report.md +1 -1
- package/docs/vi/conventions.md +1 -1
- package/docs/vi/entrypoints/DESIGN.md +4 -4
- package/docs/vi/entrypoints/README.md +6 -5
- package/docs/vi/guideline-language.md +2 -2
- package/docs/vi/release-notes.md +14 -1
- package/docs/vi/static-html-reference.md +18 -18
- package/docs/viewer.html +2 -2
- package/guidelines/atomic-view.html +5 -5
- package/guidelines/brand-iconography.html +1 -1
- package/guidelines/brand-imagery.html +1 -1
- package/guidelines/brand-interaction.html +1 -1
- package/guidelines/brand-voice.html +1 -1
- package/guidelines/colors-anchors.html +1 -1
- package/guidelines/colors-semantic.html +1 -1
- package/guidelines/colors-surfaces.html +1 -1
- package/guidelines/colors-text.html +1 -1
- package/guidelines/documents.html +1 -1
- package/guidelines/elements-components.html +1 -1
- package/guidelines/elements-concept.html +1 -1
- package/guidelines/elements-geometry.html +1 -1
- package/guidelines/elements-variants.html +1 -1
- package/guidelines/guideline-language.js +6 -5
- package/guidelines/motion-interaction.html +1 -1
- package/guidelines/motion.html +1 -1
- package/guidelines/responsive-bilingual.html +1 -1
- package/guidelines/rtl-preview.html +1 -1
- package/guidelines/spacing-breakpoints.html +1 -1
- package/guidelines/spacing-radius.html +1 -1
- package/guidelines/spacing-scale.html +1 -1
- package/guidelines/surfaces-aurora.html +1 -1
- package/guidelines/surfaces-depth.html +1 -1
- package/guidelines/surfaces-glass.html +1 -1
- package/guidelines/surfaces-shadow.html +1 -1
- package/guidelines/type-families.html +1 -1
- package/guidelines/type-lineheight.html +1 -1
- package/guidelines/type-scale.html +1 -1
- package/guidelines/type-weights.html +1 -1
- package/package.json +8 -4
- package/styles/components/manifest.json +133 -133
- package/styles.layered.css +21 -23
- package/styles.layered.provenance.json +12 -12
- package/templates/_ds-base.canonical.js +6 -4
- package/templates/app-shell/ds-base.js +6 -4
- package/templates/article/ds-base.js +6 -4
- package/templates/auth/ds-base.js +6 -4
- package/templates/bod-deck/ds-base.js +6 -4
- package/templates/bod-investor-update/ds-base.js +6 -4
- package/templates/bod-memo/ds-base.js +6 -4
- package/templates/bod-minutes/ds-base.js +6 -4
- package/templates/bod-report/ds-base.js +6 -4
- package/templates/bod-resolution/ds-base.js +6 -4
- package/templates/culture-event-invite/ds-base.js +6 -4
- package/templates/dashboard/ds-base.js +6 -4
- package/templates/delivery-change-note/ds-base.js +6 -4
- package/templates/delivery-kickoff/ds-base.js +6 -4
- package/templates/delivery-qbr-deck/ds-base.js +6 -4
- package/templates/delivery-runbook/ds-base.js +6 -4
- package/templates/delivery-status-email/ds-base.js +6 -4
- package/templates/doc-style-guide/ds-base.js +6 -4
- package/templates/doc-suite-index/ds-base.js +6 -4
- package/templates/doc-templates/ds-base.js +6 -4
- package/templates/email/ds-base.js +6 -4
- package/templates/finance-dunning-email/ds-base.js +6 -4
- package/templates/finance-expense-report/ds-base.js +6 -4
- package/templates/finance-invoice/ds-base.js +6 -4
- package/templates/finance-quote/ds-base.js +6 -4
- package/templates/hr-announcement/ds-base.js +6 -4
- package/templates/hr-interview-kit/ds-base.js +6 -4
- package/templates/hr-offboarding/ds-base.js +6 -4
- package/templates/hr-performance-review/ds-base.js +6 -4
- package/templates/hr-pip/ds-base.js +6 -4
- package/templates/kitchen-sink.html +1 -1
- package/templates/legal-msa/ds-base.js +6 -4
- package/templates/legal-sow/ds-base.js +6 -4
- package/templates/marketing-campaign-brief/ds-base.js +6 -4
- package/templates/marketing-case-study/ds-base.js +6 -4
- package/templates/marketing-launch/ds-base.js +6 -4
- package/templates/marketing-newsletter/ds-base.js +6 -4
- package/templates/marketing-page/ds-base.js +6 -4
- package/templates/marketing-press-release/ds-base.js +6 -4
- package/templates/marketing-social-kit/ds-base.js +6 -4
- package/templates/sales-one-pager/ds-base.js +6 -4
- package/templates/sales-proposal-deck/ds-base.js +6 -4
- package/templates/settings/ds-base.js +6 -4
- package/templates/slide-deck/ds-base.js +6 -4
- package/templates/team-meeting-agenda/ds-base.js +6 -4
- package/templates/tech-incident-report/ds-base.js +6 -4
- package/templates/tech-release-notes/ds-base.js +6 -4
- package/templates/tech-retro/ds-base.js +6 -4
- package/templates/tech-rfc/ds-base.js +6 -4
- package/templates/vn-appointment-transfer/ds-base.js +6 -4
- package/templates/vn-certificate-of-employment/ds-base.js +6 -4
- package/templates/vn-code-of-conduct/ds-base.js +6 -4
- package/templates/vn-compensation-regulation/ds-base.js +6 -4
- package/templates/vn-contract-amendment/ds-base.js +6 -4
- package/templates/vn-contractor-agreement/ds-base.js +6 -4
- package/templates/vn-data-protection-policy/ds-base.js +6 -4
- package/templates/vn-disciplinary-case-file/ds-base.js +6 -4
- package/templates/vn-disciplinary-schedule/ds-base.js +6 -4
- package/templates/vn-employee-request/ds-base.js +6 -4
- package/templates/vn-exit-handover/ds-base.js +6 -4
- package/templates/vn-foreign-employee-pack/ds-base.js +6 -4
- package/templates/vn-framework-agreement/ds-base.js +6 -4
- package/templates/vn-grassroots-democracy/ds-base.js +6 -4
- package/templates/vn-infosec-policy/ds-base.js +6 -4
- package/templates/vn-internal-labor-regulations/ds-base.js +6 -4
- package/templates/vn-internship-agreement/ds-base.js +6 -4
- package/templates/vn-job-description/ds-base.js +6 -4
- package/templates/vn-labor-contract/ds-base.js +6 -4
- package/templates/vn-labour-management-book/ds-base.js +6 -4
- package/templates/vn-mutual-nda/ds-base.js +6 -4
- package/templates/vn-ndnca-ip/ds-base.js +6 -4
- package/templates/vn-offer-letter/ds-base.js +6 -4
- package/templates/vn-onboarding-checklist/ds-base.js +6 -4
- package/templates/vn-pdpl-consent/ds-base.js +6 -4
- package/templates/vn-performance-evaluation-regulation/ds-base.js +6 -4
- package/templates/vn-performance-review-form/ds-base.js +6 -4
- package/templates/vn-phantom-stock/ds-base.js +6 -4
- package/templates/vn-probation-contract/ds-base.js +6 -4
- package/templates/vn-receipt-acknowledgement/ds-base.js +6 -4
- package/templates/vn-remote-work-policy/ds-base.js +6 -4
- package/templates/vn-resignation-letter/ds-base.js +6 -4
- package/templates/vn-salary-scale/ds-base.js +6 -4
- package/templates/vn-sow-appendix/ds-base.js +6 -4
- package/templates/vn-termination-decision/ds-base.js +6 -4
- package/templates/vn-total-rewards-appendix/ds-base.js +6 -4
- package/templates/vn-training-commitment/ds-base.js +6 -4
- package/templates/vn-travel-expense-policy/ds-base.js +6 -4
- package/tokens/declarations.json +18 -144
- package/tokens/element-seeds.json +1 -1
- package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/index.json +269 -269
- package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/native/CSModes.kt +3 -3
- package/tokens/native/CSModes.swift +3 -3
- package/tokens/native/CSTokens.kt +1 -1
- package/tokens/native/CSTokens.swift +1 -1
- package/tokens/native/cs_modes.dart +3 -3
- package/tokens/native/cs_tokens.dart +1 -1
- package/tokens/native/mode-provenance.json +6 -6
- package/tokens/provenance.json +6 -6
- package/tokens/styles.css +1 -1
- package/tokens/tokens.dtcg.json +4 -4
- package/tokens/tokens.js +5 -5
- package/tokens/tokens.json +4 -4
- package/tokens/variables.css +1 -10
- package/ui_kits/deck/index.html +1 -1
- package/ui_kits/status-hub/index.html +1 -1
- package/ui_kits/status-hub/login.html +1 -1
- package/ui_kits/status-hub/project.html +1 -1
- package/ui_kits/status-hub/settings.html +1 -1
- package/ui_kits/status-hub/static-locale.js +2 -0
- package/ui_kits/website/careers.html +1 -1
- package/ui_kits/website/chat.html +1 -1
- package/ui_kits/website/index.html +1 -1
- package/ui_kits/website/work.html +1 -1
package/_ds_manifest.json
CHANGED
|
@@ -5760,7 +5760,7 @@
|
|
|
5760
5760
|
"scope": ".cs-terminal",
|
|
5761
5761
|
"important": false,
|
|
5762
5762
|
"declarationOrder": 1053,
|
|
5763
|
-
"sourceLine":
|
|
5763
|
+
"sourceLine": 355
|
|
5764
5764
|
},
|
|
5765
5765
|
{
|
|
5766
5766
|
"name": "--cs-term-bar",
|
|
@@ -5770,7 +5770,7 @@
|
|
|
5770
5770
|
"scope": ".cs-terminal",
|
|
5771
5771
|
"important": false,
|
|
5772
5772
|
"declarationOrder": 1054,
|
|
5773
|
-
"sourceLine":
|
|
5773
|
+
"sourceLine": 356
|
|
5774
5774
|
},
|
|
5775
5775
|
{
|
|
5776
5776
|
"name": "--cs-term-dot",
|
|
@@ -5780,7 +5780,7 @@
|
|
|
5780
5780
|
"scope": ".cs-terminal",
|
|
5781
5781
|
"important": false,
|
|
5782
5782
|
"declarationOrder": 1055,
|
|
5783
|
-
"sourceLine":
|
|
5783
|
+
"sourceLine": 357
|
|
5784
5784
|
},
|
|
5785
5785
|
{
|
|
5786
5786
|
"name": "--cs-term-bg",
|
|
@@ -5790,7 +5790,7 @@
|
|
|
5790
5790
|
"scope": ".cs-terminal",
|
|
5791
5791
|
"important": false,
|
|
5792
5792
|
"declarationOrder": 1056,
|
|
5793
|
-
"sourceLine":
|
|
5793
|
+
"sourceLine": 358
|
|
5794
5794
|
},
|
|
5795
5795
|
{
|
|
5796
5796
|
"name": "--cs-term-fg",
|
|
@@ -5800,7 +5800,7 @@
|
|
|
5800
5800
|
"scope": ".cs-terminal",
|
|
5801
5801
|
"important": false,
|
|
5802
5802
|
"declarationOrder": 1057,
|
|
5803
|
-
"sourceLine":
|
|
5803
|
+
"sourceLine": 359
|
|
5804
5804
|
},
|
|
5805
5805
|
{
|
|
5806
5806
|
"name": "--cs-term-muted",
|
|
@@ -5810,7 +5810,7 @@
|
|
|
5810
5810
|
"scope": ".cs-terminal",
|
|
5811
5811
|
"important": false,
|
|
5812
5812
|
"declarationOrder": 1058,
|
|
5813
|
-
"sourceLine":
|
|
5813
|
+
"sourceLine": 360
|
|
5814
5814
|
},
|
|
5815
5815
|
{
|
|
5816
5816
|
"name": "--cs-code-bg",
|
|
@@ -5931,102 +5931,6 @@
|
|
|
5931
5931
|
"important": false,
|
|
5932
5932
|
"declarationOrder": 1073,
|
|
5933
5933
|
"sourceLine": 22
|
|
5934
|
-
},
|
|
5935
|
-
{
|
|
5936
|
-
"name": "--cs-color-border-default",
|
|
5937
|
-
"value": "#9a8060",
|
|
5938
|
-
"kind": "color",
|
|
5939
|
-
"definedIn": "base/a11y.css",
|
|
5940
|
-
"scope": "[data-theme=\"light\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *)),\n [data-theme=\"system\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *)),\n :root:where(:not([data-cs-contrast=\"standard\"]))",
|
|
5941
|
-
"conditions": [
|
|
5942
|
-
{
|
|
5943
|
-
"name": "media",
|
|
5944
|
-
"params": "(prefers-contrast: more)"
|
|
5945
|
-
}
|
|
5946
|
-
],
|
|
5947
|
-
"important": false,
|
|
5948
|
-
"declarationOrder": 1074,
|
|
5949
|
-
"sourceLine": 144
|
|
5950
|
-
},
|
|
5951
|
-
{
|
|
5952
|
-
"name": "--cs-color-text-muted",
|
|
5953
|
-
"value": "#45210e",
|
|
5954
|
-
"kind": "color",
|
|
5955
|
-
"definedIn": "base/a11y.css",
|
|
5956
|
-
"scope": "[data-theme=\"light\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *)),\n [data-theme=\"system\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *)),\n :root:where(:not([data-cs-contrast=\"standard\"]))",
|
|
5957
|
-
"conditions": [
|
|
5958
|
-
{
|
|
5959
|
-
"name": "media",
|
|
5960
|
-
"params": "(prefers-contrast: more)"
|
|
5961
|
-
}
|
|
5962
|
-
],
|
|
5963
|
-
"important": false,
|
|
5964
|
-
"declarationOrder": 1075,
|
|
5965
|
-
"sourceLine": 144
|
|
5966
|
-
},
|
|
5967
|
-
{
|
|
5968
|
-
"name": "--cs-color-border-default",
|
|
5969
|
-
"value": "#7a6450",
|
|
5970
|
-
"kind": "color",
|
|
5971
|
-
"definedIn": "base/a11y.css",
|
|
5972
|
-
"scope": "[data-theme=\"dark\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *))",
|
|
5973
|
-
"conditions": [
|
|
5974
|
-
{
|
|
5975
|
-
"name": "media",
|
|
5976
|
-
"params": "(prefers-contrast: more)"
|
|
5977
|
-
}
|
|
5978
|
-
],
|
|
5979
|
-
"important": false,
|
|
5980
|
-
"declarationOrder": 1076,
|
|
5981
|
-
"sourceLine": 145
|
|
5982
|
-
},
|
|
5983
|
-
{
|
|
5984
|
-
"name": "--cs-color-text-muted",
|
|
5985
|
-
"value": "#f5ead9",
|
|
5986
|
-
"kind": "color",
|
|
5987
|
-
"definedIn": "base/a11y.css",
|
|
5988
|
-
"scope": "[data-theme=\"dark\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *))",
|
|
5989
|
-
"conditions": [
|
|
5990
|
-
{
|
|
5991
|
-
"name": "media",
|
|
5992
|
-
"params": "(prefers-contrast: more)"
|
|
5993
|
-
}
|
|
5994
|
-
],
|
|
5995
|
-
"important": false,
|
|
5996
|
-
"declarationOrder": 1077,
|
|
5997
|
-
"sourceLine": 145
|
|
5998
|
-
},
|
|
5999
|
-
{
|
|
6000
|
-
"name": "--cs-color-border-default",
|
|
6001
|
-
"value": "#7a6450",
|
|
6002
|
-
"kind": "color",
|
|
6003
|
-
"definedIn": "base/a11y.css",
|
|
6004
|
-
"scope": "[data-theme=\"system\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *))",
|
|
6005
|
-
"conditions": [
|
|
6006
|
-
{
|
|
6007
|
-
"name": "media",
|
|
6008
|
-
"params": "(prefers-color-scheme: dark) and (prefers-contrast: more)"
|
|
6009
|
-
}
|
|
6010
|
-
],
|
|
6011
|
-
"important": false,
|
|
6012
|
-
"declarationOrder": 1078,
|
|
6013
|
-
"sourceLine": 150
|
|
6014
|
-
},
|
|
6015
|
-
{
|
|
6016
|
-
"name": "--cs-color-text-muted",
|
|
6017
|
-
"value": "#f5ead9",
|
|
6018
|
-
"kind": "color",
|
|
6019
|
-
"definedIn": "base/a11y.css",
|
|
6020
|
-
"scope": "[data-theme=\"system\"]:where(:not([data-cs-contrast=\"standard\"], [data-cs-contrast=\"standard\"] *))",
|
|
6021
|
-
"conditions": [
|
|
6022
|
-
{
|
|
6023
|
-
"name": "media",
|
|
6024
|
-
"params": "(prefers-color-scheme: dark) and (prefers-contrast: more)"
|
|
6025
|
-
}
|
|
6026
|
-
],
|
|
6027
|
-
"important": false,
|
|
6028
|
-
"declarationOrder": 1079,
|
|
6029
|
-
"sourceLine": 150
|
|
6030
5934
|
}
|
|
6031
5935
|
],
|
|
6032
5936
|
"themes": [
|
package/_esm/cs.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// CyberSkill Design System — ESM entry point (GENERATED by scripts/generate-export-catalog.mjs at v2.
|
|
1
|
+
// CyberSkill Design System — ESM entry point (GENERATED by scripts/generate-export-catalog.mjs at v2.6.0).
|
|
2
2
|
// No build step: import this module directly in a browser. It loads the pinned umd-react@19.2.8
|
|
3
3
|
// distribution; its retained React and ReactDOM files report runtime version 19.2.4.
|
|
4
4
|
// (official React 19 dropped UMD; pinned + SRI; skipped when window.React already exists), side-loads
|
|
@@ -33,7 +33,7 @@ if (!found()) await ensureScript("../_ds_bundle.js");
|
|
|
33
33
|
export const CS = g[found()];
|
|
34
34
|
if (!CS) throw new Error("cs.js: bundle loaded but no CyberSkillDesignSystem_* namespace found");
|
|
35
35
|
export default CS;
|
|
36
|
-
export const VERSION = "2.
|
|
36
|
+
export const VERSION = "2.6.0";
|
|
37
37
|
export const AIDisclosureBadge = CS.AIDisclosureBadge;
|
|
38
38
|
export const Accordion = CS.Accordion;
|
|
39
39
|
export const Alert = CS.Alert;
|
package/base/a11y.css
CHANGED
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
background: radial-gradient(circle, var(--cs-color-border-default) 4.5px, transparent 5px);
|
|
112
112
|
}
|
|
113
113
|
.cs-carousel__dots button[aria-current="true"] {
|
|
114
|
-
background: radial-gradient(circle, var(--cs-accent) 4.5px, transparent 5px);
|
|
114
|
+
background: radial-gradient(circle, var(--cs-color-text-accent) 4.5px, transparent 5px);
|
|
115
115
|
}
|
|
116
116
|
.cs-carousel__dots button::before { content: none; }
|
|
117
117
|
/* The container's two 1px borders must not clip a short requested divider. */
|
|
@@ -138,17 +138,12 @@
|
|
|
138
138
|
* warm hairline border and muted text (both are intentionally soft by default).
|
|
139
139
|
* Only activates on user request; anchors (Umber/Ochre) and focus rings are
|
|
140
140
|
* already high-contrast and untouched. ---- */
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
/* System dark gets stronger contrast only when the user requests it, just like explicit dark. */
|
|
149
|
-
@media (prefers-color-scheme: dark) and (prefers-contrast: more) {
|
|
150
|
-
[data-theme="system"]:where(:not([data-cs-contrast="standard"], [data-cs-contrast="standard"] *)) { --cs-color-border-default: #7a6450; --cs-color-text-muted: #f5ead9; }
|
|
151
|
-
}
|
|
141
|
+
/* The values live in tokens/elements.css: the scope resolver derives
|
|
142
|
+
* --cs-color-border-default / --cs-color-text-muted from the --_cs-standard /
|
|
143
|
+
* --_cs-high channel toggles, which flip to high under prefers-contrast: more
|
|
144
|
+
* (light #9a8060 / #45210e · dark #7a6450 / #f5ead9) unless a scope sets
|
|
145
|
+
* data-cs-contrast explicitly. The former contextual overrides here were
|
|
146
|
+
* already superseded by that resolver's higher specificity. */
|
|
152
147
|
|
|
153
148
|
/* Forced colors removes authored backgrounds and shadows. State must survive
|
|
154
149
|
* that substitution using real borders, system colors and knob position. */
|
package/base/ai.css
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
/* PromptInput */
|
|
6
6
|
.cs-prompt { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); background: var(--cs-color-surface-panel); padding: 10px 12px; display: grid; gap: 8px; }
|
|
7
|
+
.cs-prompt.is-invalid, .is-invalid .cs-prompt, .cs-prompt[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
7
8
|
.cs-prompt:focus-within {
|
|
8
9
|
border-color: var(--cs-color-text-primary);
|
|
9
10
|
outline: 2px solid var(--cs-color-text-primary);
|
|
@@ -22,14 +23,14 @@
|
|
|
22
23
|
.cs-chat-msg--user { flex-direction: row-reverse; }
|
|
23
24
|
.cs-chat-msg__avatar { flex: none; inline-size: 32px; block-size: 32px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; }
|
|
24
25
|
.cs-chat-msg--lumi .cs-chat-msg__avatar { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); }
|
|
25
|
-
.cs-chat-msg--user .cs-chat-msg__avatar { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-weight: 700; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); }
|
|
26
|
+
.cs-chat-msg--user .cs-chat-msg__avatar { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-weight: 700; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }
|
|
26
27
|
.cs-chat-msg__avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; }
|
|
27
28
|
.cs-chat-msg__col { display: grid; gap: 3px; max-inline-size: 80%; }
|
|
28
29
|
.cs-chat-msg--user .cs-chat-msg__col { justify-items: end; }
|
|
29
30
|
.cs-chat-msg__name { font-size: var(--cs-font-size-xs); font-weight: 700; color: var(--cs-color-text-muted); }
|
|
30
31
|
.cs-chat-msg__bubble { padding: 10px 14px; border-radius: 14px; font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }
|
|
31
32
|
.cs-chat-msg--lumi .cs-chat-msg__bubble { background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-end-start-radius: 4px; color: var(--cs-color-text-primary); }
|
|
32
|
-
.cs-chat-msg--user .cs-chat-msg__bubble { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ border-end-end-radius: 4px; }
|
|
33
|
+
.cs-chat-msg--user .cs-chat-msg__bubble { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ border-end-end-radius: 4px; box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }
|
|
33
34
|
|
|
34
35
|
/* ConfidenceMeter */
|
|
35
36
|
.cs-confidence { display: grid; gap: 6px; font-family: var(--cs-font-family-ui); }
|
package/base/collections.css
CHANGED
|
@@ -27,7 +27,7 @@ button.cs-item--interactive { border: 1px solid transparent; background: var(--c
|
|
|
27
27
|
.cs-item--interactive:hover { background: var(--cs-color-surface-raised); border-color: var(--cs-color-border-default); }
|
|
28
28
|
}
|
|
29
29
|
.cs-item--interactive:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
30
|
-
.cs-item.is-selected { border-color: var(--cs-accent); background: var(--cs-accent
|
|
30
|
+
.cs-item.is-selected { border-color: var(--cs-color-text-accent); background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }
|
|
31
31
|
.cs-item.is-disabled, .cs-item[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }
|
|
32
32
|
/* Static Item text remains information, rather than an inactive control. */
|
|
33
33
|
div.cs-item.is-disabled { opacity: 1; }
|
package/base/components.css
CHANGED
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
padding-inline: var(--cs-component-textfield-paddingX, 12px);
|
|
125
125
|
}
|
|
126
126
|
.cs-field__control::placeholder { color: var(--cs-color-text-muted, #3f2d21); opacity: 0.7; }
|
|
127
|
-
.cs-field.is-invalid .cs-field__control { border-color: var(--cs-color-semantic-danger, #b42318); }
|
|
127
|
+
.cs-field.is-invalid .cs-field__control, .cs-field__control.is-invalid, .cs-field__control[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }
|
|
128
128
|
.cs-field__error { color: var(--cs-color-semantic-danger-text, #4b0502); font-size: 0.875rem; }
|
|
129
129
|
|
|
130
130
|
/* ---- Dialog ---- */
|
package/base/controls.css
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/* SearchField */
|
|
4
4
|
.cs-search { display: flex; align-items: center; gap: var(--cs-space-2); border: 1px solid var(--cs-component-textfield-border-default); border-radius: var(--cs-radius-full); padding: 0 14px; min-height: 44px; background: var(--cs-color-surface-panel); }
|
|
5
|
+
.cs-search.is-invalid, .is-invalid .cs-search, .cs-search[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
5
6
|
.cs-search:focus-within {
|
|
6
7
|
border-color: var(--cs-color-text-primary);
|
|
7
8
|
outline: 2px solid var(--cs-color-text-primary);
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
|
|
17
18
|
/* NumberField / stepper */
|
|
18
19
|
.cs-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--cs-component-textfield-border-default); border-radius: var(--cs-radius-md); overflow: hidden; background: var(--cs-color-surface-panel); }
|
|
20
|
+
.cs-stepper.is-invalid, .is-invalid .cs-stepper, .cs-stepper[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
19
21
|
.cs-stepper:focus-within {
|
|
20
22
|
border-color: var(--cs-color-text-primary);
|
|
21
23
|
outline: 2px solid var(--cs-color-text-primary);
|
|
@@ -65,11 +67,12 @@
|
|
|
65
67
|
.cs-toggle:disabled { opacity: .5; cursor: not-allowed; }
|
|
66
68
|
.cs-rating { display: inline-flex; gap: 4px; }
|
|
67
69
|
.cs-rating button { background: none; border: 0; padding: 2px; cursor: pointer; color: var(--cs-color-border-default); display: grid; place-items: center; }
|
|
68
|
-
.cs-rating button.on { color: var(--cs-accent); }
|
|
70
|
+
.cs-rating button.on { color: var(--cs-color-text-accent); }
|
|
69
71
|
.cs-rating[data-readonly="true"] button { cursor: default; }
|
|
70
72
|
.cs-rating button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-radius: 4px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
71
73
|
.cs-otp { display: inline-flex; gap: 8px; }
|
|
72
74
|
.cs-otp input { inline-size: 44px; block-size: 52px; text-align: center; font: 700 22px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); }
|
|
75
|
+
.cs-otp.is-invalid input, .is-invalid .cs-otp input, .cs-otp input.is-invalid, .cs-otp input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
73
76
|
.cs-otp input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; border-color: var(--cs-accent); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
74
77
|
.cs-otp input:disabled { opacity: .5; cursor: not-allowed; background: var(--cs-color-surface-raised); }
|
|
75
78
|
.cs-btngroup { display: inline-flex; }
|
|
@@ -81,7 +84,7 @@
|
|
|
81
84
|
/* ---- v3 Batch 2 part 2 (Jul 2026): Combobox · InputGroup · TagInput ---- */
|
|
82
85
|
.cs-combobox { position: relative; display: inline-block; min-inline-size: 260px; }
|
|
83
86
|
.cs-combobox input { inline-size: 100%; box-sizing: border-box; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 10px 34px 10px var(--cs-space-3); min-block-size: 44px; }
|
|
84
|
-
.is-invalid .cs-combobox input, .cs-combobox input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }
|
|
87
|
+
.is-invalid .cs-combobox input, .cs-combobox.is-invalid input, .cs-combobox input.is-invalid, .cs-combobox[aria-invalid="true"] input, .cs-combobox input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }
|
|
85
88
|
.cs-combobox input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
86
89
|
.cs-combobox__caret { position: absolute; inset-inline-end: 10px; inset-block-start: 50%; translate: 0 -50%; pointer-events: none; color: var(--cs-color-text-muted); }
|
|
87
90
|
.cs-combobox__popup { color: var(--cs-color-text-primary); position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline: 0; inset-block-start: calc(100% + 6px); max-block-size: 240px; overflow: auto; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 6px; margin: 0; }
|
|
@@ -90,6 +93,7 @@
|
|
|
90
93
|
.cs-combobox__opt[aria-selected="true"], .cs-combobox__opt.hl { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-primary))var(--_cs-dark, var(--cs-accent-bright)); }
|
|
91
94
|
.cs-combobox__empty { padding: 10px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }
|
|
92
95
|
.cs-igroup { display: inline-flex; align-items: stretch; min-inline-size: 260px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); overflow: hidden; }
|
|
96
|
+
.cs-igroup.is-invalid, .is-invalid .cs-igroup, .cs-igroup[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
93
97
|
.cs-igroup:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
94
98
|
.cs-igroup > input { flex: 1; min-inline-size: 0; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 10px 12px; min-block-size: 44px; box-sizing: border-box; }
|
|
95
99
|
.cs-igroup > input:focus { outline: none; }
|
|
@@ -98,6 +102,7 @@
|
|
|
98
102
|
.cs-igroup__btn { border: 0; background: none; color: var(--cs-color-text-muted); cursor: pointer; display: grid; place-items: center; padding: 0 10px; }
|
|
99
103
|
.cs-igroup__btn:hover { color: var(--cs-color-text-primary); }
|
|
100
104
|
.cs-taginput { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-inline-size: 280px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 6px var(--cs-space-2); min-block-size: 44px; box-sizing: border-box; }
|
|
105
|
+
.cs-taginput.is-invalid, .is-invalid .cs-taginput, .cs-taginput[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
101
106
|
.cs-taginput:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
102
107
|
.cs-taginput > input { flex: 1; min-inline-size: 120px; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 6px var(--cs-space-1); }
|
|
103
108
|
.cs-taginput > input:focus { outline: none; }
|
|
@@ -114,16 +119,18 @@
|
|
|
114
119
|
.cs-cal__wd span { text-align: center; font: 700 10.5px/2 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .04em; color: var(--cs-color-text-muted); }
|
|
115
120
|
.cs-cal__grid button { border: 0; background: none; color: var(--cs-color-text-primary); font: 500 13px var(--cs-font-family-ui); block-size: 34px; border-radius: var(--cs-radius-sm); cursor: pointer; }
|
|
116
121
|
.cs-cal__grid button:hover { background: var(--cs-color-surface-raised); }
|
|
117
|
-
.cs-cal__grid button.today { box-shadow: inset 0 0 0 1px var(--cs-accent); }
|
|
122
|
+
.cs-cal__grid button.today { box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); }
|
|
118
123
|
.cs-cal__grid button.sel { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); font-weight: 700; box-shadow: inset 0 0 0 2px var(--cs-accent-strong); }
|
|
119
124
|
.cs-cal__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
120
125
|
.cs-datepicker { position: relative; display: inline-block; max-inline-size: 100%; }
|
|
121
126
|
.cs-datepicker__field { display: inline-flex; align-items: center; gap: var(--cs-space-2); min-inline-size: 220px; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: var(--cs-space-2) var(--cs-space-3); cursor: pointer; }
|
|
127
|
+
.cs-datepicker.is-invalid .cs-datepicker__field, .is-invalid .cs-datepicker__field, .cs-datepicker__field.is-invalid, .cs-datepicker__field[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
122
128
|
.cs-datepicker__field:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
123
129
|
.cs-datepicker__field .ph { color: var(--cs-color-text-muted); }
|
|
124
130
|
.cs-datepicker__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: max-content; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); }
|
|
125
131
|
.cs-datepicker__pop .cs-cal { min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; overflow-x: auto; }
|
|
126
132
|
.cs-timepicker { display: inline-flex; align-items: center; gap: 8px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 0 10px; min-block-size: 44px; color: var(--cs-color-text-muted); }
|
|
133
|
+
.cs-timepicker.is-invalid, .is-invalid .cs-timepicker, .cs-timepicker[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
127
134
|
.cs-timepicker:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
128
135
|
.cs-timepicker select { border: 0; background: transparent; color: var(--cs-color-text-primary); font: 600 14px var(--cs-font-family-mono); padding: 8px 2px; cursor: pointer; }
|
|
129
136
|
.cs-timepicker select:focus { outline: none; }
|
|
@@ -145,7 +152,7 @@
|
|
|
145
152
|
.cs-fab--static .cs-fab__dial, .cs-fab__dial--static { flex-direction: row; }
|
|
146
153
|
.cs-fab__mini { inline-size: 42px; block-size: 42px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; box-shadow: var(--cs-shadow-sm); }
|
|
147
154
|
.cs-result { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 44px 24px; }
|
|
148
|
-
.cs-result__icon { inline-size: 64px; block-size: 64px; border-radius: 999px; display: grid; place-items: center; background: var(--cs-accent-
|
|
155
|
+
.cs-result__icon { inline-size: 64px; block-size: 64px; border-radius: 999px; display: grid; place-items: center; background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); color: var(--cs-color-text-accent); }
|
|
149
156
|
.cs-result--success .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-success) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-success-text); }
|
|
150
157
|
.cs-result--error .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-danger) 12%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-danger-text); }
|
|
151
158
|
.cs-result--warning .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-warning) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-warning-text); }
|
|
@@ -199,7 +206,7 @@
|
|
|
199
206
|
.cs-navmenu__top:hover, .cs-navmenu__top.is-open { background: var(--cs-color-surface-raised); }
|
|
200
207
|
.cs-navmenu__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: 468px; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); box-sizing: border-box; inset-block-start: calc(100% + 8px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-md); padding: 10px; }
|
|
201
208
|
.cs-navmenu__card { min-inline-size: 0; overflow-wrap: anywhere; display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--cs-radius-md); text-decoration: none; color: var(--cs-color-text-primary); }
|
|
202
|
-
.cs-navmenu__card:hover { background: var(--cs-accent-
|
|
209
|
+
.cs-navmenu__card:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }
|
|
203
210
|
.cs-navmenu__card b { font-size: var(--cs-font-size-sm); }
|
|
204
211
|
.cs-navmenu__card small { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); line-height: 1.45; }
|
|
205
212
|
.cs-carousel { display: grid; gap: 10px; }
|
|
@@ -215,7 +222,7 @@
|
|
|
215
222
|
.cs-carousel__dots { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
|
|
216
223
|
.cs-carousel__dots button { inline-size: 24px; block-size: 24px; flex: 0 0 24px; border-radius: 999px; border: 0; background: none; cursor: pointer; padding: 0; position: relative; }
|
|
217
224
|
.cs-carousel__dots button::before { content: ""; position: absolute; inset: 0; margin: auto; inline-size: 9px; block-size: 9px; border-radius: inherit; background: var(--cs-color-border-default); pointer-events: none; }
|
|
218
|
-
.cs-carousel__dots button[aria-current="true"]::before { background: var(--cs-accent); }
|
|
225
|
+
.cs-carousel__dots button[aria-current="true"]::before { background: var(--cs-color-text-accent); }
|
|
219
226
|
@media (prefers-reduced-motion: reduce) { .cs-carousel__track { transition: none; } }
|
|
220
227
|
.cs-comment { display: flex; gap: 10px; }
|
|
221
228
|
.cs-comment__main { flex: 1; min-inline-size: 0; }
|
|
@@ -242,7 +249,7 @@
|
|
|
242
249
|
.cs-formfield__label em { color: var(--cs-color-semantic-danger-text); font-style: normal; }
|
|
243
250
|
.cs-formfield__hint { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }
|
|
244
251
|
.cs-formfield__error { font-size: var(--cs-font-size-xs); color: var(--cs-color-semantic-danger-text); font-weight: 600; }
|
|
245
|
-
.cs-formfield.has-error input, .cs-formfield.has-error textarea, .cs-formfield.has-error select { border-color: var(--cs-color-semantic-danger); }
|
|
252
|
+
.cs-formfield.has-error input, .cs-formfield.has-error textarea, .cs-formfield.has-error select, .cs-formfield.is-invalid input, .cs-formfield.is-invalid textarea, .cs-formfield.is-invalid select, .cs-formfield input[aria-invalid="true"], .cs-formfield textarea[aria-invalid="true"], .cs-formfield select[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
246
253
|
.cs-tree { list-style: none; margin: 0; padding: 0; font-size: var(--cs-font-size-sm); }
|
|
247
254
|
.cs-tree ul { list-style: none; margin: 0; padding: 0; }
|
|
248
255
|
.cs-tree__row { display: flex; align-items: center; gap: 2px; border-radius: var(--cs-radius-sm); }
|
|
@@ -257,6 +264,7 @@
|
|
|
257
264
|
/* ---- v3 Batch 6b (Jul 2026): TreeSelect · Cascader · Transfer · Mentions ---- */
|
|
258
265
|
.cs-treeselect, .cs-cascader { position: relative; display: inline-block; min-inline-size: 240px; }
|
|
259
266
|
.cs-treeselect__field { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; inline-size: 100%; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; box-sizing: border-box; }
|
|
267
|
+
.cs-treeselect.is-invalid .cs-treeselect__field, .cs-cascader.is-invalid .cs-treeselect__field, .is-invalid .cs-treeselect__field, .cs-treeselect__field.is-invalid, .cs-treeselect__field[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }
|
|
260
268
|
.cs-treeselect__field:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
261
269
|
.cs-treeselect__field .ph { color: var(--cs-color-text-muted); }
|
|
262
270
|
.cs-treeselect__pop, .cs-cascader__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: 0; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 8px; min-inline-size: 100%; }
|
|
@@ -303,7 +311,7 @@
|
|
|
303
311
|
.cs-splitter { display: flex; align-items: stretch; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); overflow: hidden; background: var(--cs-color-surface-panel); }
|
|
304
312
|
.cs-splitter__pane { overflow: auto; padding: 14px; min-inline-size: 0; }
|
|
305
313
|
.cs-splitter__bar { inline-size: 8px; cursor: col-resize; background: var(--cs-color-surface-raised); border-inline: 1px solid var(--cs-color-border-default); touch-action: none; }
|
|
306
|
-
.cs-splitter__bar:hover { background: var(--cs-accent-
|
|
314
|
+
.cs-splitter__bar:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }
|
|
307
315
|
.cs-splitter__bar:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
308
316
|
.cs-hotkeys__sheet { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); display: grid; place-items: center; }
|
|
309
317
|
.cs-hotkeys__card { background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 18px 20px; min-inline-size: 300px; }
|
|
@@ -312,7 +320,7 @@
|
|
|
312
320
|
.cs-hotkeys__card li { display: flex; justify-content: space-between; gap: 20px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }
|
|
313
321
|
.cs-dock { display: inline-flex; align-items: flex-end; gap: 8px; background: color-mix(in oklab, var(--cs-color-surface-panel) 82%, transparent); border: 1px solid var(--cs-color-border-default); border-radius: 18px; padding: 8px 12px; backdrop-filter: blur(10px); }
|
|
314
322
|
.cs-dock__item { inline-size: 44px; block-size: 44px; border-radius: 12px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; transition: transform var(--cs-duration-fast, 120ms); position: relative; }
|
|
315
|
-
.cs-dock__item.is-active::after { content: ""; position: absolute; inset-block-end: -6px; inline-size: 4px; block-size: 4px; border-radius: 999px; background: var(--cs-accent); }
|
|
323
|
+
.cs-dock__item.is-active::after { content: ""; position: absolute; inset-block-end: -6px; inline-size: 4px; block-size: 4px; border-radius: 999px; background: var(--cs-color-text-accent); }
|
|
316
324
|
@media (prefers-reduced-motion: reduce) { .cs-dock__item { transition: none; } }
|
|
317
325
|
|
|
318
326
|
/* ---- v3 Batch 7b (Jul 2026): DataGrid · TreeTable · Sortable ---- */
|
package/base/data.css
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
.cs-stat { display: grid; gap: 3px; }
|
|
24
24
|
.cs-stat__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }
|
|
25
25
|
.cs-stat__value { font-size: var(--cs-font-size-3xl); font-weight: 800; line-height: 1.1; letter-spacing: var(--cs-letter-spacing-tight); font-variant-numeric: tabular-nums; }
|
|
26
|
+
.cs-stat__value:lang(vi) { line-height: 1.22; }
|
|
26
27
|
.cs-stat__delta { display: inline-flex; align-items: center; gap: 4px; font-size: var(--cs-font-size-sm); font-weight: 700; }
|
|
27
28
|
.cs-stat__delta--up { color: var(--cs-color-semantic-success-text); }
|
|
28
29
|
.cs-stat__delta--down { color: var(--cs-color-semantic-danger-text); }
|
package/base/feedback.css
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/* Badge — compact status label */
|
|
4
4
|
.cs-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-xs); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; padding: 3px 9px; border-radius: var(--cs-radius-full); text-transform: uppercase; letter-spacing: 0.04em; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }
|
|
5
|
-
.cs-badge--solid { border-color: transparent; color: #fff; /* on-brand-umber ink (allowlisted; text-inverse flips in dark) */ background: var(--cs-color-brand-umber); }
|
|
5
|
+
.cs-badge--solid { border-color: transparent; color: #fff; /* on-brand-umber ink (allowlisted; text-inverse flips in dark) */ background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }
|
|
6
6
|
.cs-badge--ochre { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border-color: transparent; }
|
|
7
7
|
[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--solid { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); }
|
|
8
8
|
[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--ochre { background: var(--cs-accent-tint); color: var(--cs-color-text-accent); border-color: color-mix(in oklab, var(--cs-accent) 55%, transparent); }
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
|
|
57
57
|
/* Progress bar */
|
|
58
58
|
.cs-progress { inline-size: 100%; block-size: 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); overflow: hidden; }
|
|
59
|
-
.cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-accent); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }
|
|
60
|
-
.cs-progress--umber .cs-progress__fill { background: var(--cs-color-brand-umber); }
|
|
61
|
-
.cs-progress--success .cs-progress__fill { background: var(--cs-color-semantic-success); }
|
|
59
|
+
.cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-accent); box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }
|
|
60
|
+
.cs-progress--umber .cs-progress__fill { background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }
|
|
61
|
+
.cs-progress--success .cs-progress__fill { background: var(--cs-color-semantic-success); box-shadow: none; }
|
|
62
62
|
|
|
63
63
|
/* Skeleton */
|
|
64
64
|
.cs-skeleton { display: block; border-radius: var(--cs-radius-sm); background: linear-gradient(90deg, var(--cs-color-surface-raised) 25%, color-mix(in oklab, var(--cs-color-surface-raised) 55%, var(--cs-color-surface-panel)) 37%, var(--cs-color-surface-raised) 63%); background-size: 400% 100%; animation: cs-shimmer 1.4s ease infinite; }
|
package/base/glass.css
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
:root, [data-theme], [data-cs-element], [data-element], [data-cs-contrast] {
|
|
12
12
|
--_cs-border-subtle: color-mix(in oklab, var(--cs-color-border-default, #e7d9c6) 76%, transparent);
|
|
13
13
|
--_cs-border-strong: color-mix(in oklab, var(--cs-color-border-default, #e7d9c6) 65%, var(--cs-color-text-primary, #45210e));
|
|
14
|
-
--_cs-surface-scrim: color-mix(in oklab, color-mix(in oklab, var(--cs-color-
|
|
14
|
+
--_cs-surface-scrim: color-mix(in oklab, color-mix(in oklab, var(--cs-color-surface-page, #fffdf8) 25%, #050403) 68%, transparent); /* light: umber-led veil · dark: near-black veil so modals dim dark surfaces (v2.4.0 audit D2) */
|
|
15
15
|
--cs-glass-whisper-bg: color-mix(in oklab, var(--cs-color-surface-page, #fffdf8) var(--cs-glass-whisper-opacity, 60%), transparent);
|
|
16
16
|
--cs-glass-whisper-border: transparent;
|
|
17
17
|
--cs-glass-light-bg: color-mix(in oklab, var(--cs-color-surface-panel, #fff) var(--cs-glass-light-opacity, 70%), transparent);
|
package/base/shell.css
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
.cs-step:not(:last-child)::after { content: ""; position: absolute; inset-block-start: 13px; inset-inline-start: 34px; inline-size: calc(100% - 46px); block-size: 2px; background: var(--cs-color-border-default); }
|
|
17
17
|
.cs-step__marker { inline-size: 28px; block-size: 28px; border-radius: 50%; display: grid; place-items: center; font-family: var(--cs-font-family-mono); font-weight: 700; font-size: var(--cs-font-size-sm); background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); z-index: 1; }
|
|
18
18
|
.cs-step--done .cs-step__marker { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); border-color: transparent; }
|
|
19
|
-
.cs-step--done:not(:last-child)::after { background: var(--cs-accent
|
|
19
|
+
.cs-step--done:not(:last-child)::after { background: var(--cs-color-text-accent); }
|
|
20
20
|
.cs-step--active .cs-step__marker { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); border-color: transparent; box-shadow: inset 0 0 0 2px var(--cs-accent-strong), 0 0 0 4px color-mix(in oklab, var(--cs-accent) 28%, transparent); }
|
|
21
21
|
.cs-step__title { font-weight: 700; font-size: var(--cs-font-size-sm); }
|
|
22
22
|
.cs-step__body { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }
|
package/base/typography.css
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Built on the semantic aliases in tokens/typography.css. */
|
|
4
4
|
.cs-display { font-family: var(--cs-heading-family); font-size: var(--cs-text-display); line-height: var(--cs-font-lineHeight-tight); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
|
|
5
5
|
.cs-display--fluid { font-family: var(--cs-heading-family); font-size: clamp(2.25rem, 1.5rem + 3.5vw, var(--cs-text-display)); line-height: var(--cs-font-lineHeight-tight); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
|
|
6
|
-
:
|
|
6
|
+
:is(.cs-display, .cs-display--fluid):lang(vi) { line-height: 1.22; } /* element's own language: EN display inside a VI page keeps 1.15 */
|
|
7
7
|
.cs-h1 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h1); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
|
|
8
8
|
.cs-h1--fluid { font-family: var(--cs-heading-family); font-size: clamp(1.75rem, 1.25rem + 2vw, var(--cs-text-h1)); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
|
|
9
9
|
.cs-h2 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h2); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — AI-native — conversation</title>
|
|
8
8
|
<meta name="description" content="AI-native — conversation: PromptInput, ChatMessage (Lumi), ConfidenceMeter" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px; max-width: 660px; align-items: start; }
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title>CyberSkill — AI-native — Lumi conversation</title>
|
|
6
6
|
<meta name="description" content="AI-native — Lumi conversation: PromptSuggestions, TypingIndicator, CitationList" />
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
9
9
|
<style>
|
|
10
10
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
11
11
|
.lbl { font: 600 11px/1 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .09em; color: var(--cs-color-text-muted); margin-bottom: 10px; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — AI-native — Disclosure & Review Gate</title>
|
|
8
8
|
<meta name="description" content="AI-native — Disclosure & Review Gate: Explainable AI badge + human-in-the-loop approval" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.stack { display: grid; gap: 18px; max-width: 560px; }
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title>CyberSkill — LumiAvatar</title>
|
|
6
6
|
<meta name="description" content="LumiAvatar: Golden-genie mascot avatar — sizes + ring" />
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
9
9
|
<style>
|
|
10
10
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
11
11
|
.row { display: flex; align-items: center; gap: 24px; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — Button</title>
|
|
8
8
|
<meta name="description" content="Button: Variants, sizes, states — Umber primary, composite focus" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title>CyberSkill — Collections & content</title>
|
|
6
6
|
<meta name="description" content="Collections & content: List, Item, DescriptionList, Timeline, Accordion, Collapsible, Kbd, CodeBlock" />
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
9
9
|
<style>
|
|
10
10
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
11
11
|
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — Data & layout</title>
|
|
8
8
|
<meta name="description" content="Data & layout: Card, Stat, Avatar, Tooltip, Divider, ScrollArea, AspectRatio" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; max-width: 640px; align-items: start; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — DataTable</title>
|
|
8
8
|
<meta name="description" content="DataTable: Caption, scoped headers, idle / loading / error / empty" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.wrap { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: 6px 16px 10px; background: var(--cs-color-surface-panel); max-width: 640px; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — Dialog</title>
|
|
8
8
|
<meta name="description" content="Dialog: Modal overlay + panel with footer actions" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
/* Scope the fixed dialog layer to the preview frame so it renders inline in the card. */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title>CyberSkill — Status & empty state</title>
|
|
6
6
|
<meta name="description" content="Status & empty state: StatusIndicator, EmptyState" />
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
9
9
|
<style>
|
|
10
10
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
11
11
|
.row { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-bottom: 18px; }
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — Feedback & status</title>
|
|
8
8
|
<meta name="description" content="Feedback & status: Badge, Tag, Alert, Toast, Spinner, Progress, Skeleton" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.stack { display: grid; gap: 18px; max-width: 620px; }
|
|
13
13
|
.row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
|
|
14
14
|
.lbl { width: 100%; font: 600 11px/1 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .09em; color: var(--cs-color-text-muted); }
|
|
15
|
-
.frame { position: relative; height: 96px; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-raised); }
|
|
15
|
+
.frame { position: relative; flex: 1 1 100%; min-width: 0; height: 96px; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-raised); }
|
|
16
16
|
.frame .cs-toast-stack { position: absolute; inset-block-end: 12px; inset-inline-end: 12px; }
|
|
17
17
|
</style>
|
|
18
18
|
<script src="../../_vendor/react/react.production.min.js"></script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title>CyberSkill — Form controls II</title>
|
|
6
6
|
<meta name="description" content="Form controls II: Search, NumberField, Slider, FileUpload, SegmentedControl" />
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
9
9
|
<style>
|
|
10
10
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
11
11
|
.stack { display: grid; gap: 18px; max-width: 620px; }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<title>CyberSkill — Form controls</title>
|
|
8
8
|
<meta name="description" content="Form controls: Select, NativeSelect, Checkbox, Radio, Switch, Textarea — brand accent" />
|
|
9
|
-
<link rel="stylesheet" href="../../styles.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../dist/styles.css" />
|
|
10
10
|
<style>
|
|
11
11
|
body { margin: 0; background: var(--cs-color-surface-page); padding: 22px 24px; }
|
|
12
12
|
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; max-width: 640px; align-items: start; }
|