@shivaedev/work-board 0.14.2 → 0.16.0

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 (279) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/assets/agent.js +1 -1
  4. package/assets/native.js +25 -25
  5. package/assets/react.css +1 -1
  6. package/assets/react.js +37 -36
  7. package/dist/browser/diagnostics/schema.d.ts +15 -12
  8. package/dist/browser/diagnostics/schema.d.ts.map +1 -1
  9. package/dist/browser/diagnostics/schema.js +12 -2
  10. package/dist/browser/diagnostics/schema.js.map +1 -1
  11. package/dist/browser/views/remaining.d.ts +20 -12
  12. package/dist/browser/views/remaining.d.ts.map +1 -1
  13. package/dist/client/client.d.ts +1 -0
  14. package/dist/client/client.d.ts.map +1 -1
  15. package/dist/client/client.js +1 -1
  16. package/dist/client/client.js.map +1 -1
  17. package/dist/client/document/Mermaid.d.ts.map +1 -1
  18. package/dist/client/document/Mermaid.js +4 -10
  19. package/dist/client/document/Mermaid.js.map +1 -1
  20. package/dist/client/document/View.js +1 -1
  21. package/dist/client/document/View.js.map +1 -1
  22. package/dist/client/formStatus.d.ts +12 -0
  23. package/dist/client/formStatus.d.ts.map +1 -0
  24. package/dist/client/formStatus.js +27 -0
  25. package/dist/client/formStatus.js.map +1 -0
  26. package/dist/client/react/BoardShell.d.ts.map +1 -1
  27. package/dist/client/react/BoardShell.js +36 -37
  28. package/dist/client/react/BoardShell.js.map +1 -1
  29. package/dist/client/react/DocumentContext.d.ts.map +1 -1
  30. package/dist/client/react/DocumentContext.js +12 -7
  31. package/dist/client/react/DocumentContext.js.map +1 -1
  32. package/dist/client/react/FormContext.d.ts +5 -0
  33. package/dist/client/react/FormContext.d.ts.map +1 -0
  34. package/dist/client/react/FormContext.js +10 -0
  35. package/dist/client/react/FormContext.js.map +1 -0
  36. package/dist/client/react/LiveControls.d.ts +4 -3
  37. package/dist/client/react/LiveControls.d.ts.map +1 -1
  38. package/dist/client/react/LiveControls.js +5 -24
  39. package/dist/client/react/LiveControls.js.map +1 -1
  40. package/dist/client/react/MainLocationContext.d.ts +3 -0
  41. package/dist/client/react/MainLocationContext.d.ts.map +1 -0
  42. package/dist/client/react/MainLocationContext.js +7 -0
  43. package/dist/client/react/MainLocationContext.js.map +1 -0
  44. package/dist/client/react/PhoneNavigation.d.ts +3 -1
  45. package/dist/client/react/PhoneNavigation.d.ts.map +1 -1
  46. package/dist/client/react/PhoneNavigation.js +8 -13
  47. package/dist/client/react/PhoneNavigation.js.map +1 -1
  48. package/dist/client/react/ProjectionFrame.d.ts +1 -2
  49. package/dist/client/react/ProjectionFrame.d.ts.map +1 -1
  50. package/dist/client/react/ProjectionFrame.js +10 -4
  51. package/dist/client/react/ProjectionFrame.js.map +1 -1
  52. package/dist/client/react/ReadingLibrary.d.ts.map +1 -1
  53. package/dist/client/react/ReadingLibrary.js +9 -14
  54. package/dist/client/react/ReadingLibrary.js.map +1 -1
  55. package/dist/client/react/ReadingReadyContext.d.ts +6 -0
  56. package/dist/client/react/ReadingReadyContext.d.ts.map +1 -0
  57. package/dist/client/react/ReadingReadyContext.js +7 -0
  58. package/dist/client/react/ReadingReadyContext.js.map +1 -0
  59. package/dist/client/react/SessionContext.d.ts +3 -0
  60. package/dist/client/react/SessionContext.d.ts.map +1 -0
  61. package/dist/client/react/SessionContext.js +3 -0
  62. package/dist/client/react/SessionContext.js.map +1 -0
  63. package/dist/client/react/SystemMain.d.ts.map +1 -1
  64. package/dist/client/react/SystemMain.js +3 -1
  65. package/dist/client/react/SystemMain.js.map +1 -1
  66. package/dist/client/react/SystemPage.d.ts.map +1 -1
  67. package/dist/client/react/SystemPage.js +2 -1
  68. package/dist/client/react/SystemPage.js.map +1 -1
  69. package/dist/client/react/ThemeContext.d.ts +2 -0
  70. package/dist/client/react/ThemeContext.d.ts.map +1 -0
  71. package/dist/client/react/ThemeContext.js +3 -0
  72. package/dist/client/react/ThemeContext.js.map +1 -0
  73. package/dist/client/react/TodayOptions.d.ts.map +1 -1
  74. package/dist/client/react/TodayOptions.js +23 -14
  75. package/dist/client/react/TodayOptions.js.map +1 -1
  76. package/dist/client/react/VisualViewer.d.ts.map +1 -1
  77. package/dist/client/react/VisualViewer.js +6 -5
  78. package/dist/client/react/VisualViewer.js.map +1 -1
  79. package/dist/client/react/boardRouter.d.ts +3 -2
  80. package/dist/client/react/boardRouter.d.ts.map +1 -1
  81. package/dist/client/react/boardRouter.js +2 -1
  82. package/dist/client/react/boardRouter.js.map +1 -1
  83. package/dist/client/react/createResponse.d.ts +32 -4
  84. package/dist/client/react/createResponse.d.ts.map +1 -1
  85. package/dist/client/react/createResponse.js +7 -28
  86. package/dist/client/react/createResponse.js.map +1 -1
  87. package/dist/client/react/diagnosticsValues.d.ts.map +1 -1
  88. package/dist/client/react/diagnosticsValues.js +5 -7
  89. package/dist/client/react/diagnosticsValues.js.map +1 -1
  90. package/dist/client/react/entry.d.ts.map +1 -1
  91. package/dist/client/react/entry.js +2 -34
  92. package/dist/client/react/entry.js.map +1 -1
  93. package/dist/client/react/githubLimited.d.ts +3 -0
  94. package/dist/client/react/githubLimited.d.ts.map +1 -0
  95. package/dist/client/react/githubLimited.js +4 -0
  96. package/dist/client/react/githubLimited.js.map +1 -0
  97. package/dist/client/react/loadProjection.d.ts +135 -135
  98. package/dist/client/react/loadRemaining.d.ts +20 -12
  99. package/dist/client/react/loadRemaining.d.ts.map +1 -1
  100. package/dist/client/react/mainLocation.d.ts +4 -2
  101. package/dist/client/react/mainLocation.d.ts.map +1 -1
  102. package/dist/client/react/mainLocation.js +1 -8
  103. package/dist/client/react/mainLocation.js.map +1 -1
  104. package/dist/client/react/mountBoard.d.ts +3 -0
  105. package/dist/client/react/mountBoard.d.ts.map +1 -0
  106. package/dist/client/react/mountBoard.js +45 -0
  107. package/dist/client/react/mountBoard.js.map +1 -0
  108. package/dist/client/react/navigationLocation.d.ts +3 -1
  109. package/dist/client/react/navigationLocation.d.ts.map +1 -1
  110. package/dist/client/react/navigationLocation.js +11 -1
  111. package/dist/client/react/navigationLocation.js.map +1 -1
  112. package/dist/client/react/retryPage.d.ts +2 -1
  113. package/dist/client/react/retryPage.d.ts.map +1 -1
  114. package/dist/client/react/retryPage.js +3 -4
  115. package/dist/client/react/retryPage.js.map +1 -1
  116. package/dist/client/react/scheduleReading.d.ts.map +1 -1
  117. package/dist/client/react/scheduleReading.js +1 -10
  118. package/dist/client/react/scheduleReading.js.map +1 -1
  119. package/dist/client/react/useAppearance.d.ts +2 -1
  120. package/dist/client/react/useAppearance.d.ts.map +1 -1
  121. package/dist/client/react/useAppearance.js +1 -2
  122. package/dist/client/react/useAppearance.js.map +1 -1
  123. package/dist/client/react/useBoardNavigation.d.ts +1 -1
  124. package/dist/client/react/useBoardNavigation.d.ts.map +1 -1
  125. package/dist/client/react/useBoardNavigation.js +28 -22
  126. package/dist/client/react/useBoardNavigation.js.map +1 -1
  127. package/dist/client/react/useDiagnosticsPolling.d.ts +4 -1
  128. package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -1
  129. package/dist/client/react/useDiagnosticsPolling.js +9 -7
  130. package/dist/client/react/useDiagnosticsPolling.js.map +1 -1
  131. package/dist/client/react/useDocumentPage.d.ts +1 -1
  132. package/dist/client/react/useDocumentPage.d.ts.map +1 -1
  133. package/dist/client/react/useDocumentPage.js +9 -6
  134. package/dist/client/react/useDocumentPage.js.map +1 -1
  135. package/dist/client/react/useHandoffForm.d.ts +56 -30
  136. package/dist/client/react/useHandoffForm.d.ts.map +1 -1
  137. package/dist/client/react/useHandoffForm.js +19 -30
  138. package/dist/client/react/useHandoffForm.js.map +1 -1
  139. package/dist/client/react/useResponseForm.d.ts +72 -43
  140. package/dist/client/react/useResponseForm.d.ts.map +1 -1
  141. package/dist/client/react/useResponseForm.js +20 -17
  142. package/dist/client/react/useResponseForm.js.map +1 -1
  143. package/dist/client/react/useSidebar.d.ts.map +1 -1
  144. package/dist/client/react/useSidebar.js +5 -3
  145. package/dist/client/react/useSidebar.js.map +1 -1
  146. package/dist/client/react/visualSources.d.ts.map +1 -1
  147. package/dist/client/react/visualSources.js +10 -8
  148. package/dist/client/react/visualSources.js.map +1 -1
  149. package/dist/client/saveFailure.d.ts +8 -0
  150. package/dist/client/saveFailure.d.ts.map +1 -0
  151. package/dist/client/saveFailure.js +8 -0
  152. package/dist/client/saveFailure.js.map +1 -0
  153. package/dist/diagnostics/daemonContract.d.ts +65 -38
  154. package/dist/diagnostics/daemonContract.d.ts.map +1 -1
  155. package/dist/diagnostics/daemonContract.js +2 -1
  156. package/dist/diagnostics/daemonContract.js.map +1 -1
  157. package/dist/diagnostics/health.d.ts +10 -0
  158. package/dist/diagnostics/health.d.ts.map +1 -1
  159. package/dist/diagnostics/health.js +2 -0
  160. package/dist/diagnostics/health.js.map +1 -1
  161. package/dist/diagnostics/source.d.ts +55 -36
  162. package/dist/diagnostics/source.d.ts.map +1 -1
  163. package/dist/diagnostics/source.js +1 -2
  164. package/dist/diagnostics/source.js.map +1 -1
  165. package/dist/render/{failed.d.ts → Failed.d.ts} +1 -1
  166. package/dist/render/Failed.d.ts.map +1 -0
  167. package/dist/render/{failed.js → Failed.js} +1 -1
  168. package/dist/render/Failed.js.map +1 -0
  169. package/dist/render/code.d.ts +2 -2
  170. package/dist/render/code.d.ts.map +1 -1
  171. package/dist/render/code.js +15 -13
  172. package/dist/render/code.js.map +1 -1
  173. package/dist/render/footnoteIds.d.ts +3 -0
  174. package/dist/render/footnoteIds.d.ts.map +1 -0
  175. package/dist/render/{footnotes.js → footnoteIds.js} +11 -9
  176. package/dist/render/footnoteIds.js.map +1 -0
  177. package/dist/rpc/contract.d.ts +2346 -2322
  178. package/dist/rpc/contract.d.ts.map +1 -1
  179. package/dist/rpc/handoffContract.d.ts +33 -33
  180. package/dist/rpc/responseContract.d.ts +56 -56
  181. package/dist/server/board.d.ts +1 -1
  182. package/dist/server/diagnostics/daemon.d.ts +41 -25
  183. package/dist/server/diagnostics/daemon.d.ts.map +1 -1
  184. package/dist/server/diagnostics/fleetHealth.d.ts +10 -0
  185. package/dist/server/diagnostics/fleetHealth.d.ts.map +1 -1
  186. package/dist/server/diagnostics/githubLimits.d.ts +12 -13
  187. package/dist/server/diagnostics/githubLimits.d.ts.map +1 -1
  188. package/dist/server/diagnostics/githubLimits.js +6 -6
  189. package/dist/server/diagnostics/githubLimits.js.map +1 -1
  190. package/dist/server/integration/diagnostics.d.ts +74 -38
  191. package/dist/server/integration/diagnostics.d.ts.map +1 -1
  192. package/dist/server/mcp/client.d.ts +1155 -1147
  193. package/dist/server/mcp/client.d.ts.map +1 -1
  194. package/dist/server/mcp/queries.d.ts +60 -36
  195. package/dist/server/mcp/queries.d.ts.map +1 -1
  196. package/dist/server/metadata/fields.js +1 -1
  197. package/dist/server/metadata/fields.js.map +1 -1
  198. package/dist/server/packageInfo.d.ts +1 -1
  199. package/dist/server/packageInfo.js +1 -1
  200. package/dist/server/render/Highlighter.d.ts +1 -1
  201. package/dist/server/render/Highlighter.js +1 -1
  202. package/dist/server/render/markdown.d.ts +1 -1
  203. package/dist/server/render/markdown.js +2 -2
  204. package/dist/server/render/markdown.js.map +1 -1
  205. package/dist/server/serve.d.ts +1 -1
  206. package/dist/server/views/remainingQueries.d.ts +20 -12
  207. package/dist/server/views/remainingQueries.d.ts.map +1 -1
  208. package/package.json +9 -39
  209. package/src/browser/diagnostics/schema.ts +12 -2
  210. package/src/client/client.ts +2 -1
  211. package/src/client/document/Mermaid.ts +4 -10
  212. package/src/client/document/View.ts +1 -1
  213. package/src/client/formStatus.ts +35 -0
  214. package/src/client/react/BoardShell.tsx +49 -43
  215. package/src/client/react/DocumentContext.tsx +12 -7
  216. package/src/client/react/FormContext.ts +13 -0
  217. package/src/client/react/LiveControls.tsx +5 -38
  218. package/src/client/react/MainLocationContext.ts +8 -0
  219. package/src/client/react/PhoneNavigation.tsx +20 -15
  220. package/src/client/react/ProjectionFrame.tsx +13 -5
  221. package/src/client/react/ReadingLibrary.tsx +9 -14
  222. package/src/client/react/ReadingReadyContext.ts +11 -0
  223. package/src/client/react/SessionContext.ts +4 -0
  224. package/src/client/react/SystemMain.tsx +3 -1
  225. package/src/client/react/SystemPage.tsx +2 -1
  226. package/src/client/react/ThemeContext.ts +3 -0
  227. package/src/client/react/TodayOptions.tsx +40 -33
  228. package/src/client/react/VisualViewer.tsx +6 -6
  229. package/src/client/react/boardRouter.ts +3 -2
  230. package/src/client/react/createResponse.ts +10 -35
  231. package/src/client/react/diagnosticsValues.tsx +20 -12
  232. package/src/client/react/entry.tsx +2 -37
  233. package/src/client/react/githubLimited.ts +5 -0
  234. package/src/client/react/mainLocation.ts +5 -8
  235. package/src/client/react/mountBoard.tsx +49 -0
  236. package/src/client/react/navigationLocation.ts +14 -2
  237. package/src/client/react/retryPage.ts +4 -4
  238. package/src/client/react/scheduleReading.ts +1 -10
  239. package/src/client/react/useAppearance.ts +2 -3
  240. package/src/client/react/useBoardNavigation.ts +30 -23
  241. package/src/client/react/useDiagnosticsPolling.ts +14 -7
  242. package/src/client/react/useDocumentPage.ts +12 -6
  243. package/src/client/react/useHandoffForm.ts +25 -33
  244. package/src/client/react/useResponseForm.ts +20 -18
  245. package/src/client/react/useSidebar.ts +5 -3
  246. package/src/client/react/visualSources.ts +10 -8
  247. package/src/client/saveFailure.ts +14 -0
  248. package/src/diagnostics/daemonContract.ts +2 -1
  249. package/src/diagnostics/health.ts +2 -0
  250. package/src/diagnostics/source.ts +1 -2
  251. package/src/render/code.ts +3 -4
  252. package/src/render/{footnotes.ts → footnoteIds.ts} +12 -10
  253. package/src/server/board.ts +1 -1
  254. package/src/server/diagnostics/githubLimits.ts +9 -11
  255. package/src/server/metadata/fields.ts +1 -1
  256. package/src/server/packageInfo.ts +1 -1
  257. package/src/server/render/Highlighter.ts +1 -1
  258. package/src/server/render/markdown.ts +2 -2
  259. package/dist/client/handoffs/failureStatus.d.ts +0 -2
  260. package/dist/client/handoffs/failureStatus.d.ts.map +0 -1
  261. package/dist/client/handoffs/failureStatus.js +0 -7
  262. package/dist/client/handoffs/failureStatus.js.map +0 -1
  263. package/dist/client/responses/failure.d.ts +0 -5
  264. package/dist/client/responses/failure.d.ts.map +0 -1
  265. package/dist/client/responses/failure.js +0 -13
  266. package/dist/client/responses/failure.js.map +0 -1
  267. package/dist/render/failed.d.ts.map +0 -1
  268. package/dist/render/failed.js.map +0 -1
  269. package/dist/render/footnotes.d.ts +0 -3
  270. package/dist/render/footnotes.d.ts.map +0 -1
  271. package/dist/render/footnotes.js.map +0 -1
  272. package/dist/server/diagnostics/readCommand.d.ts +0 -4
  273. package/dist/server/diagnostics/readCommand.d.ts.map +0 -1
  274. package/dist/server/diagnostics/readCommand.js +0 -20
  275. package/dist/server/diagnostics/readCommand.js.map +0 -1
  276. package/src/client/handoffs/failureStatus.ts +0 -6
  277. package/src/client/responses/failure.ts +0 -13
  278. package/src/server/diagnostics/readCommand.ts +0 -24
  279. /package/src/render/{failed.ts → Failed.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"LiveControls.d.ts","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUvD,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,gBAAgB,GAChB,EAAE;IACF,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC,+BAwDA"}
1
+ {"version":3,"file":"LiveControls.d.ts","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,iBAAiB,EACjB,gBAAgB,GAChB,EAAE;IACF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;KAAE,CAAC;IACrI,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC,+BA4BA"}
@@ -2,34 +2,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useAtomValue } from "@effect/atom-react";
3
3
  import { Option } from "effect";
4
4
  import * as Atom from "effect/reactivity/Atom";
5
- import { useEffect, useMemo, useState } from "react";
5
+ import { useMemo } from "react";
6
6
  import { useQuery } from "@shivaedev/effect-react/result-state.ts";
7
7
  import { activeRead } from "./activeRead.js";
8
8
  import { liveStatus } from "./liveStatus.js";
9
+ import { useMainLocation } from "./MainLocationContext.js";
9
10
  import { shellIds } from "./shellIds.js";
10
11
  const opening = Atom.make({ failed: false, pending: true });
11
- export function LiveControls({ client, current, navigationPending, navigationFailed, }) {
12
+ export function LiveControls({ client, navigationPending, navigationFailed, }) {
12
13
  const status = useAtomValue(client.updates.status);
13
14
  const paused = useAtomValue(client.updates.paused);
14
15
  const watcher = useQuery(client.api.watcher.query());
15
16
  const watching = Option.getOrUndefined(watcher.data)?.watching === true;
16
- const [page, setPage] = useState();
17
- useEffect(() => {
18
- function sync() {
19
- const doc = document.getElementById("doc");
20
- if (doc?.dataset.route !== current) {
21
- return;
22
- }
23
- setPage({
24
- kind: doc?.dataset.projection ?? "document",
25
- url: current,
26
- });
27
- }
28
- sync();
29
- document.addEventListener("board-page", sync);
30
- return () => document.removeEventListener("board-page", sync);
31
- }, [current]);
32
- const atom = useMemo(() => (page ? activeRead(client.api, page.kind, page.url) : opening), [client, page]);
17
+ const page = useMainLocation();
18
+ const atom = useMemo(() => (page.route ? activeRead(client.api, page.projection, page.route) : opening), [client, page.projection, page.route]);
33
19
  const reading = useAtomValue(atom);
34
20
  const displayed = liveStatus({
35
21
  connection: status.connection,
@@ -40,11 +26,6 @@ export function LiveControls({ client, current, navigationPending, navigationFai
40
26
  waiting: navigationPending || reading.pending,
41
27
  watching,
42
28
  });
43
- useEffect(() => client.registry.subscribe(client.updates.paused, (value) => {
44
- if (!value) {
45
- document.dispatchEvent(new Event("board-updates-resumed"));
46
- }
47
- }, { immediate: true }), [client]);
48
29
  return (_jsx("span", { className: "font-mono text-muted-foreground text-xs data-[state=down]:text-destructive data-[state=stale]:text-destructive", "data-state": displayed.state, id: shellIds.live, role: "status", title: displayed.title, children: displayed.text }));
49
30
  }
50
31
  //# sourceMappingURL=LiveControls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveControls.js","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveControls.js","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,MAAM,UAAU,YAAY,CAAC,EAC5B,MAAM,EACN,iBAAiB,EACjB,gBAAgB,GAKhB;IACA,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxE,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChJ,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB;QAChB,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,iBAAiB,IAAI,OAAO,CAAC,OAAO;QAC7C,QAAQ;KACR,CAAC,CAAC;IACH,OAAO,CACN,eACC,SAAS,EAAC,gHAAgH,gBAC9G,SAAS,CAAC,KAAK,EAC3B,EAAE,EAAE,QAAQ,CAAC,IAAI,EACjB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,SAAS,CAAC,KAAK,YAErB,SAAS,CAAC,IAAI,GACT,CACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const MainLocationContext: import("react").Context<import("./mainLocation.ts").MainLocation>;
2
+ export declare function useMainLocation(): import("./mainLocation.ts").MainLocation;
3
+ //# sourceMappingURL=MainLocationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainLocationContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/MainLocationContext.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,mEAAmC,CAAC;AAEpE,wBAAgB,eAAe,6CAE9B"}
@@ -0,0 +1,7 @@
1
+ import { createContext, useContext } from "react";
2
+ import { emptyMainLocation } from "./mainLocation.js";
3
+ export const MainLocationContext = createContext(emptyMainLocation);
4
+ export function useMainLocation() {
5
+ return useContext(MainLocationContext);
6
+ }
7
+ //# sourceMappingURL=MainLocationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainLocationContext.js","sourceRoot":"","sources":["../../../src/client/react/MainLocationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEpE,MAAM,UAAU,eAAe;IAC9B,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACxC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { MainLocation } from "./mainLocation.ts";
2
- export declare function PhoneNavigation({ main, openSearch }: {
2
+ export declare function PhoneNavigation({ main, more, onMoreChange, openSearch, }: {
3
3
  readonly main: MainLocation;
4
+ readonly more: boolean;
5
+ readonly onMoreChange: (open: boolean) => void;
4
6
  readonly openSearch: () => void;
5
7
  }): import("react").JSX.Element;
6
8
  //# sourceMappingURL=PhoneNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNavigation.d.ts","sourceRoot":"","sources":["../../../src/client/react/PhoneNavigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAStD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,+BAsErH"}
1
+ {"version":3,"file":"PhoneNavigation.d.ts","sourceRoot":"","sources":["../../../src/client/react/PhoneNavigation.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAStD,wBAAgB,eAAe,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,UAAU,GACV,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CAChC,+BAgEA"}
@@ -1,6 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRouter } from "@tanstack/react-router";
2
3
  import { CalendarDays, Ellipsis, Flag, Search, Zap } from "lucide-react";
3
- import { useEffect, useState } from "react";
4
+ import { useEffect } from "react";
4
5
  import { Button } from "#client/react/components/ui/Button.tsx";
5
6
  import { Modal } from "./Modal.js";
6
7
  import { shellIds } from "./shellIds.js";
@@ -8,24 +9,18 @@ import { useMedia } from "./useMedia.js";
8
9
  import { workspaceDestinations } from "./workspaceDestinations.js";
9
10
  const icons = [CalendarDays, Flag, Zap];
10
11
  const TAB_CLASS = "flex min-h-12 min-w-0 flex-col items-center justify-center gap-1 rounded-md border-0 bg-transparent p-0 text-foreground text-xs no-underline aria-[current=page]:bg-accent aria-[current=page]:text-primary";
11
- export function PhoneNavigation({ main, openSearch }) {
12
- const [more, setMore] = useState(false);
12
+ export function PhoneNavigation({ main, more, onMoreChange, openSearch, }) {
13
+ const router = useRouter();
13
14
  const narrow = useMedia("(max-width: 767px)");
14
15
  useEffect(() => {
15
16
  if (!narrow) {
16
- setMore(false);
17
+ onMoreChange(false);
17
18
  }
18
- }, [narrow]);
19
- useEffect(() => {
20
- function close() {
21
- setMore(false);
22
- }
23
- document.addEventListener("board-navigate", close);
24
- return () => document.removeEventListener("board-navigate", close);
25
- }, []);
19
+ }, [narrow, onMoreChange]);
20
+ useEffect(() => router.subscribe("onBeforeNavigate", () => onMoreChange(false)), [router, onMoreChange]);
26
21
  return (_jsxs(_Fragment, { children: [_jsxs("nav", { "aria-label": "Phone navigation", className: "fixed inset-x-0 bottom-0 z-20 grid grid-cols-5 border-t bg-background px-2 pt-1 pb-[max(0.25rem,env(safe-area-inset-bottom))] md:hidden print:hidden", children: [workspaceDestinations.slice(0, 3).map(({ label, href, view }, index) => {
27
22
  const Icon = icons[index] ?? CalendarDays;
28
23
  return (_jsxs("a", { "aria-current": main.view === view ? "page" : undefined, className: TAB_CLASS, href: href, children: [_jsx(Icon, { "aria-hidden": "true", className: "size-5" }), label] }, view));
29
- }), _jsxs("button", { "aria-controls": "search-dialog", "aria-haspopup": "dialog", className: TAB_CLASS, onClick: () => openSearch(), type: "button", children: [_jsx(Search, { "aria-hidden": "true", className: "size-5" }), "Search"] }), _jsxs("button", { "aria-controls": "phone-more", "aria-expanded": more, "aria-haspopup": "dialog", className: TAB_CLASS, onClick: () => setMore(true), type: "button", children: [_jsx(Ellipsis, { "aria-hidden": "true", className: "size-5" }), "More"] })] }), _jsxs(Modal, { className: "phone-more", close: () => setMore(false), id: shellIds.phoneMore, open: more, title: shellIds.phoneMoreTitle, children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsx("h2", { className: "font-semibold", id: shellIds.phoneMoreTitle, children: "More" }), _jsx(Button, { onClick: () => setMore(false), variant: "ghost", children: "Close" })] }), _jsx("nav", { "aria-label": "More destinations", className: "grid gap-2", children: workspaceDestinations.slice(3).map(({ href, label, view }) => (_jsx("a", { "aria-current": main.view === view ? "page" : undefined, className: "flex min-h-12 items-center rounded-md px-3 hover:bg-accent", href: href, children: label }, view))) })] })] }));
24
+ }), _jsxs("button", { "aria-controls": "search-dialog", "aria-haspopup": "dialog", className: TAB_CLASS, onClick: () => openSearch(), type: "button", children: [_jsx(Search, { "aria-hidden": "true", className: "size-5" }), "Search"] }), _jsxs("button", { "aria-controls": "phone-more", "aria-expanded": more, "aria-haspopup": "dialog", className: TAB_CLASS, onClick: () => onMoreChange(true), type: "button", children: [_jsx(Ellipsis, { "aria-hidden": "true", className: "size-5" }), "More"] })] }), _jsxs(Modal, { className: "phone-more", close: () => onMoreChange(false), id: shellIds.phoneMore, open: more, title: shellIds.phoneMoreTitle, children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsx("h2", { className: "font-semibold", id: shellIds.phoneMoreTitle, children: "More" }), _jsx(Button, { onClick: () => onMoreChange(false), variant: "ghost", children: "Close" })] }), _jsx("nav", { "aria-label": "More destinations", className: "grid gap-2", children: workspaceDestinations.slice(3).map(({ href, label, view }) => (_jsx("a", { "aria-current": main.view === view ? "page" : undefined, className: "flex min-h-12 items-center rounded-md px-3 hover:bg-accent", href: href, children: label }, view))) })] })] }));
30
25
  }
31
26
  //# sourceMappingURL=PhoneNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNavigation.js","sourceRoot":"","sources":["../../../src/client/react/PhoneNavigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PhoneNavigation.js","sourceRoot":"","sources":["../../../src/client/react/PhoneNavigation.tsx"],"names":[],"mappings":"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"}
@@ -6,9 +6,8 @@ import type { ProjectionRoute } from "./projectionRoute.ts";
6
6
  import type { RemainingRoute } from "./remainingRoute.ts";
7
7
  export declare function ProjectionFrame<A, E>({ atom, location, onPage, render, source, route, url, }: {
8
8
  readonly atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>;
9
- readonly location: (data: A) => MainLocation & {
9
+ readonly location: (data: A) => Omit<MainLocation, "route" | "projection"> & {
10
10
  readonly identity?: string | undefined;
11
- readonly status: number;
12
11
  };
13
12
  readonly onPage: (location: MainLocation) => void;
14
13
  readonly render: (data: A) => ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionFrame.d.ts","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnH,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BA+EA"}
1
+ {"version":3,"file":"ProjectionFrame.d.ts","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACxH,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAuFA"}
@@ -15,7 +15,7 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
15
15
  const failed = Option.isSome(query.cause);
16
16
  useLayoutEffect(() => {
17
17
  const element = hostRef.current;
18
- if (element && element.dataset.route !== url) {
18
+ if (element) {
19
19
  delete element.dataset.route;
20
20
  }
21
21
  if (!element || query.pending || (data === undefined && !failed)) {
@@ -33,8 +33,14 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
33
33
  }
34
34
  renderedRef.current = projectionChanges(mainElement, renderedRef.current, url);
35
35
  mainElement.dataset.route = url;
36
- flushSync(() => onPage({ file: main.file, title: mainElement.querySelector("h1")?.textContent?.trim(), view: main.view }));
37
- document.dispatchEvent(new Event("board-page"));
36
+ flushSync(() => onPage({
37
+ file: main.file,
38
+ projection: route,
39
+ route: url,
40
+ status: main.status,
41
+ title: mainElement.querySelector("h1")?.textContent?.trim(),
42
+ view: main.view,
43
+ }));
38
44
  });
39
45
  }
40
46
  const observer = new MutationObserver((records) => {
@@ -50,7 +56,7 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
50
56
  active = false;
51
57
  observer.disconnect();
52
58
  };
53
- }, [data, failed, query.pending, expectedSource, main.file, main.view, onPage, url]);
59
+ }, [data, failed, query.pending, expectedSource, main.file, main.status, main.view, onPage, route, url]);
54
60
  return (_jsxs(_Fragment, { children: [_jsxs("main", { className: "board-view min-w-0 p-4 md:p-8", "data-file": main.file, "data-identity": "identity" in main ? main.identity : undefined, "data-projection": route, "data-react-projection": true, "data-status": main.status, "data-url": route === "board" ? fileUrl(main.file) : url, "data-view": main.view, id: shellIds.doc, ref: hostRef, tabIndex: -1, children: [data === undefined && (_jsx("p", { className: "empty", role: "status", children: loadingMessage(query.pending, missing, failure) })), _jsx("div", { className: data === undefined ? "hidden" : "contents", hidden: data === undefined, children: content === undefined ? null : render(content) })] }), data !== undefined && Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Refresh failed. Your displayed view is retained." })] }));
55
61
  }
56
62
  function loadingMessage(pending, missing, failure) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionFrame.js","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionFrame.js","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadingLibrary.d.ts","sourceRoot":"","sources":["../../../src/client/react/ReadingLibrary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAIjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,cAAc,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC7B,+BAiFA"}
1
+ {"version":3,"file":"ReadingLibrary.d.ts","sourceRoot":"","sources":["../../../src/client/react/ReadingLibrary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkD,MAAM,OAAO,CAAC;AAKvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,cAAc,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC7B,+BA2EA"}
@@ -1,10 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useRef, useState } from "react";
2
+ import { useCallback, useLayoutEffect, useRef, useState } from "react";
3
3
  import { LibraryContext, restoreLibrary } from "#client/react/LibraryContext.ts";
4
+ import { useMainLocation } from "./MainLocationContext.js";
4
5
  import { Modal } from "./Modal.js";
5
6
  import { ReadingHistory } from "./ReadingHistory.js";
6
7
  import { shellIds } from "./shellIds.js";
7
8
  export function ReadingLibrary({ api, open, close, children, }) {
9
+ const page = useMainLocation();
8
10
  const key = `work-board:library:${document.documentElement.dataset.workspace}`;
9
11
  const [saved, setSaved] = useState(() => restoreLibrary(key));
10
12
  const [current, setCurrent] = useState("");
@@ -21,17 +23,16 @@ export function ReadingLibrary({ api, open, close, children, }) {
21
23
  savedRef.current = { ...next, notice };
22
24
  setSaved(savedRef.current);
23
25
  }, [key]);
24
- useEffect(() => {
26
+ useLayoutEffect(() => {
25
27
  function sync() {
26
- const doc = document.getElementById("doc");
27
- if (!doc?.dataset.route) {
28
+ if (!page.route) {
28
29
  return;
29
30
  }
30
- const file = doc.dataset.file ?? "";
31
- const title = doc.querySelector("h1")?.textContent?.trim() || file;
31
+ const file = page.file;
32
+ const title = page.title || file;
32
33
  document.title = title ? `${title} · Work Board` : "Work Board";
33
34
  setCurrent(file);
34
- if (file && doc.querySelector("#favorite-toggle") && visitedRef.current !== `${file}:${title}`) {
35
+ if (file && page.view === "" && visitedRef.current !== `${file}:${title}`) {
35
36
  visitedRef.current = `${file}:${title}`;
36
37
  save({
37
38
  favorites: savedRef.current.favorites,
@@ -40,13 +41,7 @@ export function ReadingLibrary({ api, open, close, children, }) {
40
41
  }
41
42
  }
42
43
  sync();
43
- document.addEventListener("board-page", sync);
44
- document.addEventListener("board-index-change", sync);
45
- return () => {
46
- document.removeEventListener("board-page", sync);
47
- document.removeEventListener("board-index-change", sync);
48
- };
49
- }, [save]);
44
+ }, [save, page]);
50
45
  return (_jsxs(LibraryContext.Provider, { value: {
51
46
  favorites: saved.favorites,
52
47
  recents: saved.recents,
@@ -1 +1 @@
1
- {"version":3,"file":"ReadingLibrary.js","sourceRoot":"","sources":["../../../src/client/react/ReadingLibrary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadingLibrary.js","sourceRoot":"","sources":["../../../src/client/react/ReadingLibrary.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const ReadingReadyContext: import("react").Context<{
2
+ readonly element: HTMLElement | null;
3
+ readonly report: (element: HTMLElement, ready: boolean) => void;
4
+ }>;
5
+ export declare function readingReady(doc: HTMLElement, element: HTMLElement | null): boolean;
6
+ //# sourceMappingURL=ReadingReadyContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadingReadyContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/ReadingReadyContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;sBACb,WAAW,GAAG,IAAI;qBACnB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI;EAClB,CAAC;AAE/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,WAGzE"}
@@ -0,0 +1,7 @@
1
+ import { createContext } from "react";
2
+ export const ReadingReadyContext = createContext({ element: null, report: () => undefined });
3
+ export function readingReady(doc, element) {
4
+ const context = doc.querySelector(".item-context");
5
+ return !context || context === element;
6
+ }
7
+ //# sourceMappingURL=ReadingReadyContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadingReadyContext.js","sourceRoot":"","sources":["../../../src/client/react/ReadingReadyContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAG7C,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,GAAgB,EAAE,OAA2B;IACzE,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BrowserClient } from "#client/client.ts";
2
+ export declare const SessionContext: import("react").Context<BrowserClient | undefined>;
3
+ //# sourceMappingURL=SessionContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/SessionContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,cAAc,oDAAsD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from "react";
2
+ export const SessionContext = createContext(undefined);
3
+ //# sourceMappingURL=SessionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionContext.js","sourceRoot":"","sources":["../../../src/client/react/SessionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA4B,SAAS,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemMain.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,wBAAgB,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAaA"}
1
+ {"version":3,"file":"SystemMain.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,wBAAgB,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAaA"}
@@ -1,11 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext } from "react";
2
3
  import { routeQueryOptions } from "#client/page/routeQuery.ts";
3
4
  import { ProjectionFrame } from "./ProjectionFrame.js";
5
+ import { SessionContext } from "./SessionContext.js";
4
6
  import { SystemPage } from "./SystemPage.js";
5
7
  import { useDiagnosticsPolling } from "./useDiagnosticsPolling.js";
6
8
  export function SystemMain({ api, onPage, url, }) {
7
9
  const atom = api.diagnostics.query(undefined, routeQueryOptions);
8
- useDiagnosticsPolling(atom, api.fleetItems.query(undefined, routeQueryOptions));
10
+ useDiagnosticsPolling(useContext(SessionContext), atom, api.fleetItems.query(undefined, routeQueryOptions));
9
11
  return (_jsx(ProjectionFrame, { atom: atom, location: () => ({ file: "System", status: 200, view: "system" }), onPage: onPage, render: (data) => _jsx(SystemPage, { data: data }), route: "system", url: url }));
10
12
  }
11
13
  //# sourceMappingURL=SystemMain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GAKH;IACA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjE,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAChF,OAAO,CACN,KAAC,eAAe,IACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,EAC5C,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,GAAG,GACP,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GAKH;IACA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjE,qBAAqB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC5G,OAAO,CACN,KAAC,eAAe,IACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,EAC5C,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,GAAG,GACP,CACF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAMzE,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,+BAuCpG"}
1
+ {"version":3,"file":"SystemPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAOzE,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,+BAuCpG"}
@@ -3,13 +3,14 @@ import { useContext } from "react";
3
3
  import { Card as Surface } from "#client/react/components/ui/Card.tsx";
4
4
  import { DiagnosticsGithub, DiagnosticsWindows, ObservedTime } from "./diagnosticsValues.js";
5
5
  import { FleetItemsContext } from "./FleetItemsContext.js";
6
+ import { githubLimited } from "./githubLimited.js";
6
7
  import { SystemFleetLane } from "./SystemFleetLane.js";
7
8
  import { SystemHealth } from "./SystemHealth.js";
8
9
  export function SystemPage({ data: { sources: data, now } }) {
9
10
  const items = useContext(FleetItemsContext);
10
11
  const fleet = data.fleet.state === "ready" ? { ...data.fleet, observedAt: data.fleet.value.observedAt } : data.fleet;
11
12
  return (_jsxs("div", { className: "space-y-6", children: [_jsx("h1", { className: "font-semibold text-2xl", children: "System" }), _jsx("p", { children: "Agent usage and Fleet health. Refreshes every 15 seconds while this view is visible; Pause updates holds the current view." }), _jsxs("div", { className: "grid gap-4 lg:grid-cols-2", children: [_jsx(Card, { attention: data.codex.state === "ready"
12
- && [data.codex.value.primary, data.codex.value.secondary].some((window) => window !== null && window.usedPercent >= 90), name: "Codex", render: (value) => _jsx(DiagnosticsWindows, { now: now, value: value }), source: data.codex }), _jsx(Card, { attention: data.github.state === "ready" && [data.github.value.core, data.github.value.graphql].some((window) => window.remaining === 0), name: "GitHub", render: (value) => _jsx(DiagnosticsGithub, { now: now, value: value }), source: data.github }), _jsx(Card, { attention: fleet.state === "ready"
13
+ && [data.codex.value.primary, data.codex.value.secondary].some((window) => window !== null && window.usedPercent >= 90), name: "Codex", render: (value) => _jsx(DiagnosticsWindows, { now: now, value: value }), source: data.codex }), _jsx(Card, { attention: data.github.state === "ready" && data.github.value.some((window) => githubLimited(window, now)), name: "GitHub", render: (value) => _jsx(DiagnosticsGithub, { now: now, value: value }), source: data.github }), _jsx(Card, { attention: fleet.state === "ready"
13
14
  && (fleet.value.running >= fleet.value.concurrency
14
15
  || Object.values(fleet.value.waiting).some((count) => count > 0)
15
16
  || now < fleet.value.observedAt), name: "Fleet", render: (value) => _jsx(SystemHealth, { now: now, value: value }), source: fleet, stale: fleet.state === "ready" && now - fleet.value.observedAt > fleet.value.staleAfterMs })] }), _jsx(SystemFleetLane, { data: items })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ThemeContext: import("react").Context<string>;
2
+ //# sourceMappingURL=ThemeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/ThemeContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,iCAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from "react";
2
+ export const ThemeContext = createContext("light");
3
+ //# sourceMappingURL=ThemeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../src/client/react/ThemeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TodayOptions.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,+BAuBpH"}
1
+ {"version":3,"file":"TodayOptions.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAShE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,+BAuBpH"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { RegistryContext } from "@effect/atom-react";
3
- import { Effect, Option } from "effect";
4
- import * as Atom from "effect/reactivity/Atom";
3
+ import { Cause, Effect, Option } from "effect";
5
4
  import { useContext, useMemo, useState } from "react";
6
5
  import { useAction, useQuery } from "@shivaedev/effect-react/result-state.ts";
7
6
  import { answerBody } from "#browser/responses/answerBody.ts";
@@ -10,8 +9,10 @@ import { documentQuery, navigationQuery, routeQueryOptions } from "#client/page/
10
9
  import { Button } from "#client/react/components/ui/Button.tsx";
11
10
  import { Popover } from "#client/react/components/ui/Popover.tsx";
12
11
  import { authorLabel } from "#client/responses/authorLabel.ts";
12
+ import { saveFailure } from "#client/saveFailure.ts";
13
13
  import { fileUrl } from "#files/url.ts";
14
14
  import { createResponse } from "./createResponse.js";
15
+ import { useFormClient } from "./FormContext.js";
15
16
  export function TodayOptions({ api, item }) {
16
17
  const query = useQuery(documentQuery(api, fileUrl(item.file)), { keepPreviousData: true });
17
18
  const data = Option.getOrUndefined(query.data);
@@ -27,15 +28,14 @@ export function TodayOptions({ api, item }) {
27
28
  }
28
29
  function InlineOptions({ api, document: data, request }) {
29
30
  const registry = useContext(RegistryContext);
30
- const [status, setStatus] = useState("");
31
- const [outcome, setOutcome] = useState("");
31
+ const client = useFormClient();
32
32
  const [label] = useState(() => authorLabel(() => localStorage, document.documentElement.dataset.workspace));
33
33
  const [author, setAuthor] = useState(() => label.read("") || "maintainer");
34
- const actionAtom = useMemo(() => Atom.fn()((choice) => {
34
+ const actionAtom = useMemo(() => client.runtime.fn(Effect.fn("Board.answerOption")(function* (choice) {
35
35
  const preview = request.preview;
36
36
  const prompt = request.prompts?.[0];
37
37
  if (!(preview && prompt && author.trim())) {
38
- return Effect.fail("Add your local author label.");
38
+ return yield* Effect.fail("Add your local author label.");
39
39
  }
40
40
  const answers = [{ prompt: prompt.id, selected: [choice], text: "" }];
41
41
  const submission = {
@@ -47,18 +47,27 @@ function InlineOptions({ api, document: data, request }) {
47
47
  revision: preview.reviewedRevision,
48
48
  type: "answer",
49
49
  };
50
- return createResponse(preview, submission, () => submission, setOutcome, setStatus).pipe(Effect.tap(() => Effect.sync(() => {
51
- label.save(author);
52
- registry.refresh(api.inbox.query(undefined, routeQueryOptions));
53
- registry.refresh(navigationQuery(api));
54
- registry.refresh(documentQuery(api, fileUrl(data.file)));
55
- })));
56
- }), [api, registry, request, author, data.file, label.save]);
50
+ const saved = yield* createResponse(client, preview, submission);
51
+ label.save(author);
52
+ registry.refresh(api.inbox.query(undefined, routeQueryOptions));
53
+ registry.refresh(navigationQuery(api));
54
+ registry.refresh(documentQuery(api, fileUrl(data.file)));
55
+ return saved;
56
+ })), [client, api, registry, request, author, data.file, label.save]);
57
57
  const action = useAction(actionAtom);
58
+ const failure = Option.getOrUndefined(Option.flatMap(action.cause, Cause.findErrorOption));
59
+ const saved = Option.getOrUndefined(action.data);
60
+ let status = saved ? `Saved: responses/${saved.id}.md. This records feedback, not acceptance.` : "";
61
+ if (failure) {
62
+ status = typeof failure === "string" ? failure : saveFailure(failure, "response").text;
63
+ }
64
+ if (action.pending) {
65
+ status = "Pending: registering reviewed context, then recording response…";
66
+ }
58
67
  const prompt = request.prompts?.[0];
59
68
  return (_jsxs("fieldset", { "aria-label": `Options for ${data.identity}`, className: "m-0 min-w-0 space-y-2 border-0 px-2 pb-2", children: [_jsx("div", { className: "flex flex-wrap gap-2", children: prompt?.options.map((option, index) => {
60
69
  const text = data.metadata.options?.[index]?.label ?? optionLabel(option.id, option.source, request.preview?.reason ?? "");
61
- return (_jsxs(Button, { disabled: !(data.writable && author.trim()) || action.pending || outcome === "pending" || outcome === "saved", onClick: () => action.dispatch(option.id), size: "sm", variant: "outline", children: [text, data.metadata.recommended === text && " · Recommended"] }, option.id));
70
+ return (_jsxs(Button, { disabled: !(data.writable && author.trim()) || action.pending || Boolean(saved), onClick: () => action.dispatch(option.id), size: "sm", variant: "outline", children: [text, data.metadata.recommended === text && " · Recommended"] }, option.id));
62
71
  }) }), _jsxs("details", { className: "text-muted-foreground text-xs", children: [_jsxs("summary", { className: "cursor-pointer", children: ["Answer as ", author || "…"] }), _jsxs("label", { children: ["Local author label", " ", _jsx("input", { className: "rounded border px-2 py-1", maxLength: 200, onChange: (event) => setAuthor(event.currentTarget.value), value: author })] })] }), !data.writable && _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: "Read-only. Enable responses to record an answer." }), Boolean(status) && (_jsx("p", { className: "m-0 text-xs", role: "status", children: status }))] }));
63
72
  }
64
73
  //# sourceMappingURL=TodayOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TodayOptions.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TodayOptions.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisualViewer.d.ts","sourceRoot":"","sources":["../../../src/client/react/VisualViewer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,+BA6IrH"}
1
+ {"version":3,"file":"VisualViewer.d.ts","sourceRoot":"","sources":["../../../src/client/react/VisualViewer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,+BA4IrH"}