@graview/core 0.1.15 → 0.1.16

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 (190) hide show
  1. package/README.md +16 -5
  2. package/dist/app.d.ts +8 -8
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/arrangement.d.ts +2 -2
  5. package/dist/arrangement.d.ts.map +1 -1
  6. package/dist/arrangement.js +5 -5
  7. package/dist/arranging.js +3 -3
  8. package/dist/capabilities.js +1 -1
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/city.d.ts +5 -5
  11. package/dist/city.js +3 -3
  12. package/dist/cli/check/beginnings.js +2 -2
  13. package/dist/cli/check/brand.d.ts.map +1 -1
  14. package/dist/cli/check/brand.js +15 -9
  15. package/dist/cli/check/brand.js.map +1 -1
  16. package/dist/cli/check/city.js +1 -1
  17. package/dist/cli/check/context.js +1 -1
  18. package/dist/cli/check/relations.js +2 -2
  19. package/dist/cli/check/relations.js.map +1 -1
  20. package/dist/cli/check/settings.js +8 -8
  21. package/dist/cli/check/settings.js.map +1 -1
  22. package/dist/cli/check/views.d.ts +1 -1
  23. package/dist/cli/check/views.js +1 -1
  24. package/dist/cli/create.d.ts +1 -1
  25. package/dist/cli/create.js +5 -5
  26. package/dist/cli/describe.d.ts +1 -1
  27. package/dist/cli/describe.js +2 -2
  28. package/dist/cli/describe.js.map +1 -1
  29. package/dist/cli/index.d.ts +1 -1
  30. package/dist/columns.d.ts +1 -1
  31. package/dist/columns.js +1 -1
  32. package/dist/describe.d.ts +1 -1
  33. package/dist/describe.d.ts.map +1 -1
  34. package/dist/document/brand-check.d.ts +10 -0
  35. package/dist/document/brand-check.d.ts.map +1 -0
  36. package/dist/document/brand-check.js +33 -0
  37. package/dist/document/brand-check.js.map +1 -0
  38. package/dist/document/brand.d.ts +10 -0
  39. package/dist/document/brand.d.ts.map +1 -0
  40. package/dist/document/brand.js +49 -0
  41. package/dist/document/brand.js.map +1 -0
  42. package/dist/document/compile-checked.d.ts.map +1 -1
  43. package/dist/document/compile-checked.js +6 -2
  44. package/dist/document/compile-checked.js.map +1 -1
  45. package/dist/document/compile.d.ts +6 -0
  46. package/dist/document/compile.d.ts.map +1 -1
  47. package/dist/document/compile.js +4 -13
  48. package/dist/document/compile.js.map +1 -1
  49. package/dist/document/compiled.d.ts.map +1 -1
  50. package/dist/document/compiled.js +3 -2
  51. package/dist/document/compiled.js.map +1 -1
  52. package/dist/document/describe-place.d.ts +16 -0
  53. package/dist/document/describe-place.d.ts.map +1 -1
  54. package/dist/document/describe-place.js +14 -1
  55. package/dist/document/describe-place.js.map +1 -1
  56. package/dist/document/diff.d.ts.map +1 -1
  57. package/dist/document/diff.js +45 -6
  58. package/dist/document/diff.js.map +1 -1
  59. package/dist/document/edit.d.ts +7 -2
  60. package/dist/document/edit.d.ts.map +1 -1
  61. package/dist/document/edit.js +173 -45
  62. package/dist/document/edit.js.map +1 -1
  63. package/dist/document/expr/analyze.d.ts +2 -2
  64. package/dist/document/expr/analyze.js +2 -2
  65. package/dist/document/expr/print.js +1 -1
  66. package/dist/document/index.d.ts +1 -1
  67. package/dist/document/index.d.ts.map +1 -1
  68. package/dist/document/quote.d.ts +5 -0
  69. package/dist/document/quote.d.ts.map +1 -0
  70. package/dist/document/quote.js +17 -0
  71. package/dist/document/quote.js.map +1 -0
  72. package/dist/document/rules.d.ts +2 -2
  73. package/dist/document/rules.d.ts.map +1 -1
  74. package/dist/document/rules.js +2 -2
  75. package/dist/document/rules.js.map +1 -1
  76. package/dist/document/schema.d.ts +45 -2
  77. package/dist/document/schema.d.ts.map +1 -1
  78. package/dist/document/schema.js +22 -3
  79. package/dist/document/schema.js.map +1 -1
  80. package/dist/document/thumbnail.d.ts +9 -0
  81. package/dist/document/thumbnail.d.ts.map +1 -1
  82. package/dist/document/thumbnail.js +74 -12
  83. package/dist/document/thumbnail.js.map +1 -1
  84. package/dist/document/to-document.js +5 -5
  85. package/dist/document/to-document.js.map +1 -1
  86. package/dist/graph/graph.js +3 -3
  87. package/dist/graph/primitives.d.ts +2 -2
  88. package/dist/graph/primitives.js +2 -2
  89. package/dist/index.d.ts +10 -5
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +8 -5
  92. package/dist/index.js.map +1 -1
  93. package/dist/invariants/engine.js +1 -1
  94. package/dist/invariants/types.d.ts +3 -3
  95. package/dist/invariants/types.d.ts.map +1 -1
  96. package/dist/labels.d.ts +1 -1
  97. package/dist/modules.d.ts +1 -1
  98. package/dist/modules.js +1 -1
  99. package/dist/mutations/define-mutation.js +4 -4
  100. package/dist/mutations/define-mutation.js.map +1 -1
  101. package/dist/mutations/derive-edits.js +3 -3
  102. package/dist/mutations/node-ref.js +1 -1
  103. package/dist/mutations/types.d.ts +1 -1
  104. package/dist/mutations/words.js +3 -3
  105. package/dist/ops/types.d.ts +1 -1
  106. package/dist/ops/withheld.d.ts +3 -3
  107. package/dist/permissions/policy.d.ts +1 -1
  108. package/dist/permissions/policy.js +3 -3
  109. package/dist/permissions/types.d.ts +2 -2
  110. package/dist/places.d.ts +14 -1
  111. package/dist/places.d.ts.map +1 -1
  112. package/dist/places.js +27 -4
  113. package/dist/places.js.map +1 -1
  114. package/dist/scaffold/domain.js +3 -3
  115. package/dist/scaffold/index.d.ts +1 -1
  116. package/dist/scaffold/index.d.ts.map +1 -1
  117. package/dist/scaffold/names.d.ts +1 -1
  118. package/dist/scaffold/names.js +1 -1
  119. package/dist/scaffold/names.js.map +1 -1
  120. package/dist/scaffold/project.js +1 -1
  121. package/dist/scene-districts.d.ts +1 -1
  122. package/dist/schema/define-node.d.ts +4 -4
  123. package/dist/schema/define-node.d.ts.map +1 -1
  124. package/dist/schema/define-node.js +8 -8
  125. package/dist/schema/define-node.js.map +1 -1
  126. package/dist/schema/figures.d.ts +1 -1
  127. package/dist/schema/figures.js +7 -7
  128. package/dist/schema/figures.js.map +1 -1
  129. package/dist/schema/types.d.ts +1 -1
  130. package/dist/search.d.ts +13 -1
  131. package/dist/search.d.ts.map +1 -1
  132. package/dist/search.js +33 -14
  133. package/dist/search.js.map +1 -1
  134. package/dist/seen.d.ts +2 -2
  135. package/dist/seen.js +12 -12
  136. package/dist/seen.js.map +1 -1
  137. package/dist/settings.d.ts +1 -1
  138. package/dist/settings.js +3 -3
  139. package/dist/settings.js.map +1 -1
  140. package/dist/store.d.ts +2 -2
  141. package/dist/store.d.ts.map +1 -1
  142. package/dist/store.js +8 -8
  143. package/dist/store.js.map +1 -1
  144. package/dist/sync/google-calendar.js +1 -1
  145. package/dist/sync/types.d.ts +2 -2
  146. package/dist/testing.d.ts +1 -1
  147. package/dist/testing.d.ts.map +1 -1
  148. package/dist/testing.js +2 -2
  149. package/dist/testing.js.map +1 -1
  150. package/dist/theme/accent.d.ts +37 -0
  151. package/dist/theme/accent.d.ts.map +1 -0
  152. package/dist/theme/accent.js +138 -0
  153. package/dist/theme/accent.js.map +1 -0
  154. package/dist/theme/contrast.d.ts +7 -7
  155. package/dist/theme/contrast.d.ts.map +1 -1
  156. package/dist/theme/contrast.js +14 -14
  157. package/dist/theme/contrast.js.map +1 -1
  158. package/dist/theme/derive.d.ts +4 -4
  159. package/dist/theme/derive.d.ts.map +1 -1
  160. package/dist/theme/derive.js +19 -19
  161. package/dist/theme/derive.js.map +1 -1
  162. package/dist/theme/fonts.d.ts +19 -0
  163. package/dist/theme/fonts.d.ts.map +1 -0
  164. package/dist/theme/fonts.js +73 -0
  165. package/dist/theme/fonts.js.map +1 -0
  166. package/dist/theme/kit.d.ts +9 -9
  167. package/dist/theme/kit.d.ts.map +1 -1
  168. package/dist/theme/kit.js +15 -15
  169. package/dist/theme/kit.js.map +1 -1
  170. package/dist/theme/layers.d.ts +2 -2
  171. package/dist/theme/layers.d.ts.map +1 -1
  172. package/dist/theme/layers.js +2 -2
  173. package/dist/theme/layers.js.map +1 -1
  174. package/dist/theme/look.d.ts +3 -3
  175. package/dist/theme/look.d.ts.map +1 -1
  176. package/dist/theme/look.js +1 -1
  177. package/dist/theme/marks.d.ts +28 -0
  178. package/dist/theme/marks.d.ts.map +1 -0
  179. package/dist/theme/marks.js +237 -0
  180. package/dist/theme/marks.js.map +1 -0
  181. package/dist/theme/palettes.d.ts +2 -2
  182. package/dist/theme/palettes.js +2 -2
  183. package/dist/theme/types.d.ts +28 -6
  184. package/dist/theme/types.d.ts.map +1 -1
  185. package/dist/theme/types.js.map +1 -1
  186. package/dist/validate-graph.js +2 -2
  187. package/dist/version.d.ts +1 -1
  188. package/dist/version.js +1 -1
  189. package/dist/watched.js +8 -8
  190. package/package.json +1 -1
@@ -22,11 +22,11 @@ export declare function perMember(e: Extract<Expr, {
22
22
  export declare function analyzeExpr(expr: Expr): ExprShape;
23
23
  /**
24
24
  * HOW AN EXPRESSION'S WORK GROWS WITH THE GRAPH, as a power of its size:
25
- * 0 reads a record and its neighbours, 1 sweeps a kind (`all('offer')`),
25
+ * 0 reads a record and its neighbors, 1 sweeps a kind (`all('offer')`),
26
26
  * 2 sweeps a kind once for every member of a sweep. A per-member argument
27
27
  * costs once per member, so its degree ADDS to its set's; anything else
28
28
  * costs the most of its parts. Relations are walked, not swept: a record's
29
- * neighbours are its own, however large the graph.
29
+ * neighbors are its own, however large the graph.
30
30
  *
31
31
  * `computedDegree(name)` is what reading a name costs when it is a computed
32
32
  * field (a bare name is the subject's; `x.name` and a per-member name may
@@ -59,11 +59,11 @@ export function analyzeExpr(expr) {
59
59
  }
60
60
  /**
61
61
  * HOW AN EXPRESSION'S WORK GROWS WITH THE GRAPH, as a power of its size:
62
- * 0 reads a record and its neighbours, 1 sweeps a kind (`all('offer')`),
62
+ * 0 reads a record and its neighbors, 1 sweeps a kind (`all('offer')`),
63
63
  * 2 sweeps a kind once for every member of a sweep. A per-member argument
64
64
  * costs once per member, so its degree ADDS to its set's; anything else
65
65
  * costs the most of its parts. Relations are walked, not swept: a record's
66
- * neighbours are its own, however large the graph.
66
+ * neighbors are its own, however large the graph.
67
67
  *
68
68
  * `computedDegree(name)` is what reading a name costs when it is a computed
69
69
  * field (a bare name is the subject's; `x.name` and a per-member name may
@@ -6,7 +6,7 @@
6
6
  * never a regular expression over the text, which cannot tell the field
7
7
  * `quote` from the word 'quote' in a string or from a relation's `quote`.
8
8
  *
9
- * Parenthesises only where the grammar needs it. `and`, `or` and `not` are
9
+ * Parenthesizes only where the grammar needs it. `and`, `or` and `not` are
10
10
  * printed as words, the way the authoring guide writes them.
11
11
  */
12
12
  const LEVEL = {
@@ -17,7 +17,7 @@ export { applyPatch, PatchError } from "./patch.js";
17
17
  export type { PatchOp } from "./patch.js";
18
18
  export { planMigration, coerce, losesData } from "./migrate.js";
19
19
  export { editDocument, EDIT_OPS, renameIn } from "./edit.js";
20
- export type { DeclaredKinds, DocumentEdit, EditOutcome, EditOp, Fill, NameChange } from "./edit.js";
20
+ export type { DeclaredKinds, DocumentEdit, EditOptions, EditOutcome, EditOp, Fill, NameChange } from "./edit.js";
21
21
  export type { MigrationPlan, StoredGraph, MigrationFill } from "./migrate.js";
22
22
  export { upgradeDocument, UPGRADES } from "./upgrade.js";
23
23
  export type { Upgrade, Upgraded } from "./upgrade.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** The words in quotes. */
2
+ export declare function quoted(text: string): string;
3
+ /** The words in quotes, ending a sentence. */
4
+ export declare function quotedAtTheEnd(text: string): string;
5
+ //# sourceMappingURL=quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../src/document/quote.ts"],"names":[],"mappings":"AASA,2BAA2B;AAC3B,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,17 @@
1
+ /*
2
+ * WORDS A PERSON WROTE, QUOTED IN A SENTENCE (FR-125). An app's name, the
3
+ * line under it, a logo's alt text: said in quotes, and in curly ones when
4
+ * the words carry straight quotes of their own, so a sentence never reads
5
+ * `reads "Say "hi""`; and at the end of a sentence the words' own stop
6
+ * ends it, as American English puts it inside the quotes, so a line that
7
+ * ends with a period is never said with two.
8
+ */
9
+ /** The words in quotes. */
10
+ export function quoted(text) {
11
+ return text.includes('"') ? `“${text}”` : `"${text}"`;
12
+ }
13
+ /** The words in quotes, ending a sentence. */
14
+ export function quotedAtTheEnd(text) {
15
+ return /[.!?]$/.test(text) ? quoted(text) : `${quoted(text)}.`;
16
+ }
17
+ //# sourceMappingURL=quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.js","sourceRoot":"","sources":["../../src/document/quote.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2BAA2B;AAC3B,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;AACxD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC"}
@@ -9,7 +9,7 @@ import { type KindShape } from "./expr/evaluate.js";
9
9
  * declaration, TypeScript or document alike.
10
10
  */
11
11
  export declare function shapesOfSchema(schema: AnySchema): Map<string, KindShape>;
12
- /** A rule whose judgement is written in the rule language rather than as a function. */
12
+ /** A rule whose judgment is written in the rule language rather than as a function. */
13
13
  export interface ExpressionRuleSpec {
14
14
  /** The kind it judges, one violation per record; or the whole graph, at most one. */
15
15
  readonly over: string | "graph";
@@ -27,7 +27,7 @@ export interface ExpressionRuleSpec {
27
27
  }
28
28
  /**
29
29
  * A RULE THAT SAYS WHAT MUST HOLD, AND IS JUDGED (FR-07). The studio and a
30
- * checkout write a rule's judgement in the rule language instead of a
30
+ * checkout write a rule's judgment in the rule language instead of a
31
31
  * function the studio cannot see; this makes it the invariant the engine
32
32
  * runs. A syntax error is thrown here, when the rule is made — never later,
33
33
  * while judging. Out of budget is `over-budget`; any other mistake while
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/document/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,SAAS,EAAoB,KAAK,mBAAmB,EAAkB,MAAM,aAAa,CAAC;AAE9J,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMlG;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAYxE;AAYD,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,kBAAkB;AACxB,qGAAqG;AACrG,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACtC,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC9C,mBAAmB,CAwCrB"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/document/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,SAAS,EAAoB,KAAK,mBAAmB,EAAkB,MAAM,aAAa,CAAC;AAE9J,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMlG;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAYxE;AAYD,uFAAuF;AACvF,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,kBAAkB;AACxB,qGAAqG;AACrG,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACtC,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC9C,mBAAmB,CAwCrB"}
@@ -38,7 +38,7 @@ function shapesOf(graph) {
38
38
  }
39
39
  /**
40
40
  * A RULE THAT SAYS WHAT MUST HOLD, AND IS JUDGED (FR-07). The studio and a
41
- * checkout write a rule's judgement in the rule language instead of a
41
+ * checkout write a rule's judgment in the rule language instead of a
42
42
  * function the studio cannot see; this makes it the invariant the engine
43
43
  * runs. A syntax error is thrown here, when the rule is made — never later,
44
44
  * while judging. Out of budget is `over-budget`; any other mistake while
@@ -81,7 +81,7 @@ kinds, options = {}) {
81
81
  };
82
82
  const common = {
83
83
  label: title,
84
- judgement: { require: spec.require, ...(spec.when ? { when: spec.when } : {}), ...(spec.says ? { says: spec.says } : {}) },
84
+ judgment: { require: spec.require, ...(spec.when ? { when: spec.when } : {}), ...(spec.says ? { says: spec.says } : {}) },
85
85
  ...(spec.description ? { description: spec.description } : {}),
86
86
  ...(spec.repairs && spec.repairs.length > 0 ? { repairs: [...spec.repairs] } : {}),
87
87
  ...(spec.judgesPast ? { judgesPast: true } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/document/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/document/rules.ts"],"names":[],"mappings":"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"}
@@ -300,7 +300,7 @@ export declare const PolicySpec: z.ZodMiniObject<{
300
300
  }, z.core.$strict>;
301
301
  export type PolicySpec = z.infer<typeof PolicySpec>;
302
302
  /**
303
- * The installation's look and its money: an accent colour the palette is
303
+ * The installation's look and its money: an accent color the palette is
304
304
  * derived from, and the currency and locale a sum is said in wherever a
305
305
  * block names none (FR-100). Any of them may stand alone.
306
306
  */
@@ -309,17 +309,39 @@ export declare const BrandSpec: z.ZodMiniObject<{
309
309
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
310
310
  currency: z.ZodMiniOptional<z.ZodMiniString<string>>;
311
311
  locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
312
+ logo: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
313
+ src: z.ZodMiniString<string>;
314
+ alt: z.ZodMiniOptional<z.ZodMiniString<string>>;
315
+ }, z.core.$strict>]>>;
316
+ favicon: z.ZodMiniOptional<z.ZodMiniString<string>>;
317
+ typography: z.ZodMiniOptional<z.ZodMiniObject<{
318
+ display: z.ZodMiniOptional<z.ZodMiniString<string>>;
319
+ body: z.ZodMiniOptional<z.ZodMiniString<string>>;
320
+ mono: z.ZodMiniOptional<z.ZodMiniString<string>>;
321
+ }, z.core.$strict>>;
322
+ shape: z.ZodMiniOptional<z.ZodMiniObject<{
323
+ radius: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
324
+ density: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
325
+ }, z.core.$strict>>;
326
+ accents: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>>;
327
+ scheme: z.ZodMiniOptional<z.ZodMiniEnum<{
328
+ light: "light";
329
+ dark: "dark";
330
+ auto: "auto";
331
+ }>>;
312
332
  }, z.core.$strict>;
333
+ export type BrandSpec = z.infer<typeof BrandSpec>;
313
334
  /**
314
335
  * THE ARRANGEMENT (FR-80): the kinds in order, the kinds the home leaves
315
336
  * off, the place the app opens on. Loose enough that a document which
316
337
  * carried anything else under `pages` before FR-80 — when it was accepted
317
- * and ignored — still parses; `graview check` says what it cannot honour.
338
+ * and ignored — still parses; `graview check` says what it cannot honor.
318
339
  */
319
340
  export declare const PagesSpec: z.ZodMiniObject<{
320
341
  order: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
321
342
  hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
322
343
  first: z.ZodMiniOptional<z.ZodMiniString<string>>;
344
+ overview: z.ZodMiniOptional<z.ZodMiniString<string>>;
323
345
  }, z.core.$loose>;
324
346
  export declare const DocumentSpec: z.ZodMiniObject<{
325
347
  format: z.ZodMiniLiteral<"graview-document">;
@@ -506,6 +528,7 @@ export declare const DocumentSpec: z.ZodMiniObject<{
506
528
  order: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
507
529
  hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
508
530
  first: z.ZodMiniOptional<z.ZodMiniString<string>>;
531
+ overview: z.ZodMiniOptional<z.ZodMiniString<string>>;
509
532
  }, z.core.$loose>>;
510
533
  views: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
511
534
  card: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnknown>>;
@@ -517,6 +540,26 @@ export declare const DocumentSpec: z.ZodMiniObject<{
517
540
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
518
541
  currency: z.ZodMiniOptional<z.ZodMiniString<string>>;
519
542
  locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
543
+ logo: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
544
+ src: z.ZodMiniString<string>;
545
+ alt: z.ZodMiniOptional<z.ZodMiniString<string>>;
546
+ }, z.core.$strict>]>>;
547
+ favicon: z.ZodMiniOptional<z.ZodMiniString<string>>;
548
+ typography: z.ZodMiniOptional<z.ZodMiniObject<{
549
+ display: z.ZodMiniOptional<z.ZodMiniString<string>>;
550
+ body: z.ZodMiniOptional<z.ZodMiniString<string>>;
551
+ mono: z.ZodMiniOptional<z.ZodMiniString<string>>;
552
+ }, z.core.$strict>>;
553
+ shape: z.ZodMiniOptional<z.ZodMiniObject<{
554
+ radius: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
555
+ density: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
556
+ }, z.core.$strict>>;
557
+ accents: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>>;
558
+ scheme: z.ZodMiniOptional<z.ZodMiniEnum<{
559
+ light: "light";
560
+ dark: "dark";
561
+ auto: "auto";
562
+ }>>;
520
563
  }, z.core.$strict>>;
521
564
  settings: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
522
565
  migrations: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ import * as z from "../schema/zod.js";
13
13
  export const FORMAT = "graview-document";
14
14
  export const FORMAT_VERSION = 1;
15
15
  export const MAX_DOCUMENT_BYTES = 256 * 1024;
16
+ /** The most a brand's logo or page icon may be, written inline (FR-124). */
17
+ const MARK_MAX = 64 * 1024;
16
18
  /** kebab-case: kinds, acts, rules, edges, roles, modules. */
17
19
  export const NAME = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
18
20
  /** Field names are identifiers so a rule can say them bare: `quote != null`. */
@@ -182,16 +184,31 @@ export const PolicySpec = z.strictObject({
182
184
  sees: z.optional(z.array(SightSpec)),
183
185
  });
184
186
  /**
185
- * The installation's look and its money: an accent colour the palette is
187
+ * The installation's look and its money: an accent color the palette is
186
188
  * derived from, and the currency and locale a sum is said in wherever a
187
189
  * block names none (FR-100). Any of them may stand alone.
188
190
  */
189
191
  export const BrandSpec = z.strictObject({
190
- accent: z.optional(z.string().check(z.regex(/^#[0-9a-fA-F]{6}$/, 'an accent is a colour like "#c2577a"'))),
192
+ accent: z.optional(z.string().check(z.regex(/^#[0-9a-fA-F]{6}$/, 'an accent is a color like "#c2577a"'))),
191
193
  name: z.optional(str(1, 60)),
192
194
  currency: z.optional(z.string().check(z.regex(/^[A-Z]{3}$/, 'a currency is its three-letter code, like "USD" or "EUR"'))),
193
195
  // A language tag ("en-US", "de-DE"); `graview check` says when it is none (`brand-locale`).
194
196
  locale: z.optional(str(2, 35)),
197
+ /*
198
+ * THE REST OF THE BRAND (FR-124), each optional and each checked by
199
+ * `graview check` (`brand-mark`, `brand-font`): a logo and a page icon —
200
+ * inline SVG, or a path on the app's own host — the faces words are set
201
+ * in, how round and how roomy, a hue per kind, and the scheme it prefers.
202
+ */
203
+ logo: z.optional(z.union([str(1, MARK_MAX), z.strictObject({ src: str(1, MARK_MAX), alt: z.optional(str(1, 120)) })])),
204
+ favicon: z.optional(str(1, MARK_MAX)),
205
+ typography: z.optional(z.strictObject({ display: z.optional(str(1, 200)), body: z.optional(str(1, 200)), mono: z.optional(str(1, 200)) })),
206
+ shape: z.optional(z.strictObject({
207
+ radius: z.optional(z.number().check(z.minimum(0), z.maximum(32))),
208
+ density: z.optional(z.number().check(z.minimum(0.75), z.maximum(1.5))),
209
+ })),
210
+ accents: z.optional(z.record(z.string(), z.number().check(z.minimum(0), z.maximum(360)))),
211
+ scheme: z.optional(z.enum(["light", "dark", "auto"])),
195
212
  });
196
213
  const loose = z.record(z.string(), z.unknown());
197
214
  /** A kind's view specs: which slots it fills. The blocks are checked in views.ts, sentence by sentence. */
@@ -204,12 +221,14 @@ const ViewSpecsSpec = z.strictObject({
204
221
  * THE ARRANGEMENT (FR-80): the kinds in order, the kinds the home leaves
205
222
  * off, the place the app opens on. Loose enough that a document which
206
223
  * carried anything else under `pages` before FR-80 — when it was accepted
207
- * and ignored — still parses; `graview check` says what it cannot honour.
224
+ * and ignored — still parses; `graview check` says what it cannot honor.
208
225
  */
209
226
  export const PagesSpec = z.looseObject({
210
227
  order: z.optional(z.array(z.string())),
211
228
  hide: z.optional(z.array(z.string())),
212
229
  first: z.optional(z.string()),
230
+ /* What the scene is called on the bar (FR-132); "Overview" when unsaid. */
231
+ overview: z.optional(z.string().check(z.minLength(1), z.maxLength(40))),
213
232
  });
214
233
  export const DocumentSpec = z.strictObject({
215
234
  format: z.literal(FORMAT),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,15 @@ export interface SceneThumbnailOptions {
43
43
  * else one block per member up to five, taller for more, else one block.
44
44
  */
45
45
  readonly minBuilding?: number;
46
+ /**
47
+ * `"icon"` draws the app as a tab's icon (FR-130): 32 × 32, each
48
+ * district on its whole block in its hue with one block standing on it,
49
+ * no strokes, readable at 16 px, under 1.5 KB, and named by the app's
50
+ * name alone — a standalone SVG a host serves as a favicon. `width`,
51
+ * `height`, `fit` and `minBuilding` do not apply; counts raise a
52
+ * district's block as they raise its one block on a tile.
53
+ */
54
+ readonly size?: "icon";
46
55
  }
47
56
  /** What the thumbnail can be drawn from: a declaration document (an object or its JSON), or an app already compiled or declared. */
48
57
  export type ThumbnailSource = GraviewDocument | GraviewApp | string;
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.d.ts","sourceRoot":"","sources":["../../src/document/thumbnail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwBnD,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,qHAAqH;IACrH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,oIAAoI;AACpI,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,MAAM,CAAC;AAgPpE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAmFnG"}
1
+ {"version":3,"file":"thumbnail.d.ts","sourceRoot":"","sources":["../../src/document/thumbnail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwBnD,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,qHAAqH;IACrH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oIAAoI;AACpI,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,MAAM,CAAC;AAoTpE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAoFnG"}
@@ -1,6 +1,6 @@
1
1
  import { heightOf, MAX_SIDE, toIso, villageCap, villageOf } from "../city.js";
2
2
  import { sceneDistricts } from "../scene-districts.js";
3
- import { coloursIn, hsl } from "../theme/contrast.js";
3
+ import { colorsIn, hsl } from "../theme/contrast.js";
4
4
  import { isoShade } from "../theme/look.js";
5
5
  import { SCHEMES } from "../theme/palettes.js";
6
6
  import { compileDocumentWithoutCheck } from "./compile.js";
@@ -27,7 +27,7 @@ function appOf(source) {
27
27
  const compiled = compileDocumentWithoutCheck(source);
28
28
  return compiled.ok ? compiled.app : null;
29
29
  }
30
- /** One block on the ground: three faces from its foot's centre in lattice cells, and every point it reaches (for the view box). */
30
+ /** One block on the ground: three faces from its foot's center in lattice cells, and every point it reaches (for the view box). */
31
31
  function block(col, row, footprint, height, hue, scheme) {
32
32
  const shade = isoShade(scheme);
33
33
  const half = footprint / 2;
@@ -45,7 +45,7 @@ function block(col, row, footprint, height, hue, scheme) {
45
45
  const right = at(col + half, row - half, rise);
46
46
  const front = at(col + half, row + half, rise);
47
47
  const left = at(col - half, row + half, rise);
48
- const edge = coloursIn(shade.roofEdge)[0];
48
+ const edge = colorsIn(shade.roofEdge)[0];
49
49
  /*
50
50
  * Each face a path from one corner, the rest relative: a wall is two
51
51
  * corners of the roof and the drop to the ground, a roof the diamond.
@@ -72,11 +72,11 @@ function block(col, row, footprint, height, hue, scheme) {
72
72
  */
73
73
  const VILLAGE_MIN_PX = 4;
74
74
  const MOST_BUILDINGS = 300;
75
- /** One block for the district itself, at its plot's centre, taller for more members: the district seen from furthest away. */
75
+ /** One block for the district itself, at its plot's center, taller for more members: the district seen from furthest away. */
76
76
  function landmark(plot, district, scheme) {
77
- const centre = { col: plot.col + plot.side / 2, row: plot.row + plot.side / 2 };
77
+ const center = { col: plot.col + plot.side / 2, row: plot.row + plot.side / 2 };
78
78
  const height = 1.25 + Math.min(1.25, Math.log2(1 + district.count) * 0.2);
79
- return { depth: centre.col + centre.row, ...block(centre.col, centre.row, plot.side * 0.56, height, district.hue, scheme) };
79
+ return { depth: center.col + center.row, ...block(center.col, center.row, plot.side * 0.56, height, district.hue, scheme) };
80
80
  }
81
81
  /** What stands on one district: its village when it has members and room to show them, else one block for the district itself. */
82
82
  function standing(district, scheme, village) {
@@ -188,7 +188,7 @@ function standingFitted(district, scheme, rung, said) {
188
188
  });
189
189
  return { stands, narrowest: footprint };
190
190
  }
191
- /** The view box: the drawing's own bounds with `pad` of air, widened on its shorter side to the picture's proportion so the city is centred, never stretched. */
191
+ /** The view box: the drawing's own bounds with `pad` of air, widened on its shorter side to the picture's proportion so the city is centered, never stretched. */
192
192
  function frame(all, pad, width, height) {
193
193
  const box = bounds(all);
194
194
  let minX = box.minX - pad;
@@ -219,6 +219,66 @@ function bounds(all) {
219
219
  maxY: Math.max(...all.map((p) => p.y)),
220
220
  };
221
221
  }
222
+ /*
223
+ * AN ICON (FR-130). A tab is 16 pixels, and every app's was the same cube
224
+ * in its accent. At that size a village is a smudge and a street is
225
+ * nothing, so the icon keeps what still reads: each district on its whole
226
+ * block, from the corner the Scene gives it, in its hue — the plot solid,
227
+ * in its curb's color, since the Scene's 12% wash is invisible at 16 px —
228
+ * and one block on it, taller for more. Its coordinates are the
229
+ * icon's own pixels, to a tenth, so the whole picture is a kilobyte.
230
+ */
231
+ const ICON = 32;
232
+ function sceneIcon(app, name, districts, scheme, options) {
233
+ const shade = isoShade(scheme);
234
+ const tokens = (app?.brand?.schemes ?? SCHEMES)[scheme] ?? SCHEMES[scheme];
235
+ const ground = colorsIn(tokens.ground)[0] ?? colorsIn(SCHEMES[scheme].ground)[0];
236
+ /* In lattice units first: each district's diamond and the block at its center, as the landmark stands it. */
237
+ const drawn = districts.map((district) => {
238
+ const plot = wholeBlock(district.plot);
239
+ const at = (c, r, lift = 0) => {
240
+ const p = toIso(c, r, CELL);
241
+ return { x: p.x, y: p.y - lift };
242
+ };
243
+ const ground4 = [at(plot.col, plot.row), at(plot.col + plot.side, plot.row), at(plot.col + plot.side, plot.row + plot.side), at(plot.col, plot.row + plot.side)];
244
+ const center = { col: plot.col + plot.side / 2, row: plot.row + plot.side / 2 };
245
+ const half = (plot.side * 0.56) / 2;
246
+ const rise = plot.side * 0.56 * CELL * 0.5 * (1.25 + Math.min(1.25, Math.log2(1 + district.count) * 0.2));
247
+ const foot = [at(center.col - half, center.row - half), at(center.col + half, center.row - half), at(center.col + half, center.row + half), at(center.col - half, center.row + half)];
248
+ const roof = foot.map((p) => ({ x: p.x, y: p.y - rise }));
249
+ const [back, right, front, left] = roof;
250
+ const [, rightFoot, frontFoot, leftFoot] = foot;
251
+ return {
252
+ district,
253
+ plot: ground4,
254
+ left: [left, front, frontFoot, leftFoot],
255
+ right: [front, right, rightFoot, frontFoot],
256
+ roof: [back, right, front, left],
257
+ depth: center.col + center.row,
258
+ };
259
+ });
260
+ const view = frame(drawn.flatMap((d) => [...d.plot, ...d.roof]), CELL * 0.25, ICON, ICON);
261
+ const scale = ICON / (view.maxX - view.minX);
262
+ const path = (fill, list) => `<path fill="${fill}" d="M${list.map((p) => `${fmt((p.x - view.minX) * scale)} ${fmt((p.y - view.minY) * scale)}`).join(" ")}z"/>`;
263
+ const groups = [...drawn]
264
+ .sort((a, b) => a.depth - b.depth)
265
+ .map((d) => {
266
+ const hue = d.district.hue;
267
+ const curb = shade.plotEdge;
268
+ return (`<g data-kind="${escapeSvg(d.district.kind)}">` +
269
+ path(face(hue, curb), d.plot) +
270
+ path(face(hue, shade.left), d.left) +
271
+ path(face(hue, shade.right), d.right) +
272
+ path(face(hue, shade.roof), d.roof) +
273
+ `</g>`);
274
+ });
275
+ const background = options.background === false ? "" : `<rect width="${ICON}" height="${ICON}" fill="${hex(ground)}"/>`;
276
+ return (`<svg xmlns="http://www.w3.org/2000/svg" width="${ICON}" height="${ICON}" viewBox="0 0 ${ICON} ${ICON}" role="img" data-scheme="${scheme}">` +
277
+ `<title>${escapeSvg(options.title ?? name)}</title>` +
278
+ background +
279
+ groups.join("") +
280
+ `</svg>`);
281
+ }
222
282
  /**
223
283
  * The Scene of an app from altitude, as a standalone SVG string: each
224
284
  * kind's plot on the declaration's own map in its hue, with a block or its
@@ -234,10 +294,13 @@ export function sceneThumbnail(source, options = {}) {
234
294
  const height = Math.max(8, Math.round(options.height ?? 132));
235
295
  const app = appOf(source);
236
296
  const districts = app ? sceneDistricts(app, options.counts ? { counts: options.counts } : {}) : [];
297
+ const name = app?.name ?? (typeof source === "object" && source !== null && typeof source.name === "string" ? source.name : "An app");
298
+ if (options.size === "icon")
299
+ return sceneIcon(app, name, districts, scheme, options);
237
300
  const shade = isoShade(scheme);
238
301
  const tokens = (app?.brand?.schemes ?? SCHEMES)[scheme] ?? SCHEMES[scheme];
239
- const ground = coloursIn(tokens.ground)[0] ?? coloursIn(SCHEMES[scheme].ground)[0];
240
- const roofEdge = coloursIn(shade.roofEdge)[0];
302
+ const ground = colorsIn(tokens.ground)[0] ?? colorsIn(SCHEMES[scheme].ground)[0];
303
+ const roofEdge = colorsIn(shade.roofEdge)[0];
241
304
  const fitted = options.fit === "content";
242
305
  const given = options.minBuilding;
243
306
  const minBuilding = typeof given === "number" && Number.isFinite(given) && given >= 0 ? given : fitted ? FITTED_MIN_PX : VILLAGE_MIN_PX;
@@ -250,9 +313,9 @@ export function sceneThumbnail(source, options = {}) {
250
313
  const corners = [toIso(plot.col, plot.row, CELL), toIso(plot.col + plot.side, plot.row, CELL), toIso(plot.col + plot.side, plot.row + plot.side, CELL), toIso(plot.col, plot.row + plot.side, CELL)];
251
314
  all.push(...corners);
252
315
  const fill = hsl(hue, shade.plot.saturation / 100, shade.plot.lightness / 100);
253
- const kerb = hsl(hue, shade.plotEdge.saturation / 100, shade.plotEdge.lightness / 100);
316
+ const curb = hsl(hue, shade.plotEdge.saturation / 100, shade.plotEdge.lightness / 100);
254
317
  tiles.push(`<g data-kind="${escapeSvg(district.kind)}"><title>${escapeSvg(district.count > 0 ? `${district.label}: ${district.count}` : district.label)}</title>` +
255
- `<polygon fill="${hex(fill)}" stroke="${hex(kerb)}" points="${points(corners)}"/></g>`);
318
+ `<polygon fill="${hex(fill)}" stroke="${hex(curb)}" points="${points(corners)}"/></g>`);
256
319
  }
257
320
  let stands = [];
258
321
  let view;
@@ -289,7 +352,6 @@ export function sceneThumbnail(source, options = {}) {
289
352
  stands.sort((a, b) => a.depth - b.depth);
290
353
  const { minX, maxX, minY, maxY } = view ?? frame(all, CELL * 0.6, width, height);
291
354
  const viewBox = `${fmt(minX)} ${fmt(minY)} ${fmt(maxX - minX)} ${fmt(maxY - minY)}`;
292
- const name = app?.name ?? (typeof source === "object" && source !== null && typeof source.name === "string" ? source.name : "An app");
293
355
  const title = options.title ??
294
356
  (app
295
357
  ? districts.length === 0