@graview/primitives 0.1.64 → 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.
Files changed (127) hide show
  1. package/README.md +1 -1
  2. package/dist/app-bar.js +1 -1
  3. package/dist/app-bar.js.map +1 -1
  4. package/dist/chat.js +1 -1
  5. package/dist/chat.js.map +1 -1
  6. package/dist/find.js +3 -3
  7. package/dist/find.js.map +1 -1
  8. package/dist/first-look.js +1 -1
  9. package/dist/first-look.js.map +1 -1
  10. package/dist/here.d.ts +1 -1
  11. package/dist/here.js +2 -2
  12. package/dist/here.js.map +1 -1
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +4 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/inline-ai-menu.d.ts +4 -2
  18. package/dist/inline-ai-menu.d.ts.map +1 -1
  19. package/dist/inline-ai-menu.js +34 -8
  20. package/dist/inline-ai-menu.js.map +1 -1
  21. package/dist/kind-stop.d.ts.map +1 -1
  22. package/dist/kind-stop.js +204 -21
  23. package/dist/kind-stop.js.map +1 -1
  24. package/dist/lines-key.d.ts.map +1 -1
  25. package/dist/lines-key.js +22 -2
  26. package/dist/lines-key.js.map +1 -1
  27. package/dist/map-panel.js +98 -6
  28. package/dist/map-panel.js.map +1 -1
  29. package/dist/menu-rank.d.ts +25 -0
  30. package/dist/menu-rank.d.ts.map +1 -0
  31. package/dist/menu-rank.js +56 -0
  32. package/dist/menu-rank.js.map +1 -0
  33. package/dist/menu-told-door.d.ts +17 -0
  34. package/dist/menu-told-door.d.ts.map +1 -0
  35. package/dist/menu-told-door.js +49 -0
  36. package/dist/menu-told-door.js.map +1 -0
  37. package/dist/menu-told.d.ts +37 -0
  38. package/dist/menu-told.d.ts.map +1 -0
  39. package/dist/menu-told.js +66 -0
  40. package/dist/menu-told.js.map +1 -0
  41. package/dist/menu-words.d.ts +15 -0
  42. package/dist/menu-words.d.ts.map +1 -0
  43. package/dist/menu-words.js +28 -0
  44. package/dist/menu-words.js.map +1 -0
  45. package/dist/pages.d.ts +2 -0
  46. package/dist/pages.d.ts.map +1 -1
  47. package/dist/pages.js +2 -0
  48. package/dist/pages.js.map +1 -1
  49. package/dist/quick-ask-desk.d.ts +16 -0
  50. package/dist/quick-ask-desk.d.ts.map +1 -1
  51. package/dist/quick-ask-desk.js +20 -0
  52. package/dist/quick-ask-desk.js.map +1 -1
  53. package/dist/quick-ask-door.d.ts.map +1 -1
  54. package/dist/quick-ask-door.js +5 -0
  55. package/dist/quick-ask-door.js.map +1 -1
  56. package/dist/quick-ask-plan.d.ts +52 -0
  57. package/dist/quick-ask-plan.d.ts.map +1 -0
  58. package/dist/quick-ask-plan.js +112 -0
  59. package/dist/quick-ask-plan.js.map +1 -0
  60. package/dist/quick-ask.d.ts.map +1 -1
  61. package/dist/quick-ask.js +341 -19
  62. package/dist/quick-ask.js.map +1 -1
  63. package/dist/scene-css.d.ts.map +1 -1
  64. package/dist/scene-css.js +16 -6
  65. package/dist/scene-css.js.map +1 -1
  66. package/dist/scene-places.d.ts +3 -2
  67. package/dist/scene-places.d.ts.map +1 -1
  68. package/dist/scene-places.js +47 -8
  69. package/dist/scene-places.js.map +1 -1
  70. package/dist/scene.d.ts +2 -0
  71. package/dist/scene.d.ts.map +1 -1
  72. package/dist/scene.js +2 -0
  73. package/dist/scene.js.map +1 -1
  74. package/dist/section-better.d.ts +38 -0
  75. package/dist/section-better.d.ts.map +1 -0
  76. package/dist/section-better.js +411 -0
  77. package/dist/section-better.js.map +1 -0
  78. package/dist/section-door.d.ts +32 -0
  79. package/dist/section-door.d.ts.map +1 -0
  80. package/dist/section-door.js +32 -0
  81. package/dist/section-door.js.map +1 -0
  82. package/dist/section-menu.d.ts +18 -0
  83. package/dist/section-menu.d.ts.map +1 -0
  84. package/dist/section-menu.js +76 -0
  85. package/dist/section-menu.js.map +1 -0
  86. package/dist/section-outline.d.ts +8 -0
  87. package/dist/section-outline.d.ts.map +1 -0
  88. package/dist/section-outline.js +48 -0
  89. package/dist/section-outline.js.map +1 -0
  90. package/dist/section-words.d.ts +24 -0
  91. package/dist/section-words.d.ts.map +1 -0
  92. package/dist/section-words.js +91 -0
  93. package/dist/section-words.js.map +1 -0
  94. package/dist/shell.d.ts.map +1 -1
  95. package/dist/shell.js +2 -1
  96. package/dist/shell.js.map +1 -1
  97. package/dist/subject.js +2 -2
  98. package/dist/subject.js.map +1 -1
  99. package/dist/told-card.d.ts +66 -0
  100. package/dist/told-card.d.ts.map +1 -0
  101. package/dist/told-card.js +197 -0
  102. package/dist/told-card.js.map +1 -0
  103. package/dist/told-listed.d.ts +14 -0
  104. package/dist/told-listed.d.ts.map +1 -0
  105. package/dist/told-listed.js +46 -0
  106. package/dist/told-listed.js.map +1 -0
  107. package/dist/told-panel-door.d.ts +17 -0
  108. package/dist/told-panel-door.d.ts.map +1 -0
  109. package/dist/told-panel-door.js +6 -0
  110. package/dist/told-panel-door.js.map +1 -0
  111. package/dist/told-panel.d.ts +19 -0
  112. package/dist/told-panel.d.ts.map +1 -0
  113. package/dist/told-panel.js +83 -0
  114. package/dist/told-panel.js.map +1 -0
  115. package/dist/told-ui.d.ts +5 -0
  116. package/dist/told-ui.d.ts.map +1 -0
  117. package/dist/told-ui.js +12 -0
  118. package/dist/told-ui.js.map +1 -0
  119. package/dist/workbench/ai-entries.d.ts.map +1 -1
  120. package/dist/workbench/ai-entries.js +23 -2
  121. package/dist/workbench/ai-entries.js.map +1 -1
  122. package/dist/workbench/back-out.js +1 -1
  123. package/dist/workbench/back-out.js.map +1 -1
  124. package/dist/workbench/inspector.d.ts.map +1 -1
  125. package/dist/workbench/inspector.js +218 -18
  126. package/dist/workbench/inspector.js.map +1 -1
  127. 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, sheetHeight, }) {
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)", sheetHeight: "60%", 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; }
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%)", sheetHeight: "52%", 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) => {
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%)", sheetHeight: "52%", 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) => {
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]);
@@ -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,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"}