@graview/primitives 0.1.16 → 0.1.18

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 +47 -2
  2. package/dist/app-bar.d.ts +87 -19
  3. package/dist/app-bar.d.ts.map +1 -1
  4. package/dist/app-bar.js +379 -141
  5. package/dist/app-bar.js.map +1 -1
  6. package/dist/bar-panes-door.d.ts +8 -0
  7. package/dist/bar-panes-door.d.ts.map +1 -0
  8. package/dist/bar-panes-door.js +10 -0
  9. package/dist/bar-panes-door.js.map +1 -0
  10. package/dist/bar-panes.d.ts.map +1 -1
  11. package/dist/bar-panes.js +3 -27
  12. package/dist/bar-panes.js.map +1 -1
  13. package/dist/chat.js +1 -1
  14. package/dist/chat.js.map +1 -1
  15. package/dist/choice.d.ts +9 -0
  16. package/dist/choice.d.ts.map +1 -0
  17. package/dist/choice.js +21 -0
  18. package/dist/choice.js.map +1 -0
  19. package/dist/companion.d.ts +0 -15
  20. package/dist/companion.d.ts.map +1 -1
  21. package/dist/companion.js +19 -150
  22. package/dist/companion.js.map +1 -1
  23. package/dist/connections.d.ts +7 -1
  24. package/dist/connections.d.ts.map +1 -1
  25. package/dist/connections.js +13 -13
  26. package/dist/connections.js.map +1 -1
  27. package/dist/declared-lens-doors.d.ts +3 -3
  28. package/dist/declared-lens-doors.d.ts.map +1 -1
  29. package/dist/declared-lens-doors.js +45 -25
  30. package/dist/declared-lens-doors.js.map +1 -1
  31. package/dist/default-view.d.ts +2 -0
  32. package/dist/default-view.d.ts.map +1 -1
  33. package/dist/default-view.js +10 -4
  34. package/dist/default-view.js.map +1 -1
  35. package/dist/default-views.d.ts.map +1 -1
  36. package/dist/default-views.js +195 -42
  37. package/dist/default-views.js.map +1 -1
  38. package/dist/editable.d.ts +31 -0
  39. package/dist/editable.d.ts.map +1 -1
  40. package/dist/editable.js +86 -17
  41. package/dist/editable.js.map +1 -1
  42. package/dist/figure.js +1 -1
  43. package/dist/figure.js.map +1 -1
  44. package/dist/find.d.ts.map +1 -1
  45. package/dist/find.js +23 -6
  46. package/dist/find.js.map +1 -1
  47. package/dist/frame.d.ts +3 -2
  48. package/dist/frame.d.ts.map +1 -1
  49. package/dist/frame.js +2 -1
  50. package/dist/frame.js.map +1 -1
  51. package/dist/graview-mark.d.ts +21 -0
  52. package/dist/graview-mark.d.ts.map +1 -0
  53. package/dist/graview-mark.js +24 -0
  54. package/dist/graview-mark.js.map +1 -0
  55. package/dist/index.d.ts +14 -8
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +10 -6
  58. package/dist/index.js.map +1 -1
  59. package/dist/ladder.d.ts.map +1 -1
  60. package/dist/ladder.js +4 -10
  61. package/dist/ladder.js.map +1 -1
  62. package/dist/lens/calendar-dates.d.ts +2 -0
  63. package/dist/lens/calendar-dates.d.ts.map +1 -1
  64. package/dist/lens/calendar-dates.js +2 -0
  65. package/dist/lens/calendar-dates.js.map +1 -1
  66. package/dist/lens/calendar-drawing.d.ts +2 -2
  67. package/dist/lens/calendar-drawing.d.ts.map +1 -1
  68. package/dist/lens/calendar-drawing.js +1 -2
  69. package/dist/lens/calendar-drawing.js.map +1 -1
  70. package/dist/lens/calendar-spans.d.ts.map +1 -1
  71. package/dist/lens/calendar-spans.js +1 -2
  72. package/dist/lens/calendar-spans.js.map +1 -1
  73. package/dist/lens/calendar-view.d.ts +2 -1
  74. package/dist/lens/calendar-view.d.ts.map +1 -1
  75. package/dist/lens/calendar-view.js +2 -1
  76. package/dist/lens/calendar-view.js.map +1 -1
  77. package/dist/notice-place.d.ts.map +1 -1
  78. package/dist/notice-place.js +2 -0
  79. package/dist/notice-place.js.map +1 -1
  80. package/dist/pages.d.ts +5 -3
  81. package/dist/pages.d.ts.map +1 -1
  82. package/dist/pages.js +5 -2
  83. package/dist/pages.js.map +1 -1
  84. package/dist/places.js +2 -2
  85. package/dist/places.js.map +1 -1
  86. package/dist/profile.d.ts.map +1 -1
  87. package/dist/profile.js +34 -9
  88. package/dist/profile.js.map +1 -1
  89. package/dist/prose-editor.d.ts +9 -0
  90. package/dist/prose-editor.d.ts.map +1 -0
  91. package/dist/prose-editor.js +64 -0
  92. package/dist/prose-editor.js.map +1 -0
  93. package/dist/record-head.d.ts +28 -0
  94. package/dist/record-head.d.ts.map +1 -0
  95. package/dist/record-head.js +3 -0
  96. package/dist/record-head.js.map +1 -0
  97. package/dist/relation-key.d.ts.map +1 -1
  98. package/dist/relation-key.js +2 -2
  99. package/dist/relation-key.js.map +1 -1
  100. package/dist/scene-css.d.ts.map +1 -1
  101. package/dist/scene-css.js +15 -2
  102. package/dist/scene-css.js.map +1 -1
  103. package/dist/scene-places.d.ts +37 -0
  104. package/dist/scene-places.d.ts.map +1 -0
  105. package/dist/scene-places.js +77 -0
  106. package/dist/scene-places.js.map +1 -0
  107. package/dist/scene.d.ts +0 -1
  108. package/dist/scene.d.ts.map +1 -1
  109. package/dist/scene.js +0 -1
  110. package/dist/scene.js.map +1 -1
  111. package/dist/seats.d.ts.map +1 -1
  112. package/dist/seats.js +2 -11
  113. package/dist/seats.js.map +1 -1
  114. package/dist/shell.d.ts.map +1 -1
  115. package/dist/shell.js +1 -2
  116. package/dist/shell.js.map +1 -1
  117. package/dist/spec-views.d.ts +17 -2
  118. package/dist/spec-views.d.ts.map +1 -1
  119. package/dist/spec-views.js +69 -7
  120. package/dist/spec-views.js.map +1 -1
  121. package/dist/subject.d.ts +17 -0
  122. package/dist/subject.d.ts.map +1 -0
  123. package/dist/subject.js +155 -0
  124. package/dist/subject.js.map +1 -0
  125. package/dist/text-body.d.ts +28 -0
  126. package/dist/text-body.d.ts.map +1 -0
  127. package/dist/text-body.js +64 -0
  128. package/dist/text-body.js.map +1 -0
  129. package/dist/theme.d.ts.map +1 -1
  130. package/dist/theme.js +13 -7
  131. package/dist/theme.js.map +1 -1
  132. package/dist/view-doors.d.ts +5 -1
  133. package/dist/view-doors.d.ts.map +1 -1
  134. package/dist/view-doors.js +28 -14
  135. package/dist/view-doors.js.map +1 -1
  136. package/dist/workbench/answer-args.d.ts.map +1 -1
  137. package/dist/workbench/answer-args.js +26 -2
  138. package/dist/workbench/answer-args.js.map +1 -1
  139. package/dist/workbench/inspector.js +1 -1
  140. package/dist/workbench/inspector.js.map +1 -1
  141. package/dist/workbench/standing.d.ts.map +1 -1
  142. package/dist/workbench/standing.js +4 -3
  143. package/dist/workbench/standing.js.map +1 -1
  144. package/fonts/OFL-Montserrat.txt +93 -0
  145. package/fonts/montserrat-latin.woff2 +0 -0
  146. package/fonts/montserrat.css +23 -0
  147. package/package.json +13 -8
  148. package/dist/home-landing.d.ts +0 -18
  149. package/dist/home-landing.d.ts.map +0 -1
  150. package/dist/home-landing.js +0 -59
  151. package/dist/home-landing.js.map +0 -1
@@ -1,12 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { labelOf } from "@graview/core";
3
- import { compileBlocks, fieldSpecsOf, isTallBlock, resolveBlocks } from "@graview/core/blocks";
3
+ import { compileBlocks, fieldSpecsOf, isTallBlock, resolveBlocks, whatBlocksSay } from "@graview/core/blocks";
4
4
  import { shapesOfSchema } from "@graview/core/document";
5
5
  import { useGraph, useGraview, ViewModeProvider } from "@graview/react/provider";
6
6
  import { createContext, useContext } from "react";
7
- import { DefaultView } from "./default-view.js";
7
+ import { DefaultView, useDefaultElsewhere } from "./default-view.js";
8
+ import { RecordHeadContext } from "./record-head.js";
8
9
  import { KindFigure } from "./figure.js";
9
10
  import { Panel } from "./primitives/index.js";
11
+ import { hasShape, TextBody } from "./text-body.js";
10
12
  /*
11
13
  * VIEWS AS DATA, DRAWN (FR-03).
12
14
  *
@@ -39,6 +41,7 @@ const sameWords = (a, b) => a.trim().toLowerCase().replace(/[_-]+/g, " ") === b.
39
41
  function Resolved({ block }) {
40
42
  const said = useContext(SaidAround);
41
43
  const under = useContext(HeadingsUnder);
44
+ const homeLine = useContext(HomeLine);
42
45
  if (said && block.t === "badge" && said.values.some((value) => sameWords(value, block.text)))
43
46
  return null;
44
47
  if (said && block.t === "field" && said.field !== undefined && block.field === said.field)
@@ -47,11 +50,15 @@ function Resolved({ block }) {
47
50
  case "title":
48
51
  return _jsx("strong", { className: "graview-spec-title", children: block.text });
49
52
  case "text":
53
+ // A value with lines in it keeps them — its paragraphs and lists (FR-146); one line of words stays a line.
54
+ if (hasShape(block.text)) {
55
+ return (_jsx("div", { className: "graview-spec-text", ...(block.tone ? { "data-graview-tone": block.tone } : {}), children: _jsx(TextBody, { text: block.text }) }));
56
+ }
50
57
  return (_jsx("p", { className: "graview-spec-text", ...(block.tone ? { "data-graview-tone": block.tone } : {}), children: block.text }));
51
58
  case "badge":
52
59
  return (_jsx("span", { className: "graview-spec-badge", "data-graview-tone": block.tone, children: block.text }));
53
60
  case "field":
54
- 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) })] }));
61
+ 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", ...(hasShape(block.text) ? { style: { whiteSpace: "pre-line" } } : {}), children: block.href ? (_jsx("a", { className: "graview-spec-link", href: block.href, rel: "noopener noreferrer", target: "_blank", children: block.text })) : (block.text) })] }));
55
62
  case "progress":
56
63
  if (block.value === undefined || block.max === undefined) {
57
64
  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 })] }));
@@ -67,7 +74,9 @@ function Resolved({ block }) {
67
74
  return _jsx(SpecFigure, {});
68
75
  case "headline": {
69
76
  const Tag = `h${Math.min(6, block.level + under)}`;
70
- return (_jsx(Tag, { className: "graview-spec-headline", "data-level": block.level, children: block.text }));
77
+ const heading = (_jsx(Tag, { className: "graview-spec-headline", "data-level": block.level, children: block.text }));
78
+ // The home's first headline is the page's heading: the app's line follows it.
79
+ return homeLine !== null && block.level === 1 ? (_jsxs(_Fragment, { children: [heading, homeLine] })) : (heading);
71
80
  }
72
81
  case "number":
73
82
  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] }));
@@ -107,6 +116,14 @@ export const SpecLinks = createContext(null);
107
116
  * element (`data-level`), which is what it is drawn by.
108
117
  */
109
118
  export const HeadingsUnder = createContext(0);
119
+ /**
120
+ * THE LINE UNDER THE HOME'S HEADING: the app's description, said on the
121
+ * routed face's home (FR-131). Where the declaration writes its home as
122
+ * blocks, the line follows the home's own headline — the page's heading —
123
+ * rather than standing over it as an eyebrow; a home with no headline says
124
+ * it first. Given only where the home is the page.
125
+ */
126
+ export const HomeLine = createContext(null);
110
127
  /** The steps a list or a figure about no one record may take: it sweeps whole kinds. */
111
128
  const SWEEP_BUDGET = 5_000;
112
129
  function Listed({ node, as, depth, said = null }) {
@@ -171,7 +188,10 @@ export function SpecPlace({ blocks, heading = 2, firstHeading, slot }) {
171
188
  ...(firstHeading !== undefined ? { firstHeading } : {}),
172
189
  budget: SWEEP_BUDGET,
173
190
  };
174
- return (_jsx("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, children: _jsx(SpecBlocks, { blocks: blocks, ctx: ctx }) }));
191
+ // The app's line goes under the home's headline when it has one (`HomeLine`), else first.
192
+ const line = useContext(HomeLine);
193
+ const headed = blocks.some((block) => block.t === "headline");
194
+ return (_jsxs("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, children: [line !== null && !headed ? line : null, _jsx(HomeLine.Provider, { value: headed ? line : null, children: _jsx(SpecBlocks, { blocks: blocks, ctx: ctx }) })] }));
175
195
  }
176
196
  const today = () => new Date().toISOString().slice(0, 10);
177
197
  const SHAPES = new WeakMap();
@@ -222,6 +242,42 @@ function SpecCard({ blocks, node, selected, flagged }) {
222
242
  const titled = first?.t === "title";
223
243
  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 }) }) }));
224
244
  }
245
+ /**
246
+ * A KIND'S PAGE, AT THE HEAD OF ITS RECORD — DRAWN ONCE (FR-141).
247
+ *
248
+ * The page's blocks were drawn bare above the framework's record, the two
249
+ * in one column the scene centered on a box sized for the record alone: the
250
+ * page spilled out of it, under the app bar where nothing scrolls to it and
251
+ * over the cards beside it, while the record in front said the page's goal
252
+ * and its four topics again. A selected record is one thing now. Where the
253
+ * surface is the framework's own record (the pages face) the page heads it
254
+ * as before; everywhere else the page is handed to the record as its head
255
+ * — its title the frame's, its blocks first — and the record draws only
256
+ * what the page did not say.
257
+ */
258
+ function SpecPage({ blocks, props }) {
259
+ const node = props.node;
260
+ const ctx = useSpecContext(node);
261
+ const elsewhere = useDefaultElsewhere();
262
+ const resolved = resolveBlocks(blocks, { ...ctx, heading: 2 });
263
+ const said = whatBlocksSay(blocks, resolved);
264
+ if (elsewhere) {
265
+ // The record page's own heading is the record's name: a page title saying it again is not drawn under it.
266
+ const named = said.title !== undefined && said.title === labelOf(ctx.schema?.tryDefinition(node.kind), node);
267
+ return (_jsx("div", { className: "graview-spec graview-spec-page", "data-graview-spec": "page", "data-graview-kind": node.kind, children: _jsx(Figure.Provider, { value: ctx.figure, children: _jsx(ResolvedBlocks, { blocks: named ? resolved.slice(1) : resolved }) }) }));
268
+ }
269
+ const body = (_jsx("div", { className: "graview-spec graview-spec-page", "data-graview-spec": "page", "data-graview-kind": node.kind, children: _jsx(Figure.Provider, { value: ctx.figure, children: _jsx(ResolvedBlocks, { blocks: said.title !== undefined ? resolved.slice(1) : resolved }) }) }));
270
+ return (_jsx(RecordHeadContext.Provider, { value: { nodeId: node.id, ...(said.title !== undefined ? { title: said.title } : {}), body, fields: said.fields, records: said.records }, children: _jsx(DefaultView, { ...props }) }));
271
+ }
272
+ /**
273
+ * WHAT A RECORD'S OWN PAGE VIEW ALREADY SAYS (FR-141), for a surface that
274
+ * draws the framework's record under it — the pages face's record page —
275
+ * to leave out the facts and the related records the page said. Nothing
276
+ * for a view that is no declared page.
277
+ */
278
+ export function pageSays(view, node, graph) {
279
+ return typeof view === "function" ? view.says?.(node, graph) : undefined;
280
+ }
225
281
  /** A row: one line, named for assistive technology by the record's own label. */
226
282
  function SpecRow({ blocks, node, selected }) {
227
283
  const { store } = useGraview();
@@ -254,7 +310,13 @@ export function registerViewSpecs(registry, schema, specs) {
254
310
  }
255
311
  if (slots.page) {
256
312
  const blocks = compileBlocks(slots.page);
257
- const Page = (props) => props.node ? (_jsxs("div", { className: "graview-spec-host", children: [_jsx(SpecView, { slot: "page", blocks: blocks, node: props.node }), _jsx(DefaultView, { ...props })] })) : null;
313
+ const Page = (props) => (props.node ? _jsx(SpecPage, { blocks: blocks, props: props }) : null);
314
+ Page.says = (node, graph) => {
315
+ const at = schema;
316
+ const definition = at.tryDefinition(node.kind);
317
+ const ctx = { node, graph, schema: at, kinds: shapesFor(at), fields: fieldsFor(at, node.kind), ...(definition ? { definition } : {}), today: today(), heading: 2 };
318
+ return whatBlocksSay(blocks, resolveBlocks(blocks, ctx));
319
+ };
258
320
  registry.register(at, { cardinality: "one", fidelity: "full" }, Page);
259
321
  }
260
322
  }
@@ -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":";AAAA,OAAO,EAAE,OAAO,EAAuD,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAA6F,MAAM,sBAAsB,CAAC;AACzM,OAAO,EAAE,cAAc,EAAuE,MAAM,wBAAwB,CAAC;AAC7H,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAA8D,MAAM,yBAAyB,CAAC;AAC7I,OAAO,EAAE,aAAa,EAAE,UAAU,EAAmC,MAAM,OAAO,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,sBAAsB,CAAC;AAuB1F,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAE5I,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAqC;IAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1G,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACvG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,iBAAQ,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,IAAI,GAAU,CAAC;QACtE,KAAK,MAAM;YACT,2GAA2G;YAC3G,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAC5F,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,GAC1B,CACP,CAAC;YACJ,CAAC;YACD,OAAO,CACL,YAAG,SAAS,EAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YACzF,KAAK,CAAC,IAAI,GACT,CACL,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,eAAM,SAAS,EAAC,oBAAoB,uBAAoB,KAAK,CAAC,IAAI,YAC/D,KAAK,CAAC,IAAI,GACN,CACR,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,gBAAM,SAAS,EAAC,oBAAoB,wBAAqB,KAAK,CAAC,KAAK,aAClE,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,KAAK,GAAQ,EAEzD,eAAM,SAAS,EAAC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YACzG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,YAAG,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAC,qBAAqB,EAAC,MAAM,EAAC,QAAQ,YACzF,KAAK,CAAC,IAAI,GACT,CACL,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,IAAI,CACX,GACI,IACF,CACR,CAAC;QACJ,KAAK,UAAU;YACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACzD,OAAO,CACL,gBAAM,SAAS,EAAC,uBAAuB,aACrC,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,KAAK,GAAQ,EACzD,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,IAAI,GAAQ,IACnD,CACR,CAAC;YACJ,CAAC;YACD,OAAO,CACL,gBAAM,SAAS,EAAC,uBAAuB,aACrC,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,KAAK,GAAQ,EACzD,eAAM,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,aAAa,gBAAa,KAAK,CAAC,KAAK,mBAAiB,CAAC,mBAAiB,KAAK,CAAC,GAAG,mBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,oBAAkB,KAAK,CAAC,IAAI,YACnN,eAAM,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAI,GACxI,EACP,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,IAAI,GAAQ,IACnD,CACR,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,eAAM,SAAS,EAAC,oBAAoB,oBAAiB,KAAK,CAAC,SAAS,YAClE,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,GACnC,CACR,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,KAAK,SAAS;YACZ,OAAO,aAAI,SAAS,EAAC,sBAAsB,GAAG,CAAC;QACjD,KAAK,QAAQ;YACX,OAAO,KAAC,UAAU,KAAG,CAAC;QACxB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,EAAU,CAAC;YAC3D,MAAM,OAAO,GAAG,CACd,KAAC,GAAG,IAAC,SAAS,EAAC,uBAAuB,gBAAa,KAAK,CAAC,KAAK,YAC3D,KAAK,CAAC,IAAI,GACP,CACP,CAAC;YACF,8EAA8E;YAC9E,OAAO,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9C,8BACG,OAAO,EACP,QAAQ,IACR,CACJ,CAAC,CAAC,CAAC,CACF,OAAO,CACR,CAAC;QACJ,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,CACL,gBAAM,SAAS,EAAC,qBAAqB,aACnC,eAAM,SAAS,EAAC,2BAA2B,YAAE,KAAK,CAAC,IAAI,GAAQ,EAC9D,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC1E,CACR,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,GAAI,CAAC;IACrC,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,MAAM,GAAG,aAAa,CAAgC,SAAS,CAAC,CAAC;AACvE,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,CAAC,CAAC,CACd,eAAM,SAAS,EAAC,qBAAqB,iBAAa,MAAM,YACrD,MAAM,EAAE,GACJ,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,MAAM,EAAiD;IAC/E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,QAAQ,IAAS,KAAK,EAAE,KAAK,IAAf,CAAC,CAAkB,CAAC,CAAC;AACtE,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAwE;IAC9G,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAC,MAAM,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,YAAE,KAAC,cAAc,IAAC,MAAM,EAAE,QAAQ,GAAI,GAAkB,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,MAAM,EAAE,QAAQ,GAAI,CAAC;AACxJ,CAAC;AAED,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAWnC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAY,IAAI,CAAC,CAAC;AAEvD,wFAAwF;AACxF,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAA4H;IACxK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAyC,CAAC;IAC7J,OAAO,CACL,cAAI,SAAS,EAAC,mBAAmB,yBAAsB,IAAI,CAAC,EAAE,aAAW,EAAE,aACxE,KAAK,IAAI,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YACjC,kFAAkF;YAClF,KAAC,gBAAgB,IAAC,IAAI,EAAC,OAAO,YAC5B,KAAC,SAAS,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC9B,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAC9B,KAAC,IAAI,IAAC,IAAI,EAAE,IAAa,EAAE,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,KAAK,GAAI,GACxG,GACH,GACJ,CACpB,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAQ,CACxD,EACD,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,IACrC,CACN,CAAC;AACJ,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAA2D;IACjG,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,YACE,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBACV,KAAK,EACjB,OAAO,EAAE,CAAC,KAAoC,EAAE,EAAE;gBAChD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACnF,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,GACD,CACH,CAAC;IACJ,CAAC;IACD,OAAO,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,uBAAoB,IAAI,CAAC,EAAE,gBAAc,KAAK,GAAI,CAAC;AACpH,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAmC;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,YAAG,SAAS,EAAC,mBAAmB,uBAAM,CAAC;IAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,sCAAsC,YAAE,IAAI,CAAC,KAAK,GAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/H,MAAM,MAAM,GAAG,CAAC,OAAgC,EAAE,OAA2B,IAAI,EAAE,EAAE,CACnF,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC;IACvB,kDAAkD;IAClD,aAAI,SAAS,EAAC,mBAAmB,aAAS,OAAO,YAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,cAAkB,SAAS,EAAC,mBAAmB,yBAAsB,IAAI,CAAC,EAAE,aAAU,MAAM,aAC1F,eAAM,SAAS,EAAC,wBAAwB,YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAQ,EACtG,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAI,KAFhF,IAAI,CAAC,EAAE,CAGX,CACN,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,mBAAmB,aAAU,IAAI,CAAC,EAAE,YAC/C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,KAAC,MAAM,IAAe,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAA1D,IAAI,CAAC,EAAE,CAAuD,CAC5E,CAAC,GACC,CACN,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,qCAAqC,YAAE,OAAO,IAAI,CAAC,IAAI,OAAO,GAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAClC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EACpB,IAAI,IACD,CACP,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,EAAU,CAAC;IAChD,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1B,mBAAiC,SAAS,EAAC,yBAAyB,wBAAqB,KAAK,CAAC,KAAK,IAAI,EAAE,aACvG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,2BAA2B,YAAE,KAAK,CAAC,OAAO,GAAW,CAAC,CAAC,CAAC,IAAI,EAC/F,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAF9G,KAAK,CAAC,KAAK,IAAI,EAAE,CAGrB,CACX,CAAC,EACD,IAAI,IACD,CACP,CAAC;AACJ,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,EAAyI;IAC1M,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC;IACX,MAAM,GAAG,GAAgB;QACvB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK,CAAC,KAA+B;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAmB;QACjC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,MAAmB,CAAC;QAC3C,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,KAAK,EAAE;QACd,0DAA0D;QAC1D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO;QACP,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,EAAE,YAAY;KACrB,CAAC;IACF,0FAA0F;IAC1F,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;IAC9D,OAAO,CACL,eAAK,SAAS,EAAE,6BAA6B,IAAI,EAAE,uBAAqB,IAAI,aACzE,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACvC,KAAC,QAAQ,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAC5C,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAI,GACtB,IAChB,CACP,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,GAAG,IAAI,OAAO,EAAkC,CAAC;AAC7D,MAAM,MAAM,GAAG,IAAI,OAAO,EAA4D,CAAC;AAEvF,sEAAsE;AACtE,SAAS,SAAS,CAAC,MAAiB;IAClC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,MAAiB,EAAE,IAAY;IAChD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAmB,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAC;IAChF,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAA+B;QAC5C,MAAM;QACN,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QACpC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,KAAK,EAAE,KAAK,EAAE;QACd,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,KAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;KACtG,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAgI;IACrL,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CACL,cACE,SAAS,EAAE,6BAA6B,IAAI,EAAE,uBAC3B,IAAI,uBACJ,IAAI,CAAC,IAAI,KAExB,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC/E,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAE7C,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAI,GAC/E,CACP,CAAC;AACJ,CAAC;AAED,sHAAsH;AACtH,SAAS,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAiI;IAClL,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,OAAO,CACL,KAAC,KAAK,OAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAG,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,kBAC3J,cAAK,SAAS,EAAC,gCAAgC,uBAAmB,MAAM,uBAAoB,IAAI,CAAC,IAAI,YACnG,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAI,GACpD,GACA,CACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,QAAQ,CAAsB,EAAE,MAAM,EAAE,KAAK,EAA2E;IAC/H,MAAM,IAAI,GAAG,KAAK,CAAC,IAAoB,CAAC;IACxC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,0GAA0G;QAC1G,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7G,OAAO,CACL,cAAK,SAAS,EAAC,gCAAgC,uBAAmB,MAAM,uBAAoB,IAAI,CAAC,IAAI,YACnG,KAAC,MAAM,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,YAChC,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAI,GAChD,GACd,CACP,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CACX,cAAK,SAAS,EAAC,gCAAgC,uBAAmB,MAAM,uBAAoB,IAAI,CAAC,IAAI,YACnG,KAAC,MAAM,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,YAChC,KAAC,cAAc,IAAC,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAI,GACnE,GACd,CACP,CAAC;IACF,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAClK,KAAC,WAAW,OAAQ,KAAK,GAAI,GACF,CAC9B,CAAC;AACJ,CAAC;AAKD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa,EAAE,IAAkB,EAAE,KAAkB;IAC5E,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAE,IAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,iFAAiF;AACjF,SAAS,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAsG;IAC7I,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,OAAO,CACL,cAAK,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YACxG,KAAC,QAAQ,IAAC,IAAI,EAAC,KAAK,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,GACnE,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAsB,QAA8B,EAAE,MAAS,EAAE,KAAkC;IAClI,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAA0B,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QAC5C,MAAM,EAAE,GAAG,IAAa,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,IAAI,GAAqB,CAAC,KAAmB,EAAE,EAAE,CACrD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACzK,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG,GAAqB,CAAC,KAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrK,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,IAAI,GAAqB,CAAC,KAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAI,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3H,IAAiB,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACxC,MAAM,EAAE,GAAG,MAAmB,CAAC;gBAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAC;gBAC5E,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACjL,OAAO,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC;YACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type AnySchema } from "@graview/core";
2
+ /** What the companion is about, and how it came to be about it. */
3
+ export interface Subject {
4
+ readonly id: string | null;
5
+ readonly name: string;
6
+ /** Chosen, pointed at, or simply where you are. */
7
+ readonly because: "selection" | "hover" | "place";
8
+ }
9
+ /**
10
+ * WHAT "THIS" MEANS, without a gesture to turn it on.
11
+ *
12
+ * The selection when there is one — something chosen outranks something
13
+ * glanced at. Otherwise what the pointer has settled on. Otherwise where
14
+ * you are: the focused place, district or record, or the whole thing.
15
+ */
16
+ export declare function useSubject<S extends AnySchema>(): Subject;
17
+ //# sourceMappingURL=subject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAWnE,mEAAmE;AACnE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;CACnD;AAyBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,KAAK,OAAO,CAgHzD"}
@@ -0,0 +1,155 @@
1
+ import { labelOf, placeSlug } from "@graview/core";
2
+ import { bandAggregateWords, kindOfCard, kindsOfAggregate } from "@graview/layout";
3
+ import { useGraview, useSelection } from "@graview/react";
4
+ import { useEffect, useState } from "react";
5
+ /*
6
+ * A dwell, so a pointer crossing the picture on its way somewhere does not
7
+ * rename the panel six times. Long enough to be a look, short enough that
8
+ * asking "what's wrong with this?" about the thing under the pointer works
9
+ * the moment you stop moving.
10
+ */
11
+ const DWELL_MS = 220;
12
+ /**
13
+ * The pick target under a scene point, read from the DOM the way a click
14
+ * would. The point is in the scene's own coordinates — the space the layout
15
+ * places things in — so the stage's box is what turns it into the window's.
16
+ */
17
+ function pickAt(stage, point) {
18
+ if (!stage || !point || typeof document === "undefined")
19
+ return null;
20
+ const box = stage.getBoundingClientRect();
21
+ const element = document.elementFromPoint(box.left + point.x, box.top + point.y);
22
+ const picked = element?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");
23
+ if (picked)
24
+ return picked;
25
+ const view = element?.closest("[data-graview-view]")?.getAttribute("data-graview-view");
26
+ return view ?? null;
27
+ }
28
+ /**
29
+ * WHAT "THIS" MEANS, without a gesture to turn it on.
30
+ *
31
+ * The selection when there is one — something chosen outranks something
32
+ * glanced at. Otherwise what the pointer has settled on. Otherwise where
33
+ * you are: the focused place, district or record, or the whole thing.
34
+ */
35
+ export function useSubject() {
36
+ const { store, view, views, pointer } = useGraview();
37
+ const { selection } = useSelection();
38
+ const [dwelt, setDwelt] = useState(null);
39
+ /*
40
+ * THE POINTER IS WATCHED, NOT SUBSCRIBED TO.
41
+ *
42
+ * Reading it the ordinary way — `useScenePointer`, a store subscription
43
+ * React re-renders on — re-rendered this whole rail on every pointer
44
+ * move: the acts, the relations, the conversation and the key, sixty
45
+ * times a second, for a subject that changes when you stop rather than
46
+ * while you move. The moves are taken here without a render; only what
47
+ * the pointer SETTLED on is state, and only when it is a different
48
+ * thing from last time.
49
+ */
50
+ useEffect(() => {
51
+ let timer = null;
52
+ let handOn = false;
53
+ /*
54
+ * AND NOT WHILE THE PICTURE IS MOVING UNDER THE POINTER.
55
+ *
56
+ * Dragging the city slides one district after another past a pointer
57
+ * that never moved, and the subject chased every one of them: the
58
+ * rail's header, its acts and its relations flickered through the
59
+ * whole map on the way. The pointer says what you are looking at when
60
+ * YOU move it over a picture that is still — so while a hand is down,
61
+ * and while the scene is still traveling, the question is not asked.
62
+ */
63
+ const stillMoving = () => typeof document !== "undefined" && document.querySelector("[data-graview-reach]") !== null
64
+ ? document.querySelector("[data-graview-settled]") === null
65
+ : false;
66
+ const settle = () => {
67
+ if (timer)
68
+ clearTimeout(timer);
69
+ if (handOn)
70
+ return;
71
+ const at = pointer.snapshot();
72
+ if (!at) {
73
+ setDwelt((was) => (was === null ? was : null));
74
+ return;
75
+ }
76
+ timer = setTimeout(() => {
77
+ if (handOn || stillMoving()) {
78
+ settle();
79
+ return;
80
+ }
81
+ const stage = typeof document === "undefined" ? null : document.querySelector("[data-graview-stage]");
82
+ const on = pickAt(stage, at);
83
+ setDwelt((was) => (was === on ? was : on));
84
+ }, DWELL_MS);
85
+ };
86
+ const down = () => {
87
+ handOn = true;
88
+ if (timer)
89
+ clearTimeout(timer);
90
+ };
91
+ const up = () => {
92
+ handOn = false;
93
+ settle();
94
+ };
95
+ const stop = pointer.subscribe(settle);
96
+ document.addEventListener("pointerdown", down, true);
97
+ document.addEventListener("pointerup", up, true);
98
+ document.addEventListener("pointercancel", up, true);
99
+ settle();
100
+ return () => {
101
+ stop();
102
+ document.removeEventListener("pointerdown", down, true);
103
+ document.removeEventListener("pointerup", up, true);
104
+ document.removeEventListener("pointercancel", up, true);
105
+ if (timer)
106
+ clearTimeout(timer);
107
+ };
108
+ }, [pointer]);
109
+ const name = (id) => {
110
+ const node = store.graph.getNode(id);
111
+ if (node)
112
+ return labelOf(store.schema.tryDefinition(node.kind), node);
113
+ const band = bandAggregateWords(id, store.schema);
114
+ if (band)
115
+ return band;
116
+ const kind = kindOfCard(id);
117
+ if (kind)
118
+ return store.schema.tryDefinition(kind)?.plural ?? kind;
119
+ /* A group of several kinds is its plurals together, as the scene's own label says: "Blocks and Runs", never "block+duty". */
120
+ const kinds = kindsOfAggregate(id);
121
+ if (kinds.length > 0) {
122
+ const plurals = kinds.map((one) => store.schema.tryDefinition(one)?.plural ?? one);
123
+ return plurals.length === 1 ? plurals[0] : `${plurals.slice(0, -1).join(", ")} and ${plurals.at(-1)}`;
124
+ }
125
+ return null;
126
+ };
127
+ const chosen = selection[selection.length - 1];
128
+ if (chosen !== undefined) {
129
+ const said = name(chosen);
130
+ if (said) {
131
+ return {
132
+ id: chosen,
133
+ name: selection.length > 1 ? `${said} and ${selection.length - 1} more` : said,
134
+ because: "selection",
135
+ };
136
+ }
137
+ }
138
+ if (dwelt !== null && dwelt !== undefined) {
139
+ const said = name(dwelt);
140
+ if (said)
141
+ return { id: dwelt, name: said, because: "hover" };
142
+ }
143
+ /* Where you are: the picture being shown, else the district in focus, else the whole thing. */
144
+ const showing = view.within?.["view"];
145
+ const place = showing ? views.places().find((one) => one.as === showing || placeSlug(one.title) === showing) : undefined;
146
+ if (place)
147
+ return { id: null, name: place.title, because: "place" };
148
+ if (view.focusId) {
149
+ const said = name(view.focusId);
150
+ if (said)
151
+ return { id: view.focusId, name: said, because: "place" };
152
+ }
153
+ return { id: null, name: "the whole thing", because: "place" };
154
+ }
155
+ //# sourceMappingURL=subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { CSSProperties } from "react";
2
+ /** One block of prose: a paragraph of lines, or a list of items. */
3
+ export type TextBlock = {
4
+ readonly t: "p";
5
+ readonly lines: readonly string[];
6
+ } | {
7
+ readonly t: "ol";
8
+ readonly start: number;
9
+ readonly items: readonly string[];
10
+ } | {
11
+ readonly t: "ul";
12
+ readonly items: readonly string[];
13
+ };
14
+ /** The blocks a piece of plain text is written in. */
15
+ export declare function textBlocks(text: string): readonly TextBlock[];
16
+ /** Whether a value has a shape to keep: a line break in it. One line of words is drawn as one line of words. */
17
+ export declare function hasShape(text: string): boolean;
18
+ /**
19
+ * Plain text drawn with its paragraphs, line breaks and lists kept: <p>,
20
+ * <br>, <ol> and <ul>, every word a text node. `className` and the data
21
+ * attribute let a surface style it as its own.
22
+ */
23
+ export declare function TextBody({ text, className, style }: {
24
+ readonly text: string;
25
+ readonly className?: string;
26
+ readonly style?: CSSProperties;
27
+ }): import("react").JSX.Element;
28
+ //# sourceMappingURL=text-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-body.d.ts","sourceRoot":"","sources":["../src/text-body.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAqB3C,oEAAoE;AACpE,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC/E;IAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAM5D,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAsC7D;AAED,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAMD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,+BA6B1I"}
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // `s`: `.` reaches the line's end whatever it holds (U+2028 among it), so a long line is read in one pass, never every split of its spaces.
3
+ const NUMBERED = /^\s*(\d{1,6})[.)]\s+(.*)$/s;
4
+ const BULLETED = /^\s*[-*•]\s+(.*)$/s;
5
+ /** The blocks a piece of plain text is written in. */
6
+ export function textBlocks(text) {
7
+ const blocks = [];
8
+ for (const chunk of text.replace(/\r\n?/g, "\n").split(/\n[ \t]*\n+/)) {
9
+ let run = null;
10
+ const close = () => {
11
+ if (run && (run.t === "p" ? run.lines.length > 0 : run.items.length > 0))
12
+ blocks.push(run);
13
+ run = null;
14
+ };
15
+ for (const line of chunk.split("\n")) {
16
+ const numbered = NUMBERED.exec(line);
17
+ const bulleted = numbered ? null : BULLETED.exec(line);
18
+ if (numbered) {
19
+ if (run?.t !== "ol") {
20
+ close();
21
+ run = { t: "ol", start: Number(numbered[1]), items: [] };
22
+ }
23
+ run.items.push(numbered[2]);
24
+ }
25
+ else if (bulleted) {
26
+ if (run?.t !== "ul") {
27
+ close();
28
+ run = { t: "ul", items: [] };
29
+ }
30
+ run.items.push(bulleted[1]);
31
+ }
32
+ else if (run && run.t !== "p" && /^\s+\S/.test(line)) {
33
+ // An indented line under an item goes on with the item.
34
+ const items = run.items;
35
+ items[items.length - 1] = `${items[items.length - 1]} ${line.trim()}`;
36
+ }
37
+ else if (line.trim().length > 0) {
38
+ if (run?.t !== "p") {
39
+ close();
40
+ run = { t: "p", lines: [] };
41
+ }
42
+ run.lines.push(line.trim());
43
+ }
44
+ }
45
+ close();
46
+ }
47
+ return blocks;
48
+ }
49
+ /** Whether a value has a shape to keep: a line break in it. One line of words is drawn as one line of words. */
50
+ export function hasShape(text) {
51
+ return /[\r\n]/.test(text);
52
+ }
53
+ const BODY = { display: "grid", gap: "0.7em", minWidth: 0, overflowWrap: "anywhere" };
54
+ const BLOCK = { margin: 0 };
55
+ const LIST = { margin: 0, paddingInlineStart: "1.6em", display: "grid", gap: "0.3em" };
56
+ /**
57
+ * Plain text drawn with its paragraphs, line breaks and lists kept: <p>,
58
+ * <br>, <ol> and <ul>, every word a text node. `className` and the data
59
+ * attribute let a surface style it as its own.
60
+ */
61
+ export function TextBody({ text, className, style }) {
62
+ return (_jsx("div", { "data-graview-text-body": "", ...(className ? { className } : {}), style: { ...BODY, ...style }, children: textBlocks(text).map((block, index) => block.t === "p" ? (_jsx("p", { style: BLOCK, children: block.lines.map((line, at) => (_jsxs("span", { children: [at > 0 ? _jsx("br", {}) : null, line] }, at))) }, index)) : block.t === "ol" ? (_jsx("ol", { start: block.start, style: LIST, children: block.items.map((item, at) => (_jsx("li", { children: item }, at))) }, index)) : (_jsx("ul", { style: LIST, children: block.items.map((item, at) => (_jsx("li", { children: item }, at))) }, index))) }));
63
+ }
64
+ //# sourceMappingURL=text-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-body.js","sourceRoot":"","sources":["../src/text-body.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUhE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKrD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AA8BF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA2CD,wBAAgB,YAAY,CAC1B,MAAM,GAAE,MAAe,EACvB,KAAK,GAAE,KAAqB,EAC5B,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAGR;AAkBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgC/D;AA0CD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAy3BxF"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUhE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKrD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AA8BF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA2CD,wBAAgB,YAAY,CAC1B,MAAM,GAAE,MAAe,EACvB,KAAK,GAAE,KAAqB,EAC5B,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAGR;AAkBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgC/D;AA0CD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CA63BxF"}
package/dist/theme.js CHANGED
@@ -26,7 +26,7 @@
26
26
  * without reaching into the UI package.
27
27
  */
28
28
  export { DARK, LIGHT, SCHEMES } from "@graview/core";
29
- import { SCHEMES, kitVariables, layer, layerVariables, resolveKit, SCENE_LAYERS, shapeOf, TYPOGRAPHY, typographyOf } from "@graview/core";
29
+ import { DISPLAY_TRACKING, SCHEMES, kitVariables, layer, layerVariables, resolveKit, SCENE_LAYERS, shapeOf, TYPOGRAPHY, typographyOf } from "@graview/core";
30
30
  import { MARQUEE_GAP, MARQUEE_WIDTH } from "@graview/layout/view";
31
31
  /**
32
32
  * The framework's own brand, expressed as an ordinary declared one.
@@ -266,6 +266,10 @@ ${layerVariables()}
266
266
  --graview-font-body: ${type.body};
267
267
  --graview-font-display: ${type.display};
268
268
  --graview-font-mono: ${type.mono};
269
+ ${ /* The weights: headings, reading text, action labels (the identity's 550, 450 and 600 on its own face). */""}
270
+ --graview-weight-display: ${type.weights.display};
271
+ --graview-weight-body: ${type.weights.body};
272
+ --graview-weight-label: ${type.weights.label};
269
273
  ${ /* Shape, as tokens, so a component never has to know whose product it is. */""}
270
274
  --graview-radius: ${shape.radius}px;
271
275
  --graview-radius-sm: ${shape.radiusSmall}px;
@@ -292,6 +296,7 @@ ${ /*
292
296
  */""}
293
297
  ${text} {
294
298
  font: 0.875rem/1.55 var(--graview-font-body);
299
+ font-weight: var(--graview-weight-body);
295
300
  font-variant-numeric: tabular-nums;
296
301
  -webkit-font-smoothing: antialiased;
297
302
  }
@@ -299,7 +304,8 @@ ${text} {
299
304
  ${ /* Headings and the wordmark take the display face when a brand supplies one,
300
305
  and the body face when it does not — so a brand with one font is not asked
301
306
  to name it twice. */""}
302
- h1, h2, h3, h4, .graview-wordmark { font-family: var(--graview-font-display); }
307
+ h1, h2, h3, h4, .graview-wordmark { font-family: var(--graview-font-display); font-weight: var(--graview-weight-display); }
308
+ h1, h2 { letter-spacing: ${DISPLAY_TRACKING}; }
303
309
  ${ /* The app's mark (FR-124) is as tall as the box it is drawn in; its own width follows. */""}
304
310
  .graview-logo > svg { display: block; height: 100%; width: auto; }
305
311
  code, kbd, samp { font-family: var(--graview-font-mono); }
@@ -933,25 +939,25 @@ ${ /* A view is a thing you can act on. It should look like one. */""}
933
939
  [data-graview-view]:focus-visible {
934
940
  outline: 2px solid var(--graview-accent);
935
941
  outline-offset: 3px;
936
- border-radius: 12px;
942
+ border-radius: var(--graview-radius);
937
943
  }
938
944
 
939
945
  button {
940
946
  font: inherit;
947
+ font-weight: var(--graview-weight-label);
941
948
  color: var(--graview-ink);
942
949
  padding: 7px 13px;
943
950
  border: 1px solid var(--graview-edge);
944
951
  border-radius: var(--graview-radius-sm, 8px);
945
952
  background: var(--graview-panel);
946
- box-shadow: ${scheme === "light" ? "0 1px 2px rgba(20,30,32,0.05)" : "none"};
953
+ box-shadow: ${scheme === "light" ? "0 1px 2px rgba(24,33,58,0.05)" : "none"};
947
954
  cursor: pointer;
948
955
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
949
956
  }
957
+ ${ /* Hover firms the edge; it does not glow. A ring the accent's width says "this one" in both schemes. */""}
950
958
  button:hover:not(:disabled) {
951
959
  border-color: var(--graview-edge-bright);
952
- box-shadow: ${scheme === "light"
953
- ? "0 1px 2px rgba(20,30,32,0.06), 0 6px 16px -8px rgba(20,30,32,0.22)"
954
- : "0 0 0 1px var(--graview-accent-dim), 0 0 18px -6px var(--graview-accent)"};
960
+ box-shadow: ${scheme === "light" ? "0 1px 2px rgba(24,33,58,0.06), 0 6px 16px -8px rgba(24,33,58,0.2)" : "0 0 0 1px var(--graview-accent-dim)"};
955
961
  }
956
962
  button:focus-visible {
957
963
  outline: 2px solid var(--graview-accent);