@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
@@ -0,0 +1,262 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { POPOVER_STYLE, useTopLayer } from "@graview/react/provider";
3
+ import { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
4
+ /**
5
+ * THE FIRST LOOK'S HINTS (`first-look-door.tsx`), fetched as they are
6
+ * first shown: one at a time, beside the control each names — under it, or
7
+ * over it where there is more room above, never on it — in the top layer
8
+ * with the other popovers, the keyboard on its Next.
9
+ */
10
+ /** Where each named control is drawn: the framework's own test ids, on every face's bar and the seat. */
11
+ const FOUND = {
12
+ faces: '[data-testid="app-faces"]',
13
+ problems: '[data-testid="standing"], [data-testid="standing-link"]',
14
+ activity: '[data-testid="activity-button"]',
15
+ ask: '[data-testid="seat-field"]',
16
+ find: '[data-testid="app-find"], [data-testid="app-find-open"]',
17
+ profile: '[data-testid="profile-button"]',
18
+ home: '[data-testid="app-home"]',
19
+ };
20
+ /**
21
+ * WHETHER A CONTROL IS DRAWN: in the page, in nothing hidden, laid out and
22
+ * more than the one clipped pixel a word that gave way to a mark keeps for
23
+ * its name. Where nothing is laid out at all (a test's document), what is
24
+ * in the page is drawn.
25
+ */
26
+ function drawn(element) {
27
+ if (!element.isConnected || element.closest("[hidden], [inert], [aria-hidden='true']"))
28
+ return false;
29
+ if (typeof element.checkVisibility !== "function")
30
+ return true;
31
+ if (!element.checkVisibility({ visibilityProperty: true }))
32
+ return false;
33
+ const box = element.getBoundingClientRect();
34
+ return box.width > 1 && box.height > 1;
35
+ }
36
+ /** The control a hint points at, as it is drawn now; null when it is not. */
37
+ export function firstLookAnchor(root, anchor) {
38
+ if (!root)
39
+ return null;
40
+ for (const element of root.querySelectorAll(FOUND[anchor]))
41
+ if (drawn(element))
42
+ return element;
43
+ return null;
44
+ }
45
+ /** The framework's own hints, in the words of the app they are drawn in. */
46
+ function frameworkSteps(root) {
47
+ const said = (selector, attribute, otherwise) => root.querySelector(selector)?.getAttribute(attribute)?.trim() || otherwise;
48
+ const scene = said('[data-testid="app-face-scene"]', "title", "Scene");
49
+ const pages = said('[data-testid="app-face-pages"]', "title", "Pages");
50
+ return [
51
+ { anchor: "faces", title: `${scene} or ${pages}`, words: `One app, two ways to see it: ${scene} draws every record as one picture, ${pages} as lists and pages to read and change.` },
52
+ { anchor: "problems", title: "Whether all is in order", words: "The dot is green while every rule holds. When one is broken it counts what is wrong, and pressing it shows each one and where." },
53
+ { anchor: "activity", title: "Activity", words: "What has happened here and who did it, each change with its way back." },
54
+ { anchor: "ask", title: said('[data-testid="seat-field"]', "aria-label", "Ask"), words: "Ask in your own words: where something is, what it means, or to make a change for you." },
55
+ ];
56
+ }
57
+ /** How long the page is left to settle before the first hint, and the longest it is waited for. */
58
+ const QUIET_MS = 300;
59
+ const SETTLE_MS = 1200;
60
+ const GIVE_UP_MS = 15000;
61
+ export function FirstLookHints({ root, steps, onEnd }) {
62
+ const [run, setRun] = useState(null);
63
+ const returnTo = useRef(null);
64
+ const ended = useRef(false);
65
+ const told = useRef(onEnd);
66
+ told.current = onEnd;
67
+ /*
68
+ * WAITING FOR THE APP TO DRAW: its bar, then a moment with nothing new
69
+ * arriving — a face is fetched as it is drawn, and the Ask box with it —
70
+ * and then the hints whose controls are drawn, in order.
71
+ */
72
+ useEffect(() => {
73
+ const begun = Date.now();
74
+ let quiet = Date.now();
75
+ let barSeen = null;
76
+ let timer;
77
+ const watch = new MutationObserver(() => (quiet = Date.now()));
78
+ watch.observe(document.body, { childList: true, subtree: true });
79
+ const look = () => {
80
+ const at = root();
81
+ const now = Date.now();
82
+ if (at?.querySelector('[data-testid="app-bar"]')) {
83
+ barSeen ??= now;
84
+ if (now - quiet >= QUIET_MS || now - barSeen >= SETTLE_MS) {
85
+ const list = [...frameworkSteps(at), ...steps].filter((step) => firstLookAnchor(at, step.anchor) !== null);
86
+ if (list.length === 0) {
87
+ ended.current = true;
88
+ told.current(null);
89
+ return;
90
+ }
91
+ returnTo.current = document.activeElement;
92
+ setRun({ list, at: 0 });
93
+ return;
94
+ }
95
+ }
96
+ else if (now - begun >= GIVE_UP_MS) {
97
+ ended.current = true;
98
+ told.current(null);
99
+ return;
100
+ }
101
+ timer = setTimeout(look, 100);
102
+ };
103
+ timer = setTimeout(look, 100);
104
+ return () => {
105
+ clearTimeout(timer);
106
+ watch.disconnect();
107
+ };
108
+ // Begun once: the app is waited for as it first draws.
109
+ // eslint-disable-next-line react-hooks/exhaustive-deps
110
+ }, []);
111
+ /** The keyboard back where it was before the first hint, or on the app's name when it was nowhere. */
112
+ const giveBack = useCallback(() => {
113
+ const was = returnTo.current;
114
+ const back = was instanceof HTMLElement && was !== document.body && was.isConnected ? was : root()?.querySelector('[data-testid="app-home"]');
115
+ back?.focus({ preventScroll: true });
116
+ }, [root]);
117
+ const end = useCallback((how, back) => {
118
+ if (ended.current)
119
+ return;
120
+ ended.current = true;
121
+ const pane = document.querySelector("[data-testid='first-look']");
122
+ const active = document.activeElement;
123
+ const lost = active === null || active === document.body || (pane !== null && pane.contains(active));
124
+ setRun(null);
125
+ told.current(how);
126
+ if (!back && !lost)
127
+ return;
128
+ giveBack();
129
+ // WebKit can hand the keyboard to <body> as a pane leaves the top layer: asked again a frame later.
130
+ requestAnimationFrame(() => {
131
+ const now = document.activeElement;
132
+ if (now === null || now === document.body)
133
+ giveBack();
134
+ });
135
+ }, [giveBack]);
136
+ /** The next hint whose control is drawn, from `from`; -1 for none. */
137
+ const nextDrawn = useCallback((list, from) => {
138
+ const at = root();
139
+ for (let index = from; index < list.length; index++)
140
+ if (firstLookAnchor(at, list[index].anchor))
141
+ return index;
142
+ return -1;
143
+ }, [root]);
144
+ const next = useCallback(() => {
145
+ if (!run)
146
+ return;
147
+ const index = nextDrawn(run.list, run.at + 1);
148
+ if (index < 0)
149
+ end("finished", true);
150
+ else
151
+ setRun({ list: run.list, at: index });
152
+ }, [run, nextDrawn, end]);
153
+ /* A hint whose control went — a face changed under it — gives way to the next one drawn. */
154
+ useEffect(() => {
155
+ if (!run)
156
+ return;
157
+ const at = root();
158
+ if (!at)
159
+ return;
160
+ let frame = 0;
161
+ const check = () => {
162
+ cancelAnimationFrame(frame);
163
+ frame = requestAnimationFrame(() => {
164
+ if (!firstLookAnchor(root(), run.list[run.at].anchor))
165
+ next();
166
+ });
167
+ };
168
+ const watch = new MutationObserver(check);
169
+ watch.observe(at, { childList: true, subtree: true, attributes: true, attributeFilter: ["hidden", "class", "data-switch-drawn"] });
170
+ return () => {
171
+ cancelAnimationFrame(frame);
172
+ watch.disconnect();
173
+ };
174
+ }, [run, root, next]);
175
+ if (!run)
176
+ return null;
177
+ const step = run.list[run.at];
178
+ const last = nextDrawn(run.list, run.at + 1) < 0;
179
+ return (_jsx(Hint, { root: root, step: step, position: run.at + 1, total: run.list.length, last: last, onNext: next, onEnd: end }, run.at));
180
+ }
181
+ const paneStyle = {
182
+ ...POPOVER_STYLE,
183
+ width: "min(320px, calc(100vw - 24px))",
184
+ maxHeight: "min(70vh, 420px)",
185
+ overflow: "auto",
186
+ padding: "12px 14px",
187
+ borderRadius: 10,
188
+ border: "1px solid var(--graview-edge)",
189
+ background: "var(--graview-float)",
190
+ boxShadow: "var(--graview-lift-high)",
191
+ color: "var(--graview-ink)",
192
+ fontFamily: "var(--graview-font-body, system-ui)",
193
+ fontSize: "0.875rem",
194
+ lineHeight: 1.45,
195
+ overflowWrap: "anywhere",
196
+ };
197
+ const buttonStyle = {
198
+ minHeight: 32,
199
+ padding: "0 12px",
200
+ borderRadius: 8,
201
+ font: "inherit",
202
+ fontWeight: 600,
203
+ cursor: "pointer",
204
+ };
205
+ /**
206
+ * ONE HINT: a non-modal dialog named by its control, said as the keyboard
207
+ * goes in; Next (Done on the last), Skip, Escape. A press anywhere else
208
+ * ends the look: the person has gone to use the app.
209
+ */
210
+ function Hint({ root, step, position, total, last, onNext, onEnd, }) {
211
+ const pane = useRef(null);
212
+ const primary = useRef(null);
213
+ const id = useId().replace(/:/g, "");
214
+ // The control as it is drawn whenever the hint is placed: a bar drawn again has a new one.
215
+ const anchor = useMemo(() => ({ get current() { return firstLookAnchor(root(), step.anchor); } }), [root, step.anchor]);
216
+ // Hung from the control's nearer edge, so it stays beside it.
217
+ const [align] = useState(() => {
218
+ const box = anchor.current?.getBoundingClientRect();
219
+ const width = typeof document === "undefined" ? 0 : document.documentElement.clientWidth || innerWidth;
220
+ return box && box.left + box.width / 2 < width / 2 ? "start" : "end";
221
+ });
222
+ useTopLayer(pane, true, anchor, { align });
223
+ useLayoutEffect(() => {
224
+ primary.current?.focus({ preventScroll: true });
225
+ }, []);
226
+ const latest = useRef(onEnd);
227
+ latest.current = onEnd;
228
+ useEffect(() => {
229
+ const away = (event) => {
230
+ if (event.target instanceof Node && pane.current?.contains(event.target))
231
+ return;
232
+ latest.current("dismissed", false);
233
+ };
234
+ // Escape where the keyboard is not in the hint, nor in a field or another open popover, ends it too.
235
+ const key = (event) => {
236
+ if (event.key !== "Escape" || event.defaultPrevented)
237
+ return;
238
+ const target = event.target;
239
+ if (target instanceof Node && pane.current?.contains(target))
240
+ return;
241
+ if (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement)
242
+ return;
243
+ if ([...document.querySelectorAll("[data-graview-overlay]:not([hidden])")].some((open) => open !== pane.current))
244
+ return;
245
+ latest.current("dismissed", true);
246
+ };
247
+ document.addEventListener("pointerdown", away, true);
248
+ document.addEventListener("keydown", key);
249
+ return () => {
250
+ document.removeEventListener("pointerdown", away, true);
251
+ document.removeEventListener("keydown", key);
252
+ };
253
+ }, []);
254
+ return (_jsxs("div", { ref: pane, popover: "manual", role: "dialog", "aria-modal": "false", "aria-labelledby": `${id}-title`, "aria-describedby": `${id}-words`, tabIndex: -1, "data-testid": "first-look", "data-first-look-anchor": step.anchor, "data-graview-overlay": "", onKeyDown: (event) => {
255
+ if (event.key !== "Escape")
256
+ return;
257
+ event.preventDefault();
258
+ event.stopPropagation();
259
+ onEnd("dismissed", true);
260
+ }, style: paneStyle, children: [_jsxs("p", { style: { margin: 0, fontSize: "0.75rem", color: "var(--graview-ink-muted)" }, "data-testid": "first-look-count", children: [position, " of ", total] }), _jsx("p", { id: `${id}-title`, style: { margin: "2px 0 4px", fontWeight: 600, fontSize: "0.9375rem" }, "data-testid": "first-look-title", children: step.title }), _jsx("p", { id: `${id}-words`, style: { margin: 0 }, "data-testid": "first-look-words", children: step.words }), _jsxs("div", { style: { display: "flex", flexWrap: "wrap", justifyContent: "flex-end", gap: 8, marginTop: 12 }, children: [last ? null : (_jsx("button", { type: "button", "data-testid": "first-look-skip", onClick: () => onEnd("dismissed", true), style: { ...buttonStyle, fontWeight: 500, border: "1px solid transparent", background: "none", color: "var(--graview-ink-muted)" }, children: "Skip" })), _jsx("button", { ref: primary, type: "button", "data-testid": last ? "first-look-done" : "first-look-next", onClick: () => (last ? onEnd("finished", true) : onNext()), style: { ...buttonStyle, border: "1px solid var(--graview-accent)", background: "var(--graview-accent)", color: "var(--graview-accent-ink)" }, children: last ? "Done" : "Next" })] })] }));
261
+ }
262
+ //# sourceMappingURL=first-look.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-look.js","sourceRoot":"","sources":["../src/first-look.tsx"],"names":[],"mappings":"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"}
package/dist/frame.d.ts CHANGED
@@ -20,13 +20,14 @@ export { AppBar, BarFindContext, barPlaceAt, barPlaces, BAR_HEIGHT, BAR_PHONE, F
20
20
  export { scenePlacesOf, useScenePlaces, WHOLE_KEY, WHOLE_LABEL, type ScenePlaces } from "./scene-places.js";
21
21
  export type { BarFace, BarFaces, BarFind, BarGo, BarPlace, BarPlaceGroup, BarSwitch } from "./app-bar.js";
22
22
  export type { HostAction } from "./profile.js";
23
- export { createNoticeBoard, NoticeBoardContext, Notices, TOAST_MS } from "./notices.js";
23
+ export { createNoticeBoard, fetchNotices, NoticeBoardContext, Notices, TOAST_MS } from "./notices.js";
24
24
  export { appKeyOf, readerLenses } from "./reader-lenses.js";
25
- export { FOOT_MOVED, FOOT_OBSTACLES, NARROW_PICTURE, placeAtTheFoot, placeAtTheTop } from "./notice-place.js";
26
25
  export type { HeldNotice, Notice, NoticeAction, NoticeBoard, NoticeHandle, NoticeTone } from "./notices.js";
27
26
  export { Standing, StandingDot, standingWords } from "./workbench/standing.js";
28
27
  export { descentTarget } from "./workbench/descent.js";
29
28
  export { fetchFrameworkViews, frameworkViewDoors, registerFrameworkViews } from "./view-doors.js";
30
29
  export { useViewportHeight, useWidth, VISUALLY_HIDDEN } from "./primitives/measure.js";
31
30
  export { fetchDeclaredLenses, fetchHomeView, registerDeclaredLenses, registerReaderLenses } from "./declared-lens-doors.js";
31
+ export { FIRST_LOOK_ANCHORS, FirstLookDoor, firstLookKey } from "./first-look-door.js";
32
+ export type { FirstLook, FirstLookAnchor, FirstLookDoorProps, FirstLookEnd, FirstLookOptions, FirstLookStep } from "./first-look-door.js";
32
33
  //# sourceMappingURL=frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/F,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnM,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5G,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9G,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoBH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/F,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnM,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5G,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE5H,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/frame.js CHANGED
@@ -12,18 +12,37 @@
12
12
  * Nothing in this module's files may import a barrel: not this package's,
13
13
  * and not `@graview/react` (`@graview/react/provider` instead).
14
14
  */
15
+ /*
16
+ * TIED DOORS (the headroom after 0.1.29). A bundler splits what a page loads
17
+ * first by WHICH of its doors (each part fetched with `import()`) reach each
18
+ * file: the frame's files reached by the inspector and the seat's panel went
19
+ * in one chunk, those reached by the inspector alone in another, and a page
20
+ * fetched twenty-three chunks before it drew — each with its own list of
21
+ * names in and out, each compressed alone. A door is fetched by a page that
22
+ * has already drawn its frame, so each door imports the barrel the page drew
23
+ * first — this one, `@graview/react/provider` or `@graview/core` — for
24
+ * nothing but that: the files every door reaches are then one set, and a
25
+ * hosted page loads thirteen chunks before it draws, about 4 KB gzipped
26
+ * less. The import costs a door nothing at run time (what it names is
27
+ * already there). Only a barrel every page that fetches the door has drawn
28
+ * first: the embed's faces and a guest's host are fetched by pages that
29
+ * never load `@graview/embed`'s or `@graview/guest/host`'s whole barrel, and
30
+ * a door tied to one of those carried it in.
31
+ * `a-hosted-page-keeps-to-its-budget` counts the chunks.
32
+ */
15
33
  /* The sheet without the scene's own rules: the scene face draws those (`sceneCss`, from `./scene`) — FR-104. */
16
34
  export { DARK, GRAVIEW_BRAND, LIGHT, SCHEMES, themeBaseCss, themeVariables } from "./theme.js";
17
35
  export { Profile } from "./profile.js";
18
36
  export { AppMark, AppTitle, useFavicon } from "./app-title.js";
19
37
  export { AppBar, BarFindContext, barPlaceAt, barPlaces, BAR_HEIGHT, BAR_PHONE, FEWEST_STANDING, HOME_KEY, HOME_PATH, PLACE_GAP, placesThatStand, TOOL, toolStyle, useBarFind } from "./app-bar.js";
20
38
  export { scenePlacesOf, useScenePlaces, WHOLE_KEY, WHOLE_LABEL } from "./scene-places.js";
21
- export { createNoticeBoard, NoticeBoardContext, Notices, TOAST_MS } from "./notices.js";
39
+ export { createNoticeBoard, fetchNotices, NoticeBoardContext, Notices, TOAST_MS } from "./notices.js";
22
40
  export { appKeyOf, readerLenses } from "./reader-lenses.js";
23
- export { FOOT_MOVED, FOOT_OBSTACLES, NARROW_PICTURE, placeAtTheFoot, placeAtTheTop } from "./notice-place.js";
24
41
  export { Standing, StandingDot, standingWords } from "./workbench/standing.js";
25
42
  export { descentTarget } from "./workbench/descent.js";
26
43
  export { fetchFrameworkViews, frameworkViewDoors, registerFrameworkViews } from "./view-doors.js";
27
44
  export { useViewportHeight, useWidth, VISUALLY_HIDDEN } from "./primitives/measure.js";
28
45
  export { fetchDeclaredLenses, fetchHomeView, registerDeclaredLenses, registerReaderLenses } from "./declared-lens-doors.js";
46
+ // A first look that points at the app's own controls, once (its hints fetched as they are first shown).
47
+ export { FIRST_LOOK_ANCHORS, FirstLookDoor, firstLookKey } from "./first-look-door.js";
29
48
  //# sourceMappingURL=frame.js.map
package/dist/frame.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,gHAAgH;AAChH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnM,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAG5G,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE9G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,gHAAgH;AAChH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnM,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAG5G,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5H,wGAAwG;AACxG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { AnySchema } from "@graview/core";
2
2
  import type { ViewSpecsByKind } from "@graview/core/document";
3
3
  import { type ReactViewRegistry } from "@graview/react/provider";
4
+ import "./frame.js";
4
5
  export declare function frameworkViews<S extends AnySchema>(schema: S, specs: ViewSpecsByKind | undefined): ReactViewRegistry<S>;
5
6
  //# sourceMappingURL=framework-views.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-views.d.ts","sourceRoot":"","sources":["../src/framework-views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAY9E,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAMvH"}
1
+ {"version":3,"file":"framework-views.d.ts","sourceRoot":"","sources":["../src/framework-views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG9E,OAAO,YAAY,CAAC;AAUpB,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAMvH"}
@@ -1,6 +1,7 @@
1
1
  import { createViews } from "@graview/react/provider";
2
2
  import { registerDefaultViews } from "./default-views.js";
3
3
  import { registerViewSpecs } from "./spec-views.js";
4
+ import "./frame.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
4
5
  /*
5
6
  * THE FRAMEWORK'S OWN VIEWS FOR A SCHEMA: its default view for every cell,
6
7
  * and the declaration's view specs over them (FR-03), made once per schema
@@ -1 +1 @@
1
- {"version":3,"file":"framework-views.js","sourceRoot":"","sources":["../src/framework-views.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,IAAI,GAAG,IAAI,OAAO,EAA0E,CAAC;AAEnG,MAAM,UAAU,cAAc,CAAsB,MAAS,EAAE,KAAkC;IAC/F,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,MAAmB,EAAE,WAAW,CAAC,MAAmB,CAAC,CAAC,EAAE,MAAmB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnK,OAAO,IAAuC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"framework-views.js","sourceRoot":"","sources":["../src/framework-views.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,YAAY,CAAC,CAAC,2FAA2F;AAEhH;;;;;GAKG;AACH,MAAM,IAAI,GAAG,IAAI,OAAO,EAA0E,CAAC;AAEnG,MAAM,UAAU,cAAc,CAAsB,MAAS,EAAE,KAAkC;IAC/F,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,MAAmB,EAAE,WAAW,CAAC,MAAmB,CAAC,CAAC,EAAE,MAAmB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnK,OAAO,IAAuC,CAAC;AACjD,CAAC"}
package/dist/here.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type AnySchema, type Presence, type Principal, type Store } from "@graview/core";
1
+ import { type AnySchema, type Operation, type Person, type Presence, type Principal, type Store } from "@graview/core";
2
2
  /**
3
3
  * The others, as the bar says them: everybody here but this reader, in any
4
4
  * tab of theirs, each person once however many tabs they have open — the
@@ -27,6 +27,29 @@ export declare function whereSaid(stop: string, input: {
27
27
  readonly title: string;
28
28
  }[];
29
29
  }): string | null;
30
+ /**
31
+ * WHAT SOMEBODY ELSE JUST CHANGED, IN A SENTENCE: "Ben Okafor: Changed the
32
+ * stage of Billing across apps to Shipped". Their ops, never this
33
+ * reader's own or an agent's acting for them (the seat says its own), and
34
+ * never one withheld from this seat; one sentence for the ops that landed
35
+ * together. Null when nothing in them is somebody else's.
36
+ */
37
+ export declare function changeSaid(ops: readonly Operation[], input: {
38
+ readonly store: Store<AnySchema>;
39
+ readonly principal: Principal;
40
+ readonly seats?: readonly {
41
+ readonly label: string;
42
+ readonly principal: Principal;
43
+ }[];
44
+ readonly people?: readonly Person[];
45
+ }): string | null;
46
+ /**
47
+ * SAID ALOUD AS IT LANDS, into the bar's polite region (`TheirChanges` in
48
+ * app-bar.tsx), which is there whether or not anybody is shown here (Roadmap
49
+ * f-changes-heard-without-presence): once for the ops that landed together,
50
+ * emptied a beat before so the same words said twice are heard twice.
51
+ */
52
+ export declare function sayTheirChange(ops: readonly Operation[], input: Parameters<typeof changeSaid>[1], say: (words: string) => void): void;
30
53
  /**
31
54
  * THE OTHERS, ON THE BAR (FR-155): their marks — three, two on a phone's
32
55
  * bar — the rest counted, and the list a press opens. On the scene
@@ -1 +1 @@
1
- {"version":3,"file":"here.d.ts","sourceRoot":"","sources":["../src/here.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAsChH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,EAAE,CAYxG;AAWD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAgB7Q;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,sCAkF9F"}
1
+ {"version":3,"file":"here.d.ts","sourceRoot":"","sources":["../src/here.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAsCvK;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,QAAQ,EAAE,CAYxG;AAWD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAgB7Q;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,SAAS,SAAS,EAAE,EACzB,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrM,MAAM,GAAG,IAAI,CAaf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAKrI;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,sCAkF9F"}
package/dist/here.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { labelOf, pluralLabel } from "@graview/core";
2
+ import { isWithheld, labelOf, nameOfAuthor, pluralLabel } from "@graview/core";
3
3
  import { fromUrl, kindsOfAggregate } from "@graview/layout/view";
4
4
  import { POPOVER_STYLE, useGraview, usePopover } from "@graview/react/provider";
5
5
  import { useEffect, useState } from "react";
@@ -97,6 +97,41 @@ export function whereSaid(stop, input) {
97
97
  const node = store.graph.getNode(view.focusId);
98
98
  return node && may(node.kind) ? labelOf(store.schema.tryDefinition(node.kind), node) : null;
99
99
  }
100
+ /**
101
+ * WHAT SOMEBODY ELSE JUST CHANGED, IN A SENTENCE: "Ben Okafor: Changed the
102
+ * stage of Billing across apps to Shipped". Their ops, never this
103
+ * reader's own or an agent's acting for them (the seat says its own), and
104
+ * never one withheld from this seat; one sentence for the ops that landed
105
+ * together. Null when nothing in them is somebody else's.
106
+ */
107
+ export function changeSaid(ops, input) {
108
+ const mine = (author) => author.id !== undefined && (author.id === input.principal.id || author.onBehalfOf?.id === input.principal.id);
109
+ const theirs = ops.filter((op) => !isWithheld(op) && op.author.kind !== "system" && !mine(op.author));
110
+ const first = theirs[0];
111
+ if (!first)
112
+ return null;
113
+ const by = nameOfAuthor(first.author, {
114
+ graph: input.store.graph,
115
+ schema: input.store.schema,
116
+ ...(input.seats ? { seats: input.seats } : {}),
117
+ ...(input.people ? { people: input.people } : {}),
118
+ });
119
+ const what = [...new Set(theirs.map((op) => op.intent))].join("; ");
120
+ return `${by}: ${what}`;
121
+ }
122
+ /**
123
+ * SAID ALOUD AS IT LANDS, into the bar's polite region (`TheirChanges` in
124
+ * app-bar.tsx), which is there whether or not anybody is shown here (Roadmap
125
+ * f-changes-heard-without-presence): once for the ops that landed together,
126
+ * emptied a beat before so the same words said twice are heard twice.
127
+ */
128
+ export function sayTheirChange(ops, input, say) {
129
+ const sentence = changeSaid(ops, input);
130
+ if (!sentence)
131
+ return;
132
+ say("");
133
+ setTimeout(() => say(sentence), 50);
134
+ }
100
135
  /**
101
136
  * THE OTHERS, ON THE BAR (FR-155): their marks — three, two on a phone's
102
137
  * bar — the rest counted, and the list a press opens. On the scene
package/dist/here.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"here.js","sourceRoot":"","sources":["../src/here.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"here.js","sourceRoot":"","sources":["../src/here.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { AnySchema } from "@graview/core";
2
2
  import type { ViewComponent } from "@graview/react/provider";
3
+ import "./frame.js";
3
4
  export declare function homeView(blocks: readonly unknown[]): ViewComponent<AnySchema>;
4
5
  //# sourceMappingURL=home-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"home-view.d.ts","sourceRoot":"","sources":["../src/home-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAWxE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAS7E"}
1
+ {"version":3,"file":"home-view.d.ts","sourceRoot":"","sources":["../src/home-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAExE,OAAO,YAAY,CAAC;AAUpB,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAS7E"}
package/dist/home-view.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { compileBlocks, SpecPlace } from "./spec-views.js";
3
+ import "./frame.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
3
4
  /**
4
5
  * THE HOME'S OWN VIEW (FR-81): the declaration's home blocks, about no one
5
6
  * record. On the routed face it is the page, so its first headline is the
@@ -1 +1 @@
1
- {"version":3,"file":"home-view.js","sourceRoot":"","sources":["../src/home-view.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,IAAI,GAAG,IAAI,OAAO,EAAgD,CAAC;AAEzE,MAAM,UAAU,QAAQ,CAAC,MAA0B;IACjD,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,KAA2B,EAAE,EAAE,CACrC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC;QACpL,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"home-view.js","sourceRoot":"","sources":["../src/home-view.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,YAAY,CAAC,CAAC,2FAA2F;AAEhH;;;;;GAKG;AACH,MAAM,IAAI,GAAG,IAAI,OAAO,EAAgD,CAAC;AAEzE,MAAM,UAAU,QAAQ,CAAC,MAA0B;IACjD,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,KAA2B,EAAE,EAAE,CACrC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC;QACpL,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,18 +1,28 @@
1
1
  export { BOARD_REQUIRED_ROLES, BoardBindingError, BoardView, buildBoard, createBoardLens, } from "./lens/board.js";
2
2
  export type { BoardLens, BoardOptions, BoardSlot, BoardState, BoardViewProps } from "./lens/board.js";
3
- export { ActivityRail, StartFresh, AgentSeat, AnswerArgs, BackOut, Inspector, nameOf, OverviewButton, descentTarget, Standing, Trail, UndoTurn, useRecentChanges, } from "./workbench/index.js";
3
+ export { ActivityRail, StartFresh, AgentSeat, AnswerArgs, BackOut, fetchInspector, Inspector, nameOf, OverviewButton, descentTarget, Standing, Trail, UndoTurn, useRecentChanges, } from "./workbench/index.js";
4
4
  export type { AgentSeatProps, Change } from "./workbench/index.js";
5
5
  export { buildCoverage, capCoverage, CoverageBindingError, COVERAGE_MAX_COLUMNS, COVERAGE_MAX_ROWS, COVERAGE_REQUIRED_ROLES, CoverageView, createCoverageLens, } from "./lens/coverage.js";
6
6
  export type { CappedCoverage, CoverageCell, CoverageGrid, CoverageLens, CoverageOptions, CoverageRoles, CoverageViewProps, } from "./lens/coverage.js";
7
- export { ARRANGE_NARROW, ArrangeBar, arrangementCaption, arrangementOf, directionWords, preloadArrangeLists, sayCondition, withArrangement } from "./arrange-bar.js";
7
+ export { ARRANGE_NARROW, ArrangeBar, arrangementCaption, arrangementOf, CHIP_FIELDS, chipOffers, directionWords, farCount, farCounts, MANY_AT_THE_FAR_END, offeredFilters, preloadArrangeLists, sayCondition, TYPED_FROM, withArrangement } from "./arrange-bar.js";
8
8
  export { useArranging } from "./lens/arranging.js";
9
9
  export type { Arranging, ArrangingOptions } from "./lens/arranging.js";
10
10
  export type { ArrangeBarProps } from "./arrange-bar.js";
11
11
  export { Connections } from "./connections.js";
12
12
  export type { ConnectionsProps } from "./connections.js";
13
- export { EditableTitle, EditableValue, Fields, humanize, LongValue } from "./editable.js";
13
+ export { EditableTitle, EditableValue, FieldLink, Fields, humanize, LongValue } from "./editable.js";
14
14
  export { Files } from "./files-door.js";
15
15
  export type { FilesProps } from "./files-door.js";
16
+ export { CHOOSING_CSS, LONG_PRESS_MS, useChoosing } from "./choosing.js";
17
+ export type { Choosing } from "./choosing.js";
18
+ export { prefetchSeveral, SeveralBarDoor } from "./several-door.js";
19
+ export type { SeveralBarProps } from "./several-door.js";
20
+ export { AppLink } from "./app-link-door.js";
21
+ export type { AppLinkProps } from "./app-link-door.js";
22
+ export { LinkedPicker, LinkedRecordView } from "./linked-record-door.js";
23
+ export type { LinkedPickerProps, LinkedRecordViewProps } from "./linked-record-door.js";
24
+ export { RepeatEditor, RepeatPicker } from "./repeat-picker-door.js";
25
+ export type { RepeatPickerProps } from "./repeat-picker-door.js";
16
26
  export { hasShape, TextBody, textBlocks, type TextBlock } from "./text-body.js";
17
27
  export { SEAT_PHONE_BELOW, SEAT_WIDTH, SeatField } from "./seat-field.js";
18
28
  export { DraftDoor } from "./draft-door.js";
@@ -22,6 +32,8 @@ export { registerLensPlaces, registerReaderLenses } from "./declared-lens-doors.
22
32
  export { NoticeBoardContext } from "./notices.js";
23
33
  export type { SeatFieldProps, SeatStart } from "./seat-field.js";
24
34
  export { LinesKey } from "./lines-key.js";
35
+ export { MapPanel, mapPanelShows } from "./map-panel-door.js";
36
+ export type { MapPanelShowing } from "./map-panel-door.js";
25
37
  export { useSubject } from "./subject.js";
26
38
  export type { Subject } from "./subject.js";
27
39
  export { RelationKey, RelationMark, relationWords } from "./relation-key.js";
@@ -48,7 +60,7 @@ export { ShowInstallation } from "./installation.js";
48
60
  export { Seats } from "./seats.js";
49
61
  export { Profile } from "./profile.js";
50
62
  export type { HostAction } from "./profile.js";
51
- export { createNoticeBoard, Notices, TOAST_MS } from "./notices.js";
63
+ export { createNoticeBoard, fetchNotices, Notices, TOAST_MS } from "./notices.js";
52
64
  export { FOOT_MOVED, FOOT_OBSTACLES, NARROW_PICTURE, placeAtTheFoot, placeAtTheTop } from "./notice-place.js";
53
65
  export type { HeldNotice, Notice, NoticeAction, NoticeBoard, NoticeHandle, NoticeTone } from "./notices.js";
54
66
  export { buildReach, ReachView, reachLens } from "./lens/reach.js";
@@ -84,4 +96,8 @@ export { withNaturalTime } from "./lens/natural-time.js";
84
96
  export { fetchFrameworkViews, frameworkViewDoors, registerFrameworkViews } from "./view-doors.js";
85
97
  export { fetchDeclaredLenses, fetchHomeView, registerDeclaredLenses } from "./declared-lens-doors.js";
86
98
  export { declaredViews } from "./declared-views.js";
99
+ export { PastBar, prefetchTimeline } from "./past-bar.js";
100
+ export type { TimelineFace } from "./past-bar.js";
101
+ export { FIRST_LOOK_ANCHORS, FirstLookDoor, firstLookKey } from "./first-look-door.js";
102
+ export type { FirstLook, FirstLookAnchor, FirstLookDoorProps, FirstLookEnd, FirstLookOptions, FirstLookStep } from "./first-look-door.js";
87
103
  //# sourceMappingURL=index.d.ts.map