@graview/core 0.1.8 → 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 (151) hide show
  1. package/README.md +8 -2
  2. package/dist/app.d.ts +41 -2
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js.map +1 -1
  5. package/dist/capabilities.js +1 -1
  6. package/dist/capabilities.js.map +1 -1
  7. package/dist/city.d.ts +29 -0
  8. package/dist/city.d.ts.map +1 -1
  9. package/dist/city.js +66 -0
  10. package/dist/city.js.map +1 -1
  11. package/dist/cli/check/arrangement.d.ts.map +1 -1
  12. package/dist/cli/check/arrangement.js +3 -2
  13. package/dist/cli/check/arrangement.js.map +1 -1
  14. package/dist/cli/check/computed.d.ts +14 -0
  15. package/dist/cli/check/computed.d.ts.map +1 -0
  16. package/dist/cli/check/computed.js +34 -0
  17. package/dist/cli/check/computed.js.map +1 -0
  18. package/dist/cli/check/index.d.ts +1 -0
  19. package/dist/cli/check/index.d.ts.map +1 -1
  20. package/dist/cli/check/index.js +1 -0
  21. package/dist/cli/check/index.js.map +1 -1
  22. package/dist/cli/check/lenses.d.ts +10 -0
  23. package/dist/cli/check/lenses.d.ts.map +1 -1
  24. package/dist/cli/check/lenses.js +37 -19
  25. package/dist/cli/check/lenses.js.map +1 -1
  26. package/dist/cli/check/relations.d.ts.map +1 -1
  27. package/dist/cli/check/relations.js +2 -1
  28. package/dist/cli/check/relations.js.map +1 -1
  29. package/dist/cli/check/views.d.ts.map +1 -1
  30. package/dist/cli/check/views.js +8 -2
  31. package/dist/cli/check/views.js.map +1 -1
  32. package/dist/cli/check.d.ts.map +1 -1
  33. package/dist/cli/check.js +4 -1
  34. package/dist/cli/check.js.map +1 -1
  35. package/dist/cli/describe.d.ts.map +1 -1
  36. package/dist/cli/describe.js +54 -1
  37. package/dist/cli/describe.js.map +1 -1
  38. package/dist/cli/index.d.ts +1 -1
  39. package/dist/cli/index.d.ts.map +1 -1
  40. package/dist/cli/index.js +21 -1
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/describe.d.ts +3 -0
  43. package/dist/describe.d.ts.map +1 -0
  44. package/dist/describe.js +12 -0
  45. package/dist/describe.js.map +1 -0
  46. package/dist/document/blocks.d.ts +182 -0
  47. package/dist/document/blocks.d.ts.map +1 -0
  48. package/dist/document/blocks.js +382 -0
  49. package/dist/document/blocks.js.map +1 -0
  50. package/dist/document/compile.d.ts.map +1 -1
  51. package/dist/document/compile.js +57 -15
  52. package/dist/document/compile.js.map +1 -1
  53. package/dist/document/computed-values.d.ts +33 -0
  54. package/dist/document/computed-values.d.ts.map +1 -0
  55. package/dist/document/computed-values.js +60 -0
  56. package/dist/document/computed-values.js.map +1 -0
  57. package/dist/document/computed.d.ts +42 -0
  58. package/dist/document/computed.d.ts.map +1 -0
  59. package/dist/document/computed.js +173 -0
  60. package/dist/document/computed.js.map +1 -0
  61. package/dist/document/describe-place.d.ts +95 -0
  62. package/dist/document/describe-place.d.ts.map +1 -0
  63. package/dist/document/describe-place.js +257 -0
  64. package/dist/document/describe-place.js.map +1 -0
  65. package/dist/document/diff.d.ts.map +1 -1
  66. package/dist/document/diff.js +72 -3
  67. package/dist/document/diff.js.map +1 -1
  68. package/dist/document/edit.d.ts +1 -1
  69. package/dist/document/edit.d.ts.map +1 -1
  70. package/dist/document/edit.js +816 -103
  71. package/dist/document/edit.js.map +1 -1
  72. package/dist/document/expr/analyze.d.ts +22 -0
  73. package/dist/document/expr/analyze.d.ts.map +1 -1
  74. package/dist/document/expr/analyze.js +49 -3
  75. package/dist/document/expr/analyze.js.map +1 -1
  76. package/dist/document/expr/evaluate.d.ts +7 -1
  77. package/dist/document/expr/evaluate.d.ts.map +1 -1
  78. package/dist/document/expr/evaluate.js +95 -6
  79. package/dist/document/expr/evaluate.js.map +1 -1
  80. package/dist/document/expr/index.d.ts +1 -1
  81. package/dist/document/expr/index.d.ts.map +1 -1
  82. package/dist/document/expr/index.js +1 -1
  83. package/dist/document/expr/index.js.map +1 -1
  84. package/dist/document/index.d.ts +10 -2
  85. package/dist/document/index.d.ts.map +1 -1
  86. package/dist/document/index.js +5 -1
  87. package/dist/document/index.js.map +1 -1
  88. package/dist/document/rules.d.ts +2 -1
  89. package/dist/document/rules.d.ts.map +1 -1
  90. package/dist/document/rules.js +5 -1
  91. package/dist/document/rules.js.map +1 -1
  92. package/dist/document/schema.d.ts +35 -3
  93. package/dist/document/schema.d.ts.map +1 -1
  94. package/dist/document/schema.js +22 -2
  95. package/dist/document/schema.js.map +1 -1
  96. package/dist/document/template.d.ts +17 -2
  97. package/dist/document/template.d.ts.map +1 -1
  98. package/dist/document/template.js +136 -16
  99. package/dist/document/template.js.map +1 -1
  100. package/dist/document/thumbnail.d.ts +34 -0
  101. package/dist/document/thumbnail.d.ts.map +1 -0
  102. package/dist/document/thumbnail.js +165 -0
  103. package/dist/document/thumbnail.js.map +1 -0
  104. package/dist/document/to-document.d.ts.map +1 -1
  105. package/dist/document/to-document.js +4 -1
  106. package/dist/document/to-document.js.map +1 -1
  107. package/dist/document/views.d.ts +47 -3
  108. package/dist/document/views.d.ts.map +1 -1
  109. package/dist/document/views.js +289 -21
  110. package/dist/document/views.js.map +1 -1
  111. package/dist/index.d.ts +11 -3
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +6 -1
  114. package/dist/index.js.map +1 -1
  115. package/dist/places.d.ts +186 -0
  116. package/dist/places.d.ts.map +1 -0
  117. package/dist/places.js +358 -0
  118. package/dist/places.js.map +1 -0
  119. package/dist/scaffold/project.d.ts.map +1 -1
  120. package/dist/scaffold/project.js +9 -0
  121. package/dist/scaffold/project.js.map +1 -1
  122. package/dist/scaffold/ui.d.ts.map +1 -1
  123. package/dist/scaffold/ui.js +13 -10
  124. package/dist/scaffold/ui.js.map +1 -1
  125. package/dist/scene-districts.d.ts +24 -0
  126. package/dist/scene-districts.d.ts.map +1 -0
  127. package/dist/scene-districts.js +27 -0
  128. package/dist/scene-districts.js.map +1 -0
  129. package/dist/schema/define-node.d.ts +3 -0
  130. package/dist/schema/define-node.d.ts.map +1 -1
  131. package/dist/schema/define-node.js +3 -1
  132. package/dist/schema/define-node.js.map +1 -1
  133. package/dist/schema/types.d.ts +17 -0
  134. package/dist/schema/types.d.ts.map +1 -1
  135. package/dist/theme/layers.d.ts +82 -0
  136. package/dist/theme/layers.d.ts.map +1 -0
  137. package/dist/theme/layers.js +79 -0
  138. package/dist/theme/layers.js.map +1 -0
  139. package/dist/theme/look.d.ts +96 -0
  140. package/dist/theme/look.d.ts.map +1 -0
  141. package/dist/theme/look.js +110 -0
  142. package/dist/theme/look.js.map +1 -0
  143. package/dist/version.d.ts +1 -1
  144. package/dist/version.d.ts.map +1 -1
  145. package/dist/version.js +1 -1
  146. package/dist/version.js.map +1 -1
  147. package/dist/views/types.d.ts +19 -0
  148. package/dist/views/types.d.ts.map +1 -1
  149. package/dist/views/types.js +14 -0
  150. package/dist/views/types.js.map +1 -1
  151. package/package.json +5 -1
package/dist/places.js ADDED
@@ -0,0 +1,358 @@
1
+ import { parseArrangement } from "./arrange.js";
2
+ import { defOf } from "./schema/zod.js";
3
+ import { placeSlug } from "./views/types.js";
4
+ /**
5
+ * THE LENSES THIS FRAMEWORK SHIPS, AND WHAT EACH ONE TAKES AS DATA (FR-79).
6
+ *
7
+ * One table, read by everything that has to agree about a declared lens:
8
+ * `graview check` (what it holds a declaration to), `graview describe`
9
+ * (what it says is drawn), `placesOf` (what a host lists) and the
10
+ * primitives that draw it (which factory, with which options). A lens is a
11
+ * place because this says it can be one, and the four of them cannot
12
+ * disagree because none of them has a list of its own.
13
+ *
14
+ * `options` is what a declaration may hand the factory beyond its roles —
15
+ * data only. What a factory needs that cannot be data (a timeline's
16
+ * `format`, a calendar's `today`) is derived where it is drawn.
17
+ */
18
+ export const SHIPPED_LENSES = {
19
+ timeline: { binds: "fields", requiredRoles: ["start", "end"], options: ["columns", "extent", "tick", "minWindow", "arranging"] },
20
+ calendar: { binds: "fields", requiredRoles: ["start"], options: ["today", "range", "weekStartsOn", "perCell", "horizon", "arranging"] },
21
+ coverage: { binds: "entities", requiredRoles: ["rows", "columns", "link"], options: ["rowRef", "rowGroup", "groupOrder", "requiredGroups", "requiredVia", "badge", "columnGroup"] },
22
+ board: { binds: "entities", requiredRoles: ["slots", "x", "y", "fill"], options: ["fillFrom", "slotCode", "zones", "aspect", "emptyLabel", "pickTarget", "arranging", "arrange"] },
23
+ plan: { binds: "entities", requiredRoles: ["regions", "outline"], options: ["hues", "aspect", "undrawnLabel", "strayLabel", "draw", "place", "help"] },
24
+ reach: { binds: "nothing", requiredRoles: [], options: [] },
25
+ /**
26
+ * A PLACE DRAWN FROM BLOCKS (FR-81): `options.blocks` is a list from the
27
+ * closed set the home and every card are written in — headlines, figures,
28
+ * lists of records drawn by their own cards and rows — about no one
29
+ * record, standing on the kind its `on` names. The data-only way to a
30
+ * picture no shipped lens draws.
31
+ */
32
+ blocks: { binds: "nothing", requiredRoles: [], options: ["blocks"] },
33
+ };
34
+ /** The shipped lenses' names, in the order the table gives them. */
35
+ export const SHIPPED_LENS_NAMES = Object.keys(SHIPPED_LENSES);
36
+ export const isShippedLens = (name) => Object.prototype.hasOwnProperty.call(SHIPPED_LENSES, name);
37
+ /** The roles a lens requires: its own declaration's, or the shipped lens's when it names none. */
38
+ export function requiredRolesOf(lens) {
39
+ return lens.requiredRoles ?? (isShippedLens(lens.name) ? SHIPPED_LENSES[lens.name].requiredRoles : []);
40
+ }
41
+ /** Which shape its bindings take: its own word, or the shipped lens's when it says none. */
42
+ export function bindsOf(lens) {
43
+ if (lens.binds)
44
+ return lens.binds;
45
+ return isShippedLens(lens.name) && SHIPPED_LENSES[lens.name].binds === "entities" ? "entities" : "fields";
46
+ }
47
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
48
+ /** The values an enum field takes, read from its schema; empty when it is not one. */
49
+ function enumValues(schema, kind, field) {
50
+ const shape = schema.tryDefinition(kind)?.fields.shape;
51
+ // Read from zod's own definition, through optional and default, rather than through the JSON-schema writer a page need not carry.
52
+ let def = defOf(shape?.[field]);
53
+ while (def && (def.type === "optional" || def.type === "default" || def.type === "nullable" || def.type === "prefault"))
54
+ def = defOf(def.innerType);
55
+ if (def?.type !== "enum")
56
+ return [];
57
+ const values = def.entries ? Object.values(def.entries) : (def.values ?? []);
58
+ return values.filter((value) => typeof value === "string");
59
+ }
60
+ /**
61
+ * EVERY DECLARED LENS, SORTED INTO WHAT DRAWS AND WHAT DOES NOT.
62
+ *
63
+ * A lens draws when it names a lens this framework ships and gives itself a
64
+ * `title` — the title is what makes it a place: a pill on the bar, a
65
+ * drive-in from altitude, a page at `/places/<as>`. A lens without one is
66
+ * bindings the checker holds, as every declared lens was before FR-79. A
67
+ * titled lens whose options or bindings cannot make a picture does not draw,
68
+ * and says why here, so the checker and the describer give the same reason
69
+ * the picture is missing.
70
+ */
71
+ export function declaredLenses(app) {
72
+ const drawn = [];
73
+ const undrawn = [];
74
+ const findings = [];
75
+ const kinds = new Set(app.schema.kinds);
76
+ const edges = new Set();
77
+ for (const kind of kinds)
78
+ for (const edge of Object.keys(app.schema.tryDefinition(kind)?.edges ?? {}))
79
+ edges.add(edge);
80
+ const fieldsOf = (kind) => Object.keys(app.schema.tryDefinition(kind)?.fields.shape ?? {});
81
+ /** Titles already taken, per kind, so two places on one kind cannot share an address. */
82
+ const taken = new Map();
83
+ (app.lenses ?? []).forEach((lens, index) => {
84
+ const at = `lenses.${index}`;
85
+ const title = typeof lens.title === "string" && lens.title.trim().length > 0 ? lens.title.trim() : undefined;
86
+ const skip = (why, finding) => {
87
+ undrawn.push({ index, name: lens.name, ...(title ? { title } : {}), why });
88
+ if (finding)
89
+ findings.push({ severity: "warning", ...finding });
90
+ };
91
+ if (!isShippedLens(lens.name)) {
92
+ if (title)
93
+ skip(`"${lens.name}" is not a lens this framework draws`, { code: "lens-not-shipped", path: `${at}.name`, message: `"${title}" names the lens "${lens.name}", which the framework does not ship, so nothing draws it.`, fix: `Name one of ${SHIPPED_LENS_NAMES.join(", ")} — or register the view yourself and drop the title.` });
94
+ else
95
+ skip("it is a lens this app wrote, drawn by the app's own views");
96
+ return;
97
+ }
98
+ if (!title)
99
+ return skip("it has no title, so it is bindings the checker holds and no place");
100
+ const shipped = SHIPPED_LENSES[lens.name];
101
+ const given = isRecord(lens.options) ? lens.options : {};
102
+ if (lens.options !== undefined && !isRecord(lens.options)) {
103
+ return skip("its options are not an object", { code: "lens-options-not-an-object", path: `${at}.options`, message: `"${title}" has options that are not an object.`, fix: `Write them as { "<option>": <value> }, or drop them.` });
104
+ }
105
+ for (const key of Object.keys(given)) {
106
+ if (!shipped.options.includes(key)) {
107
+ findings.push({ severity: "warning", code: "lens-option-unknown", path: `${at}.options.${key}`, message: `The ${lens.name} lens takes no option "${key}", so "${title}" ignores it.`, fix: shipped.options.length === 0 ? `The ${lens.name} lens takes no options; drop it.` : `Use one of: ${shipped.options.join(", ")}.` });
108
+ }
109
+ }
110
+ const options = {};
111
+ for (const key of shipped.options)
112
+ if (given[key] !== undefined)
113
+ options[key] = given[key];
114
+ if (lens.arrangedBy)
115
+ options["arrangedBy"] = parseArrangement(lens.arrangedBy);
116
+ const bindings = isRecord(lens.bindings) ? lens.bindings : {};
117
+ let stands = [];
118
+ let across;
119
+ const bad = (path, message, fix) => skip(message, { code: "lens-cannot-draw", path, message: `"${title}" cannot draw: ${message}.`, fix });
120
+ if (shipped.binds === "fields") {
121
+ const bound = Object.keys(bindings).filter((kind) => isRecord(bindings[kind]));
122
+ const unknown = bound.filter((kind) => !kinds.has(kind));
123
+ if (bound.length === 0)
124
+ return bad(`${at}.bindings`, "it binds no kind", `Bind a kind's fields: "bindings": { "<kind>": { ${shipped.requiredRoles.map((role) => `"${role}": "<field>"`).join(", ")} } }.`);
125
+ if (unknown.length > 0)
126
+ return; // the binding check says so, as an error
127
+ options["bindings"] = bindings;
128
+ stands = bound;
129
+ if (lens.name === "timeline") {
130
+ /*
131
+ * A TIMELINE'S COLUMNS. Named in the options, or read from the field
132
+ * its `column` role is bound to when that field is a set of values —
133
+ * a weekday, a lane. A timeline with neither has nowhere to put a
134
+ * span, so it says so rather than drawing an empty week.
135
+ */
136
+ const columns = given["columns"];
137
+ if (Array.isArray(columns)) {
138
+ options["columns"] = columns.map((column) => (typeof column === "string" ? { id: column, label: column } : column));
139
+ }
140
+ else {
141
+ const derived = bound.flatMap((kind) => {
142
+ const roles = bindings[kind];
143
+ const field = typeof roles["column"] === "string" ? roles["column"] : typeof roles["columns"] === "string" ? roles["columns"] : undefined;
144
+ return field ? enumValues(app.schema, kind, field) : [];
145
+ });
146
+ const values = [...new Set(derived)];
147
+ if (values.length === 0)
148
+ return bad(`${at}.options.columns`, "it has no columns — no option names them and no `column` role is bound to a field of set values", `Bind "column" to a field whose values are the columns, or say "columns": ["mon", "tue", …].`);
149
+ options["columns"] = values.map((value) => ({ id: value, label: value.toUpperCase() }));
150
+ }
151
+ if (options["extent"] === undefined)
152
+ options["extent"] = 1440;
153
+ }
154
+ if (lens.name === "calendar" && options["today"] !== undefined && !(typeof options["today"] === "string" && /^\d{4}-\d{2}-\d{2}$/.test(options["today"]))) {
155
+ return bad(`${at}.options.today`, "its today is not a date", `Write it as "YYYY-MM-DD", or leave it out and the calendar opens on the day it is drawn.`);
156
+ }
157
+ if (lens.name === "calendar" && options["range"] !== undefined && !["day", "week", "month", "quarter", "year", "years", "agenda"].includes(options["range"])) {
158
+ return bad(`${at}.options.range`, `its range "${String(options["range"])}" is not one a calendar opens at`, `Use one of: day, week, month, quarter, year, agenda.`);
159
+ }
160
+ }
161
+ else if (shipped.binds === "entities") {
162
+ /** A role's binding as the factory reads it: a kind, an edge, a path or a field name. */
163
+ const role = (name) => {
164
+ const binding = bindings[name];
165
+ if (!isRecord(binding))
166
+ return undefined;
167
+ if (typeof binding["kind"] === "string")
168
+ return binding["kind"];
169
+ if (typeof binding["edge"] === "string")
170
+ return binding["edge"];
171
+ if (Array.isArray(binding["path"]))
172
+ return { path: binding["path"] };
173
+ if (typeof binding["field"] === "string")
174
+ return binding["field"];
175
+ return undefined;
176
+ };
177
+ for (const name of shipped.requiredRoles)
178
+ if (role(name) === undefined)
179
+ return; // the binding check says so, as an error
180
+ const kindRole = lens.name === "coverage" ? "rows" : lens.name === "board" ? "slots" : "regions";
181
+ const main = role(kindRole);
182
+ if (!kinds.has(main))
183
+ return;
184
+ if (lens.name === "coverage") {
185
+ const columns = role("columns");
186
+ if (!kinds.has(columns))
187
+ return;
188
+ const link = role("link");
189
+ if (typeof link === "string" && !edges.has(link))
190
+ return;
191
+ Object.assign(options, { rows: main, columns, link });
192
+ if (columns !== main)
193
+ across = columns;
194
+ }
195
+ else if (lens.name === "board") {
196
+ Object.assign(options, { slots: main, x: role("x"), y: role("y"), fill: role("fill") });
197
+ for (const field of ["x", "y"])
198
+ if (!fieldsOf(main).includes(options[field]))
199
+ return;
200
+ }
201
+ else {
202
+ Object.assign(options, { regions: main, outline: role("outline") });
203
+ for (const optional of ["markers", "at", "within", "nests", "regionKind", "markerKind"]) {
204
+ const value = role(optional);
205
+ if (typeof value === "string")
206
+ options[optional] = value;
207
+ }
208
+ }
209
+ stands = [main];
210
+ }
211
+ else if (lens.name === "blocks") {
212
+ // A place drawn from blocks stands where it is told, and draws what its blocks say (their words are checked with the views).
213
+ if (!lens.on)
214
+ return bad(`${at}.on`, "it does not say which kind it stands on", `Say "on": "<the kind it is a place of>".`);
215
+ if (!Array.isArray(options["blocks"]) || options["blocks"].length === 0)
216
+ return bad(`${at}.options.blocks`, "it has no blocks to draw", `Say "options": { "blocks": [{ "headline": "…" }, { "list": "all('<kind>')", "as": "card" }] }.`);
217
+ }
218
+ else {
219
+ // The reach lens draws the policy, over the people: it stands where it is told, or on the people.
220
+ const people = ["user", "person", "member"].find((kind) => kinds.has(kind));
221
+ if (!lens.on && !people)
222
+ return bad(`${at}.on`, "it does not say which kind it stands on", `Say "on": "<the kind whose records are the people>".`);
223
+ stands = people ? [people] : [];
224
+ }
225
+ if (lens.on !== undefined) {
226
+ if (typeof lens.on !== "string" || !kinds.has(lens.on)) {
227
+ return bad(`${at}.on`, `it stands on "${String(lens.on)}", which is not a kind`, `Use one of: ${[...kinds].join(", ")}.`);
228
+ }
229
+ stands = [lens.on];
230
+ // A coverage stood on its columns is across its rows: the other kind is whichever it does not stand on.
231
+ if (lens.name === "coverage") {
232
+ const other = [options["rows"], options["columns"]].find((kind) => kind !== lens.on);
233
+ across = typeof other === "string" ? other : undefined;
234
+ }
235
+ }
236
+ const as = placeSlug(title);
237
+ if (as.length === 0)
238
+ return bad(`${at}.title`, "its title has no letters or digits to make an address of", "Give it a title a person would say.");
239
+ for (const kind of stands) {
240
+ const key = `${kind}|${as}`;
241
+ if (taken.has(key)) {
242
+ return skip(`another lens on ${kind} is already called "${title}"`, { code: "lens-title-taken", path: `${at}.title`, message: `"${title}" is the title of lenses.${taken.get(key)} too, on the same kind, so one address would name two pictures.`, fix: "Give each its own title." });
243
+ }
244
+ }
245
+ for (const kind of stands)
246
+ taken.set(`${kind}|${as}`, index);
247
+ drawn.push({ index, lens: lens.name, title, as, kinds: stands, ...(across ? { across } : {}), options });
248
+ });
249
+ return { drawn, undrawn, findings };
250
+ }
251
+ /** Kinds in the arrangement's order: those `order` names first, the rest as given. */
252
+ export function orderKinds(kinds, order) {
253
+ if (!order || order.length === 0)
254
+ return kinds;
255
+ const named = order.filter((kind) => kinds.includes(kind));
256
+ return [...new Set(named), ...kinds.filter((kind) => !named.includes(kind))];
257
+ }
258
+ const pluralWord = (schema, kind) => schema.tryDefinition(kind)?.plural ?? `${kind}s`;
259
+ export function openingOf(first, schema, places) {
260
+ if (first === undefined)
261
+ return undefined;
262
+ const word = first.trim();
263
+ if (word === "")
264
+ return undefined;
265
+ if (word.toLowerCase() === "home" || word === "/")
266
+ return { to: "home" };
267
+ const slug = placeSlug(word);
268
+ const place = places.find((one) => one.title === word) ?? places.find((one) => one.as === slug);
269
+ if (place)
270
+ return { to: "place", place };
271
+ const kinds = schema.kinds;
272
+ const kind = kinds.find((one) => one === word) ?? kinds.find((one) => placeSlug(pluralWord(schema, one)) === slug);
273
+ return kind ? { to: "kind", kind } : undefined;
274
+ }
275
+ /** What the arrangement asks that the declaration cannot honour: kinds and places that do not exist. */
276
+ export function arrangementFindings(app, places = placesOfLenses(app)) {
277
+ const pages = app.pages;
278
+ if (!pages)
279
+ return [];
280
+ const findings = [];
281
+ const kinds = app.schema.kinds;
282
+ for (const part of ["order", "hide"]) {
283
+ (pages[part] ?? []).forEach((kind, index) => {
284
+ if (!kinds.includes(kind)) {
285
+ findings.push({ severity: "warning", code: "pages-kind-unknown", path: `pages.${part}.${index}`, message: `pages.${part} names "${kind}", which is not a kind, so it is passed over.`, fix: `Use one of: ${kinds.join(", ")}.` });
286
+ }
287
+ });
288
+ }
289
+ if (pages.first !== undefined && openingOf(pages.first, app.schema, places) === undefined) {
290
+ findings.push({
291
+ severity: "warning",
292
+ code: "pages-first-unknown",
293
+ path: "pages.first",
294
+ message: `pages.first is "${pages.first}", which is not a place, a kind or "home", so the app opens at its home.`,
295
+ fix: `Name a place (${places.map((place) => `"${place.title}"`).join(", ") || "none is declared"}), a kind, or "home".`,
296
+ });
297
+ }
298
+ return findings;
299
+ }
300
+ /** The places a declaration's lenses make, with any its registered views name. */
301
+ function placesOfLenses(app) {
302
+ const out = [];
303
+ for (const lens of declaredLenses(app).drawn) {
304
+ for (const kind of lens.kinds)
305
+ out.push({ kind, title: lens.title, as: lens.as, ...(lens.across ? { across: lens.across } : {}) });
306
+ }
307
+ for (const place of app.views?.places?.() ?? []) {
308
+ if (!out.some((held) => held.kind === place.kind && held.as === place.as))
309
+ out.push(place);
310
+ }
311
+ return out;
312
+ }
313
+ /**
314
+ * EVERY PLACE AN APP HAS, by name: the home, each declared lens that draws
315
+ * (and each place its registered views name, when the app carries them),
316
+ * and each kind — in the arrangement's order. What Graview Cloud's
317
+ * connector lists when an app is opened, and what a chat can send somebody
318
+ * to.
319
+ */
320
+ export function placesOf(app) {
321
+ const lensPlaces = placesOfLenses(app);
322
+ const drawn = declaredLenses(app).drawn;
323
+ const opening = openingOf(app.pages?.first, app.schema, lensPlaces);
324
+ const hidden = new Set(app.pages?.hide ?? []);
325
+ const kinds = orderKinds(app.schema.kinds, app.pages?.order);
326
+ const shared = (place) => lensPlaces.some((other) => other.as === place.as && other.kind !== place.kind);
327
+ const out = [{ slug: "home", title: "Home", kind: null, cardinality: "many", address: "/", stop: "#", ...(opening?.to === "home" ? { first: true } : {}) }];
328
+ const byKind = [...lensPlaces].sort((a, b) => kinds.indexOf(a.kind) - kinds.indexOf(b.kind));
329
+ for (const place of byKind) {
330
+ const lens = drawn.find((one) => one.as === place.as && one.kinds.includes(place.kind));
331
+ const of = shared(place) ? placeSlug(pluralWord(app.schema, place.kind)) : undefined;
332
+ out.push({
333
+ slug: place.as,
334
+ title: place.title,
335
+ kind: place.kind,
336
+ cardinality: "many",
337
+ address: `/places/${encodeURIComponent(place.as)}${of ? `?of=${encodeURIComponent(of)}` : ""}`,
338
+ stop: of ? `#focus=aggregate:${place.kind}&in.view=${encodeURIComponent(place.as)}` : `#view=${encodeURIComponent(place.as)}`,
339
+ ...(lens ? { lens: lens.lens } : {}),
340
+ ...(opening?.to === "place" && opening.place.kind === place.kind && opening.place.as === place.as ? { first: true } : {}),
341
+ });
342
+ }
343
+ for (const kind of kinds) {
344
+ const plural = pluralWord(app.schema, kind);
345
+ out.push({
346
+ slug: placeSlug(plural),
347
+ title: plural,
348
+ kind,
349
+ cardinality: "many",
350
+ address: `/${placeSlug(plural)}`,
351
+ stop: `#focus=aggregate:${kind}`,
352
+ ...(hidden.has(kind) ? { hidden: true } : {}),
353
+ ...(opening?.to === "kind" && opening.kind === kind ? { first: true } : {}),
354
+ });
355
+ }
356
+ return out;
357
+ }
358
+ //# sourceMappingURL=places.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"places.js","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oHAyBnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA+C,CAAC;AAO7F,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF,eAAO,MAAM,UAAU,UAMtB,CAAC;AAEF,eAAO,MAAM,SAAS,UAIrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqB/E;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAgCxE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,IAAI,MAAM,CAsBrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAqEhE;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAyCnD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAoBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA4M3C;AAOD,wBAAgB,SAAS,IAAI,MAAM,CAWlC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2EvC;AAID,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2BtC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAwC3D"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oHAyBnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA+C,CAAC;AAO7F,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF,eAAO,MAAM,UAAU,UAMtB,CAAC;AAEF,eAAO,MAAM,SAAS,UAIrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqB/E;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAgCxE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,IAAI,MAAM,CAsBrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAqEhE;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAyCnD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAoBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAqN3C;AAOD,wBAAgB,SAAS,IAAI,MAAM,CAWlC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2EvC;AAID,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2BtC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAwC3D"}
@@ -420,6 +420,7 @@ export default defineConfig({
420
420
  */
421
421
  alias: {
422
422
  "@graview/core/testing": framework("core/src/testing.ts"),
423
+ "@graview/core/describe": framework("core/src/describe.ts"),
423
424
  "@graview/core/document": framework("core/src/document/index.ts"),
424
425
  "@graview/core/conformance": framework("core/src/conformance/index.ts"),
425
426
  "@graview/core/cli": framework("core/src/cli/index.ts"),
@@ -437,6 +438,7 @@ export default defineConfig({
437
438
  "@graview/react": framework("react/src/index.ts"),
438
439
  "@graview/primitives/frame": framework("primitives/src/frame.ts"),
439
440
  "@graview/primitives/pages": framework("primitives/src/pages.ts"),
441
+ "@graview/primitives/scene": framework("primitives/src/scene.ts"),
440
442
  "@graview/primitives": framework("primitives/src/index.ts"),
441
443
  "@graview/pages": framework("pages/src/index.ts"),
442
444
  // The browser entry, so the file adapter's node:fs never meets the bundler.
@@ -448,8 +450,15 @@ export default defineConfig({
448
450
  "@graview/embed/pages": framework("embed/src/pages.tsx"),
449
451
  "@graview/embed": framework("embed/src/index.ts"),
450
452
  "@graview/guest/host/worker": framework("guest/src/host/worker.ts"),
453
+ "@graview/guest/host/views": framework("guest/src/host/views.ts"),
454
+ "@graview/guest/headless/node": framework("guest/src/headless/node.ts"),
455
+ "@graview/guest/headless": framework("guest/src/headless/index.ts"),
456
+ "@graview/guest/cli": framework("guest/src/cli.ts"),
457
+ "@graview/guest/client.js": framework("guest/client.js"),
458
+ "@graview/guest/client": framework("guest/src/client.ts"),
451
459
  "@graview/guest/host": framework("guest/src/host/index.ts"),
452
460
  "@graview/guest/react": framework("guest/src/react.ts"),
461
+ "@graview/guest/worker/view": framework("guest/src/worker/view.ts"),
453
462
  "@graview/guest/worker": framework("guest/src/worker/index.ts"),
454
463
  "@graview/guest/build": framework("guest/src/build.ts"),
455
464
  "@graview/guest": framework("guest/src/index.ts"),
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,YAAY,CAAC;AAOhF,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAc1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAwC1C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyBzC;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAsBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+GzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+NzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA0FxC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,YAAY,CAAC;AAOhF,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAc1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAwC1C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyBzC;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+GzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+NzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA0FxC"}
@@ -94,24 +94,27 @@ mount(document.getElementById("here")!, {
94
94
  /* ------------------------------------------------------------------- ui */
95
95
  export function viewsTsx(ids) {
96
96
  return `import { createViews } from "@graview/react";
97
- import { registerDefaultViews, registerViewSpecs } from "@graview/primitives";
97
+ import { registerDeclaredLenses, registerDefaultViews, registerViewSpecs } from "@graview/primitives";
98
98
  import { ${ids.appVar} } from "../domain/app.js";
99
99
  import { ${ids.schemaVar} } from "../domain/schema.js";
100
100
 
101
101
  /**
102
102
  * Nothing custom yet, on purpose. \`registerDefaultViews\` renders every kind
103
- * at every fidelity from the declaration alone, and \`registerViewSpecs\`
104
- * draws the cards, rows and pages the declaration writes as data
105
- * (\`viewSpecs\` in domain/app.ts — checked by \`graview check\`). Write a
106
- * view for a kind when the generic one is genuinely wrong, not on
107
- * principle — see the framework's \`apps/todo/src/ui/views.tsx\` for one
108
- * that earns its place. Give a group view a title and it is a PLACE,
109
- * listed by name in the bar:
103
+ * at every fidelity from the declaration alone, \`registerViewSpecs\` draws
104
+ * the cards, rows and pages the declaration writes as data (\`viewSpecs\` in
105
+ * domain/app.ts — checked by \`graview check\`), and
106
+ * \`registerDeclaredLenses\` draws every lens the declaration gives a title
107
+ * as a PLACE, listed by name in the bar:
108
+ *
109
+ * lenses: [{ name: "calendar", title: "The month", bindings: { ${ids.kind}: { start: "<date field>" } } }]
110
110
  *
111
- * .register("${ids.kind}", { cardinality: "many", fidelity: "full" }, lens.View, { title: "…" })
111
+ * Write a view for a kind when the generic one is genuinely wrong, not on
112
+ * principle — see the framework's \`apps/todo/src/ui/views.tsx\` for one
113
+ * that earns its place, registered before the declared lenses are laid over.
112
114
  */
113
115
  export function views() {
114
- return registerViewSpecs(registerDefaultViews(${ids.schemaVar}, createViews(${ids.schemaVar})), ${ids.schemaVar}, ${ids.appVar}.viewSpecs);
116
+ const own = registerViewSpecs(registerDefaultViews(${ids.schemaVar}, createViews(${ids.schemaVar})), ${ids.schemaVar}, ${ids.appVar}.viewSpecs);
117
+ return registerDeclaredLenses(own, ${ids.appVar});
115
118
  }
116
119
  `;
117
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { GraviewApp } from "./app.js";
2
+ import { type Plot } from "./city.js";
3
+ import type { AnySchema } from "./schema/schema.js";
4
+ export interface SceneDistrict {
5
+ readonly kind: string;
6
+ /** What the kind is called in the plural — what the district says it holds. */
7
+ readonly label: string;
8
+ /** Degrees, 0–359, rounded as the Scene rounds it for a plot. */
9
+ readonly hue: number;
10
+ /** Its plot on the map, in lattice cells. */
11
+ readonly plot: Plot;
12
+ /** How many stand on it, as given; 0 when nothing was said. */
13
+ readonly count: number;
14
+ }
15
+ export interface SceneDistrictOptions {
16
+ /** How many of each kind stand today: a populated kind takes a larger plot on the same corner. */
17
+ readonly counts?: Readonly<Record<string, number>>;
18
+ }
19
+ /**
20
+ * Every kind's district, in the order the Scene walks the map — the same
21
+ * plot and hue it draws for this app.
22
+ */
23
+ export declare function sceneDistricts<S extends AnySchema>(app: GraviewApp<S>, options?: SceneDistrictOptions): readonly SceneDistrict[];
24
+ //# sourceMappingURL=scene-districts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-districts.d.ts","sourceRoot":"","sources":["../src/scene-districts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,oBAAyB,GAAG,SAAS,aAAa,EAAE,CAkBpI"}
@@ -0,0 +1,27 @@
1
+ import { beginning } from "./beginning.js";
2
+ import { cityMap } from "./city.js";
3
+ import { hueFor } from "./theme/derive.js";
4
+ /**
5
+ * Every kind's district, in the order the Scene walks the map — the same
6
+ * plot and hue it draws for this app.
7
+ */
8
+ export function sceneDistricts(app, options = {}) {
9
+ const order = beginning(app).order.map((entry) => entry.kind);
10
+ const counts = options.counts ?? {};
11
+ const map = cityMap(app.schema, { order, counts });
12
+ const accents = app.brand?.accents;
13
+ return order
14
+ .filter((kind) => map.has(kind))
15
+ .map((kind) => {
16
+ const definition = app.schema.tryDefinition(kind);
17
+ const count = counts[kind];
18
+ return {
19
+ kind,
20
+ label: definition?.plural ?? `${kind}s`,
21
+ hue: Math.round(hueFor(kind, accents)),
22
+ plot: map.get(kind),
23
+ count: typeof count === "number" && Number.isFinite(count) && count > 0 ? Math.floor(count) : 0,
24
+ };
25
+ });
26
+ }
27
+ //# sourceMappingURL=scene-districts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-districts.js","sourceRoot":"","sources":["../src/scene-districts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAa,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA8B3C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAsB,GAAkB,EAAE,UAAgC,EAAE;IACxG,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;IACnC,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAoC,CAAC;QACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG;YACvC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE;YACpB,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAChG,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -102,6 +102,9 @@ export declare function fieldWords(definition: {
102
102
  readonly display?: {
103
103
  readonly labels?: Readonly<Record<string, string>>;
104
104
  };
105
+ readonly computed?: Readonly<Record<string, string | {
106
+ readonly label?: string;
107
+ }>>;
105
108
  } | undefined, key: string): string;
106
109
  /** "a" or "an", by how the word SOUNDS. */
107
110
  export declare function article(word: string): "a" | "an";