@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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/dist/catalogue/catalogue.css +344 -0
  4. package/dist/catalogue/index.d.ts +22 -0
  5. package/dist/catalogue/index.d.ts.map +1 -0
  6. package/dist/catalogue/index.js +421 -0
  7. package/dist/catalogue/index.js.map +1 -0
  8. package/dist/catalogue/page-surfaces.d.ts +15 -0
  9. package/dist/catalogue/page-surfaces.d.ts.map +1 -0
  10. package/dist/catalogue/page-surfaces.js +162 -0
  11. package/dist/catalogue/page-surfaces.js.map +1 -0
  12. package/dist/catalogue/styles.css +2 -0
  13. package/dist/contract/index.d.ts +3 -0
  14. package/dist/contract/index.d.ts.map +1 -0
  15. package/dist/contract/index.js +37 -0
  16. package/dist/contract/index.js.map +1 -0
  17. package/dist/foundations/reset.css +42 -0
  18. package/dist/foundations/tokens.css +305 -0
  19. package/dist/index.d.ts +35 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +20 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/layouts/index.d.ts +68 -0
  24. package/dist/layouts/index.d.ts.map +1 -0
  25. package/dist/layouts/index.js +66 -0
  26. package/dist/layouts/index.js.map +1 -0
  27. package/dist/layouts/layouts.css +332 -0
  28. package/dist/layouts/shell.css +154 -0
  29. package/dist/layouts/shell.d.ts +27 -0
  30. package/dist/layouts/shell.d.ts.map +1 -0
  31. package/dist/layouts/shell.js +24 -0
  32. package/dist/layouts/shell.js.map +1 -0
  33. package/dist/patterns/board-page.d.ts +14 -0
  34. package/dist/patterns/board-page.d.ts.map +1 -0
  35. package/dist/patterns/board-page.js +28 -0
  36. package/dist/patterns/board-page.js.map +1 -0
  37. package/dist/patterns/dashboard-page.d.ts +13 -0
  38. package/dist/patterns/dashboard-page.d.ts.map +1 -0
  39. package/dist/patterns/dashboard-page.js +25 -0
  40. package/dist/patterns/dashboard-page.js.map +1 -0
  41. package/dist/patterns/data-table.d.ts +26 -0
  42. package/dist/patterns/data-table.d.ts.map +1 -0
  43. package/dist/patterns/data-table.js +6 -0
  44. package/dist/patterns/data-table.js.map +1 -0
  45. package/dist/patterns/form-page.d.ts +8 -0
  46. package/dist/patterns/form-page.d.ts.map +1 -0
  47. package/dist/patterns/form-page.js +22 -0
  48. package/dist/patterns/form-page.js.map +1 -0
  49. package/dist/patterns/list-page.d.ts +31 -0
  50. package/dist/patterns/list-page.d.ts.map +1 -0
  51. package/dist/patterns/list-page.js +41 -0
  52. package/dist/patterns/list-page.js.map +1 -0
  53. package/dist/patterns/modal-sheet.d.ts +11 -0
  54. package/dist/patterns/modal-sheet.d.ts.map +1 -0
  55. package/dist/patterns/modal-sheet.js +11 -0
  56. package/dist/patterns/modal-sheet.js.map +1 -0
  57. package/dist/patterns/page-shell.d.ts +24 -0
  58. package/dist/patterns/page-shell.d.ts.map +1 -0
  59. package/dist/patterns/page-shell.js +11 -0
  60. package/dist/patterns/page-shell.js.map +1 -0
  61. package/dist/patterns/patterns.css +1435 -0
  62. package/dist/patterns/pipeline.d.ts +29 -0
  63. package/dist/patterns/pipeline.d.ts.map +1 -0
  64. package/dist/patterns/pipeline.js +26 -0
  65. package/dist/patterns/pipeline.js.map +1 -0
  66. package/dist/patterns/record-form.d.ts +18 -0
  67. package/dist/patterns/record-form.d.ts.map +1 -0
  68. package/dist/patterns/record-form.js +14 -0
  69. package/dist/patterns/record-form.js.map +1 -0
  70. package/dist/patterns/record-page.d.ts +30 -0
  71. package/dist/patterns/record-page.d.ts.map +1 -0
  72. package/dist/patterns/record-page.js +29 -0
  73. package/dist/patterns/record-page.js.map +1 -0
  74. package/dist/patterns/workspace-page.d.ts +23 -0
  75. package/dist/patterns/workspace-page.d.ts.map +1 -0
  76. package/dist/patterns/workspace-page.js +26 -0
  77. package/dist/patterns/workspace-page.js.map +1 -0
  78. package/dist/primitives/actions.d.ts +30 -0
  79. package/dist/primitives/actions.d.ts.map +1 -0
  80. package/dist/primitives/actions.js +8 -0
  81. package/dist/primitives/actions.js.map +1 -0
  82. package/dist/primitives/feedback.d.ts +19 -0
  83. package/dist/primitives/feedback.d.ts.map +1 -0
  84. package/dist/primitives/feedback.js +23 -0
  85. package/dist/primitives/feedback.js.map +1 -0
  86. package/dist/primitives/field.d.ts +22 -0
  87. package/dist/primitives/field.d.ts.map +1 -0
  88. package/dist/primitives/field.js +29 -0
  89. package/dist/primitives/field.js.map +1 -0
  90. package/dist/primitives/navigation.css +99 -0
  91. package/dist/primitives/navigation.d.ts +26 -0
  92. package/dist/primitives/navigation.d.ts.map +1 -0
  93. package/dist/primitives/navigation.js +16 -0
  94. package/dist/primitives/navigation.js.map +1 -0
  95. package/dist/primitives/primitives.css +489 -0
  96. package/dist/primitives/progress.css +46 -0
  97. package/dist/primitives/progress.d.ts +10 -0
  98. package/dist/primitives/progress.d.ts.map +1 -0
  99. package/dist/primitives/progress.js +13 -0
  100. package/dist/primitives/progress.js.map +1 -0
  101. package/dist/primitives/status.d.ts +27 -0
  102. package/dist/primitives/status.d.ts.map +1 -0
  103. package/dist/primitives/status.js +16 -0
  104. package/dist/primitives/status.js.map +1 -0
  105. package/dist/styles.css +9 -0
  106. 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"}