@graview/primitives 0.1.63 → 0.1.65
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.js +1 -1
- package/dist/app-bar.js.map +1 -1
- package/dist/app-title.d.ts +8 -0
- package/dist/app-title.d.ts.map +1 -1
- package/dist/app-title.js +39 -3
- package/dist/app-title.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/chat.js.map +1 -1
- package/dist/find.js +3 -3
- package/dist/find.js.map +1 -1
- package/dist/first-look.js +1 -1
- package/dist/first-look.js.map +1 -1
- package/dist/frame.d.ts +1 -1
- 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/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- 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-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 +37 -0
- package/dist/menu-told.d.ts.map +1 -0
- package/dist/menu-told.js +66 -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/pages.d.ts +3 -1
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +3 -1
- package/dist/pages.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-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 +38 -0
- package/dist/section-better.d.ts.map +1 -0
- package/dist/section-better.js +411 -0
- package/dist/section-better.js.map +1 -0
- package/dist/section-door.d.ts +32 -0
- package/dist/section-door.d.ts.map +1 -0
- package/dist/section-door.js +32 -0
- package/dist/section-door.js.map +1 -0
- package/dist/section-menu.d.ts +18 -0
- package/dist/section-menu.d.ts.map +1 -0
- package/dist/section-menu.js +76 -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 +24 -0
- package/dist/section-words.d.ts.map +1 -0
- package/dist/section-words.js +91 -0
- package/dist/section-words.js.map +1 -0
- package/dist/shell.d.ts +7 -0
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +13 -8
- package/dist/shell.js.map +1 -1
- package/dist/subject.js +2 -2
- package/dist/subject.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/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 +218 -18
- package/dist/workbench/inspector.js.map +1 -1
- package/package.json +6 -6
|
@@ -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,17 @@
|
|
|
1
|
+
import type { AnySchema, Principal, Store } from "@graview/core";
|
|
2
|
+
import type { HostAi } from "@graview/tools";
|
|
3
|
+
import type { ToldSuggestion } from "./menu-told.js";
|
|
4
|
+
export type { ToldSuggestion } from "./menu-told.js";
|
|
5
|
+
/**
|
|
6
|
+
* WHAT WORKED BEFORE, OFFERED AS THE MENU IS TYPED IN (Roadmap
|
|
7
|
+
* f-menu-learns) — the door. The menu filters on its own words at the first
|
|
8
|
+
* key, whatever else is here; the suggestions (`menu-told.ts`, with
|
|
9
|
+
* `@graview/core/told`) are fetched apart, on the first key typed or when
|
|
10
|
+
* the page is idle with a menu open, and only where the host keeps
|
|
11
|
+
* tellings (`HostAi.told`). Until they are here the menu offers none.
|
|
12
|
+
*/
|
|
13
|
+
/** How many the menu offers. */
|
|
14
|
+
export declare const TOLD_SUGGESTED_MOST = 2;
|
|
15
|
+
/** The tellings like the words typed in the menu that worked, re-aimed here: at most `most`, before the Fast slot re-ranks them. */
|
|
16
|
+
export declare function useToldSuggestions(ai: HostAi | undefined, store: Store<AnySchema>, principal: Principal, words: string, on: string | undefined, opened: unknown, most?: number): readonly ToldSuggestion[];
|
|
17
|
+
//# sourceMappingURL=menu-told-door.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-told-door.d.ts","sourceRoot":"","sources":["../src/menu-told-door.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;;;GAOG;AAEH,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAMrC,oIAAoI;AACpI,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,SAAI,GAAG,SAAS,cAAc,EAAE,CA6BrM"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WHAT WORKED BEFORE, OFFERED AS THE MENU IS TYPED IN (Roadmap
|
|
4
|
+
* f-menu-learns) — the door. The menu filters on its own words at the first
|
|
5
|
+
* key, whatever else is here; the suggestions (`menu-told.ts`, with
|
|
6
|
+
* `@graview/core/told`) are fetched apart, on the first key typed or when
|
|
7
|
+
* the page is idle with a menu open, and only where the host keeps
|
|
8
|
+
* tellings (`HostAi.told`). Until they are here the menu offers none.
|
|
9
|
+
*/
|
|
10
|
+
/** How many the menu offers. */
|
|
11
|
+
export const TOLD_SUGGESTED_MOST = 2;
|
|
12
|
+
let fetched;
|
|
13
|
+
const fetchMenuTold = () => (fetched ??= import("./told-ui.js").catch((error) => ((fetched = undefined), Promise.reject(error))));
|
|
14
|
+
/** The tellings like the words typed in the menu that worked, re-aimed here: at most `most`, before the Fast slot re-ranks them. */
|
|
15
|
+
export function useToldSuggestions(ai, store, principal, words, on, opened, most = 4) {
|
|
16
|
+
const told = ai && !ai.off ? ai.told : undefined;
|
|
17
|
+
const typing = words.trim() !== "";
|
|
18
|
+
const [read, setRead] = useState(null);
|
|
19
|
+
// Each menu reads them again: what was told since the last one is suggested in the next.
|
|
20
|
+
useEffect(() => setRead(null), [opened]);
|
|
21
|
+
/* Fetched on the first key, or when the page is idle with a menu open: never before the menu filters. */
|
|
22
|
+
const [wanted, setWanted] = useState(false);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!told || opened === null || opened === undefined)
|
|
25
|
+
return;
|
|
26
|
+
const idle = globalThis;
|
|
27
|
+
if (!idle.requestIdleCallback)
|
|
28
|
+
return;
|
|
29
|
+
const asked = idle.requestIdleCallback(() => setWanted(true), { timeout: 3000 });
|
|
30
|
+
return () => idle.cancelIdleCallback?.(asked);
|
|
31
|
+
}, [told, opened]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!told || read || !(typing || wanted))
|
|
34
|
+
return;
|
|
35
|
+
let live = true;
|
|
36
|
+
void fetchMenuTold()
|
|
37
|
+
.then(async (module) => {
|
|
38
|
+
const tellings = await module.readToldHere(told, store, principal);
|
|
39
|
+
if (live)
|
|
40
|
+
setRead({ tellings, module });
|
|
41
|
+
})
|
|
42
|
+
.catch(() => undefined);
|
|
43
|
+
return () => {
|
|
44
|
+
live = false;
|
|
45
|
+
};
|
|
46
|
+
}, [told, typing, wanted, read, store, principal]);
|
|
47
|
+
return useMemo(() => (read && typing ? read.module.toldSuggestionsFrom(read.tellings, store, principal, words, on, most) : []), [read, typing, words, store, principal, on, most]);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=menu-told-door.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-told-door.js","sourceRoot":"","sources":["../src/menu-told-door.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type AnySchema, type Principal, type Store } from "@graview/core";
|
|
2
|
+
import { type Telling, type ToldStore } from "@graview/core/told";
|
|
3
|
+
/**
|
|
4
|
+
* WHAT WORKED BEFORE, OFFERED AS THE MENU IS TYPED IN (Roadmap
|
|
5
|
+
* f-menu-learns): up to two of this app's kept tellings (`HostAi.told`)
|
|
6
|
+
* like the words typed on this kind, that were accepted or 👍 and not
|
|
7
|
+
* excluded — another person's only once enough people's agree
|
|
8
|
+
* (`similarTellings`) — each said as what it did, re-aimed at what the
|
|
9
|
+
* menu is on, as the plain act and nothing else: "Finish the 6 tasks in
|
|
10
|
+
* This week" — never where it came from, which the Studio says. The
|
|
11
|
+
* Fast slot re-ranks them with the menu's rows in the same Choice, at the
|
|
12
|
+
* same rest (`useFastRank`). Chosen, the words are asked on the quick
|
|
13
|
+
* ask's card and previewed like any plan: nothing is applied from here.
|
|
14
|
+
*
|
|
15
|
+
* Retrieval is local and cheap: the tellings are read once a menu is typed
|
|
16
|
+
* in (and kept a few seconds), and compared by words, kind and act. The
|
|
17
|
+
* comparing is `@graview/core/told`'s, fetched with the first typing.
|
|
18
|
+
*/
|
|
19
|
+
export interface ToldSuggestion {
|
|
20
|
+
/** The row's key, as the menu ranks it: `told:<id>`. */
|
|
21
|
+
readonly key: string;
|
|
22
|
+
readonly telling: Telling;
|
|
23
|
+
/** What it would do here, in words. */
|
|
24
|
+
readonly label: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* THE TELLING RE-AIMED AT WHAT THE MENU IS ON: its act's title over the
|
|
28
|
+
* records here, as it was over the records there — the record itself, or
|
|
29
|
+
* the records of its kind it holds; a plan in its own words. Nothing when
|
|
30
|
+
* it cannot be aimed here (no record of the kind it acted on).
|
|
31
|
+
*/
|
|
32
|
+
export declare function reaimed(store: Store<AnySchema>, telling: Telling, on: string | undefined): string | undefined;
|
|
33
|
+
/** What the menu has read: the tellings this reader may be offered. */
|
|
34
|
+
export declare function readToldHere(told: ToldStore, store: Store<AnySchema>, principal: Principal): Promise<readonly Telling[]>;
|
|
35
|
+
/** The tellings like the words typed in the menu that worked, re-aimed here: at most `most`, before the Fast slot re-ranks them. */
|
|
36
|
+
export declare function toldSuggestionsFrom(tellings: readonly Telling[], store: Store<AnySchema>, principal: Principal, words: string, on: string | undefined, most?: number): readonly ToldSuggestion[];
|
|
37
|
+
//# sourceMappingURL=menu-told.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-told.d.ts","sourceRoot":"","sources":["../src/menu-told.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAA+B,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/F;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAcD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAyB7G;AAED,uEAAuE;AACvE,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAE9H;AAED,oIAAoI;AACpI,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,SAAI,GAAG,SAAS,cAAc,EAAE,CAO3L"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { labelOf, pluralOf } from "@graview/core";
|
|
2
|
+
import { similarTellings, toldSeenBy } from "@graview/core/told";
|
|
3
|
+
import { seenOnThisPage, toldListed } from "./told-listed.js";
|
|
4
|
+
const capital = (words) => words.charAt(0).toUpperCase() + words.slice(1);
|
|
5
|
+
/** The kind of what the menu is on: a record's, or a district's (`kind:task`, `aggregate:task`). */
|
|
6
|
+
function kindOn(store, on) {
|
|
7
|
+
if (!on)
|
|
8
|
+
return undefined;
|
|
9
|
+
const node = store.graph.getNode(on);
|
|
10
|
+
if (node)
|
|
11
|
+
return node.kind;
|
|
12
|
+
const district = /^(?:kind|aggregate):(.+)$/.exec(on)?.[1];
|
|
13
|
+
return district && store.schema.tryDefinition(district) ? district : undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* THE TELLING RE-AIMED AT WHAT THE MENU IS ON: its act's title over the
|
|
17
|
+
* records here, as it was over the records there — the record itself, or
|
|
18
|
+
* the records of its kind it holds; a plan in its own words. Nothing when
|
|
19
|
+
* it cannot be aimed here (no record of the kind it acted on).
|
|
20
|
+
*/
|
|
21
|
+
export function reaimed(store, telling, on) {
|
|
22
|
+
const schema = store.schema;
|
|
23
|
+
if (telling.decided.type === "plan")
|
|
24
|
+
return capital(telling.words);
|
|
25
|
+
if (telling.decided.type !== "act")
|
|
26
|
+
return undefined;
|
|
27
|
+
const actName = telling.decided.act;
|
|
28
|
+
const mutation = store.allMutations().find((one) => one.name === actName);
|
|
29
|
+
if (!mutation)
|
|
30
|
+
return undefined;
|
|
31
|
+
const title = mutation.title ?? mutation.name;
|
|
32
|
+
/* "Mark it done" over the records here: "Mark the 6 tasks in This week done" — the act's own words, its object put in. */
|
|
33
|
+
const said = (object) => (/\b(?:it|this|them)\b/i.test(title) ? title.replace(/\b(?:it|this|them)\b/i, object) : `${title} ${object}`);
|
|
34
|
+
const node = on ? store.graph.getNode(on) : undefined;
|
|
35
|
+
const name = node ? labelOf(schema.tryDefinition(node.kind), node) : undefined;
|
|
36
|
+
const kind = telling.reading?.kind ?? telling.target.kind;
|
|
37
|
+
if (!kind || !schema.tryDefinition(kind))
|
|
38
|
+
return undefined;
|
|
39
|
+
if (telling.reading?.which === "itself" || (!telling.reading && node?.kind === kind)) {
|
|
40
|
+
return node && node.kind === kind && name ? capital(said(name)) : undefined;
|
|
41
|
+
}
|
|
42
|
+
const held = node
|
|
43
|
+
? new Set([...store.graph.in(node.id), ...store.graph.out(node.id)].filter((one) => one.kind === kind).map((one) => one.id)).size
|
|
44
|
+
: kindOn(store, on) === kind
|
|
45
|
+
? store.graph.allNodes().filter((one) => one.kind === kind).length
|
|
46
|
+
: 0;
|
|
47
|
+
if (held === 0)
|
|
48
|
+
return undefined;
|
|
49
|
+
const noun = held === 1 ? (schema.tryDefinition(kind)?.noun ?? kind).toLowerCase() : pluralOf(schema, kind).toLowerCase();
|
|
50
|
+
return capital(said(`the ${held} ${noun}${name ? ` in ${name}` : ""}`));
|
|
51
|
+
}
|
|
52
|
+
/** What the menu has read: the tellings this reader may be offered. */
|
|
53
|
+
export async function readToldHere(told, store, principal) {
|
|
54
|
+
return toldSeenBy(await toldListed(told), seenOnThisPage(store, principal));
|
|
55
|
+
}
|
|
56
|
+
/** The tellings like the words typed in the menu that worked, re-aimed here: at most `most`, before the Fast slot re-ranks them. */
|
|
57
|
+
export function toldSuggestionsFrom(tellings, store, principal, words, on, most = 4) {
|
|
58
|
+
if (words.trim() === "")
|
|
59
|
+
return [];
|
|
60
|
+
const kind = kindOn(store, on);
|
|
61
|
+
return similarTellings(tellings, { words, ...(kind ? { kind } : {}) }, { reader: principal, most }).flatMap(({ telling }) => {
|
|
62
|
+
const label = reaimed(store, telling, on);
|
|
63
|
+
return label ? [{ key: `told:${telling.id}`, telling, label }] : [];
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=menu-told.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-told.js","sourceRoot":"","sources":["../src/menu-told.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHAT A WORD TYPED IN THE MENU FINDS (Roadmap f-menu-type-anything): every
|
|
3
|
+
* row whose words begin with what was typed. Each word typed must be the
|
|
4
|
+
* start of one of the row's words, in any order — "copy l" finds "Copy
|
|
5
|
+
* link", "fin" finds "Finish it", "it fin" finds it too — read without case
|
|
6
|
+
* or accents. A plain word-start match, not Find's matcher
|
|
7
|
+
* (`@graview/core/search`): the menu's rows are a dozen sentences already
|
|
8
|
+
* drawn, not records to rank, and the match must be the same on every row
|
|
9
|
+
* — an act, Go, Show, Copy link — whoever drew it.
|
|
10
|
+
*/
|
|
11
|
+
/** A row's words, or the words typed, folded: lower case, no accents, split at anything not a letter or a digit. */
|
|
12
|
+
export declare function menuWords(text: string): readonly string[];
|
|
13
|
+
/** Whether every word typed begins one of the row's words. Nothing typed matches every row. */
|
|
14
|
+
export declare function menuMatches(label: string, typed: string): boolean;
|
|
15
|
+
//# sourceMappingURL=menu-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-words.d.ts","sourceRoot":"","sources":["../src/menu-words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oHAAoH;AACpH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOzD;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHAT A WORD TYPED IN THE MENU FINDS (Roadmap f-menu-type-anything): every
|
|
3
|
+
* row whose words begin with what was typed. Each word typed must be the
|
|
4
|
+
* start of one of the row's words, in any order — "copy l" finds "Copy
|
|
5
|
+
* link", "fin" finds "Finish it", "it fin" finds it too — read without case
|
|
6
|
+
* or accents. A plain word-start match, not Find's matcher
|
|
7
|
+
* (`@graview/core/search`): the menu's rows are a dozen sentences already
|
|
8
|
+
* drawn, not records to rank, and the match must be the same on every row
|
|
9
|
+
* — an act, Go, Show, Copy link — whoever drew it.
|
|
10
|
+
*/
|
|
11
|
+
/** A row's words, or the words typed, folded: lower case, no accents, split at anything not a letter or a digit. */
|
|
12
|
+
export function menuWords(text) {
|
|
13
|
+
return text
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.normalize("NFKD")
|
|
16
|
+
.replace(/[̀-ͯ]/g, "")
|
|
17
|
+
.split(/[^\p{L}\p{N}]+/u)
|
|
18
|
+
.filter(Boolean);
|
|
19
|
+
}
|
|
20
|
+
/** Whether every word typed begins one of the row's words. Nothing typed matches every row. */
|
|
21
|
+
export function menuMatches(label, typed) {
|
|
22
|
+
const wanted = menuWords(typed);
|
|
23
|
+
if (wanted.length === 0)
|
|
24
|
+
return true;
|
|
25
|
+
const words = menuWords(label);
|
|
26
|
+
return wanted.every((word) => words.some((one) => one.startsWith(word)));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=menu-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-words.js","sourceRoot":"","sources":["../src/menu-words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oHAAoH;AACpH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,iBAAiB,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAa;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/pages.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export { hasShape, TextBody, textBlocks, type TextBlock } from "./text-body.js";
|
|
|
28
28
|
export { KindFigure } from "./figure.js";
|
|
29
29
|
export { ownSentence, problemLine, problemTitle, RuleLineView, RuleParts, useLined, useRuleLines } from "./rule-line.js";
|
|
30
30
|
export { useMarkup } from "./markup.js";
|
|
31
|
-
export { AppMark, AppTitle, useFavicon } from "./app-title.js";
|
|
31
|
+
export { AppMark, AppTitle, useFavicon, useThemeColor } from "./app-title.js";
|
|
32
32
|
export { BarActivity } from "./bar-activity.js";
|
|
33
33
|
export { BarSuggested } from "./bar-suggested.js";
|
|
34
34
|
export { AppBar, BarFindContext, barPlaceAt, barPlaces, BAR_HEIGHT, BAR_PHONE, HOME_KEY, HOME_PATH, TOOL, toolStyle, useBarFind } from "./app-bar.js";
|
|
@@ -61,6 +61,8 @@ export { GhostDoor, InlineAiSections, useInlineAiSection } from "./inline-ai-doo
|
|
|
61
61
|
export type { GhostDoorProps } from "./inline-ai-door.js";
|
|
62
62
|
export { useViewTidyingSection, ViewTidyingSections } from "./view-tidying-sections.js";
|
|
63
63
|
export { askToNotify, NotifiedDoor, NotifyButton, NotifyDoor, NotifySections, useNotifiedCount, useNotifySection } from "./notify-door.js";
|
|
64
|
+
export { SectionBetterDoor, SectionBetterSections, useSectionBetterSection } from "./section-door.js";
|
|
65
|
+
export type { SectionAsk, SectionMode } from "./section-door.js";
|
|
64
66
|
export { BoardMoveSections, holdBoard, useBoardMoveSection } from "./board-move-section.js";
|
|
65
67
|
export type { BoardHere } from "./board-move-section.js";
|
|
66
68
|
export type { NotifyAsk } from "./notify-sheet.js";
|
package/dist/pages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClG,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClG,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtJ,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE9G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrH,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3I,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACtG,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1I,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/pages.js
CHANGED
|
@@ -27,7 +27,7 @@ export { hasShape, TextBody, textBlocks } from "./text-body.js";
|
|
|
27
27
|
export { KindFigure } from "./figure.js";
|
|
28
28
|
export { ownSentence, problemLine, problemTitle, RuleLineView, RuleParts, useLined, useRuleLines } from "./rule-line.js";
|
|
29
29
|
export { useMarkup } from "./markup.js";
|
|
30
|
-
export { AppMark, AppTitle, useFavicon } from "./app-title.js";
|
|
30
|
+
export { AppMark, AppTitle, useFavicon, useThemeColor } from "./app-title.js";
|
|
31
31
|
export { BarActivity } from "./bar-activity.js";
|
|
32
32
|
// What tidying suggests, beside Activity on the routed face's bar, fetched only while something waits.
|
|
33
33
|
export { BarSuggested } from "./bar-suggested.js";
|
|
@@ -63,6 +63,8 @@ export { GhostDoor, InlineAiSections, useInlineAiSection } from "./inline-ai-doo
|
|
|
63
63
|
// The place menu's Hide and Delete, and what the places' foot lists (Roadmap f-place-menu-views).
|
|
64
64
|
export { useViewTidyingSection, ViewTidyingSections } from "./view-tidying-sections.js";
|
|
65
65
|
export { askToNotify, NotifiedDoor, NotifyButton, NotifyDoor, NotifySections, useNotifiedCount, useNotifySection } from "./notify-door.js";
|
|
66
|
+
// "Make this better" on a section of a worker view (Roadmap f-make-this-section-better): the menu's section, the outline and the card's door.
|
|
67
|
+
export { SectionBetterDoor, SectionBetterSections, useSectionBetterSection } from "./section-door.js";
|
|
66
68
|
// "Move to ›" on a card on a status board (Roadmap f-board-move-without-buttons).
|
|
67
69
|
export { BoardMoveSections, holdBoard, useBoardMoveSection } from "./board-move-section.js";
|
|
68
70
|
// What AI did on a record, on its page (Roadmap f-activity-ai-entries), fetched with the first entry.
|
package/dist/pages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,gHAAgH;AAChH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,6GAA6G;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,4FAA4F;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,gHAAgH;AAChH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,sKAAsK;AACtK,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
|
package/dist/quick-ask-desk.d.ts
CHANGED
|
@@ -15,16 +15,32 @@ export interface QuickAskOpening {
|
|
|
15
15
|
readonly asked?: string;
|
|
16
16
|
/** Where the keyboard goes back to when the bar is put away. */
|
|
17
17
|
readonly returnTo?: HTMLElement | null;
|
|
18
|
+
/** Where the menu stood, when the card is the menu turned into it: the card opens with this top-left corner and never moves. */
|
|
19
|
+
readonly from?: {
|
|
20
|
+
readonly left: number;
|
|
21
|
+
readonly top: number;
|
|
22
|
+
};
|
|
23
|
+
/** The kept telling a menu's suggestion was taken from (Roadmap f-menu-learns): its words are asked, previewed as any, and the telling they make names it as its example. */
|
|
24
|
+
readonly suggested?: string;
|
|
18
25
|
}
|
|
26
|
+
/** Where a menu stands now, as the card it turns into opens: its top-left corner in the window. */
|
|
27
|
+
export declare const whereMenuStands: (menu: Element | null | undefined) => {
|
|
28
|
+
readonly left: number;
|
|
29
|
+
readonly top: number;
|
|
30
|
+
} | undefined;
|
|
19
31
|
interface Held {
|
|
20
32
|
open: (QuickAskOpening & {
|
|
21
33
|
readonly at: number;
|
|
22
34
|
}) | null;
|
|
23
35
|
drawn: number;
|
|
24
36
|
readonly listeners: Set<() => void>;
|
|
37
|
+
/** Fetches the card and the plan's code ahead of Enter: set by the drawn door, called at the first letter typed in the menu. */
|
|
38
|
+
preload?: () => void;
|
|
25
39
|
}
|
|
26
40
|
export declare const HELD: WeakMap<AiDesk, Held>;
|
|
27
41
|
export declare const heldOf: (desk: AiDesk) => Held;
|
|
42
|
+
/** The quick ask's code fetched before it is asked for, so pressing Enter never waits on it. */
|
|
43
|
+
export declare const preloadQuickAsk: (desk: AiDesk) => void;
|
|
28
44
|
export declare const tell: (held: Held) => void;
|
|
29
45
|
/** Opens the bar (or, with words, an answer card) on this app's desk; null puts it away. */
|
|
30
46
|
export declare function openQuickAsk(desk: AiDesk, opening: QuickAskOpening | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-ask-desk.d.ts","sourceRoot":"","sources":["../src/quick-ask-desk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;;;GAIG;AAEH,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,oGAAoG;IACpG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"quick-ask-desk.d.ts","sourceRoot":"","sources":["../src/quick-ask-desk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;;;GAIG;AAEH,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,oGAAoG;IACpG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,gIAAgI;IAChI,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,6KAA6K;IAC7K,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,mGAAmG;AACnG,eAAO,MAAM,eAAe,GAAI,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,KAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAMpH,CAAC;AAEF,UAAU,IAAI;IACZ,IAAI,EAAE,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACpC,gIAAgI;IAChI,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AACD,eAAO,MAAM,IAAI,uBAA8B,CAAC;AAChD,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,IAIrC,CAAC;AACF,gGAAgG;AAChG,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,IAO9C,CAAC;AACF,eAAO,MAAM,IAAI,GAAI,MAAM,IAAI,SAE9B,CAAC;AAGF,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAIhF;AAQD,mJAAmJ;AACnJ,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGlE;AAGD,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM;iBA/CG,MAAM;UAkD/C"}
|
package/dist/quick-ask-desk.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { useSyncExternalStore } from "react";
|
|
2
|
+
/** Where a menu stands now, as the card it turns into opens: its top-left corner in the window. */
|
|
3
|
+
export const whereMenuStands = (menu) => {
|
|
4
|
+
// The menu as it is drawn: the outermost of a menu inside a menu (the pages' frame around the rows).
|
|
5
|
+
let outer = menu ?? null;
|
|
6
|
+
while (outer?.parentElement?.closest('[data-testid="context-menu"]'))
|
|
7
|
+
outer = outer.parentElement.closest('[data-testid="context-menu"]');
|
|
8
|
+
const box = outer?.getBoundingClientRect();
|
|
9
|
+
return box && box.width > 0 ? { left: box.left, top: box.top } : undefined;
|
|
10
|
+
};
|
|
2
11
|
export const HELD = new WeakMap();
|
|
3
12
|
export const heldOf = (desk) => {
|
|
4
13
|
let held = HELD.get(desk);
|
|
@@ -6,6 +15,17 @@ export const heldOf = (desk) => {
|
|
|
6
15
|
HELD.set(desk, (held = { open: null, drawn: 0, listeners: new Set() }));
|
|
7
16
|
return held;
|
|
8
17
|
};
|
|
18
|
+
/** The quick ask's code fetched before it is asked for, so pressing Enter never waits on it. */
|
|
19
|
+
export const preloadQuickAsk = (desk) => {
|
|
20
|
+
const held = HELD.get(desk);
|
|
21
|
+
if (!held?.preload)
|
|
22
|
+
return;
|
|
23
|
+
// Marked, so a page (and its harness) can tell the fetch began at the first letter.
|
|
24
|
+
if (typeof performance !== "undefined" && typeof performance.mark === "function")
|
|
25
|
+
performance.mark("graview:quick-ask-preload");
|
|
26
|
+
held.preload();
|
|
27
|
+
held.preload = undefined;
|
|
28
|
+
};
|
|
9
29
|
export const tell = (held) => {
|
|
10
30
|
for (const listener of [...held.listeners])
|
|
11
31
|
listener();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-ask-desk.js","sourceRoot":"","sources":["../src/quick-ask-desk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"quick-ask-desk.js","sourceRoot":"","sources":["../src/quick-ask-desk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAwB7C,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAgC,EAA+D,EAAE;IAC/H,qGAAqG;IACrG,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC;IACzB,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,8BAA8B,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC1I,MAAM,GAAG,GAAG,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC3C,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAQ,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO;IAC3B,oFAAoF;IACpF,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChI,IAAI,CAAC,OAAO,EAAE,CAAC;IACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AAC3B,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAU,EAAE,EAAE;IACjC,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAAE,QAAQ,EAAE,CAAC;AACzD,CAAC,CAAC;AACF,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,4FAA4F;AAC5F,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAA+B;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAoB,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,mJAAmJ;AACnJ,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxF,CAAC;AACD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AAE9C,4CAA4C;AAC5C,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,OAAO,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-ask-door.d.ts","sourceRoot":"","sources":["../src/quick-ask-door.tsx"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,MAAM,WAAW,iBAAiB;IAChC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAS,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"quick-ask-door.d.ts","sourceRoot":"","sources":["../src/quick-ask-door.tsx"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,MAAM,WAAW,iBAAiB;IAChC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAS,EAAE,EAAE,iBAAiB,sCAoElE"}
|
package/dist/quick-ask-door.js
CHANGED
|
@@ -25,6 +25,11 @@ export function QuickAskDoor({ face, on = true }) {
|
|
|
25
25
|
return;
|
|
26
26
|
const held = heldOf(aiDesk);
|
|
27
27
|
held.drawn += 1;
|
|
28
|
+
/* Fetched at the first letter typed in the menu, or once the page is idle: Enter never waits for the card or the plan. */
|
|
29
|
+
held.preload = () => {
|
|
30
|
+
void cardModule.load().catch(() => undefined);
|
|
31
|
+
void import("./quick-ask-plan.js").catch(() => undefined);
|
|
32
|
+
};
|
|
28
33
|
tell(held);
|
|
29
34
|
return () => {
|
|
30
35
|
held.drawn = Math.max(0, held.drawn - 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-ask-door.js","sourceRoot":"","sources":["../src/quick-ask-door.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quick-ask-door.js","sourceRoot":"","sources":["../src/quick-ask-door.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type PlannedEdits } from "@graview/core/catalog";
|
|
2
|
+
import type { AnswerMissing } from "@graview/tools/inline-ai";
|
|
3
|
+
import type { ComposeChangeHost, ReshapeProposal } from "@graview/tools/reshape";
|
|
4
|
+
import type { InlineEnv } from "./inline-ai-env.js";
|
|
5
|
+
/**
|
|
6
|
+
* A MISSING CAPABILITY, OFFERED AS ONE PLAN THAT FINISHES THE ASK (Roadmap
|
|
7
|
+
* f-menu-type-anything). Nick: "I'd say 'assign these to nick' and it'd say
|
|
8
|
+
* 'tasks have no assignment, but I can add that property, and add a People
|
|
9
|
+
* kind and add Nick to it and assign him to them all… should I?'"
|
|
10
|
+
*
|
|
11
|
+
* The model names the need (`AnswerMissing.need`: a link, or a field); code
|
|
12
|
+
* writes the least change that gives it (`planEdits`: the kind the link
|
|
13
|
+
* points to where the app has none, the link or the field, the one act that
|
|
14
|
+
* sets it — no rule, no new place), then the records that finish the ask
|
|
15
|
+
* (the person the words name, found or made; each record the list shows
|
|
16
|
+
* given to them). Every step is said from those edits and records, in plain
|
|
17
|
+
* words, numbered, each a thing that will happen. Where the host lends its
|
|
18
|
+
* composer (`composeChange`) the changed app is judged by the checker and a
|
|
19
|
+
* scratch store rehearses every record first; a plan that would fail is
|
|
20
|
+
* refused, never offered. Where the seat may not change the app — or the app
|
|
21
|
+
* is declared in code with no host to change it — the whole plan is still
|
|
22
|
+
* said, with who would add its first steps. Fetched with the first such
|
|
23
|
+
* answer; no page carries it up front.
|
|
24
|
+
*/
|
|
25
|
+
/** One step of the plan, as the card numbers it. */
|
|
26
|
+
export interface PlanPart {
|
|
27
|
+
readonly part: "app" | "record";
|
|
28
|
+
readonly said: string;
|
|
29
|
+
}
|
|
30
|
+
/** The plan, as the card says it and the host is handed it. */
|
|
31
|
+
export interface AppPlan {
|
|
32
|
+
/** What the card says above the steps: what is missing, and "Should I?" where Yes is offered — or who would make the first steps. */
|
|
33
|
+
readonly question: string;
|
|
34
|
+
readonly parts: readonly PlanPart[];
|
|
35
|
+
/** What Yes hands the host — the change to the app as edits, and the records — where this seat may change the app. */
|
|
36
|
+
readonly proposal?: ReshapeProposal;
|
|
37
|
+
/** Who would make the change, where Yes is not offered. */
|
|
38
|
+
readonly whoMay?: string;
|
|
39
|
+
}
|
|
40
|
+
/** The plan for a missing capability, or a refusal in words when it could not be composed or would fail. */
|
|
41
|
+
export declare function planFor(env: InlineEnv, options: {
|
|
42
|
+
readonly said: string;
|
|
43
|
+
readonly missing: AnswerMissing;
|
|
44
|
+
readonly members: readonly string[];
|
|
45
|
+
readonly host: boolean;
|
|
46
|
+
readonly compose?: ComposeChangeHost;
|
|
47
|
+
readonly where?: string;
|
|
48
|
+
}): Promise<AppPlan | {
|
|
49
|
+
readonly refused: string;
|
|
50
|
+
}>;
|
|
51
|
+
export type { PlannedEdits };
|
|
52
|
+
//# sourceMappingURL=quick-ask-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-ask-plan.d.ts","sourceRoot":"","sources":["../src/quick-ask-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,+DAA+D;AAC/D,MAAM,WAAW,OAAO;IACtB,qIAAqI;IACrI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,sHAAsH;IACtH,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAgCD,4GAA4G;AAC5G,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6E9R;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
|