@graview/primitives 0.1.9 → 0.1.10

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 (57) hide show
  1. package/dist/declared-lens-doors.d.ts +18 -0
  2. package/dist/declared-lens-doors.d.ts.map +1 -0
  3. package/dist/declared-lens-doors.js +73 -0
  4. package/dist/declared-lens-doors.js.map +1 -0
  5. package/dist/declared-lenses.d.ts +6 -0
  6. package/dist/declared-lenses.d.ts.map +1 -0
  7. package/dist/declared-lenses.js +83 -0
  8. package/dist/declared-lenses.js.map +1 -0
  9. package/dist/declared-views.d.ts +11 -0
  10. package/dist/declared-views.d.ts.map +1 -0
  11. package/dist/declared-views.js +15 -0
  12. package/dist/declared-views.js.map +1 -0
  13. package/dist/default-views.d.ts.map +1 -1
  14. package/dist/default-views.js +5 -1
  15. package/dist/default-views.js.map +1 -1
  16. package/dist/frame.d.ts +1 -0
  17. package/dist/frame.d.ts.map +1 -1
  18. package/dist/frame.js +1 -0
  19. package/dist/frame.js.map +1 -1
  20. package/dist/home-landing.d.ts +18 -0
  21. package/dist/home-landing.d.ts.map +1 -0
  22. package/dist/home-landing.js +59 -0
  23. package/dist/home-landing.js.map +1 -0
  24. package/dist/home-view.d.ts +4 -0
  25. package/dist/home-view.d.ts.map +1 -0
  26. package/dist/home-view.js +19 -0
  27. package/dist/home-view.js.map +1 -0
  28. package/dist/index.d.ts +5 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +5 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/pages.d.ts +2 -0
  33. package/dist/pages.d.ts.map +1 -1
  34. package/dist/pages.js +3 -0
  35. package/dist/pages.js.map +1 -1
  36. package/dist/scene.d.ts +21 -0
  37. package/dist/scene.d.ts.map +1 -0
  38. package/dist/scene.js +20 -0
  39. package/dist/scene.js.map +1 -0
  40. package/dist/seeding.d.ts +0 -8
  41. package/dist/seeding.d.ts.map +1 -1
  42. package/dist/seeding.js +50 -16
  43. package/dist/seeding.js.map +1 -1
  44. package/dist/shell.d.ts.map +1 -1
  45. package/dist/shell.js +2 -1
  46. package/dist/shell.js.map +1 -1
  47. package/dist/spec-css.d.ts.map +1 -1
  48. package/dist/spec-css.js +24 -0
  49. package/dist/spec-css.js.map +1 -1
  50. package/dist/spec-views.d.ts +32 -58
  51. package/dist/spec-views.d.ts.map +1 -1
  52. package/dist/spec-views.js +130 -195
  53. package/dist/spec-views.js.map +1 -1
  54. package/dist/workbench/activity.d.ts.map +1 -1
  55. package/dist/workbench/activity.js +3 -3
  56. package/dist/workbench/activity.js.map +1 -1
  57. package/package.json +10 -6
@@ -1,69 +1,43 @@
1
- import { valueWords, type AnyGraphNode, type AnySchema, type GraphReader } from "@graview/core";
2
- import { VIEW_FIELD_FORMATS, type Expr, type FieldSpec, type KindShape, type TemplatePart, type ViewBlock, type ViewSlot, type ViewSpecsByKind, type ViewTone } from "@graview/core/document";
1
+ import { type AnyGraphNode, type AnySchema } from "@graview/core";
2
+ import { type BlockContext, type SpecBlock, type ViewSlot, type ViewSpecsByKind } from "@graview/core/document";
3
3
  import { type ReactViewRegistry } from "@graview/react/provider";
4
- import type { ReactNode } from "react";
4
+ import { type ReactNode } from "react";
5
5
  export { SPEC_VIEW_CSS } from "./spec-css.js";
6
- type Parsed<T> = T | null;
7
- type Tone = ViewTone | {
8
- readonly expr: Parsed<Expr>;
9
- };
10
- /** A block, parsed: templates and expressions are read once, when the spec is registered. */
11
- export type SpecBlock = {
12
- readonly t: "title";
13
- readonly parts: Parsed<readonly TemplatePart[]>;
14
- } | {
15
- readonly t: "text" | "badge";
16
- readonly parts: Parsed<readonly TemplatePart[]>;
17
- readonly tone?: Tone;
18
- } | {
19
- readonly t: "field";
20
- readonly field: string;
21
- readonly as?: (typeof VIEW_FIELD_FORMATS)[number];
22
- readonly label?: string;
23
- } | {
24
- readonly t: "progress";
25
- readonly value: Parsed<Expr>;
26
- readonly max: Parsed<Expr>;
27
- readonly label?: string;
28
- } | {
29
- readonly t: "group";
30
- readonly blocks: readonly SpecBlock[];
31
- readonly direction: "row" | "column";
32
- } | {
33
- readonly t: "when";
34
- readonly when: Parsed<Expr>;
35
- readonly show: readonly SpecBlock[];
36
- } | {
37
- readonly t: "divider";
38
- } | {
39
- readonly t: "figure";
40
- };
41
- /**
42
- * Parse a spec's blocks. A spec `graview check` passed parses cleanly; a
43
- * part that does not is drawn as "—", and a block outside the vocabulary is
44
- * not drawn at all.
45
- */
46
- export declare function compileBlocks(blocks: readonly ViewBlock[] | readonly unknown[], depth?: number): readonly SpecBlock[];
47
- /** Everything a spec reads to draw one record: nothing else reaches it. */
48
- export interface SpecContext {
49
- readonly node: AnyGraphNode;
50
- /** For one-edge hops (`{fills.name}`); without it, a hop draws "—". */
51
- readonly graph?: GraphReader;
52
- readonly kinds: ReadonlyMap<string, KindShape>;
53
- /** The kind's declared fields, in the document's words: which may be a link, which is a date. */
54
- readonly fields: Readonly<Record<string, FieldSpec>>;
55
- /** How the declaration says a field and its values (`display.labels`, `display.format`). */
56
- readonly definition?: Parameters<typeof valueWords>[0];
57
- readonly today: string;
6
+ export { compileBlocks, safeHref, sayNumber, type SpecBlock } from "@graview/core/document";
7
+ /** Everything a spec reads to draw one record: what core resolves from, and the kind's picture. */
8
+ export interface SpecContext extends BlockContext {
58
9
  readonly figure?: () => ReactNode;
59
10
  }
60
- /** Only http(s) is ever a link; anything else — `javascript:`, `data:`, a typo — is shown as words. */
61
- export declare function safeHref(value: unknown): string | undefined;
62
- /** Blocks, drawn for one record. Pure: everything they read is in `ctx`. */
11
+ /** Blocks, drawn for one record — or for none. Pure: everything they read is in `ctx`. */
63
12
  export declare function SpecBlocks({ blocks, ctx }: {
64
13
  readonly blocks: readonly SpecBlock[];
65
14
  readonly ctx: SpecContext;
66
15
  }): ReactNode;
16
+ /**
17
+ * HOW DEEP LISTS NEST. A card that lists related records draws each with
18
+ * its own card, which may list its own — and a relation that comes back
19
+ * round (a package's offers' packages' offers…) would draw for ever. Past
20
+ * this depth a list says its records' names, each a link, and draws no
21
+ * view of them; every expression keeps its own step budget besides.
22
+ */
23
+ export declare const MAX_LIST_DEPTH = 3;
24
+ /**
25
+ * WHERE A LISTED RECORD LEADS. The routed face hands an address and a way
26
+ * to go there; with none — the scene — a record is a `data-graview-pick`
27
+ * target, which the scene routes to that record as it does every view's.
28
+ */
29
+ export interface SpecLinkTo {
30
+ readonly href: (node: AnyGraphNode) => string;
31
+ readonly go: (node: AnyGraphNode) => void;
32
+ }
33
+ export declare const SpecLinks: import("react").Context<SpecLinkTo | null>;
34
+ /** Blocks about no one record — the home's body, a blocks lens — drawn under the provider, from the graph its seat may see. */
35
+ export declare function SpecPlace({ blocks, heading, firstHeading, slot }: {
36
+ readonly blocks: readonly SpecBlock[];
37
+ readonly heading?: number;
38
+ readonly firstHeading?: number;
39
+ readonly slot: "home" | "place";
40
+ }): import("react").JSX.Element;
67
41
  /** The drawing context for a record, from the provider every view is drawn under. */
68
42
  export declare function useSpecContext(node: AnyGraphNode): SpecContext;
69
43
  /** One slot of a spec, drawn for one record. */
@@ -1 +1 @@
1
- {"version":3,"file":"spec-views.d.ts","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-views.d.ts","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,SAAS,EAAoB,MAAM,eAAe,CAAC;AAC7F,OAAO,EAML,KAAK,YAAY,EAKjB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA0C,KAAK,iBAAiB,EAAsC,MAAM,yBAAyB,CAAC;AAC7I,OAAO,EAA8C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA+BnF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE5F,mGAAmG;AACnG,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,SAAS,CAAC;CACnC;AAkGD,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAG3H;AAID;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAGhC;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C;AACD,eAAO,MAAM,SAAS,4CAAyC,CAAC;AAmGhE,+HAA+H;AAC/H,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,OAAW,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,+BAmB3M;AAuBD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAc9D;AAED,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BActL;AA0BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CA8B1J"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { fieldWords, labelOf, valueWords } from "@graview/core";
3
- import { evaluateExpr, fieldSpecOf, formatValue, parseExpr, parseTemplate, renderTemplate, shapesOfSchema, VIEW_FIELD_FORMATS, VIEW_TONES, } from "@graview/core/document";
4
- import { useGraview } from "@graview/react/provider";
2
+ import { labelOf } from "@graview/core";
3
+ import { compileBlocks, fieldSpecsOf, isTallBlock, resolveBlocks, shapesOfSchema, } from "@graview/core/document";
4
+ import { useGraph, useGraview, ViewModeProvider } from "@graview/react/provider";
5
+ import { createContext, useContext } from "react";
5
6
  import { DefaultView } from "./default-view.js";
6
7
  import { KindFigure } from "./figure.js";
7
8
  import { Panel } from "./primitives/index.js";
@@ -9,10 +10,10 @@ import { Panel } from "./primitives/index.js";
9
10
  * VIEWS AS DATA, DRAWN (FR-03).
10
11
  *
11
12
  * A view spec is a short list of blocks from a closed set — title, text,
12
- * badge, field, progress, group, when, divider, figure — bound to the
13
- * record by templates and conditions in the rule language. This draws them
14
- * into the framework's own view matrix, so the workbench and the pages face
15
- * resolve a spec exactly as they resolve a component:
13
+ * badge, field, progress, group, when, divider, figure, headline, list —
14
+ * bound to the record by templates and conditions in the rule language.
15
+ * This draws them into the framework's own view matrix, so the workbench
16
+ * and the pages face resolve a spec exactly as they resolve a component:
16
17
  *
17
18
  * card → one × summary the card a record stands as beside the focus, and
18
19
  * a card of the pages face's gallery
@@ -22,196 +23,137 @@ import { Panel } from "./primitives/index.js";
22
23
  * rename, fields and connections; on the pages
23
24
  * face, above the derived record page
24
25
  *
25
- * NOTHING HERE IS CODE. A block's words come from templates and the rule
26
- * language, evaluated under a step budget; nothing is parsed as markup,
27
- * nothing is evaluated as script, and the only styling is a fixed set of
28
- * classes over the theme's own tokens. The one link a view draws is a `url`
29
- * field's own value, and only when it is http(s). An expression that cannot
30
- * be judged draws "—"; a `when` that cannot be judged hides what it guards.
26
+ * WHAT A BLOCK SAYS IS WORKED OUT IN CORE (`resolveBlocks`, FR-89) — the
27
+ * same reading `describePlace` says in words — and only drawn here: a
28
+ * resolved block becomes elements, a resolved list's records become their
29
+ * own cards and rows. Nothing is parsed as markup, nothing is evaluated as
30
+ * script, and the only styling is a fixed set of classes over the theme's
31
+ * own tokens. The one link a view draws is a `url` field's own value, and
32
+ * only when it is http(s).
31
33
  */
32
34
  export { SPEC_VIEW_CSS } from "./spec-css.js";
33
- const safely = (f) => {
34
- try {
35
- return f();
36
- }
37
- catch {
38
- return null;
39
- }
40
- };
41
- const isTone = (value) => typeof value === "string" && VIEW_TONES.includes(value);
42
- function toneOf(tone) {
43
- if (tone === undefined)
44
- return undefined;
45
- if (isTone(tone))
46
- return tone;
47
- if (tone && typeof tone === "object" && typeof tone.expr === "string")
48
- return { expr: safely(() => parseExpr(tone.expr)) };
49
- // A tone outside the kit is the check's to refuse; drawn, it is quiet.
50
- return "neutral";
51
- }
52
- const MAX_DEPTH = 4;
53
- /**
54
- * Parse a spec's blocks. A spec `graview check` passed parses cleanly; a
55
- * part that does not is drawn as "—", and a block outside the vocabulary is
56
- * not drawn at all.
57
- */
58
- export function compileBlocks(blocks, depth = 1) {
59
- if (!Array.isArray(blocks) || depth > MAX_DEPTH)
60
- return [];
61
- return blocks.flatMap((raw) => {
62
- if (!raw || typeof raw !== "object" || Array.isArray(raw))
63
- return [];
64
- const block = raw;
65
- const template = (source) => (typeof source === "string" ? safely(() => parseTemplate(source)) : null);
66
- const expr = (source) => (typeof source === "string" ? safely(() => parseExpr(source)) : null);
67
- const tone = toneOf(block["tone"]);
68
- const label = typeof block["label"] === "string" ? block["label"] : undefined;
69
- const has = (key) => Object.prototype.hasOwnProperty.call(block, key);
70
- if (has("title"))
71
- return [{ t: "title", parts: template(block["title"]) }];
72
- if (has("text"))
73
- return [{ t: "text", parts: template(block["text"]), ...(tone ? { tone } : {}) }];
74
- if (has("badge"))
75
- return [{ t: "badge", parts: template(block["badge"]), ...(tone ? { tone } : {}) }];
76
- if (has("field")) {
77
- const as = VIEW_FIELD_FORMATS.includes(block["as"]) ? block["as"] : undefined;
78
- return [{ t: "field", field: String(block["field"]), ...(as ? { as } : {}), ...(label ? { label } : {}) }];
79
- }
80
- if (has("progress")) {
81
- const p = (block["progress"] ?? {});
82
- return [{ t: "progress", value: expr(p.value), max: expr(p.max), ...(label ? { label } : {}) }];
83
- }
84
- if (has("group"))
85
- return [{ t: "group", blocks: compileBlocks(block["group"], depth + 1), direction: block["direction"] === "row" ? "row" : "column" }];
86
- if (has("when"))
87
- return [{ t: "when", when: expr(block["when"]), show: compileBlocks(block["show"], depth + 1) }];
88
- if (has("divider"))
89
- return [{ t: "divider" }];
90
- if (has("figure"))
91
- return [{ t: "figure" }];
92
- return [];
93
- });
94
- }
95
- const NOTHING = "—";
96
- const FAILED = Symbol("failed");
97
- /** The allowance a label's template gets: a card is drawn many times a frame. */
98
- const BUDGET = 500;
99
- const EMPTY_GRAPH = {
100
- getNode: () => undefined,
101
- allNodes: () => [],
102
- allEdges: () => [],
103
- nodesOfKind: () => [],
104
- edgesOfKind: () => [],
105
- out: () => [],
106
- in: () => [],
107
- neighbors: () => [],
108
- has: () => false,
109
- };
110
- function judge(expr, ctx) {
111
- if (!expr)
112
- return FAILED;
113
- try {
114
- return evaluateExpr(expr, { graph: ctx.graph ?? EMPTY_GRAPH, subject: ctx.node, kinds: ctx.kinds, today: ctx.today, budget: BUDGET });
115
- }
116
- catch {
117
- return FAILED;
118
- }
119
- }
120
- function words(parts, ctx) {
121
- if (!parts)
122
- return NOTHING;
123
- try {
124
- return renderTemplate(parts, { node: ctx.node, kinds: ctx.kinds, today: ctx.today, ...(ctx.graph ? { graph: ctx.graph } : {}) });
125
- }
126
- catch {
127
- return NOTHING;
128
- }
129
- }
130
- function toneWord(tone, ctx) {
131
- if (tone === undefined)
132
- return undefined;
133
- if (typeof tone === "string")
134
- return tone;
135
- const value = judge(tone.expr, ctx);
136
- return isTone(value) ? value : "neutral";
137
- }
138
- /** Only http(s) is ever a link; anything else — `javascript:`, `data:`, a typo — is shown as words. */
139
- export function safeHref(value) {
140
- if (typeof value !== "string")
141
- return undefined;
142
- try {
143
- const url = new URL(value);
144
- return url.protocol === "http:" || url.protocol === "https:" ? url.href : undefined;
145
- }
146
- catch {
147
- return undefined;
148
- }
149
- }
150
- function fieldText(key, value, ctx, as) {
151
- if (value === null || value === undefined || value === "")
152
- return NOTHING;
153
- if (typeof value === "boolean")
154
- return value ? "yes" : "no";
155
- if (as)
156
- return formatValue(value, as, ctx.today);
157
- const spec = ctx.fields[key];
158
- if (ctx.definition?.display?.format?.[key])
159
- return valueWords(ctx.definition, key, value);
160
- if (spec?.type === "date")
161
- return formatValue(value, "date", ctx.today);
162
- if (spec?.type === "enum" && typeof value === "string")
163
- return valueWords(ctx.definition, key, value);
164
- if (typeof value === "number")
165
- return value.toLocaleString("en-US");
166
- if (Array.isArray(value))
167
- return value.map((one) => String(one)).join(", ");
168
- if (typeof value === "object")
169
- return NOTHING;
170
- return String(value);
171
- }
172
- function Block({ block, ctx }) {
35
+ export { compileBlocks, safeHref, sayNumber } from "@graview/core/document";
36
+ function Resolved({ block }) {
173
37
  switch (block.t) {
174
38
  case "title":
175
- return _jsx("strong", { className: "graview-spec-title", children: words(block.parts, ctx) });
176
- case "text": {
177
- const tone = toneWord(block.tone, ctx);
178
- return (_jsx("p", { className: "graview-spec-text", ...(tone ? { "data-graview-tone": tone } : {}), children: words(block.parts, ctx) }));
179
- }
39
+ return _jsx("strong", { className: "graview-spec-title", children: block.text });
40
+ case "text":
41
+ return (_jsx("p", { className: "graview-spec-text", ...(block.tone ? { "data-graview-tone": block.tone } : {}), children: block.text }));
180
42
  case "badge":
181
- return (_jsx("span", { className: "graview-spec-badge", "data-graview-tone": toneWord(block.tone, ctx) ?? "neutral", children: words(block.parts, ctx) }));
182
- case "field": {
183
- // An OWN field only: a name on the prototype is not a field of the record.
184
- const raw = Object.prototype.hasOwnProperty.call(ctx.node, block.field) ? ctx.node[block.field] : undefined;
185
- const label = block.label ?? fieldWords(ctx.definition, block.field);
186
- const href = ctx.fields[block.field]?.type === "url" && block.as === undefined ? safeHref(raw) : undefined;
187
- const shown = safely(() => fieldText(block.field, raw, ctx, block.as)) ?? NOTHING;
188
- return (_jsxs("span", { className: "graview-spec-field", "data-graview-field": block.field, children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-value", children: href ? (_jsx("a", { className: "graview-spec-link", href: href, rel: "noopener noreferrer", target: "_blank", children: shown })) : (shown) })] }));
189
- }
190
- case "progress": {
191
- const value = judge(block.value, ctx);
192
- const max = judge(block.max, ctx);
193
- const label = block.label ?? "Progress";
194
- if (!(typeof value === "number" && typeof max === "number" && Number.isFinite(value) && Number.isFinite(max) && max > 0)) {
195
- return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-value", children: NOTHING })] }));
43
+ return (_jsx("span", { className: "graview-spec-badge", "data-graview-tone": block.tone, children: block.text }));
44
+ case "field":
45
+ return (_jsxs("span", { className: "graview-spec-field", "data-graview-field": block.field, children: [_jsx("span", { className: "graview-spec-label", children: block.label }), _jsx("span", { className: "graview-spec-value", children: block.href ? (_jsx("a", { className: "graview-spec-link", href: block.href, rel: "noopener noreferrer", target: "_blank", children: block.text })) : (block.text) })] }));
46
+ case "progress":
47
+ if (block.value === undefined || block.max === undefined) {
48
+ return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: block.label }), _jsx("span", { className: "graview-spec-value", children: block.text })] }));
196
49
  }
197
- const now = Math.max(0, Math.min(value, max));
198
- const said = `${formatValue(value, undefined, ctx.today)} of ${formatValue(max, undefined, ctx.today)}`;
199
- return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-track", role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuemax": max, "aria-valuenow": now, "aria-valuetext": said, children: _jsx("span", { className: "graview-spec-fill", style: { width: `${Math.round((now / max) * 100)}%` } }) }), _jsx("span", { className: "graview-spec-value", children: said })] }));
200
- }
50
+ return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: block.label }), _jsx("span", { className: "graview-spec-track", role: "progressbar", "aria-label": block.label, "aria-valuemin": 0, "aria-valuemax": block.max, "aria-valuenow": Math.max(0, Math.min(block.value, block.max)), "aria-valuetext": block.text, children: _jsx("span", { className: "graview-spec-fill", style: { width: `${Math.round((Math.max(0, Math.min(block.value, block.max)) / block.max) * 100)}%` } }) }), _jsx("span", { className: "graview-spec-value", children: block.text })] }));
201
51
  case "group":
202
- return (_jsx("span", { className: "graview-spec-group", "data-direction": block.direction, children: _jsx(SpecBlocks, { blocks: block.blocks, ctx: ctx }) }));
52
+ return (_jsx("span", { className: "graview-spec-group", "data-direction": block.direction, children: _jsx(ResolvedBlocks, { blocks: block.blocks }) }));
203
53
  case "when":
204
- // A condition that cannot be judged hides what it guards, like a rule's `when`.
205
- return judge(block.when, ctx) === true ? _jsx(SpecBlocks, { blocks: block.show, ctx: ctx }) : null;
54
+ return block.shown ? _jsx(ResolvedBlocks, { blocks: block.blocks }) : null;
206
55
  case "divider":
207
56
  return _jsx("hr", { className: "graview-spec-divider" });
208
57
  case "figure":
209
- return ctx.figure ? (_jsx("span", { className: "graview-spec-figure", "aria-hidden": "true", children: ctx.figure() })) : null;
58
+ return _jsx(SpecFigure, {});
59
+ case "headline": {
60
+ const Tag = `h${block.level}`;
61
+ return (_jsx(Tag, { className: "graview-spec-headline", "data-level": block.level, children: block.text }));
62
+ }
63
+ case "number":
64
+ return (_jsxs("span", { className: "graview-spec-number", children: [_jsx("span", { className: "graview-spec-number-value", children: block.text }), block.label ? _jsx("span", { className: "graview-spec-label", children: block.label }) : null] }));
65
+ case "list":
66
+ return _jsx(SpecList, { list: block });
210
67
  }
211
68
  }
212
- /** Blocks, drawn for one record. Pure: everything they read is in `ctx`. */
69
+ /** The kind's picture, where the context has one to draw. */
70
+ const Figure = createContext(undefined);
71
+ function SpecFigure() {
72
+ const figure = useContext(Figure);
73
+ return figure ? (_jsx("span", { className: "graview-spec-figure", "aria-hidden": "true", children: figure() })) : null;
74
+ }
75
+ function ResolvedBlocks({ blocks }) {
76
+ return blocks.map((block, i) => _jsx(Resolved, { block: block }, i));
77
+ }
78
+ /** Blocks, drawn for one record — or for none. Pure: everything they read is in `ctx`. */
213
79
  export function SpecBlocks({ blocks, ctx }) {
214
- return blocks.map((block, i) => _jsx(Block, { block: block, ctx: ctx }, i));
80
+ const resolved = resolveBlocks(blocks, ctx);
81
+ return ctx.figure ? _jsx(Figure.Provider, { value: ctx.figure, children: _jsx(ResolvedBlocks, { blocks: resolved }) }) : _jsx(ResolvedBlocks, { blocks: resolved });
82
+ }
83
+ // ── figures and lists (FR-81, FR-82) ────────────────────────────────────────
84
+ /**
85
+ * HOW DEEP LISTS NEST. A card that lists related records draws each with
86
+ * its own card, which may list its own — and a relation that comes back
87
+ * round (a package's offers' packages' offers…) would draw for ever. Past
88
+ * this depth a list says its records' names, each a link, and draws no
89
+ * view of them; every expression keeps its own step budget besides.
90
+ */
91
+ export const MAX_LIST_DEPTH = 3;
92
+ const ListDepth = createContext(0);
93
+ export const SpecLinks = createContext(null);
94
+ /** The steps a list or a figure about no one record may take: it sweeps whole kinds. */
95
+ const SWEEP_BUDGET = 5_000;
96
+ function Listed({ node, as, depth }) {
97
+ const { store, views } = useGraview();
98
+ const label = labelOf(store.schema.tryDefinition(node.kind), node);
99
+ const View = views.lookup(node.kind, { cardinality: "one", fidelity: as === "card" ? "summary" : "glyph" });
100
+ return (_jsxs("li", { className: "graview-spec-item", "data-graview-listed": node.id, "data-as": as, children: [depth <= MAX_LIST_DEPTH && View ? (
101
+ // A listed card is a card on a page as in the scene: drawn as the scene draws it.
102
+ _jsx(ViewModeProvider, { mode: "scene", children: _jsx(ListDepth.Provider, { value: depth, children: _jsx(View, { node: node, cardinality: "one", fidelity: as === "card" ? "summary" : "glyph", mode: "scene", selected: false }) }) })) : (_jsx("span", { className: "graview-spec-item-name", children: label })), _jsx(ListedLink, { node: node, label: label })] }));
103
+ }
104
+ /** The whole item is the way to its record: a link stretched over it, under any link the item draws itself. */
105
+ function ListedLink({ node, label }) {
106
+ const links = useContext(SpecLinks);
107
+ if (links) {
108
+ return (_jsx("a", { className: "graview-spec-item-link", href: links.href(node), "aria-label": label, onClick: (event) => {
109
+ if (event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0)
110
+ return;
111
+ event.preventDefault();
112
+ event.stopPropagation();
113
+ links.go(node);
114
+ } }));
115
+ }
116
+ return _jsx("button", { type: "button", className: "graview-spec-item-link", "data-graview-pick": node.id, "aria-label": label });
117
+ }
118
+ /**
119
+ * A LIST OF RECORDS, DRAWN: the records core resolved (`resolveBlocks`) —
120
+ * in their order, a few, under their headings, from the graph the seat may
121
+ * see — each with its own card or row and each a link; past the nesting
122
+ * depth, their names.
123
+ */
124
+ function SpecList({ list }) {
125
+ const depth = useContext(ListDepth) + 1;
126
+ const { store } = useGraview();
127
+ if (list.failed)
128
+ return _jsx("p", { className: "graview-spec-text", children: "\u2014" });
129
+ if (list.members.length === 0)
130
+ return list.empty ? _jsx("p", { className: "graview-spec-text graview-spec-empty", children: list.empty }) : null;
131
+ const listOf = (members) => depth > MAX_LIST_DEPTH ? (
132
+ // Too deep to draw views: the names, each a link.
133
+ _jsx("ul", { className: "graview-spec-list", "data-as": "names", children: members.map((node) => (_jsxs("li", { className: "graview-spec-item", "data-graview-listed": node.id, "data-as": "name", children: [_jsx("span", { className: "graview-spec-item-name", children: labelOf(store.schema.tryDefinition(node.kind), node) }), _jsx(ListedLink, { node: node, label: labelOf(store.schema.tryDefinition(node.kind), node) })] }, node.id))) })) : (_jsx("ul", { className: "graview-spec-list", "data-as": list.as, children: members.map((node) => (_jsx(Listed, { node: node, as: list.as, depth: depth }, node.id))) }));
134
+ const tail = list.more > 0 ? _jsx("p", { className: "graview-spec-text graview-spec-more", children: `and ${list.more} more` }) : null;
135
+ if (!list.groups) {
136
+ return (_jsxs("div", { className: "graview-spec-listing", children: [listOf(list.members), tail] }));
137
+ }
138
+ const Heading = `h${list.headingLevel}`;
139
+ return (_jsxs("div", { className: "graview-spec-listing", children: [list.groups.map((group) => (_jsxs("section", { className: "graview-spec-list-group", "data-graview-group": group.value ?? "", children: [group.heading ? _jsx(Heading, { className: "graview-spec-list-heading", children: group.heading }) : null, listOf(group.members)] }, group.value ?? ""))), tail] }));
140
+ }
141
+ /** Blocks about no one record — the home's body, a blocks lens — drawn under the provider, from the graph its seat may see. */
142
+ export function SpecPlace({ blocks, heading = 2, firstHeading, slot }) {
143
+ const { store } = useGraview();
144
+ useGraph();
145
+ const ctx = {
146
+ node: null,
147
+ graph: store.graph,
148
+ schema: store.schema,
149
+ kinds: shapesFor(store.schema),
150
+ fields: {},
151
+ today: today(),
152
+ heading,
153
+ ...(firstHeading !== undefined ? { firstHeading } : {}),
154
+ budget: SWEEP_BUDGET,
155
+ };
156
+ return (_jsx("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, children: _jsx(SpecBlocks, { blocks: blocks, ctx: ctx }) }));
215
157
  }
216
158
  const today = () => new Date().toISOString().slice(0, 10);
217
159
  const SHAPES = new WeakMap();
@@ -229,16 +171,8 @@ function fieldsFor(schema, kind) {
229
171
  if (!byKind)
230
172
  FIELDS.set(schema, (byKind = new Map()));
231
173
  let fields = byKind.get(kind);
232
- if (!fields) {
233
- const shape = schema.tryDefinition(kind)?.fields?.shape ?? {};
234
- const read = {};
235
- for (const [key, field] of Object.entries(shape)) {
236
- const spec = fieldSpecOf(field);
237
- if (spec)
238
- read[key] = spec;
239
- }
240
- byKind.set(kind, (fields = read));
241
- }
174
+ if (!fields)
175
+ byKind.set(kind, (fields = fieldSpecsOf(schema, kind)));
242
176
  return fields;
243
177
  }
244
178
  /** The drawing context for a record, from the provider every view is drawn under. */
@@ -249,6 +183,7 @@ export function useSpecContext(node) {
249
183
  return {
250
184
  node,
251
185
  graph: store.graph,
186
+ schema,
252
187
  kinds: shapesFor(schema),
253
188
  fields: fieldsFor(schema, node.kind),
254
189
  ...(definition ? { definition } : {}),
@@ -259,14 +194,14 @@ export function useSpecContext(node) {
259
194
  /** One slot of a spec, drawn for one record. */
260
195
  export function SpecView({ slot, blocks, node, selected }) {
261
196
  const ctx = useSpecContext(node);
262
- return (_jsx("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, "data-graview-kind": node.kind, ...(selected ? { "data-selected": "" } : {}), children: _jsx(SpecBlocks, { blocks: blocks, ctx: ctx }) }));
197
+ return (_jsx("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, "data-graview-kind": node.kind, ...(slot === "row" && blocks.some(isTallBlock) ? { "data-graview-tall": "" } : {}), ...(selected ? { "data-selected": "" } : {}), children: _jsx(SpecBlocks, { blocks: blocks, ctx: slot === "page" ? { ...ctx, heading: 2 } : ctx }) }));
263
198
  }
264
199
  /** A card: the framework's own Panel, so selection, a broken rule and the theme read as they do on a default card. */
265
200
  function SpecCard({ blocks, node, selected, flagged }) {
266
201
  const ctx = useSpecContext(node);
267
202
  const [first, ...rest] = blocks;
268
203
  const titled = first?.t === "title";
269
- return (_jsx(Panel, { ...(titled ? { title: words(first.parts, ctx) } : {}), selected: selected, tone: flagged ? "warning" : "muted", fit: true, children: _jsx("div", { className: "graview-spec graview-spec-card", "data-graview-spec": "card", "data-graview-kind": node.kind, children: _jsx(SpecBlocks, { blocks: titled ? rest : blocks, ctx: ctx }) }) }));
204
+ return (_jsx(Panel, { ...(titled ? { title: resolveBlocks([first], ctx)[0].text } : {}), selected: selected, tone: flagged ? "warning" : "muted", fit: true, children: _jsx("div", { className: "graview-spec graview-spec-card", "data-graview-spec": "card", "data-graview-kind": node.kind, children: _jsx(SpecBlocks, { blocks: titled ? rest : blocks, ctx: ctx }) }) }));
270
205
  }
271
206
  /** A row: one line, named for assistive technology by the record's own label. */
272
207
  function SpecRow({ blocks, node, selected }) {
@@ -1 +1 @@
1
- {"version":3,"file":"spec-views.js","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-views.js","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAI,GAAG,SAAS,MAAM,EAAE,CAqB7D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,sCAgF7D;AAED;;;;;;;GAOG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,gCAmCzB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,SAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B,sCAkQA"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAI,GAAG,SAAS,MAAM,EAAE,CAqB7D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,sCAgF7D;AAED;;;;;;;GAOG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,gCAmCzB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,SAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B,sCAwQA"}
@@ -218,10 +218,10 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
218
218
  ? "var(--graview-warn)"
219
219
  : "var(--graview-edge-bright)",
220
220
  } }), _jsxs("span", { style: { color: "var(--graview-ink)" }, children: [call.mutating ? "changed" : "read", " \u00B7", " ", store.allMutations().find((mutation) => mutation.name === call.name)?.title ??
221
- humaniseField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [call.reads.slice(0, 3).map((id) => (_jsx(Chip, { label: nameOf(store, id), pickId: id }, id))), call.reads.length > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", call.reads.length - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.values(call.args)
222
- .filter((value) => typeof value === "string")
221
+ humaniseField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [[...new Set(call.reads)].slice(0, 3).map((id) => (_jsx(Chip, { label: nameOf(store, id), pickId: id }, id))), new Set(call.reads).size > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", new Set(call.reads).size - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.entries(call.args)
222
+ .filter((entry) => typeof entry[1] === "string")
223
223
  .slice(0, 3)
224
- .map((value) => (_jsx(Chip, { label: nameOf(store, value), pickId: value }, value))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, changes.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
224
+ .map(([name, value]) => (_jsx(Chip, { label: nameOf(store, value), pickId: value }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, changes.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
225
225
  margin: 0,
226
226
  padding: 0,
227
227
  listStyle: "none",