@graview/primitives 0.1.19 → 0.1.21
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/dist/app-bar.d.ts +23 -6
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +86 -37
- package/dist/app-bar.js.map +1 -1
- package/dist/arrange-bar.d.ts +41 -24
- package/dist/arrange-bar.d.ts.map +1 -1
- package/dist/arrange-bar.js +123 -220
- package/dist/arrange-bar.js.map +1 -1
- package/dist/arrange-lists.d.ts +56 -0
- package/dist/arrange-lists.d.ts.map +1 -0
- package/dist/arrange-lists.js +196 -0
- package/dist/arrange-lists.js.map +1 -0
- package/dist/bar-activity.d.ts +10 -0
- package/dist/bar-activity.d.ts.map +1 -0
- package/dist/bar-activity.js +12 -0
- package/dist/bar-activity.js.map +1 -0
- package/dist/bar-panes.d.ts +2 -0
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +28 -16
- package/dist/bar-panes.js.map +1 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +19 -3
- package/dist/connections.js.map +1 -1
- package/dist/here.d.ts +40 -0
- package/dist/here.d.ts.map +1 -0
- package/dist/here.js +148 -0
- package/dist/here.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lens-keeping.js +2 -2
- package/dist/lens-keeping.js.map +1 -1
- package/dist/notices.d.ts +6 -0
- package/dist/notices.d.ts.map +1 -1
- package/dist/notices.js +9 -2
- package/dist/notices.js.map +1 -1
- package/dist/pages.d.ts +4 -0
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +4 -0
- package/dist/pages.js.map +1 -1
- package/dist/rule-line.d.ts +42 -0
- package/dist/rule-line.d.ts.map +1 -0
- package/dist/rule-line.js +102 -0
- package/dist/rule-line.js.map +1 -0
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +5 -4
- 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 +6 -5
- package/dist/scene-places.js.map +1 -1
- package/dist/scene-way-back-door.d.ts +11 -0
- package/dist/scene-way-back-door.d.ts.map +1 -0
- package/dist/scene-way-back-door.js +70 -0
- package/dist/scene-way-back-door.js.map +1 -0
- package/dist/scene-way-back.d.ts +15 -0
- package/dist/scene-way-back.d.ts.map +1 -0
- package/dist/scene-way-back.js +32 -0
- package/dist/scene-way-back.js.map +1 -0
- package/dist/scene.d.ts +1 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -1
- package/dist/seat-field.d.ts.map +1 -1
- package/dist/seat-field.js +27 -0
- package/dist/seat-field.js.map +1 -1
- package/dist/seat-panel.d.ts.map +1 -1
- package/dist/seat-panel.js +4 -1
- package/dist/seat-panel.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +2 -1
- package/dist/shell.js.map +1 -1
- package/dist/spec-css.d.ts.map +1 -1
- package/dist/spec-css.js +2 -0
- package/dist/spec-css.js.map +1 -1
- package/dist/spec-views.d.ts.map +1 -1
- package/dist/spec-views.js +7 -0
- package/dist/spec-views.js.map +1 -1
- package/dist/view-doors.d.ts.map +1 -1
- package/dist/view-doors.js +7 -0
- package/dist/view-doors.js.map +1 -1
- package/dist/way-back.d.ts +54 -0
- package/dist/way-back.d.ts.map +1 -0
- package/dist/way-back.js +69 -0
- package/dist/way-back.js.map +1 -0
- package/dist/workbench/standing.d.ts +8 -2
- package/dist/workbench/standing.d.ts.map +1 -1
- package/dist/workbench/standing.js +9 -4
- package/dist/workbench/standing.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { labelOf, valueWords, } from "@graview/core";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { directionWords, inSentence } from "./arrange-bar.js";
|
|
5
|
+
/**
|
|
6
|
+
* THE ARRANGING LINE'S LISTS: what "Sort", "Group", "Filter" and "Arrange"
|
|
7
|
+
* open. Fetched when a list is first opened, or when the pointer or the
|
|
8
|
+
* keyboard comes to the line: a page carries only the line up front.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The far ends a menu offers to narrow by. A menu is for choosing, not for
|
|
12
|
+
* reading a catalog: past FAR_ENDS it holds the most connected (the ones a
|
|
13
|
+
* person most likely means), and the search reaches the rest — a select of
|
|
14
|
+
* 1,177 songs was 1,177 elements in every row that offered it (docs/scale.md).
|
|
15
|
+
*/
|
|
16
|
+
export const FAR_ENDS = 40;
|
|
17
|
+
/** How many distinct values a word field may hold and still be offered as a list to pick from. */
|
|
18
|
+
const WORD_VALUES = 60;
|
|
19
|
+
/** Every value one field holds across a kind. */
|
|
20
|
+
function heldValues(graph, kind, key) {
|
|
21
|
+
return graph.allNodes().filter((node) => node.kind === kind).map((node) => node[key]);
|
|
22
|
+
}
|
|
23
|
+
/** Four round numbers through the spread of what a list holds: £10,000, £15,000, £25,000 — never £23,995. */
|
|
24
|
+
export function roundSteps(values) {
|
|
25
|
+
if (values.length < 2)
|
|
26
|
+
return [];
|
|
27
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
28
|
+
const spread = sorted[sorted.length - 1] - sorted[0];
|
|
29
|
+
if (spread <= 0)
|
|
30
|
+
return [];
|
|
31
|
+
// Rounded to the spread, not the value: prices to the £5,000, years to the year.
|
|
32
|
+
const unit = Math.max(1, 10 ** Math.floor(Math.log10(spread / 4)));
|
|
33
|
+
const step = spread / 4 >= unit * 5 ? unit * 5 : unit;
|
|
34
|
+
const round = (value) => Math.round(value / step) * step;
|
|
35
|
+
return [...new Set([0.2, 0.4, 0.6, 0.8].map((at) => round(sorted[Math.floor(at * (sorted.length - 1))])))].filter((value) => value > 0);
|
|
36
|
+
}
|
|
37
|
+
function farEndsOf(schema, graph, offer) {
|
|
38
|
+
const kinds = offer.far ?? [];
|
|
39
|
+
const seen = new Map();
|
|
40
|
+
const wanted = new Set(kinds);
|
|
41
|
+
for (const node of graph.allNodes()) {
|
|
42
|
+
if (!wanted.has(node.kind))
|
|
43
|
+
continue;
|
|
44
|
+
seen.set(node.id, labelOf(schema.tryDefinition(node.kind), node));
|
|
45
|
+
}
|
|
46
|
+
const ends = [...seen.entries()].map(([id, text]) => ({ id, label: text }));
|
|
47
|
+
const kept = ends.length <= FAR_ENDS
|
|
48
|
+
? ends
|
|
49
|
+
: ends
|
|
50
|
+
.map((end) => ({ end, ties: graph.out(end.id).length + graph.in(end.id).length }))
|
|
51
|
+
.sort((a, b) => b.ties - a.ties || a.end.label.localeCompare(b.end.label))
|
|
52
|
+
.slice(0, FAR_ENDS)
|
|
53
|
+
.map((entry) => entry.end);
|
|
54
|
+
return kept.sort((a, b) => a.label.localeCompare(b.label));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Every way to narrow the kind, known up front — a choice's options, `is`'s
|
|
58
|
+
* words, an edge's far ends, a boolean's yes and no, a few round numbers, a
|
|
59
|
+
* word field's few values — so one press adds a condition. A date wants a
|
|
60
|
+
* day, so it is offered as "before…", "after…" and "on…", which ask for it.
|
|
61
|
+
*/
|
|
62
|
+
export function filterEntries(schema, graph, offers) {
|
|
63
|
+
const entries = [];
|
|
64
|
+
for (const offer of offers.filters) {
|
|
65
|
+
if (offer.about === "is") {
|
|
66
|
+
for (const word of offer.options ?? [])
|
|
67
|
+
entries.push({ value: `is:${word}`, label: word, group: offer.label, condition: { key: "is", value: word } });
|
|
68
|
+
}
|
|
69
|
+
else if (offer.about === "edge") {
|
|
70
|
+
entries.push({ value: `${offer.key}:*`, label: "anything", group: offer.label, condition: { key: offer.key, value: "*" } });
|
|
71
|
+
entries.push({ value: `${offer.key}:none`, label: "nothing", group: offer.label, condition: { key: offer.key, value: "none" } });
|
|
72
|
+
for (const end of farEndsOf(schema, graph, offer))
|
|
73
|
+
entries.push({ value: `${offer.key}:${end.id}`, label: end.label, group: offer.label, condition: { key: offer.key, value: end.id } });
|
|
74
|
+
}
|
|
75
|
+
else if (offer.type === "date") {
|
|
76
|
+
for (const op of ["before", "after", "on"])
|
|
77
|
+
entries.push({ value: `${offer.key}:${op}`, label: `${op}…`, group: offer.label, ask: { key: offer.key, op, label: offer.label } });
|
|
78
|
+
}
|
|
79
|
+
else if (offer.type === "number") {
|
|
80
|
+
// A few round steps through what the list holds: one press, never a number typed blind.
|
|
81
|
+
const definition = schema.tryDefinition(offers.kind);
|
|
82
|
+
const steps = roundSteps(heldValues(graph, offers.kind, offer.key).filter((value) => typeof value === "number"));
|
|
83
|
+
for (const op of ["at-most", "at-least"]) {
|
|
84
|
+
for (const step of op === "at-most" ? steps : [...steps].reverse()) {
|
|
85
|
+
entries.push({ value: `${offer.key}:${op}:${step}`, label: `${op === "at-most" ? "at most" : "at least"} ${valueWords(definition, offer.key, step)}`, group: offer.label, condition: { key: offer.key, value: `${op}:${step}` } });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (offer.type === "text") {
|
|
90
|
+
// A word field by the values it holds — a make, a color — when they are few enough to be a list rather than a name each.
|
|
91
|
+
const held = [...new Set(heldValues(graph, offers.kind, offer.key).filter((value) => typeof value === "string" && value.length > 0 && !value.includes(",")))].sort((a, b) => a.localeCompare(b));
|
|
92
|
+
if (held.length >= 2 && held.length <= WORD_VALUES) {
|
|
93
|
+
for (const word of held)
|
|
94
|
+
entries.push({ value: `${offer.key}:${word}`, label: word, group: offer.label, condition: { key: offer.key, value: word } });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else if (offer.type === "boolean") {
|
|
98
|
+
entries.push({ value: `${offer.key}:true`, label: "yes", group: offer.label, condition: { key: offer.key, value: "true" } });
|
|
99
|
+
entries.push({ value: `${offer.key}:false`, label: "no", group: offer.label, condition: { key: offer.key, value: "false" } });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
for (const option of offer.options ?? [])
|
|
103
|
+
entries.push({ value: `${offer.key}:${option}`, label: valueWords(schema.tryDefinition(offers.kind), offer.key, option), group: offer.label, condition: { key: offer.key, value: option } });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return entries;
|
|
107
|
+
}
|
|
108
|
+
const BUCKETS = ["day", "week", "month", "year", "decade"];
|
|
109
|
+
/** One list, or on a narrow line all three; the keyboard to the choice made once it is drawn. */
|
|
110
|
+
export function ArrangeLists(props) {
|
|
111
|
+
const { which, schema, graph, offers, arrangement, set, toggle, has, done } = props;
|
|
112
|
+
const id = props.testId;
|
|
113
|
+
const here = useRef(null);
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
// Arrived after the list opened: the keyboard is on the pane, so it goes to the choice made, else the first entry.
|
|
116
|
+
const pane = here.current?.closest("[data-graview-popover]");
|
|
117
|
+
if (!pane || document.activeElement !== pane)
|
|
118
|
+
return;
|
|
119
|
+
(pane.querySelector('[aria-pressed="true"]') ?? pane.querySelector("button, input"))?.focus({ preventScroll: true });
|
|
120
|
+
}, []);
|
|
121
|
+
const sortOffer = arrangement.sort ? offers.sorts.find((offer) => offer.key === arrangement.sort.by) : undefined;
|
|
122
|
+
const groupOffer = arrangement.group ? offers.groups.find((offer) => offer.key === arrangement.group.by) : undefined;
|
|
123
|
+
const ways = directionWords(sortOffer);
|
|
124
|
+
const natural = offers.natural ? offers.sorts.find((offer) => offer.key === offers.natural.by) : undefined;
|
|
125
|
+
const entries = which === "filter" || (which === "all" && props.parts?.filter) ? filterEntries(schema, graph, offers) : [];
|
|
126
|
+
const sortList = (done) => (_jsxs(_Fragment, { children: [_jsx("p", { children: "Sort by" }), _jsx(Item, { testId: `${id}-sort-default`, value: "", on: !arrangement.sort, onPress: () => (set({ sort: undefined }), done()), children: natural ? `As declared (${inSentence(natural.label)})` : "As they were added" }), offers.sorts.map((offer) => (_jsx(Item, { value: offer.key, on: arrangement.sort?.by === offer.key, onPress: () => (set({ sort: { by: offer.key, direction: arrangement.sort?.direction ?? "asc" } }), done()), children: offer.label }, offer.key))), arrangement.sort ? (_jsxs("div", { role: "group", "aria-label": "Order", "data-testid": `${id}-direction`, children: [_jsx("p", { "aria-hidden": "true", children: "Order" }), ["asc", "desc"].map((direction) => (_jsx(Item, { testId: `${id}-direction-${direction}`, value: direction, on: arrangement.sort.direction === direction, onPress: () => (set({ sort: { by: arrangement.sort.by, direction } }), done()), children: ways[direction] }, direction)))] })) : null] }));
|
|
127
|
+
const groupList = (done) => (_jsxs(_Fragment, { children: [_jsx("p", { children: "Group by" }), _jsx(Item, { testId: `${id}-group-none`, value: "", on: !arrangement.group, onPress: () => (set({ group: undefined }), done()), children: "Not grouped" }), offers.groups.map((offer) => (_jsx(Item, { value: offer.key, on: arrangement.group?.by === offer.key, onPress: () => (set({ group: { by: offer.key } }), done()), children: offer.label }, offer.key))), arrangement.group && groupOffer?.buckets ? (_jsxs("div", { role: "group", "aria-label": "How wide a group is", "data-testid": `${id}-bucket`, children: [_jsx("p", { "aria-hidden": "true", children: "Each group" }), BUCKETS.map((bucket) => (_jsx(Item, { testId: `${id}-bucket-${bucket}`, value: bucket, on: (arrangement.group.bucket ?? "day") === bucket, onPress: () => (set({ group: { by: arrangement.group.by, bucket } }), done()), children: `A ${bucket}` }, bucket)))] })) : null] }));
|
|
128
|
+
const filterList = (done) => _jsx(FilterList, { entries: entries, has: has, testId: id, onToggle: (condition) => (toggle(condition), done()) });
|
|
129
|
+
const parts = props.parts ?? { sort: true, group: true, filter: true };
|
|
130
|
+
return (_jsxs("div", { ref: here, style: { display: "contents" }, children: [_jsx("style", { children: LIST_CSS }), which === "sort" ? sortList(done) : which === "group" ? groupList(done) : which === "filter" ? filterList(done) : (_jsxs(_Fragment, { children: [parts.sort ? _jsx("div", { role: "group", "aria-label": "Sort", children: sortList(done) }) : null, parts.group ? _jsx("div", { role: "group", "aria-label": "Group", children: groupList(done) }) : null, parts.filter ? _jsx("div", { role: "group", "aria-label": "Filter", children: filterList(done) }) : null] }))] }));
|
|
131
|
+
}
|
|
132
|
+
/** One entry of a list: its words, and whether it is the choice made. */
|
|
133
|
+
function Item({ value, on, onPress, testId, children }) {
|
|
134
|
+
return (_jsx("button", { type: "button", className: "graview-arrange-item", value: value, "data-value": value, "aria-pressed": on, onClick: onPress, ...(testId ? { "data-testid": testId } : {}), children: children }));
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* THE WAYS TO NARROW, under their offers' names. A condition already on is
|
|
138
|
+
* pressed, and pressing it takes it off. A date's "before…" asks for its
|
|
139
|
+
* day in the list itself, with the browser's own date control — added by
|
|
140
|
+
* Enter or "Add", let go by Escape or "Never mind".
|
|
141
|
+
*/
|
|
142
|
+
function FilterList({ entries, has, testId, onToggle }) {
|
|
143
|
+
const [asking, setAsking] = useState(null);
|
|
144
|
+
if (asking) {
|
|
145
|
+
return _jsx(AskDay, { ask: asking, testId: testId, onDay: (day) => onToggle({ key: asking.key, value: `${asking.op}:${day}` }), onCancel: () => setAsking(null) });
|
|
146
|
+
}
|
|
147
|
+
const groups = [...new Set(entries.map((entry) => entry.group))];
|
|
148
|
+
return (_jsx(_Fragment, { children: groups.map((group) => (_jsxs("div", { role: "group", "aria-label": group, children: [_jsx("p", { "aria-hidden": "true", children: group }), entries
|
|
149
|
+
.filter((entry) => entry.group === group)
|
|
150
|
+
.map((entry) => (_jsx(Item, { value: entry.value, on: entry.condition ? has(entry.condition) : false, onPress: () => (entry.condition ? onToggle(entry.condition) : setAsking(entry.ask)), children: entry.label }, entry.value)))] }, group))) }));
|
|
151
|
+
}
|
|
152
|
+
/*
|
|
153
|
+
* WHICH DAY, ASKED IN THE FILTER ITSELF. "Due before…" opened the browser's
|
|
154
|
+
* own prompt — "which day? (YYYY-MM-DD)" — a box over the whole page that
|
|
155
|
+
* asked a person to type the stored format. The day is asked in the list
|
|
156
|
+
* that wanted it, with the browser's own date control, and added by Enter
|
|
157
|
+
* or "Add"; Escape or "Never mind" lets it go.
|
|
158
|
+
*/
|
|
159
|
+
function AskDay({ ask, testId, onDay, onCancel }) {
|
|
160
|
+
const [day, setDay] = useState("");
|
|
161
|
+
const valid = /^\d{4}-\d{2}-\d{2}$/.test(day) && Number(day.slice(0, 4)) >= 1000;
|
|
162
|
+
const add = () => {
|
|
163
|
+
if (valid)
|
|
164
|
+
onDay(day);
|
|
165
|
+
};
|
|
166
|
+
return (_jsxs("div", { role: "group", "aria-label": `${ask.label} ${ask.op} which day`, "data-testid": `${testId}-ask-day`, className: "graview-arrange-ask", children: [_jsx("p", { "aria-hidden": "true", children: `${ask.label} ${ask.op}` }), _jsx("input", { type: "date", "data-testid": `${testId}-day`, "aria-label": `${ask.label} ${ask.op} which day`, autoFocus: true, value: day, onChange: (event) => setDay(event.target.value), onKeyDown: (event) => {
|
|
167
|
+
if (event.key === "Enter") {
|
|
168
|
+
event.preventDefault();
|
|
169
|
+
add();
|
|
170
|
+
}
|
|
171
|
+
else if (event.key === "Escape") {
|
|
172
|
+
// Back to the list, not out of it: the popover's own Escape is for the list.
|
|
173
|
+
event.preventDefault();
|
|
174
|
+
event.stopPropagation();
|
|
175
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
176
|
+
onCancel();
|
|
177
|
+
}
|
|
178
|
+
} }), _jsxs("span", { children: [_jsx("button", { type: "button", "data-testid": `${testId}-day-add`, disabled: !valid, onClick: add, children: "Add" }), _jsx("button", { type: "button", onClick: onCancel, children: "Never mind" })] })] }));
|
|
179
|
+
}
|
|
180
|
+
const LIST_CSS = `
|
|
181
|
+
.graview-arrange-list{display:grid;align-content:start;width:min(300px,calc(100vw - 24px));height:auto;max-height:min(70vh,520px);overflow:auto;margin:0;padding:6px;border-radius:10px;border:1px solid var(--graview-edge);background:var(--graview-float);box-shadow:var(--graview-lift-high);color:var(--graview-ink);font-size:.875rem;line-height:1.3}
|
|
182
|
+
.graview-arrange-list [role=group]{display:grid}
|
|
183
|
+
.graview-arrange-list p{margin:8px 8px 2px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--graview-ink-muted)}
|
|
184
|
+
.graview-arrange-item{display:flex;align-items:flex-start;gap:8px;width:100%;min-height:30px;margin:0;padding:6px 8px;border:0;border-radius:7px;background:none;font:inherit;text-align:left;color:var(--graview-ink);cursor:pointer;overflow-wrap:anywhere}
|
|
185
|
+
.graview-arrange-item::before{content:"";flex:0 0 12px}
|
|
186
|
+
.graview-arrange-item[aria-pressed=true]{font-weight:600}
|
|
187
|
+
.graview-arrange-item[aria-pressed=true]::before{content:"✓";color:var(--graview-accent)}
|
|
188
|
+
.graview-arrange-item:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
189
|
+
.graview-arrange-ask{display:grid;gap:8px;padding:0 8px 8px}
|
|
190
|
+
.graview-arrange-ask p{margin:8px 0 0}
|
|
191
|
+
.graview-arrange-ask input{box-sizing:border-box;width:100%;min-height:32px;padding:0 8px;border:1px solid var(--graview-edge);border-radius:7px;background:var(--graview-panel);font:inherit;color:var(--graview-ink)}
|
|
192
|
+
.graview-arrange-ask span{display:flex;gap:8px}
|
|
193
|
+
.graview-arrange-ask button{min-height:30px;padding:0 12px;border:1px solid var(--graview-edge);border-radius:7px;background:var(--graview-panel);font:inherit;color:var(--graview-ink);cursor:pointer}
|
|
194
|
+
.graview-arrange-ask button:disabled{opacity:.5;cursor:default}
|
|
195
|
+
`;
|
|
196
|
+
//# sourceMappingURL=arrange-lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrange-lists.js","sourceRoot":"","sources":["../src/arrange-lists.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,UAAU,GAQX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAE3B,kGAAkG;AAClG,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,iDAAiD;AACjD,SAAS,UAAU,CAAC,KAAmB,EAAE,IAAY,EAAE,GAAW;IAChE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAA2C,CAAC,GAAG,CAAC,CAAC,CAAC;AAChI,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAC,MAAyB;IAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACvD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3B,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC3I,CAAC;AAED,SAAS,SAAS,CAAC,MAAiB,EAAE,KAAmB,EAAE,KAAmB;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,IAAI,QAAQ;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACjF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACzE,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;aAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,KAAmB,EAAE,MAAmB;IACvF,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxJ,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5H,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACjI,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3L,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,wFAAwF;YACxF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAClI,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAU,EAAE,CAAC;gBAClD,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrO,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,yHAAyH;YACzH,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAClN,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBACnD,KAAK,MAAM,IAAI,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACxJ,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7H,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAChI,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACzO,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,GAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAgBlF,iGAAiG;AACjG,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,mHAAmH;QACnH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAc,wBAAwB,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO;QACrD,CAAC,IAAI,CAAC,aAAa,CAAc,uBAAuB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAc,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClH,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,OAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,MAAM,OAAO,GAAG,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3H,MAAM,QAAQ,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,CACrC,8BACE,kCAAc,EACd,KAAC,IAAI,IAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YAClH,OAAO,CAAC,CAAC,CAAC,gBAAgB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,GACzE,EACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,KAAC,IAAI,IAAiB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YACvL,KAAK,CAAC,KAAK,IADH,KAAK,CAAC,GAAG,CAEb,CACR,CAAC,EACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,eAAK,IAAI,EAAC,OAAO,gBAAY,OAAO,iBAAc,GAAG,EAAE,YAAY,aACjE,2BAAe,MAAM,sBAAU,EAC7B,CAAC,KAAK,EAAE,MAAM,CAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC7C,KAAC,IAAI,IAAiB,MAAM,EAAE,GAAG,EAAE,cAAc,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,CAAC,IAAK,CAAC,SAAS,KAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,IAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YAC3M,IAAI,CAAC,SAAS,CAAC,IADP,SAAS,CAEb,CACR,CAAC,IACE,CACP,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,CACtC,8BACE,mCAAe,EACf,KAAC,IAAI,IAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,4BAE9G,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,IAAI,IAAiB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YACxI,KAAK,CAAC,KAAK,IADH,KAAK,CAAC,GAAG,CAEb,CACR,CAAC,EACD,WAAW,CAAC,KAAK,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAC1C,eAAK,IAAI,EAAC,OAAO,gBAAY,qBAAqB,iBAAc,GAAG,EAAE,SAAS,aAC5E,2BAAe,MAAM,2BAAe,EACnC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAc,MAAM,EAAE,GAAG,EAAE,WAAW,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAM,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,KAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YACpM,KAAK,MAAM,EAAE,IADL,MAAM,CAEV,CACR,CAAC,IACE,CACP,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,GAAI,CAAC;IAEtJ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvE,OAAO,CACL,eAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,aAC5C,0BAAQ,QAAQ,GAAS,EACxB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACjH,8BACG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,IAAI,EAAC,OAAO,gBAAY,MAAM,YAAE,QAAQ,CAAC,IAAI,CAAC,GAAO,CAAC,CAAC,CAAC,IAAI,EAC9E,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAK,IAAI,EAAC,OAAO,gBAAY,OAAO,YAAE,SAAS,CAAC,IAAI,CAAC,GAAO,CAAC,CAAC,CAAC,IAAI,EACjF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAK,IAAI,EAAC,OAAO,gBAAY,QAAQ,YAAE,UAAU,CAAC,IAAI,CAAC,GAAO,CAAC,CAAC,CAAC,IAAI,IACpF,CACJ,IACG,CACP,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAA0I;IAC5L,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAE,KAAK,gBAAc,KAAK,kBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,KAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YACtK,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAA6K;IAC/N,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,KAAC,MAAM,IAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAI,CAAC;IAC/J,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,CACL,4BACG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,eAAiB,IAAI,EAAC,OAAO,gBAAa,KAAK,aAC7C,2BAAe,MAAM,YAAE,KAAK,GAAK,EAChC,OAAO;qBACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;qBACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,KAAC,IAAI,IAAmB,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,YACjL,KAAK,CAAC,KAAK,IADH,KAAK,CAAC,KAAK,CAEf,CACR,CAAC,KARI,KAAK,CAST,CACP,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAA+J;IAC3M,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACjF,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,IAAI,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACL,eAAK,IAAI,EAAC,OAAO,gBAAa,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,YAAY,iBAAe,GAAG,MAAM,UAAU,EAAE,SAAS,EAAC,qBAAqB,aACjI,2BAAe,MAAM,YAAE,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,GAAK,EACpD,gBACE,IAAI,EAAC,MAAM,iBACE,GAAG,MAAM,MAAM,gBAChB,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,YAAY,EAC9C,SAAS,QACT,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,GAAG,EAAE,CAAC;oBACR,CAAC;yBAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAClC,6EAA6E;wBAC7E,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxB,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;wBAC7C,QAAQ,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC,GACD,EACF,2BACE,iBAAQ,IAAI,EAAC,QAAQ,iBAAc,GAAG,MAAM,UAAU,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,oBAE7E,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,QAAQ,2BAE9B,IACJ,IACH,CACP,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;CAehB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHAT HAS HAPPENED, ON A BAR THAT IS NOT THE SCENE'S (FR-152): the routed
|
|
3
|
+
* face's. The scene draws Activity in the bar's place for the face's own
|
|
4
|
+
* tool; on Pages, once the notice that offered a change back had gone, a
|
|
5
|
+
* person with a mouse had no way to the change at all. The same list and
|
|
6
|
+
* the same way back for each change, fetched with the bar's panes, so a
|
|
7
|
+
* face that draws it before anything has happened carries none of it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const BarActivity: import("react").ComponentType<object>;
|
|
10
|
+
//# sourceMappingURL=bar-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-activity.d.ts","sourceRoot":"","sources":["../src/bar-activity.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,uCAA+E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { barPanes } from "./bar-panes-door.js";
|
|
3
|
+
/**
|
|
4
|
+
* WHAT HAS HAPPENED, ON A BAR THAT IS NOT THE SCENE'S (FR-152): the routed
|
|
5
|
+
* face's. The scene draws Activity in the bar's place for the face's own
|
|
6
|
+
* tool; on Pages, once the notice that offered a change back had gone, a
|
|
7
|
+
* person with a mouse had no way to the change at all. The same list and
|
|
8
|
+
* the same way back for each change, fetched with the bar's panes, so a
|
|
9
|
+
* face that draws it before anything has happened carries none of it.
|
|
10
|
+
*/
|
|
11
|
+
export const BarActivity = barPanes.part((panes) => _jsx(panes.ActivityRail, { calls: [] }), { quiet: true });
|
|
12
|
+
//# sourceMappingURL=bar-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-activity.js","sourceRoot":"","sources":["../src/bar-activity.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,KAAK,CAAC,YAAY,IAAC,KAAK,EAAE,EAAE,GAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
package/dist/bar-panes.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type AnySchema, type AnyGraphNode, type Violation } from "@graview/core";
|
|
2
2
|
import type { HostAction } from "./profile.js";
|
|
3
|
+
export { Here } from "./here.js";
|
|
4
|
+
export { ActivityRail } from "./workbench/activity.js";
|
|
3
5
|
/** The problems Standing opens: each says what is broken and how many ways there are to fix it; a press selects what it names. */
|
|
4
6
|
export declare function ProblemRows({ violations, pick }: {
|
|
5
7
|
readonly violations: readonly Violation[];
|
package/dist/bar-panes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-panes.d.ts","sourceRoot":"","sources":["../src/bar-panes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAGjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bar-panes.d.ts","sourceRoot":"","sources":["../src/bar-panes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAGjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AASvD,kIAAkI;AAClI,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;CAAE,+BAyD7I;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,EAC/C,IAAI,EACJ,EAAE,EACF,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,KAAK,EACL,IAAI,EACJ,SAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,0HAA0H;IAC1H,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,+BAsLA"}
|
package/dist/bar-panes.js
CHANGED
|
@@ -3,6 +3,11 @@ import { humanizeField } from "@graview/core";
|
|
|
3
3
|
import { useGraview } from "@graview/react/provider";
|
|
4
4
|
import { choiceStyle } from "./choice.js";
|
|
5
5
|
import { Seats } from "./seats.js";
|
|
6
|
+
import { ownSentence, problemTitle, RuleLineView, useLined } from "./rule-line.js";
|
|
7
|
+
/* Who else is here (FR-155), fetched with the panes once somebody is. */
|
|
8
|
+
export { Here } from "./here.js";
|
|
9
|
+
/* What has happened, on the routed face's bar (FR-152): `BarActivity`. */
|
|
10
|
+
export { ActivityRail } from "./workbench/activity.js";
|
|
6
11
|
/*
|
|
7
12
|
* WHAT IS BEHIND THE BAR'S TOOLS (FR-131), fetched when one is first reached
|
|
8
13
|
* for: the bar draws the standing and the person at once, and a page that
|
|
@@ -11,22 +16,29 @@ import { Seats } from "./seats.js";
|
|
|
11
16
|
*/
|
|
12
17
|
/** The problems Standing opens: each says what is broken and how many ways there are to fix it; a press selects what it names. */
|
|
13
18
|
export function ProblemRows({ violations, pick }) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
const { store, brand } = useGraview();
|
|
20
|
+
// Each with its rule's line, once the words are here: the rows say the rule's sentence until then.
|
|
21
|
+
const lined = useLined(store, violations);
|
|
22
|
+
return (_jsx(_Fragment, { children: lined.map((violation, index) => {
|
|
23
|
+
const title = problemTitle(violation);
|
|
24
|
+
const ways = violation.repairs.length > 0 ? `${violation.repairs.length} ${violation.repairs.length === 1 ? "way" : "ways"} to fix` : "";
|
|
25
|
+
return (_jsx("li", { style: {
|
|
26
|
+
// A hairline between rows, not a card around each. Bordered
|
|
27
|
+
// buttons inside a bordered panel is two boxes doing one job,
|
|
28
|
+
// and it made a two-item list look like a dialog.
|
|
29
|
+
borderTop: index === 0 ? "none" : "1px solid var(--graview-edge)",
|
|
30
|
+
}, children: _jsxs("button", { type: "button", onClick: () => pick(violation), ...(ownSentence(violation) !== undefined ? { title: ownSentence(violation) } : {}), style: {
|
|
31
|
+
width: "100%",
|
|
32
|
+
textAlign: "left",
|
|
33
|
+
fontSize: "0.8125rem",
|
|
34
|
+
lineHeight: 1.4,
|
|
35
|
+
padding: "7px 8px",
|
|
36
|
+
border: "1px solid transparent",
|
|
37
|
+
background: "none",
|
|
38
|
+
boxShadow: "none",
|
|
39
|
+
borderRadius: 7,
|
|
40
|
+
}, children: [violation.line ? (_jsx(RuleLineView, { line: violation.line, schema: store.schema, ...(brand ? { brand } : {}), stacked: true, style: { display: "block", color: "var(--graview-ink)" } })) : (_jsx("span", { style: { display: "block", color: "var(--graview-ink)" }, children: violation.message })), title || ways ? (_jsx("span", { style: { color: "var(--graview-ink-faint)", fontSize: "0.75rem" }, children: [title, ways].filter(Boolean).join(" · ") })) : null] }) }, `${violation.invariant}:${index}`));
|
|
41
|
+
}) }));
|
|
30
42
|
}
|
|
31
43
|
/**
|
|
32
44
|
* WHAT IS BEHIND THE PERSON ON THE BAR (FR-131): who you are, the host's own
|
package/dist/bar-panes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-panes.js","sourceRoot":"","sources":["../src/bar-panes.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAqD,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bar-panes.js","sourceRoot":"","sources":["../src/bar-panes.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAUD,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,gBAAgB,sCA2EzE"}
|
package/dist/connections.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { edgeWords, labelOf, nounOf } from "@graview/core";
|
|
2
|
+
import { edgeWords, humanizeField, labelOf, nounOf } from "@graview/core";
|
|
3
3
|
import { useGraph, useGraview } from "@graview/react/provider";
|
|
4
4
|
import { Chip } from "./primitives/index.js";
|
|
5
5
|
import { hueFor } from "@graview/render";
|
|
@@ -24,7 +24,7 @@ export function Connections({ id, max = 8, empty, hide }) {
|
|
|
24
24
|
return (_jsx("div", { "data-graview-primitive": "connections", style: { display: "flex", flexDirection: "column", gap: 12 }, children: groups.map((group) => {
|
|
25
25
|
const shown = group.ids.slice(0, max);
|
|
26
26
|
const hidden = group.ids.length - shown.length;
|
|
27
|
-
return (_jsxs("section", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [_jsx("h2", { style: {
|
|
27
|
+
return (_jsxs("section", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [_jsx("h2", { ...(group.said ? { "aria-label": group.said } : {}), style: {
|
|
28
28
|
margin: 0,
|
|
29
29
|
fontSize: "0.75rem",
|
|
30
30
|
fontWeight: 600,
|
|
@@ -86,7 +86,7 @@ function groupsFor(store, id, violations = []) {
|
|
|
86
86
|
* declaration's `inverse` when it has one, and the edge kind in plain
|
|
87
87
|
* words when it does not — which says less and is at least not wrong.
|
|
88
88
|
*/
|
|
89
|
-
|
|
89
|
+
...captionOf(store.schema, owner, edge.kind, direction),
|
|
90
90
|
ids: [],
|
|
91
91
|
};
|
|
92
92
|
if (!group.ids.includes(otherId))
|
|
@@ -97,4 +97,20 @@ function groupsFor(store, id, violations = []) {
|
|
|
97
97
|
group.ids.sort();
|
|
98
98
|
return [...byKey.values()].sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* A GROUP'S CAPTION (FR-142): the declaration's words for this end where
|
|
102
|
+
* they are a phrase of their own ("covers", "the plan it is on"), else an
|
|
103
|
+
* arrow that says which way the relation points and its name — "→ tier"
|
|
104
|
+
* from the record that declares it, "← part of" from the record it points
|
|
105
|
+
* at. The key spoken alone, "part of" over the topics a workshop part
|
|
106
|
+
* holds, read the relation the wrong way round. A screen reader hears the
|
|
107
|
+
* words, never the arrow.
|
|
108
|
+
*/
|
|
109
|
+
function captionOf(schema, owner, edgeKind, direction) {
|
|
110
|
+
const words = edgeWords(schema, owner, edgeKind, direction);
|
|
111
|
+
const key = humanizeField(edgeKind).toLowerCase();
|
|
112
|
+
if (words.trim().toLowerCase() !== key)
|
|
113
|
+
return { label: words };
|
|
114
|
+
return direction === "out" ? { label: `→ ${key}`, said: key } : { label: `← ${key}`, said: `${key}, pointing here` };
|
|
115
|
+
}
|
|
100
116
|
//# sourceMappingURL=connections.js.map
|
package/dist/connections.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAuD,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.tsx"],"names":[],"mappings":"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"}
|
package/dist/here.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AnySchema, type Presence, type Principal, type Store } from "@graview/core";
|
|
2
|
+
/**
|
|
3
|
+
* The others, as the bar says them: everybody here but this reader, in any
|
|
4
|
+
* tab of theirs, each person once however many tabs they have open — the
|
|
5
|
+
* one they said something from last. A viewer not signed in is one per tab.
|
|
6
|
+
*/
|
|
7
|
+
export declare function othersHere(who: ReadonlyMap<string, Presence>, principal: Principal): readonly Presence[];
|
|
8
|
+
/**
|
|
9
|
+
* WHAT IS HERE, IN A SENTENCE: "Ada Lovelace is here", "Ada Lovelace,
|
|
10
|
+
* Claude, for Ada and 2 viewers are here". What the bar is called and what
|
|
11
|
+
* a screen reader is told when somebody comes or goes.
|
|
12
|
+
*/
|
|
13
|
+
export declare function hereSaid(others: readonly Presence[]): string;
|
|
14
|
+
/**
|
|
15
|
+
* WHERE SOMEBODY IS, IN THE DECLARATION'S WORDS: the picture in view, by
|
|
16
|
+
* its title; the record they are on, by its label; the kind they are on, by
|
|
17
|
+
* its plural; the whole thing, from above. Nothing where their stop names
|
|
18
|
+
* none of those, or names what this reader may not see — never an id.
|
|
19
|
+
*/
|
|
20
|
+
export declare function whereSaid(stop: string, input: {
|
|
21
|
+
readonly store: Store<AnySchema>;
|
|
22
|
+
readonly principal: Principal;
|
|
23
|
+
readonly hidden: ReadonlySet<string>;
|
|
24
|
+
readonly pictures: readonly {
|
|
25
|
+
readonly kind: string;
|
|
26
|
+
readonly as: string;
|
|
27
|
+
readonly title: string;
|
|
28
|
+
}[];
|
|
29
|
+
}): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* THE OTHERS, ON THE BAR (FR-155): their marks — three, two on a phone's
|
|
32
|
+
* bar — the rest counted, and the list a press opens. On the scene
|
|
33
|
+
* (`scene`) a name in the list goes where they are, as their figure does;
|
|
34
|
+
* on Pages it says where they are.
|
|
35
|
+
*/
|
|
36
|
+
export declare function Here({ scene, compact }: {
|
|
37
|
+
readonly scene: boolean;
|
|
38
|
+
readonly compact: boolean;
|
|
39
|
+
}): import("react").JSX.Element | null;
|
|
40
|
+
//# sourceMappingURL=here.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"here.d.ts","sourceRoot":"","sources":["../src/here.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAsChH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,EAAE,CAYxG;AAWD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAgB7Q;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,sCAkF9F"}
|