@acornly/ui 0.1.0 → 0.3.0
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 +122 -4
- package/dist/brand.d.ts +50 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +84 -0
- package/dist/brand.js.map +1 -0
- package/dist/card.d.ts +24 -1
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +49 -9
- package/dist/card.js.map +1 -1
- package/dist/chat-model.d.ts +165 -0
- package/dist/chat-model.d.ts.map +1 -0
- package/dist/chat-model.js +576 -0
- package/dist/chat-model.js.map +1 -0
- package/dist/chat-panel.d.ts +36 -0
- package/dist/chat-panel.d.ts.map +1 -0
- package/dist/chat-panel.js +760 -0
- package/dist/chat-panel.js.map +1 -0
- package/dist/chat-picker.d.ts +56 -0
- package/dist/chat-picker.d.ts.map +1 -0
- package/dist/chat-picker.js +284 -0
- package/dist/chat-picker.js.map +1 -0
- package/dist/chat-protocol.d.ts +151 -0
- package/dist/chat-protocol.d.ts.map +1 -0
- package/dist/chat-protocol.js +113 -0
- package/dist/chat-protocol.js.map +1 -0
- package/dist/chat-speech.d.ts +61 -0
- package/dist/chat-speech.d.ts.map +1 -0
- package/dist/chat-speech.js +119 -0
- package/dist/chat-speech.js.map +1 -0
- package/dist/chat.d.ts +148 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +119 -0
- package/dist/chat.js.map +1 -0
- package/dist/compose.d.ts +1 -1
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js.map +1 -1
- package/dist/composer.d.ts +26 -1
- package/dist/composer.d.ts.map +1 -1
- package/dist/composer.js +73 -5
- package/dist/composer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +0 -1
- package/dist/media.js.map +1 -1
- package/dist/painter.d.ts +20 -2
- package/dist/painter.d.ts.map +1 -1
- package/dist/painter.js +41 -6
- package/dist/painter.js.map +1 -1
- package/dist/panel.js +5 -5
- package/dist/parts.d.ts +2 -0
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +2 -0
- package/dist/parts.js.map +1 -1
- package/dist/pins.d.ts.map +1 -1
- package/dist/pins.js +14 -9
- package/dist/pins.js.map +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +14 -34
- package/dist/theme.js.map +1 -1
- package/dist/toolbar.js +3 -3
- package/package.json +11 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-panel.js","sourceRoot":"","sources":["../src/chat-panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Change" on the chat's chip: picking what to ask about, by clicking an outlined item on the page
|
|
3
|
+
* or from the text tree (design doc, section 6). Part of the chat's lazy chunk.
|
|
4
|
+
*/
|
|
5
|
+
import type { ContextSnapshot, Rect } from "./chat-protocol.js";
|
|
6
|
+
/** The attribute an app marks an item's element with. */
|
|
7
|
+
export declare const CONTEXT_ATTRIBUTE = "data-acornly-context";
|
|
8
|
+
/**
|
|
9
|
+
* Where each pickable item is on screen, in viewport pixels: one rectangle per line an element
|
|
10
|
+
* takes (a verse that wraps over three lines is three), clipped to the scrolling boxes it sits in,
|
|
11
|
+
* so nothing is outlined where it cannot be seen. An item may be on several elements.
|
|
12
|
+
*/
|
|
13
|
+
export declare function collectMarks(doc: Document, snapshot: ContextSnapshot, rect?: (id: string) => Rect | null): Map<string, Rect[]>;
|
|
14
|
+
export interface PickOutlines {
|
|
15
|
+
close(): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Shows every marked item over the page, quietly: a light tint on each line it takes, and a thin
|
|
19
|
+
* frame for an item that holds others (a card around its rows). The item under the pointer lights
|
|
20
|
+
* up in full, every line of it together, with its name beside it. Smaller boxes sit above larger
|
|
21
|
+
* ones, so a click picks the innermost item. Escape, or a click outside every box, ends picking
|
|
22
|
+
* with nothing picked.
|
|
23
|
+
*/
|
|
24
|
+
export declare function outlineItems(options: {
|
|
25
|
+
layer: HTMLElement;
|
|
26
|
+
snapshot: ContextSnapshot;
|
|
27
|
+
marks: Map<string, Rect[]>;
|
|
28
|
+
focus: readonly string[];
|
|
29
|
+
labels: {
|
|
30
|
+
hint: string;
|
|
31
|
+
list: string;
|
|
32
|
+
cancel: string;
|
|
33
|
+
};
|
|
34
|
+
onPick(id: string): void;
|
|
35
|
+
onList(): void;
|
|
36
|
+
onCancel(): void;
|
|
37
|
+
}): PickOutlines;
|
|
38
|
+
export interface TextTreeLabels {
|
|
39
|
+
tree: string;
|
|
40
|
+
inFocus: string;
|
|
41
|
+
onScreen: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The text tree: every item, indented by its parent, as an ARIA tree. Arrow keys move (Right to
|
|
45
|
+
* the first child, Left to the parent), Home and End jump, typing jumps to a label, Enter or Space
|
|
46
|
+
* picks. It opens with the current focus selected.
|
|
47
|
+
*/
|
|
48
|
+
export declare function textTree(options: {
|
|
49
|
+
doc: Document;
|
|
50
|
+
snapshot: ContextSnapshot;
|
|
51
|
+
focus: readonly string[];
|
|
52
|
+
onScreen: ReadonlySet<string>;
|
|
53
|
+
labels: TextTreeLabels;
|
|
54
|
+
onPick(id: string): void;
|
|
55
|
+
}): HTMLElement;
|
|
56
|
+
//# sourceMappingURL=chat-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-picker.d.ts","sourceRoot":"","sources":["../src/chat-picker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIhE,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAIxD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,eAAe,EACzB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,GACjC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CA2BrB;AA0DD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,IAAI,IAAI,CAAC;CAClB,GAAG,YAAY,CAsFf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,WAAW,CA4Fd"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { treeRows } from "./chat-protocol.js";
|
|
2
|
+
import { h, styleElement } from "./dom.js";
|
|
3
|
+
/** The attribute an app marks an item's element with. */
|
|
4
|
+
export const CONTEXT_ATTRIBUTE = "data-acornly-context";
|
|
5
|
+
/** Notes' stable key, which counts as a mark when its value is an item's id. */
|
|
6
|
+
const ANCHOR_ATTRIBUTE = "data-ctx-anchor";
|
|
7
|
+
/**
|
|
8
|
+
* Where each pickable item is on screen, in viewport pixels: one rectangle per line an element
|
|
9
|
+
* takes (a verse that wraps over three lines is three), clipped to the scrolling boxes it sits in,
|
|
10
|
+
* so nothing is outlined where it cannot be seen. An item may be on several elements.
|
|
11
|
+
*/
|
|
12
|
+
export function collectMarks(doc, snapshot, rect) {
|
|
13
|
+
const pickable = new Set(snapshot.items.filter((item) => item.pick !== "tree-only").map((item) => item.id));
|
|
14
|
+
const view = doc.defaultView;
|
|
15
|
+
const screen = { x: 0, y: 0, width: view?.innerWidth ?? 0, height: view?.innerHeight ?? 0 };
|
|
16
|
+
const marks = new Map();
|
|
17
|
+
const add = (id, r) => {
|
|
18
|
+
if (!r || r.width <= 0 || r.height <= 0)
|
|
19
|
+
return;
|
|
20
|
+
marks.set(id, [...(marks.get(id) ?? []), r]);
|
|
21
|
+
};
|
|
22
|
+
for (const el of doc.querySelectorAll(`[${CONTEXT_ATTRIBUTE}], [${ANCHOR_ATTRIBUTE}]`)) {
|
|
23
|
+
const id = el.getAttribute(CONTEXT_ATTRIBUTE) ?? el.getAttribute(ANCHOR_ATTRIBUTE) ?? "";
|
|
24
|
+
if (!pickable.has(id))
|
|
25
|
+
continue;
|
|
26
|
+
const area = visibleArea(el, view ? screen : null);
|
|
27
|
+
for (const line of el.getClientRects()) {
|
|
28
|
+
const r = clip({ x: line.left, y: line.top, width: line.width, height: line.height }, area);
|
|
29
|
+
if (r && !covered(doc, el, r))
|
|
30
|
+
add(id, r);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (rect) {
|
|
34
|
+
for (const id of pickable) {
|
|
35
|
+
if (marks.has(id))
|
|
36
|
+
continue;
|
|
37
|
+
add(id, clip(rect(id), view ? screen : null));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return marks;
|
|
41
|
+
}
|
|
42
|
+
/** The part of the screen an element can show in: the viewport, cut by every box that scrolls or clips it. */
|
|
43
|
+
function visibleArea(el, screen) {
|
|
44
|
+
let area = screen;
|
|
45
|
+
const view = el.ownerDocument.defaultView;
|
|
46
|
+
if (!view)
|
|
47
|
+
return area;
|
|
48
|
+
for (let p = el.parentElement; p; p = p.parentElement) {
|
|
49
|
+
const style = view.getComputedStyle(p);
|
|
50
|
+
if (!/auto|scroll|hidden|clip/.test(style.overflowX + style.overflowY))
|
|
51
|
+
continue;
|
|
52
|
+
const box = p.getBoundingClientRect();
|
|
53
|
+
area = clip({ x: box.left, y: box.top, width: box.width, height: box.height }, area);
|
|
54
|
+
if (!area)
|
|
55
|
+
return { x: 0, y: 0, width: 0, height: 0 };
|
|
56
|
+
}
|
|
57
|
+
return area;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Whether something else is drawn over the middle of `r` (a sheet or a panel over the page), so
|
|
61
|
+
* the line cannot be seen or clicked there.
|
|
62
|
+
*/
|
|
63
|
+
function covered(doc, el, r) {
|
|
64
|
+
const hit = doc.elementFromPoint?.(r.x + r.width / 2, r.y + r.height / 2);
|
|
65
|
+
return hit != null && hit !== el && !el.contains(hit) && !hit.contains(el);
|
|
66
|
+
}
|
|
67
|
+
/** `r` cut to `area`; null when nothing of it is left. */
|
|
68
|
+
function clip(r, area) {
|
|
69
|
+
if (!r || !area)
|
|
70
|
+
return r;
|
|
71
|
+
const x = Math.max(r.x, area.x);
|
|
72
|
+
const y = Math.max(r.y, area.y);
|
|
73
|
+
const right = Math.min(r.x + r.width, area.x + area.width);
|
|
74
|
+
const bottom = Math.min(r.y + r.height, area.y + area.height);
|
|
75
|
+
return right > x && bottom > y ? { x, y, width: right - x, height: bottom - y } : null;
|
|
76
|
+
}
|
|
77
|
+
/** Whether `outer` holds all of `inner`. */
|
|
78
|
+
const holds = (outer, inner) => inner.x >= outer.x &&
|
|
79
|
+
inner.y >= outer.y &&
|
|
80
|
+
inner.x + inner.width <= outer.x + outer.width &&
|
|
81
|
+
inner.y + inner.height <= outer.y + outer.height;
|
|
82
|
+
const PICKER_CSS = `
|
|
83
|
+
.ctx-pick-layer { position: fixed; inset: 0; z-index: 2; cursor: crosshair; }
|
|
84
|
+
.ctx-pick-box { all: unset; position: fixed; box-sizing: border-box; border-radius: 4px; cursor: pointer;
|
|
85
|
+
background: color-mix(in srgb, var(--_accent) 9%, transparent);
|
|
86
|
+
box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--_accent) 45%, transparent); }
|
|
87
|
+
.ctx-pick-box[data-holder] { background: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--_accent) 35%, transparent); }
|
|
88
|
+
.ctx-pick-box[data-focus] { background: color-mix(in srgb, var(--_accent) 18%, transparent); }
|
|
89
|
+
.ctx-pick-box[data-hot], .ctx-pick-box:focus-visible { background: color-mix(in srgb, var(--_accent) 26%, transparent);
|
|
90
|
+
box-shadow: 0 0 0 2px var(--_accent); }
|
|
91
|
+
.ctx-pick-tag { position: fixed; padding: 2px 8px; border-radius: 6px; background: var(--_accent); color: var(--_background);
|
|
92
|
+
font-size: 0.8em; line-height: 1.5; white-space: nowrap; pointer-events: none; }
|
|
93
|
+
.ctx-pick-hint { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 24px); box-sizing: border-box; padding: 6px 14px; border-radius: 999px; background: var(--_foreground); color: var(--_background); font-size: 0.86em; }
|
|
94
|
+
.ctx-pick-hint button { all: unset; margin-left: 10px; text-decoration: underline; cursor: pointer; }
|
|
95
|
+
`;
|
|
96
|
+
/**
|
|
97
|
+
* Shows every marked item over the page, quietly: a light tint on each line it takes, and a thin
|
|
98
|
+
* frame for an item that holds others (a card around its rows). The item under the pointer lights
|
|
99
|
+
* up in full, every line of it together, with its name beside it. Smaller boxes sit above larger
|
|
100
|
+
* ones, so a click picks the innermost item. Escape, or a click outside every box, ends picking
|
|
101
|
+
* with nothing picked.
|
|
102
|
+
*/
|
|
103
|
+
export function outlineItems(options) {
|
|
104
|
+
const doc = options.layer.ownerDocument;
|
|
105
|
+
const itemOf = new Map(options.snapshot.items.map((item) => [item.id, item]));
|
|
106
|
+
const boxes = [...options.marks]
|
|
107
|
+
.flatMap(([id, rects]) => rects.map((r) => ({ id, r })))
|
|
108
|
+
.sort((a, b) => b.r.width * b.r.height - a.r.width * a.r.height);
|
|
109
|
+
const overlay = h(doc, "div", { class: "ctx-pick-layer" }, styleElement(doc, PICKER_CSS));
|
|
110
|
+
const tag = h(doc, "div", { class: "ctx-pick-tag", hidden: "" });
|
|
111
|
+
const byId = new Map();
|
|
112
|
+
const light = (id, at) => {
|
|
113
|
+
for (const el of overlay.querySelectorAll("[data-hot]"))
|
|
114
|
+
el.removeAttribute("data-hot");
|
|
115
|
+
if (id === null || !at) {
|
|
116
|
+
tag.hidden = true;
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
for (const el of byId.get(id) ?? [])
|
|
120
|
+
el.setAttribute("data-hot", "");
|
|
121
|
+
const item = itemOf.get(id);
|
|
122
|
+
tag.textContent = [item?.label ?? id, item?.kind].filter(Boolean).join(" · ");
|
|
123
|
+
tag.hidden = false;
|
|
124
|
+
Object.assign(tag.style, {
|
|
125
|
+
left: `${Math.max(4, at.x)}px`,
|
|
126
|
+
top: `${at.y > 28 ? at.y - 26 : at.y + at.height + 4}px`,
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
for (const { id, r } of boxes) {
|
|
130
|
+
const holder = boxes.some((o) => o.id !== id && o.r !== r && holds(r, o.r));
|
|
131
|
+
const box = h(doc, "button", {
|
|
132
|
+
class: "ctx-pick-box",
|
|
133
|
+
type: "button",
|
|
134
|
+
"aria-label": itemOf.get(id)?.label ?? id,
|
|
135
|
+
"data-id": id,
|
|
136
|
+
"data-focus": options.focus.includes(id) ? "" : undefined,
|
|
137
|
+
"data-holder": holder ? "" : undefined,
|
|
138
|
+
});
|
|
139
|
+
Object.assign(box.style, {
|
|
140
|
+
left: `${r.x - 2}px`,
|
|
141
|
+
top: `${r.y - 1}px`,
|
|
142
|
+
width: `${r.width + 4}px`,
|
|
143
|
+
height: `${r.height + 2}px`,
|
|
144
|
+
});
|
|
145
|
+
byId.set(id, [...(byId.get(id) ?? []), box]);
|
|
146
|
+
const first = options.marks.get(id)[0];
|
|
147
|
+
box.addEventListener("pointerenter", () => light(id, first));
|
|
148
|
+
box.addEventListener("focus", () => light(id, first));
|
|
149
|
+
box.addEventListener("pointerleave", () => light(null));
|
|
150
|
+
box.addEventListener("click", (event) => {
|
|
151
|
+
event.stopPropagation();
|
|
152
|
+
finish();
|
|
153
|
+
options.onPick(id);
|
|
154
|
+
});
|
|
155
|
+
overlay.append(box);
|
|
156
|
+
}
|
|
157
|
+
overlay.append(tag);
|
|
158
|
+
const list = h(doc, "button", { type: "button" }, options.labels.list);
|
|
159
|
+
list.addEventListener("click", (event) => {
|
|
160
|
+
event.stopPropagation();
|
|
161
|
+
finish();
|
|
162
|
+
options.onList();
|
|
163
|
+
});
|
|
164
|
+
const cancel = h(doc, "button", { type: "button" }, options.labels.cancel);
|
|
165
|
+
cancel.addEventListener("click", (event) => {
|
|
166
|
+
event.stopPropagation();
|
|
167
|
+
finish();
|
|
168
|
+
options.onCancel();
|
|
169
|
+
});
|
|
170
|
+
overlay.append(h(doc, "div", { class: "ctx-pick-hint" }, options.labels.hint, list, cancel));
|
|
171
|
+
overlay.addEventListener("click", () => {
|
|
172
|
+
finish();
|
|
173
|
+
options.onCancel();
|
|
174
|
+
});
|
|
175
|
+
const onKey = (event) => {
|
|
176
|
+
if (event.key !== "Escape")
|
|
177
|
+
return;
|
|
178
|
+
event.preventDefault();
|
|
179
|
+
finish();
|
|
180
|
+
options.onCancel();
|
|
181
|
+
};
|
|
182
|
+
doc.addEventListener("keydown", onKey, true);
|
|
183
|
+
options.layer.append(overlay);
|
|
184
|
+
let done = false;
|
|
185
|
+
function finish() {
|
|
186
|
+
if (done)
|
|
187
|
+
return;
|
|
188
|
+
done = true;
|
|
189
|
+
doc.removeEventListener("keydown", onKey, true);
|
|
190
|
+
overlay.remove();
|
|
191
|
+
}
|
|
192
|
+
return { close: finish };
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The text tree: every item, indented by its parent, as an ARIA tree. Arrow keys move (Right to
|
|
196
|
+
* the first child, Left to the parent), Home and End jump, typing jumps to a label, Enter or Space
|
|
197
|
+
* picks. It opens with the current focus selected.
|
|
198
|
+
*/
|
|
199
|
+
export function textTree(options) {
|
|
200
|
+
const { doc, snapshot, focus, onScreen, labels } = options;
|
|
201
|
+
const rows = treeRows(snapshot);
|
|
202
|
+
const parents = new Set(snapshot.items.map((item) => item.parent).filter(Boolean));
|
|
203
|
+
const tree = h(doc, "ul", { role: "tree", "aria-label": labels.tree, class: "ctx-chat-tree" });
|
|
204
|
+
const nodes = rows.map(({ item, depth }) => {
|
|
205
|
+
const states = [
|
|
206
|
+
focus.includes(item.id) ? labels.inFocus : "",
|
|
207
|
+
onScreen.has(item.id) ? labels.onScreen : "",
|
|
208
|
+
].filter(Boolean);
|
|
209
|
+
const node = h(doc, "li", {
|
|
210
|
+
role: "treeitem",
|
|
211
|
+
"aria-level": String(depth + 1),
|
|
212
|
+
"aria-selected": focus.includes(item.id) ? "true" : "false",
|
|
213
|
+
"aria-expanded": parents.has(item.id) ? "true" : undefined,
|
|
214
|
+
tabindex: "-1",
|
|
215
|
+
"data-id": item.id,
|
|
216
|
+
}, [item.label, item.kind ?? "", ...states].filter(Boolean).join(", "));
|
|
217
|
+
node.style.paddingInlineStart = `${8 + depth * 14}px`;
|
|
218
|
+
node.addEventListener("click", () => options.onPick(item.id));
|
|
219
|
+
return node;
|
|
220
|
+
});
|
|
221
|
+
tree.append(...nodes);
|
|
222
|
+
const start = Math.max(0, rows.findIndex(({ item }) => focus.includes(item.id)));
|
|
223
|
+
nodes[start]?.setAttribute("tabindex", "0");
|
|
224
|
+
let typed = "";
|
|
225
|
+
let typedAt = 0;
|
|
226
|
+
const move = (from, to) => {
|
|
227
|
+
if (!to)
|
|
228
|
+
return;
|
|
229
|
+
from.setAttribute("tabindex", "-1");
|
|
230
|
+
to.setAttribute("tabindex", "0");
|
|
231
|
+
to.focus();
|
|
232
|
+
};
|
|
233
|
+
tree.addEventListener("keydown", (event) => {
|
|
234
|
+
const current = event.target;
|
|
235
|
+
const i = nodes.indexOf(current);
|
|
236
|
+
if (i < 0)
|
|
237
|
+
return;
|
|
238
|
+
const { item, depth } = rows[i];
|
|
239
|
+
let handled = true;
|
|
240
|
+
switch (event.key) {
|
|
241
|
+
case "ArrowDown":
|
|
242
|
+
move(current, nodes[i + 1]);
|
|
243
|
+
break;
|
|
244
|
+
case "ArrowUp":
|
|
245
|
+
move(current, nodes[i - 1]);
|
|
246
|
+
break;
|
|
247
|
+
case "Home":
|
|
248
|
+
move(current, nodes[0]);
|
|
249
|
+
break;
|
|
250
|
+
case "End":
|
|
251
|
+
move(current, nodes[nodes.length - 1]);
|
|
252
|
+
break;
|
|
253
|
+
case "ArrowRight":
|
|
254
|
+
if (rows[i + 1]?.depth === depth + 1)
|
|
255
|
+
move(current, nodes[i + 1]);
|
|
256
|
+
break;
|
|
257
|
+
case "ArrowLeft":
|
|
258
|
+
move(current, nodes[rows.findIndex(({ item: parent }) => parent.id === item.parent)] ?? undefined);
|
|
259
|
+
break;
|
|
260
|
+
case "Enter":
|
|
261
|
+
case " ":
|
|
262
|
+
options.onPick(item.id);
|
|
263
|
+
break;
|
|
264
|
+
default:
|
|
265
|
+
handled = false;
|
|
266
|
+
if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
267
|
+
const now = Date.now();
|
|
268
|
+
typed = now - typedAt > 700 ? event.key : typed + event.key;
|
|
269
|
+
typedAt = now;
|
|
270
|
+
const lower = typed.toLowerCase();
|
|
271
|
+
// One letter moves on to the next match; more letters refine, so the current row counts.
|
|
272
|
+
const from = typed.length > 1 ? i : i + 1;
|
|
273
|
+
const at = [...rows.slice(from), ...rows.slice(0, from)].find(({ item: row }) => row.label.toLowerCase().startsWith(lower));
|
|
274
|
+
if (at)
|
|
275
|
+
move(current, nodes[rows.indexOf(at)]);
|
|
276
|
+
handled = true;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (handled)
|
|
280
|
+
event.preventDefault();
|
|
281
|
+
});
|
|
282
|
+
return tree;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=chat-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-picker.js","sourceRoot":"","sources":["../src/chat-picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The app context protocol, version 0.1: what an app tells the in-app chat about where the person
|
|
3
|
+
* is (docs/design/app-context-protocol.md). Experimental: it ships with the chat in
|
|
4
|
+
* `@acornly/ui/chat` and moves to `@acornly/core` once the chat's checks pass.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PROTOCOL_VERSION = "0.1";
|
|
7
|
+
/** Limits on one snapshot and one turn (design doc, sections 3 and 10). */
|
|
8
|
+
export declare const CHAT_LIMITS: {
|
|
9
|
+
readonly items: 500;
|
|
10
|
+
readonly around: 50;
|
|
11
|
+
/** Characters of text parts sent with one turn. */
|
|
12
|
+
readonly textChars: 64000;
|
|
13
|
+
readonly images: 4;
|
|
14
|
+
readonly imageBytes: 2000000;
|
|
15
|
+
readonly loadsPerTurn: 10;
|
|
16
|
+
readonly roundsPerTurn: 3;
|
|
17
|
+
readonly turns: 20;
|
|
18
|
+
/** Input tokens a conversation may reach, estimated at four characters a token. */
|
|
19
|
+
readonly conversationTokens: 100000;
|
|
20
|
+
readonly replyTokens: 1024;
|
|
21
|
+
};
|
|
22
|
+
export interface Rect {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
}
|
|
28
|
+
/** Whether a part goes to the model (`send`) or only its item's label does (`label-only`). */
|
|
29
|
+
export type PartUse = "send" | "label-only";
|
|
30
|
+
export type ContentPart = ({
|
|
31
|
+
type: "text";
|
|
32
|
+
text: string;
|
|
33
|
+
format?: "plain" | "markdown" | "latex";
|
|
34
|
+
lang?: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "image";
|
|
37
|
+
url?: string;
|
|
38
|
+
data?: Blob;
|
|
39
|
+
alt: string;
|
|
40
|
+
region?: Rect;
|
|
41
|
+
} | {
|
|
42
|
+
type: "audio";
|
|
43
|
+
url: string;
|
|
44
|
+
transcript?: string;
|
|
45
|
+
at?: {
|
|
46
|
+
start: number;
|
|
47
|
+
end?: number;
|
|
48
|
+
};
|
|
49
|
+
} | {
|
|
50
|
+
type: "video";
|
|
51
|
+
url: string;
|
|
52
|
+
transcript?: string;
|
|
53
|
+
at?: {
|
|
54
|
+
start: number;
|
|
55
|
+
end?: number;
|
|
56
|
+
};
|
|
57
|
+
} | {
|
|
58
|
+
type: "data";
|
|
59
|
+
schema: string;
|
|
60
|
+
value: unknown;
|
|
61
|
+
summary: string;
|
|
62
|
+
}) & {
|
|
63
|
+
use?: PartUse;
|
|
64
|
+
};
|
|
65
|
+
export interface ContextItem {
|
|
66
|
+
/** Stable for the item's life, unique in the snapshot. */
|
|
67
|
+
id: string;
|
|
68
|
+
/** The parent item's id; none for a root. */
|
|
69
|
+
parent?: string;
|
|
70
|
+
/** What a person calls it, short: "Step 2", "John 3:16". */
|
|
71
|
+
label: string;
|
|
72
|
+
/** The app's word for what it is: "step", "verse", "place". */
|
|
73
|
+
kind?: string;
|
|
74
|
+
content?: ContentPart[];
|
|
75
|
+
/** True until `load(id)` fills `content`. */
|
|
76
|
+
lazy?: boolean;
|
|
77
|
+
/** Where acorns about it anchor. Omitted: it cannot be kept against. */
|
|
78
|
+
anchor?: {
|
|
79
|
+
source: string;
|
|
80
|
+
quote?: string;
|
|
81
|
+
};
|
|
82
|
+
/** Namespaced concept keys: `wikidata:Q…`, `scholeo:concept/…`. */
|
|
83
|
+
about?: string[];
|
|
84
|
+
/** Default language of its text parts. */
|
|
85
|
+
lang?: string;
|
|
86
|
+
/** How "Change" offers it: outlined on screen (the default) or in the text tree only. */
|
|
87
|
+
pick?: "outline" | "tree-only";
|
|
88
|
+
}
|
|
89
|
+
export interface AroundLink {
|
|
90
|
+
/** An item id `load(id)` can return. */
|
|
91
|
+
id: string;
|
|
92
|
+
/** parent, child, next, prev, related, concept, source. */
|
|
93
|
+
rel: string;
|
|
94
|
+
/** The item it relates to; the focus when omitted. */
|
|
95
|
+
from?: string;
|
|
96
|
+
label: string;
|
|
97
|
+
kind?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface ContextRules {
|
|
100
|
+
never?: string[];
|
|
101
|
+
prefer?: string[];
|
|
102
|
+
/** Hand-back ids offered instead of a refused answer. */
|
|
103
|
+
insteadOffer?: string[];
|
|
104
|
+
guard?: "none" | "callback" | "relay";
|
|
105
|
+
}
|
|
106
|
+
export interface HandBack {
|
|
107
|
+
id: string;
|
|
108
|
+
label: string;
|
|
109
|
+
/** When the model should offer it, for the model only. */
|
|
110
|
+
when: string;
|
|
111
|
+
/** Item kinds it applies to; any item when omitted. */
|
|
112
|
+
kinds?: string[];
|
|
113
|
+
}
|
|
114
|
+
export interface ContextSnapshot {
|
|
115
|
+
protocol: typeof PROTOCOL_VERSION;
|
|
116
|
+
items: ContextItem[];
|
|
117
|
+
focus: string[];
|
|
118
|
+
around?: AroundLink[];
|
|
119
|
+
rules?: ContextRules;
|
|
120
|
+
handBacks?: HandBack[];
|
|
121
|
+
lang?: string;
|
|
122
|
+
}
|
|
123
|
+
/** A snapshot the chat can use, and what was dropped from it, in words for the chip's details. */
|
|
124
|
+
export interface CheckedSnapshot {
|
|
125
|
+
snapshot: ContextSnapshot;
|
|
126
|
+
dropped: string[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Checks a snapshot against the protocol and its limits: items beyond the limit, repeated ids,
|
|
130
|
+
* parents listed after their children, focus ids not in the items, and links beyond the limit
|
|
131
|
+
* are dropped, each named in `dropped`. A snapshot with no usable item throws.
|
|
132
|
+
*/
|
|
133
|
+
export declare function checkSnapshot(input: ContextSnapshot): CheckedSnapshot;
|
|
134
|
+
/** One row of the text tree: an item and how deep it sits. */
|
|
135
|
+
export interface TreeRow {
|
|
136
|
+
item: ContextItem;
|
|
137
|
+
depth: number;
|
|
138
|
+
}
|
|
139
|
+
/** The items in tree order, each with its depth, for the text tree and the model's outline. */
|
|
140
|
+
export declare function treeRows(snapshot: ContextSnapshot): TreeRow[];
|
|
141
|
+
/** The item and its ancestors, nearest first. */
|
|
142
|
+
export declare function lineage(snapshot: ContextSnapshot, id: string): ContextItem[];
|
|
143
|
+
/** The chip's words for a focus: one label, or the first and last joined ("John 3:16 – 3:18"). */
|
|
144
|
+
export declare function focusLabel(snapshot: ContextSnapshot, focus: readonly string[]): string;
|
|
145
|
+
/** Parts that may go to the model. */
|
|
146
|
+
export declare function sendableParts(parts: readonly ContentPart[] | undefined): ContentPart[];
|
|
147
|
+
/** Whether an item has a part kept from the model, so the model is told it is withheld. */
|
|
148
|
+
export declare function hasWithheld(parts: readonly ContentPart[] | undefined): boolean;
|
|
149
|
+
/** The hand-backs that apply to an item, by its kind. */
|
|
150
|
+
export declare function handBacksFor(snapshot: ContextSnapshot, item: ContextItem | undefined): HandBack[];
|
|
151
|
+
//# sourceMappingURL=chat-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-protocol.d.ts","sourceRoot":"","sources":["../src/chat-protocol.ts"],"names":[],"mappings":"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"}
|