@graview/primitives 0.1.18 → 0.1.20
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 +30 -6
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +55 -27
- package/dist/app-bar.js.map +1 -1
- package/dist/arrange-bar.d.ts +42 -25
- package/dist/arrange-bar.d.ts.map +1 -1
- package/dist/arrange-bar.js +129 -194
- package/dist/arrange-bar.js.map +1 -1
- package/dist/arrange-lists.d.ts +56 -0
- package/dist/arrange-lists.d.ts.map +1 -0
- package/dist/arrange-lists.js +196 -0
- package/dist/arrange-lists.js.map +1 -0
- package/dist/bar-panes.d.ts +3 -1
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +36 -21
- package/dist/bar-panes.js.map +1 -1
- package/dist/chat.d.ts +68 -30
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +205 -222
- package/dist/chat.js.map +1 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +19 -3
- package/dist/connections.js.map +1 -1
- package/dist/declared-lens-doors.d.ts +18 -0
- package/dist/declared-lens-doors.d.ts.map +1 -1
- package/dist/declared-lens-doors.js +25 -3
- package/dist/declared-lens-doors.js.map +1 -1
- package/dist/declared-lenses.d.ts.map +1 -1
- package/dist/declared-lenses.js +4 -7
- package/dist/declared-lenses.js.map +1 -1
- package/dist/draft-door.d.ts +3 -0
- package/dist/draft-door.d.ts.map +1 -0
- package/dist/draft-door.js +22 -0
- package/dist/draft-door.js.map +1 -0
- package/dist/draft-frame.d.ts +25 -0
- package/dist/draft-frame.d.ts.map +1 -0
- package/dist/draft-frame.js +69 -0
- package/dist/draft-frame.js.map +1 -0
- package/dist/editable.d.ts +4 -1
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +9 -8
- package/dist/editable.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +23 -5
- package/dist/find.js.map +1 -1
- package/dist/frame.d.ts +5 -4
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +5 -4
- package/dist/frame.js.map +1 -1
- package/dist/index.d.ts +14 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/lens/board.d.ts.map +1 -1
- package/dist/lens/board.js +7 -3
- package/dist/lens/board.js.map +1 -1
- package/dist/lens/calendar-options.d.ts +8 -1
- package/dist/lens/calendar-options.d.ts.map +1 -1
- package/dist/lens/calendar-options.js +5 -0
- package/dist/lens/calendar-options.js.map +1 -1
- package/dist/lens/calendar-view.d.ts.map +1 -1
- package/dist/lens/calendar-view.js +2 -2
- package/dist/lens/calendar-view.js.map +1 -1
- package/dist/lens/columns.d.ts.map +1 -1
- package/dist/lens/columns.js +2 -2
- package/dist/lens/columns.js.map +1 -1
- package/dist/lens/coverage.d.ts.map +1 -1
- package/dist/lens/coverage.js +14 -10
- package/dist/lens/coverage.js.map +1 -1
- package/dist/lens/more.d.ts.map +1 -1
- package/dist/lens/more.js +2 -1
- package/dist/lens/more.js.map +1 -1
- package/dist/lens-keeping.d.ts +17 -0
- package/dist/lens-keeping.d.ts.map +1 -0
- package/dist/lens-keeping.js +127 -0
- package/dist/lens-keeping.js.map +1 -0
- package/dist/lines-key.d.ts +12 -0
- package/dist/lines-key.d.ts.map +1 -0
- package/dist/lines-key.js +74 -0
- package/dist/lines-key.js.map +1 -0
- package/dist/notice-place.d.ts +3 -3
- package/dist/notice-place.d.ts.map +1 -1
- package/dist/notice-place.js +4 -4
- package/dist/notice-place.js.map +1 -1
- package/dist/notices.d.ts +6 -0
- package/dist/notices.d.ts.map +1 -1
- package/dist/notices.js +7 -1
- package/dist/notices.js.map +1 -1
- package/dist/pages.d.ts +10 -5
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +10 -5
- package/dist/pages.js.map +1 -1
- package/dist/places.d.ts +0 -24
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +5 -1
- package/dist/places.js.map +1 -1
- package/dist/profile.d.ts +7 -1
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +2 -2
- package/dist/profile.js.map +1 -1
- package/dist/quick-relations.d.ts.map +1 -1
- package/dist/quick-relations.js +2 -2
- package/dist/quick-relations.js.map +1 -1
- package/dist/reader-lenses.d.ts +21 -0
- package/dist/reader-lenses.d.ts.map +1 -0
- package/dist/reader-lenses.js +27 -0
- package/dist/reader-lenses.js.map +1 -0
- package/dist/relation-key.d.ts +2 -0
- package/dist/relation-key.d.ts.map +1 -1
- package/dist/relation-key.js +13 -23
- package/dist/relation-key.js.map +1 -1
- package/dist/rule-line.d.ts +36 -0
- package/dist/rule-line.d.ts.map +1 -0
- package/dist/rule-line.js +91 -0
- package/dist/rule-line.js.map +1 -0
- package/dist/scene-bar.d.ts +29 -0
- package/dist/scene-bar.d.ts.map +1 -0
- package/dist/scene-bar.js +72 -0
- package/dist/scene-bar.js.map +1 -0
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +525 -0
- package/dist/scene-css.js.map +1 -1
- package/dist/scene.d.ts +5 -2
- 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 +58 -0
- package/dist/seat-field.d.ts.map +1 -0
- package/dist/seat-field.js +171 -0
- package/dist/seat-field.js.map +1 -0
- package/dist/seat-move.d.ts +32 -0
- package/dist/seat-move.d.ts.map +1 -0
- package/dist/seat-move.js +56 -0
- package/dist/seat-move.js.map +1 -0
- package/dist/seat-panel.d.ts +37 -0
- package/dist/seat-panel.d.ts.map +1 -0
- package/dist/seat-panel.js +134 -0
- package/dist/seat-panel.js.map +1 -0
- package/dist/seat.d.ts +20 -58
- package/dist/seat.d.ts.map +1 -1
- package/dist/seat.js +28 -45
- package/dist/seat.js.map +1 -1
- package/dist/seeding.d.ts.map +1 -1
- package/dist/seeding.js +4 -4
- package/dist/seeding.js.map +1 -1
- package/dist/shell.d.ts +25 -21
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +46 -116
- package/dist/shell.js.map +1 -1
- package/dist/spec-css.d.ts.map +1 -1
- package/dist/spec-css.js +2 -0
- package/dist/spec-css.js.map +1 -1
- package/dist/spec-views.d.ts.map +1 -1
- package/dist/spec-views.js +10 -2
- package/dist/spec-views.js.map +1 -1
- package/dist/subject.d.ts +4 -2
- package/dist/subject.d.ts.map +1 -1
- package/dist/subject.js +12 -8
- package/dist/subject.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +6 -523
- package/dist/theme.js.map +1 -1
- package/dist/view-doors.d.ts.map +1 -1
- package/dist/view-doors.js +7 -0
- package/dist/view-doors.js.map +1 -1
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +9 -9
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/back-out.js +3 -3
- package/dist/workbench/back-out.js.map +1 -1
- package/dist/workbench/inspector.d.ts +11 -6
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +42 -56
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/standing.d.ts +8 -2
- package/dist/workbench/standing.d.ts.map +1 -1
- package/dist/workbench/standing.js +9 -4
- package/dist/workbench/standing.js.map +1 -1
- package/dist/workbench/trail.d.ts +10 -17
- package/dist/workbench/trail.d.ts.map +1 -1
- package/dist/workbench/trail.js +29 -41
- package/dist/workbench/trail.js.map +1 -1
- package/package.json +7 -7
- package/dist/companion.d.ts +0 -58
- package/dist/companion.d.ts.map +0 -1
- package/dist/companion.js +0 -463
- package/dist/companion.js.map +0 -1
- package/dist/ladder.d.ts +0 -2
- package/dist/ladder.d.ts.map +0 -1
- package/dist/ladder.js +0 -48
- package/dist/ladder.js.map +0 -1
- package/dist/popover.d.ts +0 -21
- package/dist/popover.d.ts.map +0 -1
- package/dist/popover.js +0 -28
- package/dist/popover.js.map +0 -1
- package/dist/wordmark.d.ts +0 -15
- package/dist/wordmark.d.ts.map +0 -1
- package/dist/wordmark.js +0 -50
- package/dist/wordmark.js.map +0 -1
package/dist/chat.js
CHANGED
|
@@ -1,96 +1,128 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useAttention } from "@graview/react/drawing";
|
|
3
|
-
import {
|
|
3
|
+
import { useGraview, useSeatTalkState, useSelection } from "@graview/react/provider";
|
|
4
4
|
import { kindCardId, withFocus, withOverview, withSelection } from "@graview/layout/view";
|
|
5
|
-
import {
|
|
5
|
+
import { completionFor, createToolRuntime, describeProposal, loadPins, resolveProposal, seatResponder, stillNeeded, } from "@graview/tools";
|
|
6
6
|
import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { useLensKeeping } from "./lens-keeping.js";
|
|
8
|
+
import { useSceneGo } from "./seat-move.js";
|
|
7
9
|
import { useSubject } from "./subject.js";
|
|
8
|
-
import {
|
|
10
|
+
import { proposalKey, SeatComposer, SeatThread, Settled, useSeatConversation } from "./seat.js";
|
|
9
11
|
import { AnswerArgs } from "./workbench/index.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
/** An ask for a way of seeing: a board, a calendar, a timeline, who covers what, a list of … */
|
|
13
|
+
const DRAW = /\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i;
|
|
14
|
+
/** An ask that changes the view on screen: group by, sort by, only, call it, as a … */
|
|
15
|
+
const REFINE = /\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i;
|
|
16
|
+
const lowerFirst = (text) => text.charAt(0).toLowerCase() + text.slice(1);
|
|
17
|
+
/** What a move is called in the sentence that says it: a link that goes there again. */
|
|
18
|
+
const nameOfMove = (move) => (move.to === "record" ? move.label : move.to === "problems" ? "problems" : move.title);
|
|
19
|
+
/** The seat's words with the names its moves went to made links, each the first time it is said. */
|
|
20
|
+
function linked(said, moves, link) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
let rest = said;
|
|
23
|
+
for (const move of moves) {
|
|
24
|
+
const name = nameOfMove(move);
|
|
25
|
+
const at = name ? rest.toLowerCase().indexOf(name.toLowerCase()) : -1;
|
|
26
|
+
if (at < 0)
|
|
27
|
+
continue;
|
|
28
|
+
parts.push(rest.slice(0, at), link(move, rest.slice(at, at + name.length)));
|
|
29
|
+
rest = rest.slice(at + name.length);
|
|
30
|
+
}
|
|
31
|
+
return parts.length === 0 ? said : [...parts, rest];
|
|
32
|
+
}
|
|
33
|
+
export function ChatPanel({ respond, onCall, onPick, testId = "chat", empty, shared = false, composer = true, onMove, place, onDraft, }) {
|
|
34
|
+
const { store, views, view, principal, setView, seatWho, noteSeat, session, ai, seatTalk, brand } = useGraview();
|
|
35
|
+
const sceneGo = useSceneGo();
|
|
36
|
+
const go = onMove ?? sceneGo;
|
|
37
|
+
const { takeBack } = useLensKeeping(go);
|
|
12
38
|
const { selection } = useSelection();
|
|
13
39
|
const subject = useSubject();
|
|
14
40
|
/* The chat writes as the tab's seat when one has sat down, so the two are one robot — in this tab's own session. */
|
|
15
41
|
const who = seatWho ?? "chat";
|
|
16
42
|
const author = useMemo(() => ({ kind: "agent", id: who, session }), [who, session]);
|
|
17
43
|
/*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
const popover = usePopover("chat", { popover: !inside });
|
|
22
|
-
const open = inside || popover.open;
|
|
23
|
-
const [settings, setSettings] = useState(false);
|
|
24
|
-
/*
|
|
25
|
-
* THE LADDER IS A SETTING — the provider's, chosen in the profile pane
|
|
26
|
-
* beside text size and scheme, and read here. There is no gear on the
|
|
27
|
-
* chat: the profile is on the same bar. "Let a model read it" shows the
|
|
28
|
-
* same setting in place. A host that passes `respond` has decided.
|
|
44
|
+
* WHAT A CHANGE CAME THROUGH: a proposal a model made is applied with the
|
|
45
|
+
* model's `via`, so the log keeps which provider proposed it — the reader
|
|
46
|
+
* is shown only the act.
|
|
29
47
|
*/
|
|
30
|
-
const
|
|
31
|
-
useEffect(() => setWarmth(null), [config]);
|
|
32
|
-
// A host that passes `respond` has decided which rung answers; the profile's ladder steps aside.
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
registerHostAnswers(respond !== undefined);
|
|
35
|
-
return () => registerHostAnswers(false);
|
|
36
|
-
}, [respond, registerHostAnswers]);
|
|
48
|
+
const viaNow = useRef(undefined);
|
|
37
49
|
const runtime = useMemo(() => createToolRuntime(store, {
|
|
38
50
|
author: {
|
|
39
51
|
...author,
|
|
40
52
|
...(principal.roles ? { roles: principal.roles } : {}),
|
|
41
53
|
},
|
|
42
|
-
// The person's pins reach this seat too — read per call, so
|
|
43
|
-
// toggled in the menu reorders the chat's tool list without a
|
|
44
|
-
// rebuild. No surface may disagree with another about the acts.
|
|
54
|
+
// The person's pins reach this seat too — read per call, so no surface disagrees about the acts.
|
|
45
55
|
derive: () => ({ pins: loadPins() }),
|
|
46
56
|
places: () => views.places(),
|
|
57
|
+
via: () => viaNow.current,
|
|
47
58
|
}), [store, principal, author, views]);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
* The setting as it is NOW, for a turn that started before it changed:
|
|
51
|
-
* the answer says which rung made it and which the person has moved to,
|
|
52
|
-
* rather than finishing silently on a rung they left.
|
|
53
|
-
*/
|
|
54
|
-
const configNow = useRef(config);
|
|
55
|
-
configNow.current = config;
|
|
56
|
-
const answer = useMemo(() => {
|
|
57
|
-
// A replaced responder must not keep narrating: only the current
|
|
58
|
-
// build's status reaches the header.
|
|
59
|
-
const token = ++statusToken.current;
|
|
60
|
-
return (respond ??
|
|
61
|
-
configuredResponder(config, {
|
|
62
|
-
onStatus: (status) => {
|
|
63
|
-
if (token === statusToken.current)
|
|
64
|
-
setWarmth(status);
|
|
65
|
-
},
|
|
66
|
-
current: () => configNow.current,
|
|
67
|
-
}));
|
|
68
|
-
}, [respond, config]);
|
|
59
|
+
/* THE GRAPH FIRST, THE HOST'S MODEL AFTER IT: a host that passes `respond` answers in its place. */
|
|
60
|
+
const answer = useMemo(() => respond ?? seatResponder(ai), [respond, ai]);
|
|
69
61
|
useEffect(() => (onCall ? runtime.onCall(onCall) : undefined), [runtime, onCall]);
|
|
70
62
|
// What the conversation looked at reaches the picture, like any seat's reads.
|
|
71
63
|
useAttention(runtime);
|
|
72
64
|
/*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
|
|
65
|
+
* THE APP AS A DRAFT READS IT: its kinds and who may see what. A drawn
|
|
66
|
+
* view binds only what this seat may see (`draftSight`).
|
|
67
|
+
*/
|
|
68
|
+
const seatApp = useMemo(() => ({ name: brand?.name ?? "app", schema: store.schema, ...(store.policy ? { policy: store.policy } : {}) }), [store, brand]);
|
|
69
|
+
/*
|
|
70
|
+
* ASKED FOR A WAY OF SEEING, THE SEAT DRAWS IT (`@graview/tools/draft`,
|
|
71
|
+
* fetched with the first such ask): a template with no model, the app's
|
|
72
|
+
* model for what no template reads. With a view on screen, an ask that
|
|
73
|
+
* changes it ("group by status", "only this month") changes that one.
|
|
74
|
+
* Drawn, it stands in place of the picture; an ask that cannot be drawn
|
|
75
|
+
* says why in one line and the last good view stays.
|
|
76
76
|
*/
|
|
77
|
+
const drawIfAsked = async (text) => {
|
|
78
|
+
const current = seatTalk.get().draft;
|
|
79
|
+
const refining = current !== null && REFINE.test(text);
|
|
80
|
+
if (!refining && !DRAW.test(text))
|
|
81
|
+
return undefined;
|
|
82
|
+
const engine = await import("@graview/tools/draft");
|
|
83
|
+
const complete = respond ? undefined : completionFor(ai);
|
|
84
|
+
const options = { app: seatApp, sight: engine.draftSight(seatApp, seatAs), ...(complete ? { complete } : {}), ...(current ? { lastGood: current } : {}) };
|
|
85
|
+
const result = refining && current ? await engine.refineDraft(current, text, options) : await engine.draftView(text, options);
|
|
86
|
+
if (engine.isDraftFailure(result)) {
|
|
87
|
+
const kept = result.lastGood ?? current;
|
|
88
|
+
if (kept) {
|
|
89
|
+
seatTalk.setDraft(kept, result.failed);
|
|
90
|
+
onDraft?.();
|
|
91
|
+
return { say: `${result.failed} The last view stays.`, proposals: [], grounded: true };
|
|
92
|
+
}
|
|
93
|
+
return { say: result.failed, proposals: [], grounded: true };
|
|
94
|
+
}
|
|
95
|
+
seatTalk.setDraft(result, null);
|
|
96
|
+
onDraft?.();
|
|
97
|
+
return { say: `Here is ${lowerFirst(result.said)} Ask to change it, or keep it as a lens.`, proposals: [], grounded: true };
|
|
98
|
+
};
|
|
77
99
|
const conversation = useSeatConversation({
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
100
|
+
...(shared ? { talk: seatTalk } : {}),
|
|
101
|
+
/* "This" is the seat's subject: the selection, else what the pointer settled on, else where you are. */
|
|
102
|
+
answer: async (text, context) => {
|
|
103
|
+
const drawn = await drawIfAsked(text);
|
|
104
|
+
if (drawn)
|
|
105
|
+
return drawn;
|
|
106
|
+
/* The places this seat may go to, and where it stands: what "go to The week" and "here" are read against. */
|
|
107
|
+
const { placesFromViews } = await import("@graview/tools/go");
|
|
108
|
+
const here = place ?? view.within?.["view"];
|
|
109
|
+
const arranged = views.arrangement?.();
|
|
110
|
+
const today = store.today();
|
|
111
|
+
return answer(store, text, {
|
|
112
|
+
...context,
|
|
113
|
+
selection: subject.id ? [subject.id] : selection,
|
|
114
|
+
principal: { ...author, ...(principal.roles ? { roles: principal.roles } : {}) },
|
|
115
|
+
// Arranged as the bar arranges them, the scene called what the bar calls it.
|
|
116
|
+
places: placesFromViews(store.schema, views.places(), arranged ? { pages: arranged } : {}),
|
|
117
|
+
...(here ? { place: here } : {}),
|
|
118
|
+
...(today ? { today } : {}),
|
|
119
|
+
});
|
|
120
|
+
},
|
|
88
121
|
onReply: (reply) => {
|
|
89
|
-
/*
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
*/
|
|
122
|
+
/* WHERE THE ANSWER TAKES THE APP: the first move is made, and said ("Went to The week."). */
|
|
123
|
+
const move = reply.moves?.[0];
|
|
124
|
+
if (move)
|
|
125
|
+
go(move);
|
|
94
126
|
const asked = reply.questions?.[0];
|
|
95
127
|
if (asked) {
|
|
96
128
|
noteSeat({ type: "asking", author, where: asked.nodeId ?? null, say: `${asked.nodeLabel ? `${asked.nodeLabel}: ` : ""}${asked.asks}`, confidence: asked.confidence });
|
|
@@ -108,11 +140,22 @@ export function ChatPanel({ inside = false, offer, respond, onCall, onPick, test
|
|
|
108
140
|
},
|
|
109
141
|
});
|
|
110
142
|
const { outcomes, settle } = conversation;
|
|
143
|
+
/*
|
|
144
|
+
* ASKED FROM OUTSIDE: the seat's field, a suggestion, Find's "Ask:" row.
|
|
145
|
+
* They put the question on the app's conversation; the panel drawing it
|
|
146
|
+
* sends it, once.
|
|
147
|
+
*/
|
|
148
|
+
const talk = useSeatTalkState(seatTalk);
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (!shared || talk.pending === null || conversation.busy)
|
|
151
|
+
return;
|
|
152
|
+
const question = seatTalk.takePending();
|
|
153
|
+
if (question)
|
|
154
|
+
void conversation.send(question);
|
|
155
|
+
}, [shared, talk.pending, conversation.busy]);
|
|
111
156
|
/*
|
|
112
157
|
* ASKED AS THE SEAT THAT WILL APPLY IT — the agent, with the person's
|
|
113
|
-
* roles — which is what the runtime applies as.
|
|
114
|
-
* proposal the agent's declared `may` excludes was offered and refused on
|
|
115
|
-
* press.
|
|
158
|
+
* roles — which is what the runtime applies as.
|
|
116
159
|
*/
|
|
117
160
|
const seatAs = { ...author, ...(principal.roles ? { roles: principal.roles } : {}) };
|
|
118
161
|
const permitted = (proposal) => store.permits({ name: proposal.mutation, args: { ...proposal.args } }, seatAs).ok;
|
|
@@ -122,41 +165,22 @@ export function ChatPanel({ inside = false, offer, respond, onCall, onPick, test
|
|
|
122
165
|
};
|
|
123
166
|
/*
|
|
124
167
|
* A PROPOSAL THE ACT'S OWN ARGUMENTS ARE NOT SATISFIED BY IS AN ASK, NOT
|
|
125
|
-
* A REFUSAL
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* reason written above the proposal list: the responder proposes from the
|
|
129
|
-
* graph and knows nothing of the policy. It knows just as little about
|
|
130
|
-
* what an act NEEDS. A model told "add a shift called soup kitchen"
|
|
131
|
-
* answers `add-shift` with a label and none of the day, the place or the
|
|
132
|
-
* hours — and pressing it handed the person the validator talking to
|
|
133
|
-
* itself, six clauses of "expected string, received undefined".
|
|
134
|
-
*
|
|
135
|
-
* The act was never impossible, only under-specified, and this framework
|
|
136
|
-
* already knows what to do with an under-specified act: a person pressing
|
|
137
|
-
* "Add a shift" from the menu is asked for each missing argument in turn,
|
|
138
|
-
* with the graph's own candidates offered for anything that names a node.
|
|
139
|
-
* The seat's proposals go the same way now — the same component, the same
|
|
140
|
-
* questions, the model's own answers already filled in.
|
|
168
|
+
* A REFUSAL: the person is asked for each missing argument in turn, with
|
|
169
|
+
* the graph's own candidates offered for anything that names a node —
|
|
170
|
+
* the same component the context menu raises.
|
|
141
171
|
*/
|
|
142
172
|
const [answering, setAnswering] = useState(null);
|
|
143
173
|
const apply = async (offered, key) => {
|
|
144
|
-
|
|
145
|
-
* Resolved AT THE PRESS, not when it was offered: a sowing proposed in
|
|
146
|
-
* the same breath as its plot names a plot that exists only once the
|
|
147
|
-
* first press has landed.
|
|
148
|
-
*/
|
|
174
|
+
// Resolved at the press, not when offered: a name made by the press before it exists only now.
|
|
149
175
|
const proposal = resolveProposal(store, offered);
|
|
150
176
|
const said = describeProposal(store, proposal);
|
|
151
|
-
|
|
152
|
-
* The runtime RESOLVES refusals rather than throwing them — a policy
|
|
153
|
-
* denial, a validation failure — so the flag must be read. Skipping it
|
|
154
|
-
* had the chat saying "Done" over a change the store had refused, which
|
|
155
|
-
* is the one lie a seat must never tell.
|
|
156
|
-
*/
|
|
157
|
-
// By the tool the act is listed as: an act named like a read tool is still the act.
|
|
177
|
+
// The runtime resolves refusals rather than throwing them, so the flag must be read: never "Done" over a refusal.
|
|
158
178
|
const tool = runtime.definitions.find((definition) => definition.act === proposal.mutation)?.name ?? proposal.mutation;
|
|
159
|
-
|
|
179
|
+
// The turn that offered it says whether a model did: its `via` goes into the log with the act.
|
|
180
|
+
viaNow.current = conversation.turns[Number(key.split(":")[0])]?.via;
|
|
181
|
+
const result = await runtime.call(tool, { ...proposal.args }).finally(() => {
|
|
182
|
+
viaNow.current = undefined;
|
|
183
|
+
});
|
|
160
184
|
if (!result.ok) {
|
|
161
185
|
settle(key, { state: "refused", error: result.error });
|
|
162
186
|
noteSeat({ type: "refused", author, where: gateOf(proposal.mutation), say: result.error });
|
|
@@ -165,12 +189,7 @@ export function ChatPanel({ inside = false, offer, respond, onCall, onPick, test
|
|
|
165
189
|
settle(key, { state: "applied", said });
|
|
166
190
|
return true;
|
|
167
191
|
};
|
|
168
|
-
/*
|
|
169
|
-
* ONE REQUEST, ONE PRESS. "Add a plot and put a sunflower in it" is two
|
|
170
|
-
* proposals and one intention; applied in order, each resolved after the
|
|
171
|
-
* one before it has landed, stopping at the first that still needs an
|
|
172
|
-
* answer (asked, as ever) or is refused.
|
|
173
|
-
*/
|
|
192
|
+
/* ONE REQUEST, ONE PRESS: a turn's proposals in order, stopping at the first that asks or is refused. */
|
|
174
193
|
const applyAll = async (turn, proposals) => {
|
|
175
194
|
for (const [at, proposal] of proposals.entries()) {
|
|
176
195
|
const key = proposalKey(turn, at);
|
|
@@ -186,10 +205,9 @@ export function ChatPanel({ inside = false, offer, respond, onCall, onPick, test
|
|
|
186
205
|
}
|
|
187
206
|
};
|
|
188
207
|
/*
|
|
189
|
-
* THE KEYBOARD OUTLIVES THE PROPOSAL IT PRESSED
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
* still to press, else back to the words.
|
|
208
|
+
* THE KEYBOARD OUTLIVES THE PROPOSAL IT PRESSED: applied, its line
|
|
209
|
+
* becomes a line saying it was done, and the keyboard goes on to the
|
|
210
|
+
* next one still to press, else back to the words.
|
|
193
211
|
*/
|
|
194
212
|
const panel = useRef(null);
|
|
195
213
|
const kept = useRef(null);
|
|
@@ -199,133 +217,98 @@ export function ChatPanel({ inside = false, offer, respond, onCall, onPick, test
|
|
|
199
217
|
return;
|
|
200
218
|
kept.current = null;
|
|
201
219
|
const next = panel.current?.querySelector(`[data-testid="${testId}-apply"]:not([disabled])`) ??
|
|
202
|
-
panel.current?.querySelector(`[data-testid="${testId}-draft"]`)
|
|
220
|
+
panel.current?.querySelector(`[data-testid="${testId}-draft"]`) ??
|
|
221
|
+
panel.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']");
|
|
203
222
|
next?.focus();
|
|
204
223
|
});
|
|
205
224
|
const offerOne = (turnIndex, at, proposal, key) => {
|
|
206
|
-
/*
|
|
207
|
-
* WITHHELD, NOT OFFERED — the same rule as the strip. The responder
|
|
208
|
-
* proposes from the graph and knows nothing of the policy, so the seat
|
|
209
|
-
* was handed "Add an item" with an apply button and refused on press.
|
|
210
|
-
* The store's own verdict, asked as the person at the keyboard, decides
|
|
211
|
-
* whether a proposal is a press or a struck line with the policy's
|
|
212
|
-
* reason beside it.
|
|
213
|
-
*/
|
|
225
|
+
/* WITHHELD, NOT OFFERED: the store's own verdict decides whether a proposal is a press or a struck line with the reason. */
|
|
214
226
|
const verdict = store.permits({ name: proposal.mutation, args: { ...proposal.args } }, seatAs);
|
|
215
227
|
if (!verdict.ok) {
|
|
216
228
|
return (_jsxs("span", { "data-testid": `${testId}-withheld`, style: { fontSize: "0.8125rem", color: "var(--graview-ink-muted)" }, children: [_jsx("s", { children: describeProposal(store, proposal) }), " \u2014 ", verdict.refusal.message] }));
|
|
217
229
|
}
|
|
218
|
-
// The same question asked of the ACT rather than of the policy: has the responder said what this needs?
|
|
219
230
|
const owed = stillNeeded(store, proposal);
|
|
220
|
-
/*
|
|
221
|
-
* WAITING, NOT MISSING. A thing named by an earlier proposal in this
|
|
222
|
-
* same reply — the plot it stakes out — is an answer that has not
|
|
223
|
-
* landed yet, so the press waits for that one rather than asking again.
|
|
224
|
-
*/
|
|
231
|
+
/* WAITING, NOT MISSING: a thing an earlier proposal in this reply makes is an answer that has not landed yet. */
|
|
225
232
|
const before = (conversation.turns[turnIndex]?.proposals ?? [])
|
|
226
233
|
.slice(0, at)
|
|
227
234
|
.filter((_, was) => outcomes.get(proposalKey(turnIndex, was))?.state !== "applied")
|
|
228
235
|
.find((earlier) => owed.some((one) => one.kinds && typeof proposal.args[one.name] === "string" && earlier.args["label"] === proposal.args[one.name]));
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
? `${proposal.why ?? "Apply this change"} — needs ${owed.map((one) => one.name).join(", ")}`
|
|
233
|
-
: (proposal.why ?? "Apply this change"), style: { fontSize: "0.8125rem", textAlign: "start" }, children: [describeProposal(store, proposal), owed.length > 0 && !before ? " …" : ""] }));
|
|
236
|
+
const said = describeProposal(store, proposal);
|
|
237
|
+
/* ONE LINE, AND TWO WORDS: what it would do, "Do it", "Not now". The preview, the check and the undo are the act's own. */
|
|
238
|
+
return (_jsxs("span", { style: { display: "flex", flexWrap: "wrap", alignItems: "baseline", gap: "4px 10px" }, children: [_jsxs("span", { style: { fontSize: "0.875rem", color: "var(--graview-ink)" }, title: proposal.why, children: [said, owed.length > 0 && !before ? " …" : ""] }), _jsxs("span", { style: { display: "inline-flex", gap: 6 }, children: [_jsx("button", { type: "button", "data-testid": `${testId}-apply`, "data-graview-asks": owed.length > 0 ? owed.length : undefined, disabled: before !== undefined, "aria-label": `Do it: ${said}`, onClick: () => (owed.length > 0 ? setAnswering({ proposal, open: owed, key }) : void apply(proposal, key)), title: before ? `After “${describeProposal(store, before)}”` : owed.length > 0 ? `${said} — it asks for ${owed.length === 1 ? "one more thing" : `${owed.length} more things`}` : said, style: QUIET_BUTTON, children: "Do it" }), _jsx("button", { type: "button", "data-testid": `${testId}-decline`, "aria-label": `Not now: ${said}`, onClick: () => settle(key, { state: "declined", said }), style: { ...QUIET_BUTTON, color: "var(--graview-ink-muted)" }, children: "Not now" })] })] }));
|
|
234
239
|
};
|
|
235
|
-
return (_jsxs("div", {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
: {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
* pixels past the edge and was clipped mid-word.
|
|
280
|
-
*/
|
|
281
|
-
gridTemplateColumns: "minmax(0, 1fr)",
|
|
282
|
-
minWidth: 0,
|
|
283
|
-
...(inside ? {} : { gridTemplateRows: "auto 1fr auto" }),
|
|
284
|
-
/*
|
|
285
|
-
* CLIPPED, EVEN IN THE RAIL: across engines, a squeezed box
|
|
286
|
-
* painting its field over the section below is the ugly
|
|
287
|
-
* failure; clipped, the worst case is a section that scrolls in
|
|
288
|
-
* a rail that already scrolls.
|
|
289
|
-
*/
|
|
290
|
-
overflow: "hidden",
|
|
291
|
-
}, children: [inside ? null : (_jsx(SeatHeader, { label: "Seat", testId: testId, source: respond ? "app-provided" : describeSource(describeIntelligence(config), warmth), ...(warmth?.state === "failed" && warmth.detail ? { sourceTitle: warmth.detail } : {}) })), settings && !respond ? (_jsx(SeatSettings, { testId: testId, onDone: () => setSettings(false) })) : (_jsx(SeatThread, { turns: conversation.turns, outcomes: outcomes, busy: conversation.busy, testId: testId, minHeight: inside ? 0 : 120, empty: inside ? null : (_jsxs(_Fragment, { children: ["Ask what's wrong, ask about anything by name, or say a change in its own words.", selection.length > 0 ? " “This” means what you have selected." : ""] })), renderProposal: (proposal, { key, turn, at }) => offerOne(turn, at, proposal, key), ready: (proposal) => permitted(proposal), onApplyAll: (turn, proposals) => void applyAll(turn, proposals), ...(respond || config.source !== "graph" ? {} : { onChooseModel: () => setSettings(true) }), renderAfter: (turn, index) => [
|
|
292
|
-
/*
|
|
293
|
-
* WHAT THE WORDS FOUND, each a press that goes there — the
|
|
294
|
-
* Find box's strip, answered in the thread.
|
|
295
|
-
*/
|
|
296
|
-
...(turn.picks?.length
|
|
297
|
-
? [
|
|
298
|
-
_jsx("div", { "data-testid": `${testId}-picks`, style: { display: "flex", flexWrap: "wrap", gap: 4, justifySelf: "start" }, children: turn.picks.map((hit) => (_jsx("button", { type: "button", "data-testid": `${testId}-pick`, "data-chat-pick": hit.id, title: hit.why.field === "label" ? `Go to ${hit.label}` : `${hit.why.reading}: ${hit.why.fragment}`, onClick: () => onPick ? onPick(hit.id) : setView((stop) => withSelection(withFocus(withOverview(stop, false), hit.id), [hit.id])), style: { fontSize: "0.8125rem", minHeight: 28 }, children: hit.label }, hit.id))) }, `${index}:picks`),
|
|
299
|
-
]
|
|
300
|
-
: []),
|
|
301
|
-
...(turn.questions ?? []).map((asked) => {
|
|
302
|
-
const key = `${index}:q:${asked.id}`;
|
|
303
|
-
const outcome = outcomes.get(key);
|
|
304
|
-
/*
|
|
305
|
-
* A QUESTION STANDS AT ITS NODE. The seat was not sure
|
|
306
|
-
* enough to propose — a split, or a shrug — so it asks,
|
|
307
|
-
* naming the node, with each option as a press that lands
|
|
308
|
-
* through the same path a proposal does.
|
|
309
|
-
*/
|
|
310
|
-
return (_jsxs("div", { "data-testid": `${testId}-question`, "data-chat-question-node": asked.nodeId, style: { display: "grid", gap: 4, justifySelf: "start", maxWidth: 260 }, children: [_jsxs("span", { style: { fontSize: "0.8125rem", color: "var(--graview-ink-muted)" }, children: [asked.nodeLabel ? _jsxs("strong", { children: [asked.nodeLabel, ": "] }) : null, asked.asks, asked.because === "split" ? " (it could be either)" : " (it was not sure)"] }), _jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: asked.options.map((option) => (_jsxs("button", { type: "button", "data-testid": `${testId}-option`, disabled: !option.call, title: option.call ? option.call.why ?? "Take this answer" : "Nothing to do for this answer", onClick: () => (option.call ? void apply(option.call, key) : undefined), style: { fontSize: "0.8125rem" }, children: [option.value, " ", Math.round(option.probability * 100), "%"] }, option.value))) }), outcome ? _jsx(Settled, { outcome: outcome, testId: testId }) : null] }, asked.id));
|
|
311
|
-
}),
|
|
312
|
-
] })), answering ? (_jsx("div", { "data-testid": `${testId}-asking`, style: { padding: "0 8px 6px" }, children: _jsx(AnswerArgs, { affordance: {
|
|
313
|
-
id: `chat:${answering.proposal.mutation}`,
|
|
314
|
-
mutation: answering.proposal.mutation,
|
|
315
|
-
label: describeProposal(store, answering.proposal),
|
|
316
|
-
// What it is, honestly: a responder's suggestion.
|
|
317
|
-
provider: "llm",
|
|
318
|
-
why: answering.proposal.why ?? "The seat suggested this.",
|
|
319
|
-
nodeIds: [],
|
|
320
|
-
args: answering.proposal.args,
|
|
321
|
-
open: answering.open,
|
|
322
|
-
score: 0,
|
|
323
|
-
}, onApply: (args) => {
|
|
324
|
-
const proposal = { ...answering.proposal, args: { ...answering.proposal.args, ...args } };
|
|
325
|
-
setAnswering(null);
|
|
326
|
-
void apply(proposal, answering.key);
|
|
327
|
-
}, onCancel: () => setAnswering(null) }) })) : null, (offer ?? []).length > 0 && conversation.turns.length === 0 ? (
|
|
328
|
-
/* Suggestions are a quiet way in, not choices the reader must weigh: words to press, not capsules (FR-117). */
|
|
329
|
-
_jsx("div", { "data-testid": `${testId}-offers`, style: { display: "flex", flexWrap: "wrap", gap: "0 12px", padding: "0 8px 6px" }, children: (offer ?? []).slice(0, 3).map((question) => (_jsx("button", { type: "button", "data-testid": `${testId}-offer`, disabled: conversation.busy, onClick: () => void conversation.send(question), style: { font: "inherit", fontSize: "0.8125rem", minHeight: 24, padding: "0 2px", border: 0, borderRadius: 4, background: "transparent", boxShadow: "none", color: "var(--graview-accent)", textDecoration: "underline", textUnderlineOffset: 3, cursor: "pointer" }, children: question }, question))) })) : null, _jsx(SeatComposer, { busy: conversation.busy, placeholder: inside && selection.length > 0 ? "Ask about this…" : "Ask, or say a change…", ariaLabel: "Message the seat", testId: testId, onSend: (text) => void conversation.send(text) }), inside ? (_jsx(SeatHeader, { foot: true, label: "Seat", testId: testId, source: respond ? "app-provided" : describeSource(describeIntelligence(config), warmth), ...(warmth?.state === "failed" && warmth.detail ? { sourceTitle: warmth.detail } : {}), ...(!respond ? { settings, onSettings: () => setSettings((was) => !was) } : {}) })) : null] })) : null] }));
|
|
240
|
+
return (_jsxs("div", { "data-testid": `${testId}-panel`, ref: panel, onFocus: (event) => {
|
|
241
|
+
kept.current = event.target;
|
|
242
|
+
}, style: { display: "grid", gridTemplateColumns: "minmax(0, 1fr)", alignContent: "start", gap: 8, minWidth: 0, minHeight: 0 }, children: [conversation.turns.length === 0 ? empty ?? null : null, _jsx(SeatThread, { turns: conversation.turns, outcomes: outcomes, busy: conversation.busy, testId: testId, minHeight: 0, maxHeight: "none", empty: empty !== undefined ? null : (_jsxs(_Fragment, { children: ["Ask what's wrong, ask about anything by name, or say a change in its own words.", selection.length > 0 ? " “This” means what you have selected." : ""] })), renderProposal: (proposal, { key, turn, at }) => offerOne(turn, at, proposal, key), ready: (proposal) => permitted(proposal), onApplyAll: (turn, proposals) => void applyAll(turn, proposals), applyAllLabel: "Do all", renderSaid: (turn, said) => turn.moves?.length
|
|
243
|
+
? linked(said, turn.moves, (move, words) => (_jsx("button", { type: "button", "data-testid": `${testId}-went`, title: `Go to ${words}`, onClick: () => go(move), style: { ...LINK, fontSize: "inherit" }, children: words }, `${move.address}:${words}`)))
|
|
244
|
+
: said, renderAfter: (turn, index) => [
|
|
245
|
+
/* A PICTURE THE MOVES COULD NOT SHOW, offered: drawn when pressed. */
|
|
246
|
+
...(turn.offer
|
|
247
|
+
? [
|
|
248
|
+
_jsx("button", { type: "button", "data-testid": `${testId}-offer`, onClick: () => seatTalk.ask(`a list of ${turn.offer.draft}`), style: { ...QUIET_BUTTON, justifySelf: "start" }, children: turn.offer.label }, `${index}:offer`),
|
|
249
|
+
]
|
|
250
|
+
: []),
|
|
251
|
+
/* A LENS KEPT, with the way to take it back: the notice goes, the conversation keeps it. */
|
|
252
|
+
...(turn.kept && !turn.kept.taken
|
|
253
|
+
? [
|
|
254
|
+
_jsx("button", { type: "button", "data-testid": `${testId}-take-back`, onClick: () => void takeBack(turn.kept), style: { ...QUIET_BUTTON, justifySelf: "start" }, children: "Take back" }, `${index}:take-back`),
|
|
255
|
+
]
|
|
256
|
+
: []),
|
|
257
|
+
/* THE NAMES THE WORDS FOUND, each a link that goes there. */
|
|
258
|
+
...(turn.picks?.length
|
|
259
|
+
? [
|
|
260
|
+
_jsx("p", { "data-testid": `${testId}-picks`, style: { margin: 0, display: "flex", flexWrap: "wrap", gap: "2px 12px" }, children: turn.picks.map((hit) => (_jsx("button", { type: "button", "data-testid": `${testId}-pick`, "data-chat-pick": hit.id, title: hit.why.field === "label" ? `Go to ${hit.label}` : `${hit.why.reading}: ${hit.why.fragment}`, onClick: () => onPick ? onPick(hit.id) : setView((stop) => withSelection(withFocus(withOverview(stop, false), hit.id), [hit.id])), style: LINK, children: hit.label }, hit.id))) }, `${index}:picks`),
|
|
261
|
+
]
|
|
262
|
+
: []),
|
|
263
|
+
...(turn.questions ?? []).map((asked) => {
|
|
264
|
+
const key = `${index}:q:${asked.id}`;
|
|
265
|
+
const outcome = outcomes.get(key);
|
|
266
|
+
/* A QUESTION STANDS AT ITS NODE, each option a press that lands through the path a proposal does. */
|
|
267
|
+
return (_jsxs("div", { "data-testid": `${testId}-question`, "data-chat-question-node": asked.nodeId, style: { display: "grid", gap: 4, justifySelf: "start" }, children: [_jsxs("span", { style: { fontSize: "0.8125rem", color: "var(--graview-ink-muted)" }, children: [asked.nodeLabel ? _jsxs("strong", { children: [asked.nodeLabel, ": "] }) : null, asked.asks, asked.because === "split" ? " (it could be either)" : " (it was not sure)"] }), _jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: asked.options.map((option) => (_jsxs("button", { type: "button", "data-testid": `${testId}-option`, disabled: !option.call, title: option.call ? option.call.why ?? "Take this answer" : "Nothing to do for this answer", onClick: () => (option.call ? void apply(option.call, key) : undefined), style: QUIET_BUTTON, children: [option.value, " ", Math.round(option.probability * 100), "%"] }, option.value))) }), outcome ? _jsx(Settled, { outcome: outcome, testId: testId }) : null] }, asked.id));
|
|
268
|
+
}),
|
|
269
|
+
] }), answering ? (_jsx("div", { "data-testid": `${testId}-asking`, children: _jsx(AnswerArgs, { affordance: {
|
|
270
|
+
id: `chat:${answering.proposal.mutation}`,
|
|
271
|
+
mutation: answering.proposal.mutation,
|
|
272
|
+
label: describeProposal(store, answering.proposal),
|
|
273
|
+
provider: "llm",
|
|
274
|
+
why: answering.proposal.why ?? "Suggested in the conversation.",
|
|
275
|
+
nodeIds: [],
|
|
276
|
+
args: answering.proposal.args,
|
|
277
|
+
open: answering.open,
|
|
278
|
+
score: 0,
|
|
279
|
+
}, onApply: (args) => {
|
|
280
|
+
const proposal = { ...answering.proposal, args: { ...answering.proposal.args, ...args } };
|
|
281
|
+
setAnswering(null);
|
|
282
|
+
void apply(proposal, answering.key);
|
|
283
|
+
}, onCancel: () => setAnswering(null) }) })) : null, composer ? (_jsx(SeatComposer, { busy: conversation.busy, placeholder: selection.length > 0 ? "Ask about this…" : "Ask, or say a change…", ariaLabel: "Ask", testId: testId, onSend: (text) => (shared ? seatTalk.ask(text) : void conversation.send(text)) })) : null] }));
|
|
330
284
|
}
|
|
285
|
+
/** A press that reads as a word, not a capsule: hairline, square-ish, small. */
|
|
286
|
+
export const QUIET_BUTTON = {
|
|
287
|
+
font: "inherit",
|
|
288
|
+
fontSize: "0.8125rem",
|
|
289
|
+
minHeight: 26,
|
|
290
|
+
padding: "0 9px",
|
|
291
|
+
borderRadius: 6,
|
|
292
|
+
border: "1px solid var(--graview-edge)",
|
|
293
|
+
background: "var(--graview-panel)",
|
|
294
|
+
boxShadow: "none",
|
|
295
|
+
color: "var(--graview-ink)",
|
|
296
|
+
cursor: "pointer",
|
|
297
|
+
};
|
|
298
|
+
/** A name in an answer, or a suggestion: a link that does something, in the accent. */
|
|
299
|
+
export const LINK = {
|
|
300
|
+
font: "inherit",
|
|
301
|
+
fontSize: "0.875rem",
|
|
302
|
+
minHeight: 24,
|
|
303
|
+
padding: 0,
|
|
304
|
+
border: 0,
|
|
305
|
+
borderRadius: 2,
|
|
306
|
+
background: "transparent",
|
|
307
|
+
boxShadow: "none",
|
|
308
|
+
color: "var(--graview-accent)",
|
|
309
|
+
textDecoration: "underline",
|
|
310
|
+
textUnderlineOffset: 3,
|
|
311
|
+
textAlign: "start",
|
|
312
|
+
cursor: "pointer",
|
|
313
|
+
};
|
|
331
314
|
//# sourceMappingURL=chat.js.map
|
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.tsx"],"names":[],"mappings":"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"}
|