@silverpoint/core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/catalog.d.ts +2 -2
- package/dist/catalog.js +4 -2
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-OLYKR5PS.js → chunk-46QELMCG.js} +8 -213
- package/dist/chunk-46QELMCG.js.map +1 -0
- package/dist/chunk-5MP3BLZK.js +48 -0
- package/dist/chunk-5MP3BLZK.js.map +1 -0
- package/dist/chunk-6YFO7OP3.js +84 -0
- package/dist/chunk-6YFO7OP3.js.map +1 -0
- package/dist/chunk-ANJSW5JX.js +93 -0
- package/dist/chunk-ANJSW5JX.js.map +1 -0
- package/dist/{chunk-PD4MD7JU.js → chunk-E5CC2NNQ.js} +5 -3
- package/dist/chunk-E5CC2NNQ.js.map +1 -0
- package/dist/chunk-G7N4X5XD.js +12 -0
- package/dist/chunk-G7N4X5XD.js.map +1 -0
- package/dist/chunk-NI7B6UEO.js +24 -0
- package/dist/chunk-NI7B6UEO.js.map +1 -0
- package/dist/chunk-WYFRHI4S.js +179 -0
- package/dist/chunk-WYFRHI4S.js.map +1 -0
- package/dist/contrast-siWF_R5o.d.ts +30 -0
- package/dist/dashboard-demos.d.ts +2 -2
- package/dist/index.d.ts +13 -10
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/dist/{model-CLhtoG75.d.ts → model-DVVt59AB.d.ts} +1 -1
- package/dist/palettes.d.ts +29 -0
- package/dist/palettes.js +79 -0
- package/dist/palettes.js.map +1 -0
- package/dist/{props-Dq8FC8GG.d.ts → props-BZ9CcrGv.d.ts} +53 -1
- package/dist/timeline.d.ts +90 -0
- package/dist/timeline.js +125 -0
- package/dist/timeline.js.map +1 -0
- package/dist/{types-B81k-s9_.d.ts → types-BT3Xm7fP.d.ts} +3 -1
- package/dist/types-D5ys35fF.d.ts +576 -0
- package/dist/types-DHBJ0PzV.d.ts +57 -0
- package/dist/ui-demos.d.ts +14 -3
- package/dist/ui-demos.js +163 -1
- package/dist/ui-demos.js.map +1 -1
- package/dist/ui.d.ts +346 -325
- package/dist/ui.js +932 -118
- package/dist/ui.js.map +1 -1
- package/dist/view-DteS9glE.d.ts +82 -0
- package/package.json +13 -1
- package/dist/chunk-OLYKR5PS.js.map +0 -1
- package/dist/chunk-PD4MD7JU.js.map +0 -1
package/dist/ui-demos.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { uiSortRows } from './chunk-NI7B6UEO.js';
|
|
2
|
+
import { UI_GLYPHS } from './chunk-6YFO7OP3.js';
|
|
3
|
+
import './chunk-WYFRHI4S.js';
|
|
4
|
+
|
|
1
5
|
// src/ui/demo.ts
|
|
2
6
|
function deepFreeze(value) {
|
|
3
7
|
if (value !== null && typeof value === "object") {
|
|
@@ -28,6 +32,51 @@ var steps = [
|
|
|
28
32
|
{ key: "configure", title: "Configure" },
|
|
29
33
|
{ key: "publish", title: "Publish" }
|
|
30
34
|
];
|
|
35
|
+
var columns = [
|
|
36
|
+
{ key: "order", title: "Order" },
|
|
37
|
+
{ key: "customer", title: "Customer", sortable: true },
|
|
38
|
+
{ key: "status", title: "Status" },
|
|
39
|
+
{ key: "amount", title: "Amount", align: "end", sortable: true }
|
|
40
|
+
];
|
|
41
|
+
var orders = [
|
|
42
|
+
{ order: "1042", customer: "Ada Lovelace", status: "Shipped", amount: 128 },
|
|
43
|
+
{ order: "1043", customer: "Grace Hopper", status: "Packed", amount: 64.5 },
|
|
44
|
+
{ order: "1044", customer: "Alan Turing", status: "Paid", amount: 312 },
|
|
45
|
+
{ order: "1045", customer: "Emmy Noether", status: "Placed", amount: 18.25 },
|
|
46
|
+
{ order: "1046", customer: "Kurt G\xF6del", status: "Shipped", amount: 96 }
|
|
47
|
+
];
|
|
48
|
+
var order = [
|
|
49
|
+
{ key: "customer", label: "Customer", value: "Ada Lovelace" },
|
|
50
|
+
{ key: "status", label: "Status", value: "Shipped" },
|
|
51
|
+
{ key: "amount", label: "Amount", value: "128.00" },
|
|
52
|
+
{ key: "placed", label: "Placed", value: "14 October 2026" }
|
|
53
|
+
];
|
|
54
|
+
var history = [
|
|
55
|
+
{ key: "placed", title: "Placed", time: "14 Oct, 09:12", description: "Two prints, one framed." },
|
|
56
|
+
{ key: "paid", title: "Payment", time: "14 Oct, 09:14", description: "Card declined; paid on the second try.", status: "error" },
|
|
57
|
+
{ key: "packed", title: "Packed", time: "15 Oct, 16:40", status: "current" },
|
|
58
|
+
{ key: "shipped", title: "Shipped", status: "pending" }
|
|
59
|
+
];
|
|
60
|
+
var faqs = [
|
|
61
|
+
{ key: "ground", title: "What is a ground?", content: "The prepared surface a metal stylus can mark: bone ash, gum and a little pigment." },
|
|
62
|
+
{ key: "erase", title: "Can a line be erased?", content: "No. Every line stays, so the drawing is planned before it is drawn." },
|
|
63
|
+
{ key: "tone", title: "Where does the tone come from?", content: "From hatching, level by level, never from transparency." }
|
|
64
|
+
];
|
|
65
|
+
var statuses = [
|
|
66
|
+
{ key: "placed", label: "Placed" },
|
|
67
|
+
{ key: "paid", label: "Paid" },
|
|
68
|
+
{ key: "packed", label: "Packed" },
|
|
69
|
+
{ key: "shipped", label: "Shipped" },
|
|
70
|
+
{ key: "returned", label: "Returned", disabled: true }
|
|
71
|
+
];
|
|
72
|
+
var actions = [
|
|
73
|
+
{ type: "label", key: "order", label: "Order 1042" },
|
|
74
|
+
{ key: "edit", label: "Edit", shortcut: "E" },
|
|
75
|
+
{ key: "duplicate", label: "Duplicate", shortcut: "D" },
|
|
76
|
+
{ key: "archive", label: "Archive", disabled: true },
|
|
77
|
+
{ type: "separator", key: "end" },
|
|
78
|
+
{ key: "delete", label: "Delete", danger: true }
|
|
79
|
+
];
|
|
31
80
|
function withIds(demos) {
|
|
32
81
|
const out = {};
|
|
33
82
|
for (const [slug, states] of Object.entries(demos)) {
|
|
@@ -121,9 +170,122 @@ var UI_DEMOS = /* @__PURE__ */ withIds({
|
|
|
121
170
|
skeleton: {
|
|
122
171
|
paragraph: { lines: 3 },
|
|
123
172
|
avatar: { lines: 3, avatar: true }
|
|
173
|
+
},
|
|
174
|
+
surface: {
|
|
175
|
+
"frame-card": { frame: "card", content: "A surface takes the ground: its substrate, its ink and a hand-drawn frame." },
|
|
176
|
+
"tone-2": { frame: "box", tone: 2, content: "Tone is hatched, level by level." }
|
|
177
|
+
},
|
|
178
|
+
glyph: {
|
|
179
|
+
all: { glyphs: Object.keys(UI_GLYPHS) }
|
|
180
|
+
},
|
|
181
|
+
table: {
|
|
182
|
+
plain: { caption: "Orders", columns, data: orders, rowKey: "order" },
|
|
183
|
+
"sorted-striped": { caption: "Orders", columns, data: uiSortRows(orders, "amount", "desc"), rowKey: "order", sortKey: "amount", sortOrder: "desc", striped: true },
|
|
184
|
+
empty: { caption: "Returns", columns, data: [], rowKey: "order", emptyText: "No returns yet" }
|
|
185
|
+
},
|
|
186
|
+
pagination: {
|
|
187
|
+
middle: { total: 200, pageSize: 10, current: 10 },
|
|
188
|
+
total: { total: 48, pageSize: 10, current: 1, showTotal: true }
|
|
189
|
+
},
|
|
190
|
+
breadcrumb: {
|
|
191
|
+
three: {
|
|
192
|
+
items: [
|
|
193
|
+
{ key: "home", label: "Home", href: "/" },
|
|
194
|
+
{ key: "orders", label: "Orders", href: "/orders" },
|
|
195
|
+
{ key: "1042", label: "Order 1042" }
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
avatar: {
|
|
200
|
+
initials: { name: "Ada Lovelace" },
|
|
201
|
+
square: { name: "Grace Hopper", shape: "square" },
|
|
202
|
+
group: { label: "Reviewers", avatars: [{ name: "Ada Lovelace" }, { name: "Alan Turing" }, { name: "Emmy Noether", shape: "square" }] }
|
|
203
|
+
},
|
|
204
|
+
statistic: {
|
|
205
|
+
plain: { title: "Orders", value: 1284 },
|
|
206
|
+
"trend-down": { title: "Returns", value: "3.1", suffix: "%", trend: "down", delta: "\u22120.4%" }
|
|
207
|
+
},
|
|
208
|
+
descriptions: {
|
|
209
|
+
bordered: { title: "Order 1042", items: order, columns: 2 },
|
|
210
|
+
plain: { items: order, columns: 2, bordered: false }
|
|
211
|
+
},
|
|
212
|
+
"timeline-list": {
|
|
213
|
+
mixed: { label: "Order history", items: history }
|
|
214
|
+
},
|
|
215
|
+
collapse: {
|
|
216
|
+
"one-open": { items: faqs.map((faq, i) => i === 0 ? { ...faq, open: true } : faq) },
|
|
217
|
+
"accordion-disabled": { accordion: true, items: faqs.map((faq, i) => i === 2 ? { ...faq, disabled: true } : faq) }
|
|
218
|
+
},
|
|
219
|
+
empty: {
|
|
220
|
+
plain: { description: "No orders yet" }
|
|
221
|
+
},
|
|
222
|
+
result: {
|
|
223
|
+
success: { status: "success", title: "Order placed", subtitle: "Order 1042 is on its way to the workshop." },
|
|
224
|
+
error: { status: "error", title: "Payment failed", subtitle: "The card was declined; nothing was charged." }
|
|
225
|
+
},
|
|
226
|
+
textarea: {
|
|
227
|
+
count: { label: "Notes", name: "notes", value: "Leave it at the door.", maxLength: 120, showCount: true },
|
|
228
|
+
invalid: { label: "Notes", name: "notes", value: "", invalid: true, message: "Required: add a note" }
|
|
229
|
+
},
|
|
230
|
+
"input-number": {
|
|
231
|
+
value: { label: "Quantity", name: "quantity", value: 3, min: 1, max: 10 },
|
|
232
|
+
"at-min": { label: "Quantity", name: "quantity", value: 1, min: 1, max: 10 }
|
|
233
|
+
},
|
|
234
|
+
modal: {
|
|
235
|
+
open: { open: true, trigger: "Edit order", title: "Edit order", description: "Order 1042, placed on 14 October.", content: "Changes reach the workshop before the order is packed." }
|
|
236
|
+
},
|
|
237
|
+
drawer: {
|
|
238
|
+
"end-open": { open: true, side: "end", trigger: "Filters", title: "Filters", content: "Narrow the orders by status, customer or amount." }
|
|
239
|
+
},
|
|
240
|
+
popover: {
|
|
241
|
+
open: { open: true, trigger: "Details", title: "Order 1042", content: "Two prints, one framed; shipped on 16 October." }
|
|
242
|
+
},
|
|
243
|
+
tooltip: {
|
|
244
|
+
open: { open: true, trigger: "Copy id", text: "Copy the order id" }
|
|
245
|
+
},
|
|
246
|
+
select: {
|
|
247
|
+
placeholder: { label: "Status", name: "status", items: statuses, value: null },
|
|
248
|
+
"open-selected": { label: "Status", name: "status", items: statuses, value: "packed", open: true, active: "packed" }
|
|
249
|
+
},
|
|
250
|
+
"dropdown-menu": {
|
|
251
|
+
open: { label: "Actions", trigger: "Actions", items: actions, open: true, active: "edit" }
|
|
252
|
+
},
|
|
253
|
+
toast: {
|
|
254
|
+
info: { kind: "info", title: "Order saved", description: "Order 1042 was updated.", open: true },
|
|
255
|
+
"error-action": { kind: "error", title: "Payment failed", description: "The card was declined.", action: "Retry", open: true }
|
|
124
256
|
}
|
|
125
257
|
});
|
|
126
258
|
|
|
127
|
-
|
|
259
|
+
// src/ui/timeline-demo.ts
|
|
260
|
+
var event = (year, headline, text, id) => ({
|
|
261
|
+
start_date: { year },
|
|
262
|
+
text: { headline, text: `<p>${text}</p>` },
|
|
263
|
+
unique_id: id
|
|
264
|
+
});
|
|
265
|
+
var TIMELINE_DEMO = /* @__PURE__ */ deepFreeze({
|
|
266
|
+
title: {
|
|
267
|
+
text: {
|
|
268
|
+
headline: "Silverpoint",
|
|
269
|
+
text: "<p>Drawing with a silver stylus on a prepared ground: a line that cannot be erased, tone built from hatching, white heightening on the light.</p>"
|
|
270
|
+
},
|
|
271
|
+
unique_id: "title"
|
|
272
|
+
},
|
|
273
|
+
eras: [
|
|
274
|
+
{ start_date: { year: 1390 }, end_date: { year: 1500 }, text: { headline: "Workshop manuals" } },
|
|
275
|
+
{ start_date: { year: 1500 }, end_date: { year: 1600 }, text: { headline: "Renaissance studies" } }
|
|
276
|
+
],
|
|
277
|
+
events: [
|
|
278
|
+
event(1400, "Cennini's handbook", "Il libro dell'arte describes how to prepare a ground with bone ash.", "cennini"),
|
|
279
|
+
event(1435, "Van Eyck", "Portrait of Cardinal Albergati, a silverpoint study for the painting.", "van-eyck"),
|
|
280
|
+
event(1440, "Pisanello", "Studies from life, a metal stylus on tinted paper.", "pisanello"),
|
|
281
|
+
event(1478, "Leonardo", "Head studies in metalpoint on tinted grounds.", "leonardo"),
|
|
282
|
+
event(1484, "D\xFCrer at thirteen", "Self-portrait in silverpoint: no correction is possible.", "durer"),
|
|
283
|
+
event(1503, "Raphael", "Studies for the Madonnas, heightened with white.", "raphael"),
|
|
284
|
+
event(1527, "Holbein", "Portrait studies at the English court, metalpoint and chalk.", "holbein"),
|
|
285
|
+
event(1565, "Graphite", "Borrowdale graphite reaches the workshops; metalpoint fades.", "graphite")
|
|
286
|
+
]
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
export { TIMELINE_DEMO, UI_DEMOS };
|
|
128
290
|
//# sourceMappingURL=ui-demos.js.map
|
|
129
291
|
//# sourceMappingURL=ui-demos.js.map
|
package/dist/ui-demos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/demo.ts"],"names":[],"mappings":"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","file":"ui-demos.js","sourcesContent":["import type { StepItem, UiItem } from './types';\n\n/**\n * The props of one demo state: the component's own props (`Sp<Name>Props`), plus `value` for a\n * value component and `content` for the text it holds. Plain data; each adapter binds it.\n */\nexport type UiDemoProps = Readonly<Record<string, unknown> & { id: string }>;\n\n/** Demo states per component slug, in the catalog's order (Data Model §4). */\nexport type UiDemos = Readonly<Record<string, Readonly<Record<string, UiDemoProps>>>>;\n\nfunction deepFreeze<T>(value: T): T {\n if (value !== null && typeof value === 'object') {\n for (const inner of Object.values(value)) deepFreeze(inner);\n Object.freeze(value);\n }\n return value;\n}\n\nconst periods: UiItem[] = [\n { key: 'day', label: 'Day' },\n { key: 'week', label: 'Week' },\n { key: 'month', label: 'Month' },\n { key: 'year', label: 'Year' },\n];\nconst grounds: UiItem[] = [\n { key: 'silverpoint', label: 'silverpoint' },\n { key: 'cyanotype', label: 'cyanotype' },\n];\nconst tabs: UiItem[] = [\n { key: 'overview', label: 'Overview' },\n { key: 'traffic', label: 'Traffic' },\n { key: 'errors', label: 'Errors' },\n { key: 'settings', label: 'Settings' },\n];\nconst steps: StepItem[] = [\n { key: 'install', title: 'Install' },\n { key: 'import', title: 'Import' },\n { key: 'configure', title: 'Configure' },\n { key: 'publish', title: 'Publish' },\n];\n\n/** Every state's props, keyed `<slug>` → `<state>`; each carries its fixture id `<slug>--<state>`. */\nfunction withIds(demos: Record<string, Record<string, Record<string, unknown>>>): UiDemos {\n const out: Record<string, Record<string, UiDemoProps>> = {};\n for (const [slug, states] of Object.entries(demos)) {\n out[slug] = {};\n for (const [state, props] of Object.entries(states)) out[slug][state] = { id: `${slug}--${state}`, ...props };\n }\n return deepFreeze(out);\n}\n\n/**\n * The reference states of the 17 components, drawn from the concept for `0.3.0` (feature-002\n * `concept.png`): one per declared state of `UI_COMPONENTS` (45), shared by the fixtures, the\n * example apps' UI page and the documentation. Frozen (I-9). Cards hold text only (C-5).\n */\nexport const UI_DEMOS: UiDemos = /* @__PURE__ */ withIds({\n button: {\n default: { content: 'Default' },\n primary: { content: 'Primary', variant: 'primary' },\n danger: { content: 'Delete', variant: 'danger' },\n disabled: { content: 'Disabled', disabled: true },\n },\n input: {\n empty: { label: 'Search charts', placeholder: 'Search charts…', type: 'search', name: 'q', value: '' },\n filled: { label: 'City', name: 'city', value: 'Caracas' },\n invalid: { label: 'City', name: 'city', value: 'Caracas', invalid: true, message: 'Required: pick a city' },\n disabled: { label: 'City', name: 'city', value: 'Caracas', disabled: true },\n },\n checkbox: {\n unchecked: { label: 'Legend', name: 'legend', value: false },\n checked: { label: 'Baseline', name: 'baseline', value: true },\n indeterminate: { label: 'All series', name: 'all', value: false, indeterminate: true },\n disabled: { label: 'Baseline', name: 'baseline', value: true, disabled: true },\n },\n 'radio-group': {\n selected: { label: 'Ground', name: 'ground', items: grounds, value: 'silverpoint', orientation: 'horizontal' },\n 'disabled-item': {\n label: 'Ground',\n name: 'ground',\n items: [grounds[0], { ...grounds[1], disabled: true }],\n value: 'silverpoint',\n orientation: 'horizontal',\n },\n },\n switch: {\n off: { label: 'Linked hover', name: 'linked', value: false },\n on: { label: 'Precision', name: 'precision', value: true },\n disabled: { label: 'Precision', name: 'precision', value: true, disabled: true },\n },\n slider: {\n marks: { label: 'Volume', name: 'volume', value: 30, marks: [0, 25, 50, 75, 100] },\n disabled: { label: 'Volume', name: 'volume', value: 30, disabled: true },\n },\n rate: {\n three: { label: 'Quality', name: 'quality', value: 3, count: 5 },\n 'read-only': { label: 'Quality', name: 'quality', value: 3, count: 5, readOnly: true },\n },\n segmented: {\n first: { label: 'Period', name: 'period', items: periods, value: 'day' },\n middle: { label: 'Period', name: 'period', items: periods, value: 'week' },\n },\n tabs: {\n first: { label: 'Views', items: tabs, value: 'overview' },\n 'disabled-tab': { label: 'Views', items: tabs.map((t) => (t.key === 'settings' ? { ...t, disabled: true } : t)), value: 'traffic' },\n },\n steps: {\n current: { label: 'Release', items: steps, current: 2 },\n error: { label: 'Release', items: steps.map((s) => (s.key === 'configure' ? { ...s, status: 'error' } : s)), current: 2 },\n },\n card: {\n plain: { content: 'Hits per hour rose through the afternoon and eased at night.' },\n titled: { title: 'Revenue', extra: 'Q3', content: '128 thousands, up 6.4 on the quarter.' },\n },\n tag: {\n 'tone-1': { content: 'draft', tone: 1 },\n closable: { content: 'review', tone: 3, closable: true },\n },\n badge: {\n count: { content: 'Inbox', count: 12 },\n dot: { content: 'Alerts', dot: true },\n overflow: { content: 'Mentions', count: 120, max: 99 },\n },\n divider: {\n plain: {},\n text: { text: 'or' },\n },\n progress: {\n line: { label: 'Upload', value: 40 },\n circle: { label: 'Coverage', value: 72, shape: 'circle' },\n indeterminate: { label: 'Loading' },\n },\n alert: {\n info: { kind: 'info', title: 'New ground available', content: 'cyanotype ships in 0.2.0.' },\n success: { kind: 'success', title: 'Published', content: 'Every package reached npm.' },\n warning: { kind: 'warning', title: 'Contrast check', content: 'One ink is close to 4.5:1 on ochre.' },\n error: { kind: 'error', title: 'Build failed', content: 'ui.css is over its 24 KB budget.' },\n },\n skeleton: {\n paragraph: { lines: 3 },\n avatar: { lines: 3, avatar: true },\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/demo.ts","../src/ui/timeline-demo.ts"],"names":[],"mappings":"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","file":"ui-demos.js","sourcesContent":["import { uiSortRows } from './sort';\nimport type { DescriptionItem, MenuEntry, StepItem, TableColumn, TimelineListItem, UiItem } from './types';\nimport { UI_GLYPHS } from './view-kit';\n\n/**\n * The props of one demo state: the component's own props (`Sp<Name>Props`), plus `value` for a\n * value component and `content` for the text it holds. Plain data; each adapter binds it.\n */\nexport type UiDemoProps = Readonly<Record<string, unknown> & { id: string }>;\n\n/** Demo states per component slug, in the catalog's order (Data Model §4). */\nexport type UiDemos = Readonly<Record<string, Readonly<Record<string, UiDemoProps>>>>;\n\n/** Freezes a demo and everything in it (I-9). */\nexport function deepFreeze<T>(value: T): T {\n if (value !== null && typeof value === 'object') {\n for (const inner of Object.values(value)) deepFreeze(inner);\n Object.freeze(value);\n }\n return value;\n}\n\nconst periods: UiItem[] = [\n { key: 'day', label: 'Day' },\n { key: 'week', label: 'Week' },\n { key: 'month', label: 'Month' },\n { key: 'year', label: 'Year' },\n];\nconst grounds: UiItem[] = [\n { key: 'silverpoint', label: 'silverpoint' },\n { key: 'cyanotype', label: 'cyanotype' },\n];\nconst tabs: UiItem[] = [\n { key: 'overview', label: 'Overview' },\n { key: 'traffic', label: 'Traffic' },\n { key: 'errors', label: 'Errors' },\n { key: 'settings', label: 'Settings' },\n];\nconst steps: StepItem[] = [\n { key: 'install', title: 'Install' },\n { key: 'import', title: 'Import' },\n { key: 'configure', title: 'Configure' },\n { key: 'publish', title: 'Publish' },\n];\n\n// feature-004 (Data Model delta §4): the composed page's orders, as Reflex 0.7's `/components`.\nconst columns: TableColumn[] = [\n { key: 'order', title: 'Order' },\n { key: 'customer', title: 'Customer', sortable: true },\n { key: 'status', title: 'Status' },\n { key: 'amount', title: 'Amount', align: 'end', sortable: true },\n];\nconst orders = [\n { order: '1042', customer: 'Ada Lovelace', status: 'Shipped', amount: 128 },\n { order: '1043', customer: 'Grace Hopper', status: 'Packed', amount: 64.5 },\n { order: '1044', customer: 'Alan Turing', status: 'Paid', amount: 312 },\n { order: '1045', customer: 'Emmy Noether', status: 'Placed', amount: 18.25 },\n { order: '1046', customer: 'Kurt Gödel', status: 'Shipped', amount: 96 },\n];\nconst order: DescriptionItem[] = [\n { key: 'customer', label: 'Customer', value: 'Ada Lovelace' },\n { key: 'status', label: 'Status', value: 'Shipped' },\n { key: 'amount', label: 'Amount', value: '128.00' },\n { key: 'placed', label: 'Placed', value: '14 October 2026' },\n];\nconst history: TimelineListItem[] = [\n { key: 'placed', title: 'Placed', time: '14 Oct, 09:12', description: 'Two prints, one framed.' },\n { key: 'paid', title: 'Payment', time: '14 Oct, 09:14', description: 'Card declined; paid on the second try.', status: 'error' },\n { key: 'packed', title: 'Packed', time: '15 Oct, 16:40', status: 'current' },\n { key: 'shipped', title: 'Shipped', status: 'pending' },\n];\nconst faqs = [\n { key: 'ground', title: 'What is a ground?', content: 'The prepared surface a metal stylus can mark: bone ash, gum and a little pigment.' },\n { key: 'erase', title: 'Can a line be erased?', content: 'No. Every line stays, so the drawing is planned before it is drawn.' },\n { key: 'tone', title: 'Where does the tone come from?', content: 'From hatching, level by level, never from transparency.' },\n];\nconst statuses: UiItem[] = [\n { key: 'placed', label: 'Placed' },\n { key: 'paid', label: 'Paid' },\n { key: 'packed', label: 'Packed' },\n { key: 'shipped', label: 'Shipped' },\n { key: 'returned', label: 'Returned', disabled: true },\n];\nconst actions: MenuEntry[] = [\n { type: 'label', key: 'order', label: 'Order 1042' },\n { key: 'edit', label: 'Edit', shortcut: 'E' },\n { key: 'duplicate', label: 'Duplicate', shortcut: 'D' },\n { key: 'archive', label: 'Archive', disabled: true },\n { type: 'separator', key: 'end' },\n { key: 'delete', label: 'Delete', danger: true },\n];\n\n/** Every state's props, keyed `<slug>` → `<state>`; each carries its fixture id `<slug>--<state>`. */\nfunction withIds(demos: Record<string, Record<string, Record<string, unknown>>>): UiDemos {\n const out: Record<string, Record<string, UiDemoProps>> = {};\n for (const [slug, states] of Object.entries(demos)) {\n out[slug] = {};\n for (const [state, props] of Object.entries(states)) out[slug][state] = { id: `${slug}--${state}`, ...props };\n }\n return deepFreeze(out);\n}\n\n/**\n * The reference states of the 17 components, drawn from the concept for `0.3.0` (feature-002\n * `concept.png`), then of the 21 of feature-004: one per declared state of `UI_COMPONENTS` (45 +\n * 35), shared by the fixtures, the example apps' pages and the documentation. Frozen (I-9). Cards\n * hold text only (C-5). Overlays are demoed open, with `trigger` the text of their trigger button.\n */\nexport const UI_DEMOS: UiDemos = /* @__PURE__ */ withIds({\n button: {\n default: { content: 'Default' },\n primary: { content: 'Primary', variant: 'primary' },\n danger: { content: 'Delete', variant: 'danger' },\n disabled: { content: 'Disabled', disabled: true },\n },\n input: {\n empty: { label: 'Search charts', placeholder: 'Search charts…', type: 'search', name: 'q', value: '' },\n filled: { label: 'City', name: 'city', value: 'Caracas' },\n invalid: { label: 'City', name: 'city', value: 'Caracas', invalid: true, message: 'Required: pick a city' },\n disabled: { label: 'City', name: 'city', value: 'Caracas', disabled: true },\n },\n checkbox: {\n unchecked: { label: 'Legend', name: 'legend', value: false },\n checked: { label: 'Baseline', name: 'baseline', value: true },\n indeterminate: { label: 'All series', name: 'all', value: false, indeterminate: true },\n disabled: { label: 'Baseline', name: 'baseline', value: true, disabled: true },\n },\n 'radio-group': {\n selected: { label: 'Ground', name: 'ground', items: grounds, value: 'silverpoint', orientation: 'horizontal' },\n 'disabled-item': {\n label: 'Ground',\n name: 'ground',\n items: [grounds[0], { ...grounds[1], disabled: true }],\n value: 'silverpoint',\n orientation: 'horizontal',\n },\n },\n switch: {\n off: { label: 'Linked hover', name: 'linked', value: false },\n on: { label: 'Precision', name: 'precision', value: true },\n disabled: { label: 'Precision', name: 'precision', value: true, disabled: true },\n },\n slider: {\n marks: { label: 'Volume', name: 'volume', value: 30, marks: [0, 25, 50, 75, 100] },\n disabled: { label: 'Volume', name: 'volume', value: 30, disabled: true },\n },\n rate: {\n three: { label: 'Quality', name: 'quality', value: 3, count: 5 },\n 'read-only': { label: 'Quality', name: 'quality', value: 3, count: 5, readOnly: true },\n },\n segmented: {\n first: { label: 'Period', name: 'period', items: periods, value: 'day' },\n middle: { label: 'Period', name: 'period', items: periods, value: 'week' },\n },\n tabs: {\n first: { label: 'Views', items: tabs, value: 'overview' },\n 'disabled-tab': { label: 'Views', items: tabs.map((t) => (t.key === 'settings' ? { ...t, disabled: true } : t)), value: 'traffic' },\n },\n steps: {\n current: { label: 'Release', items: steps, current: 2 },\n error: { label: 'Release', items: steps.map((s) => (s.key === 'configure' ? { ...s, status: 'error' } : s)), current: 2 },\n },\n card: {\n plain: { content: 'Hits per hour rose through the afternoon and eased at night.' },\n titled: { title: 'Revenue', extra: 'Q3', content: '128 thousands, up 6.4 on the quarter.' },\n },\n tag: {\n 'tone-1': { content: 'draft', tone: 1 },\n closable: { content: 'review', tone: 3, closable: true },\n },\n badge: {\n count: { content: 'Inbox', count: 12 },\n dot: { content: 'Alerts', dot: true },\n overflow: { content: 'Mentions', count: 120, max: 99 },\n },\n divider: {\n plain: {},\n text: { text: 'or' },\n },\n progress: {\n line: { label: 'Upload', value: 40 },\n circle: { label: 'Coverage', value: 72, shape: 'circle' },\n indeterminate: { label: 'Loading' },\n },\n alert: {\n info: { kind: 'info', title: 'New ground available', content: 'cyanotype ships in 0.2.0.' },\n success: { kind: 'success', title: 'Published', content: 'Every package reached npm.' },\n warning: { kind: 'warning', title: 'Contrast check', content: 'One ink is close to 4.5:1 on ochre.' },\n error: { kind: 'error', title: 'Build failed', content: 'ui.css is over its 24 KB budget.' },\n },\n skeleton: {\n paragraph: { lines: 3 },\n avatar: { lines: 3, avatar: true },\n },\n surface: {\n 'frame-card': { frame: 'card', content: 'A surface takes the ground: its substrate, its ink and a hand-drawn frame.' },\n 'tone-2': { frame: 'box', tone: 2, content: 'Tone is hatched, level by level.' },\n },\n glyph: {\n all: { glyphs: Object.keys(UI_GLYPHS) },\n },\n table: {\n plain: { caption: 'Orders', columns, data: orders, rowKey: 'order' },\n 'sorted-striped': { caption: 'Orders', columns, data: uiSortRows(orders, 'amount', 'desc'), rowKey: 'order', sortKey: 'amount', sortOrder: 'desc', striped: true },\n empty: { caption: 'Returns', columns, data: [], rowKey: 'order', emptyText: 'No returns yet' },\n },\n pagination: {\n middle: { total: 200, pageSize: 10, current: 10 },\n total: { total: 48, pageSize: 10, current: 1, showTotal: true },\n },\n breadcrumb: {\n three: {\n items: [\n { key: 'home', label: 'Home', href: '/' },\n { key: 'orders', label: 'Orders', href: '/orders' },\n { key: '1042', label: 'Order 1042' },\n ],\n },\n },\n avatar: {\n initials: { name: 'Ada Lovelace' },\n square: { name: 'Grace Hopper', shape: 'square' },\n group: { label: 'Reviewers', avatars: [{ name: 'Ada Lovelace' }, { name: 'Alan Turing' }, { name: 'Emmy Noether', shape: 'square' }] },\n },\n statistic: {\n plain: { title: 'Orders', value: 1284 },\n 'trend-down': { title: 'Returns', value: '3.1', suffix: '%', trend: 'down', delta: '−0.4%' },\n },\n descriptions: {\n bordered: { title: 'Order 1042', items: order, columns: 2 },\n plain: { items: order, columns: 2, bordered: false },\n },\n 'timeline-list': {\n mixed: { label: 'Order history', items: history },\n },\n collapse: {\n 'one-open': { items: faqs.map((faq, i) => (i === 0 ? { ...faq, open: true } : faq)) },\n 'accordion-disabled': { accordion: true, items: faqs.map((faq, i) => (i === 2 ? { ...faq, disabled: true } : faq)) },\n },\n empty: {\n plain: { description: 'No orders yet' },\n },\n result: {\n success: { status: 'success', title: 'Order placed', subtitle: 'Order 1042 is on its way to the workshop.' },\n error: { status: 'error', title: 'Payment failed', subtitle: 'The card was declined; nothing was charged.' },\n },\n textarea: {\n count: { label: 'Notes', name: 'notes', value: 'Leave it at the door.', maxLength: 120, showCount: true },\n invalid: { label: 'Notes', name: 'notes', value: '', invalid: true, message: 'Required: add a note' },\n },\n 'input-number': {\n value: { label: 'Quantity', name: 'quantity', value: 3, min: 1, max: 10 },\n 'at-min': { label: 'Quantity', name: 'quantity', value: 1, min: 1, max: 10 },\n },\n modal: {\n open: { open: true, trigger: 'Edit order', title: 'Edit order', description: 'Order 1042, placed on 14 October.', content: 'Changes reach the workshop before the order is packed.' },\n },\n drawer: {\n 'end-open': { open: true, side: 'end', trigger: 'Filters', title: 'Filters', content: 'Narrow the orders by status, customer or amount.' },\n },\n popover: {\n open: { open: true, trigger: 'Details', title: 'Order 1042', content: 'Two prints, one framed; shipped on 16 October.' },\n },\n tooltip: {\n open: { open: true, trigger: 'Copy id', text: 'Copy the order id' },\n },\n select: {\n placeholder: { label: 'Status', name: 'status', items: statuses, value: null },\n 'open-selected': { label: 'Status', name: 'status', items: statuses, value: 'packed', open: true, active: 'packed' },\n },\n 'dropdown-menu': {\n open: { label: 'Actions', trigger: 'Actions', items: actions, open: true, active: 'edit' },\n },\n toast: {\n info: { kind: 'info', title: 'Order saved', description: 'Order 1042 was updated.', open: true },\n 'error-action': { kind: 'error', title: 'Payment failed', description: 'The card was declined.', action: 'Retry', open: true },\n },\n});\n","import type { TimelineData, TimelineSlide } from '../timeline/types';\nimport { deepFreeze } from './demo';\n\nconst event = (year: number, headline: string, text: string, id: string): TimelineSlide => ({\n start_date: { year },\n text: { headline, text: `<p>${text}</p>` },\n unique_id: id,\n});\n\n/**\n * The timeline page's data (Data Model delta §4): the life of a silverpoint drawing in TimelineJS\n * JSON, eight events and two eras, no external media. Deep-frozen (I-9).\n */\nexport const TIMELINE_DEMO: TimelineData = /* @__PURE__ */ deepFreeze({\n title: {\n text: {\n headline: 'Silverpoint',\n text: '<p>Drawing with a silver stylus on a prepared ground: a line that cannot be erased, tone built from hatching, white heightening on the light.</p>',\n },\n unique_id: 'title',\n },\n eras: [\n { start_date: { year: 1390 }, end_date: { year: 1500 }, text: { headline: 'Workshop manuals' } },\n { start_date: { year: 1500 }, end_date: { year: 1600 }, text: { headline: 'Renaissance studies' } },\n ],\n events: [\n event(1400, \"Cennini's handbook\", \"Il libro dell'arte describes how to prepare a ground with bone ash.\", 'cennini'),\n event(1435, 'Van Eyck', 'Portrait of Cardinal Albergati, a silverpoint study for the painting.', 'van-eyck'),\n event(1440, 'Pisanello', 'Studies from life, a metal stylus on tinted paper.', 'pisanello'),\n event(1478, 'Leonardo', 'Head studies in metalpoint on tinted grounds.', 'leonardo'),\n event(1484, 'Dürer at thirteen', 'Self-portrait in silverpoint: no correction is possible.', 'durer'),\n event(1503, 'Raphael', 'Studies for the Madonnas, heightened with white.', 'raphael'),\n event(1527, 'Holbein', 'Portrait studies at the English court, metalpoint and chalk.', 'holbein'),\n event(1565, 'Graphite', 'Borrowdale graphite reaches the workshops; metalpoint fades.', 'graphite'),\n ],\n});\n"]}
|