@cyberskill/design 1.0.0 → 1.1.1
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 +10 -9
- package/README.md +31 -28
- package/SKILL.md +13 -9
- package/VERSION +1 -1
- package/_ds_bundle.js +660 -202
- package/_ds_manifest.json +1 -1
- package/_esm/cs.mjs +14 -8
- package/_esm/react.d.ts +216 -0
- package/_esm/react.mjs +114 -0
- package/base/collections.css +31 -0
- package/base/components.css +3 -0
- package/base/data.css +33 -0
- package/base/forms.css +8 -0
- package/base/interaction.css +1 -0
- package/base/typography.css +6 -0
- package/components/_i18n/strings.js +8 -4
- package/components/ai/ai-conversation.card.html +2 -2
- package/components/ai/ai-lumi.card.html +2 -2
- package/components/ai/ai.card.html +2 -2
- package/components/brand/brand.card.html +2 -2
- package/components/button/buttons.card.html +2 -2
- package/components/data/AspectRatio.d.ts +16 -0
- package/components/data/AspectRatio.figma.tsx +12 -0
- package/components/data/AspectRatio.jsx +16 -0
- package/components/data/AspectRatio.prompt.md +7 -0
- package/components/data/Collapsible.d.ts +21 -0
- package/components/data/Collapsible.figma.tsx +12 -0
- package/components/data/Collapsible.jsx +49 -0
- package/components/data/Collapsible.prompt.md +7 -0
- package/components/data/Image.d.ts +4 -0
- package/components/data/Image.prompt.md +2 -2
- package/components/data/Item.d.ts +26 -0
- package/components/data/Item.figma.tsx +12 -0
- package/components/data/Item.jsx +63 -0
- package/components/data/Item.prompt.md +10 -0
- package/components/data/ScrollArea.d.ts +16 -0
- package/components/data/ScrollArea.figma.tsx +12 -0
- package/components/data/ScrollArea.jsx +25 -0
- package/components/data/ScrollArea.prompt.md +7 -0
- package/components/data/collections.card.html +15 -4
- package/components/data/data.card.html +15 -4
- package/components/datatable/datatable.card.html +2 -2
- package/components/dialog/dialog.card.html +2 -2
- package/components/feedback/feedback-2.card.html +2 -2
- package/components/feedback/feedback.card.html +2 -2
- package/components/forms/Cascader.jsx +5 -3
- package/components/forms/Editor.prompt.md +1 -1
- package/components/forms/InputGroup.d.ts +4 -0
- package/components/forms/InputGroup.jsx +38 -8
- package/components/forms/InputGroup.prompt.md +3 -3
- package/components/forms/NativeSelect.d.ts +22 -0
- package/components/forms/NativeSelect.figma.tsx +12 -0
- package/components/forms/NativeSelect.jsx +56 -0
- package/components/forms/NativeSelect.prompt.md +10 -0
- package/components/forms/NumberField.d.ts +5 -0
- package/components/forms/NumberField.jsx +51 -7
- package/components/forms/NumberField.prompt.md +2 -2
- package/components/forms/SegmentedControl.jsx +1 -1
- package/components/forms/TagInput.d.ts +3 -0
- package/components/forms/TagInput.jsx +62 -20
- package/components/forms/TagInput.prompt.md +2 -2
- package/components/forms/forms-2.card.html +2 -2
- package/components/forms/forms.card.html +5 -4
- package/components/icon/Icon.prompt.md +1 -1
- package/components/icon/icon.card.html +2 -2
- package/components/logo/Logo.jsx +2 -1
- package/components/logo/logo.card.html +2 -2
- package/components/navigation/Menu.jsx +14 -1
- package/components/navigation/navigation.card.html +2 -2
- package/components/navigation/shell.card.html +2 -2
- package/components/overlays/AlertDialog.d.ts +29 -0
- package/components/overlays/AlertDialog.figma.tsx +12 -0
- package/components/overlays/AlertDialog.jsx +142 -0
- package/components/overlays/AlertDialog.prompt.md +12 -0
- package/components/overlays/Drawer.jsx +1 -1
- package/components/overlays/Popconfirm.jsx +14 -1
- package/components/overlays/Popover.jsx +14 -1
- package/components/overlays/alertdialog.card.html +42 -0
- package/components/overlays/overlays.card.html +2 -2
- package/components/textfield/textfield.card.html +2 -2
- package/docs/benchmark-rubric.md +46 -0
- package/docs/ci-cd.md +17 -11
- package/docs/consumer-grant.md +37 -0
- package/docs/consuming.md +45 -16
- package/docs/contrast-report.md +91 -103
- package/docs/conventions.md +12 -9
- package/docs/decisions.md +33 -10
- package/docs/deploy.md +1 -1
- package/docs/design-styles.md +26 -8
- package/docs/figma.md +3 -3
- package/docs/live-hub.md +5 -3
- package/docs/products.md +13 -11
- package/docs/quality-gates.md +35 -21
- package/docs/release-notes.md +21 -3
- package/docs/status/assets/favicon.svg +5 -0
- package/docs/status/assets/status-legacy.css +399 -0
- package/docs/status/assets/status-legacy.js +505 -0
- package/docs/status/assets/status.css +644 -0
- package/docs/status/assets/status.js +1308 -0
- package/docs/status/data/status-feed.json +1 -0
- package/docs/status/data/task/TASK-REL-001.js +1 -0
- package/docs/status/data/task/TASK-REL-002.js +1 -0
- package/docs/status/index.html +42 -0
- package/docs/status/roadmap.html +4 -0
- package/docs/status/status-legacy.html +117 -0
- package/docs/storybook.md +5 -4
- package/docs/sync.md +3 -2
- package/docs/tasks/BACKLOG.md +26 -0
- package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +55 -0
- package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +54 -0
- package/docs/template-schema-v2.md +15 -3
- package/docs/vi/benchmark-rubric.md +46 -0
- package/docs/vi/ci-cd.md +17 -11
- package/docs/vi/consumer-grant.md +37 -0
- package/docs/vi/consuming.md +45 -16
- package/docs/vi/contrast-report.md +94 -106
- package/docs/vi/conventions.md +12 -9
- package/docs/vi/decisions.md +33 -10
- package/docs/vi/deploy.md +1 -1
- package/docs/vi/design-styles.md +26 -8
- package/docs/vi/figma.md +3 -3
- package/docs/vi/live-hub.md +5 -3
- package/docs/vi/products.md +13 -11
- package/docs/vi/quality-gates.md +35 -21
- package/docs/vi/release-notes.md +26 -8
- package/docs/vi/storybook.md +5 -4
- package/docs/vi/sync.md +3 -2
- package/docs/vi/template-schema-v2.md +15 -3
- package/docs/viewer.html +2 -2
- package/fonts/spacegrotesk-var-latin-ext.woff2 +0 -0
- package/fonts/spacegrotesk-var-latin.woff2 +0 -0
- package/fonts/spacegrotesk-var-vietnamese.woff2 +0 -0
- package/guidelines/atomic-view.html +40 -27
- package/guidelines/elements-geometry.html +69 -0
- package/guidelines/elements-variants.html +17 -17
- package/guidelines/type-families.html +16 -10
- package/llms.txt +17 -11
- package/package.json +38 -16
- package/styles.css +1 -0
- package/templates/ai-cluster-demo.html +29 -14
- package/templates/app-shell/support.js +4 -4
- package/templates/article/content-schema.json +6 -0
- package/templates/article/support.js +4 -4
- package/templates/auth/support.js +4 -4
- package/templates/bod-deck/support.js +4 -4
- package/templates/bod-investor-update/support.js +4 -4
- package/templates/bod-memo/support.js +4 -4
- package/templates/bod-minutes/content-schema.json +12 -0
- package/templates/bod-minutes/support.js +4 -4
- package/templates/bod-report/support.js +4 -4
- package/templates/bod-resolution/support.js +4 -4
- package/templates/culture-event-invite/support.js +4 -4
- package/templates/dashboard/support.js +4 -4
- package/templates/delivery-change-note/support.js +4 -4
- package/templates/delivery-kickoff/support.js +4 -4
- package/templates/delivery-qbr-deck/support.js +4 -4
- package/templates/delivery-runbook/content-schema.json +6 -0
- package/templates/delivery-runbook/support.js +4 -4
- package/templates/delivery-status-email/support.js +4 -4
- package/templates/doc-style-guide/DocStyleGuide.dc.html +2 -2
- package/templates/doc-style-guide/support.js +4 -4
- package/templates/doc-suite-index/support.js +4 -4
- package/templates/doc-templates/DocTemplates.dc.html +1 -1
- package/templates/doc-templates/support.js +4 -4
- package/templates/email/support.js +4 -4
- package/templates/email-safe/README.md +17 -4
- package/templates/email-safe/email-launch.html +3 -3
- package/templates/email-safe/email-newsletter.html +1 -1
- package/templates/finance-dunning-email/support.js +4 -4
- package/templates/finance-expense-report/support.js +4 -4
- package/templates/finance-invoice/support.js +4 -4
- package/templates/finance-quote/support.js +4 -4
- package/templates/hr-announcement/support.js +4 -4
- package/templates/hr-interview-kit/content-schema.json +12 -0
- package/templates/hr-interview-kit/support.js +4 -4
- package/templates/hr-offboarding/content-schema.json +12 -0
- package/templates/hr-offboarding/support.js +4 -4
- package/templates/hr-performance-review/content-schema.json +12 -0
- package/templates/hr-performance-review/support.js +4 -4
- package/templates/hr-pip/content-schema.json +12 -0
- package/templates/hr-pip/support.js +4 -4
- package/templates/legal-msa/content-schema.json +16 -0
- package/templates/legal-msa/support.js +4 -4
- package/templates/legal-sow/support.js +4 -4
- package/templates/marketing-campaign-brief/support.js +4 -4
- package/templates/marketing-case-study/support.js +4 -4
- package/templates/marketing-launch/support.js +4 -4
- package/templates/marketing-newsletter/support.js +4 -4
- package/templates/marketing-page/content-schema.json +0 -1
- package/templates/marketing-page/support.js +4 -4
- package/templates/marketing-press-release/support.js +4 -4
- package/templates/marketing-social-kit/support.js +4 -4
- package/templates/playground.html +8 -4
- package/templates/sales-one-pager/support.js +4 -4
- package/templates/sales-proposal-deck/support.js +4 -4
- package/templates/settings/Settings.dc.html +26 -14
- package/templates/settings/content-schema.json +36 -0
- package/templates/settings/support.js +4 -4
- package/templates/slide-deck/support.js +4 -4
- package/templates/team-meeting-agenda/content-schema.json +16 -0
- package/templates/team-meeting-agenda/support.js +4 -4
- package/templates/tech-incident-report/support.js +4 -4
- package/templates/tech-release-notes/support.js +4 -4
- package/templates/tech-retro/content-schema.json +12 -0
- package/templates/tech-retro/support.js +4 -4
- package/templates/tech-rfc/content-schema.json +6 -0
- package/templates/tech-rfc/support.js +4 -4
- package/templates/vn-appointment-transfer/support.js +4 -4
- package/templates/vn-certificate-of-employment/support.js +4 -4
- package/templates/vn-code-of-conduct/support.js +4 -4
- package/templates/vn-compensation-regulation/support.js +4 -4
- package/templates/vn-contract-amendment/support.js +4 -4
- package/templates/vn-contractor-agreement/support.js +4 -4
- package/templates/vn-data-protection-policy/support.js +4 -4
- package/templates/vn-disciplinary-case-file/support.js +4 -4
- package/templates/vn-disciplinary-schedule/content-schema.json +15 -0
- package/templates/vn-disciplinary-schedule/support.js +4 -4
- package/templates/vn-employee-request/support.js +4 -4
- package/templates/vn-exit-handover/support.js +4 -4
- package/templates/vn-foreign-employee-pack/support.js +4 -4
- package/templates/vn-grassroots-democracy/support.js +4 -4
- package/templates/vn-infosec-policy/support.js +4 -4
- package/templates/vn-internal-labor-regulations/support.js +4 -4
- package/templates/vn-internship-agreement/support.js +4 -4
- package/templates/vn-job-description/support.js +4 -4
- package/templates/vn-labor-contract/support.js +4 -4
- package/templates/vn-labour-management-book/content-schema.json +15 -0
- package/templates/vn-labour-management-book/support.js +4 -4
- package/templates/vn-mutual-nda/support.js +4 -4
- package/templates/vn-ndnca-ip/support.js +4 -4
- package/templates/vn-offer-letter/support.js +4 -4
- package/templates/vn-onboarding-checklist/support.js +4 -4
- package/templates/vn-pdpl-consent/support.js +4 -4
- package/templates/vn-performance-evaluation-regulation/support.js +4 -4
- package/templates/vn-performance-review-form/support.js +4 -4
- package/templates/vn-phantom-stock/support.js +4 -4
- package/templates/vn-probation-contract/support.js +4 -4
- package/templates/vn-receipt-acknowledgement/content-schema.json +15 -0
- package/templates/vn-receipt-acknowledgement/support.js +4 -4
- package/templates/vn-remote-work-policy/support.js +4 -4
- package/templates/vn-resignation-letter/support.js +4 -4
- package/templates/vn-salary-scale/content-schema.json +15 -0
- package/templates/vn-salary-scale/support.js +4 -4
- package/templates/vn-sow-appendix/support.js +4 -4
- package/templates/vn-termination-decision/support.js +4 -4
- package/templates/vn-total-rewards-appendix/support.js +4 -4
- package/templates/vn-training-commitment/support.js +4 -4
- package/templates/vn-travel-expense-policy/support.js +4 -4
- package/tokens/element-seeds.json +112 -0
- package/tokens/elements.css +274 -187
- package/tokens/fonts.css +12 -3
- package/tokens/native/CSTokens.kt +84 -68
- package/tokens/native/CSTokens.swift +84 -68
- package/tokens/native/cs_tokens.dart +84 -68
- package/tokens/provenance.json +9 -9
- package/tokens/styles.css +15 -0
- package/tokens/tokens.dtcg.json +258 -233
- package/tokens/tokens.js +168 -167
- package/tokens/tokens.json +167 -166
- package/tokens/typography.css +9 -1
- package/ui_kits/status-hub/README.md +1 -2
- package/ui_kits/status-hub/index.html +2 -2
- package/ui_kits/status-hub/settings.html +6 -3
- package/ui_kits/website/chat.html +2 -2
- package/ui_kits/website/index.html +2 -2
- package/ui_kits/status-hub/identity-lab.html +0 -134
package/_esm/cs.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// CyberSkill Design System — ESM entry point (GENERATED from _ds_manifest.json at
|
|
2
|
-
// No build step: import this module directly in a browser. It ensures React
|
|
3
|
-
// skipped when window.React already exists), side-loads
|
|
4
|
-
// compiler-assigned namespace BY PREFIX (never a hardcoded suffix),
|
|
5
|
-
// Styles are NOT injected — link styles.css yourself
|
|
1
|
+
// CyberSkill Design System — ESM entry point (GENERATED from _ds_manifest.json at v1.1.1).
|
|
2
|
+
// No build step: import this module directly in a browser. It ensures React 19.2.8 via umd-react
|
|
3
|
+
// (official React 19 dropped UMD; pinned + SRI; skipped when window.React already exists), side-loads
|
|
4
|
+
// ../_ds_bundle.js once, resolves the compiler-assigned namespace BY PREFIX (never a hardcoded suffix),
|
|
5
|
+
// and re-exports every component. Styles are NOT injected — link styles.css yourself.
|
|
6
6
|
// Regenerate when exports change — the esm-smoke gate fails on export/manifest drift.
|
|
7
7
|
const g = typeof window !== "undefined" ? window : globalThis;
|
|
8
8
|
async function ensureScript(src, integrity){
|
|
@@ -12,18 +12,20 @@ async function ensureScript(src, integrity){
|
|
|
12
12
|
if (integrity) { s.integrity = integrity; s.crossOrigin = "anonymous"; }
|
|
13
13
|
s.onload = res; s.onerror = () => rej(new Error("cs.js: failed to load " + href)); document.head.appendChild(s); });
|
|
14
14
|
}
|
|
15
|
-
if (!g.React) await ensureScript("https://unpkg.com/react@
|
|
16
|
-
if (!g.ReactDOM) await ensureScript("https://unpkg.com/react
|
|
15
|
+
if (!g.React) await ensureScript("https://unpkg.com/umd-react@19.2.8/dist/react.production.min.js", "sha384-/nh8CKeV7Pk42Gpda6L4DM1JtZ2bwPOi+eh9O7+a1Y22UkGs8+mw3aW1shQ9FV30");
|
|
16
|
+
if (!g.ReactDOM) await ensureScript("https://unpkg.com/umd-react@19.2.8/dist/react-dom.production.min.js", "sha384-rhLCB72qrpcezgY2QW0panvW9IeO32m94nvuDVRD/iEGHXoUbjtijL6Xi/Z5/mzu");
|
|
17
17
|
const found = () => Object.keys(g).find(k => /^CyberSkillDesignSystem_/.test(k));
|
|
18
18
|
if (!found()) await ensureScript("../_ds_bundle.js");
|
|
19
19
|
export const CS = g[found()];
|
|
20
20
|
if (!CS) throw new Error("cs.js: bundle loaded but no CyberSkillDesignSystem_* namespace found");
|
|
21
21
|
export default CS;
|
|
22
|
-
export const VERSION = "
|
|
22
|
+
export const VERSION = "1.1.1";
|
|
23
23
|
export const AIDisclosureBadge = CS.AIDisclosureBadge;
|
|
24
24
|
export const Accordion = CS.Accordion;
|
|
25
25
|
export const Alert = CS.Alert;
|
|
26
|
+
export const AlertDialog = CS.AlertDialog;
|
|
26
27
|
export const Anchor = CS.Anchor;
|
|
28
|
+
export const AspectRatio = CS.AspectRatio;
|
|
27
29
|
export const Avatar = CS.Avatar;
|
|
28
30
|
export const AvatarGroup = CS.AvatarGroup;
|
|
29
31
|
export const BackTop = CS.BackTop;
|
|
@@ -46,6 +48,7 @@ export const ChatMessage = CS.ChatMessage;
|
|
|
46
48
|
export const Checkbox = CS.Checkbox;
|
|
47
49
|
export const CitationList = CS.CitationList;
|
|
48
50
|
export const CodeBlock = CS.CodeBlock;
|
|
51
|
+
export const Collapsible = CS.Collapsible;
|
|
49
52
|
export const ColorPicker = CS.ColorPicker;
|
|
50
53
|
export const Combobox = CS.Combobox;
|
|
51
54
|
export const CommandPalette = CS.CommandPalette;
|
|
@@ -76,6 +79,7 @@ export const Image = CS.Image;
|
|
|
76
79
|
export const InlineEdit = CS.InlineEdit;
|
|
77
80
|
export const InputGroup = CS.InputGroup;
|
|
78
81
|
export const InputOTP = CS.InputOTP;
|
|
82
|
+
export const Item = CS.Item;
|
|
79
83
|
export const Kbd = CS.Kbd;
|
|
80
84
|
export const Link = CS.Link;
|
|
81
85
|
export const List = CS.List;
|
|
@@ -87,6 +91,7 @@ export const Mentions = CS.Mentions;
|
|
|
87
91
|
export const Menu = CS.Menu;
|
|
88
92
|
export const MenuItem = CS.MenuItem;
|
|
89
93
|
export const Menubar = CS.Menubar;
|
|
94
|
+
export const NativeSelect = CS.NativeSelect;
|
|
90
95
|
export const NavItem = CS.NavItem;
|
|
91
96
|
export const NavigationMenu = CS.NavigationMenu;
|
|
92
97
|
export const NumberField = CS.NumberField;
|
|
@@ -101,6 +106,7 @@ export const Radio = CS.Radio;
|
|
|
101
106
|
export const RadioGroup = CS.RadioGroup;
|
|
102
107
|
export const Rating = CS.Rating;
|
|
103
108
|
export const Result = CS.Result;
|
|
109
|
+
export const ScrollArea = CS.ScrollArea;
|
|
104
110
|
export const SearchField = CS.SearchField;
|
|
105
111
|
export const SegmentedControl = CS.SegmentedControl;
|
|
106
112
|
export const Select = CS.Select;
|
package/_esm/react.d.ts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
// CyberSkill Design System — bundler-native React types (GENERATED).
|
|
2
|
+
// Mirrors `_esm/react.mjs`. Regenerate: node scripts/generate-react-entry.mjs
|
|
3
|
+
|
|
4
|
+
export { AIDisclosureBadge } from "../components/ai/AIDisclosureBadge";
|
|
5
|
+
export type * from "../components/ai/AIDisclosureBadge";
|
|
6
|
+
export { ChatMessage } from "../components/ai/ChatMessage";
|
|
7
|
+
export type * from "../components/ai/ChatMessage";
|
|
8
|
+
export { CitationList } from "../components/ai/CitationList";
|
|
9
|
+
export type * from "../components/ai/CitationList";
|
|
10
|
+
export { ConfidenceMeter } from "../components/ai/ConfidenceMeter";
|
|
11
|
+
export type * from "../components/ai/ConfidenceMeter";
|
|
12
|
+
export { HumanReviewGate } from "../components/ai/HumanReviewGate";
|
|
13
|
+
export type * from "../components/ai/HumanReviewGate";
|
|
14
|
+
export { PromptInput } from "../components/ai/PromptInput";
|
|
15
|
+
export type * from "../components/ai/PromptInput";
|
|
16
|
+
export { PromptSuggestions } from "../components/ai/PromptSuggestions";
|
|
17
|
+
export type * from "../components/ai/PromptSuggestions";
|
|
18
|
+
export { TypingIndicator } from "../components/ai/TypingIndicator";
|
|
19
|
+
export type * from "../components/ai/TypingIndicator";
|
|
20
|
+
export { LumiAvatar } from "../components/brand/LumiAvatar";
|
|
21
|
+
export type * from "../components/brand/LumiAvatar";
|
|
22
|
+
export { Button } from "../components/button/Button";
|
|
23
|
+
export type * from "../components/button/Button";
|
|
24
|
+
export { ButtonGroup } from "../components/button/ButtonGroup";
|
|
25
|
+
export type * from "../components/button/ButtonGroup";
|
|
26
|
+
export { FloatingActionButton } from "../components/button/FloatingActionButton";
|
|
27
|
+
export type * from "../components/button/FloatingActionButton";
|
|
28
|
+
export { Accordion } from "../components/data/Accordion";
|
|
29
|
+
export type * from "../components/data/Accordion";
|
|
30
|
+
export { AspectRatio } from "../components/data/AspectRatio";
|
|
31
|
+
export type * from "../components/data/AspectRatio";
|
|
32
|
+
export { Avatar, AvatarGroup } from "../components/data/Avatar";
|
|
33
|
+
export type * from "../components/data/Avatar";
|
|
34
|
+
export { Card, CardHeader, CardBody, CardFooter } from "../components/data/Card";
|
|
35
|
+
export type * from "../components/data/Card";
|
|
36
|
+
export { Carousel } from "../components/data/Carousel";
|
|
37
|
+
export type * from "../components/data/Carousel";
|
|
38
|
+
export { Chart } from "../components/data/Chart";
|
|
39
|
+
export type * from "../components/data/Chart";
|
|
40
|
+
export { CodeBlock } from "../components/data/CodeBlock";
|
|
41
|
+
export type * from "../components/data/CodeBlock";
|
|
42
|
+
export { Collapsible } from "../components/data/Collapsible";
|
|
43
|
+
export type * from "../components/data/Collapsible";
|
|
44
|
+
export { Comment } from "../components/data/Comment";
|
|
45
|
+
export type * from "../components/data/Comment";
|
|
46
|
+
export { DescriptionList } from "../components/data/DescriptionList";
|
|
47
|
+
export type * from "../components/data/DescriptionList";
|
|
48
|
+
export { Divider } from "../components/data/Divider";
|
|
49
|
+
export type * from "../components/data/Divider";
|
|
50
|
+
export { Image } from "../components/data/Image";
|
|
51
|
+
export type * from "../components/data/Image";
|
|
52
|
+
export { Item } from "../components/data/Item";
|
|
53
|
+
export type * from "../components/data/Item";
|
|
54
|
+
export { Kbd } from "../components/data/Kbd";
|
|
55
|
+
export type * from "../components/data/Kbd";
|
|
56
|
+
export { List, ListItem } from "../components/data/List";
|
|
57
|
+
export type * from "../components/data/List";
|
|
58
|
+
export { Masonry } from "../components/data/Masonry";
|
|
59
|
+
export type * from "../components/data/Masonry";
|
|
60
|
+
export { QRCode } from "../components/data/QRCode";
|
|
61
|
+
export type * from "../components/data/QRCode";
|
|
62
|
+
export { ScrollArea } from "../components/data/ScrollArea";
|
|
63
|
+
export type * from "../components/data/ScrollArea";
|
|
64
|
+
export { Sortable } from "../components/data/Sortable";
|
|
65
|
+
export type * from "../components/data/Sortable";
|
|
66
|
+
export { Splitter } from "../components/data/Splitter";
|
|
67
|
+
export type * from "../components/data/Splitter";
|
|
68
|
+
export { Stat } from "../components/data/Stat";
|
|
69
|
+
export type * from "../components/data/Stat";
|
|
70
|
+
export { Terminal } from "../components/data/Terminal";
|
|
71
|
+
export type * from "../components/data/Terminal";
|
|
72
|
+
export { Timeline } from "../components/data/Timeline";
|
|
73
|
+
export type * from "../components/data/Timeline";
|
|
74
|
+
export { Tooltip } from "../components/data/Tooltip";
|
|
75
|
+
export type * from "../components/data/Tooltip";
|
|
76
|
+
export { Tree } from "../components/data/Tree";
|
|
77
|
+
export type * from "../components/data/Tree";
|
|
78
|
+
export { Watermark } from "../components/data/Watermark";
|
|
79
|
+
export type * from "../components/data/Watermark";
|
|
80
|
+
export { DataGrid } from "../components/datatable/DataGrid";
|
|
81
|
+
export type * from "../components/datatable/DataGrid";
|
|
82
|
+
export { DataTable } from "../components/datatable/DataTable";
|
|
83
|
+
export type * from "../components/datatable/DataTable";
|
|
84
|
+
export { TreeTable } from "../components/datatable/TreeTable";
|
|
85
|
+
export type * from "../components/datatable/TreeTable";
|
|
86
|
+
export { Dialog } from "../components/dialog/Dialog";
|
|
87
|
+
export type * from "../components/dialog/Dialog";
|
|
88
|
+
export { Alert } from "../components/feedback/Alert";
|
|
89
|
+
export type * from "../components/feedback/Alert";
|
|
90
|
+
export { Badge } from "../components/feedback/Badge";
|
|
91
|
+
export type * from "../components/feedback/Badge";
|
|
92
|
+
export { EmptyState } from "../components/feedback/EmptyState";
|
|
93
|
+
export type * from "../components/feedback/EmptyState";
|
|
94
|
+
export { ProgressBar } from "../components/feedback/ProgressBar";
|
|
95
|
+
export type * from "../components/feedback/ProgressBar";
|
|
96
|
+
export { Result } from "../components/feedback/Result";
|
|
97
|
+
export type * from "../components/feedback/Result";
|
|
98
|
+
export { Skeleton } from "../components/feedback/Skeleton";
|
|
99
|
+
export type * from "../components/feedback/Skeleton";
|
|
100
|
+
export { Spinner } from "../components/feedback/Spinner";
|
|
101
|
+
export type * from "../components/feedback/Spinner";
|
|
102
|
+
export { StatusIndicator } from "../components/feedback/StatusIndicator";
|
|
103
|
+
export type * from "../components/feedback/StatusIndicator";
|
|
104
|
+
export { Tag } from "../components/feedback/Tag";
|
|
105
|
+
export type * from "../components/feedback/Tag";
|
|
106
|
+
export { ToastStack, Toast } from "../components/feedback/Toast";
|
|
107
|
+
export type * from "../components/feedback/Toast";
|
|
108
|
+
export { Calendar } from "../components/forms/Calendar";
|
|
109
|
+
export type * from "../components/forms/Calendar";
|
|
110
|
+
export { Cascader } from "../components/forms/Cascader";
|
|
111
|
+
export type * from "../components/forms/Cascader";
|
|
112
|
+
export { Checkbox } from "../components/forms/Checkbox";
|
|
113
|
+
export type * from "../components/forms/Checkbox";
|
|
114
|
+
export { ColorPicker } from "../components/forms/ColorPicker";
|
|
115
|
+
export type * from "../components/forms/ColorPicker";
|
|
116
|
+
export { Combobox } from "../components/forms/Combobox";
|
|
117
|
+
export type * from "../components/forms/Combobox";
|
|
118
|
+
export { DatePicker } from "../components/forms/DatePicker";
|
|
119
|
+
export type * from "../components/forms/DatePicker";
|
|
120
|
+
export { Editor } from "../components/forms/Editor";
|
|
121
|
+
export type * from "../components/forms/Editor";
|
|
122
|
+
export { FileUpload } from "../components/forms/FileUpload";
|
|
123
|
+
export type * from "../components/forms/FileUpload";
|
|
124
|
+
export { Form, FormField, FormFieldArray, FormWizard } from "../components/forms/Form";
|
|
125
|
+
export type * from "../components/forms/Form";
|
|
126
|
+
export { InlineEdit } from "../components/forms/InlineEdit";
|
|
127
|
+
export type * from "../components/forms/InlineEdit";
|
|
128
|
+
export { InputGroup } from "../components/forms/InputGroup";
|
|
129
|
+
export type * from "../components/forms/InputGroup";
|
|
130
|
+
export { InputOTP } from "../components/forms/InputOTP";
|
|
131
|
+
export type * from "../components/forms/InputOTP";
|
|
132
|
+
export { Mentions } from "../components/forms/Mentions";
|
|
133
|
+
export type * from "../components/forms/Mentions";
|
|
134
|
+
export { NativeSelect } from "../components/forms/NativeSelect";
|
|
135
|
+
export type * from "../components/forms/NativeSelect";
|
|
136
|
+
export { NumberField } from "../components/forms/NumberField";
|
|
137
|
+
export type * from "../components/forms/NumberField";
|
|
138
|
+
export { Radio, RadioGroup } from "../components/forms/RadioGroup";
|
|
139
|
+
export type * from "../components/forms/RadioGroup";
|
|
140
|
+
export { Rating } from "../components/forms/Rating";
|
|
141
|
+
export type * from "../components/forms/Rating";
|
|
142
|
+
export { SearchField } from "../components/forms/SearchField";
|
|
143
|
+
export type * from "../components/forms/SearchField";
|
|
144
|
+
export { SegmentedControl } from "../components/forms/SegmentedControl";
|
|
145
|
+
export type * from "../components/forms/SegmentedControl";
|
|
146
|
+
export { Select } from "../components/forms/Select";
|
|
147
|
+
export type * from "../components/forms/Select";
|
|
148
|
+
export { Slider } from "../components/forms/Slider";
|
|
149
|
+
export type * from "../components/forms/Slider";
|
|
150
|
+
export { Switch } from "../components/forms/Switch";
|
|
151
|
+
export type * from "../components/forms/Switch";
|
|
152
|
+
export { TagInput } from "../components/forms/TagInput";
|
|
153
|
+
export type * from "../components/forms/TagInput";
|
|
154
|
+
export { Textarea } from "../components/forms/Textarea";
|
|
155
|
+
export type * from "../components/forms/Textarea";
|
|
156
|
+
export { TimePicker } from "../components/forms/TimePicker";
|
|
157
|
+
export type * from "../components/forms/TimePicker";
|
|
158
|
+
export { Toggle } from "../components/forms/Toggle";
|
|
159
|
+
export type * from "../components/forms/Toggle";
|
|
160
|
+
export { Transfer } from "../components/forms/Transfer";
|
|
161
|
+
export type * from "../components/forms/Transfer";
|
|
162
|
+
export { TreeSelect } from "../components/forms/TreeSelect";
|
|
163
|
+
export type * from "../components/forms/TreeSelect";
|
|
164
|
+
export { Icon } from "../components/icon/Icon";
|
|
165
|
+
export type * from "../components/icon/Icon";
|
|
166
|
+
export declare const CS_ICONS: Readonly<Record<string, string>>;
|
|
167
|
+
export { Logo } from "../components/logo/Logo";
|
|
168
|
+
export type * from "../components/logo/Logo";
|
|
169
|
+
export declare const CS_LOGO_VIEWBOX: string;
|
|
170
|
+
export declare const CS_LOGO_MARK_INNER: string;
|
|
171
|
+
export { Anchor } from "../components/navigation/Anchor";
|
|
172
|
+
export type * from "../components/navigation/Anchor";
|
|
173
|
+
export { BackTop } from "../components/navigation/BackTop";
|
|
174
|
+
export type * from "../components/navigation/BackTop";
|
|
175
|
+
export { Breadcrumb } from "../components/navigation/Breadcrumb";
|
|
176
|
+
export type * from "../components/navigation/Breadcrumb";
|
|
177
|
+
export { CommandPalette } from "../components/navigation/CommandPalette";
|
|
178
|
+
export type * from "../components/navigation/CommandPalette";
|
|
179
|
+
export { Dock } from "../components/navigation/Dock";
|
|
180
|
+
export type * from "../components/navigation/Dock";
|
|
181
|
+
export { HotKeys } from "../components/navigation/HotKeys";
|
|
182
|
+
export type * from "../components/navigation/HotKeys";
|
|
183
|
+
export { Link } from "../components/navigation/Link";
|
|
184
|
+
export type * from "../components/navigation/Link";
|
|
185
|
+
export { Menu, MenuItem } from "../components/navigation/Menu";
|
|
186
|
+
export type * from "../components/navigation/Menu";
|
|
187
|
+
export { Menubar } from "../components/navigation/Menubar";
|
|
188
|
+
export type * from "../components/navigation/Menubar";
|
|
189
|
+
export { NavigationMenu } from "../components/navigation/NavigationMenu";
|
|
190
|
+
export type * from "../components/navigation/NavigationMenu";
|
|
191
|
+
export { Pagination } from "../components/navigation/Pagination";
|
|
192
|
+
export type * from "../components/navigation/Pagination";
|
|
193
|
+
export { Sidebar, NavItem } from "../components/navigation/Sidebar";
|
|
194
|
+
export type * from "../components/navigation/Sidebar";
|
|
195
|
+
export { Steps } from "../components/navigation/Steps";
|
|
196
|
+
export type * from "../components/navigation/Steps";
|
|
197
|
+
export { Tabs, Tab } from "../components/navigation/Tabs";
|
|
198
|
+
export type * from "../components/navigation/Tabs";
|
|
199
|
+
export { Toolbar } from "../components/navigation/Toolbar";
|
|
200
|
+
export type * from "../components/navigation/Toolbar";
|
|
201
|
+
export { AlertDialog } from "../components/overlays/AlertDialog";
|
|
202
|
+
export type * from "../components/overlays/AlertDialog";
|
|
203
|
+
export { ContextMenu } from "../components/overlays/ContextMenu";
|
|
204
|
+
export type * from "../components/overlays/ContextMenu";
|
|
205
|
+
export { Drawer } from "../components/overlays/Drawer";
|
|
206
|
+
export type * from "../components/overlays/Drawer";
|
|
207
|
+
export { HoverCard } from "../components/overlays/HoverCard";
|
|
208
|
+
export type * from "../components/overlays/HoverCard";
|
|
209
|
+
export { Popconfirm } from "../components/overlays/Popconfirm";
|
|
210
|
+
export type * from "../components/overlays/Popconfirm";
|
|
211
|
+
export { Popover } from "../components/overlays/Popover";
|
|
212
|
+
export type * from "../components/overlays/Popover";
|
|
213
|
+
export { Tour } from "../components/overlays/Tour";
|
|
214
|
+
export type * from "../components/overlays/Tour";
|
|
215
|
+
export { TextField } from "../components/textfield/TextField";
|
|
216
|
+
export type * from "../components/textfield/TextField";
|
package/_esm/react.mjs
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// CyberSkill Design System — bundler-native React entry (GENERATED).
|
|
2
|
+
// Re-exports every public component from source. React / react-dom are
|
|
3
|
+
// peerDependencies (external) — do not use this entry without a bundler
|
|
4
|
+
// that can transpile JSX (Next transpilePackages, Vite, etc.).
|
|
5
|
+
// Browser / no-build consumers: import from `@cyberskill/design/legacy`
|
|
6
|
+
// (`_esm/cs.mjs`) instead. Styles are NOT injected — link styles.css.
|
|
7
|
+
// Regenerate: node scripts/generate-react-entry.mjs
|
|
8
|
+
|
|
9
|
+
export { AIDisclosureBadge } from "../components/ai/AIDisclosureBadge.jsx";
|
|
10
|
+
export { ChatMessage } from "../components/ai/ChatMessage.jsx";
|
|
11
|
+
export { CitationList } from "../components/ai/CitationList.jsx";
|
|
12
|
+
export { ConfidenceMeter } from "../components/ai/ConfidenceMeter.jsx";
|
|
13
|
+
export { HumanReviewGate } from "../components/ai/HumanReviewGate.jsx";
|
|
14
|
+
export { PromptInput } from "../components/ai/PromptInput.jsx";
|
|
15
|
+
export { PromptSuggestions } from "../components/ai/PromptSuggestions.jsx";
|
|
16
|
+
export { TypingIndicator } from "../components/ai/TypingIndicator.jsx";
|
|
17
|
+
export { LumiAvatar } from "../components/brand/LumiAvatar.jsx";
|
|
18
|
+
export { Button } from "../components/button/Button.jsx";
|
|
19
|
+
export { ButtonGroup } from "../components/button/ButtonGroup.jsx";
|
|
20
|
+
export { FloatingActionButton } from "../components/button/FloatingActionButton.jsx";
|
|
21
|
+
export { Accordion } from "../components/data/Accordion.jsx";
|
|
22
|
+
export { AspectRatio } from "../components/data/AspectRatio.jsx";
|
|
23
|
+
export { Avatar, AvatarGroup } from "../components/data/Avatar.jsx";
|
|
24
|
+
export { Card, CardHeader, CardBody, CardFooter } from "../components/data/Card.jsx";
|
|
25
|
+
export { Carousel } from "../components/data/Carousel.jsx";
|
|
26
|
+
export { Chart } from "../components/data/Chart.jsx";
|
|
27
|
+
export { CodeBlock } from "../components/data/CodeBlock.jsx";
|
|
28
|
+
export { Collapsible } from "../components/data/Collapsible.jsx";
|
|
29
|
+
export { Comment } from "../components/data/Comment.jsx";
|
|
30
|
+
export { DescriptionList } from "../components/data/DescriptionList.jsx";
|
|
31
|
+
export { Divider } from "../components/data/Divider.jsx";
|
|
32
|
+
export { Image } from "../components/data/Image.jsx";
|
|
33
|
+
export { Item } from "../components/data/Item.jsx";
|
|
34
|
+
export { Kbd } from "../components/data/Kbd.jsx";
|
|
35
|
+
export { List, ListItem } from "../components/data/List.jsx";
|
|
36
|
+
export { Masonry } from "../components/data/Masonry.jsx";
|
|
37
|
+
export { QRCode } from "../components/data/QRCode.jsx";
|
|
38
|
+
export { ScrollArea } from "../components/data/ScrollArea.jsx";
|
|
39
|
+
export { Sortable } from "../components/data/Sortable.jsx";
|
|
40
|
+
export { Splitter } from "../components/data/Splitter.jsx";
|
|
41
|
+
export { Stat } from "../components/data/Stat.jsx";
|
|
42
|
+
export { Terminal } from "../components/data/Terminal.jsx";
|
|
43
|
+
export { Timeline } from "../components/data/Timeline.jsx";
|
|
44
|
+
export { Tooltip } from "../components/data/Tooltip.jsx";
|
|
45
|
+
export { Tree } from "../components/data/Tree.jsx";
|
|
46
|
+
export { Watermark } from "../components/data/Watermark.jsx";
|
|
47
|
+
export { DataGrid } from "../components/datatable/DataGrid.jsx";
|
|
48
|
+
export { DataTable } from "../components/datatable/DataTable.jsx";
|
|
49
|
+
export { TreeTable } from "../components/datatable/TreeTable.jsx";
|
|
50
|
+
export { Dialog } from "../components/dialog/Dialog.jsx";
|
|
51
|
+
export { Alert } from "../components/feedback/Alert.jsx";
|
|
52
|
+
export { Badge } from "../components/feedback/Badge.jsx";
|
|
53
|
+
export { EmptyState } from "../components/feedback/EmptyState.jsx";
|
|
54
|
+
export { ProgressBar } from "../components/feedback/ProgressBar.jsx";
|
|
55
|
+
export { Result } from "../components/feedback/Result.jsx";
|
|
56
|
+
export { Skeleton } from "../components/feedback/Skeleton.jsx";
|
|
57
|
+
export { Spinner } from "../components/feedback/Spinner.jsx";
|
|
58
|
+
export { StatusIndicator } from "../components/feedback/StatusIndicator.jsx";
|
|
59
|
+
export { Tag } from "../components/feedback/Tag.jsx";
|
|
60
|
+
export { ToastStack, Toast } from "../components/feedback/Toast.jsx";
|
|
61
|
+
export { Calendar } from "../components/forms/Calendar.jsx";
|
|
62
|
+
export { Cascader } from "../components/forms/Cascader.jsx";
|
|
63
|
+
export { Checkbox } from "../components/forms/Checkbox.jsx";
|
|
64
|
+
export { ColorPicker } from "../components/forms/ColorPicker.jsx";
|
|
65
|
+
export { Combobox } from "../components/forms/Combobox.jsx";
|
|
66
|
+
export { DatePicker } from "../components/forms/DatePicker.jsx";
|
|
67
|
+
export { Editor } from "../components/forms/Editor.jsx";
|
|
68
|
+
export { FileUpload } from "../components/forms/FileUpload.jsx";
|
|
69
|
+
export { Form, FormField, FormFieldArray, FormWizard } from "../components/forms/Form.jsx";
|
|
70
|
+
export { InlineEdit } from "../components/forms/InlineEdit.jsx";
|
|
71
|
+
export { InputGroup } from "../components/forms/InputGroup.jsx";
|
|
72
|
+
export { InputOTP } from "../components/forms/InputOTP.jsx";
|
|
73
|
+
export { Mentions } from "../components/forms/Mentions.jsx";
|
|
74
|
+
export { NativeSelect } from "../components/forms/NativeSelect.jsx";
|
|
75
|
+
export { NumberField } from "../components/forms/NumberField.jsx";
|
|
76
|
+
export { Radio, RadioGroup } from "../components/forms/RadioGroup.jsx";
|
|
77
|
+
export { Rating } from "../components/forms/Rating.jsx";
|
|
78
|
+
export { SearchField } from "../components/forms/SearchField.jsx";
|
|
79
|
+
export { SegmentedControl } from "../components/forms/SegmentedControl.jsx";
|
|
80
|
+
export { Select } from "../components/forms/Select.jsx";
|
|
81
|
+
export { Slider } from "../components/forms/Slider.jsx";
|
|
82
|
+
export { Switch } from "../components/forms/Switch.jsx";
|
|
83
|
+
export { TagInput } from "../components/forms/TagInput.jsx";
|
|
84
|
+
export { Textarea } from "../components/forms/Textarea.jsx";
|
|
85
|
+
export { TimePicker } from "../components/forms/TimePicker.jsx";
|
|
86
|
+
export { Toggle } from "../components/forms/Toggle.jsx";
|
|
87
|
+
export { Transfer } from "../components/forms/Transfer.jsx";
|
|
88
|
+
export { TreeSelect } from "../components/forms/TreeSelect.jsx";
|
|
89
|
+
export { CS_ICONS, Icon } from "../components/icon/Icon.jsx";
|
|
90
|
+
export { Logo } from "../components/logo/Logo.jsx";
|
|
91
|
+
export { CS_LOGO_VIEWBOX, CS_LOGO_MARK_INNER } from "../components/logo/logo-data.js";
|
|
92
|
+
export { Anchor } from "../components/navigation/Anchor.jsx";
|
|
93
|
+
export { BackTop } from "../components/navigation/BackTop.jsx";
|
|
94
|
+
export { Breadcrumb } from "../components/navigation/Breadcrumb.jsx";
|
|
95
|
+
export { CommandPalette } from "../components/navigation/CommandPalette.jsx";
|
|
96
|
+
export { Dock } from "../components/navigation/Dock.jsx";
|
|
97
|
+
export { HotKeys } from "../components/navigation/HotKeys.jsx";
|
|
98
|
+
export { Link } from "../components/navigation/Link.jsx";
|
|
99
|
+
export { Menu, MenuItem } from "../components/navigation/Menu.jsx";
|
|
100
|
+
export { Menubar } from "../components/navigation/Menubar.jsx";
|
|
101
|
+
export { NavigationMenu } from "../components/navigation/NavigationMenu.jsx";
|
|
102
|
+
export { Pagination } from "../components/navigation/Pagination.jsx";
|
|
103
|
+
export { Sidebar, NavItem } from "../components/navigation/Sidebar.jsx";
|
|
104
|
+
export { Steps } from "../components/navigation/Steps.jsx";
|
|
105
|
+
export { Tabs, Tab } from "../components/navigation/Tabs.jsx";
|
|
106
|
+
export { Toolbar } from "../components/navigation/Toolbar.jsx";
|
|
107
|
+
export { AlertDialog } from "../components/overlays/AlertDialog.jsx";
|
|
108
|
+
export { ContextMenu } from "../components/overlays/ContextMenu.jsx";
|
|
109
|
+
export { Drawer } from "../components/overlays/Drawer.jsx";
|
|
110
|
+
export { HoverCard } from "../components/overlays/HoverCard.jsx";
|
|
111
|
+
export { Popconfirm } from "../components/overlays/Popconfirm.jsx";
|
|
112
|
+
export { Popover } from "../components/overlays/Popover.jsx";
|
|
113
|
+
export { Tour } from "../components/overlays/Tour.jsx";
|
|
114
|
+
export { TextField } from "../components/textfield/TextField.jsx";
|
package/base/collections.css
CHANGED
|
@@ -11,6 +11,26 @@
|
|
|
11
11
|
.cs-list__sub { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }
|
|
12
12
|
.cs-list__trail { flex: none; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }
|
|
13
13
|
|
|
14
|
+
/* Item — settings / nav / list row chrome (sibling of ListItem, first-class) */
|
|
15
|
+
.cs-item {
|
|
16
|
+
display: flex; align-items: center; gap: 14px;
|
|
17
|
+
padding: 12px 14px; border-radius: var(--cs-radius-md);
|
|
18
|
+
color: var(--cs-color-text-primary); text-align: start;
|
|
19
|
+
text-decoration: none; border: 1px solid transparent;
|
|
20
|
+
background: var(--cs-color-surface-panel);
|
|
21
|
+
}
|
|
22
|
+
.cs-item--interactive { cursor: pointer; font: inherit; inline-size: 100%; }
|
|
23
|
+
button.cs-item--interactive { border: 1px solid transparent; background: var(--cs-color-surface-panel); }
|
|
24
|
+
.cs-item--interactive:hover { background: var(--cs-color-surface-raised); border-color: var(--cs-color-border-default); }
|
|
25
|
+
.cs-item--interactive:focus-visible { outline: 3px solid var(--cs-color-accent-ochre); outline-offset: 2px; }
|
|
26
|
+
.cs-item.is-selected { border-color: var(--cs-color-brand-ochre); background: var(--cs-accent-tint, var(--cs-color-surface-raised)); }
|
|
27
|
+
.cs-item.is-disabled, .cs-item[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }
|
|
28
|
+
.cs-item__leading { flex: none; display: grid; place-items: center; color: var(--cs-color-text-accent); }
|
|
29
|
+
.cs-item__main { flex: 1; min-inline-size: 0; display: grid; gap: 2px; }
|
|
30
|
+
.cs-item__title { font-weight: 600; font-size: var(--cs-font-size-sm); line-height: 1.35; }
|
|
31
|
+
.cs-item__description { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); line-height: 1.4; }
|
|
32
|
+
.cs-item__trailing { flex: none; display: grid; place-items: center; color: var(--cs-color-text-muted); }
|
|
33
|
+
|
|
14
34
|
/* DescriptionList */
|
|
15
35
|
.cs-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px 24px; margin: 0; }
|
|
16
36
|
.cs-dl dt { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }
|
|
@@ -36,6 +56,17 @@
|
|
|
36
56
|
.cs-accordion__trigger[aria-expanded="true"] .cs-accordion__chevron { transform: rotate(180deg); }
|
|
37
57
|
.cs-accordion__panel { padding: 0 18px 16px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }
|
|
38
58
|
|
|
59
|
+
/* Collapsible — light single-panel expand (no Accordion chrome) */
|
|
60
|
+
.cs-collapsible { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); overflow: hidden; }
|
|
61
|
+
.cs-collapsible__trigger { inline-size: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: pointer; text-align: start; }
|
|
62
|
+
.cs-collapsible__trigger:hover { background: var(--cs-color-surface-raised); }
|
|
63
|
+
.cs-collapsible__label { flex: 1; min-inline-size: 0; }
|
|
64
|
+
.cs-collapsible__chevron { flex: none; color: var(--cs-color-text-muted); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }
|
|
65
|
+
.cs-collapsible__trigger[aria-expanded="true"] .cs-collapsible__chevron { transform: rotate(180deg); }
|
|
66
|
+
.cs-collapsible__panel { padding: 0 16px 14px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }
|
|
67
|
+
.cs-collapsible__panel > :first-child { margin-block-start: 0; }
|
|
68
|
+
.cs-collapsible__panel > :last-child { margin-block-end: 0; }
|
|
69
|
+
|
|
39
70
|
/* CodeBlock */
|
|
40
71
|
.cs-code { position: relative; background: #2b1e14; color: #f5ead9; border-radius: var(--cs-radius-lg); overflow: hidden; border: 1px solid #4a3a2c; }
|
|
41
72
|
.cs-code__bar { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; border-block-end: 1px solid #4a3a2c; font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); color: #c9b7a3; }
|
package/base/components.css
CHANGED
|
@@ -153,6 +153,9 @@
|
|
|
153
153
|
.cs-dialog__actions { justify-content: flex-end; }
|
|
154
154
|
.cs-dialog__title { font-size: 1.25rem; line-height: 1.35; margin: 0; }
|
|
155
155
|
.cs-dialog__body { margin-block: 1rem; }
|
|
156
|
+
/* AlertDialog — confirm/destructive modal (shares dialog layer; tighter panel) */
|
|
157
|
+
.cs-alert-dialog { max-inline-size: min(28rem, calc(100vw - 2rem)); }
|
|
158
|
+
.cs-alert-dialog--destructive .cs-dialog__title { color: var(--cs-color-semantic-danger, #b42318); }
|
|
156
159
|
@media (max-width: 640px) {
|
|
157
160
|
.cs-dialog { max-inline-size: calc(100vw - 1rem); top: 4vh; padding: var(--cs-space-4, 16px); }
|
|
158
161
|
.cs-dialog__actions .cs-button, .cs-review-gate__actions .cs-button { flex: 1 1 auto; }
|
package/base/data.css
CHANGED
|
@@ -46,3 +46,36 @@
|
|
|
46
46
|
.cs-divider--label { display: flex; align-items: center; gap: 12px; background: none; block-size: auto; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }
|
|
47
47
|
.cs-divider--label::before, .cs-divider--label::after { content: ""; flex: 1; block-size: 1px; background: var(--cs-color-border-default); }
|
|
48
48
|
.cs-divider--vertical { inline-size: 1px; block-size: auto; align-self: stretch; margin-inline: var(--cs-space-4); margin-block: 0; }
|
|
49
|
+
|
|
50
|
+
/* ScrollArea — focusable overflow for dense panels */
|
|
51
|
+
.cs-scroll-area {
|
|
52
|
+
overflow: auto;
|
|
53
|
+
overscroll-behavior: contain;
|
|
54
|
+
outline: none;
|
|
55
|
+
border-radius: var(--cs-radius-md);
|
|
56
|
+
scrollbar-color: color-mix(in oklab, var(--cs-color-brand-umber) 35%, transparent) transparent;
|
|
57
|
+
scrollbar-width: thin;
|
|
58
|
+
}
|
|
59
|
+
.cs-scroll-area:focus-visible {
|
|
60
|
+
box-shadow: 0 0 0 3px var(--cs-color-brand-ochre);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* AspectRatio — CSS aspect-ratio lock for media */
|
|
64
|
+
.cs-aspect-ratio {
|
|
65
|
+
position: relative;
|
|
66
|
+
display: block;
|
|
67
|
+
inline-size: 100%;
|
|
68
|
+
overflow: hidden;
|
|
69
|
+
border-radius: var(--cs-radius-md);
|
|
70
|
+
}
|
|
71
|
+
.cs-aspect-ratio > * {
|
|
72
|
+
position: absolute;
|
|
73
|
+
inset: 0;
|
|
74
|
+
inline-size: 100%;
|
|
75
|
+
block-size: 100%;
|
|
76
|
+
}
|
|
77
|
+
.cs-aspect-ratio > img,
|
|
78
|
+
.cs-aspect-ratio > video {
|
|
79
|
+
object-fit: cover;
|
|
80
|
+
display: block;
|
|
81
|
+
}
|
package/base/forms.css
CHANGED
|
@@ -7,6 +7,14 @@
|
|
|
7
7
|
.cs-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }
|
|
8
8
|
.cs-select select.cs-field__control:focus-visible { outline: 3px solid var(--cs-color-accent-ochre); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); }
|
|
9
9
|
|
|
10
|
+
/* NativeSelect — lean progressive-enhancement companion beside Select */
|
|
11
|
+
.cs-native-select { position: relative; display: block; }
|
|
12
|
+
.cs-native-select select.cs-field__control { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 38px; cursor: pointer; background: var(--cs-color-surface-panel); }
|
|
13
|
+
.cs-native-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }
|
|
14
|
+
.cs-native-select select.cs-field__control:focus-visible { outline: 3px solid var(--cs-color-accent-ochre); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); }
|
|
15
|
+
.cs-native-select--sm select.cs-field__control { min-block-size: 36px; padding-block: 6px; font-size: var(--cs-font-size-sm); }
|
|
16
|
+
.cs-native-select--md select.cs-field__control { min-block-size: 44px; }
|
|
17
|
+
|
|
10
18
|
/* Checkbox + Radio — native, brand accent */
|
|
11
19
|
.cs-check, .cs-radio { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); line-height: 1.4; }
|
|
12
20
|
.cs-check input, .cs-radio input { inline-size: 20px; block-size: 20px; margin: 0; flex: none; accent-color: var(--cs-color-brand-umber); cursor: pointer; }
|
package/base/interaction.css
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
.cs-button:focus-visible,
|
|
27
27
|
.cs-field__control:focus-visible,
|
|
28
28
|
.cs-select select.cs-field__control:focus-visible,
|
|
29
|
+
.cs-native-select select.cs-field__control:focus-visible,
|
|
29
30
|
.cs-search:focus-within,
|
|
30
31
|
.cs-ai-disclosure__badge:focus-visible,
|
|
31
32
|
.cs-switch input:focus-visible + .cs-switch__track {
|
package/base/typography.css
CHANGED
|
@@ -12,3 +12,9 @@
|
|
|
12
12
|
.cs-caption { font-family: var(--cs-font-family-ui); font-size: var(--cs-text-caption); line-height: var(--cs-font-lineHeight-body); color: var(--cs-color-text-muted); }
|
|
13
13
|
.cs-eyebrow { font-family: var(--cs-font-family-ui); font-size: var(--cs-text-eyebrow); font-weight: var(--cs-font-weight-bold); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-accent); }
|
|
14
14
|
.cs-mono { font-family: var(--cs-font-family-mono); }
|
|
15
|
+
/* Opt in to the display face for a subtree — retargets --cs-heading-family so
|
|
16
|
+
* .cs-display/.cs-h1…h4 and bare headings follow, body copy stays on the UI
|
|
17
|
+
* face. Space Grotesk tops out at 700, so --cs-heading-weight-strong (800)
|
|
18
|
+
* clamps to 700 within that family (CSS does not hop to Be Vietnam Pro for a
|
|
19
|
+
* missing weight). Sanctioned path for cyberskill.world / Lumi headline face. */
|
|
20
|
+
.cs-display-face { --cs-heading-family: var(--cs-font-family-display); }
|
|
@@ -25,8 +25,8 @@ export const strings = {
|
|
|
25
25
|
vi: { placeholder: "Tìm kiếm…", clear: "Xóa tìm kiếm" },
|
|
26
26
|
},
|
|
27
27
|
NumberField: {
|
|
28
|
-
en: { decrease: "Decrease", increase: "Increase" },
|
|
29
|
-
vi: { decrease: "Giảm", increase: "Tăng" },
|
|
28
|
+
en: { decrease: "Decrease", increase: "Increase", value: "Value" },
|
|
29
|
+
vi: { decrease: "Giảm", increase: "Tăng", value: "Giá trị" },
|
|
30
30
|
},
|
|
31
31
|
FileUpload: {
|
|
32
32
|
en: { title: "Drop files here or browse", hint: "PNG, JPG, or PDF up to 10MB" },
|
|
@@ -36,6 +36,10 @@ export const strings = {
|
|
|
36
36
|
en: { close: "Close", confirm: "Confirm", cancel: "Cancel" },
|
|
37
37
|
vi: { close: "Đóng", confirm: "Xác nhận", cancel: "Hủy" },
|
|
38
38
|
},
|
|
39
|
+
AlertDialog: {
|
|
40
|
+
en: { confirm: "Confirm", cancel: "Cancel" },
|
|
41
|
+
vi: { confirm: "Xác nhận", cancel: "Hủy" },
|
|
42
|
+
},
|
|
39
43
|
Drawer: {
|
|
40
44
|
en: { close: "Close", panel: "Panel" },
|
|
41
45
|
vi: { close: "Đóng", panel: "Bảng" },
|
|
@@ -161,8 +165,8 @@ export const strings = {
|
|
|
161
165
|
vi: { placeholder: "Chọn hoặc nhập…", empty: "Không có kết quả phù hợp" },
|
|
162
166
|
},
|
|
163
167
|
InputGroup: {
|
|
164
|
-
en: { clear: "Clear", show: "Show password", hide: "Hide password" },
|
|
165
|
-
vi: { clear: "Xóa", show: "Hiện mật khẩu", hide: "Ẩn mật khẩu" },
|
|
168
|
+
en: { clear: "Clear", show: "Show password", hide: "Hide password", input: "Input" },
|
|
169
|
+
vi: { clear: "Xóa", show: "Hiện mật khẩu", hide: "Ẩn mật khẩu", input: "Ô nhập" },
|
|
166
170
|
},
|
|
167
171
|
TagInput: {
|
|
168
172
|
en: { placeholder: "Add a tag…", remove: "Remove" },
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
.grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px; max-width: 660px; align-items: start; }
|
|
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; }
|
|
12
12
|
</style>
|
|
13
|
-
<script src="https://unpkg.com/react@
|
|
14
|
-
<script src="https://unpkg.com/react
|
|
13
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react.development.js" integrity="sha384-r22tQd8qRIHDPIkmdXZcVtvPi1Tj2x1QaW2tmFQHEvHscATUnHQ5siTyxWw5PMUs" crossorigin="anonymous"></script>
|
|
14
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react-dom.development.js" integrity="sha384-gJZYmumEmwqVmX3JVsLZq+4QrxoPGh/BW47Rk7SqNPCPFpTGnRtvmeRPJ7//ZDPk" crossorigin="anonymous"></script>
|
|
15
15
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
16
16
|
<script src="../../_ds_bundle.js"></script>
|
|
17
17
|
</head>
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
.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; }
|
|
10
10
|
.blk { margin-bottom: 20px; }
|
|
11
11
|
</style>
|
|
12
|
-
<script src="https://unpkg.com/react@
|
|
13
|
-
<script src="https://unpkg.com/react
|
|
12
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react.development.js" integrity="sha384-r22tQd8qRIHDPIkmdXZcVtvPi1Tj2x1QaW2tmFQHEvHscATUnHQ5siTyxWw5PMUs" crossorigin="anonymous"></script>
|
|
13
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react-dom.development.js" integrity="sha384-gJZYmumEmwqVmX3JVsLZq+4QrxoPGh/BW47Rk7SqNPCPFpTGnRtvmeRPJ7//ZDPk" crossorigin="anonymous"></script>
|
|
14
14
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
15
15
|
<script src="../../_ds_bundle.js"></script>
|
|
16
16
|
</head>
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
.stack { display: grid; gap: 18px; max-width: 560px; }
|
|
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: 8px; }
|
|
12
12
|
</style>
|
|
13
|
-
<script src="https://unpkg.com/react@
|
|
14
|
-
<script src="https://unpkg.com/react
|
|
13
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react.development.js" integrity="sha384-r22tQd8qRIHDPIkmdXZcVtvPi1Tj2x1QaW2tmFQHEvHscATUnHQ5siTyxWw5PMUs" crossorigin="anonymous"></script>
|
|
14
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react-dom.development.js" integrity="sha384-gJZYmumEmwqVmX3JVsLZq+4QrxoPGh/BW47Rk7SqNPCPFpTGnRtvmeRPJ7//ZDPk" crossorigin="anonymous"></script>
|
|
15
15
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
16
16
|
<script src="../../_ds_bundle.js"></script>
|
|
17
17
|
</head>
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
.row { display: flex; align-items: center; gap: 24px; }
|
|
10
10
|
.cap { font: 500 12px/1.4 var(--cs-font-family-ui); color: var(--cs-color-text-muted); margin-top: 8px; }
|
|
11
11
|
</style>
|
|
12
|
-
<script src="https://unpkg.com/react@
|
|
13
|
-
<script src="https://unpkg.com/react
|
|
12
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react.development.js" integrity="sha384-r22tQd8qRIHDPIkmdXZcVtvPi1Tj2x1QaW2tmFQHEvHscATUnHQ5siTyxWw5PMUs" crossorigin="anonymous"></script>
|
|
13
|
+
<script src="https://unpkg.com/umd-react@19.2.8/dist/react-dom.development.js" integrity="sha384-gJZYmumEmwqVmX3JVsLZq+4QrxoPGh/BW47Rk7SqNPCPFpTGnRtvmeRPJ7//ZDPk" crossorigin="anonymous"></script>
|
|
14
14
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
15
15
|
<script src="../../_ds_bundle.js"></script>
|
|
16
16
|
</head>
|