@graview/primitives 0.1.28 → 0.1.30

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 (325) hide show
  1. package/dist/app-bar.d.ts.map +1 -1
  2. package/dist/app-bar.js +44 -14
  3. package/dist/app-bar.js.map +1 -1
  4. package/dist/app-link-door.d.ts +3 -0
  5. package/dist/app-link-door.d.ts.map +1 -0
  6. package/dist/app-link-door.js +11 -0
  7. package/dist/app-link-door.js.map +1 -0
  8. package/dist/app-link.d.ts +20 -0
  9. package/dist/app-link.d.ts.map +1 -0
  10. package/dist/app-link.js +134 -0
  11. package/dist/app-link.js.map +1 -0
  12. package/dist/app-title.d.ts +1 -1
  13. package/dist/app-title.d.ts.map +1 -1
  14. package/dist/app-title.js +7 -3
  15. package/dist/app-title.js.map +1 -1
  16. package/dist/arrange-bar.d.ts +57 -4
  17. package/dist/arrange-bar.d.ts.map +1 -1
  18. package/dist/arrange-bar.js +96 -13
  19. package/dist/arrange-bar.js.map +1 -1
  20. package/dist/arrange-lists.d.ts +62 -1
  21. package/dist/arrange-lists.d.ts.map +1 -1
  22. package/dist/arrange-lists.js +180 -23
  23. package/dist/arrange-lists.js.map +1 -1
  24. package/dist/arrangement.d.ts.map +1 -1
  25. package/dist/arrangement.js +3 -1
  26. package/dist/arrangement.js.map +1 -1
  27. package/dist/bar-panes.d.ts +2 -1
  28. package/dist/bar-panes.d.ts.map +1 -1
  29. package/dist/bar-panes.js +2 -1
  30. package/dist/bar-panes.js.map +1 -1
  31. package/dist/bar-suggested.d.ts +2 -0
  32. package/dist/bar-suggested.d.ts.map +1 -0
  33. package/dist/bar-suggested.js +22 -0
  34. package/dist/bar-suggested.js.map +1 -0
  35. package/dist/chat.d.ts.map +1 -1
  36. package/dist/chat.js +3 -1
  37. package/dist/chat.js.map +1 -1
  38. package/dist/choosing.d.ts +36 -0
  39. package/dist/choosing.d.ts.map +1 -0
  40. package/dist/choosing.js +224 -0
  41. package/dist/choosing.js.map +1 -0
  42. package/dist/connections.d.ts +1 -1
  43. package/dist/connections.d.ts.map +1 -1
  44. package/dist/connections.js +41 -5
  45. package/dist/connections.js.map +1 -1
  46. package/dist/declared-lens-doors.d.ts.map +1 -1
  47. package/dist/declared-lens-doors.js +8 -1
  48. package/dist/declared-lens-doors.js.map +1 -1
  49. package/dist/declared-lenses.d.ts +3 -2
  50. package/dist/declared-lenses.d.ts.map +1 -1
  51. package/dist/declared-lenses.js +5 -4
  52. package/dist/declared-lenses.js.map +1 -1
  53. package/dist/default-views.d.ts.map +1 -1
  54. package/dist/default-views.js +107 -28
  55. package/dist/default-views.js.map +1 -1
  56. package/dist/draft-frame.d.ts +1 -0
  57. package/dist/draft-frame.d.ts.map +1 -1
  58. package/dist/draft-frame.js +1 -0
  59. package/dist/draft-frame.js.map +1 -1
  60. package/dist/editable.d.ts +27 -2
  61. package/dist/editable.d.ts.map +1 -1
  62. package/dist/editable.js +77 -39
  63. package/dist/editable.js.map +1 -1
  64. package/dist/files.d.ts +1 -0
  65. package/dist/files.d.ts.map +1 -1
  66. package/dist/files.js +30 -5
  67. package/dist/files.js.map +1 -1
  68. package/dist/find.d.ts.map +1 -1
  69. package/dist/find.js +115 -10
  70. package/dist/find.js.map +1 -1
  71. package/dist/first-look-door.d.ts +71 -0
  72. package/dist/first-look-door.d.ts.map +1 -0
  73. package/dist/first-look-door.js +95 -0
  74. package/dist/first-look-door.js.map +1 -0
  75. package/dist/first-look.d.ts +12 -0
  76. package/dist/first-look.d.ts.map +1 -0
  77. package/dist/first-look.js +262 -0
  78. package/dist/first-look.js.map +1 -0
  79. package/dist/frame.d.ts +3 -2
  80. package/dist/frame.d.ts.map +1 -1
  81. package/dist/frame.js +21 -2
  82. package/dist/frame.js.map +1 -1
  83. package/dist/framework-views.d.ts +1 -0
  84. package/dist/framework-views.d.ts.map +1 -1
  85. package/dist/framework-views.js +1 -0
  86. package/dist/framework-views.js.map +1 -1
  87. package/dist/here.d.ts +24 -1
  88. package/dist/here.d.ts.map +1 -1
  89. package/dist/here.js +36 -1
  90. package/dist/here.js.map +1 -1
  91. package/dist/home-view.d.ts +1 -0
  92. package/dist/home-view.d.ts.map +1 -1
  93. package/dist/home-view.js +1 -0
  94. package/dist/home-view.js.map +1 -1
  95. package/dist/index.d.ts +20 -4
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +17 -4
  98. package/dist/index.js.map +1 -1
  99. package/dist/installation.js +1 -1
  100. package/dist/installation.js.map +1 -1
  101. package/dist/kind-shape.d.ts +130 -0
  102. package/dist/kind-shape.d.ts.map +1 -0
  103. package/dist/kind-shape.js +299 -0
  104. package/dist/kind-shape.js.map +1 -0
  105. package/dist/kind-stop.d.ts +18 -0
  106. package/dist/kind-stop.d.ts.map +1 -0
  107. package/dist/kind-stop.js +378 -0
  108. package/dist/kind-stop.js.map +1 -0
  109. package/dist/lens/arranging.d.ts.map +1 -1
  110. package/dist/lens/arranging.js +22 -5
  111. package/dist/lens/arranging.js.map +1 -1
  112. package/dist/lens/calendar-dates.d.ts +4 -3
  113. package/dist/lens/calendar-dates.d.ts.map +1 -1
  114. package/dist/lens/calendar-dates.js +12 -5
  115. package/dist/lens/calendar-dates.js.map +1 -1
  116. package/dist/lens/calendar-drawing.d.ts.map +1 -1
  117. package/dist/lens/calendar-drawing.js +14 -10
  118. package/dist/lens/calendar-drawing.js.map +1 -1
  119. package/dist/lens/calendar-options.d.ts +11 -0
  120. package/dist/lens/calendar-options.d.ts.map +1 -1
  121. package/dist/lens/calendar-options.js.map +1 -1
  122. package/dist/lens/calendar-placing.d.ts +13 -0
  123. package/dist/lens/calendar-placing.d.ts.map +1 -1
  124. package/dist/lens/calendar-placing.js +23 -2
  125. package/dist/lens/calendar-placing.js.map +1 -1
  126. package/dist/lens/calendar-spans.d.ts +5 -0
  127. package/dist/lens/calendar-spans.d.ts.map +1 -1
  128. package/dist/lens/calendar-spans.js +18 -6
  129. package/dist/lens/calendar-spans.js.map +1 -1
  130. package/dist/lens/calendar-view.d.ts.map +1 -1
  131. package/dist/lens/calendar-view.js +24 -6
  132. package/dist/lens/calendar-view.js.map +1 -1
  133. package/dist/lens/columns.d.ts +3 -1
  134. package/dist/lens/columns.d.ts.map +1 -1
  135. package/dist/lens/columns.js +40 -11
  136. package/dist/lens/columns.js.map +1 -1
  137. package/dist/lens/coverage.d.ts +8 -2
  138. package/dist/lens/coverage.d.ts.map +1 -1
  139. package/dist/lens/coverage.js +36 -10
  140. package/dist/lens/coverage.js.map +1 -1
  141. package/dist/lens/timeline.d.ts +1 -1
  142. package/dist/lens/timeline.d.ts.map +1 -1
  143. package/dist/lens/timeline.js +126 -16
  144. package/dist/lens/timeline.js.map +1 -1
  145. package/dist/lines-key.d.ts.map +1 -1
  146. package/dist/lines-key.js +11 -5
  147. package/dist/lines-key.js.map +1 -1
  148. package/dist/linked-record-door.d.ts +4 -0
  149. package/dist/linked-record-door.d.ts.map +1 -0
  150. package/dist/linked-record-door.js +12 -0
  151. package/dist/linked-record-door.js.map +1 -0
  152. package/dist/linked-record.d.ts +34 -0
  153. package/dist/linked-record.d.ts.map +1 -0
  154. package/dist/linked-record.js +142 -0
  155. package/dist/linked-record.js.map +1 -0
  156. package/dist/map-asks.d.ts +10 -0
  157. package/dist/map-asks.d.ts.map +1 -0
  158. package/dist/map-asks.js +17 -0
  159. package/dist/map-asks.js.map +1 -0
  160. package/dist/map-key.d.ts +3 -0
  161. package/dist/map-key.d.ts.map +1 -0
  162. package/dist/map-key.js +35 -0
  163. package/dist/map-key.js.map +1 -0
  164. package/dist/map-panel-door.d.ts +26 -0
  165. package/dist/map-panel-door.d.ts.map +1 -0
  166. package/dist/map-panel-door.js +42 -0
  167. package/dist/map-panel-door.js.map +1 -0
  168. package/dist/map-panel.d.ts +8 -0
  169. package/dist/map-panel.d.ts.map +1 -0
  170. package/dist/map-panel.js +351 -0
  171. package/dist/map-panel.js.map +1 -0
  172. package/dist/markdown-body.d.ts +11 -0
  173. package/dist/markdown-body.d.ts.map +1 -0
  174. package/dist/markdown-body.js +89 -0
  175. package/dist/markdown-body.js.map +1 -0
  176. package/dist/notice-stacks.d.ts +13 -0
  177. package/dist/notice-stacks.d.ts.map +1 -0
  178. package/dist/notice-stacks.js +141 -0
  179. package/dist/notice-stacks.js.map +1 -0
  180. package/dist/notices.d.ts +2 -0
  181. package/dist/notices.d.ts.map +1 -1
  182. package/dist/notices.js +30 -132
  183. package/dist/notices.js.map +1 -1
  184. package/dist/pages.d.ts +17 -1
  185. package/dist/pages.d.ts.map +1 -1
  186. package/dist/pages.js +17 -1
  187. package/dist/pages.js.map +1 -1
  188. package/dist/past-bar.d.ts +13 -0
  189. package/dist/past-bar.d.ts.map +1 -0
  190. package/dist/past-bar.js +26 -0
  191. package/dist/past-bar.js.map +1 -0
  192. package/dist/places.d.ts +1 -1
  193. package/dist/places.d.ts.map +1 -1
  194. package/dist/places.js +10 -5
  195. package/dist/places.js.map +1 -1
  196. package/dist/primitives/index.d.ts +19 -1
  197. package/dist/primitives/index.d.ts.map +1 -1
  198. package/dist/primitives/index.js +82 -33
  199. package/dist/primitives/index.js.map +1 -1
  200. package/dist/problem-count.d.ts +18 -0
  201. package/dist/problem-count.d.ts.map +1 -0
  202. package/dist/problem-count.js +46 -0
  203. package/dist/problem-count.js.map +1 -0
  204. package/dist/prose-editor.d.ts +4 -1
  205. package/dist/prose-editor.d.ts.map +1 -1
  206. package/dist/prose-editor.js +13 -6
  207. package/dist/prose-editor.js.map +1 -1
  208. package/dist/relation-key.d.ts +3 -1
  209. package/dist/relation-key.d.ts.map +1 -1
  210. package/dist/relation-key.js +23 -6
  211. package/dist/relation-key.js.map +1 -1
  212. package/dist/repeat-picker-door.d.ts +10 -0
  213. package/dist/repeat-picker-door.d.ts.map +1 -0
  214. package/dist/repeat-picker-door.js +13 -0
  215. package/dist/repeat-picker-door.js.map +1 -0
  216. package/dist/repeat-picker.d.ts +29 -0
  217. package/dist/repeat-picker.d.ts.map +1 -0
  218. package/dist/repeat-picker.js +64 -0
  219. package/dist/repeat-picker.js.map +1 -0
  220. package/dist/resolve-app-context.d.ts +3 -0
  221. package/dist/resolve-app-context.d.ts.map +1 -0
  222. package/dist/resolve-app-context.js +10 -0
  223. package/dist/resolve-app-context.js.map +1 -0
  224. package/dist/rule-line.d.ts.map +1 -1
  225. package/dist/rule-line.js +2 -1
  226. package/dist/rule-line.js.map +1 -1
  227. package/dist/scene-bar.d.ts.map +1 -1
  228. package/dist/scene-bar.js +7 -4
  229. package/dist/scene-bar.js.map +1 -1
  230. package/dist/scene-css.d.ts.map +1 -1
  231. package/dist/scene-css.js +261 -213
  232. package/dist/scene-css.js.map +1 -1
  233. package/dist/scene-places.d.ts +6 -0
  234. package/dist/scene-places.d.ts.map +1 -1
  235. package/dist/scene-places.js +14 -14
  236. package/dist/scene-places.js.map +1 -1
  237. package/dist/scene-way-back-door.d.ts +1 -0
  238. package/dist/scene-way-back-door.d.ts.map +1 -1
  239. package/dist/scene-way-back-door.js +10 -0
  240. package/dist/scene-way-back-door.js.map +1 -1
  241. package/dist/scene.d.ts +5 -1
  242. package/dist/scene.d.ts.map +1 -1
  243. package/dist/scene.js +5 -1
  244. package/dist/scene.js.map +1 -1
  245. package/dist/seat-field.d.ts.map +1 -1
  246. package/dist/seat-field.js +6 -4
  247. package/dist/seat-field.js.map +1 -1
  248. package/dist/seat-panel.d.ts +1 -0
  249. package/dist/seat-panel.d.ts.map +1 -1
  250. package/dist/seat-panel.js +5 -2
  251. package/dist/seat-panel.js.map +1 -1
  252. package/dist/seeding.d.ts.map +1 -1
  253. package/dist/seeding.js +2 -1
  254. package/dist/seeding.js.map +1 -1
  255. package/dist/several-bar.d.ts +23 -0
  256. package/dist/several-bar.d.ts.map +1 -0
  257. package/dist/several-bar.js +158 -0
  258. package/dist/several-bar.js.map +1 -0
  259. package/dist/several-door.d.ts +7 -0
  260. package/dist/several-door.d.ts.map +1 -0
  261. package/dist/several-door.js +20 -0
  262. package/dist/several-door.js.map +1 -0
  263. package/dist/shell.d.ts +20 -2
  264. package/dist/shell.d.ts.map +1 -1
  265. package/dist/shell.js +19 -12
  266. package/dist/shell.js.map +1 -1
  267. package/dist/spec-css.d.ts.map +1 -1
  268. package/dist/spec-css.js +90 -55
  269. package/dist/spec-css.js.map +1 -1
  270. package/dist/spec-views.d.ts +14 -1
  271. package/dist/spec-views.d.ts.map +1 -1
  272. package/dist/spec-views.js +91 -17
  273. package/dist/spec-views.js.map +1 -1
  274. package/dist/states-bar.d.ts +15 -0
  275. package/dist/states-bar.d.ts.map +1 -0
  276. package/dist/states-bar.js +36 -0
  277. package/dist/states-bar.js.map +1 -0
  278. package/dist/suggested.d.ts +13 -0
  279. package/dist/suggested.d.ts.map +1 -0
  280. package/dist/suggested.js +82 -0
  281. package/dist/suggested.js.map +1 -0
  282. package/dist/text-body.d.ts +7 -3
  283. package/dist/text-body.d.ts.map +1 -1
  284. package/dist/text-body.js +10 -2
  285. package/dist/text-body.js.map +1 -1
  286. package/dist/theme.d.ts.map +1 -1
  287. package/dist/theme.js +36 -32
  288. package/dist/theme.js.map +1 -1
  289. package/dist/timeline.d.ts +6 -0
  290. package/dist/timeline.d.ts.map +1 -0
  291. package/dist/timeline.js +129 -0
  292. package/dist/timeline.js.map +1 -0
  293. package/dist/way-back.d.ts.map +1 -1
  294. package/dist/way-back.js +3 -0
  295. package/dist/way-back.js.map +1 -1
  296. package/dist/workbench/activity.d.ts +22 -0
  297. package/dist/workbench/activity.d.ts.map +1 -1
  298. package/dist/workbench/activity.js +126 -26
  299. package/dist/workbench/activity.js.map +1 -1
  300. package/dist/workbench/agent-seat.d.ts.map +1 -1
  301. package/dist/workbench/agent-seat.js +3 -2
  302. package/dist/workbench/agent-seat.js.map +1 -1
  303. package/dist/workbench/answer-args.d.ts +3 -1
  304. package/dist/workbench/answer-args.d.ts.map +1 -1
  305. package/dist/workbench/answer-args.js +84 -14
  306. package/dist/workbench/answer-args.js.map +1 -1
  307. package/dist/workbench/back-out.d.ts.map +1 -1
  308. package/dist/workbench/back-out.js +19 -6
  309. package/dist/workbench/back-out.js.map +1 -1
  310. package/dist/workbench/index.d.ts +1 -1
  311. package/dist/workbench/index.d.ts.map +1 -1
  312. package/dist/workbench/index.js +1 -1
  313. package/dist/workbench/index.js.map +1 -1
  314. package/dist/workbench/inspector-door.d.ts +36 -0
  315. package/dist/workbench/inspector-door.d.ts.map +1 -0
  316. package/dist/workbench/inspector-door.js +97 -0
  317. package/dist/workbench/inspector-door.js.map +1 -0
  318. package/dist/workbench/inspector.d.ts +9 -27
  319. package/dist/workbench/inspector.d.ts.map +1 -1
  320. package/dist/workbench/inspector.js +106 -42
  321. package/dist/workbench/inspector.js.map +1 -1
  322. package/dist/workbench/trail.d.ts.map +1 -1
  323. package/dist/workbench/trail.js +12 -3
  324. package/dist/workbench/trail.js.map +1 -1
  325. package/package.json +6 -6
@@ -1,9 +1,28 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { humanizeField, isWithheld, nameOfAuthor, viaSaid } from "@graview/core";
3
- import { POPOVER_STYLE, useGraph, useGraview, usePopover } from "@graview/react/provider";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { humanizeField, isWithheld, labelOf, nameOfAuthor } from "@graview/core";
3
+ import { viaSaid } from "@graview/core/words";
4
+ import { lineageWords } from "@graview/core/provenance";
5
+ import { digestWords, foldDigests } from "@graview/core/tidying";
6
+ import { POPOVER_STYLE, useGoTo, useGraview, useLiveStore, usePlayback, usePopover } from "@graview/react/provider";
7
+ import { prefetchTimeline } from "../past-bar.js";
4
8
  import { useMemo, useState } from "react";
5
9
  import { Chip, VISUALLY_HIDDEN } from "../primitives/index.js";
6
10
  import { nameOf } from "./answer-args.js";
11
+ /** One batch as a row of Activity. */
12
+ const changeOf = (store, batch) => ({
13
+ intent: batch.intent,
14
+ author: batch.author.kind,
15
+ ...(batch.author.id ? { authorId: batch.author.id } : {}),
16
+ by: batch.author,
17
+ ...(batch.ops[0]?.via ? { via: batch.ops[0].via } : {}),
18
+ ...(batch.lineage ? { basis: lineageWords(batch.lineage) } : {}),
19
+ // What a withheld op touched is not said, even the part this seat may see.
20
+ touched: [...new Set(batch.ops.filter((op) => !isWithheld(op)).flatMap((op) => op.writes))],
21
+ ...removedNames(store, batch.ops.filter((op) => !isWithheld(op))),
22
+ batch: batch.id,
23
+ seq: batch.ops.at(-1).seq + 1,
24
+ ...(batch.ops.every(isWithheld) ? { withheld: true } : {}),
25
+ });
7
26
  /**
8
27
  * The last few changes, with who made them — READ FROM THE LOG, not
9
28
  * accumulated from a subscription.
@@ -19,22 +38,64 @@ import { nameOf } from "./answer-args.js";
19
38
  * tell them apart.
20
39
  */
21
40
  export function useRecentChanges(limit = 4) {
22
- const { store } = useGraview();
23
- const nodes = useGraph();
24
- return useMemo(() => [...store.batches()]
41
+ const { store: shown, principal } = useGraview();
42
+ /* What has happened is now's, whichever moment the face draws (Roadmap f-playback). */
43
+ const store = useLiveStore(shown, principal);
44
+ const length = store.log.length;
45
+ /*
46
+ * A suggestion and its declining are the Suggested tray's to say, not
47
+ * rows here; a run of the app's own actor's batches is one row, a digest
48
+ * (`foldDigests`).
49
+ */
50
+ return useMemo(() => foldDigests(store.batches(), (id) => store.log.get(id))
25
51
  .reverse()
26
52
  .slice(0, limit)
27
- .map((batch) => ({
28
- intent: batch.intent,
29
- author: batch.author.kind,
30
- ...(batch.author.id ? { authorId: batch.author.id } : {}),
31
- by: batch.author,
32
- ...(batch.ops[0]?.via ? { via: batch.ops[0].via } : {}),
33
- // What a withheld op touched is not said, even the part this seat may see.
34
- touched: [...new Set(batch.ops.filter((op) => !isWithheld(op)).flatMap((op) => op.writes))],
35
- batch: batch.id,
36
- ...(batch.ops.every(isWithheld) ? { withheld: true } : {}),
37
- })), [store, nodes, limit]);
53
+ .map((row) => {
54
+ if ("batch" in row)
55
+ return changeOf(store, row.batch);
56
+ const changes = [...row.digest.batches].reverse().map((batch) => changeOf(store, batch));
57
+ return {
58
+ intent: digestWords(row.digest, new Date().toISOString().slice(0, 10)),
59
+ author: row.digest.author.kind,
60
+ ...(row.digest.author.id ? { authorId: row.digest.author.id } : {}),
61
+ by: row.digest.author,
62
+ touched: [...new Set(changes.flatMap((change) => change.touched))],
63
+ batch: "",
64
+ seq: changes[0]?.seq ?? 0,
65
+ digest: changes,
66
+ };
67
+ }),
68
+ // The log only grows at its end, an undo too: its length says when to read it again.
69
+ // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ [store, length, limit]);
71
+ }
72
+ /** The names of the records a change removed, from the records its removals carry. */
73
+ function removedNames(store, ops) {
74
+ const removed = {};
75
+ for (const op of ops)
76
+ for (const primitive of op.primitives)
77
+ if (primitive.op === "remove-node" && primitive.node)
78
+ removed[primitive.node.id] = labelOf(store.schema.tryDefinition(primitive.node.kind), primitive.node);
79
+ return Object.keys(removed).length > 0 ? { removed } : {};
80
+ }
81
+ /** Who made a change, as Activity says it: "you" for the person at the keyboard, else their name and the channel. */
82
+ function Who({ change }) {
83
+ const { store, principal, seats, people } = useGraview();
84
+ return (_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
85
+ ? "you"
86
+ : nameOfAuthor(change.by ?? { kind: change.author, id: change.authorId }, { graph: store.graph, schema: store.schema, seats, people }), viaSaid(change.via) ? _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-muted)" }, children: [", ", viaSaid(change.via)] }) : null] }));
87
+ }
88
+ /**
89
+ * A DIGEST: the app's own actor's run of changes as one row — "Graview,
90
+ * tidying · Tidied 6 things today" — which opens to each change with its
91
+ * own lineage and its own undo, so one of them is taken back without the
92
+ * rest, and the row says how many in the meantime.
93
+ */
94
+ function DigestRow({ change, goes }) {
95
+ const { store } = useGraview();
96
+ const [open, setOpen] = useState(false);
97
+ const each = change.digest ?? [];
98
+ return (_jsxs("li", { "data-testid": "activity-digest", style: { display: "grid", gap: 5, lineHeight: 1.45 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsx(Who, { change: change }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent })] }), _jsx("button", { type: "button", "data-testid": "digest-toggle", "aria-expanded": open, onClick: () => setOpen((was) => !was), style: { marginLeft: "auto", flex: "0 0 auto", display: "inline-flex", alignItems: "center", minHeight: 24, minWidth: 24, padding: "1px 8px", fontSize: "0.75rem" }, children: open ? "Hide" : "Show each" })] }), open ? (_jsx("ol", { "data-testid": "digest-changes", style: { margin: 0, padding: "0 0 0 10px", listStyle: "none", display: "grid", gap: 6, borderLeft: "1px solid var(--graview-edge)" }, children: each.map((one) => (_jsxs("li", { "data-testid": "digest-change", style: { display: "grid", gap: 3 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: one.intent }), one.basis ? _jsxs("span", { "data-graview-lineage": "", style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", one.basis] }) : null] }), one.withheld ? null : _jsx(UndoTurn, { batch: one.batch })] }), one.touched.length > 0 ? (_jsx("div", { "data-touched": one.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: one.touched.slice(0, 4).map((id) => (_jsx(Named, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (one.removed?.[id] ?? nameOf(store, id)), go: goes(id) }, id))) })) : null] }, one.batch))) })) : null] }));
38
99
  }
39
100
  /**
40
101
  * Drop one turn, keeping everything since.
@@ -54,11 +115,16 @@ export function UndoTurn({ batch }) {
54
115
  * In any app with one, a person could not take back the edit they had
55
116
  * just made, and the row they made it on said "you".
56
117
  */
57
- const { store, principal, noteSeat } = useGraview();
58
- const nodes = useGraph();
118
+ const { store: shown, principal, noteSeat } = useGraview();
119
+ /* Taken back from now's log; not offered at all while somebody looks back (Roadmap f-playback). */
120
+ const store = useLiveStore(shown, principal);
121
+ const lookingBack = usePlayback()?.open ?? false;
122
+ const length = store.log.length;
59
123
  const [refused, setRefused] = useState(null);
60
- const check = useMemo(() => store.canUndo(batch), [store, batch, nodes]);
61
- if (!check.ok && check.ops.length === 0)
124
+ const check = useMemo(() => store.canUndo(batch),
125
+ // eslint-disable-next-line react-hooks/exhaustive-deps
126
+ [store, batch, length]);
127
+ if (lookingBack || (!check.ok && check.ops.length === 0))
62
128
  return null;
63
129
  const blocked = !check.ok;
64
130
  const alsoNeeded = blocked ? check.includeBatches : [];
@@ -102,6 +168,18 @@ export function UndoTurn({ batch }) {
102
168
  ...(blocked ? { borderColor: "var(--graview-warn)", color: "var(--graview-warn)" } : {}),
103
169
  }, children: blocked ? `undo +${alsoNeeded.length}` : "undo" }), refused ? (_jsx("span", { "data-testid": "undo-refused", role: "alert", style: { fontSize: "0.75rem", lineHeight: 1.4, color: "var(--graview-warn)", maxWidth: 260, textAlign: "right" }, children: refused })) : null] }));
104
170
  }
171
+ /**
172
+ * "SHOW THE APP AS IT WAS HERE" (Roadmap f-playback): the face draws the
173
+ * app as it stood just after this change, with the timeline to scrub on
174
+ * from there. The timeline is fetched as a pointer comes near.
175
+ */
176
+ export function ShowAsItWas({ seq, intent }) {
177
+ const playback = usePlayback();
178
+ if (!playback)
179
+ return null;
180
+ const here = playback.past?.seq === seq;
181
+ return (_jsx("button", { type: "button", "data-testid": "show-past", "aria-label": `Show the app as it was after “${intent}”`, title: "Show the app as it was here", "aria-pressed": here, onPointerEnter: prefetchTimeline, onFocus: prefetchTimeline, onClick: () => playback.show(seq), style: { display: "inline-flex", alignItems: "center", justifyContent: "center", minHeight: 24, minWidth: 24, padding: "1px 6px", fontSize: "0.75rem", flex: "0 0 auto" }, children: _jsxs("svg", { width: "13", height: "13", viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: [_jsx("path", { d: "M2.5 8 a5.5 5.5 0 1 0 1.6-3.9", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("path", { d: "M2 2.5 V5.5 H5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M8 5 V8 L10 9.25", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }) }));
182
+ }
105
183
  /**
106
184
  * What has happened, and what is happening: the agent's tool calls and every
107
185
  * applied change, in one list.
@@ -148,9 +226,26 @@ export function StartFresh() {
148
226
  textUnderlineOffset: 3,
149
227
  }, children: "Start fresh" }));
150
228
  }
229
+ /**
230
+ * A RECORD NAMED IN THE ACTIVITY, AS SOMETHING THAT GOES THERE — or as a
231
+ * label where there is nowhere to go. A chip with a pick target was a pill
232
+ * that only the scene's own pointer handler answered: on Pages, in the
233
+ * popover, and from the keyboard on either face it looked pressable and did
234
+ * nothing. One that names a record still here is a button that goes to it
235
+ * (the face says how, through `useGoTo`) and closes the popover; a record
236
+ * since removed, or an argument that is a word rather than a record, is a
237
+ * plain label with no pointer and no focus.
238
+ */
239
+ function Named({ id, label, go }) {
240
+ if (!go)
241
+ return _jsx(Chip, { label: label });
242
+ return (_jsx("button", { type: "button", "data-testid": "activity-record", "data-record": id, title: `Go to ${label}`, onClick: () => go(id), style: { all: "unset", display: "inline-flex", cursor: "pointer", borderRadius: 7 }, className: "graview-activity-record", children: _jsx(Chip, { label: label }) }));
243
+ }
151
244
  export function ActivityRail({ calls, seat, remembers = false, }) {
152
245
  const changes = useRecentChanges();
153
- const { store, principal, seats, people } = useGraview();
246
+ const { store: shown, principal, seats, people } = useGraview();
247
+ /* Named from now's records, whichever moment the face draws (Roadmap f-playback). */
248
+ const store = useLiveStore(shown, principal);
154
249
  const running = calls.some((call) => call.phase === "running");
155
250
  /*
156
251
  * A POPOVER FROM THE BAR, not a rail pinned over the scene.
@@ -164,6 +259,11 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
164
259
  */
165
260
  const popover = usePopover("activity");
166
261
  const open = popover.open;
262
+ const goTo = useGoTo();
263
+ const playback = usePlayback();
264
+ /* Only a record still in the graph goes anywhere; the popover closes behind the reader as they go, and going there is going to it now, not as it was. */
265
+ const goes = (id) => (store.graph.has(id) ? (to) => { popover.setOpen(false); if (playback?.past)
266
+ playback.show(null); goTo.record(to); } : null);
167
267
  if (seat === undefined && calls.length === 0 && changes.length === 0 && !remembers)
168
268
  return null;
169
269
  return (_jsxs("div", { style: { position: "relative" }, children: [_jsxs("button", { type: "button", "data-testid": "activity-button", ...popover.trigger, onClick: popover.toggle, title: running ? "An agent is working" : "What has happened", style: {
@@ -218,21 +318,21 @@ export function ActivityRail({ calls, seat, remembers = false, }) {
218
318
  ? "var(--graview-warn)"
219
319
  : "var(--graview-edge-bright)",
220
320
  } }), _jsxs("span", { style: { color: "var(--graview-ink)" }, children: [call.mutating ? "changed" : "read", " \u00B7", " ", store.allMutations().find((mutation) => mutation.name === call.name)?.title ??
221
- humanizeField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [[...new Set(call.reads)].slice(0, 3).map((id) => (_jsx(Chip, { label: nameOf(store, id), pickId: id }, id))), new Set(call.reads).size > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", new Set(call.reads).size - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.entries(call.args)
321
+ humanizeField(call.name)] })] }), !call.mutating && call.reads && call.reads.length > 0 ? (_jsxs("div", { "data-testid": "activity-reads", style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: [[...new Set(call.reads)].slice(0, 3).map((id) => (_jsx(Named, { id: id, label: nameOf(store, id), go: goes(id) }, id))), new Set(call.reads).size > 3 ? _jsxs("span", { style: { color: "var(--graview-ink-muted)" }, children: ["+", new Set(call.reads).size - 3] }) : null] })) : Object.values(call.args).some((value) => typeof value === "string") ? (_jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, paddingLeft: 12 }, children: Object.entries(call.args)
222
322
  .filter((entry) => typeof entry[1] === "string")
223
323
  .slice(0, 3)
224
- .map(([name, value]) => (_jsx(Chip, { label: nameOf(store, value), pickId: value }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, changes.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
324
+ .map(([name, value]) => (_jsx(Named, { id: value, label: nameOf(store, value), go: goes(value) }, name))) })) : null, call.error ? (_jsx("div", { style: { paddingLeft: 12, color: "var(--graview-warn)" }, children: call.error })) : null] }, `${call.at}:${index}`))) })) : null, changes.length > 0 ? (_jsx("ol", { "data-testid": "diff-log", style: {
225
325
  margin: 0,
226
326
  padding: 0,
227
327
  listStyle: "none",
228
328
  display: "grid",
229
329
  gap: 6,
230
330
  fontSize: "0.8125rem",
231
- }, children: changes.map((change, index) => change.withheld ? (
331
+ }, children: changes.map((change, index) => change.digest ? (_jsx(DigestRow, { change: change, goes: goes }, `digest:${change.digest[0]?.batch ?? index}`)) : change.withheld ? (
232
332
  /* SOMETHING YOU CANNOT SEE HAPPENED: said, and nothing more — not who, not what, no undo (FR-16). */
233
333
  _jsx("li", { "data-testid": "withheld-change", style: { display: "grid", gap: 3, lineHeight: 1.45 }, children: _jsx("span", { "data-touched": "", style: { color: "var(--graview-ink-muted)", fontStyle: "italic" }, children: change.intent }) }, `change:${index}`)) : (_jsxs("li", { style: { display: "grid", gap: 3, lineHeight: 1.45 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: 6 }, children: [_jsxs("span", { style: { minWidth: 0 }, children: [_jsxs("strong", { style: { fontWeight: 600 }, children: [change.author === "human" && change.by?.onBehalfOf === undefined && (change.authorId === undefined || principal.id === undefined || change.authorId === principal.id)
234
334
  ? "you"
235
- : nameOfAuthor(change.by ?? { kind: change.author, id: change.authorId }, { graph: store.graph, schema: store.schema, seats, people }), viaSaid(change.via) ? _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-muted)" }, children: [", ", viaSaid(change.via)] }) : null] }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent })] }), change.batch ? _jsx(UndoTurn, { batch: change.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: change.touched.slice(0, 4).map((id) => (_jsx(Chip, { label: nameOf(store, id), pickId: id }, id))) })] }, `change:${index}`))) })) : null, remembers ? (_jsxs("div", { "data-testid": "remembered", style: {
335
+ : nameOfAuthor(change.by ?? { kind: change.author, id: change.authorId }, { graph: store.graph, schema: store.schema, seats, people }), viaSaid(change.via) ? _jsxs("span", { style: { fontWeight: 400, color: "var(--graview-ink-muted)" }, children: [", ", viaSaid(change.via)] }) : null] }), " ", _jsx("span", { style: { color: "var(--graview-ink-muted)" }, children: change.intent }), change.basis ? _jsxs("span", { "data-graview-lineage": "", style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", change.basis] }) : null] }), change.batch ? _jsx(ShowAsItWas, { seq: change.seq, intent: change.intent }) : null, change.batch ? _jsx(UndoTurn, { batch: change.batch }) : null] }), _jsx("div", { "data-touched": change.touched.join(" "), style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: change.touched.slice(0, 4).map((id) => (_jsx(Named, { id: id, label: store.graph.has(id) ? nameOf(store, id) : (change.removed?.[id] ?? nameOf(store, id)), go: goes(id) }, id))) })] }, `change:${index}`))) })) : null, remembers ? (_jsxs("div", { "data-testid": "remembered", style: {
236
336
  display: "flex",
237
337
  alignItems: "baseline",
238
338
  justifyContent: "space-between",
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAA2C,MAAM,eAAe,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAkC1C,sCAAsC;AACtC,MAAM,QAAQ,GAAG,CAAC,KAAqC,EAAE,KAAY,EAAU,EAAE,CAAC,CAAC;IACjF,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;IACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,EAAE,EAAE,KAAK,CAAC,MAAM;IAChB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,2EAA2E;IAC3E,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,KAAK,EAAE,KAAK,CAAC,EAAE;IACf,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACpE,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAK,GAAG,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,EAAa,CAAC;IAC5D,uFAAuF;IACvF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAChC;;;;OAIG;IACH,OAAO,OAAO,CACZ,GAAG,EAAE,CACH,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACpD,OAAO,EAAE;SACT,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,GAAG,EAAU,EAAE;QACnB,IAAI,OAAO,IAAI,GAAG;YAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;YAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;YACzB,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC,CAAC;IACN,qFAAqF;IACrF,uDAAuD;IACvD,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,SAAS,YAAY,CAAC,KAAqC,EAAE,GAA2I;IACtM,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,KAAK,MAAM,SAAS,IAAI,EAAE,CAAC,UAAU;YAAE,IAAI,SAAS,CAAC,EAAE,KAAK,aAAa,IAAI,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAa,CAAC,CAAC;IAClO,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,qHAAqH;AACrH,SAAS,GAAG,CAAC,EAAE,MAAM,EAA+B;IAClD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAa,CAAC;IACpE,OAAO,CACL,kBAAQ,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAC/B,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;gBACpK,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAe,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EACzJ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,mBAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAQ,CAAC,CAAC,CAAC,IAAI,IAC1H,CACV,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAA6F;IAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAa,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,OAAO,CACL,6BAAgB,iBAAiB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aACpF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7D,gBAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAC1B,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,GAAI,OAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAG,MAAM,CAAC,MAAM,GAAQ,IAC7F,EACP,iBACE,IAAI,EAAC,QAAQ,iBACD,eAAe,mBACZ,IAAI,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EACrC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAElK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GACrB,IACL,EACL,IAAI,CAAC,CAAC,CAAC,CACN,4BAAgB,gBAAgB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,YAClK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,6BAAgC,eAAe,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aAChF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7D,gBAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAC1B,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAG,GAAG,CAAC,MAAM,GAAQ,EACtE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,wCAA2B,EAAE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,yBAAM,GAAG,CAAC,KAAK,IAAQ,CAAC,CAAC,CAAC,IAAI,IAChH,EACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAI,IACjD,EACL,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,8BAAmB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YAC3F,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACnC,KAAC,KAAK,IAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,IAAnH,EAAE,CAAqH,CACpI,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,KAdD,GAAG,CAAC,KAAK,CAeb,CACN,CAAC,GACC,CACN,CAAC,CAAC,CAAC,IAAI,IACL,CACN,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAA8B;IAC5D;;;;;;;;OAQG;IACH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAa,CAAC;IACtE,mGAAmG;IACnG,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,WAAW,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1B,uDAAuD;IACvD,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CACvB,CAAC;IAEF,IAAI,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,OAAO,CACL,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,aACnG,iBACE,IAAI,EAAC,QAAQ,iBACD,WAAW,EACvB,KAAK,EACH,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,0CAA0C;gBAE5F;;;;;;;;;mBASG;gBACH,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,CAAC;wBACH,kFAAkF;wBAClF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAC9F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC5E,IAAI,MAAM;4BAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChE,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBACD;;;;;mBAKG;gBACH,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,SAAS;oBACnB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzF,YAEA,OAAO,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,GACzC,EACN,OAAO,CAAC,CAAC,CAAC,CACT,8BACc,cAAc,EAC1B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,YAE/G,OAAO,GACH,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAqD;IAC5F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IACxC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,iBACD,WAAW,gBACX,iCAAiC,MAAM,GAAG,EACtD,KAAK,EAAC,6BAA6B,kBACrB,IAAI,EAClB,cAAc,EAAE,gBAAgB,EAChC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EACjC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,YAEzK,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,aAClF,eAAM,CAAC,EAAC,+BAA+B,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,GAAG,EACpH,eAAM,CAAC,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,EAC5H,eAAM,CAAC,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,GAAG,IACnG,GACC,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACL,YACE,IAAI,EAAC,QAAQ,iBACD,aAAa,EACzB,KAAK,EAAC,kEAAkE,EACxE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;QACD;;;;WAIG;QACH,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,0BAA0B;YACjC,cAAc,EAAE,WAAW;YAC3B,mBAAmB,EAAE,4BAA4B;YACjD,mBAAmB,EAAE,CAAC;SACvB,4BAGC,CACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAA+F;IAC3H,IAAI,CAAC,EAAE;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;IACvC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,iBACD,iBAAiB,iBAChB,EAAE,EACf,KAAK,EAAE,SAAS,KAAK,EAAE,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrB,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,EACnF,SAAS,EAAC,yBAAyB,YAEnC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,GACf,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,SAAS,GAAG,KAAK,GAkBlB;IACC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAa,CAAC;IAC3E,qFAAqF;IACrF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAE/D;;;;;;;;;OASG;IACH,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,yJAAyJ;IACzJ,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAU,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAElK,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEhG,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAClC,kBACE,IAAI,EAAC,QAAQ,iBACD,iBAAiB,KACzB,OAAO,CAAC,OAAO,EACnB,OAAO,EAAE,OAAO,CAAC,MAAM,EACvB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,EAC5D,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,OAAO;oBAChB,wGAAwG;oBACxG,YAAY,EAAE,CAAC;oBACf,MAAM,EAAE,uBAAuB;oBAC/B,UAAU,EAAE,aAAa;oBACzB,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,0BAA0B;iBACtE,aAEA,OAAO,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EACpI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAEzC,eAAK,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,aAC7K,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,GAAG,EACrF,eAAM,CAAC,EAAC,uBAAuB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,IAC/H,EACN,eAAM,SAAS,EAAC,uBAAuB,0BAAiB,IACjD,EAQR,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B,cAAK,MAAM,uBAAa,mBAAmB,YACxC,IAAI,GACD,CACP,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,CAAC,CAAC;YACN,oFAAoF;YACpF,sBACM,OAAO,CAAC,IAAI,gBACL,UAAU,iBACT,UAAU,2BACA,EAAE,EACxB,KAAK,EAAE;oBACL,GAAG,aAAa;oBAChB,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,mBAAmB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;oBACvB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,EAAE;oBACX,YAAY,EAAE,EAAE;oBAChB,MAAM,EAAE,+BAA+B;oBACvC,UAAU,EAAE,sBAAsB;oBAClC,SAAS,EAAE,0BAA0B;iBACtC,aAGD,aAAI,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,yBAAe,EAC1D,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CACpB,8BACc,gBAAgB,EAC5B,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM;4BACf,GAAG,EAAE,CAAC;4BACN,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7D,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gCACxC,CAAC,CAAC,EAAE,YAAY,EAAE,+BAA+B,EAAE;gCACnD,CAAC,CAAC,EAAE,CAAC;yBACR,aAED,eACE,KAAK,EAAE;oCACL,QAAQ,EAAE,SAAS;oCACnB,aAAa,EAAE,QAAQ;oCACvB,aAAa,EAAE,WAAW;oCAC1B,KAAK,EAAE,0BAA0B;iCAClC,iCAGI,EACN,IAAI,IACD,CACP,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YAC7E,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACtC,cAEE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,aAE3E,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7D,8BACc,MAAM,EAClB,KAAK,EAAE;gDACL,KAAK,EAAE,CAAC;gDACR,MAAM,EAAE,CAAC;gDACT,YAAY,EAAE,GAAG;gDACjB,IAAI,EAAE,UAAU;gDAChB,UAAU,EACR,IAAI,CAAC,KAAK,KAAK,SAAS;oDACtB,CAAC,CAAC,uBAAuB;oDACzB,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;wDACvB,CAAC,CAAC,qBAAqB;wDACvB,CAAC,CAAC,4BAA4B;6CACrC,GACD,EAUF,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,aAAI,GAAG,EACzC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK;oDAC1E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IACrB,IACH,EAOL,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACvD,8BAAiB,gBAAgB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,aAEpG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAChD,KAAC,KAAK,IAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,IAAlD,EAAE,CAAoD,CACnE,CAAC,EACD,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,kBAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,IAAQ,CAAC,CAAC,CAAC,IAAI,IAC7H,CACP,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CACxE,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YAMvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;yCACvB,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;yCAC1E,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;yCACX,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,KAAK,IAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAA7D,IAAI,CAA6D,CAC9E,CAAC,GACA,CACP,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,cAAK,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAG,IAAI,CAAC,KAAK,GAAO,CAClF,CAAC,CAAC,CAAC,IAAI,KAjEH,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,CAkEvB,CACN,CAAC,GACC,CACN,CAAC,CAAC,CAAC,IAAI,EAEP,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB,4BACc,UAAU,EACtB,KAAK,EAAE;4BACL,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,CAAC;4BACV,SAAS,EAAE,MAAM;4BACjB,OAAO,EAAE,MAAM;4BACf,GAAG,EAAE,CAAC;4BACN,QAAQ,EAAE,WAAW;yBACtB,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,SAAS,IAAoD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAxE,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,CAAgC,CAC7F,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACpB,qGAAqG;wBACrG,4BAAwC,iBAAiB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,YAC5G,+BAAmB,EAAE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,EAAE,QAAQ,EAAE,YACpF,MAAM,CAAC,MAAM,GACT,IAHA,UAAU,KAAK,EAAE,CAIrB,CACN,CAAC,CAAC,CAAC,CACJ,cAA4B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAC9E,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7D,gBAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAC1B,kBAAQ,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAU/B,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;4DACpK,CAAC,CAAC,KAAK;4DACP,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAe,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EACzJ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,mBAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAQ,CAAC,CAAC,CAAC,IAAI,IAC1H,EAAC,GAAG,EACb,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAG,MAAM,CAAC,MAAM,GAAQ,EACzE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,wCAA2B,EAAE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,yBAAM,MAAM,CAAC,KAAK,IAAQ,CAAC,CAAC,CAAC,IAAI,IACtH,EACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,EAC7E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,IACpD,EACN,8BACgB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EACtC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACtC,KAAC,KAAK,IAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,IAAtH,EAAE,CAAwH,CACvI,CAAC,GACE,KA/BC,UAAU,KAAK,EAAE,CAgCrB,CACJ,CACF,GACE,CACN,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,CAAC,CAAC,CACX,8BACc,YAAY,EACxB,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,UAAU;4BACtB,cAAc,EAAE,eAAe;4BAC/B,GAAG,EAAE,EAAE;4BACP,UAAU,EAAE,CAAC;4BACb,SAAS,EAAE,+BAA+B;4BAC1C,QAAQ,EAAE,WAAW;4BACrB,KAAK,EAAE,0BAA0B;yBAClC,aAED,wDAAuC,EACvC,KAAC,UAAU,KAAG,IACV,CACP,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-seat.d.ts","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS;IACjD,uEAAuE;IACvE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC7C,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE,cAAc,CAAC,CAAC,CAAC,+BAmInB"}
1
+ {"version":3,"file":"agent-seat.d.ts","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS;IACjD,uEAAuE;IACvE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC7C,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE,cAAc,CAAC,CAAC,CAAC,+BAoInB"}
@@ -19,7 +19,7 @@ import { useEffect, useMemo, useState } from "react";
19
19
  * button is refused in the same breath the actions strip is.
20
20
  */
21
21
  export function AgentSeat({ label, busyLabel, count, idle, gate, who, testId, onCall, run, }) {
22
- const { store, views, principal, registerSeatWho, noteSeat, session, app } = useGraview();
22
+ const { store, views, principal, registerSeatWho, noteSeat, session, app, ai } = useGraview();
23
23
  /*
24
24
  * ONE ROBOT for the tab's seat and its chat: the seat registers its name
25
25
  * and the chat writes as it, so the two surfaces are one body in the city.
@@ -42,7 +42,8 @@ export function AgentSeat({ label, busyLabel, count, idle, gate, who, testId, on
42
42
  derive: () => ({ pins: loadPins() }),
43
43
  places: () => views.places(),
44
44
  ...(app ? { app } : {}),
45
- }), [store, principal, who, session, views, app]);
45
+ near: ai.near,
46
+ }), [store, principal, who, session, views, app, ai.near]);
46
47
  const agent = useMemo(() => createInAppAdapter(runtime), [runtime]);
47
48
  const [busy, setBusy] = useState(false);
48
49
  const [refused, setRefused] = useState(null);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-seat.js","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-seat.js","sourceRoot":"","sources":["../../src/workbench/agent-seat.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,10 @@ import type { Affordance, OpenParameter } from "@graview/tools";
10
10
  * picker when it names a node, a date field when it is a date, an enum's own
11
11
  * options when it is a choice.
12
12
  */
13
- export declare function AnswerArgs({ affordance, onApply, onCancel, }: {
13
+ export declare function AnswerArgs({ affordance, onApply, onCancel, store: given, }: {
14
14
  readonly affordance: Affordance;
15
+ /** The store it asks about, where it is drawn outside a provider (a routed face's list); the provider's otherwise. */
16
+ readonly store?: Store<AnySchema>;
15
17
  /** Applies the answers. Returns the arguments a refusal named, when it named any, so the ask goes back to them. */
16
18
  onApply: (args: Record<string, unknown>) => readonly string[] | void;
17
19
  onCancel: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"answer-args.d.ts","sourceRoot":"","sources":["../../src/workbench/answer-args.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAGhI,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKhE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,OAAO,EACP,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,mHAAmH;IACnH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACrE,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,sCA4XA;AAID,2EAA2E;AAC3E,eAAO,MAAM,KAAK,KAAK,CAAC;AAoBxB;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EACvB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAC1C,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA0BlE"}
1
+ {"version":3,"file":"answer-args.d.ts","sourceRoot":"","sources":["../../src/workbench/answer-args.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+E,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAKxI,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOhE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,EAAE,KAAK,GACb,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,sHAAsH;IACtH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,mHAAmH;IACnH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACrE,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,sCA0bA;AAwBD,2EAA2E;AAC3E,eAAO,MAAM,KAAK,KAAK,CAAC;AAoBxB;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EACvB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAC1C,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA0BlE"}
@@ -1,8 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { argumentWords, edgeWords, humanizeField, labelOf, nounOf, tellApart } from "@graview/core";
2
+ import { humanizeField, isRepeatField, labelOf, linkedRelationOf, nounOf, repeatedBy } from "@graview/core";
3
+ import { edgeWords } from "@graview/core/words";
4
+ import { amountBox, amountInBox, argumentWords, parseDuration, readAmount, tellApart } from "@graview/core/words";
3
5
  import { edgeOfSelection, kindsOf } from "@graview/layout/view";
4
- import { useGraview } from "@graview/react/provider";
6
+ import { useGraviewIfAny } from "@graview/react/provider";
5
7
  import { Files } from "../files-door.js";
8
+ import { LinkedPicker } from "../linked-record-door.js";
9
+ import { RepeatPicker } from "../repeat-picker-door.js";
6
10
  import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
7
11
  /**
8
12
  * The controls for one action's unanswered arguments, walked in order.
@@ -14,18 +18,35 @@ import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "re
14
18
  * picker when it names a node, a date field when it is a date, an enum's own
15
19
  * options when it is a choice.
16
20
  */
17
- export function AnswerArgs({ affordance, onApply, onCancel, }) {
18
- const { store } = useGraview();
21
+ export function AnswerArgs({ affordance, onApply, onCancel, store: given, }) {
22
+ const provided = useGraviewIfAny();
23
+ const store = (given ?? provided?.store);
19
24
  const [answers, setAnswers] = useState({});
20
25
  const [draft, setDraft] = useState("");
21
26
  /** What has been chosen so far, for an argument that takes several. */
22
27
  const [picked, setPicked] = useState(NOTHING_PICKED);
28
+ /** How a date repeats, for an argument that says so: what the picker holds. */
29
+ const [repeat, setRepeat] = useState(undefined);
23
30
  // Stable across the walk's steps, so the group's label never dangles.
24
31
  const promptId = useId();
25
32
  const asked = useRef(null);
26
33
  const remaining = affordance.open.filter((parameter) => !(parameter.name in answers));
27
34
  const parameter = remaining[0];
28
- useEffect(() => setDraft(""), [parameter?.name]);
35
+ const act = store.allMutations().find((mutation) => mutation.name === affordance.mutation);
36
+ /*
37
+ * A RECORD'S CHANGE ASKS FROM WHAT THE RECORD HOLDS (Roadmap
38
+ * f-edit-form-prefilled): each question of "Change the feature" opens on
39
+ * the record's value — typed in its box, or its choice marked — and an
40
+ * answer left as it was is not sent, so the change says only what changed.
41
+ */
42
+ const start = useMemo(() => editStartOf(act, store, affordance.args ?? {}), [act, store, affordance.args]);
43
+ const now = parameter ? start[parameter.name] : undefined;
44
+ useEffect(() => {
45
+ setDraft(typedOf(now, parameter?.shape));
46
+ setPicked(Array.isArray(now) ? now : NOTHING_PICKED);
47
+ setRepeat(now);
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ }, [parameter?.name]);
29
50
  /*
30
51
  * AND IT IS ON THE SCREEN.
31
52
  *
@@ -67,7 +88,9 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
67
88
  * of them is allowed: the mutation's own refusal then says what it
68
89
  * needed, on the button, which is the honest answer to an empty change.
69
90
  */
70
- const answer = (value) => {
91
+ const answer = (given) => {
92
+ // An answer the record already holds changes nothing, and is not sent.
93
+ const value = now !== undefined && JSON.stringify(given) === JSON.stringify(now) ? undefined : given;
71
94
  const next = { ...answers, [parameter.name]: value };
72
95
  const outstanding = affordance.open.filter((other) => !(other.name in next));
73
96
  if (outstanding.length === 0) {
@@ -87,9 +110,17 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
87
110
  };
88
111
  const skip = parameter.optional ? (_jsx("button", { type: "button", onClick: () => answer(undefined), style: { fontSize: "0.8125rem" }, children: "Skip" })) : null;
89
112
  const shape = parameter.shape ?? { type: "unknown" };
113
+ const amount = shape.type === "number" ? shape.amount : undefined;
90
114
  const choices = choicesFor(parameter, shape);
91
115
  /* The record's own words for an argument that fills one of its fields: "Body style", "SUV" (see `argumentWords`). */
92
- const words = argumentWords(store.schema, store.allMutations().find((mutation) => mutation.name === affordance.mutation), parameter.name);
116
+ const words = argumentWords(store.schema, act, parameter.name);
117
+ // A record in another app (FR-171), read off the act's own input.
118
+ const linked = linkedRelationOf((act?.input?.shape ?? {})[parameter.name]);
119
+ // How a date repeats, asked with the picker the pages ask with, beside the date it repeats — never as a box to type in.
120
+ const repeats = isRepeatField((act?.input?.shape ?? {})[parameter.name]);
121
+ const repeated = repeatedBy(parameter.name);
122
+ // The choice the record holds, marked among the others: a yes or no as one of the two.
123
+ const was = typeof now === "boolean" ? (now ? "yes" : "no") : now;
93
124
  /*
94
125
  * A PICKER THAT DROPS CHOICES MAKES THE ACT IMPOSSIBLE, AND SAYS NOTHING.
95
126
  *
@@ -183,11 +214,17 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
183
214
  gridTemplateColumns: "minmax(0, 1fr)",
184
215
  gap: 4,
185
216
  padding: "5px 0 2px",
186
- }, children: [affordance.open.length > 1 || choices.length > 0 ? (_jsx("span", { id: promptId, style: { fontSize: "0.75rem", color: "var(--graview-ink-faint)" }, children: step })) : null, choices.length > SHOWN ? (_jsx("input", { type: "search", value: among, onChange: (event) => setAmong(event.target.value), placeholder: `Filter ${choices.length}…`, "aria-label": `Filter ${asking}`, "data-testid": "ask-filter", style: { font: "inherit", fontSize: "0.8125rem", minWidth: 0, padding: "3px 7px" } })) : null, fileShape ? (
217
+ }, children: [affordance.open.length > 1 || choices.length > 0 ? (_jsx("span", { id: promptId, style: { fontSize: "0.75rem", color: "var(--graview-ink-faint)" }, children: step })) : null, choices.length > SHOWN ? (_jsx("input", { type: "search", value: among, onChange: (event) => setAmong(event.target.value), placeholder: `Filter ${choices.length}…`, "aria-label": `Filter ${asking}`, "data-testid": "ask-filter", style: { font: "inherit", fontSize: "0.8125rem", minWidth: 0, padding: "3px 7px" } })) : null, repeats ? (_jsxs("form", { style: { display: "grid", gap: 4 }, onSubmit: (event) => {
218
+ event.preventDefault();
219
+ // Repeating no more is said as null, which the field keeps; what it held before is not sent again.
220
+ answer(repeat ?? (now === undefined ? undefined : null));
221
+ }, children: [_jsx(RepeatPicker, { value: repeat, onChange: setRepeat, start: repeated ? (answers[repeated] ?? start[repeated]) : undefined, label: `${repeated ? argumentWords(store.schema, act, repeated).label : words.label} repeats`, name: parameter.name }), _jsxs("span", { style: { display: "flex", gap: 4 }, children: [_jsx("button", { type: "submit", style: { fontSize: "0.8125rem" }, children: remaining.length > 1 ? "Next" : "Apply" }), skip] })] })) : linked ? (
222
+ /* A record in another app (FR-171) is answered by picking one there, from what the host lists for this seat. */
223
+ _jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(LinkedPicker, { relation: linked, value: now, onChange: answer, label: words.label }), skip] })) : fileShape ? (
187
224
  /* A picture or a document is answered by putting it there: the host's upload, then the act (FR-163). */
188
- _jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(Files, { as: "control", value: undefined, onChange: answer, several: several, image: fileShape.image === true, label: words.label }), skip] })) : choices.length > 0 ? (_jsxs("div", { role: "group", "aria-labelledby": promptId, style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: [matching.slice(0, SHOWN).map((choice) => {
189
- const held = picked.includes(choice);
190
- return (_jsx("button", { type: "button", "aria-label": `${asking}: ${say(choice)}`, ...(several ? { "aria-pressed": held } : {}), style: {
225
+ _jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx(Files, { as: "control", value: now, onChange: answer, several: several, image: fileShape.image === true, label: words.label }), skip] })) : choices.length > 0 ? (_jsxs("div", { role: "group", "aria-labelledby": promptId, style: { display: "flex", flexWrap: "wrap", gap: 4 }, children: [matching.slice(0, SHOWN).map((choice) => {
226
+ const held = several ? picked.includes(choice) : choice === was;
227
+ return (_jsx("button", { type: "button", "aria-label": `${asking}: ${say(choice)}`, ...(several ? { "aria-pressed": held } : held ? { "aria-current": true } : {}), style: {
191
228
  padding: "3px 9px",
192
229
  fontSize: "0.8125rem",
193
230
  ...(held
@@ -208,6 +245,11 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
208
245
  // nothing.
209
246
  style: { display: "flex", flexWrap: "wrap", gap: 4 }, onSubmit: (event) => {
210
247
  event.preventDefault();
248
+ // The record's own value, left as it was typed in: nothing to change.
249
+ if (now !== undefined && draft === typedOf(now, shape)) {
250
+ answer(undefined);
251
+ return;
252
+ }
211
253
  /*
212
254
  * SEVERAL WORDS, typed as one line: "Heated seats, Apple CarPlay"
213
255
  * is two features, and nothing is none. A list of text asked as
@@ -220,7 +262,14 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
220
262
  }
221
263
  if (draft.trim().length === 0)
222
264
  return;
223
- answer(shape.type === "number" ? Number(draft) : draft);
265
+ // An amount as it is said: "$1,250.50" is 1250.5; what is no number is not sent.
266
+ if (amount) {
267
+ const read = readAmount(draft, amount);
268
+ if (read !== undefined)
269
+ answer(read);
270
+ return;
271
+ }
272
+ answer(shape.type === "number" ? (shape.duration ? (parseDuration(draft) ?? draft) : Number(draft)) : draft);
224
273
  }, children: [shape.type === "text" && shape.long ? (
225
274
  /* Prose is asked for in a text area (FR-147): Enter is a new line, Ctrl or ⌘ with Enter answers. */
226
275
  _jsx("textarea", { autoFocus: true, name: parameter.name, "aria-label": words.label, placeholder: words.label, value: draft, rows: 4, onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
@@ -245,14 +294,14 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
245
294
  fieldSizing: "content",
246
295
  minHeight: "5.5em",
247
296
  maxHeight: "40vh",
248
- } })) : (_jsx("input", { autoFocus: true, type: shape.type === "date" ? (shape.time ? "datetime-local" : "date") : shape.type === "number" ? "number" : "text",
297
+ } })) : (_jsx("input", { autoFocus: true, type: shape.type === "date" ? (shape.time ? "datetime-local" : "date") : shape.type === "number" && !shape.duration && !amount ? "number" : shape.type === "text" && shape.holds === "phone" ? "tel" : "text", ...(amount ? { inputMode: "decimal", "data-graview-amount": amount.format ?? "unit" } : {}),
249
298
  /*
250
299
  * A FIELD IS ASKED FOR IN WORDS. `dependsOn` and `label` are the
251
300
  * declaration's identifiers; the pages face has always humanized
252
301
  * them ("Depends on", "Label") and the scene asked with the raw
253
302
  * key, so the same act read two ways on the two faces.
254
303
  */
255
- name: parameter.name, "aria-label": words.label, placeholder: listed ? `${words.label}, separated by commas` : words.label, value: draft, ...(shape.type === "number" && shape.min !== undefined ? { min: shape.min } : {}), ...(shape.type === "number" && shape.max !== undefined ? { max: shape.max } : {}), ...(shape.type === "number" && shape.step !== undefined ? { step: shape.step } : {}), onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
304
+ name: parameter.name, "aria-label": words.label, placeholder: listed ? `${words.label}, separated by commas` : amount ? `${words.label}, ${amountBox(amount).hint} — ${amountBox(amount).prefix ?? ""}${amountBox(amount).placeholder}${amountBox(amount).suffix ? ` ${amountBox(amount).suffix}` : ""}` : words.label, value: draft, ...(shape.type === "number" && shape.min !== undefined ? { min: shape.min } : {}), ...(shape.type === "number" && shape.max !== undefined ? { max: shape.max } : {}), ...(shape.type === "number" && shape.step !== undefined ? { step: shape.step } : {}), onChange: (event) => setDraft(event.target.value), onKeyDown: (event) => {
256
305
  if (event.key === "Escape")
257
306
  onCancel();
258
307
  }, style: {
@@ -268,6 +317,27 @@ export function AnswerArgs({ affordance, onApply, onCancel, }) {
268
317
  } })), _jsx("button", { type: "submit", disabled: !listed && draft.trim().length === 0, style: { fontSize: "0.8125rem" }, children: remaining.length > 1 ? "Next" : "Apply" }), skip] }))] }));
269
318
  }
270
319
  const NOTHING_PICKED = [];
320
+ /**
321
+ * The record's own values for each field its derived edit asks — what
322
+ * `editStart` (`@graview/core/forms`) gives a page's form, read here
323
+ * without that barrel, which the scene would otherwise fetch whole before
324
+ * it draws. Nothing for any other act.
325
+ */
326
+ function editStartOf(act, store, args) {
327
+ const id = act?.derived?.act === "edit" && act.subject ? args[act.subject.arg] : undefined;
328
+ const node = typeof id === "string" ? store.graph.getNode(id) : undefined;
329
+ return node ? Object.fromEntries((act.writes ?? []).filter((field) => node[field] !== undefined && node[field] !== null).map((field) => [field, node[field]])) : {};
330
+ }
331
+ /** A record's value as its ask's box holds it: "1,250.50" beside its "$", "2026-10-20", "Heated seats, CarPlay". */
332
+ function typedOf(value, shape) {
333
+ if (typeof value === "number")
334
+ return shape?.type === "number" && shape.amount ? amountInBox(value, shape.amount) : String(value);
335
+ if (Array.isArray(value))
336
+ return value.every((one) => typeof one === "string") ? value.join(", ") : "";
337
+ if (typeof value !== "string")
338
+ return "";
339
+ return shape?.type === "date" ? (shape.time ? value.slice(0, 16).replace(" ", "T") : value.slice(0, 10)) : value;
340
+ }
271
341
  /** How many choices an ask shows at once. Past this it offers a filter. */
272
342
  export const SHOWN = 10;
273
343
  function choicesFor(parameter, shape) {