@cyberskill/design 1.2.0 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +4 -3
- package/README.md +20 -19
- package/SKILL.md +5 -5
- package/THIRD-PARTY-NOTICES.md +35 -0
- package/VERSION +1 -1
- package/_ds_bundle.js +701 -1342
- package/_esm/cs.mjs +2 -2
- package/_esm/react.mjs +6 -1
- package/_vendor/NOTICE.md +16 -0
- package/_vendor/babel/README.md +7 -0
- package/_vendor/babel/babel.min.js +4 -0
- package/_vendor/react/README.md +3 -0
- package/_vendor/react/react-dom.production.min.js +1 -0
- package/_vendor/react/react.production.min.js +1 -0
- package/assets/aurora-hoa.webp +0 -0
- package/assets/aurora-kim.webp +0 -0
- package/assets/aurora-moc.webp +0 -0
- package/assets/aurora-tho.webp +0 -0
- package/assets/aurora-thuy.webp +0 -0
- package/base/ai.css +8 -3
- package/base/collections.css +10 -4
- package/base/components.css +5 -2
- package/base/controls.css +58 -21
- package/base/data.css +1 -1
- package/base/feedback.css +9 -2
- package/base/forms.css +1 -1
- package/base/glass.css +1 -1
- package/base/interaction.css +6 -2
- package/base/navigation.css +1 -1
- package/base/reset.css +7 -1
- package/base/responsive.css +13 -12
- package/base/shell.css +8 -2
- package/components/_i18n/i18n.js +28 -3
- package/components/_i18n/strings.js +42 -24
- package/components/ai/ChatMessage.d.ts +2 -0
- package/components/ai/ChatMessage.jsx +8 -4
- package/components/ai/ConfidenceMeter.d.ts +2 -0
- package/components/ai/HumanReviewGate.d.ts +2 -0
- package/components/ai/PromptInput.d.ts +2 -0
- package/components/ai/TypingIndicator.d.ts +2 -0
- package/components/ai/ai-conversation.card.html +3 -3
- package/components/ai/ai-lumi.card.html +3 -3
- package/components/ai/ai.card.html +3 -3
- package/components/brand/brand.card.html +3 -3
- package/components/button/buttons.card.html +3 -3
- package/components/data/Image.jsx +18 -2
- package/components/data/Sortable.d.ts +5 -1
- package/components/data/Sortable.jsx +42 -9
- package/components/data/Sortable.prompt.md +4 -2
- package/components/data/Terminal.jsx +3 -2
- package/components/data/Tooltip.d.ts +2 -0
- package/components/data/Tooltip.jsx +6 -3
- package/components/data/Tree.d.ts +2 -1
- package/components/data/Tree.jsx +137 -16
- package/components/data/Tree.prompt.md +1 -1
- package/components/data/collections.card.html +3 -3
- package/components/data/data.card.html +3 -3
- package/components/datatable/DataTable.d.ts +24 -1
- package/components/datatable/DataTable.jsx +78 -5
- package/components/datatable/DataTable.prompt.md +2 -1
- package/components/datatable/datatable.card.html +20 -16
- package/components/dialog/dialog.card.html +3 -3
- package/components/feedback/Alert.d.ts +2 -0
- package/components/feedback/Alert.jsx +8 -2
- package/components/feedback/EmptyState.d.ts +2 -0
- package/components/feedback/EmptyState.jsx +6 -3
- package/components/feedback/ProgressBar.d.ts +2 -0
- package/components/feedback/ProgressBar.jsx +6 -3
- package/components/feedback/Toast.jsx +15 -1
- package/components/feedback/Toast.prompt.md +2 -1
- package/components/feedback/feedback-2.card.html +3 -3
- package/components/feedback/feedback.card.html +3 -3
- package/components/forms/Cascader.jsx +7 -2
- package/components/forms/FileUpload.d.ts +2 -0
- package/components/forms/Form.d.ts +3 -1
- package/components/forms/Form.jsx +9 -1
- package/components/forms/Form.prompt.md +1 -1
- package/components/forms/Mentions.d.ts +1 -1
- package/components/forms/Mentions.jsx +59 -7
- package/components/forms/Mentions.prompt.md +3 -1
- package/components/forms/Rating.d.ts +3 -2
- package/components/forms/Rating.jsx +34 -3
- package/components/forms/Rating.prompt.md +1 -1
- package/components/forms/Select.d.ts +2 -0
- package/components/forms/Select.jsx +6 -2
- package/components/forms/Slider.d.ts +2 -0
- package/components/forms/Slider.jsx +5 -2
- package/components/forms/Switch.d.ts +2 -0
- package/components/forms/Switch.jsx +7 -9
- package/components/forms/Toggle.d.ts +2 -0
- package/components/forms/Toggle.jsx +14 -2
- package/components/forms/forms-2.card.html +3 -3
- package/components/forms/forms.card.html +3 -3
- package/components/icon/Icon.d.ts +1 -1
- package/components/icon/Icon.prompt.md +1 -1
- package/components/icon/icon.card.html +3 -3
- package/components/logo/logo.card.html +3 -3
- package/components/navigation/CommandPalette.d.ts +2 -0
- package/components/navigation/Menu.d.ts +2 -0
- package/components/navigation/Menu.jsx +60 -6
- package/components/navigation/Steps.d.ts +2 -0
- package/components/navigation/Steps.jsx +6 -3
- package/components/navigation/Tabs.d.ts +2 -0
- package/components/navigation/Tabs.jsx +6 -3
- package/components/navigation/Toolbar.d.ts +3 -2
- package/components/navigation/Toolbar.jsx +117 -11
- package/components/navigation/Toolbar.prompt.md +1 -1
- package/components/navigation/navigation.card.html +3 -3
- package/components/navigation/shell.card.html +3 -3
- package/components/overlays/ContextMenu.d.ts +2 -0
- package/components/overlays/ContextMenu.jsx +6 -3
- package/components/overlays/Drawer.d.ts +2 -0
- package/components/overlays/alertdialog.card.html +3 -3
- package/components/overlays/overlays.card.html +3 -3
- package/components/textfield/textfield.card.html +3 -3
- package/dist/styles.min.css +312 -64
- package/docs/ci-cd.md +18 -13
- package/docs/consumer-grant.md +3 -0
- package/docs/consuming.md +7 -7
- package/docs/contrast-report.md +79 -1
- package/docs/conventions.md +17 -4
- package/docs/decisions.md +40 -2
- package/docs/deploy.md +17 -6
- package/docs/design-styles.md +1 -1
- package/docs/quality-gates.md +19 -11
- package/docs/release-runbook.md +78 -0
- package/docs/sync.md +1 -1
- package/docs/vi/ci-cd.md +16 -13
- package/docs/vi/consumer-grant.md +3 -0
- package/docs/vi/consuming.md +7 -7
- package/docs/vi/contrast-report.md +79 -1
- package/docs/vi/conventions.md +18 -5
- package/docs/vi/decisions.md +39 -2
- package/docs/vi/deploy.md +17 -6
- package/docs/vi/quality-gates.md +18 -11
- package/docs/vi/release-runbook.md +78 -0
- package/docs/vi/sync.md +1 -1
- package/docs/viewer.html +2 -2
- package/fonts/OFL.txt +98 -0
- package/guidelines/atomic-view.html +2 -2
- package/guidelines/brand-imagery.html +1 -1
- package/guidelines/elements-variants.html +5 -5
- package/guidelines/spacing-breakpoints.html +2 -1
- package/guidelines/surfaces-glass.html +1 -1
- package/llms.txt +4 -4
- package/package.json +28 -8
- package/templates/app-shell/AppShell.dc.html +3 -3
- package/templates/app-shell/content-schema.json +7 -0
- package/templates/article/Article.dc.html +3 -3
- package/templates/article/content-schema.json +7 -0
- package/templates/auth/Auth.dc.html +26 -10
- package/templates/auth/content-schema.json +25 -0
- package/templates/dashboard/Dashboard.dc.html +4 -4
- package/templates/dashboard/content-schema.json +7 -0
- package/templates/delivery-change-note/DeliveryChangeNote.dc.html +2 -2
- package/templates/delivery-runbook/DeliveryRunbook.dc.html +2 -2
- package/templates/email-safe/email-announcement.html +2 -2
- package/templates/email-safe/email-dunning.html +2 -2
- package/templates/email-safe/email-investor.html +2 -2
- package/templates/email-safe/email-launch.html +2 -2
- package/templates/email-safe/email-newsletter.html +2 -2
- package/templates/email-safe/email-status.html +2 -2
- package/templates/email-safe/email-transactional.html +2 -2
- package/templates/finance-dunning-email/FinanceDunningEmail.dc.html +2 -2
- package/templates/finance-expense-report/FinanceExpenseReport.dc.html +2 -2
- package/templates/finance-invoice/FinanceInvoice.dc.html +2 -2
- package/templates/finance-quote/FinanceQuote.dc.html +4 -4
- package/templates/hr-interview-kit/HrInterviewKit.dc.html +1 -1
- package/templates/marketing-case-study/MarketingCaseStudy.dc.html +1 -1
- package/templates/marketing-page/MarketingPage.dc.html +3 -3
- package/templates/marketing-page/content-schema.json +1 -0
- package/templates/settings/Settings.dc.html +3 -3
- package/templates/settings/content-schema.json +7 -0
- package/tokens/element-seeds.json +2 -2
- package/tokens/elements.css +193 -19
- package/tokens/native/CSTokens.kt +3 -2
- package/tokens/native/CSTokens.swift +3 -2
- package/tokens/native/cs_tokens.dart +3 -2
- package/tokens/provenance.json +8 -8
- package/tokens/spacing.css +2 -1
- package/tokens/tokens.dtcg.json +19 -14
- package/tokens/tokens.js +16 -15
- package/tokens/tokens.json +15 -14
- package/ui_kits/deck/index.html +1 -1
- package/ui_kits/status-hub/StatusHub.jsx +1 -1
- package/ui_kits/status-hub/login.html +52 -10
- package/ui_kits/status-hub/project.html +1 -1
- package/ui_kits/status-hub/settings.html +1 -1
- package/ui_kits/website/Website.jsx +1 -1
- package/ui_kits/website/careers.html +2 -2
- package/ui_kits/website/chat.html +1 -1
- package/ui_kits/website/site.css +1 -1
- package/ui_kits/website/work.html +2 -2
- package/assets/aurora-hoa.png +0 -0
- package/assets/aurora-kim.png +0 -0
- package/assets/aurora-moc.png +0 -0
- package/assets/aurora-thuy.png +0 -0
- package/docs/decisions/container-query-migration.md +0 -18
- package/docs/decisions/overlay-manager-design.md +0 -101
- package/docs/plans/cyberskill-design-system-audit-and-12-month-evolution-plan.md +0 -1490
- package/docs/status/assets/favicon.svg +0 -5
- package/docs/status/assets/status-legacy.css +0 -399
- package/docs/status/assets/status-legacy.js +0 -505
- package/docs/status/assets/status.css +0 -644
- package/docs/status/assets/status.js +0 -1308
- package/docs/status/data/status-feed.json +0 -1
- package/docs/status/data/task/TASK-REL-001.js +0 -1
- package/docs/status/data/task/TASK-REL-002.js +0 -1
- package/docs/status/index.html +0 -46
- package/docs/status/roadmap.html +0 -4
- package/docs/status/status-legacy.html +0 -122
- package/docs/tasks/BACKLOG.md +0 -26
- package/docs/tasks/_state/commit-links.yaml +0 -14
- package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +0 -55
- package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +0 -54
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# Overlay manager design (C8 / CDS-ARCH-001)
|
|
2
|
-
|
|
3
|
-
Status: **landed in Phase 3** (operator decision D5=A, 2026-08-08) — see `components/overlays/OverlayManager.jsx`.
|
|
4
|
-
Owner: design-system maintainer · Related: UX-009 depth tokens, CDS-A11Y-003 keyboard models.
|
|
5
|
-
|
|
6
|
-
## Problem
|
|
7
|
-
|
|
8
|
-
Overlays (Dialog, AlertDialog, Drawer, Popover, Menu, CommandPalette, Toast, Tour) currently each own:
|
|
9
|
-
|
|
10
|
-
- z-index (with dialog hardcoding `1000` historically — now tokenized to `--cs-depth-modal`)
|
|
11
|
-
- focus trap / restore
|
|
12
|
-
- body scroll-lock
|
|
13
|
-
- Escape handling
|
|
14
|
-
|
|
15
|
-
Nested overlays (toast while modal open; confirm inside drawer) race on DOM order and scroll-lock count. Keyboard models for complex widgets (CDS-A11Y-003) need a single stack authority.
|
|
16
|
-
|
|
17
|
-
## Goals
|
|
18
|
-
|
|
19
|
-
1. One stack owns paint order (depth tokens), focus scope, Escape routing, and scroll-lock refcount.
|
|
20
|
-
2. Toasts always paint above modals (`--cs-depth-toast` > `--cs-depth-modal`) — already the token doctrine.
|
|
21
|
-
3. Nested overlays: only the topmost modal-layer traps focus; Escape closes topmost first.
|
|
22
|
-
4. No third-party floating library required for v1; Floating UI may be adopted later for positioning only.
|
|
23
|
-
|
|
24
|
-
## Non-goals (v1)
|
|
25
|
-
|
|
26
|
-
- Rewriting every popover positioner
|
|
27
|
-
- Changing public component props (additive `layer` / `portal` opts only)
|
|
28
|
-
- SSR portal polyfills beyond “no `window` during render” (Tour already fixed)
|
|
29
|
-
|
|
30
|
-
## API sketch
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
// components/overlays/OverlayManager.jsx (Phase 3 land)
|
|
34
|
-
|
|
35
|
-
type LayerKind = 'dropdown' | 'popover' | 'modal' | 'toast' | 'tour';
|
|
36
|
-
|
|
37
|
-
type LayerRegistration = {
|
|
38
|
-
id: string;
|
|
39
|
-
kind: LayerKind;
|
|
40
|
-
/** Focus trap when kind is modal */
|
|
41
|
-
trapFocus?: boolean;
|
|
42
|
-
onEscape?: () => void;
|
|
43
|
-
/** Element that receives restore focus */
|
|
44
|
-
restoreEl?: HTMLElement | null;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
type OverlayManagerApi = {
|
|
48
|
-
register(layer: LayerRegistration): () => void; // unregister
|
|
49
|
-
top(): LayerRegistration | null;
|
|
50
|
-
/** Refcount scroll lock — lock while any modal registered */
|
|
51
|
-
scrollLocked: boolean;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// React context
|
|
55
|
-
const OverlayContext = React.createContext<OverlayManagerApi | null>(null);
|
|
56
|
-
function OverlayProvider({ children }: { children: React.ReactNode }): JSX.Element;
|
|
57
|
-
function useOverlayLayer(opts: Omit<LayerRegistration, 'id'>): { id: string };
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Depth mapping
|
|
61
|
-
|
|
62
|
-
| Kind | Token | Notes |
|
|
63
|
-
|------|-------|--------|
|
|
64
|
-
| dropdown | `--cs-depth-dropdown` (60) | Menus under sticky nav |
|
|
65
|
-
| popover | `--cs-depth-overlay` | HoverCard, Popover |
|
|
66
|
-
| modal | `--cs-depth-modal` (100) | Dialog, AlertDialog, Drawer, CommandPalette |
|
|
67
|
-
| toast | `--cs-depth-toast` (200) | Above modals |
|
|
68
|
-
| tour | `--cs-depth-toast` or dedicated | Full-viewport coachmarks |
|
|
69
|
-
|
|
70
|
-
### Focus & Escape
|
|
71
|
-
|
|
72
|
-
- Modal registration pushes a focus scope; Tab cycles within the topmost modal host (`.cs-dialog-layer` / drawer panel).
|
|
73
|
-
- Escape invokes `onEscape` of `top()` only; if none, bubbles.
|
|
74
|
-
- Unregister restores focus to `restoreEl` when that layer was topmost at close.
|
|
75
|
-
|
|
76
|
-
### Scroll-lock
|
|
77
|
-
|
|
78
|
-
- `document.documentElement` / `body` overflow hidden while `count(modal) > 0`.
|
|
79
|
-
- Nested modals increment; close decrements — no flicker unlock.
|
|
80
|
-
|
|
81
|
-
### Portal host
|
|
82
|
-
|
|
83
|
-
```html
|
|
84
|
-
<div id="cs-overlay-root" data-cs-overlay-root></div>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Components portal into `#cs-overlay-root` when present; otherwise document.body (today’s behavior). Kits and Atomic View mount the root once.
|
|
88
|
-
|
|
89
|
-
## Migration (Phase 3)
|
|
90
|
-
|
|
91
|
-
1. Ship `OverlayProvider` + `useOverlayLayer` beside existing components (no breaking change).
|
|
92
|
-
2. Wire Dialog / AlertDialog / Drawer / CommandPalette / ToastStack first.
|
|
93
|
-
3. Add a11y-gate rows: nested dialog+toast, nested dialog+alertdialog Escape order, scroll-lock refcount.
|
|
94
|
-
4. Then E3 keyboard models for Cascader / TreeSelect / Menubar adopt the same focus-scope helper.
|
|
95
|
-
|
|
96
|
-
## Acceptance
|
|
97
|
-
|
|
98
|
-
- Toast visible above open dialog (behavior gate — already green; keep).
|
|
99
|
-
- Nested AlertDialog inside Dialog: Escape closes alert first; focus returns to dialog.
|
|
100
|
-
- Zero raw `z-index` > 20 in `base/` outside token vars (token-contract).
|
|
101
|
-
- Design note remains the SoT until Phase 3 lands code under `components/overlays/`.
|