@graview/primitives 0.1.63 → 0.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app-bar.js +1 -1
- package/dist/app-bar.js.map +1 -1
- package/dist/app-title.d.ts +8 -0
- package/dist/app-title.d.ts.map +1 -1
- package/dist/app-title.js +39 -3
- package/dist/app-title.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/chat.js.map +1 -1
- package/dist/find.js +3 -3
- package/dist/find.js.map +1 -1
- package/dist/first-look.js +1 -1
- package/dist/first-look.js.map +1 -1
- package/dist/frame.d.ts +1 -1
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +1 -1
- package/dist/frame.js.map +1 -1
- package/dist/here.d.ts +1 -1
- package/dist/here.js +2 -2
- package/dist/here.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/inline-ai-menu.d.ts +4 -2
- package/dist/inline-ai-menu.d.ts.map +1 -1
- package/dist/inline-ai-menu.js +34 -8
- package/dist/inline-ai-menu.js.map +1 -1
- package/dist/kind-stop.d.ts.map +1 -1
- package/dist/kind-stop.js +204 -21
- package/dist/kind-stop.js.map +1 -1
- package/dist/lines-key.d.ts.map +1 -1
- package/dist/lines-key.js +22 -2
- package/dist/lines-key.js.map +1 -1
- package/dist/map-panel.js +98 -6
- package/dist/map-panel.js.map +1 -1
- package/dist/menu-rank.d.ts +25 -0
- package/dist/menu-rank.d.ts.map +1 -0
- package/dist/menu-rank.js +56 -0
- package/dist/menu-rank.js.map +1 -0
- package/dist/menu-told-door.d.ts +17 -0
- package/dist/menu-told-door.d.ts.map +1 -0
- package/dist/menu-told-door.js +49 -0
- package/dist/menu-told-door.js.map +1 -0
- package/dist/menu-told.d.ts +37 -0
- package/dist/menu-told.d.ts.map +1 -0
- package/dist/menu-told.js +66 -0
- package/dist/menu-told.js.map +1 -0
- package/dist/menu-words.d.ts +15 -0
- package/dist/menu-words.d.ts.map +1 -0
- package/dist/menu-words.js +28 -0
- package/dist/menu-words.js.map +1 -0
- package/dist/pages.d.ts +3 -1
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +3 -1
- package/dist/pages.js.map +1 -1
- package/dist/quick-ask-desk.d.ts +16 -0
- package/dist/quick-ask-desk.d.ts.map +1 -1
- package/dist/quick-ask-desk.js +20 -0
- package/dist/quick-ask-desk.js.map +1 -1
- package/dist/quick-ask-door.d.ts.map +1 -1
- package/dist/quick-ask-door.js +5 -0
- package/dist/quick-ask-door.js.map +1 -1
- package/dist/quick-ask-plan.d.ts +52 -0
- package/dist/quick-ask-plan.d.ts.map +1 -0
- package/dist/quick-ask-plan.js +112 -0
- package/dist/quick-ask-plan.js.map +1 -0
- package/dist/quick-ask.d.ts.map +1 -1
- package/dist/quick-ask.js +341 -19
- package/dist/quick-ask.js.map +1 -1
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +16 -6
- package/dist/scene-css.js.map +1 -1
- package/dist/scene-places.d.ts +3 -2
- package/dist/scene-places.d.ts.map +1 -1
- package/dist/scene-places.js +47 -8
- package/dist/scene-places.js.map +1 -1
- package/dist/scene.d.ts +2 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -1
- package/dist/section-better.d.ts +38 -0
- package/dist/section-better.d.ts.map +1 -0
- package/dist/section-better.js +411 -0
- package/dist/section-better.js.map +1 -0
- package/dist/section-door.d.ts +32 -0
- package/dist/section-door.d.ts.map +1 -0
- package/dist/section-door.js +32 -0
- package/dist/section-door.js.map +1 -0
- package/dist/section-menu.d.ts +18 -0
- package/dist/section-menu.d.ts.map +1 -0
- package/dist/section-menu.js +76 -0
- package/dist/section-menu.js.map +1 -0
- package/dist/section-outline.d.ts +8 -0
- package/dist/section-outline.d.ts.map +1 -0
- package/dist/section-outline.js +48 -0
- package/dist/section-outline.js.map +1 -0
- package/dist/section-words.d.ts +24 -0
- package/dist/section-words.d.ts.map +1 -0
- package/dist/section-words.js +91 -0
- package/dist/section-words.js.map +1 -0
- package/dist/shell.d.ts +7 -0
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +13 -8
- package/dist/shell.js.map +1 -1
- package/dist/subject.js +2 -2
- package/dist/subject.js.map +1 -1
- package/dist/told-card.d.ts +66 -0
- package/dist/told-card.d.ts.map +1 -0
- package/dist/told-card.js +197 -0
- package/dist/told-card.js.map +1 -0
- package/dist/told-listed.d.ts +14 -0
- package/dist/told-listed.d.ts.map +1 -0
- package/dist/told-listed.js +46 -0
- package/dist/told-listed.js.map +1 -0
- package/dist/told-panel-door.d.ts +17 -0
- package/dist/told-panel-door.d.ts.map +1 -0
- package/dist/told-panel-door.js +6 -0
- package/dist/told-panel-door.js.map +1 -0
- package/dist/told-panel.d.ts +19 -0
- package/dist/told-panel.d.ts.map +1 -0
- package/dist/told-panel.js +83 -0
- package/dist/told-panel.js.map +1 -0
- package/dist/told-ui.d.ts +5 -0
- package/dist/told-ui.d.ts.map +1 -0
- package/dist/told-ui.js +12 -0
- package/dist/told-ui.js.map +1 -0
- package/dist/workbench/ai-entries.d.ts.map +1 -1
- package/dist/workbench/ai-entries.js +23 -2
- package/dist/workbench/ai-entries.js.map +1 -1
- package/dist/workbench/back-out.js +1 -1
- package/dist/workbench/back-out.js.map +1 -1
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +218 -18
- package/dist/workbench/inspector.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { retryingImport } from "@graview/core/retry";
|
|
3
|
+
import { viewPlaceOf } from "@graview/react/drawing";
|
|
4
|
+
import { placeOfSection } from "./section-words.js";
|
|
5
|
+
import { lazyModule, useGraview } from "@graview/react/provider";
|
|
6
|
+
import { Suspense, useEffect, useId, useMemo, useSyncExternalStore } from "react";
|
|
7
|
+
import { SectionOutline } from "./section-outline.js";
|
|
8
|
+
const HELD = /* @__PURE__ */ new WeakMap();
|
|
9
|
+
const heldOf = (desk) => {
|
|
10
|
+
let held = HELD.get(desk);
|
|
11
|
+
if (!held)
|
|
12
|
+
HELD.set(desk, (held = { ask: null, doors: [], heard: new Set() }));
|
|
13
|
+
return held;
|
|
14
|
+
};
|
|
15
|
+
const tell = (held) => held.heard.forEach((listener) => listener());
|
|
16
|
+
let asked = 0;
|
|
17
|
+
/** Opens the section's card on this app's desk; null puts it away. */
|
|
18
|
+
export function askSection(desk, ask) {
|
|
19
|
+
const held = heldOf(desk);
|
|
20
|
+
held.ask = ask ? { ...ask, at: ++asked } : null;
|
|
21
|
+
tell(held);
|
|
22
|
+
}
|
|
23
|
+
/* The outline over a section a menu is open on and the card asked for, fetched with the first right-click inside a view (the menu's `prepare`). */
|
|
24
|
+
const drawn = /* @__PURE__ */ lazyModule(retryingImport(() => import("./section-better.js")));
|
|
25
|
+
const Drawn = /* @__PURE__ */ drawn.part((module, props) => {
|
|
26
|
+
const Part = module.SectionDrawn;
|
|
27
|
+
return _jsx(Part, { ...props });
|
|
28
|
+
}, { what: "Make this better" });
|
|
29
|
+
/** "Make “This week” better" for a menu opened on a section, or nothing where it is not this seat's to offer. */
|
|
30
|
+
export function sectionFor(target, aiDesk, keptViews) {
|
|
31
|
+
const section = target.section;
|
|
32
|
+
// Asked as the menu opens: the host says who may change views now, and the view's place must lend a revision.
|
|
33
|
+
if (!section || keptViews.current().may.views !== true || !viewPlaceOf(placeOfSection(section)))
|
|
34
|
+
return null;
|
|
35
|
+
const open = (mode) => () => askSection(aiDesk, { section, mode, returnTo: target.element ?? null });
|
|
36
|
+
return {
|
|
37
|
+
id: "make-better",
|
|
38
|
+
heading: `Make “${section.name}” better`,
|
|
39
|
+
// First: the menu was opened on the section, and is named for it.
|
|
40
|
+
at: "start",
|
|
41
|
+
items: [
|
|
42
|
+
{ id: "section-just-do-it", label: "Just do it", hint: "You see it before it is kept", run: open("just") },
|
|
43
|
+
{ id: "section-describe", label: "Describe changes…", run: open("describe") },
|
|
44
|
+
{ id: "section-highlight", label: "Highlight area…", run: open("highlight") },
|
|
45
|
+
],
|
|
46
|
+
prepare: () => drawn.prefetch(),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Where the outline and the card are drawn: nothing at all until a menu is open on a section or a card is asked for. */
|
|
50
|
+
export function SectionDoor() {
|
|
51
|
+
const { aiDesk, menuAt } = useGraview();
|
|
52
|
+
const held = heldOf(aiDesk);
|
|
53
|
+
const id = useId();
|
|
54
|
+
const subscribe = useMemo(() => (listener) => {
|
|
55
|
+
held.heard.add(listener);
|
|
56
|
+
return () => void held.heard.delete(listener);
|
|
57
|
+
}, [held]);
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
held.doors.push(id);
|
|
60
|
+
tell(held);
|
|
61
|
+
return () => {
|
|
62
|
+
held.doors.splice(held.doors.indexOf(id), 1);
|
|
63
|
+
tell(held);
|
|
64
|
+
};
|
|
65
|
+
}, [held, id]);
|
|
66
|
+
const mine = useSyncExternalStore(subscribe, () => held.doors[0] === id, () => false);
|
|
67
|
+
const ask = useSyncExternalStore(subscribe, () => held.ask, () => null);
|
|
68
|
+
const open = menuAt?.section;
|
|
69
|
+
if (!mine || (!ask && !open))
|
|
70
|
+
return null;
|
|
71
|
+
/* The outline at once, over the section a menu is open on; the card fetched when asked for. */
|
|
72
|
+
if (!ask)
|
|
73
|
+
return _jsx(SectionOutline, { elements: open.elements });
|
|
74
|
+
return (_jsx(Suspense, { fallback: null, children: _jsx(Drawn, { ask: ask, close: () => askSection(aiDesk, null) }) }));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=section-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-menu.js","sourceRoot":"","sources":["../src/section-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The box around a section's elements, in the window. */
|
|
2
|
+
export declare function boxOf(elements: readonly Element[]): DOMRect | null;
|
|
3
|
+
/** A dashed outline over a section, following it as the page moves, never in the way of a pointer. */
|
|
4
|
+
export declare function SectionOutline({ elements, label }: {
|
|
5
|
+
readonly elements: readonly Element[];
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=section-outline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-outline.d.ts","sourceRoot":"","sources":["../src/section-outline.tsx"],"names":[],"mappings":"AASA,0DAA0D;AAC1D,wBAAgB,KAAK,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI,CASlE;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0BrH"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { layer } from "@graview/core";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
/*
|
|
5
|
+
* THE OUTLINE OVER A SECTION (Roadmap f-make-this-section-better): dashed,
|
|
6
|
+
* following it as the page moves, never in the way of a pointer — over a
|
|
7
|
+
* section a menu is open on, and over a draft while the card offers it.
|
|
8
|
+
*/
|
|
9
|
+
/** The box around a section's elements, in the window. */
|
|
10
|
+
export function boxOf(elements) {
|
|
11
|
+
let box = null;
|
|
12
|
+
for (const element of elements) {
|
|
13
|
+
if (!element.isConnected)
|
|
14
|
+
continue;
|
|
15
|
+
const at = element.getBoundingClientRect();
|
|
16
|
+
if (at.width === 0 && at.height === 0)
|
|
17
|
+
continue;
|
|
18
|
+
box = box ? { left: Math.min(box.left, at.left), top: Math.min(box.top, at.top), right: Math.max(box.right, at.right), bottom: Math.max(box.bottom, at.bottom) } : { left: at.left, top: at.top, right: at.right, bottom: at.bottom };
|
|
19
|
+
}
|
|
20
|
+
return box ? new DOMRect(box.left, box.top, box.right - box.left, box.bottom - box.top) : null;
|
|
21
|
+
}
|
|
22
|
+
/** A dashed outline over a section, following it as the page moves, never in the way of a pointer. */
|
|
23
|
+
export function SectionOutline({ elements, label }) {
|
|
24
|
+
const mark = useRef(null);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
let frame = 0;
|
|
27
|
+
const place = () => {
|
|
28
|
+
const box = boxOf(elements);
|
|
29
|
+
const at = mark.current;
|
|
30
|
+
if (at) {
|
|
31
|
+
at.style.display = box ? "block" : "none";
|
|
32
|
+
if (box) {
|
|
33
|
+
at.style.left = `${Math.round(box.left - 3)}px`;
|
|
34
|
+
at.style.top = `${Math.round(box.top - 3)}px`;
|
|
35
|
+
at.style.width = `${Math.round(box.width + 6)}px`;
|
|
36
|
+
at.style.height = `${Math.round(box.height + 6)}px`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
frame = requestAnimationFrame(place);
|
|
40
|
+
};
|
|
41
|
+
place();
|
|
42
|
+
return () => cancelAnimationFrame(frame);
|
|
43
|
+
}, [elements]);
|
|
44
|
+
return (_jsx("div", { ref: mark, "aria-hidden": "true", "data-testid": "section-outline", style: OUTLINE, children: label ? _jsx("span", { style: OUTLINE_LABEL, children: label }) : null }));
|
|
45
|
+
}
|
|
46
|
+
const OUTLINE = { position: "fixed", display: "none", boxSizing: "border-box", border: "2px dashed var(--graview-accent)", borderRadius: 8, pointerEvents: "none", zIndex: layer("popover") };
|
|
47
|
+
const OUTLINE_LABEL = { position: "absolute", top: -11, left: 8, padding: "0 6px", fontSize: "0.6875rem", lineHeight: "18px", borderRadius: 999, color: "var(--graview-accent-ink, #fff)", background: "var(--graview-accent)" };
|
|
48
|
+
//# sourceMappingURL=section-outline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-outline.js","sourceRoot":"","sources":["../src/section-outline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MenuViewSection } from "@graview/react/provider";
|
|
2
|
+
/** The element a view is drawn in (`data-worker-view-place`), from a section of it. */
|
|
3
|
+
export declare function placeOfSection(section: MenuViewSection): Element | undefined;
|
|
4
|
+
/** One part, as it is read for its name. */
|
|
5
|
+
export interface PartRead {
|
|
6
|
+
readonly tag: string;
|
|
7
|
+
readonly classes: readonly string[];
|
|
8
|
+
readonly text: string;
|
|
9
|
+
readonly box: {
|
|
10
|
+
readonly left: number;
|
|
11
|
+
readonly top: number;
|
|
12
|
+
readonly width: number;
|
|
13
|
+
readonly height: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* THE PARTS, NAMED: one by its words ("the heading “This week”"), several
|
|
18
|
+
* by what they share and how they stand ("the three day columns"), else by
|
|
19
|
+
* what they are ("two links and a picture").
|
|
20
|
+
*/
|
|
21
|
+
export declare function nameParts(parts: readonly PartRead[]): string;
|
|
22
|
+
/** Each part in a line the model is told: what it is, its classes, its first words. */
|
|
23
|
+
export declare function partLines(parts: readonly PartRead[]): string[];
|
|
24
|
+
//# sourceMappingURL=section-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-words.d.ts","sourceRoot":"","sources":["../src/section-words.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,GAAG,SAAS,CAG5E;AAED,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChH;AA2CD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CA0B5D;AAED,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,EAAE,CAE9D"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* WHAT A HIGHLIGHTED AREA COVERS, IN WORDS (Roadmap
|
|
3
|
+
* f-make-this-section-better): the parts of a view a person dragged over or
|
|
4
|
+
* clicked, named as they would name them — "the three day columns", "the
|
|
5
|
+
* heading “Dinner”" — from what each part is (its classes, its element,
|
|
6
|
+
* its words) and how they stand (side by side, one under another).
|
|
7
|
+
*/
|
|
8
|
+
/** The element a view is drawn in (`data-worker-view-place`), from a section of it. */
|
|
9
|
+
export function placeOfSection(section) {
|
|
10
|
+
const root = section.elements[0]?.getRootNode();
|
|
11
|
+
return root?.host?.closest("[data-worker-view-place]") ?? root?.host?.parentElement ?? undefined;
|
|
12
|
+
}
|
|
13
|
+
const NUMBERS = ["no", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"];
|
|
14
|
+
const counted = (n) => NUMBERS[n] ?? String(n);
|
|
15
|
+
const words = (text) => text.replace(/\s+/g, " ").trim();
|
|
16
|
+
/** What an element is called, by what it is: one, and many. */
|
|
17
|
+
const NOUNS = {
|
|
18
|
+
li: ["item", "items"],
|
|
19
|
+
a: ["link", "links"],
|
|
20
|
+
button: ["button", "buttons"],
|
|
21
|
+
img: ["picture", "pictures"],
|
|
22
|
+
p: ["paragraph", "paragraphs"],
|
|
23
|
+
ul: ["list", "lists"],
|
|
24
|
+
ol: ["list", "lists"],
|
|
25
|
+
table: ["table", "tables"],
|
|
26
|
+
tr: ["row", "rows"],
|
|
27
|
+
td: ["cell", "cells"],
|
|
28
|
+
th: ["column heading", "column headings"],
|
|
29
|
+
section: ["section", "sections"],
|
|
30
|
+
article: ["card", "cards"],
|
|
31
|
+
nav: ["menu", "menus"],
|
|
32
|
+
form: ["form", "forms"],
|
|
33
|
+
input: ["field", "fields"],
|
|
34
|
+
label: ["label", "labels"],
|
|
35
|
+
};
|
|
36
|
+
const GENERIC = new Set(["js", "is", "has", "item", "items", "wrap", "inner", "outer", "box", "el", "block", "row", "col", "cell", "card", "pick", "active", "selected"]);
|
|
37
|
+
/** The word a class names its parts by: "hf-wk-day" is a day. */
|
|
38
|
+
function wordOfClass(name) {
|
|
39
|
+
const parts = name.split(/[-_]+/).filter((part) => /^[a-z]{3,}$/i.test(part) && !GENERIC.has(part.toLowerCase()));
|
|
40
|
+
return parts.at(-1)?.toLowerCase();
|
|
41
|
+
}
|
|
42
|
+
/** Whether boxes stand side by side (columns), one under another (rows), or neither. */
|
|
43
|
+
function standing(boxes) {
|
|
44
|
+
if (boxes.length < 2)
|
|
45
|
+
return undefined;
|
|
46
|
+
const near = (a, b) => Math.abs(a - b) <= 6;
|
|
47
|
+
if (boxes.every((box) => near(box.top, boxes[0].top)))
|
|
48
|
+
return "columns";
|
|
49
|
+
if (boxes.every((box) => near(box.left, boxes[0].left)))
|
|
50
|
+
return "rows";
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* THE PARTS, NAMED: one by its words ("the heading “This week”"), several
|
|
55
|
+
* by what they share and how they stand ("the three day columns"), else by
|
|
56
|
+
* what they are ("two links and a picture").
|
|
57
|
+
*/
|
|
58
|
+
export function nameParts(parts) {
|
|
59
|
+
if (parts.length === 0)
|
|
60
|
+
return "nothing";
|
|
61
|
+
if (parts.length === 1) {
|
|
62
|
+
const [one] = parts;
|
|
63
|
+
const heading = /^h[1-6]$/.test(one.tag);
|
|
64
|
+
const noun = heading ? "heading" : (NOUNS[one.tag]?.[0] ?? one.classes.map(wordOfClass).find(Boolean) ?? "part");
|
|
65
|
+
const said = words(one.text);
|
|
66
|
+
return said ? `the ${noun} “${said.length > 40 ? `${said.slice(0, 39)}…` : said}”` : `the ${noun}`;
|
|
67
|
+
}
|
|
68
|
+
const shared = parts[0].classes.filter((name) => parts.every((part) => part.classes.includes(name)));
|
|
69
|
+
const word = shared.map(wordOfClass).find(Boolean);
|
|
70
|
+
const tags = new Set(parts.map((part) => part.tag));
|
|
71
|
+
const stand = standing(parts.map((part) => part.box));
|
|
72
|
+
if (word)
|
|
73
|
+
return `the ${counted(parts.length)} ${word} ${stand ?? (tags.size === 1 && NOUNS[parts[0].tag] ? NOUNS[parts[0].tag][1] : "blocks")}`;
|
|
74
|
+
if (tags.size === 1) {
|
|
75
|
+
const noun = NOUNS[parts[0].tag]?.[1] ?? (/^h[1-6]$/.test(parts[0].tag) ? "headings" : (stand ?? "parts"));
|
|
76
|
+
return `the ${counted(parts.length)} ${noun}`;
|
|
77
|
+
}
|
|
78
|
+
// Different things: each kind counted, in the order first met.
|
|
79
|
+
const counts = new Map();
|
|
80
|
+
for (const part of parts) {
|
|
81
|
+
const noun = /^h[1-6]$/.test(part.tag) ? "heading" : (NOUNS[part.tag]?.[0] ?? "part");
|
|
82
|
+
counts.set(noun, (counts.get(noun) ?? 0) + 1);
|
|
83
|
+
}
|
|
84
|
+
const listed = [...counts].map(([noun, n]) => (n === 1 ? `a ${noun}` : `${counted(n)} ${NOUNS[Object.keys(NOUNS).find((tag) => NOUNS[tag][0] === noun) ?? ""]?.[1] ?? `${noun}s`}`));
|
|
85
|
+
return listed.length === 1 ? listed[0] : `${listed.slice(0, -1).join(", ")} and ${listed.at(-1)}`;
|
|
86
|
+
}
|
|
87
|
+
/** Each part in a line the model is told: what it is, its classes, its first words. */
|
|
88
|
+
export function partLines(parts) {
|
|
89
|
+
return parts.map((part) => `<${part.tag}${part.classes.length ? ` class="${part.classes.join(" ")}"` : ""}> ${words(part.text).slice(0, 60)}`.trim());
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=section-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-words.js","sourceRoot":"","sources":["../src/section-words.ts"],"names":[],"mappings":"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"}
|
package/dist/shell.d.ts
CHANGED
|
@@ -103,6 +103,13 @@ export interface ShellProps {
|
|
|
103
103
|
* handed them: where a picture or a document put on a record is sent.
|
|
104
104
|
*/
|
|
105
105
|
readonly files?: HostFiles;
|
|
106
|
+
/**
|
|
107
|
+
* WHERE THE HOST SERVES THE APP'S OWN IMAGES (Roadmap
|
|
108
|
+
* f-brand-marks-under-app-base), when the provider around the shell was
|
|
109
|
+
* not handed it: `assetsAt(path)` for a path under `/graview/assets/` —
|
|
110
|
+
* the logo, the page icon — and an image a script view draws by its path.
|
|
111
|
+
*/
|
|
112
|
+
readonly assetsAt?: (path: string) => string;
|
|
106
113
|
/**
|
|
107
114
|
* THE HOST'S WAY TO NAME ANOTHER APP (FR-171), when the provider around
|
|
108
115
|
* the shell was not handed it: `resolveApp(address, viewer)` answers
|
package/dist/shell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { faviconHref, pagesTitle, sceneTitle } from "@graview/core";
|
|
3
|
-
import { BesideTheMap, HostFilesContext, KeptViewsProvider, PanFree, Scene, useGraview, useNavigation, UrlSync, useTheKeyboardLandsSomewhere } from "@graview/react";
|
|
2
|
+
import { assetSrc, faviconHref, pagesTitle, sceneTitle } from "@graview/core";
|
|
3
|
+
import { BesideTheMap, HostAssetsContext, HostFilesContext, KeptViewsProvider, PanFree, Scene, useGraview, useHostAssets, useNavigation, UrlSync, useTheKeyboardLandsSomewhere } from "@graview/react";
|
|
4
4
|
import { useCallback, useMemo, useState, useRef } from "react";
|
|
5
5
|
import { withOverview } from "@graview/layout/view";
|
|
6
6
|
import { LinesKey } from "./lines-key.js";
|
|
@@ -18,19 +18,20 @@ import { SceneBarTools, SceneTrail, useCallLog } from "./scene-bar.js";
|
|
|
18
18
|
import { SceneWayBack } from "./scene-way-back.js";
|
|
19
19
|
import { PastBar } from "./past-bar.js";
|
|
20
20
|
import { BackOut, Inspector, OverviewButton, Standing } from "./workbench/index.js";
|
|
21
|
-
import { useFavicon } from "./app-title.js";
|
|
21
|
+
import { useFavicon, useThemeColor } from "./app-title.js";
|
|
22
22
|
import { useViewportHeight } from "./primitives/measure.js";
|
|
23
23
|
import { ResolveAppContext } from "./resolve-app-context.js";
|
|
24
24
|
import { FirstLookDoor } from "./first-look-door.js";
|
|
25
25
|
import { GhostDoor, InlineAiSections } from "./inline-ai-door.js";
|
|
26
26
|
import { NotifyDoor, NotifySections } from "./notify-door.js";
|
|
27
|
+
import { SectionBetterDoor, SectionBetterSections } from "./section-door.js";
|
|
27
28
|
import { BoardMoveSections } from "./board-move-section.js";
|
|
28
29
|
import { ViewTidyingSections } from "./view-tidying-sections.js";
|
|
29
30
|
import { QuickAskDoor } from "./quick-ask-door.js";
|
|
30
31
|
export function Shell({ keptViews, ...props }) {
|
|
31
32
|
return keptViews ? (_jsx(KeptViewsProvider, { keptViews: keptViews, children: _jsx(ShellFace, { ...props }) })) : (_jsx(ShellFace, { ...props }));
|
|
32
33
|
}
|
|
33
|
-
function ShellFace({ home = null, standing = "Everything is in order", seat, pagesHref = "/pages", remembers = false, syncUrl = false, renderer = "auto", attachRenderer, blur = true, scheme, onScheme, profileHref, studio, hostActions, barActions, onReport, signature = false, quickAsk = true, notices, files, resolveApp, firstLook, }) {
|
|
34
|
+
function ShellFace({ home = null, standing = "Everything is in order", seat, pagesHref = "/pages", remembers = false, syncUrl = false, renderer = "auto", attachRenderer, blur = true, scheme, onScheme, profileHref, studio, hostActions, barActions, onReport, signature = false, quickAsk = true, notices, files, assetsAt: ownAssetsAt, resolveApp, firstLook, }) {
|
|
34
35
|
const { brand, views, store } = useGraview();
|
|
35
36
|
const { view, go } = useNavigation();
|
|
36
37
|
/* The lenses this reader kept from the seat, beside the app's own places, before anything draws them. */
|
|
@@ -43,8 +44,11 @@ function ShellFace({ home = null, standing = "Everything is in order", seat, pag
|
|
|
43
44
|
const spot = useRef(view);
|
|
44
45
|
spot.current = view;
|
|
45
46
|
const report = useMemo(() => (onReport ? { tell: onReport, where: () => sceneReportWhere(spot.current.focusId) } : undefined), [onReport]);
|
|
46
|
-
// The Shell owns the whole page, so the page wears the brand's icon (FR-124).
|
|
47
|
-
|
|
47
|
+
// The Shell owns the whole page, so the page wears the brand's icon (FR-124) where the host serves it, and its colors.
|
|
48
|
+
const providedAssetsAt = useHostAssets();
|
|
49
|
+
const assetsAt = ownAssetsAt ?? providedAssetsAt;
|
|
50
|
+
useFavicon(assetSrc(assetsAt, faviconHref(brand)));
|
|
51
|
+
useThemeColor(brand);
|
|
48
52
|
// An act that removes what the keyboard stood on lands it on what still stands.
|
|
49
53
|
const shell = useRef(null);
|
|
50
54
|
useTheKeyboardLandsSomewhere(shell);
|
|
@@ -79,8 +83,9 @@ function ShellFace({ home = null, standing = "Everything is in order", seat, pag
|
|
|
79
83
|
pages: { label: pagesTitle(arrangement), current: false, go: () => window.location.assign(pagesHref) },
|
|
80
84
|
},
|
|
81
85
|
}
|
|
82
|
-
: {}), places: [], current: null, reach: {}, scenePlaces: scenePlaces, onFind: setBarFind, skips: _jsx(SceneSkips, {}), ...(barActions ? { actions: barActions } : {}), tools: _jsxs(_Fragment, { children: [_jsx(Standing, { clean: standing }), _jsx(Profile, { scheme: scheme, onScheme: onScheme, ...(profileHref ? { profileHref } : {}), ...(hostActions ? { hostActions } : {}), signature: signature, keeping: _jsxs(_Fragment, { children: [_jsx(ShowInstallation, {}), studio] }) })] }) }), _jsx(SceneBarTools, { find: barFind, calls: calls, remembers: remembers, ...(seat ? { seat: seat(onCall) } : {}) }), _jsx(BackOut, { home: home }), _jsxs("main", { ref: picture, tabIndex: -1, style: { position: "relative", flex: "1 1 auto", minHeight: 0, containerType: "size", outline: "none" }, children: [_jsx(Scene, { renderer: renderer, blur: blur, ...(attachRenderer ? { attachRenderer } : {}) }), _jsx(SceneTrail, { home: home }), _jsx(OverviewButton, {}), _jsx(LinesKey, {}), _jsxs(PanFree, { children: [_jsx(DraftDoor, {}), _jsx(QuickAskDoor, { face: "scene", on: quickAsk }), _jsx(MapPanel, {}), _jsx(NotifySections, { children: _jsx(BoardMoveSections, { children: _jsx(InlineAiSections, { children: _jsx(ViewTidyingSections, { children: _jsx(Inspector, { placement: "menu" }) }) }) }) }), _jsx(NotifyDoor, {}), _jsx(GhostDoor, {}), _jsx(SceneWayBack, {}), _jsx(PastBar, { face: "scene" })] })] }), _jsx(Notices, { board: board, anchor: scene, report: report }), firstLook ? _jsx(FirstLookDoor, { firstLook: firstLook, root: inShell, app: appKeyOf(brand, store.schema) }) : null] }) }) }));
|
|
86
|
+
: {}), places: [], current: null, reach: {}, scenePlaces: scenePlaces, onFind: setBarFind, skips: _jsx(SceneSkips, {}), ...(barActions ? { actions: barActions } : {}), tools: _jsxs(_Fragment, { children: [_jsx(Standing, { clean: standing }), _jsx(Profile, { scheme: scheme, onScheme: onScheme, ...(profileHref ? { profileHref } : {}), ...(hostActions ? { hostActions } : {}), signature: signature, keeping: _jsxs(_Fragment, { children: [_jsx(ShowInstallation, {}), studio] }) })] }) }), _jsx(SceneBarTools, { find: barFind, calls: calls, remembers: remembers, ...(seat ? { seat: seat(onCall) } : {}) }), _jsx(BackOut, { home: home }), _jsxs("main", { ref: picture, tabIndex: -1, style: { position: "relative", flex: "1 1 auto", minHeight: 0, containerType: "size", outline: "none" }, children: [_jsx(Scene, { renderer: renderer, blur: blur, ...(attachRenderer ? { attachRenderer } : {}) }), _jsx(SceneTrail, { home: home }), _jsx(OverviewButton, {}), _jsx(LinesKey, {}), _jsxs(PanFree, { children: [_jsx(DraftDoor, {}), _jsx(QuickAskDoor, { face: "scene", on: quickAsk }), _jsx(MapPanel, {}), _jsx(NotifySections, { children: _jsx(BoardMoveSections, { children: _jsx(InlineAiSections, { children: _jsx(ViewTidyingSections, { children: _jsx(SectionBetterSections, { children: _jsx(Inspector, { placement: "menu" }) }) }) }) }) }), _jsx(NotifyDoor, {}), _jsx(SectionBetterDoor, {}), _jsx(GhostDoor, {}), _jsx(SceneWayBack, {}), _jsx(PastBar, { face: "scene" })] })] }), _jsx(Notices, { board: board, anchor: scene, report: report }), firstLook ? _jsx(FirstLookDoor, { firstLook: firstLook, root: inShell, app: appKeyOf(brand, store.schema) }) : null] }) }) }));
|
|
83
87
|
const resolved = resolveApp ? _jsx(ResolveAppContext.Provider, { value: resolveApp, children: drawn }) : drawn;
|
|
84
|
-
|
|
88
|
+
const assetsHeld = ownAssetsAt ? _jsx(HostAssetsContext.Provider, { value: ownAssetsAt, children: resolved }) : resolved;
|
|
89
|
+
return files ? _jsx(HostFilesContext.Provider, { value: files, children: assetsHeld }) : assetsHeld;
|
|
85
90
|
}
|
|
86
91
|
//# sourceMappingURL=shell.js.map
|
package/dist/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAmE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
|
package/dist/subject.js
CHANGED
|
@@ -126,7 +126,7 @@ export function useSubject({ hover = true } = {}) {
|
|
|
126
126
|
if (said)
|
|
127
127
|
return { id: dwelt, name: said, because: "hover" };
|
|
128
128
|
}
|
|
129
|
-
/* Where you are: the picture being shown, else the district in focus, else
|
|
129
|
+
/* Where you are: the picture being shown, else the district in focus, else everything. */
|
|
130
130
|
const showing = view.within?.["view"];
|
|
131
131
|
const place = showing ? views.places().find((one) => one.as === showing || placeSlug(one.title) === showing) : undefined;
|
|
132
132
|
if (place)
|
|
@@ -136,7 +136,7 @@ export function useSubject({ hover = true } = {}) {
|
|
|
136
136
|
if (said)
|
|
137
137
|
return { id: view.focusId, name: said, because: "place" };
|
|
138
138
|
}
|
|
139
|
-
return { id: null, name: "
|
|
139
|
+
return { id: null, name: "everything", because: "place" };
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
142
|
* What is chosen, in words: a record by its label, a band by what it gathers
|
package/dist/subject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subject.js","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"subject.js","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AnySchema, Principal, Store } from "@graview/core";
|
|
2
|
+
export { seenOnThisPage, toldListed } from "./told-listed.js";
|
|
3
|
+
import { type AiTarget } from "@graview/core/catalog";
|
|
4
|
+
import { type Telling, type TellingDraft, type TellingExample, type ToldStore } from "@graview/core/told";
|
|
5
|
+
import type { AiDesk } from "@graview/react/provider";
|
|
6
|
+
import type { InlineResult } from "@graview/tools/inline-ai";
|
|
7
|
+
import type { AppPlan } from "./quick-ask-plan.js";
|
|
8
|
+
/**
|
|
9
|
+
* WHAT A PERSON TELLS GRAVIEW, KEPT FROM THE ANSWER CARD (Roadmap
|
|
10
|
+
* f-menu-learns), fetched with the card.
|
|
11
|
+
*
|
|
12
|
+
* Each Enter or reply on the card is one telling (`@graview/core/told`):
|
|
13
|
+
* the words, what they were on (a kind and ids), the records they were read
|
|
14
|
+
* as, the people they named, what was decided and by which slot, the time
|
|
15
|
+
* it took, and — as the person goes on — how it ended and what they thought
|
|
16
|
+
* of it. It goes to the host's door (`HostAi.told`); with none, nothing is
|
|
17
|
+
* kept and the card draws no rating, because a press that keeps nothing
|
|
18
|
+
* would say something untrue.
|
|
19
|
+
*/
|
|
20
|
+
/** The kind the words are on: the record's, the list's, the selection's first. */
|
|
21
|
+
export declare function kindOfTarget(store: Store<AnySchema>, target: AiTarget): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* THE LIKE 👍 TELLINGS, AS EXAMPLES FOR THE SLOTS: the top three like the
|
|
24
|
+
* words on this kind that were rated 👍 and are not excluded — given to Jev
|
|
25
|
+
* and the light model by name, and their ids kept on the telling they
|
|
26
|
+
* informed.
|
|
27
|
+
*/
|
|
28
|
+
export declare function examplesHere(told: ToldStore | undefined, store: Store<AnySchema>, principal: Principal, words: string, target: AiTarget): {
|
|
29
|
+
readonly examples: readonly TellingExample[];
|
|
30
|
+
readonly ids: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
/** The draft of one telling: the words, what they were on, what was decided and how long it took. */
|
|
33
|
+
export declare function tellingDraftOf(store: Store<AnySchema>, asked: {
|
|
34
|
+
readonly words: string;
|
|
35
|
+
readonly target: AiTarget;
|
|
36
|
+
readonly result: InlineResult;
|
|
37
|
+
readonly plan?: AppPlan | {
|
|
38
|
+
readonly refused: string;
|
|
39
|
+
};
|
|
40
|
+
readonly ms: number;
|
|
41
|
+
readonly conversation?: string;
|
|
42
|
+
readonly follows?: string;
|
|
43
|
+
readonly examples?: readonly string[];
|
|
44
|
+
}): TellingDraft;
|
|
45
|
+
/** Kept with the host, as the person: the telling, or nothing for a visitor or a door that is not there. */
|
|
46
|
+
export declare function keepTelling(told: ToldStore | undefined, draft: TellingDraft, by: Principal): Telling | undefined;
|
|
47
|
+
/** A change to a kept telling, handed to the host and never awaited. */
|
|
48
|
+
export declare function changeTelling(told: ToldStore | undefined, id: string, change: Parameters<ToldStore["change"]>[1]): void;
|
|
49
|
+
/**
|
|
50
|
+
* HOW IT ENDED, HEARD FROM THE DESK: the change it proposed accepted (on the
|
|
51
|
+
* card or on the tray once the card is put away), dismissed, or undone — an
|
|
52
|
+
* undo a quiet sign, never a 👎. Heard until it is undone, or for half an
|
|
53
|
+
* hour.
|
|
54
|
+
*/
|
|
55
|
+
export declare function watchTelling(desk: AiDesk, told: ToldStore, telling: Telling): () => void;
|
|
56
|
+
/**
|
|
57
|
+
* 👍 AND 👎 AT THE FOOT OF AN ANSWERED CARD: quiet, reachable from the
|
|
58
|
+
* keyboard, named "This was right" and "This was wrong"; a rating changed
|
|
59
|
+
* while the card is open; a 👎 offers one optional line, "What should it
|
|
60
|
+
* have done?", kept with the telling.
|
|
61
|
+
*/
|
|
62
|
+
export declare function RateTelling({ told, telling }: {
|
|
63
|
+
readonly told: ToldStore;
|
|
64
|
+
readonly telling: Telling;
|
|
65
|
+
}): import("react").JSX.Element;
|
|
66
|
+
//# sourceMappingURL=told-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"told-card.d.ts","sourceRoot":"","sources":["../src/told-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAuC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAA2D,KAAK,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,cAAc,EAA6D,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnP,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;;;;GAWG;AAEH,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAO3N;AAkCD,qGAAqG;AACrG,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EACvB,KAAK,EAAE;IACL,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,GACA,YAAY,CAwBd;AAED,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAShH;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAKvH;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,CAkBxF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,+BAkErG"}
|