@ketvietlab/design-system 0.1.3
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/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/catalogue/catalogue.css +344 -0
- package/dist/catalogue/index.d.ts +22 -0
- package/dist/catalogue/index.d.ts.map +1 -0
- package/dist/catalogue/index.js +421 -0
- package/dist/catalogue/index.js.map +1 -0
- package/dist/catalogue/page-surfaces.d.ts +15 -0
- package/dist/catalogue/page-surfaces.d.ts.map +1 -0
- package/dist/catalogue/page-surfaces.js +162 -0
- package/dist/catalogue/page-surfaces.js.map +1 -0
- package/dist/catalogue/styles.css +2 -0
- package/dist/contract/index.d.ts +3 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +37 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/foundations/reset.css +42 -0
- package/dist/foundations/tokens.css +305 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/index.d.ts +68 -0
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +66 -0
- package/dist/layouts/index.js.map +1 -0
- package/dist/layouts/layouts.css +332 -0
- package/dist/layouts/shell.css +154 -0
- package/dist/layouts/shell.d.ts +27 -0
- package/dist/layouts/shell.d.ts.map +1 -0
- package/dist/layouts/shell.js +24 -0
- package/dist/layouts/shell.js.map +1 -0
- package/dist/patterns/board-page.d.ts +14 -0
- package/dist/patterns/board-page.d.ts.map +1 -0
- package/dist/patterns/board-page.js +28 -0
- package/dist/patterns/board-page.js.map +1 -0
- package/dist/patterns/dashboard-page.d.ts +13 -0
- package/dist/patterns/dashboard-page.d.ts.map +1 -0
- package/dist/patterns/dashboard-page.js +25 -0
- package/dist/patterns/dashboard-page.js.map +1 -0
- package/dist/patterns/data-table.d.ts +26 -0
- package/dist/patterns/data-table.d.ts.map +1 -0
- package/dist/patterns/data-table.js +6 -0
- package/dist/patterns/data-table.js.map +1 -0
- package/dist/patterns/form-page.d.ts +8 -0
- package/dist/patterns/form-page.d.ts.map +1 -0
- package/dist/patterns/form-page.js +22 -0
- package/dist/patterns/form-page.js.map +1 -0
- package/dist/patterns/list-page.d.ts +31 -0
- package/dist/patterns/list-page.d.ts.map +1 -0
- package/dist/patterns/list-page.js +41 -0
- package/dist/patterns/list-page.js.map +1 -0
- package/dist/patterns/modal-sheet.d.ts +11 -0
- package/dist/patterns/modal-sheet.d.ts.map +1 -0
- package/dist/patterns/modal-sheet.js +11 -0
- package/dist/patterns/modal-sheet.js.map +1 -0
- package/dist/patterns/page-shell.d.ts +24 -0
- package/dist/patterns/page-shell.d.ts.map +1 -0
- package/dist/patterns/page-shell.js +11 -0
- package/dist/patterns/page-shell.js.map +1 -0
- package/dist/patterns/patterns.css +1435 -0
- package/dist/patterns/pipeline.d.ts +29 -0
- package/dist/patterns/pipeline.d.ts.map +1 -0
- package/dist/patterns/pipeline.js +26 -0
- package/dist/patterns/pipeline.js.map +1 -0
- package/dist/patterns/record-form.d.ts +18 -0
- package/dist/patterns/record-form.d.ts.map +1 -0
- package/dist/patterns/record-form.js +14 -0
- package/dist/patterns/record-form.js.map +1 -0
- package/dist/patterns/record-page.d.ts +30 -0
- package/dist/patterns/record-page.d.ts.map +1 -0
- package/dist/patterns/record-page.js +29 -0
- package/dist/patterns/record-page.js.map +1 -0
- package/dist/patterns/workspace-page.d.ts +23 -0
- package/dist/patterns/workspace-page.d.ts.map +1 -0
- package/dist/patterns/workspace-page.js +26 -0
- package/dist/patterns/workspace-page.js.map +1 -0
- package/dist/primitives/actions.d.ts +30 -0
- package/dist/primitives/actions.d.ts.map +1 -0
- package/dist/primitives/actions.js +8 -0
- package/dist/primitives/actions.js.map +1 -0
- package/dist/primitives/feedback.d.ts +19 -0
- package/dist/primitives/feedback.d.ts.map +1 -0
- package/dist/primitives/feedback.js +23 -0
- package/dist/primitives/feedback.js.map +1 -0
- package/dist/primitives/field.d.ts +22 -0
- package/dist/primitives/field.d.ts.map +1 -0
- package/dist/primitives/field.js +29 -0
- package/dist/primitives/field.js.map +1 -0
- package/dist/primitives/navigation.css +99 -0
- package/dist/primitives/navigation.d.ts +26 -0
- package/dist/primitives/navigation.d.ts.map +1 -0
- package/dist/primitives/navigation.js +16 -0
- package/dist/primitives/navigation.js.map +1 -0
- package/dist/primitives/primitives.css +489 -0
- package/dist/primitives/progress.css +46 -0
- package/dist/primitives/progress.d.ts +10 -0
- package/dist/primitives/progress.d.ts.map +1 -0
- package/dist/primitives/progress.js +13 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/status.d.ts +27 -0
- package/dist/primitives/status.d.ts.map +1 -0
- package/dist/primitives/status.js +16 -0
- package/dist/primitives/status.js.map +1 -0
- package/dist/styles.css +9 -0
- package/package.json +58 -0
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
|
|
2
|
+
import { each, html } from '@ketvietlab/ketjs-view';
|
|
3
|
+
import { ActionGroup, Button, LinkButton } from '../primitives/actions.js';
|
|
4
|
+
import { Avatar, Badge, Code, CountBadge, Tag } from '../primitives/status.js';
|
|
5
|
+
import { EmptyState, LoadingState, Notice } from '../primitives/feedback.js';
|
|
6
|
+
import { Field } from '../primitives/field.js';
|
|
7
|
+
import { NavList, Tabs } from '../primitives/navigation.js';
|
|
8
|
+
import { Progress } from '../primitives/progress.js';
|
|
9
|
+
import { ContentCard, Disclosure, Grid, Inline, Metric, Section, Stack, Surface } from '../layouts/index.js';
|
|
10
|
+
import { AppShell, Page, PageHeader, RecordCanvas, RecordSection } from '../layouts/shell.js';
|
|
11
|
+
import { DataTable } from '../patterns/data-table.js';
|
|
12
|
+
import { BoardPage } from '../patterns/board-page.js';
|
|
13
|
+
import { DashboardPage } from '../patterns/dashboard-page.js';
|
|
14
|
+
import { ListPage } from '../patterns/list-page.js';
|
|
15
|
+
import { FormPage } from '../patterns/form-page.js';
|
|
16
|
+
import { ModalSheet } from '../patterns/modal-sheet.js';
|
|
17
|
+
import { Pipeline } from '../patterns/pipeline.js';
|
|
18
|
+
import { RecordForm } from '../patterns/record-form.js';
|
|
19
|
+
export { PageSurfacePreview, surfaceKinds, surfaceStates } from './page-surfaces.js';
|
|
20
|
+
const orders = [
|
|
21
|
+
{ id: 'SO-1042', customer: 'Công ty Ánh Dương', total: '18.450.000 ₫', state: 'Ready' },
|
|
22
|
+
{ id: 'SO-1041', customer: 'Khách sạn Mùa Hạ', total: '6.800.000 ₫', state: 'Review' },
|
|
23
|
+
{ id: 'SO-1039', customer: 'Nguyễn Minh Châu', total: '2.150.000 ₫', state: 'Blocked' },
|
|
24
|
+
];
|
|
25
|
+
const toneOf = (state) => state === 'Ready' ? 'positive' : state === 'Review' ? 'warning' : 'danger';
|
|
26
|
+
export const componentGroups = [
|
|
27
|
+
{
|
|
28
|
+
id: 'actions',
|
|
29
|
+
name: 'Actions',
|
|
30
|
+
description: 'Business hierarchy expressed independently from colour.',
|
|
31
|
+
examples: [
|
|
32
|
+
{
|
|
33
|
+
id: 'button',
|
|
34
|
+
name: 'Button',
|
|
35
|
+
description: 'Primary, secondary, tertiary, destructive, loading and disabled states.',
|
|
36
|
+
render: () => (_jsx(ActionGroup, { label: "Button variants", actions: [
|
|
37
|
+
_jsx(Button, { label: "Create order", variant: "primary", leading: "+" }),
|
|
38
|
+
_jsx(Button, { label: "Save draft", variant: "secondary" }),
|
|
39
|
+
_jsx(Button, { label: "More details", variant: "tertiary" }),
|
|
40
|
+
_jsx(Button, { label: "Terminate", variant: "destructive" }),
|
|
41
|
+
_jsx(Button, { label: "Saving", loading: true }),
|
|
42
|
+
_jsx(Button, { label: "Unavailable", disabled: true }),
|
|
43
|
+
] })),
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'action-sizes',
|
|
47
|
+
name: 'Action sizes',
|
|
48
|
+
description: 'Density changes target size without changing hierarchy.',
|
|
49
|
+
render: () => (_jsx(ActionGroup, { label: "Action sizes", actions: [
|
|
50
|
+
_jsx(Button, { label: "Compact", size: "compact" }),
|
|
51
|
+
_jsx(Button, { label: "Default" }),
|
|
52
|
+
_jsx(Button, { label: "Prominent decision", size: "prominent", variant: "primary" }),
|
|
53
|
+
_jsx(LinkButton, { label: "Open record", href: "#data-table", variant: "tertiary", leading: "\u2197" }),
|
|
54
|
+
] })),
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'status',
|
|
60
|
+
name: 'Status & identity',
|
|
61
|
+
description: 'Compact objects for operational scanning.',
|
|
62
|
+
examples: [
|
|
63
|
+
{
|
|
64
|
+
id: 'badges',
|
|
65
|
+
name: 'Badge and tag',
|
|
66
|
+
description: 'Tones carry meaning; tags represent categories and active filters.',
|
|
67
|
+
render: () => (_jsx(Inline, { items: [
|
|
68
|
+
_jsx(Badge, { label: "Neutral" }),
|
|
69
|
+
_jsx(Badge, { label: "Synchronized", tone: "info" }),
|
|
70
|
+
_jsx(Badge, { label: "Ready", tone: "positive" }),
|
|
71
|
+
_jsx(Badge, { label: "Needs review", tone: "warning" }),
|
|
72
|
+
_jsx(Badge, { label: "Failed", tone: "danger" }),
|
|
73
|
+
_jsx(Tag, { label: "H\u00E0 N\u1ED9i", removeHref: "#status", removeLabel: "Remove H\u00E0 N\u1ED9i filter" }),
|
|
74
|
+
_jsx(CountBadge, { count: 12, label: "12 pending items" }),
|
|
75
|
+
] })),
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: 'identity',
|
|
79
|
+
name: 'Avatar and code',
|
|
80
|
+
description: 'Stable fallbacks for people and exact machine-readable values.',
|
|
81
|
+
render: () => (_jsx(Inline, { items: [
|
|
82
|
+
_jsx(Avatar, { name: "Nguy\u1EC5n Minh Ch\u00E2u", size: "small" }),
|
|
83
|
+
_jsx(Avatar, { name: "Nguy\u1EC5n Minh Ch\u00E2u" }),
|
|
84
|
+
_jsx(Avatar, { name: "Nguy\u1EC5n Minh Ch\u00E2u", size: "large" }),
|
|
85
|
+
_jsx(Code, { value: "tenant-vn-hn-0042", context: "tenant" }),
|
|
86
|
+
] })),
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'feedback',
|
|
92
|
+
name: 'Feedback',
|
|
93
|
+
description: 'Complete operational states, including the paths nobody screenshots first.',
|
|
94
|
+
examples: [
|
|
95
|
+
{
|
|
96
|
+
id: 'notice',
|
|
97
|
+
name: 'Notice',
|
|
98
|
+
description: 'Status, warning and recovery information with an optional action.',
|
|
99
|
+
render: () => (_jsx(Stack, { gap: "compact", items: [
|
|
100
|
+
_jsx(Notice, { title: "Sync complete", message: "42 records are ready for review.", tone: "positive" }),
|
|
101
|
+
_jsx(Notice, { title: "Release drift", message: "Two tenants are one release behind.", tone: "warning" }),
|
|
102
|
+
_jsx(Notice, { title: "Connection failed", message: "The provider rejected the stored credential. Rotate it before retrying.", tone: "danger", actions: _jsx(Button, { label: "Rotate", size: "compact" }) }),
|
|
103
|
+
] })),
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: 'empty-loading',
|
|
107
|
+
name: 'Empty and loading',
|
|
108
|
+
description: 'Explicit state preserves layout and gives the reader a next step.',
|
|
109
|
+
render: () => (_jsx(Grid, { columns: 2, items: [
|
|
110
|
+
_jsx(Surface, { padding: "none", body: _jsx(EmptyState, { title: "No saved views", message: "Save the current filters to reuse them later.", actions: _jsx(Button, { label: "Save current view", size: "compact" }) }) }),
|
|
111
|
+
_jsx(Surface, { padding: "none", body: _jsx(LoadingState, { label: "Loading order history", lines: 3 }) }),
|
|
112
|
+
] })),
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'fields',
|
|
118
|
+
name: 'Fields',
|
|
119
|
+
description: 'Native controls with one label, help and error contract.',
|
|
120
|
+
examples: [
|
|
121
|
+
{
|
|
122
|
+
id: 'field',
|
|
123
|
+
name: 'Field',
|
|
124
|
+
description: 'Text, select, checkbox and error states without application-owned markup.',
|
|
125
|
+
render: () => (_jsx(Grid, { columns: 2, items: [
|
|
126
|
+
_jsx(Field, { id: "company-name", name: "company", label: "Company name", value: "K\u00E9t Vi\u1EC7t", required: true }),
|
|
127
|
+
_jsx(Field, { id: "deployment", name: "deployment", label: "Deployment", type: "select", value: "commerce", options: [
|
|
128
|
+
{ value: 'commerce', label: 'Commerce' },
|
|
129
|
+
{ value: 'cosmetic', label: 'Cosmetic' },
|
|
130
|
+
{ value: 'hospitality', label: 'Hospitality' },
|
|
131
|
+
], help: "A tenant belongs to exactly one deployment." }),
|
|
132
|
+
_jsx(Field, { id: "database-key", name: "databaseKey", label: "Database key", value: "Invalid Key", error: "Use lowercase letters, numbers and hyphens only." }),
|
|
133
|
+
_jsx(Field, { id: "active", name: "active", label: "Active for new orders", type: "checkbox", value: true }),
|
|
134
|
+
] })),
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: 'layouts',
|
|
140
|
+
name: 'Layouts',
|
|
141
|
+
description: 'Quiet hierarchy for dense application screens.',
|
|
142
|
+
examples: [
|
|
143
|
+
{
|
|
144
|
+
id: 'surface-section',
|
|
145
|
+
name: 'Surface and section',
|
|
146
|
+
description: 'Layout components establish rhythm without domain assumptions.',
|
|
147
|
+
render: () => (_jsx(Section, { eyebrow: "Operations", title: "Daily overview", description: "The section owns hierarchy; its body remains application data.", actions: _jsx(LinkButton, { label: "View report", href: "#patterns", size: "compact" }), body: _jsx(Grid, { columns: 4, items: [
|
|
148
|
+
_jsx(Metric, { label: "Orders", value: "148", detail: "+12 today", tone: "positive", icon: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.75", "aria-hidden": "true", focusable: "false", children: [_jsx("path", { d: "M3 6h18v12H3z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.5" })] }) }),
|
|
149
|
+
_jsx(Metric, { label: "Review queue", value: "7", detail: "Oldest 42 min", tone: "warning", href: "#surface-section" }),
|
|
150
|
+
_jsx(Metric, { label: "Blocked", value: "2", detail: "Credential required", tone: "danger" }),
|
|
151
|
+
_jsx(Metric, { label: "Archived", value: "1 204", detail: "No state to report" }),
|
|
152
|
+
] }) })),
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: 'content-card',
|
|
156
|
+
name: 'Content card',
|
|
157
|
+
description: 'A composable record summary with valid nested actions.',
|
|
158
|
+
render: () => (_jsx(Grid, { columns: 3, items: [
|
|
159
|
+
_jsx(ContentCard, { title: "Commerce", summary: "General retail operations", body: "24 ready tenants", meta: _jsx(Badge, { label: "Stable", tone: "positive" }), href: "#content-card" }),
|
|
160
|
+
_jsx(ContentCard, { title: "Cosmetic", summary: "Care and marketplace workflows", body: "9 ready tenants", meta: _jsx(Badge, { label: "Review", tone: "warning" }), selected: true }),
|
|
161
|
+
_jsx(ContentCard, { title: "Hospitality", summary: "Property and OTA operations", body: "6 ready tenants", actions: _jsx(Button, { label: "Open cohort", size: "compact" }) }),
|
|
162
|
+
] })),
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
id: 'disclosure',
|
|
166
|
+
name: 'Disclosure',
|
|
167
|
+
description: 'Secondary detail stays available without dominating the primary workflow.',
|
|
168
|
+
render: () => (_jsx(Disclosure, { summary: "Permission provenance", body: _jsx(Stack, { gap: "compact", items: [
|
|
169
|
+
_jsx(Code, { value: "sales.order.approve", context: "managed-template" }),
|
|
170
|
+
_jsx(Code, { value: "sales.order.read", context: "managed-template" }),
|
|
171
|
+
] }) })),
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'application-structure',
|
|
177
|
+
name: 'Application structure',
|
|
178
|
+
description: 'Sidebar, content and context rail are peer regions—not cards nested inside a card.',
|
|
179
|
+
examples: [
|
|
180
|
+
{
|
|
181
|
+
id: 'app-shell',
|
|
182
|
+
name: 'App shell',
|
|
183
|
+
description: 'The sidebar and right rail stay square while independent KPI objects use a 7px radius.',
|
|
184
|
+
render: () => (_jsx(AppShell, { mode: "embedded", sidebar: _jsxs("div", { "data-ui": "shell-demo-sidebar", children: [_jsx("strong", { children: "K\u00E9tSuite" }), _jsx(NavList, { label: "Workspace", items: [
|
|
185
|
+
{ label: 'Overview', href: '#app-shell', leading: '⌂', active: true },
|
|
186
|
+
{ label: 'Orders', href: '#data-table', leading: '□', count: 148 },
|
|
187
|
+
{ label: 'Products', href: '#record-page', leading: '◇' },
|
|
188
|
+
] })] }), main: _jsx(Page, { title: "Operations", description: "Today across all active tenants", actions: _jsx(Button, { label: "Create order", variant: "primary" }), body: _jsx(Grid, { columns: 3, items: [
|
|
189
|
+
_jsx(Metric, { label: "Orders", value: "148", detail: "+12 today", tone: "positive" }),
|
|
190
|
+
_jsx(Metric, { label: "Review queue", value: "7", detail: "Oldest 42 min", tone: "warning" }),
|
|
191
|
+
_jsx(Metric, { label: "Blocked", value: "2", detail: "Credential required", tone: "danger" }),
|
|
192
|
+
] }) }), rightRail: _jsxs("div", { "data-ui": "shell-demo-rail", children: [_jsx("p", { "data-ui": "catalogue-kicker", children: "Context" }), _jsx("strong", { children: "Today" }), _jsx("p", { children: "Three items need an operational decision." }), _jsx(Progress, { label: "Daily target", value: 72 })] }) })),
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
id: 'record-page',
|
|
196
|
+
name: 'Record page',
|
|
197
|
+
description: 'Sections use separators and spacing instead of a rounded container around the whole record.',
|
|
198
|
+
render: () => (_jsx(RecordCanvas, { body: _jsxs(_Fragment, { children: [_jsx(PageHeader, { title: "M\u00F9a H\u1EA1 Riverside", description: "Customer \u00B7 CUS-0042", actions: _jsx(Button, { label: "Edit", size: "compact" }) }), _jsx(RecordSection, { title: "Overview", body: "Stable customer with six active locations and no overdue invoices." }), _jsx(RecordSection, { title: "Delivery", body: _jsx(Progress, { label: "Onboarding complete", value: 84, tone: "positive" }) })] }) })),
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
id: 'navigation',
|
|
204
|
+
name: 'Navigation & progress',
|
|
205
|
+
description: 'Low-luminance selection and compact progress keep attention on the working content.',
|
|
206
|
+
examples: [
|
|
207
|
+
{
|
|
208
|
+
id: 'navigation-items',
|
|
209
|
+
name: 'Navigation and tabs',
|
|
210
|
+
description: 'The active indigo remains restrained in both vertical and horizontal navigation.',
|
|
211
|
+
render: () => (_jsx(Stack, { items: [
|
|
212
|
+
_jsx(NavList, { label: "Product", items: [
|
|
213
|
+
{ label: 'Details', href: '#navigation-items', leading: '◇', active: true },
|
|
214
|
+
{ label: 'Variants', href: '#navigation-items', leading: '□', count: 12 },
|
|
215
|
+
{ label: 'Inventory', href: '#navigation-items', leading: '≡' },
|
|
216
|
+
] }),
|
|
217
|
+
_jsx(Tabs, { label: "Record views", items: [
|
|
218
|
+
{ id: 'summary', label: 'Summary', href: '#navigation-items', active: true },
|
|
219
|
+
{ id: 'activity', label: 'Activity', href: '#navigation-items', count: 8 },
|
|
220
|
+
{ id: 'files', label: 'Files', href: '#navigation-items', count: 3 },
|
|
221
|
+
] }),
|
|
222
|
+
] })),
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
id: 'progress',
|
|
226
|
+
name: 'Progress',
|
|
227
|
+
description: 'A four-pixel track communicates state without becoming another panel.',
|
|
228
|
+
render: () => (_jsx(Stack, { gap: "compact", items: [
|
|
229
|
+
_jsx(Progress, { label: "Project completion", value: 68 }),
|
|
230
|
+
_jsx(Progress, { label: "Approved", value: 92, tone: "positive" }),
|
|
231
|
+
_jsx(Progress, { label: "At risk", value: 54, tone: "warning" }),
|
|
232
|
+
_jsx(Progress, { label: "Overdue", value: 31, tone: "danger" }),
|
|
233
|
+
] })),
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
id: 'patterns',
|
|
239
|
+
name: 'Patterns',
|
|
240
|
+
description: 'Generic workflows assembled from the same primitives.',
|
|
241
|
+
examples: [
|
|
242
|
+
{
|
|
243
|
+
id: 'list-page',
|
|
244
|
+
name: 'List page',
|
|
245
|
+
description: 'The canonical collection hierarchy: identity, actions, URL-driven controls, result context and records.',
|
|
246
|
+
render: () => (_jsx(ListPage, { variant: "operational", context: "Sales / Sales orders", eyebrow: "Sales", title: "Sales orders", description: "Review demand, fulfillment and payment state from one operational list.", actions: _jsx(Button, { label: "Create order", variant: "primary" }), controls: _jsx(ActionGroup, { label: "List controls", actions: [
|
|
247
|
+
_jsx(LinkButton, { label: "All orders", href: "#list-page", size: "compact" }),
|
|
248
|
+
_jsx(LinkButton, { label: "Ready", href: "#list-page", size: "compact", variant: "tertiary" }),
|
|
249
|
+
_jsx(LinkButton, { label: "Needs review", href: "#list-page", size: "compact", variant: "tertiary" }),
|
|
250
|
+
] }), status: "3 of 148 orders \u00B7 Updated just now", body: _jsx(DataTable, { rows: orders, id: (row) => row.id, rowHref: (row) => `#${row.id}`, columns: [
|
|
251
|
+
{
|
|
252
|
+
key: 'id',
|
|
253
|
+
label: 'Order',
|
|
254
|
+
cell: (row) => row.id,
|
|
255
|
+
priority: 'primary',
|
|
256
|
+
kind: 'identifier',
|
|
257
|
+
},
|
|
258
|
+
{ key: 'customer', label: 'Customer', cell: (row) => row.customer },
|
|
259
|
+
{ key: 'total', label: 'Total', cell: (row) => row.total, align: 'end', kind: 'currency' },
|
|
260
|
+
{
|
|
261
|
+
key: 'state',
|
|
262
|
+
label: 'State',
|
|
263
|
+
cell: (row) => _jsx(Badge, { label: row.state, tone: toneOf(row.state) }),
|
|
264
|
+
kind: 'status',
|
|
265
|
+
},
|
|
266
|
+
] }) })),
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 'dashboard-page',
|
|
270
|
+
name: 'Dashboard page',
|
|
271
|
+
description: 'The canonical overview hierarchy: durable context, compact identity, primary action and an uninterrupted analytical canvas.',
|
|
272
|
+
render: () => (_jsx(DashboardPage, { variant: "operational", context: "Sales / Overview", eyebrow: "Commercial workspace", title: "Sales overview", description: "Follow demand, confirmed revenue and the work waiting for the team.", actions: _jsx(Button, { label: "Create quotation", variant: "primary" }), body: _jsx(Stack, { gap: "loose", items: [
|
|
273
|
+
_jsx(Grid, { columns: 4, items: [
|
|
274
|
+
_jsx(Metric, { label: "Quotations", value: 24, detail: "5 new today" }),
|
|
275
|
+
_jsx(Metric, { label: "Sent", value: 9, detail: "Awaiting a reply", tone: "info" }),
|
|
276
|
+
_jsx(Metric, { label: "Confirmed", value: 18, detail: "82,000,000 \u20AB", tone: "positive" }),
|
|
277
|
+
_jsx(Metric, { label: "To invoice", value: 6, detail: "Needs attention", tone: "warning" }),
|
|
278
|
+
] }),
|
|
279
|
+
_jsx(Section, { title: "Sales flow", description: "From quotation through to invoicing", body: _jsx(Pipeline, { label: "Sales flow", steps: [
|
|
280
|
+
{ id: 'draft', label: 'Quotation', value: 24 },
|
|
281
|
+
{ id: 'sent', label: 'Sent', value: 9, tone: 'info' },
|
|
282
|
+
{ id: 'confirmed', label: 'Confirmed', value: 18, tone: 'positive' },
|
|
283
|
+
{ id: 'invoice', label: 'To invoice', value: 6, tone: 'warning' },
|
|
284
|
+
] }) }),
|
|
285
|
+
] }) })),
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
id: 'board-page',
|
|
289
|
+
name: 'Board page',
|
|
290
|
+
description: 'The canonical horizontal workspace: durable context, compact identity, global controls and an uninterrupted board canvas.',
|
|
291
|
+
render: () => (_jsx(BoardPage, { variant: "operational", context: "CRM / Pipeline", eyebrow: "Pipeline", title: "Sales opportunities", description: "Move active opportunities through the sales process.", actions: _jsx(Button, { label: "Create opportunity", variant: "primary" }), controls: _jsx(ActionGroup, { label: "Board controls", actions: [
|
|
292
|
+
_jsx(LinkButton, { label: "My opportunities", href: "#board-page", size: "compact" }),
|
|
293
|
+
_jsx(LinkButton, { label: "All teams", href: "#board-page", size: "compact", variant: "tertiary" }),
|
|
294
|
+
] }), body: _jsx(Grid, { columns: 3, items: [
|
|
295
|
+
_jsx(ContentCard, { title: "Qualified", meta: "8 opportunities", body: "125,000,000 \u20AB" }),
|
|
296
|
+
_jsx(ContentCard, { title: "Proposal", meta: "5 opportunities", body: "94,000,000 \u20AB" }),
|
|
297
|
+
_jsx(ContentCard, { title: "Negotiation", meta: "3 opportunities", body: "62,000,000 \u20AB" }),
|
|
298
|
+
] }) })),
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
id: 'pipeline',
|
|
302
|
+
name: 'Pipeline',
|
|
303
|
+
description: 'Stages of a process and the work sitting in each. A later stage may hold more than the one before it.',
|
|
304
|
+
render: () => (_jsx(Pipeline, { label: "Order pipeline", steps: [
|
|
305
|
+
{ id: 'draft', label: 'Draft', value: 24, href: '#pipeline' },
|
|
306
|
+
{ id: 'sent', label: 'Sent', value: 9, href: '#pipeline', tone: 'info' },
|
|
307
|
+
{ id: 'confirmed', label: 'Confirmed', value: 18, href: '#pipeline', tone: 'positive' },
|
|
308
|
+
{ id: 'to-invoice', label: 'To invoice', value: 6, href: '#pipeline', tone: 'warning' },
|
|
309
|
+
] })),
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
id: 'data-table',
|
|
313
|
+
name: 'Data table',
|
|
314
|
+
description: 'Columns are data; rows remain semantic and horizontally contained.',
|
|
315
|
+
render: () => (_jsx(DataTable, { caption: "Recent sales orders", rows: orders, id: (row) => row.id, rowHref: (row) => `#${row.id}`, columns: [
|
|
316
|
+
{ key: 'id', label: 'Order', cell: (row) => row.id, priority: 'primary', kind: 'identifier' },
|
|
317
|
+
{ key: 'customer', label: 'Customer', cell: (row) => row.customer },
|
|
318
|
+
{ key: 'total', label: 'Total', cell: (row) => row.total, align: 'end', kind: 'currency' },
|
|
319
|
+
{
|
|
320
|
+
key: 'state',
|
|
321
|
+
label: 'State',
|
|
322
|
+
cell: (row) => _jsx(Badge, { label: row.state, tone: toneOf(row.state) }),
|
|
323
|
+
kind: 'status',
|
|
324
|
+
},
|
|
325
|
+
] })),
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: 'form-page',
|
|
329
|
+
name: 'Form page',
|
|
330
|
+
description: 'The canonical form hierarchy: record identity and decision first, a stable form column, then durable context.',
|
|
331
|
+
render: () => (_jsx(FormPage, { variant: "operational", context: "Customers / M\u00F9a H\u1EA1 Riverside", title: "M\u00F9a H\u1EA1 Riverside", description: "Customer \u00B7 CUS-0042", status: _jsx(Badge, { label: "Active", tone: "positive" }), actions: _jsx(Button, { label: "Save partner", variant: "primary" }), body: _jsx(Section, { title: "Main information", body: _jsx(Surface, { body: _jsx(RecordForm, { action: "#form-page", fields: [
|
|
332
|
+
{ id: 'partner-name', name: 'name', label: 'Name', value: 'Mùa Hạ Riverside' },
|
|
333
|
+
{ id: 'partner-ref', name: 'ref', label: 'Reference', value: 'CUS-0042' },
|
|
334
|
+
{
|
|
335
|
+
id: 'partner-email',
|
|
336
|
+
name: 'email',
|
|
337
|
+
label: 'Email',
|
|
338
|
+
type: 'email',
|
|
339
|
+
value: 'hello@muaha.example',
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
id: 'partner-phone',
|
|
343
|
+
name: 'phone',
|
|
344
|
+
label: 'Phone',
|
|
345
|
+
type: 'tel',
|
|
346
|
+
value: '+84 28 3822 0042',
|
|
347
|
+
},
|
|
348
|
+
], submitLabel: "Save partner" }) }) }), aside: _jsx(Section, { title: "Record context", body: _jsx(Stack, { gap: "compact", items: ['Customer since 2023', '6 delivery addresses'] }) }), asideLabel: "Partner context" })),
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
id: 'record-form',
|
|
352
|
+
name: 'Record form',
|
|
353
|
+
description: 'Application supplies translated labels and values, not form markup.',
|
|
354
|
+
render: () => (_jsx(Surface, { body: _jsx(RecordForm, { action: "#record-form", fields: [
|
|
355
|
+
{ id: 'record-name', name: 'name', label: 'Display name', value: 'Mùa Hạ Riverside' },
|
|
356
|
+
{
|
|
357
|
+
id: 'record-status',
|
|
358
|
+
name: 'status',
|
|
359
|
+
label: 'Lifecycle',
|
|
360
|
+
type: 'select',
|
|
361
|
+
value: 'ready',
|
|
362
|
+
options: [
|
|
363
|
+
{ value: 'draft', label: 'Draft' },
|
|
364
|
+
{ value: 'ready', label: 'Ready' },
|
|
365
|
+
],
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
id: 'record-note',
|
|
369
|
+
name: 'note',
|
|
370
|
+
label: 'Internal note',
|
|
371
|
+
type: 'textarea',
|
|
372
|
+
value: 'Migration approved by the operations team.',
|
|
373
|
+
span: 'full',
|
|
374
|
+
},
|
|
375
|
+
], submitLabel: "Save record", cancelHref: "#patterns", cancelLabel: "Cancel" }) })),
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
id: 'modal-sheet',
|
|
379
|
+
name: 'Modal sheet',
|
|
380
|
+
description: 'Shown embedded here; the production mode occupies the viewport.',
|
|
381
|
+
render: () => (_jsx(ModalSheet, { id: "release-drift-modal", mode: "embedded", title: "Resolve release drift", closeHref: "#modal-sheet", closeLabel: "Close modal", body: _jsx(Stack, { items: [
|
|
382
|
+
_jsx(Notice, { title: "Two tenants are behind", message: "Migration runs separately for each database and preserves failed tenants for retry.", tone: "warning" }),
|
|
383
|
+
_jsx(ActionGroup, { actions: [
|
|
384
|
+
_jsx(Button, { label: "Start migration", variant: "primary" }),
|
|
385
|
+
_jsx(LinkButton, { label: "Review plan", href: "#data-table", variant: "tertiary" }),
|
|
386
|
+
] }),
|
|
387
|
+
] }) })),
|
|
388
|
+
},
|
|
389
|
+
],
|
|
390
|
+
},
|
|
391
|
+
];
|
|
392
|
+
export const CATALOGUE_HOOKS = [
|
|
393
|
+
'catalogue-surface-preview',
|
|
394
|
+
'catalogue',
|
|
395
|
+
'catalogue-rail',
|
|
396
|
+
'catalogue-brand',
|
|
397
|
+
'catalogue-kicker',
|
|
398
|
+
'catalogue-nav',
|
|
399
|
+
'catalogue-nav-group',
|
|
400
|
+
'catalogue-nav-count',
|
|
401
|
+
'catalogue-main',
|
|
402
|
+
'catalogue-hero',
|
|
403
|
+
'catalogue-title',
|
|
404
|
+
'catalogue-intro',
|
|
405
|
+
'catalogue-controls',
|
|
406
|
+
'catalogue-group',
|
|
407
|
+
'catalogue-group-head',
|
|
408
|
+
'catalogue-specimen',
|
|
409
|
+
'catalogue-specimen-head',
|
|
410
|
+
'catalogue-specimen-name',
|
|
411
|
+
'catalogue-specimen-description',
|
|
412
|
+
'catalogue-stage',
|
|
413
|
+
];
|
|
414
|
+
export const CatalogueHead = () => html `<meta name="description" content="Két Việt public component catalogue"><link rel="stylesheet" href="/design-system/catalogue/styles.css">`;
|
|
415
|
+
export const CataloguePage = (props = {}) => {
|
|
416
|
+
const theme = props.theme ?? 'system';
|
|
417
|
+
const density = props.density ?? 'default';
|
|
418
|
+
const count = componentGroups.reduce((total, group) => total + group.examples.length, 0);
|
|
419
|
+
return (_jsxs("main", { "data-kv-design-system": true, "data-ui": "catalogue", "data-theme": theme === 'system' ? null : theme, "data-density": density, children: [_jsxs("aside", { "data-ui": "catalogue-rail", children: [_jsxs("a", { "data-ui": "catalogue-brand", href: "#top", children: [_jsx("span", { "aria-hidden": "true", children: "K" }), _jsx("strong", { children: "K\u00E9t Vi\u1EC7t" })] }), _jsx("p", { "data-ui": "catalogue-kicker", children: "Design system \u00B7 0.1.3" }), _jsx("nav", { "data-ui": "catalogue-nav", "aria-label": "Component groups", children: each(componentGroups, (group) => group.id, (group) => (_jsxs("a", { "data-ui": "catalogue-nav-group", href: `#${group.id}`, children: [_jsx("span", { children: group.name }), _jsx("span", { "data-ui": "catalogue-nav-count", children: String(group.examples.length) })] }))) })] }), _jsxs("div", { "data-ui": "catalogue-main", id: "top", children: [_jsxs("header", { "data-ui": "catalogue-hero", children: [_jsxs("div", { children: [_jsx("p", { "data-ui": "catalogue-kicker", children: "Public components \u00B7 server rendered" }), _jsx("h1", { "data-ui": "catalogue-title", children: "Operational UI, kept honest." }), _jsxs("p", { "data-ui": "catalogue-intro", children: [String(count), " specimens from one markup, token and state contract. Dense enough for daily work; quiet enough for decisions."] }), _jsx(LinkButton, { label: "Review page surfaces", href: "/surfaces?kind=record&theme=light", variant: "secondary" })] }), _jsxs("div", { "data-ui": "catalogue-controls", role: "group", "aria-label": "Catalogue preferences", children: [_jsx("span", { children: "Theme" }), _jsx("a", { href: `/?theme=light&density=${density}`, "aria-current": theme === 'light' ? 'page' : null, children: "Light" }), _jsx("a", { href: `/?theme=dark&density=${density}`, "aria-current": theme === 'dark' ? 'page' : null, children: "Dark" }), _jsx("a", { href: `/?theme=system&density=${density}`, "aria-current": theme === 'system' ? 'page' : null, children: "System" }), _jsx("span", { children: "Density" }), _jsx("a", { href: `/?theme=${theme}&density=compact`, "aria-current": density === 'compact' ? 'page' : null, children: "Compact" }), _jsx("a", { href: `/?theme=${theme}&density=default`, "aria-current": density === 'default' ? 'page' : null, children: "Default" }), _jsx("a", { href: `/?theme=${theme}&density=comfortable`, "aria-current": density === 'comfortable' ? 'page' : null, children: "Comfort" })] })] }), each(componentGroups, (group) => group.id, (group) => (_jsxs("section", { "data-ui": "catalogue-group", id: group.id, children: [_jsxs("header", { "data-ui": "catalogue-group-head", children: [_jsxs("div", { children: [_jsxs("p", { "data-ui": "catalogue-kicker", children: [String(group.examples.length).padStart(2, '0'), " components"] }), _jsx("h2", { children: group.name })] }), _jsx("p", { children: group.description })] }), each(group.examples, (example) => example.id, (example) => (_jsxs("article", { "data-ui": "catalogue-specimen", id: example.id, children: [_jsxs("header", { "data-ui": "catalogue-specimen-head", children: [_jsxs("div", { children: [_jsx("h3", { "data-ui": "catalogue-specimen-name", children: example.name }), _jsx("p", { "data-ui": "catalogue-specimen-description", children: example.description })] }), _jsx(Code, { value: `@ketvietlab/design-system/${example.name}`, context: "component" })] }), _jsx("div", { "data-ui": "catalogue-stage", children: example.render() })] })))] })))] })] }));
|
|
420
|
+
};
|
|
421
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/design-system/src/catalogue/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from '@ketvietlab/ketjs-view';
|
|
2
|
+
export declare const surfaceKinds: readonly ['list', 'record', 'flow', 'canvas', 'form-compat', 'dashboard-compat', 'board-compat'];
|
|
3
|
+
export declare const surfaceStates: readonly ['baseline', 'loading', 'empty', 'error', 'validation', 'readonly'];
|
|
4
|
+
export type PageSurfaceProps = {
|
|
5
|
+
kind: (typeof surfaceKinds)[number];
|
|
6
|
+
state: (typeof surfaceStates)[number];
|
|
7
|
+
lang: 'en' | 'vi';
|
|
8
|
+
theme: 'light' | 'dark';
|
|
9
|
+
tab: 'details' | 'activity';
|
|
10
|
+
aside: boolean;
|
|
11
|
+
controls: boolean;
|
|
12
|
+
};
|
|
13
|
+
/** Full-page catalogue specimens; never imported by the production entry point. */
|
|
14
|
+
export declare const PageSurfacePreview: (props: PageSurfaceProps) => TemplateResult;
|
|
15
|
+
//# sourceMappingURL=page-surfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-surfaces.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/catalogue/page-surfaces.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAetE,eAAO,MAAM,YAAY,YACvB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,cAAc,CACN,CAAA;AACV,eAAO,MAAM,aAAa,YAAI,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAU,CAAA;AAEzG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;IACnC,KAAK,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,GAAG,EAAE,SAAS,GAAG,UAAU,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,UAAW,gBAAgB,KAAG,cA4N5D,CAAA"}
|