@graview/primitives 0.1.28 → 0.1.30
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.map +1 -1
- package/dist/app-bar.js +44 -14
- package/dist/app-bar.js.map +1 -1
- package/dist/app-link-door.d.ts +3 -0
- package/dist/app-link-door.d.ts.map +1 -0
- package/dist/app-link-door.js +11 -0
- package/dist/app-link-door.js.map +1 -0
- package/dist/app-link.d.ts +20 -0
- package/dist/app-link.d.ts.map +1 -0
- package/dist/app-link.js +134 -0
- package/dist/app-link.js.map +1 -0
- package/dist/app-title.d.ts +1 -1
- package/dist/app-title.d.ts.map +1 -1
- package/dist/app-title.js +7 -3
- package/dist/app-title.js.map +1 -1
- package/dist/arrange-bar.d.ts +57 -4
- package/dist/arrange-bar.d.ts.map +1 -1
- package/dist/arrange-bar.js +96 -13
- package/dist/arrange-bar.js.map +1 -1
- package/dist/arrange-lists.d.ts +62 -1
- package/dist/arrange-lists.d.ts.map +1 -1
- package/dist/arrange-lists.js +180 -23
- package/dist/arrange-lists.js.map +1 -1
- package/dist/arrangement.d.ts.map +1 -1
- package/dist/arrangement.js +3 -1
- package/dist/arrangement.js.map +1 -1
- package/dist/bar-panes.d.ts +2 -1
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +2 -1
- package/dist/bar-panes.js.map +1 -1
- package/dist/bar-suggested.d.ts +2 -0
- package/dist/bar-suggested.d.ts.map +1 -0
- package/dist/bar-suggested.js +22 -0
- package/dist/bar-suggested.js.map +1 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +3 -1
- package/dist/chat.js.map +1 -1
- package/dist/choosing.d.ts +36 -0
- package/dist/choosing.d.ts.map +1 -0
- package/dist/choosing.js +224 -0
- package/dist/choosing.js.map +1 -0
- package/dist/connections.d.ts +1 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +41 -5
- package/dist/connections.js.map +1 -1
- package/dist/declared-lens-doors.d.ts.map +1 -1
- package/dist/declared-lens-doors.js +8 -1
- package/dist/declared-lens-doors.js.map +1 -1
- package/dist/declared-lenses.d.ts +3 -2
- package/dist/declared-lenses.d.ts.map +1 -1
- package/dist/declared-lenses.js +5 -4
- package/dist/declared-lenses.js.map +1 -1
- package/dist/default-views.d.ts.map +1 -1
- package/dist/default-views.js +107 -28
- package/dist/default-views.js.map +1 -1
- package/dist/draft-frame.d.ts +1 -0
- package/dist/draft-frame.d.ts.map +1 -1
- package/dist/draft-frame.js +1 -0
- package/dist/draft-frame.js.map +1 -1
- package/dist/editable.d.ts +27 -2
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +77 -39
- package/dist/editable.js.map +1 -1
- package/dist/files.d.ts +1 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +30 -5
- package/dist/files.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +115 -10
- package/dist/find.js.map +1 -1
- package/dist/first-look-door.d.ts +71 -0
- package/dist/first-look-door.d.ts.map +1 -0
- package/dist/first-look-door.js +95 -0
- package/dist/first-look-door.js.map +1 -0
- package/dist/first-look.d.ts +12 -0
- package/dist/first-look.d.ts.map +1 -0
- package/dist/first-look.js +262 -0
- package/dist/first-look.js.map +1 -0
- package/dist/frame.d.ts +3 -2
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +21 -2
- package/dist/frame.js.map +1 -1
- package/dist/framework-views.d.ts +1 -0
- package/dist/framework-views.d.ts.map +1 -1
- package/dist/framework-views.js +1 -0
- package/dist/framework-views.js.map +1 -1
- package/dist/here.d.ts +24 -1
- package/dist/here.d.ts.map +1 -1
- package/dist/here.js +36 -1
- package/dist/here.js.map +1 -1
- package/dist/home-view.d.ts +1 -0
- package/dist/home-view.d.ts.map +1 -1
- package/dist/home-view.js +1 -0
- package/dist/home-view.js.map +1 -1
- package/dist/index.d.ts +20 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/installation.js +1 -1
- package/dist/installation.js.map +1 -1
- package/dist/kind-shape.d.ts +130 -0
- package/dist/kind-shape.d.ts.map +1 -0
- package/dist/kind-shape.js +299 -0
- package/dist/kind-shape.js.map +1 -0
- package/dist/kind-stop.d.ts +18 -0
- package/dist/kind-stop.d.ts.map +1 -0
- package/dist/kind-stop.js +378 -0
- package/dist/kind-stop.js.map +1 -0
- package/dist/lens/arranging.d.ts.map +1 -1
- package/dist/lens/arranging.js +22 -5
- package/dist/lens/arranging.js.map +1 -1
- package/dist/lens/calendar-dates.d.ts +4 -3
- package/dist/lens/calendar-dates.d.ts.map +1 -1
- package/dist/lens/calendar-dates.js +12 -5
- package/dist/lens/calendar-dates.js.map +1 -1
- package/dist/lens/calendar-drawing.d.ts.map +1 -1
- package/dist/lens/calendar-drawing.js +14 -10
- package/dist/lens/calendar-drawing.js.map +1 -1
- package/dist/lens/calendar-options.d.ts +11 -0
- package/dist/lens/calendar-options.d.ts.map +1 -1
- package/dist/lens/calendar-options.js.map +1 -1
- package/dist/lens/calendar-placing.d.ts +13 -0
- package/dist/lens/calendar-placing.d.ts.map +1 -1
- package/dist/lens/calendar-placing.js +23 -2
- package/dist/lens/calendar-placing.js.map +1 -1
- package/dist/lens/calendar-spans.d.ts +5 -0
- package/dist/lens/calendar-spans.d.ts.map +1 -1
- package/dist/lens/calendar-spans.js +18 -6
- package/dist/lens/calendar-spans.js.map +1 -1
- package/dist/lens/calendar-view.d.ts.map +1 -1
- package/dist/lens/calendar-view.js +24 -6
- package/dist/lens/calendar-view.js.map +1 -1
- package/dist/lens/columns.d.ts +3 -1
- package/dist/lens/columns.d.ts.map +1 -1
- package/dist/lens/columns.js +40 -11
- package/dist/lens/columns.js.map +1 -1
- package/dist/lens/coverage.d.ts +8 -2
- package/dist/lens/coverage.d.ts.map +1 -1
- package/dist/lens/coverage.js +36 -10
- package/dist/lens/coverage.js.map +1 -1
- package/dist/lens/timeline.d.ts +1 -1
- package/dist/lens/timeline.d.ts.map +1 -1
- package/dist/lens/timeline.js +126 -16
- package/dist/lens/timeline.js.map +1 -1
- package/dist/lines-key.d.ts.map +1 -1
- package/dist/lines-key.js +11 -5
- package/dist/lines-key.js.map +1 -1
- package/dist/linked-record-door.d.ts +4 -0
- package/dist/linked-record-door.d.ts.map +1 -0
- package/dist/linked-record-door.js +12 -0
- package/dist/linked-record-door.js.map +1 -0
- package/dist/linked-record.d.ts +34 -0
- package/dist/linked-record.d.ts.map +1 -0
- package/dist/linked-record.js +142 -0
- package/dist/linked-record.js.map +1 -0
- package/dist/map-asks.d.ts +10 -0
- package/dist/map-asks.d.ts.map +1 -0
- package/dist/map-asks.js +17 -0
- package/dist/map-asks.js.map +1 -0
- package/dist/map-key.d.ts +3 -0
- package/dist/map-key.d.ts.map +1 -0
- package/dist/map-key.js +35 -0
- package/dist/map-key.js.map +1 -0
- package/dist/map-panel-door.d.ts +26 -0
- package/dist/map-panel-door.d.ts.map +1 -0
- package/dist/map-panel-door.js +42 -0
- package/dist/map-panel-door.js.map +1 -0
- package/dist/map-panel.d.ts +8 -0
- package/dist/map-panel.d.ts.map +1 -0
- package/dist/map-panel.js +351 -0
- package/dist/map-panel.js.map +1 -0
- package/dist/markdown-body.d.ts +11 -0
- package/dist/markdown-body.d.ts.map +1 -0
- package/dist/markdown-body.js +89 -0
- package/dist/markdown-body.js.map +1 -0
- package/dist/notice-stacks.d.ts +13 -0
- package/dist/notice-stacks.d.ts.map +1 -0
- package/dist/notice-stacks.js +141 -0
- package/dist/notice-stacks.js.map +1 -0
- package/dist/notices.d.ts +2 -0
- package/dist/notices.d.ts.map +1 -1
- package/dist/notices.js +30 -132
- package/dist/notices.js.map +1 -1
- package/dist/pages.d.ts +17 -1
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +17 -1
- package/dist/pages.js.map +1 -1
- package/dist/past-bar.d.ts +13 -0
- package/dist/past-bar.d.ts.map +1 -0
- package/dist/past-bar.js +26 -0
- package/dist/past-bar.js.map +1 -0
- package/dist/places.d.ts +1 -1
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +10 -5
- package/dist/places.js.map +1 -1
- package/dist/primitives/index.d.ts +19 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +82 -33
- package/dist/primitives/index.js.map +1 -1
- package/dist/problem-count.d.ts +18 -0
- package/dist/problem-count.d.ts.map +1 -0
- package/dist/problem-count.js +46 -0
- package/dist/problem-count.js.map +1 -0
- package/dist/prose-editor.d.ts +4 -1
- package/dist/prose-editor.d.ts.map +1 -1
- package/dist/prose-editor.js +13 -6
- package/dist/prose-editor.js.map +1 -1
- package/dist/relation-key.d.ts +3 -1
- package/dist/relation-key.d.ts.map +1 -1
- package/dist/relation-key.js +23 -6
- package/dist/relation-key.js.map +1 -1
- package/dist/repeat-picker-door.d.ts +10 -0
- package/dist/repeat-picker-door.d.ts.map +1 -0
- package/dist/repeat-picker-door.js +13 -0
- package/dist/repeat-picker-door.js.map +1 -0
- package/dist/repeat-picker.d.ts +29 -0
- package/dist/repeat-picker.d.ts.map +1 -0
- package/dist/repeat-picker.js +64 -0
- package/dist/repeat-picker.js.map +1 -0
- package/dist/resolve-app-context.d.ts +3 -0
- package/dist/resolve-app-context.d.ts.map +1 -0
- package/dist/resolve-app-context.js +10 -0
- package/dist/resolve-app-context.js.map +1 -0
- package/dist/rule-line.d.ts.map +1 -1
- package/dist/rule-line.js +2 -1
- package/dist/rule-line.js.map +1 -1
- package/dist/scene-bar.d.ts.map +1 -1
- package/dist/scene-bar.js +7 -4
- package/dist/scene-bar.js.map +1 -1
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +261 -213
- package/dist/scene-css.js.map +1 -1
- package/dist/scene-places.d.ts +6 -0
- package/dist/scene-places.d.ts.map +1 -1
- package/dist/scene-places.js +14 -14
- package/dist/scene-places.js.map +1 -1
- package/dist/scene-way-back-door.d.ts +1 -0
- package/dist/scene-way-back-door.d.ts.map +1 -1
- package/dist/scene-way-back-door.js +10 -0
- package/dist/scene-way-back-door.js.map +1 -1
- package/dist/scene.d.ts +5 -1
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +5 -1
- package/dist/scene.js.map +1 -1
- package/dist/seat-field.d.ts.map +1 -1
- package/dist/seat-field.js +6 -4
- package/dist/seat-field.js.map +1 -1
- package/dist/seat-panel.d.ts +1 -0
- package/dist/seat-panel.d.ts.map +1 -1
- package/dist/seat-panel.js +5 -2
- package/dist/seat-panel.js.map +1 -1
- package/dist/seeding.d.ts.map +1 -1
- package/dist/seeding.js +2 -1
- package/dist/seeding.js.map +1 -1
- package/dist/several-bar.d.ts +23 -0
- package/dist/several-bar.d.ts.map +1 -0
- package/dist/several-bar.js +158 -0
- package/dist/several-bar.js.map +1 -0
- package/dist/several-door.d.ts +7 -0
- package/dist/several-door.d.ts.map +1 -0
- package/dist/several-door.js +20 -0
- package/dist/several-door.js.map +1 -0
- package/dist/shell.d.ts +20 -2
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +19 -12
- package/dist/shell.js.map +1 -1
- package/dist/spec-css.d.ts.map +1 -1
- package/dist/spec-css.js +90 -55
- package/dist/spec-css.js.map +1 -1
- package/dist/spec-views.d.ts +14 -1
- package/dist/spec-views.d.ts.map +1 -1
- package/dist/spec-views.js +91 -17
- package/dist/spec-views.js.map +1 -1
- package/dist/states-bar.d.ts +15 -0
- package/dist/states-bar.d.ts.map +1 -0
- package/dist/states-bar.js +36 -0
- package/dist/states-bar.js.map +1 -0
- package/dist/suggested.d.ts +13 -0
- package/dist/suggested.d.ts.map +1 -0
- package/dist/suggested.js +82 -0
- package/dist/suggested.js.map +1 -0
- package/dist/text-body.d.ts +7 -3
- package/dist/text-body.d.ts.map +1 -1
- package/dist/text-body.js +10 -2
- package/dist/text-body.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +36 -32
- package/dist/theme.js.map +1 -1
- package/dist/timeline.d.ts +6 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +129 -0
- package/dist/timeline.js.map +1 -0
- package/dist/way-back.d.ts.map +1 -1
- package/dist/way-back.js +3 -0
- package/dist/way-back.js.map +1 -1
- package/dist/workbench/activity.d.ts +22 -0
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +126 -26
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/agent-seat.d.ts.map +1 -1
- package/dist/workbench/agent-seat.js +3 -2
- package/dist/workbench/agent-seat.js.map +1 -1
- package/dist/workbench/answer-args.d.ts +3 -1
- package/dist/workbench/answer-args.d.ts.map +1 -1
- package/dist/workbench/answer-args.js +84 -14
- package/dist/workbench/answer-args.js.map +1 -1
- package/dist/workbench/back-out.d.ts.map +1 -1
- package/dist/workbench/back-out.js +19 -6
- package/dist/workbench/back-out.js.map +1 -1
- package/dist/workbench/index.d.ts +1 -1
- package/dist/workbench/index.d.ts.map +1 -1
- package/dist/workbench/index.js +1 -1
- package/dist/workbench/index.js.map +1 -1
- package/dist/workbench/inspector-door.d.ts +36 -0
- package/dist/workbench/inspector-door.d.ts.map +1 -0
- package/dist/workbench/inspector-door.js +97 -0
- package/dist/workbench/inspector-door.js.map +1 -0
- package/dist/workbench/inspector.d.ts +9 -27
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +106 -42
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/trail.d.ts.map +1 -1
- package/dist/workbench/trail.js +12 -3
- package/dist/workbench/trail.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,9 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { humanizeField, isWithheld,
|
|
3
|
-
import {
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { humanizeField, isWithheld, labelOf, nameOfAuthor } from "@graview/core";
|
|
3
|
+
import { viaSaid } from "@graview/core/words";
|
|
4
|
+
import { lineageWords } from "@graview/core/provenance";
|
|
5
|
+
import { digestWords, foldDigests } from "@graview/core/tidying";
|
|
6
|
+
import { POPOVER_STYLE, useGoTo, useGraview, useLiveStore, usePlayback, usePopover } from "@graview/react/provider";
|
|
7
|
+
import { prefetchTimeline } from "../past-bar.js";
|
|
4
8
|
import { useMemo, useState } from "react";
|
|
5
9
|
import { Chip, VISUALLY_HIDDEN } from "../primitives/index.js";
|
|
6
10
|
import { nameOf } from "./answer-args.js";
|
|
11
|
+
/** One batch as a row of Activity. */
|
|
12
|
+
const changeOf = (store, batch) => ({
|
|
13
|
+
intent: batch.intent,
|
|
14
|
+
author: batch.author.kind,
|
|
15
|
+
...(batch.author.id ? { authorId: batch.author.id } : {}),
|
|
16
|
+
by: batch.author,
|
|
17
|
+
...(batch.ops[0]?.via ? { via: batch.ops[0].via } : {}),
|
|
18
|
+
...(batch.lineage ? { basis: lineageWords(batch.lineage) } : {}),
|
|
19
|
+
// What a withheld op touched is not said, even the part this seat may see.
|
|
20
|
+
touched: [...new Set(batch.ops.filter((op) => !isWithheld(op)).flatMap((op) => op.writes))],
|
|
21
|
+
...removedNames(store, batch.ops.filter((op) => !isWithheld(op))),
|
|
22
|
+
batch: batch.id,
|
|
23
|
+
seq: batch.ops.at(-1).seq + 1,
|
|
24
|
+
...(batch.ops.every(isWithheld) ? { withheld: true } : {}),
|
|
25
|
+
});
|
|
7
26
|
/**
|
|
8
27
|
* The last few changes, with who made them — READ FROM THE LOG, not
|
|
9
28
|
* accumulated from a subscription.
|
|
@@ -19,22 +38,64 @@ import { nameOf } from "./answer-args.js";
|
|
|
19
38
|
* tell them apart.
|
|
20
39
|
*/
|
|
21
40
|
export function useRecentChanges(limit = 4) {
|
|
22
|
-
const { store } = useGraview();
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
const { store: shown, principal } = useGraview();
|
|
42
|
+
/* What has happened is now's, whichever moment the face draws (Roadmap f-playback). */
|
|
43
|
+
const store = useLiveStore(shown, principal);
|
|
44
|
+
const length = store.log.length;
|
|
45
|
+
/*
|
|
46
|
+
* A suggestion and its declining are the Suggested tray's to say, not
|
|
47
|
+
* rows here; a run of the app's own actor's batches is one row, a digest
|
|
48
|
+
* (`foldDigests`).
|
|
49
|
+
*/
|
|
50
|
+
return useMemo(() => foldDigests(store.batches(), (id) => store.log.get(id))
|
|
25
51
|
.reverse()
|
|
26
52
|
.slice(0, limit)
|
|
27
|
-
.map((
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
53
|
+
.map((row) => {
|
|
54
|
+
if ("batch" in row)
|
|
55
|
+
return changeOf(store, row.batch);
|
|
56
|
+
const changes = [...row.digest.batches].reverse().map((batch) => changeOf(store, batch));
|
|
57
|
+
return {
|
|
58
|
+
intent: digestWords(row.digest, new Date().toISOString().slice(0, 10)),
|
|
59
|
+
author: row.digest.author.kind,
|
|
60
|
+
...(row.digest.author.id ? { authorId: row.digest.author.id } : {}),
|
|
61
|
+
by: row.digest.author,
|
|
62
|
+
touched: [...new Set(changes.flatMap((change) => change.touched))],
|
|
63
|
+
batch: "",
|
|
64
|
+
seq: changes[0]?.seq ?? 0,
|
|
65
|
+
digest: changes,
|
|
66
|
+
};
|
|
67
|
+
}),
|
|
68
|
+
// The log only grows at its end, an undo too: its length says when to read it again.
|
|
69
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
70
|
+
[store, length, limit]);
|
|
71
|
+
}
|
|
72
|
+
/** The names of the records a change removed, from the records its removals carry. */
|
|
73
|
+
function removedNames(store, ops) {
|
|
74
|
+
const removed = {};
|
|
75
|
+
for (const op of ops)
|
|
76
|
+
for (const primitive of op.primitives)
|
|
77
|
+
if (primitive.op === "remove-node" && primitive.node)
|
|
78
|
+
removed[primitive.node.id] = labelOf(store.schema.tryDefinition(primitive.node.kind), primitive.node);
|
|
79
|
+
return Object.keys(removed).length > 0 ? { removed } : {};
|
|
80
|
+
}
|
|
81
|
+
/** Who made a change, as Activity says it: "you" for the person at the keyboard, else their name and the channel. */
|
|
82
|
+
function Who({ change }) {
|
|
83
|
+
const { store, principal, seats, people } = useGraview();
|
|
84
|
+
return (_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
|
|
85
|
+
? "you"
|
|
86
|
+
: 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] }));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A DIGEST: the app's own actor's run of changes as one row — "Graview,
|
|
90
|
+
* tidying · Tidied 6 things today" — which opens to each change with its
|
|
91
|
+
* own lineage and its own undo, so one of them is taken back without the
|
|
92
|
+
* rest, and the row says how many in the meantime.
|
|
93
|
+
*/
|
|
94
|
+
function DigestRow({ change, goes }) {
|
|
95
|
+
const { store } = useGraview();
|
|
96
|
+
const [open, setOpen] = useState(false);
|
|
97
|
+
const each = change.digest ?? [];
|
|
98
|
+
return (_jsxs("li", { "data-testid": "activity-digest", style: { display: "grid", gap: 5, lineHeight: 1.45 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsx(Who, { change: change }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent })] }), _jsx("button", { type: "button", "data-testid": "digest-toggle", "aria-expanded": open, onClick: () => setOpen((was) => !was), style: { marginLeft: "auto", flex: "0 0 auto", display: "inline-flex", alignItems: "center", minHeight: 24, minWidth: 24, padding: "1px 8px", fontSize: "0.75rem" }, children: open ? "Hide" : "Show each" })] }), open ? (_jsx("ol", { "data-testid": "digest-changes", style: { margin: 0, padding: "0 0 0 10px", listStyle: "none", display: "grid", gap: 6, borderLeft: "1px solid var(--graview-edge)" }, children: each.map((one) => (_jsxs("li", { "data-testid": "digest-change", style: { display: "grid", gap: 3 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: one.intent }), one.basis ? _jsxs("span", { "data-graview-lineage": "", style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", one.basis] }) : null] }), one.withheld ? null : _jsx(UndoTurn, { batch: one.batch })] }), one.touched.length > 0 ? (_jsx("div", { "data-touched": one.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: one.touched.slice(0, 4).map((id) => (_jsx(Named, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (one.removed?.[id] ?? nameOf(store, id)), go: goes(id) }, id))) })) : null] }, one.batch))) })) : null] }));
|
|
38
99
|
}
|
|
39
100
|
/**
|
|
40
101
|
* Drop one turn, keeping everything since.
|
|
@@ -54,11 +115,16 @@ export function UndoTurn({ batch }) {
|
|
|
54
115
|
* In any app with one, a person could not take back the edit they had
|
|
55
116
|
* just made, and the row they made it on said "you".
|
|
56
117
|
*/
|
|
57
|
-
const { store, principal, noteSeat } = useGraview();
|
|
58
|
-
|
|
118
|
+
const { store: shown, principal, noteSeat } = useGraview();
|
|
119
|
+
/* Taken back from now's log; not offered at all while somebody looks back (Roadmap f-playback). */
|
|
120
|
+
const store = useLiveStore(shown, principal);
|
|
121
|
+
const lookingBack = usePlayback()?.open ?? false;
|
|
122
|
+
const length = store.log.length;
|
|
59
123
|
const [refused, setRefused] = useState(null);
|
|
60
|
-
const check = useMemo(() => store.canUndo(batch),
|
|
61
|
-
|
|
124
|
+
const check = useMemo(() => store.canUndo(batch),
|
|
125
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
126
|
+
[store, batch, length]);
|
|
127
|
+
if (lookingBack || (!check.ok && check.ops.length === 0))
|
|
62
128
|
return null;
|
|
63
129
|
const blocked = !check.ok;
|
|
64
130
|
const alsoNeeded = blocked ? check.includeBatches : [];
|
|
@@ -102,6 +168,18 @@ export function UndoTurn({ batch }) {
|
|
|
102
168
|
...(blocked ? { borderColor: "var(--graview-warn)", color: "var(--graview-warn)" } : {}),
|
|
103
169
|
}, children: blocked ? `undo +${alsoNeeded.length}` : "undo" }), refused ? (_jsx("span", { "data-testid": "undo-refused", role: "alert", style: { fontSize: "0.75rem", lineHeight: 1.4, color: "var(--graview-warn)", maxWidth: 260, textAlign: "right" }, children: refused })) : null] }));
|
|
104
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* "SHOW THE APP AS IT WAS HERE" (Roadmap f-playback): the face draws the
|
|
173
|
+
* app as it stood just after this change, with the timeline to scrub on
|
|
174
|
+
* from there. The timeline is fetched as a pointer comes near.
|
|
175
|
+
*/
|
|
176
|
+
export function ShowAsItWas({ seq, intent }) {
|
|
177
|
+
const playback = usePlayback();
|
|
178
|
+
if (!playback)
|
|
179
|
+
return null;
|
|
180
|
+
const here = playback.past?.seq === seq;
|
|
181
|
+
return (_jsx("button", { type: "button", "data-testid": "show-past", "aria-label": `Show the app as it was after “${intent}”`, title: "Show the app as it was here", "aria-pressed": here, onPointerEnter: prefetchTimeline, onFocus: prefetchTimeline, onClick: () => playback.show(seq), style: { display: "inline-flex", alignItems: "center", justifyContent: "center", minHeight: 24, minWidth: 24, padding: "1px 6px", fontSize: "0.75rem", flex: "0 0 auto" }, children: _jsxs("svg", { width: "13", height: "13", viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: [_jsx("path", { d: "M2.5 8 a5.5 5.5 0 1 0 1.6-3.9", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("path", { d: "M2 2.5 V5.5 H5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M8 5 V8 L10 9.25", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }) }));
|
|
182
|
+
}
|
|
105
183
|
/**
|
|
106
184
|
* What has happened, and what is happening: the agent's tool calls and every
|
|
107
185
|
* applied change, in one list.
|
|
@@ -148,9 +226,26 @@ export function StartFresh() {
|
|
|
148
226
|
textUnderlineOffset: 3,
|
|
149
227
|
}, children: "Start fresh" }));
|
|
150
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* A RECORD NAMED IN THE ACTIVITY, AS SOMETHING THAT GOES THERE — or as a
|
|
231
|
+
* label where there is nowhere to go. A chip with a pick target was a pill
|
|
232
|
+
* that only the scene's own pointer handler answered: on Pages, in the
|
|
233
|
+
* popover, and from the keyboard on either face it looked pressable and did
|
|
234
|
+
* nothing. One that names a record still here is a button that goes to it
|
|
235
|
+
* (the face says how, through `useGoTo`) and closes the popover; a record
|
|
236
|
+
* since removed, or an argument that is a word rather than a record, is a
|
|
237
|
+
* plain label with no pointer and no focus.
|
|
238
|
+
*/
|
|
239
|
+
function Named({ id, label, go }) {
|
|
240
|
+
if (!go)
|
|
241
|
+
return _jsx(Chip, { label: label });
|
|
242
|
+
return (_jsx("button", { type: "button", "data-testid": "activity-record", "data-record": id, title: `Go to ${label}`, onClick: () => go(id), style: { all: "unset", display: "inline-flex", cursor: "pointer", borderRadius: 7 }, className: "graview-activity-record", children: _jsx(Chip, { label: label }) }));
|
|
243
|
+
}
|
|
151
244
|
export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
152
245
|
const changes = useRecentChanges();
|
|
153
|
-
const { store, principal, seats, people } = useGraview();
|
|
246
|
+
const { store: shown, principal, seats, people } = useGraview();
|
|
247
|
+
/* Named from now's records, whichever moment the face draws (Roadmap f-playback). */
|
|
248
|
+
const store = useLiveStore(shown, principal);
|
|
154
249
|
const running = calls.some((call) => call.phase === "running");
|
|
155
250
|
/*
|
|
156
251
|
* A POPOVER FROM THE BAR, not a rail pinned over the scene.
|
|
@@ -164,6 +259,11 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
164
259
|
*/
|
|
165
260
|
const popover = usePopover("activity");
|
|
166
261
|
const open = popover.open;
|
|
262
|
+
const goTo = useGoTo();
|
|
263
|
+
const playback = usePlayback();
|
|
264
|
+
/* 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. */
|
|
265
|
+
const goes = (id) => (store.graph.has(id) ? (to) => { popover.setOpen(false); if (playback?.past)
|
|
266
|
+
playback.show(null); goTo.record(to); } : null);
|
|
167
267
|
if (seat === undefined && calls.length === 0 && changes.length === 0 && !remembers)
|
|
168
268
|
return null;
|
|
169
269
|
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: {
|
|
@@ -218,21 +318,21 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
|
|
|
218
318
|
? "var(--graview-warn)"
|
|
219
319
|
: "var(--graview-edge-bright)",
|
|
220
320
|
} }), _jsxs("span", { style: { color: "var(--graview-ink)" }, children: [call.mutating ? "changed" : "read", " \u00B7", " ", store.allMutations().find((mutation) => mutation.name === call.name)?.title ??
|
|
221
|
-
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(
|
|
321
|
+
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(Named, { id: id, label: nameOf(store, id), go: goes(id) }, 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)
|
|
222
322
|
.filter((entry) => typeof entry[1] === "string")
|
|
223
323
|
.slice(0, 3)
|
|
224
|
-
.map(([name, value]) => (_jsx(
|
|
324
|
+
.map(([name, value]) => (_jsx(Named, { id: value, label: nameOf(store, value), go: goes(value) }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, changes.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
|
|
225
325
|
margin: 0,
|
|
226
326
|
padding: 0,
|
|
227
327
|
listStyle: "none",
|
|
228
328
|
display: "grid",
|
|
229
329
|
gap: 6,
|
|
230
330
|
fontSize: "0.8125rem",
|
|
231
|
-
}, children: changes.map((change, index) => change.withheld ? (
|
|
331
|
+
}, children: changes.map((change, index) => change.digest ? (_jsx(DigestRow, { change: change, goes: goes }, `digest:${change.digest[0]?.batch ?? index}`)) : change.withheld ? (
|
|
232
332
|
/* SOMETHING YOU CANNOT SEE HAPPENED: said, and nothing more — not who, not what, no undo (FR-16). */
|
|
233
333
|
_jsx("li", { "data-testid": "withheld-change", style: { display: "grid", gap: 3, lineHeight: 1.45 }, children: _jsx("span", { "data-touched": "", style: { color: "var(--graview-ink-muted)", fontStyle: "italic" }, children: change.intent }) }, `change:${index}`)) : (_jsxs("li", { style: { display: "grid", gap: 3, lineHeight: 1.45 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
|
|
234
334
|
? "you"
|
|
235
|
-
: 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.batch ? _jsx(UndoTurn, { batch: change.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: change.touched.slice(0, 4).map((id) => (_jsx(
|
|
335
|
+
: 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.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: change.touched.slice(0, 4).map((id) => (_jsx(Named, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (change.removed?.[id] ?? nameOf(store, id)), go: goes(id) }, id))) })] }, `change:${index}`))) })) : null, remembers ? (_jsxs("div", { "data-testid": "remembered", style: {
|
|
236
336
|
display: "flex",
|
|
237
337
|
alignItems: "baseline",
|
|
238
338
|
justifyContent: "space-between",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-seat.d.ts","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS;IACjD,uEAAuE;IACvE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC7C,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE,cAAc,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"agent-seat.d.ts","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS;IACjD,uEAAuE;IACvE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC7C,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE,cAAc,CAAC,CAAC,CAAC,+BAoInB"}
|
|
@@ -19,7 +19,7 @@ import { useEffect, useMemo, useState } from "react";
|
|
|
19
19
|
* button is refused in the same breath the actions strip is.
|
|
20
20
|
*/
|
|
21
21
|
export function AgentSeat({ label, busyLabel, count, idle, gate, who, testId, onCall, run, }) {
|
|
22
|
-
const { store, views, principal, registerSeatWho, noteSeat, session, app } = useGraview();
|
|
22
|
+
const { store, views, principal, registerSeatWho, noteSeat, session, app, ai } = useGraview();
|
|
23
23
|
/*
|
|
24
24
|
* ONE ROBOT for the tab's seat and its chat: the seat registers its name
|
|
25
25
|
* and the chat writes as it, so the two surfaces are one body in the city.
|
|
@@ -42,7 +42,8 @@ export function AgentSeat({ label, busyLabel, count, idle, gate, who, testId, on
|
|
|
42
42
|
derive: () => ({ pins: loadPins() }),
|
|
43
43
|
places: () => views.places(),
|
|
44
44
|
...(app ? { app } : {}),
|
|
45
|
-
|
|
45
|
+
near: ai.near,
|
|
46
|
+
}), [store, principal, who, session, views, app, ai.near]);
|
|
46
47
|
const agent = useMemo(() => createInAppAdapter(runtime), [runtime]);
|
|
47
48
|
const [busy, setBusy] = useState(false);
|
|
48
49
|
const [refused, setRefused] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-seat.js","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GAIT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAqCrD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAsB,EAC7C,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,GACe;IAClB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,EAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-seat.js","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,10 @@ import type { Affordance, OpenParameter } from "@graview/tools";
|
|
|
10
10
|
* picker when it names a node, a date field when it is a date, an enum's own
|
|
11
11
|
* options when it is a choice.
|
|
12
12
|
*/
|
|
13
|
-
export declare function AnswerArgs({ affordance, onApply, onCancel, }: {
|
|
13
|
+
export declare function AnswerArgs({ affordance, onApply, onCancel, store: given, }: {
|
|
14
14
|
readonly affordance: Affordance;
|
|
15
|
+
/** The store it asks about, where it is drawn outside a provider (a routed face's list); the provider's otherwise. */
|
|
16
|
+
readonly store?: Store<AnySchema>;
|
|
15
17
|
/** Applies the answers. Returns the arguments a refusal named, when it named any, so the ask goes back to them. */
|
|
16
18
|
onApply: (args: Record<string, unknown>) => readonly string[] | void;
|
|
17
19
|
onCancel: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-args.d.ts","sourceRoot":"","sources":["../../src/workbench/answer-args.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"answer-args.d.ts","sourceRoot":"","sources":["../../src/workbench/answer-args.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+E,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAKxI,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOhE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,EAAE,KAAK,GACb,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,sHAAsH;IACtH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,mHAAmH;IACnH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACrE,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,sCA0bA;AAwBD,2EAA2E;AAC3E,eAAO,MAAM,KAAK,KAAK,CAAC;AAoBxB;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EACvB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAC1C,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA0BlE"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { humanizeField, isRepeatField, labelOf, linkedRelationOf, nounOf, repeatedBy } from "@graview/core";
|
|
3
|
+
import { edgeWords } from "@graview/core/words";
|
|
4
|
+
import { amountBox, amountInBox, argumentWords, parseDuration, readAmount, tellApart } from "@graview/core/words";
|
|
3
5
|
import { edgeOfSelection, kindsOf } from "@graview/layout/view";
|
|
4
|
-
import {
|
|
6
|
+
import { useGraviewIfAny } from "@graview/react/provider";
|
|
5
7
|
import { Files } from "../files-door.js";
|
|
8
|
+
import { LinkedPicker } from "../linked-record-door.js";
|
|
9
|
+
import { RepeatPicker } from "../repeat-picker-door.js";
|
|
6
10
|
import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
7
11
|
/**
|
|
8
12
|
* The controls for one action's unanswered arguments, walked in order.
|
|
@@ -14,18 +18,35 @@ import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "re
|
|
|
14
18
|
* picker when it names a node, a date field when it is a date, an enum's own
|
|
15
19
|
* options when it is a choice.
|
|
16
20
|
*/
|
|
17
|
-
export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
18
|
-
const
|
|
21
|
+
export function AnswerArgs({ affordance, onApply, onCancel, store: given, }) {
|
|
22
|
+
const provided = useGraviewIfAny();
|
|
23
|
+
const store = (given ?? provided?.store);
|
|
19
24
|
const [answers, setAnswers] = useState({});
|
|
20
25
|
const [draft, setDraft] = useState("");
|
|
21
26
|
/** What has been chosen so far, for an argument that takes several. */
|
|
22
27
|
const [picked, setPicked] = useState(NOTHING_PICKED);
|
|
28
|
+
/** How a date repeats, for an argument that says so: what the picker holds. */
|
|
29
|
+
const [repeat, setRepeat] = useState(undefined);
|
|
23
30
|
// Stable across the walk's steps, so the group's label never dangles.
|
|
24
31
|
const promptId = useId();
|
|
25
32
|
const asked = useRef(null);
|
|
26
33
|
const remaining = affordance.open.filter((parameter) => !(parameter.name in answers));
|
|
27
34
|
const parameter = remaining[0];
|
|
28
|
-
|
|
35
|
+
const act = store.allMutations().find((mutation) => mutation.name === affordance.mutation);
|
|
36
|
+
/*
|
|
37
|
+
* A RECORD'S CHANGE ASKS FROM WHAT THE RECORD HOLDS (Roadmap
|
|
38
|
+
* f-edit-form-prefilled): each question of "Change the feature" opens on
|
|
39
|
+
* the record's value — typed in its box, or its choice marked — and an
|
|
40
|
+
* answer left as it was is not sent, so the change says only what changed.
|
|
41
|
+
*/
|
|
42
|
+
const start = useMemo(() => editStartOf(act, store, affordance.args ?? {}), [act, store, affordance.args]);
|
|
43
|
+
const now = parameter ? start[parameter.name] : undefined;
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
setDraft(typedOf(now, parameter?.shape));
|
|
46
|
+
setPicked(Array.isArray(now) ? now : NOTHING_PICKED);
|
|
47
|
+
setRepeat(now);
|
|
48
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
49
|
+
}, [parameter?.name]);
|
|
29
50
|
/*
|
|
30
51
|
* AND IT IS ON THE SCREEN.
|
|
31
52
|
*
|
|
@@ -67,7 +88,9 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
67
88
|
* of them is allowed: the mutation's own refusal then says what it
|
|
68
89
|
* needed, on the button, which is the honest answer to an empty change.
|
|
69
90
|
*/
|
|
70
|
-
const answer = (
|
|
91
|
+
const answer = (given) => {
|
|
92
|
+
// An answer the record already holds changes nothing, and is not sent.
|
|
93
|
+
const value = now !== undefined && JSON.stringify(given) === JSON.stringify(now) ? undefined : given;
|
|
71
94
|
const next = { ...answers, [parameter.name]: value };
|
|
72
95
|
const outstanding = affordance.open.filter((other) => !(other.name in next));
|
|
73
96
|
if (outstanding.length === 0) {
|
|
@@ -87,9 +110,17 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
87
110
|
};
|
|
88
111
|
const skip = parameter.optional ? (_jsx("button", { type: "button", onClick: () => answer(undefined), style: { fontSize: "0.8125rem" }, children: "Skip" })) : null;
|
|
89
112
|
const shape = parameter.shape ?? { type: "unknown" };
|
|
113
|
+
const amount = shape.type === "number" ? shape.amount : undefined;
|
|
90
114
|
const choices = choicesFor(parameter, shape);
|
|
91
115
|
/* The record's own words for an argument that fills one of its fields: "Body style", "SUV" (see `argumentWords`). */
|
|
92
|
-
const words = argumentWords(store.schema,
|
|
116
|
+
const words = argumentWords(store.schema, act, parameter.name);
|
|
117
|
+
// A record in another app (FR-171), read off the act's own input.
|
|
118
|
+
const linked = linkedRelationOf((act?.input?.shape ?? {})[parameter.name]);
|
|
119
|
+
// How a date repeats, asked with the picker the pages ask with, beside the date it repeats — never as a box to type in.
|
|
120
|
+
const repeats = isRepeatField((act?.input?.shape ?? {})[parameter.name]);
|
|
121
|
+
const repeated = repeatedBy(parameter.name);
|
|
122
|
+
// The choice the record holds, marked among the others: a yes or no as one of the two.
|
|
123
|
+
const was = typeof now === "boolean" ? (now ? "yes" : "no") : now;
|
|
93
124
|
/*
|
|
94
125
|
* A PICKER THAT DROPS CHOICES MAKES THE ACT IMPOSSIBLE, AND SAYS NOTHING.
|
|
95
126
|
*
|
|
@@ -183,11 +214,17 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
183
214
|
gridTemplateColumns: "minmax(0, 1fr)",
|
|
184
215
|
gap: 4,
|
|
185
216
|
padding: "5px 0 2px",
|
|
186
|
-
}, children: [affordance.open.length > 1 || choices.length > 0 ? (_jsx("span", { id: promptId, style: { fontSize: "0.75rem", color: "var(--graview-ink-faint)" }, children: step })) : null, choices.length > SHOWN ? (_jsx("input", { type: "search", value: among, onChange: (event) => setAmong(event.target.value), placeholder: `Filter ${choices.length}…`, "aria-label": `Filter ${asking}`, "data-testid": "ask-filter", style: { font: "inherit", fontSize: "0.8125rem", minWidth: 0, padding: "3px 7px" } })) : null,
|
|
217
|
+
}, children: [affordance.open.length > 1 || choices.length > 0 ? (_jsx("span", { id: promptId, style: { fontSize: "0.75rem", color: "var(--graview-ink-faint)" }, children: step })) : null, choices.length > SHOWN ? (_jsx("input", { type: "search", value: among, onChange: (event) => setAmong(event.target.value), placeholder: `Filter ${choices.length}…`, "aria-label": `Filter ${asking}`, "data-testid": "ask-filter", style: { font: "inherit", fontSize: "0.8125rem", minWidth: 0, padding: "3px 7px" } })) : null, repeats ? (_jsxs("form", { style: { display: "grid", gap: 4 }, onSubmit: (event) => {
|
|
218
|
+
event.preventDefault();
|
|
219
|
+
// Repeating no more is said as null, which the field keeps; what it held before is not sent again.
|
|
220
|
+
answer(repeat ?? (now === undefined ? undefined : null));
|
|
221
|
+
}, children: [_jsx(RepeatPicker, { value: repeat, onChange: setRepeat, start: repeated ? (answers[repeated] ?? start[repeated]) : undefined, label: `${repeated ? argumentWords(store.schema, act, repeated).label : words.label} repeats`, name: parameter.name }), _jsxs("span", { style: { display: "flex", gap: 4 }, children: [_jsx("button", { type: "submit", style: { fontSize: "0.8125rem" }, children: remaining.length > 1 ? "Next" : "Apply" }), skip] })] })) : linked ? (
|
|
222
|
+
/* A record in another app (FR-171) is answered by picking one there, from what the host lists for this seat. */
|
|
223
|
+
_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(LinkedPicker, { relation: linked, value: now, onChange: answer, label: words.label }), skip] })) : fileShape ? (
|
|
187
224
|
/* A picture or a document is answered by putting it there: the host's upload, then the act (FR-163). */
|
|
188
|
-
_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(Files, { as: "control", value:
|
|
189
|
-
const held = picked.includes(choice);
|
|
190
|
-
return (_jsx("button", { type: "button", "aria-label": `${asking}: ${say(choice)}`, ...(several ? { "aria-pressed": held } : {}), style: {
|
|
225
|
+
_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(Files, { as: "control", value: now, onChange: answer, several: several, image: fileShape.image === true, label: words.label }), skip] })) : choices.length > 0 ? (_jsxs("div", { role: "group", "aria-labelledby": promptId, style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: [matching.slice(0, SHOWN).map((choice) => {
|
|
226
|
+
const held = several ? picked.includes(choice) : choice === was;
|
|
227
|
+
return (_jsx("button", { type: "button", "aria-label": `${asking}: ${say(choice)}`, ...(several ? { "aria-pressed": held } : held ? { "aria-current": true } : {}), style: {
|
|
191
228
|
padding: "3px 9px",
|
|
192
229
|
fontSize: "0.8125rem",
|
|
193
230
|
...(held
|
|
@@ -208,6 +245,11 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
208
245
|
// nothing.
|
|
209
246
|
style: { display: "flex", flexWrap: "wrap", gap: 4 }, onSubmit: (event) => {
|
|
210
247
|
event.preventDefault();
|
|
248
|
+
// The record's own value, left as it was typed in: nothing to change.
|
|
249
|
+
if (now !== undefined && draft === typedOf(now, shape)) {
|
|
250
|
+
answer(undefined);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
211
253
|
/*
|
|
212
254
|
* SEVERAL WORDS, typed as one line: "Heated seats, Apple CarPlay"
|
|
213
255
|
* is two features, and nothing is none. A list of text asked as
|
|
@@ -220,7 +262,14 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
220
262
|
}
|
|
221
263
|
if (draft.trim().length === 0)
|
|
222
264
|
return;
|
|
223
|
-
|
|
265
|
+
// An amount as it is said: "$1,250.50" is 1250.5; what is no number is not sent.
|
|
266
|
+
if (amount) {
|
|
267
|
+
const read = readAmount(draft, amount);
|
|
268
|
+
if (read !== undefined)
|
|
269
|
+
answer(read);
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
answer(shape.type === "number" ? (shape.duration ? (parseDuration(draft) ?? draft) : Number(draft)) : draft);
|
|
224
273
|
}, children: [shape.type === "text" && shape.long ? (
|
|
225
274
|
/* Prose is asked for in a text area (FR-147): Enter is a new line, Ctrl or ⌘ with Enter answers. */
|
|
226
275
|
_jsx("textarea", { autoFocus: true, name: parameter.name, "aria-label": words.label, placeholder: words.label, value: draft, rows: 4, onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
|
|
@@ -245,14 +294,14 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
245
294
|
fieldSizing: "content",
|
|
246
295
|
minHeight: "5.5em",
|
|
247
296
|
maxHeight: "40vh",
|
|
248
|
-
} })) : (_jsx("input", { autoFocus: true, type: shape.type === "date" ? (shape.time ? "datetime-local" : "date") : shape.type === "number" ? "number" : "text",
|
|
297
|
+
} })) : (_jsx("input", { autoFocus: true, type: shape.type === "date" ? (shape.time ? "datetime-local" : "date") : shape.type === "number" && !shape.duration && !amount ? "number" : shape.type === "text" && shape.holds === "phone" ? "tel" : "text", ...(amount ? { inputMode: "decimal", "data-graview-amount": amount.format ?? "unit" } : {}),
|
|
249
298
|
/*
|
|
250
299
|
* A FIELD IS ASKED FOR IN WORDS. `dependsOn` and `label` are the
|
|
251
300
|
* declaration's identifiers; the pages face has always humanized
|
|
252
301
|
* them ("Depends on", "Label") and the scene asked with the raw
|
|
253
302
|
* key, so the same act read two ways on the two faces.
|
|
254
303
|
*/
|
|
255
|
-
name: parameter.name, "aria-label": words.label, placeholder: listed ? `${words.label}, separated by commas` : words.label, value: draft, ...(shape.type === "number" && shape.min !== undefined ? { min: shape.min } : {}), ...(shape.type === "number" && shape.max !== undefined ? { max: shape.max } : {}), ...(shape.type === "number" && shape.step !== undefined ? { step: shape.step } : {}), onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
|
|
304
|
+
name: parameter.name, "aria-label": words.label, placeholder: listed ? `${words.label}, separated by commas` : amount ? `${words.label}, ${amountBox(amount).hint} — ${amountBox(amount).prefix ?? ""}${amountBox(amount).placeholder}${amountBox(amount).suffix ? ` ${amountBox(amount).suffix}` : ""}` : words.label, value: draft, ...(shape.type === "number" && shape.min !== undefined ? { min: shape.min } : {}), ...(shape.type === "number" && shape.max !== undefined ? { max: shape.max } : {}), ...(shape.type === "number" && shape.step !== undefined ? { step: shape.step } : {}), onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
|
|
256
305
|
if (event.key === "Escape")
|
|
257
306
|
onCancel();
|
|
258
307
|
}, style: {
|
|
@@ -268,6 +317,27 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
|
|
|
268
317
|
} })), _jsx("button", { type: "submit", disabled: !listed && draft.trim().length === 0, style: { fontSize: "0.8125rem" }, children: remaining.length > 1 ? "Next" : "Apply" }), skip] }))] }));
|
|
269
318
|
}
|
|
270
319
|
const NOTHING_PICKED = [];
|
|
320
|
+
/**
|
|
321
|
+
* The record's own values for each field its derived edit asks — what
|
|
322
|
+
* `editStart` (`@graview/core/forms`) gives a page's form, read here
|
|
323
|
+
* without that barrel, which the scene would otherwise fetch whole before
|
|
324
|
+
* it draws. Nothing for any other act.
|
|
325
|
+
*/
|
|
326
|
+
function editStartOf(act, store, args) {
|
|
327
|
+
const id = act?.derived?.act === "edit" && act.subject ? args[act.subject.arg] : undefined;
|
|
328
|
+
const node = typeof id === "string" ? store.graph.getNode(id) : undefined;
|
|
329
|
+
return node ? Object.fromEntries((act.writes ?? []).filter((field) => node[field] !== undefined && node[field] !== null).map((field) => [field, node[field]])) : {};
|
|
330
|
+
}
|
|
331
|
+
/** A record's value as its ask's box holds it: "1,250.50" beside its "$", "2026-10-20", "Heated seats, CarPlay". */
|
|
332
|
+
function typedOf(value, shape) {
|
|
333
|
+
if (typeof value === "number")
|
|
334
|
+
return shape?.type === "number" && shape.amount ? amountInBox(value, shape.amount) : String(value);
|
|
335
|
+
if (Array.isArray(value))
|
|
336
|
+
return value.every((one) => typeof one === "string") ? value.join(", ") : "";
|
|
337
|
+
if (typeof value !== "string")
|
|
338
|
+
return "";
|
|
339
|
+
return shape?.type === "date" ? (shape.time ? value.slice(0, 16).replace(" ", "T") : value.slice(0, 10)) : value;
|
|
340
|
+
}
|
|
271
341
|
/** How many choices an ask shows at once. Past this it offers a filter. */
|
|
272
342
|
export const SHOWN = 10;
|
|
273
343
|
function choicesFor(parameter, shape) {
|