@graview/primitives 0.1.64 → 0.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app-bar.d.ts +88 -15
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +177 -131
- package/dist/app-bar.js.map +1 -1
- package/dist/app-menu.d.ts +9 -0
- package/dist/app-menu.d.ts.map +1 -0
- package/dist/app-menu.js +60 -0
- package/dist/app-menu.js.map +1 -0
- package/dist/bar-activity.d.ts +5 -9
- package/dist/bar-activity.d.ts.map +1 -1
- package/dist/bar-activity.js +24 -7
- package/dist/bar-activity.js.map +1 -1
- package/dist/bar-panes.d.ts +5 -5
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +9 -5
- package/dist/bar-panes.js.map +1 -1
- package/dist/bar-suggested.d.ts +9 -1
- package/dist/bar-suggested.d.ts.map +1 -1
- package/dist/bar-suggested.js +11 -17
- package/dist/bar-suggested.js.map +1 -1
- package/dist/better-bar.d.ts +65 -0
- package/dist/better-bar.d.ts.map +1 -0
- package/dist/better-bar.js +252 -0
- package/dist/better-bar.js.map +1 -0
- package/dist/better-panel.d.ts +50 -0
- package/dist/better-panel.d.ts.map +1 -0
- package/dist/better-panel.js +151 -0
- package/dist/better-panel.js.map +1 -0
- package/dist/chat.js +1 -1
- package/dist/chat.js.map +1 -1
- package/dist/editable.d.ts +8 -1
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +140 -16
- package/dist/editable.js.map +1 -1
- package/dist/find.js +3 -3
- package/dist/find.js.map +1 -1
- package/dist/first-look-door.d.ts +2 -2
- package/dist/first-look-door.js +2 -2
- package/dist/first-look.d.ts.map +1 -1
- package/dist/first-look.js +10 -8
- package/dist/first-look.js.map +1 -1
- package/dist/frame.d.ts +2 -2
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +1 -1
- package/dist/frame.js.map +1 -1
- package/dist/here.d.ts +1 -1
- package/dist/here.js +2 -2
- package/dist/here.js.map +1 -1
- package/dist/inbox-pane.d.ts +31 -0
- package/dist/inbox-pane.d.ts.map +1 -0
- package/dist/inbox-pane.js +89 -0
- package/dist/inbox-pane.js.map +1 -0
- package/dist/inbox.d.ts +17 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +84 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/inline-ai-menu.d.ts +4 -2
- package/dist/inline-ai-menu.d.ts.map +1 -1
- package/dist/inline-ai-menu.js +34 -8
- package/dist/inline-ai-menu.js.map +1 -1
- package/dist/kind-stop.d.ts.map +1 -1
- package/dist/kind-stop.js +204 -21
- package/dist/kind-stop.js.map +1 -1
- package/dist/lines-key.d.ts.map +1 -1
- package/dist/lines-key.js +22 -2
- package/dist/lines-key.js.map +1 -1
- package/dist/map-panel.js +98 -6
- package/dist/map-panel.js.map +1 -1
- package/dist/menu-rank.d.ts +25 -0
- package/dist/menu-rank.d.ts.map +1 -0
- package/dist/menu-rank.js +56 -0
- package/dist/menu-rank.js.map +1 -0
- package/dist/menu-suggested.d.ts +54 -0
- package/dist/menu-suggested.d.ts.map +1 -0
- package/dist/menu-suggested.js +140 -0
- package/dist/menu-suggested.js.map +1 -0
- package/dist/menu-told-door.d.ts +17 -0
- package/dist/menu-told-door.d.ts.map +1 -0
- package/dist/menu-told-door.js +49 -0
- package/dist/menu-told-door.js.map +1 -0
- package/dist/menu-told.d.ts +44 -0
- package/dist/menu-told.d.ts.map +1 -0
- package/dist/menu-told.js +90 -0
- package/dist/menu-told.js.map +1 -0
- package/dist/menu-words.d.ts +15 -0
- package/dist/menu-words.d.ts.map +1 -0
- package/dist/menu-words.js +28 -0
- package/dist/menu-words.js.map +1 -0
- package/dist/notify-sheet.js +2 -2
- package/dist/notify-sheet.js.map +1 -1
- package/dist/page-better.d.ts +13 -0
- package/dist/page-better.d.ts.map +1 -0
- package/dist/page-better.js +714 -0
- package/dist/page-better.js.map +1 -0
- package/dist/page-parts.d.ts +41 -0
- package/dist/page-parts.d.ts.map +1 -0
- package/dist/page-parts.js +100 -0
- package/dist/page-parts.js.map +1 -0
- package/dist/pages.d.ts +4 -3
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +4 -3
- package/dist/pages.js.map +1 -1
- package/dist/profile.d.ts +1 -10
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +2 -3
- package/dist/profile.js.map +1 -1
- package/dist/quick-ask-desk.d.ts +16 -0
- package/dist/quick-ask-desk.d.ts.map +1 -1
- package/dist/quick-ask-desk.js +20 -0
- package/dist/quick-ask-desk.js.map +1 -1
- package/dist/quick-ask-door.d.ts.map +1 -1
- package/dist/quick-ask-door.js +5 -0
- package/dist/quick-ask-door.js.map +1 -1
- package/dist/quick-ask-plan.d.ts +52 -0
- package/dist/quick-ask-plan.d.ts.map +1 -0
- package/dist/quick-ask-plan.js +112 -0
- package/dist/quick-ask-plan.js.map +1 -0
- package/dist/quick-ask.d.ts.map +1 -1
- package/dist/quick-ask.js +341 -19
- package/dist/quick-ask.js.map +1 -1
- package/dist/scene-bar.d.ts +1 -1
- package/dist/scene-bar.d.ts.map +1 -1
- package/dist/scene-bar.js +4 -7
- package/dist/scene-bar.js.map +1 -1
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +16 -6
- package/dist/scene-css.js.map +1 -1
- package/dist/scene-places.d.ts +3 -2
- package/dist/scene-places.d.ts.map +1 -1
- package/dist/scene-places.js +47 -8
- package/dist/scene-places.js.map +1 -1
- package/dist/scene.d.ts +2 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -1
- package/dist/section-better.d.ts +76 -0
- package/dist/section-better.d.ts.map +1 -0
- package/dist/section-better.js +529 -0
- package/dist/section-better.js.map +1 -0
- package/dist/section-door.d.ts +39 -0
- package/dist/section-door.d.ts.map +1 -0
- package/dist/section-door.js +66 -0
- package/dist/section-door.js.map +1 -0
- package/dist/section-menu.d.ts +32 -0
- package/dist/section-menu.d.ts.map +1 -0
- package/dist/section-menu.js +229 -0
- package/dist/section-menu.js.map +1 -0
- package/dist/section-outline.d.ts +8 -0
- package/dist/section-outline.d.ts.map +1 -0
- package/dist/section-outline.js +48 -0
- package/dist/section-outline.js.map +1 -0
- package/dist/section-words.d.ts +32 -0
- package/dist/section-words.d.ts.map +1 -0
- package/dist/section-words.js +116 -0
- package/dist/section-words.js.map +1 -0
- package/dist/shell.d.ts +5 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +5 -2
- package/dist/shell.js.map +1 -1
- package/dist/subject.js +2 -2
- package/dist/subject.js.map +1 -1
- package/dist/suggested.d.ts +21 -10
- package/dist/suggested.d.ts.map +1 -1
- package/dist/suggested.js +43 -64
- package/dist/suggested.js.map +1 -1
- package/dist/told-card.d.ts +66 -0
- package/dist/told-card.d.ts.map +1 -0
- package/dist/told-card.js +197 -0
- package/dist/told-card.js.map +1 -0
- package/dist/told-listed.d.ts +14 -0
- package/dist/told-listed.d.ts.map +1 -0
- package/dist/told-listed.js +46 -0
- package/dist/told-listed.js.map +1 -0
- package/dist/told-panel-door.d.ts +17 -0
- package/dist/told-panel-door.d.ts.map +1 -0
- package/dist/told-panel-door.js +6 -0
- package/dist/told-panel-door.js.map +1 -0
- package/dist/told-panel.d.ts +19 -0
- package/dist/told-panel.d.ts.map +1 -0
- package/dist/told-panel.js +83 -0
- package/dist/told-panel.js.map +1 -0
- package/dist/told-ui.d.ts +5 -0
- package/dist/told-ui.d.ts.map +1 -0
- package/dist/told-ui.js +12 -0
- package/dist/told-ui.js.map +1 -0
- package/dist/when-words.d.ts +21 -0
- package/dist/when-words.d.ts.map +1 -0
- package/dist/when-words.js +43 -0
- package/dist/when-words.js.map +1 -0
- package/dist/workbench/activity.d.ts +44 -0
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +74 -59
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/ai-entries.d.ts.map +1 -1
- package/dist/workbench/ai-entries.js +23 -2
- package/dist/workbench/ai-entries.js.map +1 -1
- package/dist/workbench/back-out.js +1 -1
- package/dist/workbench/back-out.js.map +1 -1
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +366 -27
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/standing.d.ts.map +1 -1
- package/dist/workbench/standing.js +1 -1
- package/dist/workbench/standing.js.map +1 -1
- package/package.json +6 -6
package/dist/map-panel.js
CHANGED
|
@@ -48,10 +48,102 @@ export function MapPanelFor({ showing }) {
|
|
|
48
48
|
return _jsx(RecordPanel, { id: showing.id }, `record:${showing.id}`);
|
|
49
49
|
return _jsx(DistrictPanel, { kind: showing.kind }, `district:${showing.kind}`);
|
|
50
50
|
}
|
|
51
|
+
/* ------------------------------------------------------------- the sheet's rests */
|
|
52
|
+
/*
|
|
53
|
+
* A PHONE'S SHEET STANDS AT ONE OF THREE RESTS. It stood at half the
|
|
54
|
+
* picture, and a person reading a district's records saw a handful of rows
|
|
55
|
+
* under a half-empty map. It opens at two thirds now — leaving above it the
|
|
56
|
+
* chosen district, lifted over the sheet (the city stays where it stood),
|
|
57
|
+
* its name and its showings where they fit — and its handle takes it up to
|
|
58
|
+
* nearly all of the picture or down to the half it was.
|
|
59
|
+
*/
|
|
60
|
+
const SHEET_RESTS = [
|
|
61
|
+
{ height: "52%", share: 0.52, said: "Half of the screen" },
|
|
62
|
+
{ height: "66%", share: 0.66, said: "Two thirds of the screen" },
|
|
63
|
+
{ height: "calc(100% - 56px)", share: 1, said: "Nearly all of the screen" },
|
|
64
|
+
];
|
|
65
|
+
/** The rest a sheet opens at: two thirds. */
|
|
66
|
+
const OPENS_AT = 1;
|
|
67
|
+
/** What a sheet was left at, for the next one to open at — this page's, not kept. */
|
|
68
|
+
let leftAt = OPENS_AT;
|
|
69
|
+
function useSheetRest() {
|
|
70
|
+
const [rest, setRest] = useState(leftAt);
|
|
71
|
+
return [
|
|
72
|
+
rest,
|
|
73
|
+
(next) => {
|
|
74
|
+
leftAt = next;
|
|
75
|
+
setRest(next);
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
/** How tall each rest stands in this picture, in pixels: the last is the picture less the strip of map it leaves. */
|
|
80
|
+
const restsIn = (picture) => SHEET_RESTS.map((one) => (one.share === 1 ? picture - 56 : picture * one.share));
|
|
81
|
+
/*
|
|
82
|
+
* THE HANDLE: a finger drags the sheet and it comes to rest at the nearest
|
|
83
|
+
* of the three; the keyboard's arrows (and Home, End) step between them; a
|
|
84
|
+
* screen reader hears a separator that says how much of the screen the sheet
|
|
85
|
+
* takes. While the finger moves only the sheet's own height follows it —
|
|
86
|
+
* the map is laid out again once, when the sheet comes to rest.
|
|
87
|
+
*/
|
|
88
|
+
function SheetHandle({ region, rest, setRest, label }) {
|
|
89
|
+
const held = useRef(null);
|
|
90
|
+
const lay = (to) => setRest(Math.max(0, Math.min(2, to)));
|
|
91
|
+
return (_jsx("div", { role: "separator", "aria-orientation": "horizontal", "aria-label": `How much of the screen ${label} takes`, "aria-valuemin": 0, "aria-valuemax": 2, "aria-valuenow": rest, "aria-valuetext": SHEET_RESTS[rest].said, tabIndex: 0, "data-testid": "map-panel-handle", "data-graview-rest": rest, title: "Drag to see more or less of the map", onKeyDown: (event) => {
|
|
92
|
+
const to = event.key === "ArrowUp" ? rest + 1 : event.key === "ArrowDown" ? rest - 1 : event.key === "Home" ? 0 : event.key === "End" ? 2 : null;
|
|
93
|
+
if (to === null)
|
|
94
|
+
return;
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
lay(to);
|
|
97
|
+
}, onPointerDown: (event) => {
|
|
98
|
+
const panel = region.current;
|
|
99
|
+
const picture = panel?.parentElement?.getBoundingClientRect().height ?? 0;
|
|
100
|
+
if (!panel || picture <= 0 || event.button !== 0)
|
|
101
|
+
return;
|
|
102
|
+
event.stopPropagation();
|
|
103
|
+
held.current = { id: event.pointerId, from: event.clientY, height: panel.getBoundingClientRect().height, rests: restsIn(picture) };
|
|
104
|
+
panel.style.transition = "none";
|
|
105
|
+
try {
|
|
106
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// A pointer the browser no longer holds: the drag goes on without the capture.
|
|
110
|
+
}
|
|
111
|
+
}, onPointerMove: (event) => {
|
|
112
|
+
const drag = held.current;
|
|
113
|
+
const panel = region.current;
|
|
114
|
+
if (!drag || !panel || event.pointerId !== drag.id)
|
|
115
|
+
return;
|
|
116
|
+
const rests = drag.rests;
|
|
117
|
+
panel.style.height = `${Math.round(Math.max(rests[0] - 24, Math.min(rests[2], drag.height + drag.from - event.clientY)))}px`;
|
|
118
|
+
}, onPointerUp: (event) => {
|
|
119
|
+
const drag = held.current;
|
|
120
|
+
const panel = region.current;
|
|
121
|
+
held.current = null;
|
|
122
|
+
if (!drag || !panel)
|
|
123
|
+
return;
|
|
124
|
+
const now = panel.getBoundingClientRect().height;
|
|
125
|
+
panel.style.transition = "";
|
|
126
|
+
panel.style.height = "";
|
|
127
|
+
// A press with no drag steps up one rest, and from the top back to where it opens; a drag comes to rest at the nearest.
|
|
128
|
+
if (Math.abs(event.clientY - drag.from) < 6)
|
|
129
|
+
lay(rest === 2 ? OPENS_AT : rest + 1);
|
|
130
|
+
else
|
|
131
|
+
lay(drag.rests.reduce((best, at, i) => (Math.abs(at - now) < Math.abs(drag.rests[best] - now) ? i : best), 0));
|
|
132
|
+
}, onPointerCancel: () => {
|
|
133
|
+
const panel = region.current;
|
|
134
|
+
held.current = null;
|
|
135
|
+
if (panel) {
|
|
136
|
+
panel.style.transition = "";
|
|
137
|
+
panel.style.height = "";
|
|
138
|
+
}
|
|
139
|
+
}, style: { flex: "0 0 auto", display: "flex", justifyContent: "center", alignItems: "center", height: 22, cursor: "ns-resize", touchAction: "none" }, children: _jsx("span", { "aria-hidden": "true", style: { width: 40, height: 4, borderRadius: 2, background: "var(--graview-edge-strong, var(--graview-edge))" } }) }));
|
|
140
|
+
}
|
|
51
141
|
/* ------------------------------------------------------------- the frame */
|
|
52
|
-
function PanelFrame({ label, wide, testId, head, onClose, children,
|
|
142
|
+
function PanelFrame({ label, wide, testId, head, onClose, children, }) {
|
|
53
143
|
const region = useRef(null);
|
|
54
144
|
const [sheet, setSheet] = useState(false);
|
|
145
|
+
const [rest, setRest] = useSheetRest();
|
|
146
|
+
const sheetHeight = SHEET_RESTS[rest].height;
|
|
55
147
|
/* A PHONE'S PANEL is a sheet, decided by the box it is drawn in, not the window. */
|
|
56
148
|
useLayoutEffect(() => {
|
|
57
149
|
const box = region.current?.parentElement;
|
|
@@ -120,9 +212,9 @@ function PanelFrame({ label, wide, testId, head, onClose, children, sheetHeight,
|
|
|
120
212
|
borderRadius: "var(--graview-radius, 12px)",
|
|
121
213
|
boxShadow: "var(--graview-lift-high)",
|
|
122
214
|
...(sheet
|
|
123
|
-
? { left: PANEL_GAP, right: PANEL_GAP, bottom: `calc(${PANEL_GAP} + env(safe-area-inset-bottom, 0px))`, height: sheetHeight }
|
|
215
|
+
? { left: PANEL_GAP, right: PANEL_GAP, bottom: `calc(${PANEL_GAP} + env(safe-area-inset-bottom, 0px))`, height: sheetHeight, transition: "height 180ms ease-out" }
|
|
124
216
|
: { top: PANEL_GAP, right: PANEL_GAP, bottom: PANEL_GAP, width: wide }),
|
|
125
|
-
}, children: [sheet ? (_jsx("style", { children: `:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${sheetHeight} + 2 * ${PANEL_GAP} + env(safe-area-inset-bottom, 0px)); }` })) : (_jsx("style", { children: `:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${wide} + 2 * ${PANEL_GAP}); }` })), _jsxs("header", { style: { display: "flex", alignItems: "flex-start", gap: 10, padding: "14px 14px 10px 18px", borderBottom: "1px solid var(--graview-edge)" }, children: [_jsx("div", { style: { flex: "1 1 auto", minWidth: 0 }, children: head }), _jsx("button", { type: "button", "data-testid": "map-panel-close", "aria-label": "Close", title: "Close (Escape)", onClick: onClose, style: { flex: "0 0 auto", minWidth: 32, height: 32, borderRadius: 8, fontSize: "1.1rem", lineHeight: 1 }, children: "\u00D7" })] }), _jsx("div", { style: { flex: "1 1 auto", minHeight: 0, overflow: "auto" }, children: children })] }));
|
|
217
|
+
}, children: [sheet ? (_jsx("style", { children: `:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${sheetHeight} + 2 * ${PANEL_GAP} + env(safe-area-inset-bottom, 0px)); }` })) : (_jsx("style", { children: `:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${wide} + 2 * ${PANEL_GAP}); }` })), sheet ? _jsx(SheetHandle, { region: region, rest: rest, setRest: setRest, label: label }) : null, _jsxs("header", { style: { display: "flex", alignItems: "flex-start", gap: 10, padding: sheet ? "4px 14px 10px 18px" : "14px 14px 10px 18px", borderBottom: "1px solid var(--graview-edge)" }, children: [_jsx("div", { style: { flex: "1 1 auto", minWidth: 0 }, children: head }), _jsx("button", { type: "button", "data-testid": "map-panel-close", "aria-label": "Close", title: "Close (Escape)", onClick: onClose, style: { flex: "0 0 auto", minWidth: 32, height: 32, borderRadius: 8, fontSize: "1.1rem", lineHeight: 1 }, children: "\u00D7" })] }), _jsx("div", { style: { flex: "1 1 auto", minHeight: 0, overflow: "auto" }, children: children })] }));
|
|
126
218
|
}
|
|
127
219
|
const eyebrow = { fontSize: "0.75rem", letterSpacing: "0.09em", textTransform: "uppercase", color: "var(--graview-ink-faint)" };
|
|
128
220
|
const title = { margin: "2px 0 0", fontSize: "1.125rem", fontWeight: 600, lineHeight: 1.3, overflowWrap: "anywhere" };
|
|
@@ -230,7 +322,7 @@ function LensPanel({ kind }) {
|
|
|
230
322
|
// What a rule names, marked in the lens where it stands, as its own place marks it.
|
|
231
323
|
const flagged = useFlagged();
|
|
232
324
|
const close = () => go(withWithin(withFocus(view, null), "view", null));
|
|
233
|
-
return (_jsxs(PanelFrame, { label: named, testId: "lens-panel", wide: "min(max(440px, 46%), 760px)",
|
|
325
|
+
return (_jsxs(PanelFrame, { label: named, testId: "lens-panel", wide: "min(max(440px, 46%), 760px)", onClose: close, head: derived ? null : _jsxs(_Fragment, { children: [_jsx("div", { style: eyebrow, children: pluralLabel(store.schema, kind) }), _jsx("h2", { style: title, "data-testid": "lens-panel-title", children: named }), _jsxs("p", { style: quiet, children: [counted(store.schema, kind, members.length), definition?.description ? ` · ${definition.description}` : ""] }), place ? (_jsx("div", { style: { marginTop: 10 }, children: _jsx("button", { type: "button", "data-testid": "lens-panel-open", style: pressStyle, title: `Open ${named} on its own`, onClick: () => go(withPicture(view, kind, place.as)), children: "Open \u2197" }) })) : null] }), children: [_jsx("style", { children: `.graview-ground[data-graview-altitude] .graview-plot:not([data-graview-plot="${kindCardId(kind)}"]) { opacity: 0.35; }
|
|
234
326
|
.graview-ground[data-graview-altitude] [data-graview-view^="kind:"]:not([data-graview-view="${kindCardId(kind)}"]) { opacity: 0.4; }` }), _jsx("div", { "data-graview-lens": place?.as ?? "",
|
|
235
327
|
/*
|
|
236
328
|
* THE LENS TAKES THE PANEL'S REMAINING HEIGHT. A grid whose one row
|
|
@@ -316,7 +408,7 @@ function RecordPanel({ id }) {
|
|
|
316
408
|
const ownCard = Card !== undefined && !isDefaultView(Card);
|
|
317
409
|
/* A record risen from (in focus, not chosen) is put away by leaving it, as a lens is. */
|
|
318
410
|
const close = () => (view.focusId === id ? go({ ...withFocus(view, null), selection: [] }) : setSelection([]));
|
|
319
|
-
return (_jsxs(PanelFrame, { label: `${name(id)}: its links`, testId: "record-panel", wide: ownCard ? "min(max(440px, 46%), 760px)" : "min(360px, 40%)",
|
|
411
|
+
return (_jsxs(PanelFrame, { label: `${name(id)}: its links`, testId: "record-panel", wide: ownCard ? "min(max(440px, 46%), 760px)" : "min(360px, 40%)", onClose: close, head: _jsxs(_Fragment, { children: [_jsx("div", { style: eyebrow, children: noun }), _jsx("h2", { style: title, "data-testid": "record-panel-title", children: name(id) }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginTop: 10 }, children: [_jsx("button", { type: "button", "data-testid": "record-panel-go", style: pressStyle, onClick: (event) => {
|
|
320
412
|
go(travelTo(view, id));
|
|
321
413
|
handTheKeyboardTo(id, event.currentTarget);
|
|
322
414
|
}, children: "Go to it" }), _jsx(ActsButton, { on: id, about: name(id) }), _jsxs("button", { type: "button", "data-testid": "record-panel-district", style: pressStyle, onClick: () => setSelection([kindCardId(kind)]), children: ["All ", pluralLabel(store.schema, kind).toLowerCase()] })] })] }), children: [_jsx("div", { "data-graview-record-card": id, style: { padding: "8px 18px 0" }, children: ownCard ? (_jsx(ViewBoundary, { kind: kind, children: _jsx(Card, { node: node, fidelity: "full", cardinality: "one", mode: "fullscreen", selected: false }) })) : (_jsx(Fields, { id: id, shown: [name(id)] })) }), groups.length === 0 ? _jsx("p", { style: { ...quiet, margin: "14px 18px" }, children: "No links yet." }) : null, groups.map((group) => (_jsxs("section", { "aria-label": group.words, "data-graview-links": group.edge, children: [_jsxs("h3", { style: heading, children: [group.words.charAt(0).toUpperCase() + group.words.slice(1), " ", _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-faint)" }, children: ["\u00B7 ", group.others.length] })] }), _jsx("ul", { style: listStyle, children: group.others.map((other) => (_jsx("li", { children: _jsxs("button", { type: "button", className: "graview-map-panel-row", "data-graview-record": other, style: rowStyle, onClick: () => setSelection([other]),
|
|
@@ -389,7 +481,7 @@ function DistrictPanel({ kind }) {
|
|
|
389
481
|
const plural = pluralLabel(store.schema, kind);
|
|
390
482
|
const words = narrow.trim().toLowerCase();
|
|
391
483
|
const shown = words ? members.filter((member) => member.name.toLowerCase().includes(words)) : members;
|
|
392
|
-
return (_jsxs(PanelFrame, { label: plural, testId: "district-panel", wide: "min(360px, 40%)",
|
|
484
|
+
return (_jsxs(PanelFrame, { label: plural, testId: "district-panel", wide: "min(360px, 40%)", onClose: () => setSelection([]), head: _jsxs(_Fragment, { children: [_jsx("div", { style: eyebrow, children: "District" }), _jsx("h2", { style: title, "data-testid": "district-panel-title", children: plural }), _jsxs("p", { style: quiet, children: [counted(store.schema, kind, members.length), definition?.description ? ` · ${definition.description}` : ""] }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginTop: 10 }, children: [_jsx("button", { type: "button", "data-testid": "district-panel-go", style: pressStyle, onClick: () => go({ ...withFocus(withOverview(view, false), aggregateId(kind)), relation: null }), children: "Go in" }), _jsx(ActsButton, { on: kindCardId(kind), about: `the ${plural.toLowerCase()}` })] })] }), children: [problems.length > 0 ? (_jsxs("section", { "aria-label": "Problems", "data-testid": "district-problems", "data-graview-problems": problems.length, children: [_jsx("style", { children: `${lit.map((id) => `.graview-ground[data-graview-altitude] .graview-building[data-graview-building="${CSS.escape(id)}"] polygon`).join(",\n")} { stroke: var(--graview-accent); stroke-width: 2.2; stroke-opacity: 1; }` }), _jsxs("h3", { ref: problemsHead, tabIndex: -1, "data-testid": "district-problems-heading", style: { display: "flex", alignItems: "baseline", gap: 8, margin: 0, padding: "14px 18px 8px", fontSize: "0.9375rem", fontWeight: 600, color: "var(--graview-warn)", borderTop: "1px solid var(--graview-edge)", scrollMarginTop: 0, outlineOffset: -2 }, children: [_jsx("span", { "aria-hidden": "true", children: flag }), _jsx("span", { style: { color: "var(--graview-ink)" }, children: problemsNamed(problems.length, plural) })] }), _jsx("ol", { style: listStyle, "data-testid": "district-problem-rows", children: _jsx(Suspense, { fallback: null, children: _jsx(ProblemRows, { violations: problems, pick: (violation) => {
|
|
393
485
|
const id = violation.subjectId ?? violation.nodeIds[0];
|
|
394
486
|
if (id !== undefined)
|
|
395
487
|
setSelection([id]);
|
package/dist/map-panel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-panel.js","sourceRoot":"","sources":["../src/map-panel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-panel.js","sourceRoot":"","sources":["../src/map-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HostAi } from "@graview/tools";
|
|
2
|
+
/**
|
|
3
|
+
* THE FAST SLOT RANKS WHAT IS TYPED IN THE MENU (Roadmap f-menu-type-anything).
|
|
4
|
+
*
|
|
5
|
+
* The plain word-start match (`menuMatches`) answers on the first key with
|
|
6
|
+
* no wait. Where the host gave a Fast slot (Jev, or its `decide`), a pause
|
|
7
|
+
* in the typing asks it one Choice — which of the menu's rows the words
|
|
8
|
+
* mean — and its answer refines the list: a row it finds likely is shown
|
|
9
|
+
* though no word of it begins with what was typed ("complete" finds
|
|
10
|
+
* "Finish it"), and its best is the row lit. Debounced, never in the way of
|
|
11
|
+
* a key: the words changed, the answer on its way is dropped and nothing
|
|
12
|
+
* is asked until the typing rests again. No Fast slot, no ask: the local
|
|
13
|
+
* match alone.
|
|
14
|
+
*/
|
|
15
|
+
/** One row the menu could show, by its key (`act:<id>`, `item:<id>`) and its words. */
|
|
16
|
+
export interface MenuRankRow {
|
|
17
|
+
readonly key: string;
|
|
18
|
+
readonly label: string;
|
|
19
|
+
}
|
|
20
|
+
/** How long the typing rests before the Fast slot is asked, and how likely a row must be to be shown for it. */
|
|
21
|
+
export declare const MENU_RANK_REST_MS = 250;
|
|
22
|
+
export declare const MENU_RANK_FLOOR = 0.2;
|
|
23
|
+
/** The Fast slot's chance for each row the words could mean, once it has answered for these words; null before, and with no Fast slot. */
|
|
24
|
+
export declare function useFastRank(ai: HostAi | undefined, words: string, rows: readonly MenuRankRow[]): ReadonlyMap<string, number> | null;
|
|
25
|
+
//# sourceMappingURL=menu-rank.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-rank.d.ts","sourceRoot":"","sources":["../src/menu-rank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;;;;;;;;;;GAYG;AAEH,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,gHAAgH;AAChH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AAKnC,0IAA0I;AAC1I,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA0CnI"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from "react";
|
|
2
|
+
/** How long the typing rests before the Fast slot is asked, and how likely a row must be to be shown for it. */
|
|
3
|
+
export const MENU_RANK_REST_MS = 250;
|
|
4
|
+
export const MENU_RANK_FLOOR = 0.2;
|
|
5
|
+
/** The Fast slot the host gave, or its `decide`, where AI is not off. */
|
|
6
|
+
const fastSlot = (ai) => (ai === undefined || ai.off ? undefined : (ai.fast ?? (ai.decide ? { model: ai.name ?? "decide", decide: ai.decide } : undefined)));
|
|
7
|
+
/** The Fast slot's chance for each row the words could mean, once it has answered for these words; null before, and with no Fast slot. */
|
|
8
|
+
export function useFastRank(ai, words, rows) {
|
|
9
|
+
const [ranked, setRanked] = useState(null);
|
|
10
|
+
const held = useRef(rows);
|
|
11
|
+
held.current = rows;
|
|
12
|
+
const rowsSaid = rows.map((row) => `${row.key}\u0000${row.label}`).join("\u0001");
|
|
13
|
+
const fast = fastSlot(ai);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const asked = words.trim();
|
|
16
|
+
if (!fast || asked === "" || held.current.length === 0)
|
|
17
|
+
return;
|
|
18
|
+
let live = true;
|
|
19
|
+
const keyed = new Map(held.current.map((row, at) => [`r${at + 1}`, row]));
|
|
20
|
+
const timer = setTimeout(() => {
|
|
21
|
+
void fast
|
|
22
|
+
// Jev's own Choice, with "none of these": words that mean no row light none.
|
|
23
|
+
.decide({ typed: asked }, { row: { type: "choice", instructions: `Which of these menu rows does somebody typing “${asked}” mean?`, criteria: { ...Object.fromEntries([...keyed].map(([key, row]) => [key, row.label])), none: "None of these rows" } } })
|
|
24
|
+
.then((decided) => {
|
|
25
|
+
ai?.meter?.({ tier: "fast", model: fast.model, inputTokens: decided.usage.inputTokens, outputTokens: decided.usage.outputTokens, interaction: "menu" });
|
|
26
|
+
const answer = decided.answers["row"];
|
|
27
|
+
if (!live || answer?.type !== "choice")
|
|
28
|
+
return;
|
|
29
|
+
const chances = new Map();
|
|
30
|
+
for (const [key, chance] of Object.entries(answer.probabilities)) {
|
|
31
|
+
const row = keyed.get(key);
|
|
32
|
+
if (row)
|
|
33
|
+
chances.set(row.key, chance);
|
|
34
|
+
}
|
|
35
|
+
// "None of these": the local match stands alone.
|
|
36
|
+
if (answer.choice === "none")
|
|
37
|
+
return setRanked({ words: asked, chances: new Map() });
|
|
38
|
+
const chosen = keyed.get(answer.choice);
|
|
39
|
+
if (chosen && !chances.has(chosen.key))
|
|
40
|
+
chances.set(chosen.key, answer.confidence);
|
|
41
|
+
setRanked({ words: asked, chances });
|
|
42
|
+
})
|
|
43
|
+
// A Fast slot that fails leaves the local match, which already answered.
|
|
44
|
+
.catch(() => undefined);
|
|
45
|
+
}, MENU_RANK_REST_MS);
|
|
46
|
+
return () => {
|
|
47
|
+
live = false;
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
};
|
|
50
|
+
// Asked again when the words or the rows change; the slot itself is the host's, fixed for the page.
|
|
51
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
52
|
+
}, [words, rowsSaid, fast === undefined]);
|
|
53
|
+
// An answer for other words than these is never shown.
|
|
54
|
+
return ranked !== null && ranked.words === words.trim() ? ranked.chances : null;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=menu-rank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-rank.js","sourceRoot":"","sources":["../src/menu-rank.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { HostAi } from "@graview/tools";
|
|
2
|
+
/** A suggestion as the menu draws it. */
|
|
3
|
+
export interface MenuSuggestion {
|
|
4
|
+
readonly key: string;
|
|
5
|
+
/** The act alone, in words: never "like last time". */
|
|
6
|
+
readonly label: string;
|
|
7
|
+
readonly mode: "chat" | "better";
|
|
8
|
+
readonly source: "told" | "act" | "nudge";
|
|
9
|
+
}
|
|
10
|
+
/** An act as the menu's rows offer it: its label, what it still asks, and what it was asked of. */
|
|
11
|
+
interface ActOffered {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly label: string;
|
|
14
|
+
readonly destructive?: boolean;
|
|
15
|
+
readonly setsAside?: true;
|
|
16
|
+
readonly ties?: boolean;
|
|
17
|
+
readonly provider: string;
|
|
18
|
+
readonly open: readonly {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly optional?: boolean;
|
|
21
|
+
readonly shape?: {
|
|
22
|
+
readonly type: string;
|
|
23
|
+
readonly options?: readonly string[];
|
|
24
|
+
};
|
|
25
|
+
}[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* AN ACT FILLED IN, NEVER THE ROW AGAIN. A suggestion that says "Set the
|
|
29
|
+
* status" over a row that says "Set the status …" offers nothing the rows
|
|
30
|
+
* do not; a suggestion is the act with its answer in it — "Set the status
|
|
31
|
+
* to Doing", the next of a choice after the one the record holds — or an
|
|
32
|
+
* act that asks nothing said of the record by its name ("Mark “Book the
|
|
33
|
+
* hall” done" for "Mark it done", "Finish “Book the van”"). An act whose answer cannot be guessed
|
|
34
|
+
* (a name, a date, another record) is left to its row, as is one that
|
|
35
|
+
* sets the record aside or loses it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function filledActs(acts: readonly ActOffered[], record: Readonly<Record<string, unknown>> | undefined, optionWords?: Readonly<Record<string, Readonly<Record<string, string>>>>, name?: string): MenuSuggestion[];
|
|
38
|
+
/** What a suggestion would say that a row under it already says as it is: dropped. */
|
|
39
|
+
export declare function notARow(candidates: readonly MenuSuggestion[], rows: readonly string[]): MenuSuggestion[];
|
|
40
|
+
/** How many are shown: at most three, and the room for them held from the menu's first frame. */
|
|
41
|
+
export declare const SUGGESTED_MOST = 3;
|
|
42
|
+
/**
|
|
43
|
+
* The suggestions shown, in the Fast slot's order once it has answered for
|
|
44
|
+
* this menu, each tagged by it; held as they are while `still` (the pointer
|
|
45
|
+
* on a row). `asked` is what the menu is on, for the question.
|
|
46
|
+
*/
|
|
47
|
+
export declare function useSuggested(ai: HostAi | undefined, candidates: readonly MenuSuggestion[], asked: {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
readonly opened: unknown;
|
|
50
|
+
readonly better: boolean;
|
|
51
|
+
readonly depends?: object;
|
|
52
|
+
}, still: boolean): readonly MenuSuggestion[];
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=menu-suggested.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-suggested.d.ts","sourceRoot":"","sources":["../src/menu-suggested.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAe7C,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;CAC3C;AAED,mGAAmG;AACnG,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CACpK;AAKD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAwB5N;AAED,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,EAAE,CAGxG;AAED,iGAAiG;AACjG,eAAO,MAAM,cAAc,IAAI,CAAC;AAyBhC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,cAAc,EAAE,CAyDtP"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
/** A label as a row says it, folded to compare: no "…", no case, no spare spaces. */
|
|
3
|
+
const folded = (label) => label.replace(/\s*…\s*$/u, "").replace(/\s+/g, " ").trim().toLowerCase();
|
|
4
|
+
/**
|
|
5
|
+
* AN ACT FILLED IN, NEVER THE ROW AGAIN. A suggestion that says "Set the
|
|
6
|
+
* status" over a row that says "Set the status …" offers nothing the rows
|
|
7
|
+
* do not; a suggestion is the act with its answer in it — "Set the status
|
|
8
|
+
* to Doing", the next of a choice after the one the record holds — or an
|
|
9
|
+
* act that asks nothing said of the record by its name ("Mark “Book the
|
|
10
|
+
* hall” done" for "Mark it done", "Finish “Book the van”"). An act whose answer cannot be guessed
|
|
11
|
+
* (a name, a date, another record) is left to its row, as is one that
|
|
12
|
+
* sets the record aside or loses it.
|
|
13
|
+
*/
|
|
14
|
+
export function filledActs(acts, record, optionWords = {}, name) {
|
|
15
|
+
if (!record)
|
|
16
|
+
return [];
|
|
17
|
+
const out = [];
|
|
18
|
+
const named = [];
|
|
19
|
+
for (const act of acts) {
|
|
20
|
+
// A rule's repair is among the likeliest ("Finish “Pay the deposit”" where it is overdue); what loses or sets aside the record is not.
|
|
21
|
+
if (act.destructive || act.setsAside || act.ties)
|
|
22
|
+
continue;
|
|
23
|
+
const asks = act.open.filter((one) => !one.optional);
|
|
24
|
+
if (asks.length === 0 && act.open.length === 0 && name) {
|
|
25
|
+
// "it", "this" or "this one" in the act's words is the record, by its name; else the name follows the act ("Finish “Book the van”").
|
|
26
|
+
const said = act.label.replace(/\b(it|this one|this)\b/u, `“${name}”`);
|
|
27
|
+
named.push({ key: `act:${act.id}`, label: said !== act.label ? said : `${act.label} “${name}”`, mode: "chat", source: "act" });
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const one = asks[0];
|
|
31
|
+
if (asks.length !== 1 || one?.shape?.type !== "choice" || !one.shape.options || one.shape.options.length < 2)
|
|
32
|
+
continue;
|
|
33
|
+
const options = one.shape.options;
|
|
34
|
+
const now = options.indexOf(String(record[one.name] ?? ""));
|
|
35
|
+
const next = now >= 0 ? options[now + 1] : undefined;
|
|
36
|
+
if (next === undefined)
|
|
37
|
+
continue;
|
|
38
|
+
const word = optionWords[one.name]?.[next] ?? next.replace(/[-_]+/g, " ").replace(/^./u, (first) => first.toUpperCase());
|
|
39
|
+
out.push({ key: `act:${act.id}:${next}`, label: `${act.label.replace(/\s*…\s*$/u, "")} to ${word}`, mode: "chat", source: "act" });
|
|
40
|
+
}
|
|
41
|
+
return [...out, ...named];
|
|
42
|
+
}
|
|
43
|
+
/** What a suggestion would say that a row under it already says as it is: dropped. */
|
|
44
|
+
export function notARow(candidates, rows) {
|
|
45
|
+
const said = new Set(rows.map(folded));
|
|
46
|
+
return candidates.filter((one) => !said.has(folded(one.label)));
|
|
47
|
+
}
|
|
48
|
+
/** How many are shown: at most three, and the room for them held from the menu's first frame. */
|
|
49
|
+
export const SUGGESTED_MOST = 3;
|
|
50
|
+
/** The Fast slot the host gave, or its `decide`, where AI is not off. */
|
|
51
|
+
const fastOf = (ai) => (ai === undefined || ai.off || ai.suggestOnOpen === false ? undefined : (ai.fast ?? (ai.decide ? { model: ai.name ?? "decide", decide: ai.decide } : undefined)));
|
|
52
|
+
/*
|
|
53
|
+
* ASKED ONCE PER THING AND ITS STATE (as the inline AI's suggestions are,
|
|
54
|
+
* FR-186): a menu opened again on the same record — the same object until
|
|
55
|
+
* it changes — or on the same list with nothing changed draws what the Fast
|
|
56
|
+
* slot answered before, in its first frame, and asks nothing.
|
|
57
|
+
*/
|
|
58
|
+
const ANSWERS = /* @__PURE__ */ new WeakMap();
|
|
59
|
+
const answered = (depends, said) => (depends ? ANSWERS.get(depends)?.get(said) : undefined);
|
|
60
|
+
/** The first order, before the Fast slot answers: a nudge first where there is one, then what worked before, then the acts. */
|
|
61
|
+
function firstOrder(candidates) {
|
|
62
|
+
const by = (source) => candidates.filter((one) => one.source === source);
|
|
63
|
+
const [nudges, told, acts] = [by("nudge"), by("told"), by("act")];
|
|
64
|
+
const out = [];
|
|
65
|
+
const longest = Math.max(nudges.length, told.length, acts.length);
|
|
66
|
+
for (let at = 0; at < longest; at++)
|
|
67
|
+
for (const list of [nudges, told, acts])
|
|
68
|
+
if (list[at])
|
|
69
|
+
out.push(list[at]);
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The suggestions shown, in the Fast slot's order once it has answered for
|
|
74
|
+
* this menu, each tagged by it; held as they are while `still` (the pointer
|
|
75
|
+
* on a row). `asked` is what the menu is on, for the question.
|
|
76
|
+
*/
|
|
77
|
+
export function useSuggested(ai, candidates, asked, still) {
|
|
78
|
+
const fast = fastOf(ai);
|
|
79
|
+
const said = candidates.map((one) => `${one.key}\u0000${one.label}`).join("\u0001");
|
|
80
|
+
const [fresh, setAnswer] = useState(null);
|
|
81
|
+
const answer = answered(asked.depends, said) ?? fresh;
|
|
82
|
+
useEffect(() => {
|
|
83
|
+
if (answered(asked.depends, said))
|
|
84
|
+
return;
|
|
85
|
+
setAnswer(null);
|
|
86
|
+
if (!fast || candidates.length === 0 || asked.opened === null || asked.opened === undefined)
|
|
87
|
+
return;
|
|
88
|
+
let live = true;
|
|
89
|
+
const keyed = new Map(candidates.map((one, at) => [`s${at + 1}`, one]));
|
|
90
|
+
const questions = {
|
|
91
|
+
pick: { type: "choice", instructions: `Somebody right-clicked “${asked.name}” in an app. Which of these would they most likely want to do next?`, criteria: Object.fromEntries([...keyed].map(([key, one]) => [key, one.label])) },
|
|
92
|
+
};
|
|
93
|
+
if (asked.better)
|
|
94
|
+
for (const [key, one] of keyed)
|
|
95
|
+
questions[`about_${key}`] = {
|
|
96
|
+
type: "choice",
|
|
97
|
+
instructions: `Is “${one.label}” about how “${asked.name}” looks or is laid out, or about the records in it?`,
|
|
98
|
+
criteria: { look: "How it looks or is laid out: style, size, what each row or card shows, its order or grouping", records: "The records themselves: changing, finishing, adding, assigning or asking about them" },
|
|
99
|
+
};
|
|
100
|
+
void fast
|
|
101
|
+
.decide({ on: asked.name }, questions)
|
|
102
|
+
.then((decided) => {
|
|
103
|
+
ai?.meter?.({ tier: "fast", model: fast.model, inputTokens: decided.usage.inputTokens, outputTokens: decided.usage.outputTokens, interaction: "menu" });
|
|
104
|
+
if (!live)
|
|
105
|
+
return;
|
|
106
|
+
const pick = decided.answers["pick"];
|
|
107
|
+
const chance = (key) => (pick?.type === "choice" ? (pick.probabilities[key] ?? (pick.choice === key ? pick.confidence : 0)) : 0);
|
|
108
|
+
const order = [...keyed.keys()].sort((a, b) => chance(b) - chance(a)).map((key) => keyed.get(key).key);
|
|
109
|
+
const modes = new Map();
|
|
110
|
+
for (const [key, one] of keyed) {
|
|
111
|
+
const about = decided.answers[`about_${key}`];
|
|
112
|
+
if (about?.type === "choice")
|
|
113
|
+
modes.set(one.key, about.choice === "look" ? "better" : "chat");
|
|
114
|
+
}
|
|
115
|
+
const one = { said, order, modes };
|
|
116
|
+
if (asked.depends) {
|
|
117
|
+
const kept = ANSWERS.get(asked.depends) ?? new Map();
|
|
118
|
+
kept.set(said, one);
|
|
119
|
+
ANSWERS.set(asked.depends, kept);
|
|
120
|
+
}
|
|
121
|
+
setAnswer(one);
|
|
122
|
+
})
|
|
123
|
+
.catch(() => undefined);
|
|
124
|
+
return () => {
|
|
125
|
+
live = false;
|
|
126
|
+
};
|
|
127
|
+
// Asked once per menu and per set of candidates; the slot is the host's, fixed for the page.
|
|
128
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
129
|
+
}, [said, asked.opened, asked.depends, fast === undefined]);
|
|
130
|
+
const shown = useMemo(() => {
|
|
131
|
+
const ordered = answer && answer.said === said ? answer.order.map((key) => candidates.find((one) => one.key === key)).filter(Boolean) : firstOrder(candidates);
|
|
132
|
+
return ordered.slice(0, SUGGESTED_MOST).map((one) => ({ ...one, mode: answer?.modes.get(one.key) ?? one.mode }));
|
|
133
|
+
}, [answer, said, candidates]);
|
|
134
|
+
/* Nothing moves under a resting pointer: what was drawn stays until it leaves the rows. */
|
|
135
|
+
const held = useRef(shown);
|
|
136
|
+
if (!still)
|
|
137
|
+
held.current = shown;
|
|
138
|
+
return still ? held.current : shown;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=menu-suggested.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-suggested.js","sourceRoot":"","sources":["../src/menu-suggested.ts"],"names":[],"mappings":"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"}
|