@graview/primitives 0.1.29 → 0.1.32

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 (281) hide show
  1. package/dist/app-bar.d.ts +2 -0
  2. package/dist/app-bar.d.ts.map +1 -1
  3. package/dist/app-bar.js +46 -9
  4. package/dist/app-bar.js.map +1 -1
  5. package/dist/app-link.d.ts.map +1 -1
  6. package/dist/app-link.js +5 -2
  7. package/dist/app-link.js.map +1 -1
  8. package/dist/app-title.d.ts +1 -1
  9. package/dist/app-title.d.ts.map +1 -1
  10. package/dist/app-title.js +7 -3
  11. package/dist/app-title.js.map +1 -1
  12. package/dist/arrange-bar.d.ts +10 -0
  13. package/dist/arrange-bar.d.ts.map +1 -1
  14. package/dist/arrange-bar.js +25 -4
  15. package/dist/arrange-bar.js.map +1 -1
  16. package/dist/arrange-lists.d.ts +4 -0
  17. package/dist/arrange-lists.d.ts.map +1 -1
  18. package/dist/arrange-lists.js +30 -2
  19. package/dist/arrange-lists.js.map +1 -1
  20. package/dist/bar-panes.d.ts +1 -1
  21. package/dist/bar-panes.d.ts.map +1 -1
  22. package/dist/bar-panes.js +1 -1
  23. package/dist/bar-panes.js.map +1 -1
  24. package/dist/bar-suggested.d.ts +2 -0
  25. package/dist/bar-suggested.d.ts.map +1 -0
  26. package/dist/bar-suggested.js +22 -0
  27. package/dist/bar-suggested.js.map +1 -0
  28. package/dist/chat.d.ts +8 -6
  29. package/dist/chat.d.ts.map +1 -1
  30. package/dist/chat.js +6 -3
  31. package/dist/chat.js.map +1 -1
  32. package/dist/connections.d.ts +1 -1
  33. package/dist/connections.d.ts.map +1 -1
  34. package/dist/connections.js +39 -4
  35. package/dist/connections.js.map +1 -1
  36. package/dist/declared-lens-doors.d.ts.map +1 -1
  37. package/dist/declared-lens-doors.js +4 -1
  38. package/dist/declared-lens-doors.js.map +1 -1
  39. package/dist/default-views.d.ts.map +1 -1
  40. package/dist/default-views.js +60 -17
  41. package/dist/default-views.js.map +1 -1
  42. package/dist/draft-frame.d.ts.map +1 -1
  43. package/dist/draft-frame.js +29 -2
  44. package/dist/draft-frame.js.map +1 -1
  45. package/dist/editable.d.ts +8 -1
  46. package/dist/editable.d.ts.map +1 -1
  47. package/dist/editable.js +58 -15
  48. package/dist/editable.js.map +1 -1
  49. package/dist/files.d.ts.map +1 -1
  50. package/dist/files.js +29 -5
  51. package/dist/files.js.map +1 -1
  52. package/dist/find.d.ts.map +1 -1
  53. package/dist/find.js +110 -11
  54. package/dist/find.js.map +1 -1
  55. package/dist/first-look-door.d.ts +71 -0
  56. package/dist/first-look-door.d.ts.map +1 -0
  57. package/dist/first-look-door.js +95 -0
  58. package/dist/first-look-door.js.map +1 -0
  59. package/dist/first-look.d.ts +12 -0
  60. package/dist/first-look.d.ts.map +1 -0
  61. package/dist/first-look.js +265 -0
  62. package/dist/first-look.js.map +1 -0
  63. package/dist/frame.d.ts +3 -0
  64. package/dist/frame.d.ts.map +1 -1
  65. package/dist/frame.js +4 -0
  66. package/dist/frame.js.map +1 -1
  67. package/dist/here.d.ts +24 -1
  68. package/dist/here.d.ts.map +1 -1
  69. package/dist/here.js +36 -1
  70. package/dist/here.js.map +1 -1
  71. package/dist/index.d.ts +19 -2
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +19 -2
  74. package/dist/index.js.map +1 -1
  75. package/dist/inline-ai-door.d.ts +15 -0
  76. package/dist/inline-ai-door.d.ts.map +1 -0
  77. package/dist/inline-ai-door.js +54 -0
  78. package/dist/inline-ai-door.js.map +1 -0
  79. package/dist/inline-ai-env.d.ts +29 -0
  80. package/dist/inline-ai-env.d.ts.map +1 -0
  81. package/dist/inline-ai-env.js +22 -0
  82. package/dist/inline-ai-env.js.map +1 -0
  83. package/dist/inline-ai-menu.d.ts +58 -0
  84. package/dist/inline-ai-menu.d.ts.map +1 -0
  85. package/dist/inline-ai-menu.js +297 -0
  86. package/dist/inline-ai-menu.js.map +1 -0
  87. package/dist/kind-stop.d.ts +3 -1
  88. package/dist/kind-stop.d.ts.map +1 -1
  89. package/dist/kind-stop.js +3 -2
  90. package/dist/kind-stop.js.map +1 -1
  91. package/dist/lens/arranging.d.ts.map +1 -1
  92. package/dist/lens/arranging.js +9 -1
  93. package/dist/lens/arranging.js.map +1 -1
  94. package/dist/lens/calendar-dates.d.ts.map +1 -1
  95. package/dist/lens/calendar-dates.js +12 -0
  96. package/dist/lens/calendar-dates.js.map +1 -1
  97. package/dist/lens/calendar-drawing.d.ts.map +1 -1
  98. package/dist/lens/calendar-drawing.js +6 -2
  99. package/dist/lens/calendar-drawing.js.map +1 -1
  100. package/dist/lens/calendar-options.d.ts +10 -1
  101. package/dist/lens/calendar-options.d.ts.map +1 -1
  102. package/dist/lens/calendar-options.js.map +1 -1
  103. package/dist/lens/calendar-spans.d.ts +5 -0
  104. package/dist/lens/calendar-spans.d.ts.map +1 -1
  105. package/dist/lens/calendar-spans.js +13 -2
  106. package/dist/lens/calendar-spans.js.map +1 -1
  107. package/dist/lens/calendar-view.d.ts.map +1 -1
  108. package/dist/lens/calendar-view.js +16 -2
  109. package/dist/lens/calendar-view.js.map +1 -1
  110. package/dist/lens/columns.d.ts +3 -1
  111. package/dist/lens/columns.d.ts.map +1 -1
  112. package/dist/lens/columns.js +6 -5
  113. package/dist/lens/columns.js.map +1 -1
  114. package/dist/lens/coverage.d.ts +8 -2
  115. package/dist/lens/coverage.d.ts.map +1 -1
  116. package/dist/lens/coverage.js +36 -10
  117. package/dist/lens/coverage.js.map +1 -1
  118. package/dist/lens-keeping.js +2 -3
  119. package/dist/lens-keeping.js.map +1 -1
  120. package/dist/linked-record-door.d.ts +4 -0
  121. package/dist/linked-record-door.d.ts.map +1 -0
  122. package/dist/linked-record-door.js +12 -0
  123. package/dist/linked-record-door.js.map +1 -0
  124. package/dist/linked-record.d.ts +34 -0
  125. package/dist/linked-record.d.ts.map +1 -0
  126. package/dist/linked-record.js +142 -0
  127. package/dist/linked-record.js.map +1 -0
  128. package/dist/map-panel.js +52 -3
  129. package/dist/map-panel.js.map +1 -1
  130. package/dist/notice-place.d.ts +2 -2
  131. package/dist/notice-place.js +2 -2
  132. package/dist/notify-door.d.ts +57 -0
  133. package/dist/notify-door.d.ts.map +1 -0
  134. package/dist/notify-door.js +136 -0
  135. package/dist/notify-door.js.map +1 -0
  136. package/dist/notify-sheet.d.ts +27 -0
  137. package/dist/notify-sheet.d.ts.map +1 -0
  138. package/dist/notify-sheet.js +102 -0
  139. package/dist/notify-sheet.js.map +1 -0
  140. package/dist/pages.d.ts +23 -4
  141. package/dist/pages.d.ts.map +1 -1
  142. package/dist/pages.js +24 -4
  143. package/dist/pages.js.map +1 -1
  144. package/dist/past-bar.d.ts +13 -0
  145. package/dist/past-bar.d.ts.map +1 -0
  146. package/dist/past-bar.js +26 -0
  147. package/dist/past-bar.js.map +1 -0
  148. package/dist/places.d.ts.map +1 -1
  149. package/dist/places.js +3 -2
  150. package/dist/places.js.map +1 -1
  151. package/dist/primitives/index.d.ts +8 -0
  152. package/dist/primitives/index.d.ts.map +1 -1
  153. package/dist/primitives/index.js +67 -29
  154. package/dist/primitives/index.js.map +1 -1
  155. package/dist/primitives/measure.d.ts +10 -0
  156. package/dist/primitives/measure.d.ts.map +1 -1
  157. package/dist/primitives/measure.js +27 -7
  158. package/dist/primitives/measure.js.map +1 -1
  159. package/dist/quick-ask-desk.d.ts +38 -0
  160. package/dist/quick-ask-desk.d.ts.map +1 -0
  161. package/dist/quick-ask-desk.js +36 -0
  162. package/dist/quick-ask-desk.js.map +1 -0
  163. package/dist/quick-ask-door.d.ts +33 -0
  164. package/dist/quick-ask-door.d.ts.map +1 -0
  165. package/dist/quick-ask-door.js +70 -0
  166. package/dist/quick-ask-door.js.map +1 -0
  167. package/dist/quick-ask-setting.d.ts +9 -0
  168. package/dist/quick-ask-setting.d.ts.map +1 -0
  169. package/dist/quick-ask-setting.js +11 -0
  170. package/dist/quick-ask-setting.js.map +1 -0
  171. package/dist/quick-ask.d.ts +23 -0
  172. package/dist/quick-ask.d.ts.map +1 -0
  173. package/dist/quick-ask.js +327 -0
  174. package/dist/quick-ask.js.map +1 -0
  175. package/dist/record-interactions-door.d.ts +8 -0
  176. package/dist/record-interactions-door.d.ts.map +1 -0
  177. package/dist/record-interactions-door.js +42 -0
  178. package/dist/record-interactions-door.js.map +1 -0
  179. package/dist/record-interactions.d.ts +13 -0
  180. package/dist/record-interactions.d.ts.map +1 -0
  181. package/dist/record-interactions.js +9 -0
  182. package/dist/record-interactions.js.map +1 -0
  183. package/dist/scene-bar.d.ts.map +1 -1
  184. package/dist/scene-bar.js +5 -2
  185. package/dist/scene-bar.js.map +1 -1
  186. package/dist/scene-css.d.ts.map +1 -1
  187. package/dist/scene-css.js +79 -8
  188. package/dist/scene-css.js.map +1 -1
  189. package/dist/scene-way-back-door.d.ts.map +1 -1
  190. package/dist/scene-way-back-door.js +9 -0
  191. package/dist/scene-way-back-door.js.map +1 -1
  192. package/dist/scene.d.ts +11 -2
  193. package/dist/scene.d.ts.map +1 -1
  194. package/dist/scene.js +10 -1
  195. package/dist/scene.js.map +1 -1
  196. package/dist/shell.d.ts +23 -24
  197. package/dist/shell.d.ts.map +1 -1
  198. package/dist/shell.js +9 -3
  199. package/dist/shell.js.map +1 -1
  200. package/dist/spec-css.d.ts.map +1 -1
  201. package/dist/spec-css.js +22 -2
  202. package/dist/spec-css.js.map +1 -1
  203. package/dist/spec-views.d.ts +6 -1
  204. package/dist/spec-views.d.ts.map +1 -1
  205. package/dist/spec-views.js +82 -16
  206. package/dist/spec-views.js.map +1 -1
  207. package/dist/stretched-link.d.ts +18 -0
  208. package/dist/stretched-link.d.ts.map +1 -0
  209. package/dist/stretched-link.js +47 -0
  210. package/dist/stretched-link.js.map +1 -0
  211. package/dist/suggested.d.ts +13 -0
  212. package/dist/suggested.d.ts.map +1 -0
  213. package/dist/suggested.js +82 -0
  214. package/dist/suggested.js.map +1 -0
  215. package/dist/theme.d.ts.map +1 -1
  216. package/dist/theme.js +25 -28
  217. package/dist/theme.js.map +1 -1
  218. package/dist/timeline.d.ts +6 -0
  219. package/dist/timeline.d.ts.map +1 -0
  220. package/dist/timeline.js +150 -0
  221. package/dist/timeline.js.map +1 -0
  222. package/dist/way-back.d.ts.map +1 -1
  223. package/dist/way-back.js +3 -0
  224. package/dist/way-back.js.map +1 -1
  225. package/dist/when-input-door.d.ts +8 -0
  226. package/dist/when-input-door.d.ts.map +1 -0
  227. package/dist/when-input-door.js +19 -0
  228. package/dist/when-input-door.js.map +1 -0
  229. package/dist/when-input.d.ts +34 -0
  230. package/dist/when-input.d.ts.map +1 -0
  231. package/dist/when-input.js +122 -0
  232. package/dist/when-input.js.map +1 -0
  233. package/dist/when-picker-door.d.ts +6 -0
  234. package/dist/when-picker-door.d.ts.map +1 -0
  235. package/dist/when-picker-door.js +15 -0
  236. package/dist/when-picker-door.js.map +1 -0
  237. package/dist/when-picker.d.ts +16 -0
  238. package/dist/when-picker.d.ts.map +1 -0
  239. package/dist/when-picker.js +108 -0
  240. package/dist/when-picker.js.map +1 -0
  241. package/dist/workbench/activity.d.ts +24 -0
  242. package/dist/workbench/activity.d.ts.map +1 -1
  243. package/dist/workbench/activity.js +159 -33
  244. package/dist/workbench/activity.js.map +1 -1
  245. package/dist/workbench/agent-seat.d.ts.map +1 -1
  246. package/dist/workbench/agent-seat.js +5 -2
  247. package/dist/workbench/agent-seat.js.map +1 -1
  248. package/dist/workbench/ai-entries.d.ts +22 -0
  249. package/dist/workbench/ai-entries.d.ts.map +1 -0
  250. package/dist/workbench/ai-entries.js +75 -0
  251. package/dist/workbench/ai-entries.js.map +1 -0
  252. package/dist/workbench/ai-feed.d.ts +12 -0
  253. package/dist/workbench/ai-feed.d.ts.map +1 -0
  254. package/dist/workbench/ai-feed.js +14 -0
  255. package/dist/workbench/ai-feed.js.map +1 -0
  256. package/dist/workbench/answer-args.d.ts.map +1 -1
  257. package/dist/workbench/answer-args.js +87 -10
  258. package/dist/workbench/answer-args.js.map +1 -1
  259. package/dist/workbench/back-out.d.ts.map +1 -1
  260. package/dist/workbench/back-out.js +7 -2
  261. package/dist/workbench/back-out.js.map +1 -1
  262. package/dist/workbench/inspector-door.d.ts +3 -1
  263. package/dist/workbench/inspector-door.d.ts.map +1 -1
  264. package/dist/workbench/inspector-door.js +7 -6
  265. package/dist/workbench/inspector-door.js.map +1 -1
  266. package/dist/workbench/inspector.d.ts +2 -1
  267. package/dist/workbench/inspector.d.ts.map +1 -1
  268. package/dist/workbench/inspector.js +94 -17
  269. package/dist/workbench/inspector.js.map +1 -1
  270. package/dist/workbench/trail.d.ts.map +1 -1
  271. package/dist/workbench/trail.js +10 -2
  272. package/dist/workbench/trail.js.map +1 -1
  273. package/package.json +6 -6
  274. package/dist/seat-field.d.ts +0 -58
  275. package/dist/seat-field.d.ts.map +0 -1
  276. package/dist/seat-field.js +0 -183
  277. package/dist/seat-field.js.map +0 -1
  278. package/dist/seat-panel.d.ts +0 -38
  279. package/dist/seat-panel.d.ts.map +0 -1
  280. package/dist/seat-panel.js +0 -212
  281. package/dist/seat-panel.js.map +0 -1
@@ -0,0 +1,136 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { retryingImport } from "@graview/core/retry";
3
+ import { isAggregateId, kindOfCard, kindsOfAggregate } from "@graview/layout/view";
4
+ import { MenuSections } from "@graview/react/drawing";
5
+ import { lazyModule, useGraview, useGraviewIfAny } from "@graview/react/provider";
6
+ import { Suspense, useEffect, useId, useMemo, useState, useSyncExternalStore } from "react";
7
+ const ASKED = new WeakMap();
8
+ const askedOf = (subscriptions) => {
9
+ let held = ASKED.get(subscriptions);
10
+ if (!held)
11
+ ASKED.set(subscriptions, (held = { ask: null, doors: [], listeners: new Set() }));
12
+ return held;
13
+ };
14
+ const told = (asked) => {
15
+ for (const listener of asked.listeners)
16
+ listener();
17
+ };
18
+ /** Open the sheet, filled in with these choices. */
19
+ export function askToNotify(subscriptions, ask) {
20
+ const asked = askedOf(subscriptions);
21
+ asked.ask = ask;
22
+ told(asked);
23
+ }
24
+ const sheetModule = /* @__PURE__ */ lazyModule(retryingImport(() => import("./notify-sheet.js")));
25
+ const Sheet = /* @__PURE__ */ sheetModule.part((module, props) => {
26
+ const Drawn = module.NotifySheet;
27
+ return _jsx(Drawn, { ...props });
28
+ }, { what: "Notify me" });
29
+ const List = /* @__PURE__ */ sheetModule.part((module, props) => {
30
+ const Drawn = module.NotifiedList;
31
+ return _jsx(Drawn, { ...props });
32
+ }, { quiet: true });
33
+ /** Whether a reader is somebody the app can tell: one it knows by id. */
34
+ export const canBeTold = (principal) => (principal.onBehalfOf ?? principal).id !== undefined;
35
+ /** The choices a menu opened on this offers, or none. */
36
+ export function choicesAt(target, kindOf, schema) {
37
+ const noun = (kind) => schema.tryDefinition(kind)?.noun ?? kind.replace(/[-_]+/g, " ");
38
+ const record = target.on !== undefined ? target.on : target.about.length === 1 ? target.about[0] : undefined;
39
+ if (target.act !== undefined) {
40
+ const on = record !== undefined && kindOf(record) !== undefined ? record : undefined;
41
+ return { label: "Notify me when someone does this…", choices: [{ on: "act", act: target.act, ...(on !== undefined ? { record: on } : {}) }, ...(on !== undefined ? [{ on: "act", act: target.act }] : [])] };
42
+ }
43
+ if (record === undefined)
44
+ return null;
45
+ const kind = kindOf(record);
46
+ if (kind !== undefined)
47
+ return { label: "Notify me when this changes…", choices: [{ on: "changed", record }, { on: "act", record }, { on: "reaches", kind, condition: "", record }] };
48
+ const kinds = kindOfCard(record) !== null ? [kindOfCard(record)] : isAggregateId(record) ? kindsOfAggregate(record) : [];
49
+ if (kinds.length !== 1 || !schema.kinds.includes(kinds[0]))
50
+ return null;
51
+ const listed = kinds[0];
52
+ const word = noun(listed);
53
+ return { label: `Notify me when ${/^[aeiou]/i.test(word) ? "an" : "a"} ${word} is added…`, choices: [{ on: "created", kind: listed }, { on: "changed", kind: listed }, { on: "reaches", kind: listed, condition: "" }] };
54
+ }
55
+ /** "Notify me…" on the context menu, or nothing where there is nobody to tell or nothing to be told of. */
56
+ export function useNotifySection() {
57
+ const { store, principal, subscriptions } = useGraview();
58
+ const able = canBeTold(principal);
59
+ return useMemo(() => able
60
+ ? (target) => {
61
+ const offered = choicesAt(target, (id) => store.graph.getNode(id)?.kind, store.schema);
62
+ if (!offered)
63
+ return null;
64
+ const item = { id: "notify-me", label: offered.label, run: () => askToNotify(subscriptions, { choices: offered.choices, returnTo: target.element ?? null }) };
65
+ return { id: "notify", items: [item] };
66
+ }
67
+ : null, [able, store, subscriptions]);
68
+ }
69
+ const NONE = [];
70
+ /** The context menu drawn inside, with "Notify me…" in it where there is somebody to tell. */
71
+ export function NotifySections({ children }) {
72
+ const section = useNotifySection();
73
+ const sections = useMemo(() => (section ? [section] : NONE), [section]);
74
+ return _jsx(MenuSections, { sections: sections, children: children });
75
+ }
76
+ /**
77
+ * WHERE THE SHEET IS DRAWN: once per provider, by the first door drawn — a
78
+ * routed face inside a scene's shell draws it once, not twice.
79
+ */
80
+ export function NotifyDoor() {
81
+ const { subscriptions } = useGraview();
82
+ const id = useId();
83
+ const asked = askedOf(subscriptions);
84
+ useEffect(() => {
85
+ asked.doors.push(id);
86
+ told(asked);
87
+ return () => {
88
+ asked.doors.splice(asked.doors.indexOf(id), 1);
89
+ told(asked);
90
+ };
91
+ }, [asked, id]);
92
+ const subscribe = useMemo(() => (listener) => {
93
+ asked.listeners.add(listener);
94
+ return () => void asked.listeners.delete(listener);
95
+ }, [asked]);
96
+ const ask = useSyncExternalStore(subscribe, () => asked.ask, () => null);
97
+ const mine = useSyncExternalStore(subscribe, () => asked.doors[0] === id, () => false);
98
+ if (!ask || !mine)
99
+ return null;
100
+ return (_jsx(Suspense, { fallback: null, children: _jsx(Sheet, { ask: ask, close: () => askToNotify(subscriptions, null) }) }));
101
+ }
102
+ /** A "Notify me" press of a face's own — on a record's page, after an act — opening the sheet on these choices. */
103
+ export function NotifyButton({ choices, label = "Notify me", style, className, testId = "notify-me" }) {
104
+ const { principal, subscriptions } = useGraview();
105
+ if (!canBeTold(principal))
106
+ return null;
107
+ return (_jsx("button", { type: "button", "data-testid": testId, className: className, onClick: (event) => askToNotify(subscriptions, { choices, returnTo: event.currentTarget }), style: style, children: label }));
108
+ }
109
+ /** How many subscriptions the reader has, followed as they change: 0 until the store has answered. */
110
+ export function useNotifiedCount() {
111
+ // Asked where there may be no provider (a routed face drawn alone): then nobody is told of anything.
112
+ const here = useGraviewIfAny();
113
+ const subscriptions = here?.subscriptions;
114
+ const who = here ? (here.principal.onBehalfOf ?? here.principal).id : undefined;
115
+ const [count, setCount] = useState(0);
116
+ useEffect(() => {
117
+ if (who === undefined || !subscriptions)
118
+ return;
119
+ let live = true;
120
+ const read = () => void Promise.resolve(subscriptions.list(who)).then((all) => live && setCount(all.length), () => live && setCount(0));
121
+ read();
122
+ const off = subscriptions.onChange?.(read);
123
+ return () => {
124
+ live = false;
125
+ off?.();
126
+ };
127
+ }, [subscriptions, who]);
128
+ return count;
129
+ }
130
+ /** What the reader is told of, each with its one-press "Stop": Activity's part, fetched when there is any. */
131
+ export function NotifiedDoor({ style }) {
132
+ if (useNotifiedCount() === 0)
133
+ return null;
134
+ return (_jsx(Suspense, { fallback: null, children: _jsx(List, { ...(style ? { style } : {}) }) }));
135
+ }
136
+ //# sourceMappingURL=notify-door.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-door.js","sourceRoot":"","sources":["../src/notify-door.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type CSSProperties } from "react";
2
+ import type { NotifyAsk } from "./notify-door.js";
3
+ import "./frame.js";
4
+ /**
5
+ * "NOTIFY ME", AS THE FACES DRAW IT (Roadmap f-notify-subscriptions) —
6
+ * fetched with the first sheet or list (`notify-door.tsx`).
7
+ *
8
+ * THE SHEET is one step, already filled in with what it was opened on:
9
+ * its first button keeps it, so a person subscribes from the context menu
10
+ * in two presses. The other choices stand beside it — "when anything is
11
+ * done to it", "when it reaches …" — and "Only when someone else does it"
12
+ * is ticked. A condition is written in the app's own rule language, and a
13
+ * subscription that could never be told anything is said, not kept.
14
+ *
15
+ * THE LIST is Activity's: what the reader is told of, each with one press
16
+ * to stop.
17
+ */
18
+ export interface NotifySheetProps {
19
+ readonly ask: NotifyAsk;
20
+ readonly close: () => void;
21
+ }
22
+ export declare function NotifySheet({ ask, close }: NotifySheetProps): import("react").JSX.Element;
23
+ /** What the reader is told of, each with "Stop": Activity's part. */
24
+ export declare function NotifiedList({ style }: {
25
+ readonly style?: CSSProperties;
26
+ }): import("react").JSX.Element | null;
27
+ //# sourceMappingURL=notify-sheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-sheet.d.ts","sourceRoot":"","sources":["../src/notify-sheet.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAYD,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,gBAAgB,+BA+G3D;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,sCA8CzE"}
@@ -0,0 +1,102 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { subscriberOf } from "@graview/core";
3
+ import { subscriptionProblem, subscriptionWords } from "@graview/core/subscriptions";
4
+ import { useGraview } from "@graview/react/provider";
5
+ import { useEffect, useId, useRef, useState } from "react";
6
+ import "./frame.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
7
+ /** A first guess at a condition for a kind: its first field that is false on a record of it, as true. */
8
+ function guessCondition(records) {
9
+ for (const record of records) {
10
+ for (const [field, value] of Object.entries(record))
11
+ if (value === false)
12
+ return `${field} == true`;
13
+ }
14
+ return "";
15
+ }
16
+ const QUIET = { margin: 0, fontSize: "0.8125rem", color: "var(--graview-ink-muted)" };
17
+ export function NotifySheet({ ask, close }) {
18
+ const { store, principal, subscriptions, app } = useGraview();
19
+ const dialog = useRef(null);
20
+ const heading = useId();
21
+ const [chosen, setChosen] = useState(0);
22
+ const [othersOnly, setOthersOnly] = useState(true);
23
+ const [condition, setCondition] = useState(() => {
24
+ const reaches = ask.choices.find((one) => one.on === "reaches");
25
+ if (!reaches)
26
+ return "";
27
+ const node = reaches.record !== undefined ? store.graph.getNode(reaches.record) : undefined;
28
+ return guessCondition(node ? [node] : store.graph.nodesOfKind(reaches.kind).slice(0, 5));
29
+ });
30
+ const [problem, setProblem] = useState(null);
31
+ const [keeping, setKeeping] = useState(false);
32
+ useEffect(() => {
33
+ const shown = dialog.current;
34
+ if (shown && !shown.open)
35
+ shown.showModal();
36
+ }, []);
37
+ /** Gone, and the keyboard back where the sheet was asked from — or where the page's title is. */
38
+ const done = () => {
39
+ const back = ask.returnTo;
40
+ close();
41
+ requestAnimationFrame(() => {
42
+ if (back?.isConnected)
43
+ back.focus();
44
+ else
45
+ document.querySelector("[data-graview-page-title], main h1, [data-testid='activity-button']")?.focus();
46
+ });
47
+ };
48
+ const whenOf = (choice) => (choice.on === "reaches" ? { ...choice, condition } : choice);
49
+ const words = (choice) => subscriptionWords(store, { when: whenOf(choice), alsoMine: !othersOnly });
50
+ const keep = async () => {
51
+ const when = whenOf(ask.choices[chosen]);
52
+ const wrong = subscriptionProblem(store, when);
53
+ if (wrong) {
54
+ setProblem(wrong);
55
+ return;
56
+ }
57
+ setKeeping(true);
58
+ try {
59
+ await subscriptions.add({ who: subscriberOf(principal), app: app?.name ?? "app", when, ...(othersOnly ? {} : { alsoMine: true }) });
60
+ done();
61
+ }
62
+ catch (error) {
63
+ setKeeping(false);
64
+ setProblem(error instanceof Error ? error.message : String(error));
65
+ }
66
+ };
67
+ return (_jsx("dialog", { ref: dialog, "aria-labelledby": heading, "data-testid": "notify-sheet", onClose: done, onClick: (event) => {
68
+ // A press on the dimmed page around the sheet puts it away.
69
+ if (event.target === event.currentTarget)
70
+ event.currentTarget.close();
71
+ }, style: { width: "min(92vw, 420px)", padding: 0, border: "1px solid var(--graview-edge)", borderRadius: "var(--graview-radius, 12px)", background: "var(--graview-panel)", color: "var(--graview-ink)", boxShadow: "var(--graview-lift-high)" }, children: _jsxs("form", { method: "dialog", onSubmit: (event) => {
72
+ event.preventDefault();
73
+ void keep();
74
+ }, style: { display: "grid", gap: 12, padding: 18 }, children: [_jsx("h2", { id: heading, style: { margin: 0, fontSize: "1.0625rem" }, children: "Notify me" }), _jsxs("fieldset", { style: { margin: 0, padding: 0, border: 0, display: "grid", gap: 6 }, children: [_jsx("legend", { style: { ...QUIET, marginBottom: 6 }, children: "Tell me" }), ask.choices.map((choice, at) => (_jsxs("label", { style: { display: "flex", gap: 8, alignItems: "baseline", cursor: "pointer" }, children: [_jsx("input", { type: "radio", name: `${heading}-when`, checked: chosen === at, onChange: () => setChosen(at), "data-notify-choice": choice.on }), _jsx("span", { children: choice.on === "reaches" ? `When ${choice.record !== undefined ? "it" : "one"} reaches a condition` : words(choice) })] }, at)))] }), ask.choices[chosen]?.on === "reaches" ? (_jsxs("label", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { style: QUIET, children: "The condition, in the app's own words (done == true, amount > 100)" }), _jsx("input", { value: condition, onChange: (event) => setCondition(event.target.value), "data-testid": "notify-condition", autoComplete: "off", spellCheck: false })] })) : null, _jsxs("label", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [_jsx("input", { type: "checkbox", checked: othersOnly, onChange: (event) => setOthersOnly(event.target.checked), "data-testid": "notify-others-only" }), "Only when someone else does it"] }), _jsxs("p", { style: QUIET, "data-testid": "notify-said", children: [words(ask.choices[chosen]), "."] }), problem ? (_jsx("p", { role: "alert", style: { margin: 0, color: "var(--graview-danger, var(--graview-ink))" }, children: problem })) : null, _jsxs("div", { style: { display: "flex", gap: 8, justifyContent: "flex-end" }, children: [_jsx("button", { type: "button", onClick: () => dialog.current?.close(), children: "Cancel" }), _jsx("button", { type: "submit", autoFocus: true, disabled: keeping, "data-testid": "notify-keep", style: { borderColor: "var(--graview-accent)", color: "var(--graview-accent)" }, children: "Notify me" })] })] }) }));
75
+ }
76
+ /** What the reader is told of, each with "Stop": Activity's part. */
77
+ export function NotifiedList({ style }) {
78
+ const { store, principal, subscriptions, app } = useGraview();
79
+ const who = (principal.onBehalfOf ?? principal).id;
80
+ const [mine, setMine] = useState([]);
81
+ useEffect(() => {
82
+ if (who === undefined)
83
+ return;
84
+ let live = true;
85
+ const read = () => void Promise.resolve(subscriptions.list(who)).then((all) => live && setMine(all.filter((one) => one.app === (app?.name ?? "app"))), () => live && setMine([]));
86
+ read();
87
+ const off = subscriptions.onChange?.(read);
88
+ return () => {
89
+ live = false;
90
+ off?.();
91
+ };
92
+ }, [subscriptions, who, app]);
93
+ if (mine.length === 0)
94
+ return null;
95
+ return (_jsxs("section", { "aria-label": "What you are told of", "data-testid": "notified", style: { display: "grid", gap: 6, ...style }, children: [_jsx("span", { style: { fontSize: "0.75rem", letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--graview-ink-faint)" }, children: "You are told" }), _jsx("ul", { style: { margin: 0, padding: 0, listStyle: "none", display: "grid", gap: 4 }, children: mine.map((one) => (_jsxs("li", { style: { display: "flex", gap: 8, alignItems: "baseline", justifyContent: "space-between" }, "data-subscription": one.id, children: [_jsx("span", { style: { fontSize: "0.8125rem" }, children: subscriptionWords(store, one) }), _jsx("button", { type: "button", "data-testid": "notify-stop", "aria-label": `Stop: ${subscriptionWords(store, one)}`, onClick: (event) => {
96
+ // The keyboard stays in the list: on the next Stop, else Activity's own button.
97
+ const item = event.currentTarget.closest("li");
98
+ const next = (item?.nextElementSibling ?? item?.previousElementSibling)?.querySelector("button");
99
+ void Promise.resolve(subscriptions.remove(one.id)).then(() => (next ?? document.querySelector("[data-testid='activity-button']"))?.focus());
100
+ }, style: { padding: "1px 8px", fontSize: "0.8125rem" }, children: "Stop" })] }, one.id))) })] }));
101
+ }
102
+ //# sourceMappingURL=notify-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-sheet.js","sourceRoot":"","sources":["../src/notify-sheet.tsx"],"names":[],"mappings":"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"}
package/dist/pages.d.ts CHANGED
@@ -4,10 +4,10 @@
4
4
  *
5
5
  * Everything here is also exported from `@graview/primitives`. It is its
6
6
  * own entry because a bundler splits a page by which files a chunk can
7
- * reach, and `@graview/primitives` reaches the seat's panel, the inspector
7
+ * reach, and `@graview/primitives` reaches the workbench, the inspector
8
8
  * and the scene they stand on: the pages face, importing a mark from it,
9
9
  * fetched the whole map to draw a list. `@graview/pages` imports from here,
10
- * and the seat's panel when its ask field is first opened. Nothing in this
10
+ * and the quick ask's bar when it is first opened. Nothing in this
11
11
  * module's files may import a barrel.
12
12
  */
13
13
  export { ArrangeBar, arrangementCaption, arrangementOf, withArrangement } from "./arrange-bar.js";
@@ -18,19 +18,25 @@ export { Files } from "./files-door.js";
18
18
  export type { FilesProps } from "./files-door.js";
19
19
  export { AppLink } from "./app-link-door.js";
20
20
  export type { AppLinkProps } from "./app-link-door.js";
21
+ export { LinkedPicker, LinkedRecordView } from "./linked-record-door.js";
22
+ export type { LinkedPickerProps, LinkedRecordViewProps } from "./linked-record-door.js";
21
23
  export { RepeatEditor, RepeatPicker } from "./repeat-picker-door.js";
22
24
  export type { RepeatPickerProps } from "./repeat-picker-door.js";
25
+ export { prefetchWhenInput, WhenInput } from "./when-input-door.js";
26
+ export type { WhenInputProps } from "./when-input-door.js";
23
27
  export { hasShape, TextBody, textBlocks, type TextBlock } from "./text-body.js";
24
28
  export { KindFigure } from "./figure.js";
25
29
  export { ownSentence, problemLine, problemTitle, RuleLineView, RuleParts, useLined, useRuleLines } from "./rule-line.js";
26
30
  export { useMarkup } from "./markup.js";
27
31
  export { AppMark, AppTitle, useFavicon } from "./app-title.js";
28
32
  export { BarActivity } from "./bar-activity.js";
33
+ export { BarSuggested } from "./bar-suggested.js";
29
34
  export { AppBar, BarFindContext, barPlaceAt, barPlaces, BAR_HEIGHT, BAR_PHONE, HOME_KEY, HOME_PATH, TOOL, toolStyle, useBarFind } from "./app-bar.js";
30
35
  export type { BarFace, BarFaces, BarFind, BarGo, BarPlace, BarPlaceGroup, BarSwitch } from "./app-bar.js";
31
36
  export { RelationMark } from "./relation-key.js";
32
37
  export { registerDefaultViews } from "./default-views.js";
33
38
  export { HeadingsUnder, HomeLine, pageSays, registerViewSpecs, SpecLinks } from "./spec-views.js";
39
+ export { useEndsAboveItsList } from "./stretched-link.js";
34
40
  export { StandingDot, standingWords } from "./workbench/standing.js";
35
41
  export { useViewportHeight } from "./primitives/measure.js";
36
42
  export { Profile } from "./profile.js";
@@ -38,13 +44,26 @@ export { viewsCss } from "./views-css.js";
38
44
  export { FOOT_MOVED, FOOT_OBSTACLES, NARROW_PICTURE, placeAtTheFoot, placeAtTheTop } from "./notice-place.js";
39
45
  export { freshChangeOf, isTakeBackKey, lastChangeOf, takeBackLast, takeBackWords, WAY_BACK_MS } from "./way-back.js";
40
46
  export type { LastChange } from "./way-back.js";
41
- export { SeatField } from "./seat-field.js";
47
+ export { QuickAskDoor } from "./quick-ask-door.js";
48
+ export { openQuickAsk, useQuickAskDrawn } from "./quick-ask-desk.js";
49
+ export type { QuickAskDoorProps } from "./quick-ask-door.js";
50
+ export type { QuickAskOpening } from "./quick-ask-desk.js";
51
+ export { quickAskOf } from "./quick-ask-setting.js";
42
52
  export { DraftDoor } from "./draft-door.js";
43
53
  export { appKeyOf } from "./reader-lenses.js";
44
54
  export { registerReaderLenses } from "./declared-lens-doors.js";
45
- export type { SeatFieldProps, SeatStart } from "./seat-field.js";
55
+ export { Inspector } from "./workbench/inspector-door.js";
56
+ export { GhostDoor, InlineAiSections, useInlineAiSection } from "./inline-ai-door.js";
57
+ export type { GhostDoorProps } from "./inline-ai-door.js";
58
+ export { askToNotify, NotifiedDoor, NotifyButton, NotifyDoor, NotifySections, useNotifiedCount, useNotifySection } from "./notify-door.js";
59
+ export type { NotifyAsk } from "./notify-door.js";
60
+ export { RecordInteractionsDoor } from "./record-interactions-door.js";
46
61
  export { CHOOSING_CSS, LONG_PRESS_MS, useChoosing } from "./choosing.js";
47
62
  export type { Choosing } from "./choosing.js";
48
63
  export { prefetchSeveral, SeveralBarDoor } from "./several-door.js";
49
64
  export type { SeveralBarProps } from "./several-door.js";
65
+ export { PastBar, prefetchTimeline } from "./past-bar.js";
66
+ export type { TimelineFace } from "./past-bar.js";
67
+ export { FIRST_LOOK_ANCHORS, FirstLookDoor, firstLookKey } from "./first-look-door.js";
68
+ export type { FirstLook, FirstLookAnchor, FirstLookDoorProps, FirstLookEnd, FirstLookOptions, FirstLookStep } from "./first-look-door.js";
50
69
  //# sourceMappingURL=pages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
package/dist/pages.js CHANGED
@@ -4,10 +4,10 @@
4
4
  *
5
5
  * Everything here is also exported from `@graview/primitives`. It is its
6
6
  * own entry because a bundler splits a page by which files a chunk can
7
- * reach, and `@graview/primitives` reaches the seat's panel, the inspector
7
+ * reach, and `@graview/primitives` reaches the workbench, the inspector
8
8
  * and the scene they stand on: the pages face, importing a mark from it,
9
9
  * fetched the whole map to draw a list. `@graview/pages` imports from here,
10
- * and the seat's panel when its ask field is first opened. Nothing in this
10
+ * and the quick ask's bar when it is first opened. Nothing in this
11
11
  * module's files may import a barrel.
12
12
  */
13
13
  export { ArrangeBar, arrangementCaption, arrangementOf, withArrangement } from "./arrange-bar.js";
@@ -18,19 +18,25 @@ export { EditableValue, FieldLink, LongValue } from "./editable.js";
18
18
  export { Files } from "./files-door.js";
19
19
  // Another app on a record, as the host names it (FR-171), fetched with the first one drawn.
20
20
  export { AppLink } from "./app-link-door.js";
21
+ export { LinkedPicker, LinkedRecordView } from "./linked-record-door.js";
21
22
  // How a date repeats: asked for in a form and changed beside a record's date, fetched with the first one drawn.
22
23
  export { RepeatEditor, RepeatPicker } from "./repeat-picker-door.js";
24
+ // A day or a moment, typed as people say it ("tomorrow 3pm") or picked from a month: every date a person gives, fetched when first asked for (Roadmap f-date-inputs).
25
+ export { prefetchWhenInput, WhenInput } from "./when-input-door.js";
23
26
  export { hasShape, TextBody, textBlocks } from "./text-body.js";
24
27
  export { KindFigure } from "./figure.js";
25
28
  export { ownSentence, problemLine, problemTitle, RuleLineView, RuleParts, useLined, useRuleLines } from "./rule-line.js";
26
29
  export { useMarkup } from "./markup.js";
27
30
  export { AppMark, AppTitle, useFavicon } from "./app-title.js";
28
31
  export { BarActivity } from "./bar-activity.js";
32
+ // What tidying suggests, beside Activity on the routed face's bar, fetched only while something waits.
33
+ export { BarSuggested } from "./bar-suggested.js";
29
34
  export { AppBar, BarFindContext, barPlaceAt, barPlaces, BAR_HEIGHT, BAR_PHONE, HOME_KEY, HOME_PATH, TOOL, toolStyle, useBarFind } from "./app-bar.js";
30
35
  export { RelationMark } from "./relation-key.js";
31
36
  // The framework's own views and the declaration's specs, for a routed face that registers them outright (`@graview/embed/pages`) without reaching every lens through the package's main entry.
32
37
  export { registerDefaultViews } from "./default-views.js";
33
38
  export { HeadingsUnder, HomeLine, pageSays, registerViewSpecs, SpecLinks } from "./spec-views.js";
39
+ export { useEndsAboveItsList } from "./stretched-link.js";
34
40
  export { StandingDot, standingWords } from "./workbench/standing.js";
35
41
  export { useViewportHeight } from "./primitives/measure.js";
36
42
  export { Profile } from "./profile.js";
@@ -39,12 +45,26 @@ export { viewsCss } from "./views-css.js";
39
45
  export { FOOT_MOVED, FOOT_OBSTACLES, NARROW_PICTURE, placeAtTheFoot, placeAtTheTop } from "./notice-place.js";
40
46
  // The way back after an act, judged and timed alike on both faces (FR-152).
41
47
  export { freshChangeOf, isTakeBackKey, lastChangeOf, takeBackLast, takeBackWords, WAY_BACK_MS } from "./way-back.js";
42
- // The seat: the ask field at the foot of the face, its panel fetched when it is first opened.
43
- export { SeatField } from "./seat-field.js";
48
+ // The quick ask (Roadmap f-quick-ask-framework): ⌘K's bar beside what the page is about, and its answer cards, fetched when first opened.
49
+ export { QuickAskDoor } from "./quick-ask-door.js";
50
+ export { openQuickAsk, useQuickAskDrawn } from "./quick-ask-desk.js";
51
+ export { quickAskOf } from "./quick-ask-setting.js";
44
52
  export { DraftDoor } from "./draft-door.js";
45
53
  export { appKeyOf } from "./reader-lenses.js";
46
54
  export { registerReaderLenses } from "./declared-lens-doors.js";
55
+ // The context menu (FR-77's `acts`): the acts at the pointer, its pane and the tools fetched when it is first opened.
56
+ export { Inspector } from "./workbench/inspector-door.js";
57
+ // The inline AI (Roadmap f-ai-candidate-catalog): its part of the context menu and the ghost of what it proposed, fetched when first drawn.
58
+ export { GhostDoor, InlineAiSections, useInlineAiSection } from "./inline-ai-door.js";
59
+ // Notify me (Roadmap f-notify-subscriptions): its part of the context menu, the sheet, a face's own press and Activity's list, the sheet and list fetched when first drawn.
60
+ export { askToNotify, NotifiedDoor, NotifyButton, NotifyDoor, NotifySections, useNotifiedCount, useNotifySection } from "./notify-door.js";
61
+ // What AI did on a record, on its page (Roadmap f-activity-ai-entries), fetched with the first entry.
62
+ export { RecordInteractionsDoor } from "./record-interactions-door.js";
47
63
  // Choosing several records on a list, and the bar that acts on them all at once — fetched with the first one chosen.
48
64
  export { CHOOSING_CSS, LONG_PRESS_MS, useChoosing } from "./choosing.js";
49
65
  export { prefetchSeveral, SeveralBarDoor } from "./several-door.js";
66
+ // The app as it was (Roadmap f-playback): the timeline, fetched when somebody first looks back.
67
+ export { PastBar, prefetchTimeline } from "./past-bar.js";
68
+ // A first look that points at the app's own controls, once (its hints fetched as they are first shown).
69
+ export { FIRST_LOOK_ANCHORS, FirstLookDoor, firstLookKey } from "./first-look-door.js";
50
70
  //# sourceMappingURL=pages.js.map
package/dist/pages.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,gHAAgH;AAChH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,6GAA6G;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,4FAA4F;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,gHAAgH;AAChH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtJ,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,+LAA+L;AAC/L,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,sHAAsH;AACtH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9G,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAErH,8FAA8F;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qHAAqH;AACrH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Which face the timeline is drawn on: over the scene's picture, or at the head of the routed face's page. */
2
+ export type TimelineFace = "scene" | "pages";
3
+ /** Fetch the timeline before it is asked for: a pointer over "Show the app as it was here". */
4
+ export declare const prefetchTimeline: () => void;
5
+ /**
6
+ * THE APP AS IT WAS, AND THE WAY THROUGH IT: drawn while the timeline is
7
+ * open — an "as of" banner, a scrubber with a tick per change, play and
8
+ * its speed, the way back to now — and nothing otherwise.
9
+ */
10
+ export declare function PastBar({ face }: {
11
+ readonly face: TimelineFace;
12
+ }): import("react").JSX.Element | null;
13
+ //# sourceMappingURL=past-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"past-bar.d.ts","sourceRoot":"","sources":["../src/past-bar.tsx"],"names":[],"mappings":"AAYA,+GAA+G;AAC/G,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAI7C,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,QAAO,IAA2B,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,sCAQhE"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { retryingImport } from "@graview/core/retry";
3
+ import { lazyModule, usePlayback } from "@graview/react/provider";
4
+ import { Suspense } from "react";
5
+ /*
6
+ * THE TIMELINE'S DOOR (Roadmap f-playback). Nothing of playback is in a
7
+ * page's first load: the timeline — its ticks, its player, the sentences
8
+ * it reads from `@graview/core/history` — is fetched when somebody first
9
+ * asks to see the app as it was, and drawn on whichever face they are on.
10
+ */
11
+ const TIMELINE = /* @__PURE__ */ lazyModule(retryingImport(() => import("./timeline.js")));
12
+ const Timeline = TIMELINE.part((module, props) => _jsx(module.Timeline, { ...props }), { what: "The timeline" });
13
+ /** Fetch the timeline before it is asked for: a pointer over "Show the app as it was here". */
14
+ export const prefetchTimeline = () => TIMELINE.prefetch();
15
+ /**
16
+ * THE APP AS IT WAS, AND THE WAY THROUGH IT: drawn while the timeline is
17
+ * open — an "as of" banner, a scrubber with a tick per change, play and
18
+ * its speed, the way back to now — and nothing otherwise.
19
+ */
20
+ export function PastBar({ face }) {
21
+ const playback = usePlayback();
22
+ if (!playback?.open)
23
+ return null;
24
+ return (_jsx(Suspense, { fallback: null, children: _jsx(Timeline, { face: face }) }));
25
+ }
26
+ //# sourceMappingURL=past-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"past-bar.js","sourceRoot":"","sources":["../src/past-bar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAK3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAsC,EAAE,KAAsC,EAAE,EAAE,CAAC,KAAC,MAAM,CAAC,QAAQ,OAAK,KAAK,GAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAE7K,+FAA+F;AAC/F,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEhE;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAmC;IAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,GACf,CACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAc,MAAM,eAAe,CAAC;AAmCnG,wBAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,OAAe,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,sCA6I1F"}
1
+ {"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAc,MAAM,eAAe,CAAC;AAmCnG,wBAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,OAAe,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,sCA8I1F"}
package/dist/places.js CHANGED
@@ -46,8 +46,8 @@ export function Places({ compact = false } = {}) {
46
46
  * once, for the scene and the shelf; the bar reads the same answer.
47
47
  */
48
48
  const all = views.places().filter((place) => !hiddenKinds.has(place.kind));
49
- // A picture over several kinds is one tab, pressed from either kind's district.
50
- const places = onePerPicture(all);
49
+ // A picture over several kinds is one tab, pressed from either kind's district; one kept off the lists (`hidden`) only while it is the one shown.
50
+ const listed = onePerPicture(all);
51
51
  /*
52
52
  * Which picture a group draws when the address names none: the LAST
53
53
  * registration for the cell, because that is what the registry resolves
@@ -57,6 +57,7 @@ export function Places({ compact = false } = {}) {
57
57
  const showing = view.within?.["view"];
58
58
  const isHereOn = (place) => !view.overview && view.focusId === aggregateId(place.kind) && (showing === undefined ? isDefault(all, place) : showing === place.as);
59
59
  const isHere = (place) => all.some((one) => samePicture(one, place) && isHereOn(one));
60
+ const places = listed.filter((place) => !place.hidden || isHere(place));
60
61
  const here = places.find(isHere);
61
62
  const row = useRef(null);
62
63
  /* The place you are on, in view: a row that scrolls never hides the tab that says where you are. */
@@ -1 +1 @@
1
- {"version":3,"file":"places.js","sourceRoot":"","sources":["../src/places.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"places.js","sourceRoot":"","sources":["../src/places.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAA8B,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAmB,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,aAAa,GAAG;;;8FAGwE,CAAC;AAE/F,MAAM,UAAU,MAAM,CAAsB,EAAE,OAAO,GAAG,KAAK,KAA4B,EAAE;IACzF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAK,CAAC;IACtD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;IACrC;;;;;;;;;OASG;IACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,kJAAkJ;IAClJ,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC;;;;OAIG;IACH,MAAM,SAAS,GAAG,CAAC,GAAqB,EAAE,KAAY,EAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;IAC7I,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACxK,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACtC,oGAAoG;IACpG,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAc,uBAAuB,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW;YAAE,OAAO;QAClF,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtD,IAAI,IAAI,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1G,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgC,EAAE,CAAC,CAAC;IACpE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;QACP,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtF,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,EAAE,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,6BAA6B,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,0CAA0C,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC;IACvM,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,yGAAyG;IACzG,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;QACrC,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO;QAC5G,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC,CAAC;IACF,OAAO,CACL,eACE,GAAG,EAAE,GAAG,gBACG,QAAQ,iBACP,QAAQ,yBACC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAC/C,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,MAAM;YAChB,mGAAmG;YACnG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACxC,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,QAAQ;YACnB,cAAc,EAAE,MAAM;YACtB,mBAAmB,EAAE,SAAS;YAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,uBACkB,IAAI,IAAI,SAAS,aASpC,0BAAQ,aAAa,GAAS,EAE9B,aAAI,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,uBAAa,EACxD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,kBACC,OAAO,iBACR,SAAS,KAAK,CAAC,EAAE,EAAE,qBACf,KAAK,CAAC,IAAI,EAC3B,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,yBAAyB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EACpH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE;wBACL,qDAAqD;wBACrD,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,UAAU;wBACnB,MAAM,EAAE,CAAC;wBACT,MAAM,EAAE,CAAC;wBACT,iEAAiE;wBACjE,YAAY,EAAE,aAAa,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC9E,YAAY,EAAE,CAAC;wBACf,UAAU,EAAE,aAAa;wBACzB,SAAS,EAAE,MAAM;wBACjB,QAAQ,EAAE,UAAU;wBACpB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;wBAC/B,UAAU,EAAE,QAAQ;wBACpB,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,0BAA0B;qBACnE,YAEA,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,IA3BhC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CA4BzB,CACV,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -71,6 +71,14 @@ export declare const FAINT_TEXT: CSSProperties;
71
71
  * the count beside it, to the frame.
72
72
  */
73
73
  export declare const NamedAbove: import("react").Context<string | null>;
74
+ /**
75
+ * THE NAME THE ITEM'S LINK SAYS. A listed card is a link stretched over its
76
+ * picture, named by the record; the picture's own title, drawn in the same
77
+ * words, is said once — by the link, first — and not again among the
78
+ * card's details. A reader heard "Themes without a build, Considering,
79
+ * Framework, Themes without a build, link" on every card of a board.
80
+ */
81
+ export declare const NamedByItsLink: import("react").Context<string | null>;
74
82
  export declare function Panel({ title, subtitle, meta, selected, tone, children, style, fit, variant, heading, }: PanelProps): import("react").JSX.Element;
75
83
  /**
76
84
  * A PARAGRAPH WHOSE LINKS ARE TARGETS TOO.