@graview/primitives 0.1.64 → 0.1.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +1 -1
  2. package/dist/app-bar.d.ts +88 -15
  3. package/dist/app-bar.d.ts.map +1 -1
  4. package/dist/app-bar.js +177 -131
  5. package/dist/app-bar.js.map +1 -1
  6. package/dist/app-menu.d.ts +9 -0
  7. package/dist/app-menu.d.ts.map +1 -0
  8. package/dist/app-menu.js +60 -0
  9. package/dist/app-menu.js.map +1 -0
  10. package/dist/bar-activity.d.ts +5 -9
  11. package/dist/bar-activity.d.ts.map +1 -1
  12. package/dist/bar-activity.js +24 -7
  13. package/dist/bar-activity.js.map +1 -1
  14. package/dist/bar-panes.d.ts +5 -5
  15. package/dist/bar-panes.d.ts.map +1 -1
  16. package/dist/bar-panes.js +9 -5
  17. package/dist/bar-panes.js.map +1 -1
  18. package/dist/bar-suggested.d.ts +9 -1
  19. package/dist/bar-suggested.d.ts.map +1 -1
  20. package/dist/bar-suggested.js +11 -17
  21. package/dist/bar-suggested.js.map +1 -1
  22. package/dist/better-bar.d.ts +65 -0
  23. package/dist/better-bar.d.ts.map +1 -0
  24. package/dist/better-bar.js +252 -0
  25. package/dist/better-bar.js.map +1 -0
  26. package/dist/better-panel.d.ts +50 -0
  27. package/dist/better-panel.d.ts.map +1 -0
  28. package/dist/better-panel.js +151 -0
  29. package/dist/better-panel.js.map +1 -0
  30. package/dist/chat.js +1 -1
  31. package/dist/chat.js.map +1 -1
  32. package/dist/editable.d.ts +8 -1
  33. package/dist/editable.d.ts.map +1 -1
  34. package/dist/editable.js +140 -16
  35. package/dist/editable.js.map +1 -1
  36. package/dist/find.js +3 -3
  37. package/dist/find.js.map +1 -1
  38. package/dist/first-look-door.d.ts +2 -2
  39. package/dist/first-look-door.js +2 -2
  40. package/dist/first-look.d.ts.map +1 -1
  41. package/dist/first-look.js +10 -8
  42. package/dist/first-look.js.map +1 -1
  43. package/dist/frame.d.ts +2 -2
  44. package/dist/frame.d.ts.map +1 -1
  45. package/dist/frame.js +1 -1
  46. package/dist/frame.js.map +1 -1
  47. package/dist/here.d.ts +1 -1
  48. package/dist/here.js +2 -2
  49. package/dist/here.js.map +1 -1
  50. package/dist/inbox-pane.d.ts +31 -0
  51. package/dist/inbox-pane.d.ts.map +1 -0
  52. package/dist/inbox-pane.js +89 -0
  53. package/dist/inbox-pane.js.map +1 -0
  54. package/dist/inbox.d.ts +17 -0
  55. package/dist/inbox.d.ts.map +1 -0
  56. package/dist/inbox.js +84 -0
  57. package/dist/inbox.js.map +1 -0
  58. package/dist/index.d.ts +8 -3
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +7 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/inline-ai-menu.d.ts +4 -2
  63. package/dist/inline-ai-menu.d.ts.map +1 -1
  64. package/dist/inline-ai-menu.js +34 -8
  65. package/dist/inline-ai-menu.js.map +1 -1
  66. package/dist/kind-stop.d.ts.map +1 -1
  67. package/dist/kind-stop.js +204 -21
  68. package/dist/kind-stop.js.map +1 -1
  69. package/dist/lines-key.d.ts.map +1 -1
  70. package/dist/lines-key.js +22 -2
  71. package/dist/lines-key.js.map +1 -1
  72. package/dist/map-panel.js +98 -6
  73. package/dist/map-panel.js.map +1 -1
  74. package/dist/menu-rank.d.ts +25 -0
  75. package/dist/menu-rank.d.ts.map +1 -0
  76. package/dist/menu-rank.js +56 -0
  77. package/dist/menu-rank.js.map +1 -0
  78. package/dist/menu-suggested.d.ts +54 -0
  79. package/dist/menu-suggested.d.ts.map +1 -0
  80. package/dist/menu-suggested.js +140 -0
  81. package/dist/menu-suggested.js.map +1 -0
  82. package/dist/menu-told-door.d.ts +17 -0
  83. package/dist/menu-told-door.d.ts.map +1 -0
  84. package/dist/menu-told-door.js +49 -0
  85. package/dist/menu-told-door.js.map +1 -0
  86. package/dist/menu-told.d.ts +44 -0
  87. package/dist/menu-told.d.ts.map +1 -0
  88. package/dist/menu-told.js +90 -0
  89. package/dist/menu-told.js.map +1 -0
  90. package/dist/menu-words.d.ts +15 -0
  91. package/dist/menu-words.d.ts.map +1 -0
  92. package/dist/menu-words.js +28 -0
  93. package/dist/menu-words.js.map +1 -0
  94. package/dist/notify-sheet.js +2 -2
  95. package/dist/notify-sheet.js.map +1 -1
  96. package/dist/page-better.d.ts +13 -0
  97. package/dist/page-better.d.ts.map +1 -0
  98. package/dist/page-better.js +714 -0
  99. package/dist/page-better.js.map +1 -0
  100. package/dist/page-parts.d.ts +41 -0
  101. package/dist/page-parts.d.ts.map +1 -0
  102. package/dist/page-parts.js +100 -0
  103. package/dist/page-parts.js.map +1 -0
  104. package/dist/pages.d.ts +4 -3
  105. package/dist/pages.d.ts.map +1 -1
  106. package/dist/pages.js +4 -3
  107. package/dist/pages.js.map +1 -1
  108. package/dist/profile.d.ts +1 -10
  109. package/dist/profile.d.ts.map +1 -1
  110. package/dist/profile.js +2 -3
  111. package/dist/profile.js.map +1 -1
  112. package/dist/quick-ask-desk.d.ts +16 -0
  113. package/dist/quick-ask-desk.d.ts.map +1 -1
  114. package/dist/quick-ask-desk.js +20 -0
  115. package/dist/quick-ask-desk.js.map +1 -1
  116. package/dist/quick-ask-door.d.ts.map +1 -1
  117. package/dist/quick-ask-door.js +5 -0
  118. package/dist/quick-ask-door.js.map +1 -1
  119. package/dist/quick-ask-plan.d.ts +52 -0
  120. package/dist/quick-ask-plan.d.ts.map +1 -0
  121. package/dist/quick-ask-plan.js +112 -0
  122. package/dist/quick-ask-plan.js.map +1 -0
  123. package/dist/quick-ask.d.ts.map +1 -1
  124. package/dist/quick-ask.js +341 -19
  125. package/dist/quick-ask.js.map +1 -1
  126. package/dist/scene-bar.d.ts +1 -1
  127. package/dist/scene-bar.d.ts.map +1 -1
  128. package/dist/scene-bar.js +4 -7
  129. package/dist/scene-bar.js.map +1 -1
  130. package/dist/scene-css.d.ts.map +1 -1
  131. package/dist/scene-css.js +16 -6
  132. package/dist/scene-css.js.map +1 -1
  133. package/dist/scene-places.d.ts +3 -2
  134. package/dist/scene-places.d.ts.map +1 -1
  135. package/dist/scene-places.js +47 -8
  136. package/dist/scene-places.js.map +1 -1
  137. package/dist/scene.d.ts +2 -0
  138. package/dist/scene.d.ts.map +1 -1
  139. package/dist/scene.js +2 -0
  140. package/dist/scene.js.map +1 -1
  141. package/dist/section-better.d.ts +76 -0
  142. package/dist/section-better.d.ts.map +1 -0
  143. package/dist/section-better.js +529 -0
  144. package/dist/section-better.js.map +1 -0
  145. package/dist/section-door.d.ts +39 -0
  146. package/dist/section-door.d.ts.map +1 -0
  147. package/dist/section-door.js +66 -0
  148. package/dist/section-door.js.map +1 -0
  149. package/dist/section-menu.d.ts +32 -0
  150. package/dist/section-menu.d.ts.map +1 -0
  151. package/dist/section-menu.js +229 -0
  152. package/dist/section-menu.js.map +1 -0
  153. package/dist/section-outline.d.ts +8 -0
  154. package/dist/section-outline.d.ts.map +1 -0
  155. package/dist/section-outline.js +48 -0
  156. package/dist/section-outline.js.map +1 -0
  157. package/dist/section-words.d.ts +32 -0
  158. package/dist/section-words.d.ts.map +1 -0
  159. package/dist/section-words.js +116 -0
  160. package/dist/section-words.js.map +1 -0
  161. package/dist/shell.d.ts +5 -1
  162. package/dist/shell.d.ts.map +1 -1
  163. package/dist/shell.js +5 -2
  164. package/dist/shell.js.map +1 -1
  165. package/dist/subject.js +2 -2
  166. package/dist/subject.js.map +1 -1
  167. package/dist/suggested.d.ts +21 -10
  168. package/dist/suggested.d.ts.map +1 -1
  169. package/dist/suggested.js +43 -64
  170. package/dist/suggested.js.map +1 -1
  171. package/dist/told-card.d.ts +66 -0
  172. package/dist/told-card.d.ts.map +1 -0
  173. package/dist/told-card.js +197 -0
  174. package/dist/told-card.js.map +1 -0
  175. package/dist/told-listed.d.ts +14 -0
  176. package/dist/told-listed.d.ts.map +1 -0
  177. package/dist/told-listed.js +46 -0
  178. package/dist/told-listed.js.map +1 -0
  179. package/dist/told-panel-door.d.ts +17 -0
  180. package/dist/told-panel-door.d.ts.map +1 -0
  181. package/dist/told-panel-door.js +6 -0
  182. package/dist/told-panel-door.js.map +1 -0
  183. package/dist/told-panel.d.ts +19 -0
  184. package/dist/told-panel.d.ts.map +1 -0
  185. package/dist/told-panel.js +83 -0
  186. package/dist/told-panel.js.map +1 -0
  187. package/dist/told-ui.d.ts +5 -0
  188. package/dist/told-ui.d.ts.map +1 -0
  189. package/dist/told-ui.js +12 -0
  190. package/dist/told-ui.js.map +1 -0
  191. package/dist/when-words.d.ts +21 -0
  192. package/dist/when-words.d.ts.map +1 -0
  193. package/dist/when-words.js +43 -0
  194. package/dist/when-words.js.map +1 -0
  195. package/dist/workbench/activity.d.ts +44 -0
  196. package/dist/workbench/activity.d.ts.map +1 -1
  197. package/dist/workbench/activity.js +74 -59
  198. package/dist/workbench/activity.js.map +1 -1
  199. package/dist/workbench/ai-entries.d.ts.map +1 -1
  200. package/dist/workbench/ai-entries.js +23 -2
  201. package/dist/workbench/ai-entries.js.map +1 -1
  202. package/dist/workbench/back-out.js +1 -1
  203. package/dist/workbench/back-out.js.map +1 -1
  204. package/dist/workbench/inspector.d.ts.map +1 -1
  205. package/dist/workbench/inspector.js +366 -27
  206. package/dist/workbench/inspector.js.map +1 -1
  207. package/dist/workbench/standing.d.ts.map +1 -1
  208. package/dist/workbench/standing.js +1 -1
  209. package/dist/workbench/standing.js.map +1 -1
  210. 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":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAqC,MAAM,eAAe,CAAC;AACzI,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAkB,MAAM,sBAAsB,CAAC;AACjI,8EAA8E;AAC9E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAClJ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAC;AAC9H,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,YAAY,CAAC,CAAC,2FAA2F;AAIhH,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAgB,EAAE,EAAE,CAAC,KAAC,KAAK,CAAC,WAAW,OAAK,KAAK,GAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAErI;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iGAAiG;AACjG,MAAM,SAAS,GAAG,yBAAyB,CAAC;AAE5C,kGAAkG;AAClG,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,+GAA+G;AAC/G,MAAM,UAAU,WAAW,CAAsB,EAAE,OAAO,EAAyC;IACjG,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAC,SAAS,IAAiC,IAAI,EAAE,OAAO,CAAC,IAAI,IAA1C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAwB,CAAC;IACtG,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAC,WAAW,IAAiC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAtC,UAAU,OAAO,CAAC,EAAE,EAAE,CAAoB,CAAC;IACtG,OAAO,KAAC,aAAa,IAAqC,IAAI,EAAE,OAAO,CAAC,IAAI,IAA9C,YAAY,OAAO,CAAC,IAAI,EAAE,CAAwB,CAAC;AACnF,CAAC;AAED,6EAA6E;AAE7E,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,WAAW,GAWZ;IACC,MAAM,MAAM,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,oFAAoF;IACpF,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;QAC1C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,qBAAqB,CAAC,CAAC;QAC1F,OAAO,EAAE,CAAC;QACV,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QAClD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,yHAAyH;IACzH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,gBAAgB;gBAAE,OAAO;YAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;YACtC,IAAI,MAAM,YAAY,gBAAgB,IAAI,MAAM,YAAY,mBAAmB;gBAAE,OAAO;YACxF,yCAAyC;YACzC,IAAI,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAC;gBAAE,OAAO;YAC1E,gGAAgG;YAChG,IAAI,SAAS;gBAAE,OAAO;YACtB,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC,CAAC;QACF;;;;WAIG;QACH,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAC,KAAK,IAAI,CAAC;QAC/E,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CACL,mBACE,GAAG,EAAE,MAAM,gBACC,KAAK,iBACJ,MAAM,4BACK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,0BAC3B,EAAE,2BACD,EAAE,EACxB,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,mGAAmG;YACnG,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,sBAAsB;YAClC,KAAK,EAAE,oBAAoB;YAC3B;;;;;;eAMG;YACH,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,+BAA+B;YACvC,YAAY,EAAE,6BAA6B;YAC3C,SAAS,EAAE,0BAA0B;YACrC,GAAG,CAAC,KAAK;gBACP,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,SAAS,sCAAsC,EAAE,MAAM,EAAE,WAAW,EAAE;gBAC7H,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC1E,aAYA,KAAK,CAAC,CAAC,CAAC,CACP,0BAAQ,oEAAoE,WAAW,UAAU,SAAS,yCAAyC,GAAS,CAC7J,CAAC,CAAC,CAAC,CACF,0BAAQ,kEAAkE,IAAI,UAAU,SAAS,MAAM,GAAS,CACjH,EACD,kBAAQ,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,+BAA+B,EAAE,aAClJ,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,IAAI,GAAO,EAC3D,iBAAQ,IAAI,EAAC,QAAQ,iBAAa,iBAAiB,gBAAY,OAAO,EAAC,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,uBAEhN,IACF,EACT,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,QAAQ,GAAO,IAC1E,CACX,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAW,CAAC;AACzI,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAW,CAAC;AAC/H,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAW,CAAC;AACtG,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAW,CAAC;AAChI,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAW,CAAC;AACnF,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAW,CAAC;AAC3O,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAW,CAAC;AAEzG,sHAAsH;AACtH,SAAS,SAAS;IAChB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACjD,OAAO,CAAC,KAAmE,EAAE,EAAU,EAAE,EAAE;QACzF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAmD;IAChF,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACjD,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,iBACD,gBAAgB,gBAChB,yBAAyB,KAAK,EAAE,mBAC9B,MAAM,EACpB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACxD,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC,2BAGM,CACV,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,MAAM,QAAQ,GAAG,CAAC,IAAe,EAAE,EAAU,EAAa,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/H;;;;;;;;;;;;;;GAcG;AACH,SAAS,iBAAiB,CAAC,EAAU,EAAE,OAA2B;IAChE,MAAM,MAAM,GAAG,4CAA4C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC;IACxF,uGAAuG;IACvG,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,KAAK,IAAI,EAAE,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa;QAAE,MAAM,GAAG,EAAE,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC;IAC9I,MAAM,KAAK,QAAQ,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACpE,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,qFAAqF;QACrF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;QAClC,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,QAAQ,CAAC,eAAe,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,CAAC;QACvH,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAc,MAAM,CAAC,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACrG,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;YAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC;IACF,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,6EAA6E;AAE7E;;;;;GAKG;AACH,SAAS,SAAS,CAAsB,EAAE,IAAI,EAA6B;IACzE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,EAAK,CAAC;IACxE,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAK,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,YAAY,EAAE,IAAoC,CAAC;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAsB,EAC5H,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAC5C,CAAC;IACF,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrF,6GAA6G;IAC7G,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/E,oFAAoF;IACpF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACxE,OAAO,CACL,MAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,MAAM,EAAC,YAAY,EACnB,IAAI,EAAC,6BAA6B,EAClC,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,KAAK,EACd,IAAI,EACF,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BACf,cAAK,KAAK,EAAE,OAAO,YAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAO,EAC5D,aAAI,KAAK,EAAE,KAAK,iBAAc,kBAAkB,YAAE,KAAK,GAAM,EAC7D,aAAG,KAAK,EAAE,KAAK,aACZ,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAC3C,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAC5D,EACH,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAC3B,iBAAQ,IAAI,EAAC,QAAQ,iBAAa,iBAAiB,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,KAAK,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,4BAErJ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,IACP,aAIL,0BAAQ,gFAAgF,UAAU,CAAC,IAAI,CAAC;8FAChB,UAAU,CAAC,IAAI,CAAC,uBAAuB,GAAS,EACxI,mCACqB,KAAK,EAAE,EAAE,IAAI,EAAE;gBAClC;;;;;;;;mBAQG;gBACH,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,EACrL,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS;wBAAE,OAAO;oBACzD,MAAM,OAAO,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;oBACtH,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC;wBAAE,OAAO;oBAClE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS;wBAAE,OAAO;oBACzD,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzB,CAAC;gBACD,mFAAmF;gBACnF,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS;wBAAE,OAAO;oBACzD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpB,CAAC,YAEA,IAAI,CAAC,CAAC,CAAC;gBACN,6EAA6E;gBAC7E,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAO/B,KAAC,gBAAgB,IAAC,IAAI,EAAC,YAAY,YACjC,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,KAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YACrF,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAE,KAAK,KAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,GACnM,GACE,GACC,CACvB,CAAC,CAAC,CAAC,IAAI,GACJ,IACK,CACd,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E,oGAAoG;AACpG,SAAS,UAAU,CACjB,MAAiB,EACjB,KAAsF,EACtF,EAAU,EACV,MAA0C;IAE1C,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwF,CAAC;IAC/G,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;YAAE,SAAS;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACvD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1D,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/I,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAsB,EAAE,EAAE,EAA2B;IACvE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,UAAU,EAAK,CAAC;IAC7D,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAK,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAA0B,CAAC;IACzF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAClK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D;;;;;OAKG;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAG,YAAY,EAAE,IAAoC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3D,yFAAyF;IACzF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/G,OAAO,CACL,MAAC,UAAU,IACT,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAC/B,MAAM,EAAC,cAAc,EACrB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,iBAAiB,EACjE,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,KAAK,EACd,IAAI,EACF,8BACE,cAAK,KAAK,EAAE,OAAO,YAAG,IAAI,GAAO,EACjC,aAAI,KAAK,EAAE,KAAK,iBAAc,oBAAoB,YAAE,IAAI,CAAC,EAAE,CAAC,GAAM,EAClE,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,aACtE,iBAAQ,IAAI,EAAC,QAAQ,iBAAa,iBAAiB,EAAe,KAAK,EAAE,UAAU,EACjF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gCACjB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gCACvB,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;4BAC7C,CAAC,yBAGM,EACT,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAI,EACvC,kBAAQ,IAAI,EAAC,QAAQ,iBAAa,uBAAuB,EAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,qBACrH,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,IAC3C,IACL,IACL,aAGL,0CAA+B,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,YAChE,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,YACtB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAa,EAAE,QAAQ,EAAC,MAAM,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,YAAY,EAAC,QAAQ,EAAE,KAAK,GAAI,GACrF,CAChB,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAI,CACzC,GACG,EACL,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,8BAAmB,CAAC,CAAC,CAAC,IAAI,EAC3F,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,iCAAqC,KAAK,CAAC,KAAK,wBAAsB,KAAK,CAAC,IAAI,aAC9E,cAAI,KAAK,EAAE,OAAO,aACf,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAE,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,wBAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAQ,IAC7J,EACL,aAAI,KAAK,EAAE,SAAS,YACjB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,uBACE,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,yBACZ,KAAK,EAC1B,KAAK,EAAE,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;gCACtC,0FAA0F;gCAC1F,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,aAE9C,eAAM,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,YAAG,IAAI,CAAC,KAAK,CAAC,GAAQ,EAC7F,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAG,IAAI,GAAQ,IAC7G,IAZF,KAAK,CAaT,CACN,CAAC,GACC,KArBO,KAAK,CAAC,GAAG,CAsBb,CACX,CAAC,IACS,CACd,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,8EAA8E;AAC9E,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,SAAS,aAAa,CAAsB,EAAE,IAAI,EAA6B;IAC7E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,UAAU,EAAK,CAAC;IACnE,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAK,CAAC;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,KAAK,CAAC,KAAK;SACR,WAAW,CAAC,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAa,CAAC,EAAE,CAAC,CAAC;SAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACjD,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAC5C,CAAC;IACF;;;;OAIG;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,CAAC,EAAU,EAAW,EAAE;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrC,OAAO,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACxH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACtJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,sEAAsE;IACtE,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD;;;;OAIG;IACH,MAAM,YAAY,GAAG,aAAa,EAAK,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1L,MAAM,YAAY,GAAG,MAAM,CAA4B,IAAI,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,oBAAoB,CAAC,wBAAwB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC3F,uFAAuF;IACvF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC1D,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAC1G,kIAAkI;IAClI,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,oBAAoB,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;YACtC,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI;gBAAE,OAAO;YAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,QAAQ,CAAC,aAAa,CAAc,mCAAmC,OAAO,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACjH,QAAQ,CAAC,aAAa,CAAc,uBAAuB,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/I,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACtG,OAAO,CACL,MAAC,UAAU,IACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAC,gBAAgB,EACvB,IAAI,EAAC,iBAAiB,EACtB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAC/B,IAAI,EACF,8BACE,cAAK,KAAK,EAAE,OAAO,yBAAgB,EACnC,aAAI,KAAK,EAAE,KAAK,iBAAc,sBAAsB,YAAE,MAAM,GAAM,EAClE,aAAG,KAAK,EAAE,KAAK,aACZ,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAC3C,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAC5D,EACJ,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,aACtE,iBAAQ,IAAI,EAAC,QAAQ,iBAAa,mBAAmB,EAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,sBAEjK,EACT,KAAC,UAAU,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,MAAM,CAAC,WAAW,EAAE,EAAE,GAAI,IACtE,IACL,aAGJ,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrB,iCAAoB,UAAU,iBAAa,mBAAmB,2BAAwB,QAAQ,CAAC,MAAM,aAEnG,0BAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mFAAmF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,2EAA2E,GAAS,EACzO,cACE,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,CAAC,CAAC,iBACA,2BAA2B,EACvC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,+BAA+B,EAAE,eAAe,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,aAExP,8BAAkB,MAAM,YAAE,IAAI,GAAQ,EACtC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAQ,IAC1F,EACL,aAAI,KAAK,EAAE,SAAS,iBAAc,uBAAuB,YACvD,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,WAAW,IACV,UAAU,EAAE,QAAQ,EACpB,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE;oCAClB,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCACvD,IAAI,EAAE,KAAK,SAAS;wCAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCAC3C,CAAC,GACD,GACO,GACR,IACG,CACX,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACtB,iCAAoB,WAAW,aAC7B,aAAI,KAAK,EAAE,OAAO,0BAAgB,EAClC,aAAI,KAAK,EAAE,SAAS,YACjB,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACzB,uBACE,6CAC8B,MAAM,CAAC,IAAI,EACvC,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EACzC,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9C,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EACvC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EACvC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAE/B,eAAM,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAAQ,EAC7F,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,YACtJ,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GACtB,IACH,IAdC,MAAM,CAAC,GAAG,CAed,CACN,CAAC,GACC,IACG,CACX,CAAC,CAAC,CAAC,IAAI,EAOR,eAAK,IAAI,EAAC,OAAO,gBAAa,MAAM,aAClC,cAAI,KAAK,EAAE,OAAO,aACf,MAAM,OAAE,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,wBAAK,OAAO,CAAC,MAAM,IAAQ,IACpG,EACJ,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAC9B,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,YACnC,gBACE,IAAI,EAAC,QAAQ,iBACD,uBAAuB,gBACvB,cAAc,MAAM,CAAC,WAAW,EAAE,UAAU,EACxD,WAAW,EAAC,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,GAChE,GACE,CACP,CAAC,CAAC,CAAC,IAAI,EACR,aAAI,KAAK,EAAE,SAAS,YACjB,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,uBACE,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,yBACZ,MAAM,CAAC,EAAE,EAC9B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCACtC,0FAA0F;gCAC1F,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,YAEpD,eAAM,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,YAAG,MAAM,CAAC,IAAI,GAAQ,GACvF,IAXF,MAAM,CAAC,EAAE,CAYb,CACN,CAAC,GACC,IACD,IACK,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"map-panel.js","sourceRoot":"","sources":["../src/map-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { HostAi } from "@graview/tools";
2
+ /**
3
+ * THE FAST SLOT RANKS WHAT IS TYPED IN THE MENU (Roadmap f-menu-type-anything).
4
+ *
5
+ * The plain word-start match (`menuMatches`) answers on the first key with
6
+ * no wait. Where the host gave a Fast slot (Jev, or its `decide`), a pause
7
+ * in the typing asks it one Choice — which of the menu's rows the words
8
+ * mean — and its answer refines the list: a row it finds likely is shown
9
+ * though no word of it begins with what was typed ("complete" finds
10
+ * "Finish it"), and its best is the row lit. Debounced, never in the way of
11
+ * a key: the words changed, the answer on its way is dropped and nothing
12
+ * is asked until the typing rests again. No Fast slot, no ask: the local
13
+ * match alone.
14
+ */
15
+ /** One row the menu could show, by its key (`act:<id>`, `item:<id>`) and its words. */
16
+ export interface MenuRankRow {
17
+ readonly key: string;
18
+ readonly label: string;
19
+ }
20
+ /** How long the typing rests before the Fast slot is asked, and how likely a row must be to be shown for it. */
21
+ export declare const MENU_RANK_REST_MS = 250;
22
+ export declare const MENU_RANK_FLOOR = 0.2;
23
+ /** The Fast slot's chance for each row the words could mean, once it has answered for these words; null before, and with no Fast slot. */
24
+ export declare function useFastRank(ai: HostAi | undefined, words: string, rows: readonly MenuRankRow[]): ReadonlyMap<string, number> | null;
25
+ //# sourceMappingURL=menu-rank.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-rank.d.ts","sourceRoot":"","sources":["../src/menu-rank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;;;;;;;;;;GAYG;AAEH,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,gHAAgH;AAChH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AAKnC,0IAA0I;AAC1I,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA0CnI"}
@@ -0,0 +1,56 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ /** How long the typing rests before the Fast slot is asked, and how likely a row must be to be shown for it. */
3
+ export const MENU_RANK_REST_MS = 250;
4
+ export const MENU_RANK_FLOOR = 0.2;
5
+ /** The Fast slot the host gave, or its `decide`, where AI is not off. */
6
+ const fastSlot = (ai) => (ai === undefined || ai.off ? undefined : (ai.fast ?? (ai.decide ? { model: ai.name ?? "decide", decide: ai.decide } : undefined)));
7
+ /** The Fast slot's chance for each row the words could mean, once it has answered for these words; null before, and with no Fast slot. */
8
+ export function useFastRank(ai, words, rows) {
9
+ const [ranked, setRanked] = useState(null);
10
+ const held = useRef(rows);
11
+ held.current = rows;
12
+ const rowsSaid = rows.map((row) => `${row.key}\u0000${row.label}`).join("\u0001");
13
+ const fast = fastSlot(ai);
14
+ useEffect(() => {
15
+ const asked = words.trim();
16
+ if (!fast || asked === "" || held.current.length === 0)
17
+ return;
18
+ let live = true;
19
+ const keyed = new Map(held.current.map((row, at) => [`r${at + 1}`, row]));
20
+ const timer = setTimeout(() => {
21
+ void fast
22
+ // Jev's own Choice, with "none of these": words that mean no row light none.
23
+ .decide({ typed: asked }, { row: { type: "choice", instructions: `Which of these menu rows does somebody typing “${asked}” mean?`, criteria: { ...Object.fromEntries([...keyed].map(([key, row]) => [key, row.label])), none: "None of these rows" } } })
24
+ .then((decided) => {
25
+ ai?.meter?.({ tier: "fast", model: fast.model, inputTokens: decided.usage.inputTokens, outputTokens: decided.usage.outputTokens, interaction: "menu" });
26
+ const answer = decided.answers["row"];
27
+ if (!live || answer?.type !== "choice")
28
+ return;
29
+ const chances = new Map();
30
+ for (const [key, chance] of Object.entries(answer.probabilities)) {
31
+ const row = keyed.get(key);
32
+ if (row)
33
+ chances.set(row.key, chance);
34
+ }
35
+ // "None of these": the local match stands alone.
36
+ if (answer.choice === "none")
37
+ return setRanked({ words: asked, chances: new Map() });
38
+ const chosen = keyed.get(answer.choice);
39
+ if (chosen && !chances.has(chosen.key))
40
+ chances.set(chosen.key, answer.confidence);
41
+ setRanked({ words: asked, chances });
42
+ })
43
+ // A Fast slot that fails leaves the local match, which already answered.
44
+ .catch(() => undefined);
45
+ }, MENU_RANK_REST_MS);
46
+ return () => {
47
+ live = false;
48
+ clearTimeout(timer);
49
+ };
50
+ // Asked again when the words or the rows change; the slot itself is the host's, fixed for the page.
51
+ // eslint-disable-next-line react-hooks/exhaustive-deps
52
+ }, [words, rowsSaid, fast === undefined]);
53
+ // An answer for other words than these is never shown.
54
+ return ranked !== null && ranked.words === words.trim() ? ranked.chances : null;
55
+ }
56
+ //# sourceMappingURL=menu-rank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-rank.js","sourceRoot":"","sources":["../src/menu-rank.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { HostAi } from "@graview/tools";
2
+ /** A suggestion as the menu draws it. */
3
+ export interface MenuSuggestion {
4
+ readonly key: string;
5
+ /** The act alone, in words: never "like last time". */
6
+ readonly label: string;
7
+ readonly mode: "chat" | "better";
8
+ readonly source: "told" | "act" | "nudge";
9
+ }
10
+ /** An act as the menu's rows offer it: its label, what it still asks, and what it was asked of. */
11
+ interface ActOffered {
12
+ readonly id: string;
13
+ readonly label: string;
14
+ readonly destructive?: boolean;
15
+ readonly setsAside?: true;
16
+ readonly ties?: boolean;
17
+ readonly provider: string;
18
+ readonly open: readonly {
19
+ readonly name: string;
20
+ readonly optional?: boolean;
21
+ readonly shape?: {
22
+ readonly type: string;
23
+ readonly options?: readonly string[];
24
+ };
25
+ }[];
26
+ }
27
+ /**
28
+ * AN ACT FILLED IN, NEVER THE ROW AGAIN. A suggestion that says "Set the
29
+ * status" over a row that says "Set the status …" offers nothing the rows
30
+ * do not; a suggestion is the act with its answer in it — "Set the status
31
+ * to Doing", the next of a choice after the one the record holds — or an
32
+ * act that asks nothing said of the record by its name ("Mark “Book the
33
+ * hall” done" for "Mark it done", "Finish “Book the van”"). An act whose answer cannot be guessed
34
+ * (a name, a date, another record) is left to its row, as is one that
35
+ * sets the record aside or loses it.
36
+ */
37
+ export declare function filledActs(acts: readonly ActOffered[], record: Readonly<Record<string, unknown>> | undefined, optionWords?: Readonly<Record<string, Readonly<Record<string, string>>>>, name?: string): MenuSuggestion[];
38
+ /** What a suggestion would say that a row under it already says as it is: dropped. */
39
+ export declare function notARow(candidates: readonly MenuSuggestion[], rows: readonly string[]): MenuSuggestion[];
40
+ /** How many are shown: at most three, and the room for them held from the menu's first frame. */
41
+ export declare const SUGGESTED_MOST = 3;
42
+ /**
43
+ * The suggestions shown, in the Fast slot's order once it has answered for
44
+ * this menu, each tagged by it; held as they are while `still` (the pointer
45
+ * on a row). `asked` is what the menu is on, for the question.
46
+ */
47
+ export declare function useSuggested(ai: HostAi | undefined, candidates: readonly MenuSuggestion[], asked: {
48
+ readonly name: string;
49
+ readonly opened: unknown;
50
+ readonly better: boolean;
51
+ readonly depends?: object;
52
+ }, still: boolean): readonly MenuSuggestion[];
53
+ export {};
54
+ //# sourceMappingURL=menu-suggested.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-suggested.d.ts","sourceRoot":"","sources":["../src/menu-suggested.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAe7C,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;CAC3C;AAED,mGAAmG;AACnG,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CACpK;AAKD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAwB5N;AAED,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,EAAE,CAGxG;AAED,iGAAiG;AACjG,eAAO,MAAM,cAAc,IAAI,CAAC;AAyBhC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,cAAc,EAAE,CAyDtP"}
@@ -0,0 +1,140 @@
1
+ import { useEffect, useMemo, useRef, useState } from "react";
2
+ /** A label as a row says it, folded to compare: no "…", no case, no spare spaces. */
3
+ const folded = (label) => label.replace(/\s*…\s*$/u, "").replace(/\s+/g, " ").trim().toLowerCase();
4
+ /**
5
+ * AN ACT FILLED IN, NEVER THE ROW AGAIN. A suggestion that says "Set the
6
+ * status" over a row that says "Set the status …" offers nothing the rows
7
+ * do not; a suggestion is the act with its answer in it — "Set the status
8
+ * to Doing", the next of a choice after the one the record holds — or an
9
+ * act that asks nothing said of the record by its name ("Mark “Book the
10
+ * hall” done" for "Mark it done", "Finish “Book the van”"). An act whose answer cannot be guessed
11
+ * (a name, a date, another record) is left to its row, as is one that
12
+ * sets the record aside or loses it.
13
+ */
14
+ export function filledActs(acts, record, optionWords = {}, name) {
15
+ if (!record)
16
+ return [];
17
+ const out = [];
18
+ const named = [];
19
+ for (const act of acts) {
20
+ // A rule's repair is among the likeliest ("Finish “Pay the deposit”" where it is overdue); what loses or sets aside the record is not.
21
+ if (act.destructive || act.setsAside || act.ties)
22
+ continue;
23
+ const asks = act.open.filter((one) => !one.optional);
24
+ if (asks.length === 0 && act.open.length === 0 && name) {
25
+ // "it", "this" or "this one" in the act's words is the record, by its name; else the name follows the act ("Finish “Book the van”").
26
+ const said = act.label.replace(/\b(it|this one|this)\b/u, `“${name}”`);
27
+ named.push({ key: `act:${act.id}`, label: said !== act.label ? said : `${act.label} “${name}”`, mode: "chat", source: "act" });
28
+ continue;
29
+ }
30
+ const one = asks[0];
31
+ if (asks.length !== 1 || one?.shape?.type !== "choice" || !one.shape.options || one.shape.options.length < 2)
32
+ continue;
33
+ const options = one.shape.options;
34
+ const now = options.indexOf(String(record[one.name] ?? ""));
35
+ const next = now >= 0 ? options[now + 1] : undefined;
36
+ if (next === undefined)
37
+ continue;
38
+ const word = optionWords[one.name]?.[next] ?? next.replace(/[-_]+/g, " ").replace(/^./u, (first) => first.toUpperCase());
39
+ out.push({ key: `act:${act.id}:${next}`, label: `${act.label.replace(/\s*…\s*$/u, "")} to ${word}`, mode: "chat", source: "act" });
40
+ }
41
+ return [...out, ...named];
42
+ }
43
+ /** What a suggestion would say that a row under it already says as it is: dropped. */
44
+ export function notARow(candidates, rows) {
45
+ const said = new Set(rows.map(folded));
46
+ return candidates.filter((one) => !said.has(folded(one.label)));
47
+ }
48
+ /** How many are shown: at most three, and the room for them held from the menu's first frame. */
49
+ export const SUGGESTED_MOST = 3;
50
+ /** The Fast slot the host gave, or its `decide`, where AI is not off. */
51
+ const fastOf = (ai) => (ai === undefined || ai.off || ai.suggestOnOpen === false ? undefined : (ai.fast ?? (ai.decide ? { model: ai.name ?? "decide", decide: ai.decide } : undefined)));
52
+ /*
53
+ * ASKED ONCE PER THING AND ITS STATE (as the inline AI's suggestions are,
54
+ * FR-186): a menu opened again on the same record — the same object until
55
+ * it changes — or on the same list with nothing changed draws what the Fast
56
+ * slot answered before, in its first frame, and asks nothing.
57
+ */
58
+ const ANSWERS = /* @__PURE__ */ new WeakMap();
59
+ const answered = (depends, said) => (depends ? ANSWERS.get(depends)?.get(said) : undefined);
60
+ /** The first order, before the Fast slot answers: a nudge first where there is one, then what worked before, then the acts. */
61
+ function firstOrder(candidates) {
62
+ const by = (source) => candidates.filter((one) => one.source === source);
63
+ const [nudges, told, acts] = [by("nudge"), by("told"), by("act")];
64
+ const out = [];
65
+ const longest = Math.max(nudges.length, told.length, acts.length);
66
+ for (let at = 0; at < longest; at++)
67
+ for (const list of [nudges, told, acts])
68
+ if (list[at])
69
+ out.push(list[at]);
70
+ return out;
71
+ }
72
+ /**
73
+ * The suggestions shown, in the Fast slot's order once it has answered for
74
+ * this menu, each tagged by it; held as they are while `still` (the pointer
75
+ * on a row). `asked` is what the menu is on, for the question.
76
+ */
77
+ export function useSuggested(ai, candidates, asked, still) {
78
+ const fast = fastOf(ai);
79
+ const said = candidates.map((one) => `${one.key}\u0000${one.label}`).join("\u0001");
80
+ const [fresh, setAnswer] = useState(null);
81
+ const answer = answered(asked.depends, said) ?? fresh;
82
+ useEffect(() => {
83
+ if (answered(asked.depends, said))
84
+ return;
85
+ setAnswer(null);
86
+ if (!fast || candidates.length === 0 || asked.opened === null || asked.opened === undefined)
87
+ return;
88
+ let live = true;
89
+ const keyed = new Map(candidates.map((one, at) => [`s${at + 1}`, one]));
90
+ const questions = {
91
+ pick: { type: "choice", instructions: `Somebody right-clicked “${asked.name}” in an app. Which of these would they most likely want to do next?`, criteria: Object.fromEntries([...keyed].map(([key, one]) => [key, one.label])) },
92
+ };
93
+ if (asked.better)
94
+ for (const [key, one] of keyed)
95
+ questions[`about_${key}`] = {
96
+ type: "choice",
97
+ instructions: `Is “${one.label}” about how “${asked.name}” looks or is laid out, or about the records in it?`,
98
+ criteria: { look: "How it looks or is laid out: style, size, what each row or card shows, its order or grouping", records: "The records themselves: changing, finishing, adding, assigning or asking about them" },
99
+ };
100
+ void fast
101
+ .decide({ on: asked.name }, questions)
102
+ .then((decided) => {
103
+ ai?.meter?.({ tier: "fast", model: fast.model, inputTokens: decided.usage.inputTokens, outputTokens: decided.usage.outputTokens, interaction: "menu" });
104
+ if (!live)
105
+ return;
106
+ const pick = decided.answers["pick"];
107
+ const chance = (key) => (pick?.type === "choice" ? (pick.probabilities[key] ?? (pick.choice === key ? pick.confidence : 0)) : 0);
108
+ const order = [...keyed.keys()].sort((a, b) => chance(b) - chance(a)).map((key) => keyed.get(key).key);
109
+ const modes = new Map();
110
+ for (const [key, one] of keyed) {
111
+ const about = decided.answers[`about_${key}`];
112
+ if (about?.type === "choice")
113
+ modes.set(one.key, about.choice === "look" ? "better" : "chat");
114
+ }
115
+ const one = { said, order, modes };
116
+ if (asked.depends) {
117
+ const kept = ANSWERS.get(asked.depends) ?? new Map();
118
+ kept.set(said, one);
119
+ ANSWERS.set(asked.depends, kept);
120
+ }
121
+ setAnswer(one);
122
+ })
123
+ .catch(() => undefined);
124
+ return () => {
125
+ live = false;
126
+ };
127
+ // Asked once per menu and per set of candidates; the slot is the host's, fixed for the page.
128
+ // eslint-disable-next-line react-hooks/exhaustive-deps
129
+ }, [said, asked.opened, asked.depends, fast === undefined]);
130
+ const shown = useMemo(() => {
131
+ const ordered = answer && answer.said === said ? answer.order.map((key) => candidates.find((one) => one.key === key)).filter(Boolean) : firstOrder(candidates);
132
+ return ordered.slice(0, SUGGESTED_MOST).map((one) => ({ ...one, mode: answer?.modes.get(one.key) ?? one.mode }));
133
+ }, [answer, said, candidates]);
134
+ /* Nothing moves under a resting pointer: what was drawn stays until it leaves the rows. */
135
+ const held = useRef(shown);
136
+ if (!still)
137
+ held.current = shown;
138
+ return still ? held.current : shown;
139
+ }
140
+ //# sourceMappingURL=menu-suggested.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-suggested.js","sourceRoot":"","sources":["../src/menu-suggested.ts"],"names":[],"mappings":"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"}