@graview/primitives 0.1.65 → 0.1.67
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 +114 -15
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +192 -130
- package/dist/app-bar.js.map +1 -1
- package/dist/app-menu.d.ts +9 -0
- package/dist/app-menu.d.ts.map +1 -0
- package/dist/app-menu.js +60 -0
- package/dist/app-menu.js.map +1 -0
- package/dist/bar-activity.d.ts +5 -9
- package/dist/bar-activity.d.ts.map +1 -1
- package/dist/bar-activity.js +24 -7
- package/dist/bar-activity.js.map +1 -1
- package/dist/bar-panes.d.ts +5 -5
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +9 -5
- package/dist/bar-panes.js.map +1 -1
- package/dist/bar-suggested.d.ts +9 -1
- package/dist/bar-suggested.d.ts.map +1 -1
- package/dist/bar-suggested.js +11 -17
- package/dist/bar-suggested.js.map +1 -1
- package/dist/better-bar.d.ts +77 -0
- package/dist/better-bar.d.ts.map +1 -0
- package/dist/better-bar.js +312 -0
- package/dist/better-bar.js.map +1 -0
- package/dist/better-panel.d.ts +55 -0
- package/dist/better-panel.d.ts.map +1 -0
- package/dist/better-panel.js +151 -0
- package/dist/better-panel.js.map +1 -0
- package/dist/editable.d.ts +8 -1
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +140 -16
- package/dist/editable.js.map +1 -1
- package/dist/first-look-door.d.ts +2 -2
- package/dist/first-look-door.js +2 -2
- package/dist/first-look.d.ts.map +1 -1
- package/dist/first-look.js +9 -7
- package/dist/first-look.js.map +1 -1
- package/dist/frame.d.ts +2 -2
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +1 -1
- package/dist/frame.js.map +1 -1
- package/dist/inbox-pane.d.ts +31 -0
- package/dist/inbox-pane.d.ts.map +1 -0
- package/dist/inbox-pane.js +89 -0
- package/dist/inbox-pane.js.map +1 -0
- package/dist/inbox.d.ts +17 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +84 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lens/calendar-drawing.js +7 -3
- package/dist/lens/calendar-drawing.js.map +1 -1
- package/dist/menu-suggested.d.ts +54 -0
- package/dist/menu-suggested.d.ts.map +1 -0
- package/dist/menu-suggested.js +140 -0
- package/dist/menu-suggested.js.map +1 -0
- package/dist/menu-told-door.js +1 -1
- package/dist/menu-told-door.js.map +1 -1
- package/dist/menu-told.d.ts +7 -0
- package/dist/menu-told.d.ts.map +1 -1
- package/dist/menu-told.js +24 -0
- package/dist/menu-told.js.map +1 -1
- package/dist/notify-sheet.js +2 -2
- package/dist/notify-sheet.js.map +1 -1
- package/dist/page-better.d.ts +27 -0
- package/dist/page-better.d.ts.map +1 -0
- package/dist/page-better.js +747 -0
- package/dist/page-better.js.map +1 -0
- package/dist/page-parts.d.ts +41 -0
- package/dist/page-parts.d.ts.map +1 -0
- package/dist/page-parts.js +101 -0
- package/dist/page-parts.js.map +1 -0
- package/dist/pages.d.ts +2 -3
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +2 -3
- package/dist/pages.js.map +1 -1
- package/dist/profile.d.ts +1 -10
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +2 -3
- package/dist/profile.js.map +1 -1
- package/dist/scene-bar.d.ts +1 -1
- package/dist/scene-bar.d.ts.map +1 -1
- package/dist/scene-bar.js +4 -7
- package/dist/scene-bar.js.map +1 -1
- package/dist/section-better.d.ts +66 -9
- package/dist/section-better.d.ts.map +1 -1
- package/dist/section-better.js +285 -136
- package/dist/section-better.js.map +1 -1
- package/dist/section-door.d.ts +7 -0
- package/dist/section-door.d.ts.map +1 -1
- package/dist/section-door.js +39 -5
- package/dist/section-door.js.map +1 -1
- package/dist/section-menu.d.ts +23 -9
- package/dist/section-menu.d.ts.map +1 -1
- package/dist/section-menu.js +176 -23
- package/dist/section-menu.js.map +1 -1
- package/dist/section-words.d.ts +8 -0
- package/dist/section-words.d.ts.map +1 -1
- package/dist/section-words.js +25 -0
- package/dist/section-words.js.map +1 -1
- package/dist/shell.d.ts +7 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +4 -2
- package/dist/shell.js.map +1 -1
- package/dist/suggested.d.ts +21 -10
- package/dist/suggested.d.ts.map +1 -1
- package/dist/suggested.js +80 -66
- package/dist/suggested.js.map +1 -1
- package/dist/suggestion-sentence.d.ts +50 -0
- package/dist/suggestion-sentence.d.ts.map +1 -0
- package/dist/suggestion-sentence.js +119 -0
- package/dist/suggestion-sentence.js.map +1 -0
- package/dist/told-card.js +1 -1
- package/dist/told-card.js.map +1 -1
- package/dist/told-ui.d.ts +1 -1
- package/dist/told-ui.d.ts.map +1 -1
- package/dist/told-ui.js +1 -1
- package/dist/told-ui.js.map +1 -1
- package/dist/when-words.d.ts +21 -0
- package/dist/when-words.d.ts.map +1 -0
- package/dist/when-words.js +43 -0
- package/dist/when-words.js.map +1 -0
- package/dist/workbench/activity.d.ts +44 -0
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +74 -59
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +170 -31
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/standing.d.ts.map +1 -1
- package/dist/workbench/standing.js +1 -1
- package/dist/workbench/standing.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { counted, fieldInPassing, humanizeValue, labelOf, nodeRefArgs, pluralOf } from "@graview/core";
|
|
2
|
+
/*
|
|
3
|
+
* A SUGGESTION SAID AS ONE QUESTION (Roadmap f-suggestion-card-one-line).
|
|
4
|
+
* A book app's inbox said one placement three times — "Graview, tidying
|
|
5
|
+
* suggests Place in chapter: What I steer by", then "Jev: 0.95 that the in
|
|
6
|
+
* chapter of … is …", then two chips naming both records — with its
|
|
7
|
+
* confidence twice and a model's id. Here it is one sentence a person reads
|
|
8
|
+
* at a glance, its records named in it so a page can make each a link:
|
|
9
|
+
* "Put “What I steer by” in 09 · Without a Map?". Read off the call and the
|
|
10
|
+
* declaration — the act that links, the relation's own words — never off
|
|
11
|
+
* what the maker said, which is for "Why?". Here, beside the tray that
|
|
12
|
+
* alone draws it, so a page carries none of it before the inbox opens.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* WHY, IN WORDS ALONE: the maker's reason, without how sure it was or which
|
|
16
|
+
* model — what a suggestion's "Why?" says. A basis written before 0.1.66
|
|
17
|
+
* said the model and its probability first ("Jev: 0.95 that the chapter of
|
|
18
|
+
* … is … (both name the lease)"); its reason is what was in the brackets.
|
|
19
|
+
*/
|
|
20
|
+
export function whyWords(lineage) {
|
|
21
|
+
const basis = lineage.basis.trim();
|
|
22
|
+
const old = /^[^:]{1,40}: (?:\d(?:\.\d+)?|none|no)\b/i.test(basis);
|
|
23
|
+
const reason = old ? (/\(([^()]+)\)\s*$/.exec(basis)?.[1] ?? "") : basis;
|
|
24
|
+
// A reason that is a figure ("(0.62)") is no reason a person reads.
|
|
25
|
+
if (!reason || /^[\d.\s%]+$/.test(reason))
|
|
26
|
+
return "No reason was kept.";
|
|
27
|
+
const said = reason.charAt(0).toUpperCase() + reason.slice(1);
|
|
28
|
+
return /[.!?]$/.test(said) ? said : `${said}.`;
|
|
29
|
+
}
|
|
30
|
+
/** Where a thing is put: "in", "under", "on". A relation that starts with one is said "Put A in B?". */
|
|
31
|
+
const PUT = new Set(["in", "into", "on", "onto", "under", "at", "within", "inside", "near", "beside", "behind", "over", "after", "before"]);
|
|
32
|
+
/** What follows a verb of a relation said as a verb: "waits for", "belongs to", "depends on". */
|
|
33
|
+
const AFTER_VERB = new Set(["for", "to", "on", "in", "with", "by", "from", "of", "after", "before", "into", "about", "under"]);
|
|
34
|
+
/** A relation's verb said after "Should": "waits" → "wait", "carries" → "carry", "goes" → "go". */
|
|
35
|
+
const base = (verb) => (/ies$/.test(verb) ? verb.replace(/ies$/, "y") : /(ch|sh|x|ss|o)es$/.test(verb) ? verb.replace(/es$/, "") : verb.replace(/s$/, ""));
|
|
36
|
+
const lower = (words) => (/^[A-Z][a-z]/.test(words) ? words.charAt(0).toLowerCase() + words.slice(1) : words);
|
|
37
|
+
/**
|
|
38
|
+
* The suggestion as one question, with the records it names in it. A
|
|
39
|
+
* suggestion of several calls, or of an act this cannot read, is its own
|
|
40
|
+
* words — the act's sentence — as it was.
|
|
41
|
+
*/
|
|
42
|
+
export function suggestionSentence(store, suggestion) {
|
|
43
|
+
const schema = store.schema;
|
|
44
|
+
const node = (id) => (typeof id === "string" ? store.graph.getNode(id) : undefined);
|
|
45
|
+
const record = (one, quoted = false) => ({ record: one.id, label: labelOf(schema.tryDefinition(one.kind), one), ...(quoted ? { quoted: true } : {}) });
|
|
46
|
+
const said = (parts, group, many) => ({
|
|
47
|
+
parts,
|
|
48
|
+
text: parts.map((part) => (typeof part === "string" ? part : part.quoted ? `“${part.label}”` : part.label)).join(""),
|
|
49
|
+
group,
|
|
50
|
+
many,
|
|
51
|
+
});
|
|
52
|
+
const asItWas = said([suggestion.intent], `intent:${suggestion.intent}`, (count) => `${count} suggestions`);
|
|
53
|
+
if (suggestion.calls.length !== 1)
|
|
54
|
+
return asItWas;
|
|
55
|
+
const call = suggestion.calls[0];
|
|
56
|
+
const args = call.args;
|
|
57
|
+
const act = store.allMutations().find((one) => one.name === call.name);
|
|
58
|
+
const subjectArg = act?.subject?.arg;
|
|
59
|
+
const subject = subjectArg ? node(args[subjectArg]) : undefined;
|
|
60
|
+
if (!act || !subject)
|
|
61
|
+
return asItWas;
|
|
62
|
+
const kinds = (count) => counted(schema, subject.kind, count);
|
|
63
|
+
const group = (way) => `${call.name}:${way}`;
|
|
64
|
+
const farOf = () => {
|
|
65
|
+
const refs = nodeRefArgs(act.input).filter((ref) => ref.name !== subjectArg && args[ref.name] !== undefined);
|
|
66
|
+
return refs.length === 1 ? node(args[refs[0].name]) : undefined;
|
|
67
|
+
};
|
|
68
|
+
// A merge: "Merge “Acme” into Acme Supply?"
|
|
69
|
+
const into = node(args["into"]);
|
|
70
|
+
if (call.name === `merge-${subject.kind}` && into)
|
|
71
|
+
return said(["Merge ", record(subject, true), " into ", record(into), "?"], group("merge"), (count) => `${kinds(count)} to merge`);
|
|
72
|
+
// Set aside: "Set “Q3 offsite” aside?"
|
|
73
|
+
if (call.name === `archive-${subject.kind}`)
|
|
74
|
+
return said(["Set ", record(subject, true), " aside?"], group("archive"), (count) => `${kinds(count)} to set aside`);
|
|
75
|
+
// A link, through the relation the act connects.
|
|
76
|
+
const far = farOf();
|
|
77
|
+
const relation = act.connects?.find((one) => schema.tryDefinition(subject.kind)?.edges?.[one] !== undefined);
|
|
78
|
+
if (far && relation) {
|
|
79
|
+
const edge = schema.tryDefinition(subject.kind).edges[relation];
|
|
80
|
+
const words = fieldInPassing(schema.tryDefinition(subject.kind), relation).split(" ");
|
|
81
|
+
const [first, second] = words;
|
|
82
|
+
const farMany = lower(pluralOf(schema, far.kind));
|
|
83
|
+
// "in chapter": put it there.
|
|
84
|
+
if (first && PUT.has(first))
|
|
85
|
+
return said(["Put ", record(subject, true), ` ${first} `, record(far), "?"], group(`put:${first}`), (count) => `${kinds(count)} to put ${first} ${farMany}`);
|
|
86
|
+
// "waits for": a verb.
|
|
87
|
+
if (first && second && AFTER_VERB.has(second) && /[^s]s$/.test(first))
|
|
88
|
+
return said(["Should ", record(subject, true), ` ${[base(first), ...words.slice(1)].join(" ")} `, record(far), "?"], group("verb"), (count) => `${kinds(count)} to link`);
|
|
89
|
+
// "venue", one: "Make Harbor Hall the venue of “Dinner”?"
|
|
90
|
+
const noun = words.join(" ");
|
|
91
|
+
if (edge.cardinality === "one")
|
|
92
|
+
return said(["Make ", record(far), ` the ${noun} of `, record(subject, true), "?"], group("one"), (count) => `${kinds(count)} to give ${/^[aeiou]/i.test(noun) ? "an" : "a"} ${noun}`);
|
|
93
|
+
return said(["Add ", record(far), ` to the ${noun} of `, record(subject, true), "?"], group("many"), (count) => `${kinds(count)} to link`);
|
|
94
|
+
}
|
|
95
|
+
// A choice filled in: "Mark “Fix the roof” as Urgent?"
|
|
96
|
+
const values = Object.entries(args).filter(([name, value]) => name !== subjectArg && typeof value === "string" && !node(value));
|
|
97
|
+
if (suggestion.lineage?.actor === "categorize" && values.length === 1)
|
|
98
|
+
return said(["Mark ", record(subject, true), ` as ${humanizeValue(String(values[0][1]))}?`], group("mark"), (count) => `${kinds(count)} to mark`);
|
|
99
|
+
return asItWas;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Several suggestions of the same act, said the same way, together under
|
|
103
|
+
* one line — "3 notes to put in chapters" — in the order the first of each
|
|
104
|
+
* came; one alone is a group of one, with no line of its own.
|
|
105
|
+
*/
|
|
106
|
+
export function suggestionGroups(store, suggestions) {
|
|
107
|
+
const groups = new Map();
|
|
108
|
+
for (const one of suggestions) {
|
|
109
|
+
const sentence = suggestionSentence(store, one);
|
|
110
|
+
const key = one.calls.length === 1 ? sentence.group : `one:${groups.size}`;
|
|
111
|
+
const was = groups.get(key);
|
|
112
|
+
if (was)
|
|
113
|
+
was.suggestions.push(one);
|
|
114
|
+
else
|
|
115
|
+
groups.set(key, { sentence, suggestions: [one] });
|
|
116
|
+
}
|
|
117
|
+
return [...groups.values()].map(({ sentence, suggestions: some }) => (some.length > 1 ? { words: sentence.many(some.length), suggestions: some } : { suggestions: some }));
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=suggestion-sentence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestion-sentence.js","sourceRoot":"","sources":["../src/suggestion-sentence.ts"],"names":[],"mappings":"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"}
|
package/dist/told-card.js
CHANGED
|
@@ -189,7 +189,7 @@ export function RateTelling({ told, telling }) {
|
|
|
189
189
|
return;
|
|
190
190
|
event.preventDefault();
|
|
191
191
|
keepShould();
|
|
192
|
-
}, onBlur: keepShould, style: SHOULD }), kept ? (_jsx("span", { role: "status", "data-testid": "quick-ask-should-kept", style: { fontSize: "0.75rem", color: "var(--graview-ink-muted)" }, children: "Kept, to learn from." })) : null] })) : null] }));
|
|
192
|
+
}, onBlur: keepShould, style: SHOULD }), kept ? (_jsx("span", { role: "status", "data-testid": "quick-ask-should-kept", style: { fontSize: "0.75rem", color: "var(--graview-ink-muted)" }, children: told.keptSays?.trim() || "Kept, to learn from." })) : null] })) : null] }));
|
|
193
193
|
}
|
|
194
194
|
const THUMB = { display: "inline-grid", placeItems: "center", width: 30, height: 28, padding: 0, font: "inherit", fontSize: "0.875rem", lineHeight: 1, background: "transparent", border: "1px solid transparent", borderRadius: 6, boxShadow: "none", cursor: "pointer", opacity: 0.7 };
|
|
195
195
|
const THUMB_ON = { ...THUMB, opacity: 1, borderColor: "var(--graview-accent)", background: "var(--graview-panel)" };
|
package/dist/told-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"told-card.js","sourceRoot":"","sources":["../src/told-card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"told-card.js","sourceRoot":"","sources":["../src/told-card.tsx"],"names":[],"mappings":"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"}
|
package/dist/told-ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./frame.js";
|
|
2
2
|
export { changeTelling, examplesHere, keepTelling, RateTelling, seenOnThisPage, tellingDraftOf, toldListed, watchTelling } from "./told-card.js";
|
|
3
|
-
export { readToldHere, toldSuggestionsFrom } from "./menu-told.js";
|
|
3
|
+
export { readToldHere, toldForHere, toldSuggestionsFrom } from "./menu-told.js";
|
|
4
4
|
export { ToldPanel } from "./told-panel.js";
|
|
5
5
|
//# sourceMappingURL=told-ui.d.ts.map
|
package/dist/told-ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"told-ui.d.ts","sourceRoot":"","sources":["../src/told-ui.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAQpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjJ,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"told-ui.d.ts","sourceRoot":"","sources":["../src/told-ui.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAQpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjJ,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/told-ui.js
CHANGED
|
@@ -7,6 +7,6 @@ import "./frame.js"; // A door: tied to what the page drew first (TIED DOORS, pa
|
|
|
7
7
|
* request, and no piece of it on a page that never tells Graview anything.
|
|
8
8
|
*/
|
|
9
9
|
export { changeTelling, examplesHere, keepTelling, RateTelling, seenOnThisPage, tellingDraftOf, toldListed, watchTelling } from "./told-card.js";
|
|
10
|
-
export { readToldHere, toldSuggestionsFrom } from "./menu-told.js";
|
|
10
|
+
export { readToldHere, toldForHere, toldSuggestionsFrom } from "./menu-told.js";
|
|
11
11
|
export { ToldPanel } from "./told-panel.js";
|
|
12
12
|
//# sourceMappingURL=told-ui.js.map
|
package/dist/told-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"told-ui.js","sourceRoot":"","sources":["../src/told-ui.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC,CAAC,2FAA2F;AAChH;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjJ,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"told-ui.js","sourceRoot":"","sources":["../src/told-ui.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC,CAAC,2FAA2F;AAChH;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjJ,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** How far a day is from today, as a person says it: "today", "tomorrow", "in 3 days", "2 weeks ago", "9 years ago". */
|
|
2
|
+
export declare function fromToday(day: string, today: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* A stored day or moment said with its weekday and how far it is from
|
|
5
|
+
* today: "Fri, Sep 4 · in 3 days", "Mon, Sep 25, 2017, 11:30 AM · 9 years
|
|
6
|
+
* ago" — its year only when it is not this one. Undefined for anything that
|
|
7
|
+
* names no whole day (a month alone, a year alone, words).
|
|
8
|
+
*/
|
|
9
|
+
export declare function whenSaid(stored: string, today: string, options?: {
|
|
10
|
+
readonly locale?: string;
|
|
11
|
+
readonly timeZone?: string;
|
|
12
|
+
}): {
|
|
13
|
+
readonly words: string;
|
|
14
|
+
readonly day: string;
|
|
15
|
+
readonly past: boolean;
|
|
16
|
+
} | undefined;
|
|
17
|
+
/** The day a store judges "late" against: its own (`?today=`, a pinned demo), else today on the app's clock. */
|
|
18
|
+
export declare function todayOf(store: {
|
|
19
|
+
today?(): string | undefined;
|
|
20
|
+
}): string;
|
|
21
|
+
//# sourceMappingURL=when-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when-words.d.ts","sourceRoot":"","sources":["../src/when-words.ts"],"names":[],"mappings":"AAWA,wHAAwH;AACxH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMpN;AAED,gHAAgH;AAChH,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,KAAK,CAAC,IAAI,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAEvE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { dayOfMoment, isoToday, timeAsRead, weekdayAsRead, zoneFor } from "@graview/core";
|
|
2
|
+
/*
|
|
3
|
+
* A DAY SAID BOTH WAYS (Roadmap f-facts-by-type): what it is and how far it
|
|
4
|
+
* is — "Fri, Sep 4 · in 3 days". A record's page said a due date as "Sep 4,
|
|
5
|
+
* 2026" and left the reader to work out that it was Friday and three days
|
|
6
|
+
* off; a person deciding what to do next asks the second question first.
|
|
7
|
+
*/
|
|
8
|
+
const DAY_MS = 86_400_000;
|
|
9
|
+
/** How far a day is from today, as a person says it: "today", "tomorrow", "in 3 days", "2 weeks ago", "9 years ago". */
|
|
10
|
+
export function fromToday(day, today) {
|
|
11
|
+
const days = Math.round((Date.parse(`${day}T00:00:00Z`) - Date.parse(`${today}T00:00:00Z`)) / DAY_MS);
|
|
12
|
+
if (!Number.isFinite(days))
|
|
13
|
+
return "";
|
|
14
|
+
if (days === 0)
|
|
15
|
+
return "today";
|
|
16
|
+
if (days === 1)
|
|
17
|
+
return "tomorrow";
|
|
18
|
+
if (days === -1)
|
|
19
|
+
return "yesterday";
|
|
20
|
+
const far = Math.abs(days);
|
|
21
|
+
const [count, unit] = far < 14 ? [far, "day"] : far < 60 ? [Math.round(far / 7), "week"] : far < 730 ? [Math.round(far / 30.44), "month"] : [Math.round(far / 365.25), "year"];
|
|
22
|
+
const said = `${count} ${unit}${count === 1 ? "" : "s"}`;
|
|
23
|
+
return days > 0 ? `in ${said}` : `${said} ago`;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A stored day or moment said with its weekday and how far it is from
|
|
27
|
+
* today: "Fri, Sep 4 · in 3 days", "Mon, Sep 25, 2017, 11:30 AM · 9 years
|
|
28
|
+
* ago" — its year only when it is not this one. Undefined for anything that
|
|
29
|
+
* names no whole day (a month alone, a year alone, words).
|
|
30
|
+
*/
|
|
31
|
+
export function whenSaid(stored, today, options = {}) {
|
|
32
|
+
const day = dayOfMoment(stored, options.timeZone);
|
|
33
|
+
if (day === undefined)
|
|
34
|
+
return undefined;
|
|
35
|
+
const date = weekdayAsRead(day, { weekday: "short", year: day.slice(0, 4) !== today.slice(0, 4) }, options.locale);
|
|
36
|
+
const time = stored.length > 10 ? `, ${timeAsRead(stored, options.locale, options.timeZone)}` : "";
|
|
37
|
+
return { words: `${date}${time} · ${fromToday(day, today)}`, day, past: day < today };
|
|
38
|
+
}
|
|
39
|
+
/** The day a store judges "late" against: its own (`?today=`, a pinned demo), else today on the app's clock. */
|
|
40
|
+
export function todayOf(store) {
|
|
41
|
+
return store.today?.() ?? isoToday(zoneFor());
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=when-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when-words.js","sourceRoot":"","sources":["../src/when-words.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type Author, type Batch } from "@graview/core";
|
|
2
2
|
import type { ToolCall } from "@graview/tools";
|
|
3
3
|
import { type ReactNode } from "react";
|
|
4
|
+
import type { AiInteraction } from "@graview/core/catalog";
|
|
5
|
+
export declare const InteractionRow: import("react").ComponentType<{
|
|
6
|
+
readonly entry: AiInteraction;
|
|
7
|
+
readonly undo: (batch: string) => ReactNode;
|
|
8
|
+
}>;
|
|
4
9
|
export interface Change {
|
|
5
10
|
readonly intent: string;
|
|
6
11
|
readonly author: string;
|
|
@@ -112,6 +117,45 @@ export declare function ShowAsItWas({ seq, intent }: {
|
|
|
112
117
|
* the address, and what you do next is remembered again.
|
|
113
118
|
*/
|
|
114
119
|
export declare function StartFresh(): import("react").JSX.Element;
|
|
120
|
+
export declare function ActivityFeed({ calls, seat, remembers, close, headed, }: {
|
|
121
|
+
readonly calls: readonly ToolCall[];
|
|
122
|
+
/**
|
|
123
|
+
* Whether this browser is remembering the edits. When it is, the popover
|
|
124
|
+
* says so and carries the way back to the example — history is where you
|
|
125
|
+
* would look for the way out of it.
|
|
126
|
+
*/
|
|
127
|
+
readonly remembers?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* The agent seat, if the app gives one. It lives HERE, not in the bar:
|
|
130
|
+
* Activity is "what has happened, and what is happening", which is the
|
|
131
|
+
* agent's own surface and where you would be looking to watch a turn —
|
|
132
|
+
* and a run-a-turn control that is disabled most of the time was a
|
|
133
|
+
* permanently-visible ghost in prime bar space. See the recorded
|
|
134
|
+
* decision on the PRD task "Decide where the agent seat lives".
|
|
135
|
+
*/
|
|
136
|
+
readonly seat?: ReactNode;
|
|
137
|
+
/** Puts away what the feed is drawn in, as the reader goes to a record it names. */
|
|
138
|
+
readonly close: () => void;
|
|
139
|
+
/** Whether it says its own heading: the inbox's tab says it there. */
|
|
140
|
+
readonly headed?: boolean;
|
|
141
|
+
}): import("react").JSX.Element;
|
|
142
|
+
/**
|
|
143
|
+
* WHETHER ACTIVITY HAS ANYTHING TO SAY: a seat, a call, a change, an AI
|
|
144
|
+
* entry, a browser that remembers, or somebody told of changes.
|
|
145
|
+
*/
|
|
146
|
+
export declare function useActivityHas({ calls, seat, remembers }: {
|
|
147
|
+
readonly calls: readonly ToolCall[];
|
|
148
|
+
readonly seat?: ReactNode;
|
|
149
|
+
readonly remembers?: boolean;
|
|
150
|
+
}): {
|
|
151
|
+
readonly has: boolean;
|
|
152
|
+
readonly recent: number;
|
|
153
|
+
readonly running: boolean;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* ACTIVITY ON A BAR OF ITS OWN: the studio's. The app bar holds the same
|
|
157
|
+
* feed in its inbox (`Inbox`, Roadmap f-app-bar-calm).
|
|
158
|
+
*/
|
|
115
159
|
export declare function ActivityRail({ calls, seat, remembers, }: {
|
|
116
160
|
readonly calls: readonly ToolCall[];
|
|
117
161
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4F,KAAK,MAAM,EAAE,KAAK,KAAK,EAAkB,MAAM,eAAe,CAAC;AAMlK,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
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 { ARCHIVED, freshAddress, humanizeField, isWithheld, labelOf, nameOfAuthor } from "@graview/core";
|
|
3
3
|
import { viaSaid } from "@graview/core/words";
|
|
4
4
|
import { lineageWords } from "@graview/core/provenance";
|
|
@@ -15,7 +15,7 @@ import { useInteractions } from "./ai-feed.js";
|
|
|
15
15
|
import { retryingImport } from "@graview/core/retry";
|
|
16
16
|
/* The AI's rows and its filter, fetched with the first entry there is to draw (Roadmap f-activity-ai-entries). */
|
|
17
17
|
const aiRows = /* @__PURE__ */ lazyModule(retryingImport(() => import("./ai-entries.js")));
|
|
18
|
-
const InteractionRow = /* @__PURE__ */ aiRows.part((module, props) => _jsx(module.InteractionRow, { ...props }), { quiet: true, as: "li" });
|
|
18
|
+
export const InteractionRow = /* @__PURE__ */ aiRows.part((module, props) => _jsx(module.InteractionRow, { ...props }), { quiet: true, as: "li" });
|
|
19
19
|
const ActivityFilter = /* @__PURE__ */ aiRows.part((module, props) => _jsx(module.ActivityFilter, { ...props }), { quiet: true, as: "div" });
|
|
20
20
|
/** Whether an op takes a record out of the counts: removes it, or sets it aside (an archive, or the one a merge folds away). */
|
|
21
21
|
const takesOut = (op) =>
|
|
@@ -286,7 +286,7 @@ export function StartFresh() {
|
|
|
286
286
|
textUnderlineOffset: 3,
|
|
287
287
|
}, children: "Start fresh" }));
|
|
288
288
|
}
|
|
289
|
-
export function
|
|
289
|
+
export function ActivityFeed({ calls, seat, remembers = false, close, headed = true, }) {
|
|
290
290
|
const recent = useRecentChanges();
|
|
291
291
|
const { store: shown, principal, seats, people } = useGraview();
|
|
292
292
|
/*
|
|
@@ -308,9 +308,6 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
308
308
|
].sort((a, b) => (a.at < b.at ? 1 : a.at > b.at ? -1 : 0));
|
|
309
309
|
/* Named from now's records, whichever moment the face draws (Roadmap f-playback). */
|
|
310
310
|
const store = useLiveStore(shown, principal);
|
|
311
|
-
const running = calls.some((call) => call.phase === "running");
|
|
312
|
-
// Somebody told of changes has Activity to open, though nothing has changed yet.
|
|
313
|
-
const notified = useNotifiedCount();
|
|
314
311
|
/*
|
|
315
312
|
* A POPOVER FROM THE BAR, not a rail pinned over the scene.
|
|
316
313
|
*
|
|
@@ -321,14 +318,78 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
321
318
|
* visible without opening anything is that an agent is mid-turn, and that
|
|
322
319
|
* is a dot on the button.
|
|
323
320
|
*/
|
|
324
|
-
const popover = usePopover("activity");
|
|
325
|
-
const open = popover.open;
|
|
326
321
|
const goTo = useGoTo();
|
|
327
322
|
const playback = usePlayback();
|
|
328
323
|
/* Only a record still in the graph goes anywhere; the popover closes behind the reader as they go, and going there is going to it now, not as it was. */
|
|
329
|
-
const goes = (id) => (store.graph.has(id) ? (to) => {
|
|
324
|
+
const goes = (id) => (store.graph.has(id) ? (to) => { close(); if (playback?.past)
|
|
330
325
|
playback.show(null); goTo.record(to); } : null);
|
|
331
|
-
|
|
326
|
+
return (_jsxs(_Fragment, { children: [headed ? _jsx("h2", { style: { ...VISUALLY_HIDDEN, margin: 0 }, children: "Activity" }) : null, seat !== undefined ? (_jsxs("div", { "data-testid": "agent-seat-row", style: {
|
|
327
|
+
display: "grid",
|
|
328
|
+
gap: 5,
|
|
329
|
+
paddingBottom: calls.length > 0 || feed.length > 0 ? 9 : 0,
|
|
330
|
+
...(calls.length > 0 || feed.length > 0
|
|
331
|
+
? { borderBottom: "1px solid var(--graview-edge)" }
|
|
332
|
+
: {}),
|
|
333
|
+
}, children: [_jsx("span", { style: {
|
|
334
|
+
fontSize: "0.75rem",
|
|
335
|
+
letterSpacing: "0.14em",
|
|
336
|
+
textTransform: "uppercase",
|
|
337
|
+
color: "var(--graview-ink-faint)",
|
|
338
|
+
}, children: "The agent's seat" }), seat] })) : null, calls.length > 0 ? (_jsx("ol", { style: { margin: 0, padding: 0, listStyle: "none", display: "grid", gap: 7 }, children: calls.slice(0, 6).map((call, index) => (_jsxs("li", { style: { ...ACTIVITY_ROW, gap: 2, fontSize: "0.8125rem" }, children: [_jsxs("div", { "data-graview-activity-head": "", style: ACTIVITY_HEAD, children: [_jsx("span", { "aria-hidden": "true", style: {
|
|
339
|
+
width: 6,
|
|
340
|
+
height: 6,
|
|
341
|
+
borderRadius: 999,
|
|
342
|
+
flex: "0 0 auto",
|
|
343
|
+
background: call.phase === "running"
|
|
344
|
+
? "var(--graview-accent)"
|
|
345
|
+
: call.phase === "failed"
|
|
346
|
+
? "var(--graview-warn)"
|
|
347
|
+
: "var(--graview-edge-bright)",
|
|
348
|
+
} }), _jsxs("span", { "data-graview-activity-words": "", style: { ...ACTIVITY_WORDS, color: "var(--graview-ink)" }, children: [call.mutating ? "changed" : "read", " \u00B7", " ", store.allMutations().find((mutation) => mutation.name === call.name)?.title ??
|
|
349
|
+
humanizeField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [[...new Set(call.reads)].slice(0, 3).map((id) => (_jsx(NamedRecord, { id: id, label: nameOf(store, id), go: goes(id), testId: "activity-record" }, id))), new Set(call.reads).size > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", new Set(call.reads).size - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.entries(call.args)
|
|
350
|
+
.filter((entry) => typeof entry[1] === "string")
|
|
351
|
+
.slice(0, 3)
|
|
352
|
+
.map(([name, value]) => (_jsx(NamedRecord, { id: value, label: nameOf(store, value), go: goes(value), testId: "activity-record" }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, interactions.length > 0 ? (_jsx(Suspense, { fallback: null, children: _jsx(ActivityFilter, { shows: shows, onShows: setShows, mine: mine, onMine: setMine }) })) : null, feed.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
|
|
353
|
+
margin: 0,
|
|
354
|
+
padding: 0,
|
|
355
|
+
listStyle: "none",
|
|
356
|
+
display: "grid",
|
|
357
|
+
gap: 6,
|
|
358
|
+
fontSize: "0.8125rem",
|
|
359
|
+
}, children: feed.map(({ change, entry }, index) => entry !== undefined ? (_jsx(Suspense, { fallback: null, children: _jsx(InteractionRow, { entry: entry, undo: (batch) => _jsx(UndoTurn, { batch: batch }) }) }, `ai:${entry.id}`)) : change.digest ? (_jsx(DigestRow, { change: change, goes: goes }, `digest:${change.digest[0]?.batch ?? index}`)) : change.withheld ? (
|
|
360
|
+
/* SOMETHING YOU CANNOT SEE HAPPENED: said, and nothing more — not who, not what, no undo (FR-16). */
|
|
361
|
+
_jsx("li", { "data-testid": "withheld-change", style: ACTIVITY_ROW, children: _jsx("span", { "data-touched": "", style: { ...ACTIVITY_WORDS, color: "var(--graview-ink-muted)", fontStyle: "italic" }, children: change.intent }) }, `change:${index}`)) : (_jsxs("li", { "data-batch": change.batch, style: ACTIVITY_ROW, children: [_jsxs("div", { "data-graview-activity-head": "", style: ACTIVITY_HEAD, children: [_jsxs("span", { "data-graview-activity-words": "", style: ACTIVITY_WORDS, children: [_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
|
|
362
|
+
? "you"
|
|
363
|
+
: nameOfAuthor(change.by ?? { kind: change.author, id: change.authorId }, { graph: store.graph, schema: store.schema, seats, people }), viaSaid(change.via) ? _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-muted)" }, children: [", ", viaSaid(change.via)] }) : null] }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent }), change.basis ? _jsxs("span", { "data-graview-lineage": "", style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", change.basis] }) : null] }), change.batch ? _jsx(ShowAsItWas, { seq: change.seq, intent: change.intent }) : null, change.batch ? _jsx(UndoTurn, { batch: change.batches && change.batches.length > 0 ? (change.batches.length === 1 ? change.batches[0] : change.batches) : change.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: ACTIVITY_CHIPS, children: change.touched.slice(0, 4).map((id) => (_jsx(NamedRecord, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (change.named?.[id] ?? nameOf(store, id)), go: goes(id), testId: "activity-record" }, id))) })] }, `change:${index}`))) })) : null, _jsx(NotifiedDoor, { style: { paddingTop: 8, borderTop: "1px solid var(--graview-edge)" } }), remembers ? (_jsxs("div", { "data-testid": "remembered", style: {
|
|
364
|
+
display: "flex",
|
|
365
|
+
alignItems: "baseline",
|
|
366
|
+
justifyContent: "space-between",
|
|
367
|
+
gap: 10,
|
|
368
|
+
paddingTop: 8,
|
|
369
|
+
borderTop: "1px solid var(--graview-edge)",
|
|
370
|
+
fontSize: "0.8125rem",
|
|
371
|
+
color: "var(--graview-ink-faint)",
|
|
372
|
+
}, children: [_jsx("span", { children: "Remembered in this browser" }), _jsx(StartFresh, {})] })) : null] }));
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* WHETHER ACTIVITY HAS ANYTHING TO SAY: a seat, a call, a change, an AI
|
|
376
|
+
* entry, a browser that remembers, or somebody told of changes.
|
|
377
|
+
*/
|
|
378
|
+
export function useActivityHas({ calls, seat, remembers = false }) {
|
|
379
|
+
const recent = useRecentChanges();
|
|
380
|
+
const interactions = useInteractions();
|
|
381
|
+
const notified = useNotifiedCount();
|
|
382
|
+
return { has: !(seat === undefined && calls.length === 0 && recent.length === 0 && interactions.length === 0 && !remembers && notified === 0), recent: recent.length, running: calls.some((call) => call.phase === "running") };
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* ACTIVITY ON A BAR OF ITS OWN: the studio's. The app bar holds the same
|
|
386
|
+
* feed in its inbox (`Inbox`, Roadmap f-app-bar-calm).
|
|
387
|
+
*/
|
|
388
|
+
export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
389
|
+
const { has, recent, running } = useActivityHas({ calls, seat, remembers });
|
|
390
|
+
const popover = usePopover("activity");
|
|
391
|
+
const open = popover.open;
|
|
392
|
+
if (!has)
|
|
332
393
|
return null;
|
|
333
394
|
return (_jsxs("div", { style: { position: "relative" }, children: [_jsxs("button", { type: "button", "data-testid": "activity-button", ...popover.trigger, onClick: popover.toggle, title: running ? "An agent is working" : "What has happened", style: {
|
|
334
395
|
display: "inline-flex",
|
|
@@ -344,9 +405,9 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
344
405
|
fontSize: "0.875rem",
|
|
345
406
|
whiteSpace: "nowrap",
|
|
346
407
|
color: running ? "var(--graview-accent)" : "var(--graview-ink-muted)",
|
|
347
|
-
}, children: [running ? _jsx("span", { "aria-hidden": "true", style: { width: 6, height: 6, borderRadius: 999, background: "var(--graview-accent)" } }) : null, recent
|
|
408
|
+
}, children: [running ? _jsx("span", { "aria-hidden": "true", style: { width: 6, height: 6, borderRadius: 999, background: "var(--graview-accent)" } }) : null, recent > 0 ? recent : "", _jsxs("svg", { className: "graview-activity-mark", width: "15", height: "15", viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", style: { display: "var(--graview-activity-mark, none)" }, children: [_jsx("circle", { cx: "8", cy: "8", r: "5.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4" }), _jsx("path", { d: "M8 4.75 V8 L10.25 9.5", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" })] }), _jsx("span", { className: "graview-activity-word", children: " Activity" })] }), !open && seat !== undefined ? (_jsx("div", { hidden: true, "data-testid": "agent-seat-seated", children: seat })) : null, open ? (
|
|
348
409
|
// A labeled region, not an aside: it opens from the bar, inside the banner (FR-40).
|
|
349
|
-
|
|
410
|
+
_jsx("section", { ...popover.pane, "aria-label": "Activity", "data-testid": "activity", "data-graview-offstage": "", style: {
|
|
350
411
|
...POPOVER_STYLE,
|
|
351
412
|
// Never wider than the page, and what it holds wraps rather than widening it (FR-226).
|
|
352
413
|
width: "min(300px, calc(100vw - 16px))",
|
|
@@ -361,52 +422,6 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
361
422
|
border: "1px solid var(--graview-edge)",
|
|
362
423
|
background: "var(--graview-float)",
|
|
363
424
|
boxShadow: "var(--graview-lift-high)",
|
|
364
|
-
}, children:
|
|
365
|
-
display: "grid",
|
|
366
|
-
gap: 5,
|
|
367
|
-
paddingBottom: calls.length > 0 || feed.length > 0 ? 9 : 0,
|
|
368
|
-
...(calls.length > 0 || feed.length > 0
|
|
369
|
-
? { borderBottom: "1px solid var(--graview-edge)" }
|
|
370
|
-
: {}),
|
|
371
|
-
}, children: [_jsx("span", { style: {
|
|
372
|
-
fontSize: "0.75rem",
|
|
373
|
-
letterSpacing: "0.14em",
|
|
374
|
-
textTransform: "uppercase",
|
|
375
|
-
color: "var(--graview-ink-faint)",
|
|
376
|
-
}, children: "The agent's seat" }), seat] })) : null, calls.length > 0 ? (_jsx("ol", { style: { margin: 0, padding: 0, listStyle: "none", display: "grid", gap: 7 }, children: calls.slice(0, 6).map((call, index) => (_jsxs("li", { style: { ...ACTIVITY_ROW, gap: 2, fontSize: "0.8125rem" }, children: [_jsxs("div", { "data-graview-activity-head": "", style: ACTIVITY_HEAD, children: [_jsx("span", { "aria-hidden": "true", style: {
|
|
377
|
-
width: 6,
|
|
378
|
-
height: 6,
|
|
379
|
-
borderRadius: 999,
|
|
380
|
-
flex: "0 0 auto",
|
|
381
|
-
background: call.phase === "running"
|
|
382
|
-
? "var(--graview-accent)"
|
|
383
|
-
: call.phase === "failed"
|
|
384
|
-
? "var(--graview-warn)"
|
|
385
|
-
: "var(--graview-edge-bright)",
|
|
386
|
-
} }), _jsxs("span", { "data-graview-activity-words": "", style: { ...ACTIVITY_WORDS, color: "var(--graview-ink)" }, children: [call.mutating ? "changed" : "read", " \u00B7", " ", store.allMutations().find((mutation) => mutation.name === call.name)?.title ??
|
|
387
|
-
humanizeField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [[...new Set(call.reads)].slice(0, 3).map((id) => (_jsx(NamedRecord, { id: id, label: nameOf(store, id), go: goes(id), testId: "activity-record" }, id))), new Set(call.reads).size > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", new Set(call.reads).size - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.entries(call.args)
|
|
388
|
-
.filter((entry) => typeof entry[1] === "string")
|
|
389
|
-
.slice(0, 3)
|
|
390
|
-
.map(([name, value]) => (_jsx(NamedRecord, { id: value, label: nameOf(store, value), go: goes(value), testId: "activity-record" }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, interactions.length > 0 ? (_jsx(Suspense, { fallback: null, children: _jsx(ActivityFilter, { shows: shows, onShows: setShows, mine: mine, onMine: setMine }) })) : null, feed.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
|
|
391
|
-
margin: 0,
|
|
392
|
-
padding: 0,
|
|
393
|
-
listStyle: "none",
|
|
394
|
-
display: "grid",
|
|
395
|
-
gap: 6,
|
|
396
|
-
fontSize: "0.8125rem",
|
|
397
|
-
}, children: feed.map(({ change, entry }, index) => entry !== undefined ? (_jsx(Suspense, { fallback: null, children: _jsx(InteractionRow, { entry: entry, undo: (batch) => _jsx(UndoTurn, { batch: batch }) }) }, `ai:${entry.id}`)) : change.digest ? (_jsx(DigestRow, { change: change, goes: goes }, `digest:${change.digest[0]?.batch ?? index}`)) : change.withheld ? (
|
|
398
|
-
/* SOMETHING YOU CANNOT SEE HAPPENED: said, and nothing more — not who, not what, no undo (FR-16). */
|
|
399
|
-
_jsx("li", { "data-testid": "withheld-change", style: ACTIVITY_ROW, children: _jsx("span", { "data-touched": "", style: { ...ACTIVITY_WORDS, color: "var(--graview-ink-muted)", fontStyle: "italic" }, children: change.intent }) }, `change:${index}`)) : (_jsxs("li", { "data-batch": change.batch, style: ACTIVITY_ROW, children: [_jsxs("div", { "data-graview-activity-head": "", style: ACTIVITY_HEAD, children: [_jsxs("span", { "data-graview-activity-words": "", style: ACTIVITY_WORDS, children: [_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
|
|
400
|
-
? "you"
|
|
401
|
-
: nameOfAuthor(change.by ?? { kind: change.author, id: change.authorId }, { graph: store.graph, schema: store.schema, seats, people }), viaSaid(change.via) ? _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-muted)" }, children: [", ", viaSaid(change.via)] }) : null] }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent }), change.basis ? _jsxs("span", { "data-graview-lineage": "", style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", change.basis] }) : null] }), change.batch ? _jsx(ShowAsItWas, { seq: change.seq, intent: change.intent }) : null, change.batch ? _jsx(UndoTurn, { batch: change.batches && change.batches.length > 0 ? (change.batches.length === 1 ? change.batches[0] : change.batches) : change.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: ACTIVITY_CHIPS, children: change.touched.slice(0, 4).map((id) => (_jsx(NamedRecord, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (change.named?.[id] ?? nameOf(store, id)), go: goes(id), testId: "activity-record" }, id))) })] }, `change:${index}`))) })) : null, _jsx(NotifiedDoor, { style: { paddingTop: 8, borderTop: "1px solid var(--graview-edge)" } }), remembers ? (_jsxs("div", { "data-testid": "remembered", style: {
|
|
402
|
-
display: "flex",
|
|
403
|
-
alignItems: "baseline",
|
|
404
|
-
justifyContent: "space-between",
|
|
405
|
-
gap: 10,
|
|
406
|
-
paddingTop: 8,
|
|
407
|
-
borderTop: "1px solid var(--graview-edge)",
|
|
408
|
-
fontSize: "0.8125rem",
|
|
409
|
-
color: "var(--graview-ink-faint)",
|
|
410
|
-
}, children: [_jsx("span", { children: "Remembered in this browser" }), _jsx(StartFresh, {})] })) : null] })) : null] }));
|
|
425
|
+
}, children: _jsx(ActivityFeed, { calls: calls, remembers: remembers, close: () => popover.setOpen(false), ...(seat !== undefined ? { seat } : {}) }) })) : null] }));
|
|
411
426
|
}
|
|
412
427
|
//# sourceMappingURL=activity.js.map
|