@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.
- package/CHANGELOG.md +26 -0
- package/README.md +1 -1
- package/assets/agent.js +1 -1
- package/assets/native.js +25 -25
- package/assets/react.css +1 -1
- package/assets/react.js +37 -36
- package/dist/browser/diagnostics/schema.d.ts +15 -12
- package/dist/browser/diagnostics/schema.d.ts.map +1 -1
- package/dist/browser/diagnostics/schema.js +12 -2
- package/dist/browser/diagnostics/schema.js.map +1 -1
- package/dist/browser/views/remaining.d.ts +20 -12
- package/dist/browser/views/remaining.d.ts.map +1 -1
- package/dist/client/client.d.ts +1 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +1 -1
- package/dist/client/client.js.map +1 -1
- package/dist/client/document/Mermaid.d.ts.map +1 -1
- package/dist/client/document/Mermaid.js +4 -10
- package/dist/client/document/Mermaid.js.map +1 -1
- package/dist/client/document/View.js +1 -1
- package/dist/client/document/View.js.map +1 -1
- package/dist/client/formStatus.d.ts +12 -0
- package/dist/client/formStatus.d.ts.map +1 -0
- package/dist/client/formStatus.js +27 -0
- package/dist/client/formStatus.js.map +1 -0
- package/dist/client/react/BoardShell.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +36 -37
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/DocumentContext.d.ts.map +1 -1
- package/dist/client/react/DocumentContext.js +12 -7
- package/dist/client/react/DocumentContext.js.map +1 -1
- package/dist/client/react/FormContext.d.ts +5 -0
- package/dist/client/react/FormContext.d.ts.map +1 -0
- package/dist/client/react/FormContext.js +10 -0
- package/dist/client/react/FormContext.js.map +1 -0
- package/dist/client/react/LiveControls.d.ts +4 -3
- package/dist/client/react/LiveControls.d.ts.map +1 -1
- package/dist/client/react/LiveControls.js +5 -24
- package/dist/client/react/LiveControls.js.map +1 -1
- package/dist/client/react/MainLocationContext.d.ts +3 -0
- package/dist/client/react/MainLocationContext.d.ts.map +1 -0
- package/dist/client/react/MainLocationContext.js +7 -0
- package/dist/client/react/MainLocationContext.js.map +1 -0
- package/dist/client/react/PhoneNavigation.d.ts +3 -1
- package/dist/client/react/PhoneNavigation.d.ts.map +1 -1
- package/dist/client/react/PhoneNavigation.js +8 -13
- package/dist/client/react/PhoneNavigation.js.map +1 -1
- package/dist/client/react/ProjectionFrame.d.ts +1 -2
- package/dist/client/react/ProjectionFrame.d.ts.map +1 -1
- package/dist/client/react/ProjectionFrame.js +10 -4
- package/dist/client/react/ProjectionFrame.js.map +1 -1
- package/dist/client/react/ReadingLibrary.d.ts.map +1 -1
- package/dist/client/react/ReadingLibrary.js +9 -14
- package/dist/client/react/ReadingLibrary.js.map +1 -1
- package/dist/client/react/ReadingReadyContext.d.ts +6 -0
- package/dist/client/react/ReadingReadyContext.d.ts.map +1 -0
- package/dist/client/react/ReadingReadyContext.js +7 -0
- package/dist/client/react/ReadingReadyContext.js.map +1 -0
- package/dist/client/react/SessionContext.d.ts +3 -0
- package/dist/client/react/SessionContext.d.ts.map +1 -0
- package/dist/client/react/SessionContext.js +3 -0
- package/dist/client/react/SessionContext.js.map +1 -0
- package/dist/client/react/SystemMain.d.ts.map +1 -1
- package/dist/client/react/SystemMain.js +3 -1
- package/dist/client/react/SystemMain.js.map +1 -1
- package/dist/client/react/SystemPage.d.ts.map +1 -1
- package/dist/client/react/SystemPage.js +2 -1
- package/dist/client/react/SystemPage.js.map +1 -1
- package/dist/client/react/ThemeContext.d.ts +2 -0
- package/dist/client/react/ThemeContext.d.ts.map +1 -0
- package/dist/client/react/ThemeContext.js +3 -0
- package/dist/client/react/ThemeContext.js.map +1 -0
- package/dist/client/react/TodayOptions.d.ts.map +1 -1
- package/dist/client/react/TodayOptions.js +23 -14
- package/dist/client/react/TodayOptions.js.map +1 -1
- package/dist/client/react/VisualViewer.d.ts.map +1 -1
- package/dist/client/react/VisualViewer.js +6 -5
- package/dist/client/react/VisualViewer.js.map +1 -1
- package/dist/client/react/boardRouter.d.ts +3 -2
- package/dist/client/react/boardRouter.d.ts.map +1 -1
- package/dist/client/react/boardRouter.js +2 -1
- package/dist/client/react/boardRouter.js.map +1 -1
- package/dist/client/react/createResponse.d.ts +32 -4
- package/dist/client/react/createResponse.d.ts.map +1 -1
- package/dist/client/react/createResponse.js +7 -28
- package/dist/client/react/createResponse.js.map +1 -1
- package/dist/client/react/diagnosticsValues.d.ts.map +1 -1
- package/dist/client/react/diagnosticsValues.js +5 -7
- package/dist/client/react/diagnosticsValues.js.map +1 -1
- package/dist/client/react/entry.d.ts.map +1 -1
- package/dist/client/react/entry.js +2 -34
- package/dist/client/react/entry.js.map +1 -1
- package/dist/client/react/githubLimited.d.ts +3 -0
- package/dist/client/react/githubLimited.d.ts.map +1 -0
- package/dist/client/react/githubLimited.js +4 -0
- package/dist/client/react/githubLimited.js.map +1 -0
- package/dist/client/react/loadProjection.d.ts +135 -135
- package/dist/client/react/loadRemaining.d.ts +20 -12
- package/dist/client/react/loadRemaining.d.ts.map +1 -1
- package/dist/client/react/mainLocation.d.ts +4 -2
- package/dist/client/react/mainLocation.d.ts.map +1 -1
- package/dist/client/react/mainLocation.js +1 -8
- package/dist/client/react/mainLocation.js.map +1 -1
- package/dist/client/react/mountBoard.d.ts +3 -0
- package/dist/client/react/mountBoard.d.ts.map +1 -0
- package/dist/client/react/mountBoard.js +45 -0
- package/dist/client/react/mountBoard.js.map +1 -0
- package/dist/client/react/navigationLocation.d.ts +3 -1
- package/dist/client/react/navigationLocation.d.ts.map +1 -1
- package/dist/client/react/navigationLocation.js +11 -1
- package/dist/client/react/navigationLocation.js.map +1 -1
- package/dist/client/react/retryPage.d.ts +2 -1
- package/dist/client/react/retryPage.d.ts.map +1 -1
- package/dist/client/react/retryPage.js +3 -4
- package/dist/client/react/retryPage.js.map +1 -1
- package/dist/client/react/scheduleReading.d.ts.map +1 -1
- package/dist/client/react/scheduleReading.js +1 -10
- package/dist/client/react/scheduleReading.js.map +1 -1
- package/dist/client/react/useAppearance.d.ts +2 -1
- package/dist/client/react/useAppearance.d.ts.map +1 -1
- package/dist/client/react/useAppearance.js +1 -2
- package/dist/client/react/useAppearance.js.map +1 -1
- package/dist/client/react/useBoardNavigation.d.ts +1 -1
- package/dist/client/react/useBoardNavigation.d.ts.map +1 -1
- package/dist/client/react/useBoardNavigation.js +28 -22
- package/dist/client/react/useBoardNavigation.js.map +1 -1
- package/dist/client/react/useDiagnosticsPolling.d.ts +4 -1
- package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -1
- package/dist/client/react/useDiagnosticsPolling.js +9 -7
- package/dist/client/react/useDiagnosticsPolling.js.map +1 -1
- package/dist/client/react/useDocumentPage.d.ts +1 -1
- package/dist/client/react/useDocumentPage.d.ts.map +1 -1
- package/dist/client/react/useDocumentPage.js +9 -6
- package/dist/client/react/useDocumentPage.js.map +1 -1
- package/dist/client/react/useHandoffForm.d.ts +56 -30
- package/dist/client/react/useHandoffForm.d.ts.map +1 -1
- package/dist/client/react/useHandoffForm.js +19 -30
- package/dist/client/react/useHandoffForm.js.map +1 -1
- package/dist/client/react/useResponseForm.d.ts +72 -43
- package/dist/client/react/useResponseForm.d.ts.map +1 -1
- package/dist/client/react/useResponseForm.js +20 -17
- package/dist/client/react/useResponseForm.js.map +1 -1
- package/dist/client/react/useSidebar.d.ts.map +1 -1
- package/dist/client/react/useSidebar.js +5 -3
- package/dist/client/react/useSidebar.js.map +1 -1
- package/dist/client/react/visualSources.d.ts.map +1 -1
- package/dist/client/react/visualSources.js +10 -8
- package/dist/client/react/visualSources.js.map +1 -1
- package/dist/client/saveFailure.d.ts +8 -0
- package/dist/client/saveFailure.d.ts.map +1 -0
- package/dist/client/saveFailure.js +8 -0
- package/dist/client/saveFailure.js.map +1 -0
- package/dist/diagnostics/daemonContract.d.ts +65 -38
- package/dist/diagnostics/daemonContract.d.ts.map +1 -1
- package/dist/diagnostics/daemonContract.js +2 -1
- package/dist/diagnostics/daemonContract.js.map +1 -1
- package/dist/diagnostics/health.d.ts +10 -0
- package/dist/diagnostics/health.d.ts.map +1 -1
- package/dist/diagnostics/health.js +2 -0
- package/dist/diagnostics/health.js.map +1 -1
- package/dist/diagnostics/source.d.ts +55 -36
- package/dist/diagnostics/source.d.ts.map +1 -1
- package/dist/diagnostics/source.js +1 -2
- package/dist/diagnostics/source.js.map +1 -1
- package/dist/render/{failed.d.ts → Failed.d.ts} +1 -1
- package/dist/render/Failed.d.ts.map +1 -0
- package/dist/render/{failed.js → Failed.js} +1 -1
- package/dist/render/Failed.js.map +1 -0
- package/dist/render/code.d.ts +2 -2
- package/dist/render/code.d.ts.map +1 -1
- package/dist/render/code.js +15 -13
- package/dist/render/code.js.map +1 -1
- package/dist/render/footnoteIds.d.ts +3 -0
- package/dist/render/footnoteIds.d.ts.map +1 -0
- package/dist/render/{footnotes.js → footnoteIds.js} +11 -9
- package/dist/render/footnoteIds.js.map +1 -0
- package/dist/rpc/contract.d.ts +2346 -2322
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/handoffContract.d.ts +33 -33
- package/dist/rpc/responseContract.d.ts +56 -56
- package/dist/server/board.d.ts +1 -1
- package/dist/server/diagnostics/daemon.d.ts +41 -25
- package/dist/server/diagnostics/daemon.d.ts.map +1 -1
- package/dist/server/diagnostics/fleetHealth.d.ts +10 -0
- package/dist/server/diagnostics/fleetHealth.d.ts.map +1 -1
- package/dist/server/diagnostics/githubLimits.d.ts +12 -13
- package/dist/server/diagnostics/githubLimits.d.ts.map +1 -1
- package/dist/server/diagnostics/githubLimits.js +6 -6
- package/dist/server/diagnostics/githubLimits.js.map +1 -1
- package/dist/server/integration/diagnostics.d.ts +74 -38
- package/dist/server/integration/diagnostics.d.ts.map +1 -1
- package/dist/server/mcp/client.d.ts +1155 -1147
- package/dist/server/mcp/client.d.ts.map +1 -1
- package/dist/server/mcp/queries.d.ts +60 -36
- package/dist/server/mcp/queries.d.ts.map +1 -1
- package/dist/server/metadata/fields.js +1 -1
- package/dist/server/metadata/fields.js.map +1 -1
- package/dist/server/packageInfo.d.ts +1 -1
- package/dist/server/packageInfo.js +1 -1
- package/dist/server/render/Highlighter.d.ts +1 -1
- package/dist/server/render/Highlighter.js +1 -1
- package/dist/server/render/markdown.d.ts +1 -1
- package/dist/server/render/markdown.js +2 -2
- package/dist/server/render/markdown.js.map +1 -1
- package/dist/server/serve.d.ts +1 -1
- package/dist/server/views/remainingQueries.d.ts +20 -12
- package/dist/server/views/remainingQueries.d.ts.map +1 -1
- package/package.json +9 -39
- package/src/browser/diagnostics/schema.ts +12 -2
- package/src/client/client.ts +2 -1
- package/src/client/document/Mermaid.ts +4 -10
- package/src/client/document/View.ts +1 -1
- package/src/client/formStatus.ts +35 -0
- package/src/client/react/BoardShell.tsx +49 -43
- package/src/client/react/DocumentContext.tsx +12 -7
- package/src/client/react/FormContext.ts +13 -0
- package/src/client/react/LiveControls.tsx +5 -38
- package/src/client/react/MainLocationContext.ts +8 -0
- package/src/client/react/PhoneNavigation.tsx +20 -15
- package/src/client/react/ProjectionFrame.tsx +13 -5
- package/src/client/react/ReadingLibrary.tsx +9 -14
- package/src/client/react/ReadingReadyContext.ts +11 -0
- package/src/client/react/SessionContext.ts +4 -0
- package/src/client/react/SystemMain.tsx +3 -1
- package/src/client/react/SystemPage.tsx +2 -1
- package/src/client/react/ThemeContext.ts +3 -0
- package/src/client/react/TodayOptions.tsx +40 -33
- package/src/client/react/VisualViewer.tsx +6 -6
- package/src/client/react/boardRouter.ts +3 -2
- package/src/client/react/createResponse.ts +10 -35
- package/src/client/react/diagnosticsValues.tsx +20 -12
- package/src/client/react/entry.tsx +2 -37
- package/src/client/react/githubLimited.ts +5 -0
- package/src/client/react/mainLocation.ts +5 -8
- package/src/client/react/mountBoard.tsx +49 -0
- package/src/client/react/navigationLocation.ts +14 -2
- package/src/client/react/retryPage.ts +4 -4
- package/src/client/react/scheduleReading.ts +1 -10
- package/src/client/react/useAppearance.ts +2 -3
- package/src/client/react/useBoardNavigation.ts +30 -23
- package/src/client/react/useDiagnosticsPolling.ts +14 -7
- package/src/client/react/useDocumentPage.ts +12 -6
- package/src/client/react/useHandoffForm.ts +25 -33
- package/src/client/react/useResponseForm.ts +20 -18
- package/src/client/react/useSidebar.ts +5 -3
- package/src/client/react/visualSources.ts +10 -8
- package/src/client/saveFailure.ts +14 -0
- package/src/diagnostics/daemonContract.ts +2 -1
- package/src/diagnostics/health.ts +2 -0
- package/src/diagnostics/source.ts +1 -2
- package/src/render/code.ts +3 -4
- package/src/render/{footnotes.ts → footnoteIds.ts} +12 -10
- package/src/server/board.ts +1 -1
- package/src/server/diagnostics/githubLimits.ts +9 -11
- package/src/server/metadata/fields.ts +1 -1
- package/src/server/packageInfo.ts +1 -1
- package/src/server/render/Highlighter.ts +1 -1
- package/src/server/render/markdown.ts +2 -2
- package/dist/client/handoffs/failureStatus.d.ts +0 -2
- package/dist/client/handoffs/failureStatus.d.ts.map +0 -1
- package/dist/client/handoffs/failureStatus.js +0 -7
- package/dist/client/handoffs/failureStatus.js.map +0 -1
- package/dist/client/responses/failure.d.ts +0 -5
- package/dist/client/responses/failure.d.ts.map +0 -1
- package/dist/client/responses/failure.js +0 -13
- package/dist/client/responses/failure.js.map +0 -1
- package/dist/render/failed.d.ts.map +0 -1
- package/dist/render/failed.js.map +0 -1
- package/dist/render/footnotes.d.ts +0 -3
- package/dist/render/footnotes.d.ts.map +0 -1
- package/dist/render/footnotes.js.map +0 -1
- package/dist/server/diagnostics/readCommand.d.ts +0 -4
- package/dist/server/diagnostics/readCommand.d.ts.map +0 -1
- package/dist/server/diagnostics/readCommand.js +0 -20
- package/dist/server/diagnostics/readCommand.js.map +0 -1
- package/src/client/handoffs/failureStatus.ts +0 -6
- package/src/client/responses/failure.ts +0 -13
- package/src/server/diagnostics/readCommand.ts +0 -24
- /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;
|
|
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 {
|
|
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,
|
|
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
|
|
17
|
-
|
|
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":";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,
|
|
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 @@
|
|
|
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":"
|
|
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
|
|
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
|
|
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
|
-
|
|
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: () =>
|
|
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":";AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,
|
|
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,
|
|
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
|
|
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({
|
|
37
|
-
|
|
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":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAkB,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAA2B,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAO,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GASH;IACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvI,MAAM,cAAc,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAiC,SAAS,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,eAAe,CAAC,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"ProjectionFrame.js","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAkB,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAA2B,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAO,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GASH;IACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvI,MAAM,cAAc,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAiC,SAAS,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,eAAe,CAAC,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,OAAO;QACR,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC;QAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,SAAS,QAAQ;YAChB,cAAc,CAAC,GAAG,EAAE;gBACnB,IACC,CAAC,MAAM;uBACJ,CAAC,cAAc,KAAK,SAAS;2BAC5B,WAAW,CAAC,aAAa,CAAc,kEAAkE,CAAC,EAAE,OAAO,CAAC,MAAM;gCACxH,cAAc,CAAC,EACpB,CAAC;oBACF,OAAO;gBACR,CAAC;gBACD,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC/E,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;gBAChC,SAAS,CAAC,GAAG,EAAE,CACd,MAAM,CAAC;oBACN,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;oBAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;iBACf,CAAC,CACF,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE;YACjD,IACC,OAAO,CAAC,IAAI,CACX,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,YAAY,OAAO;mBAC7B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;mBAC5H,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAClC,EACA,CAAC;gBACF,QAAQ,EAAE,CAAC;YACZ,CAAC;QACF,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClH,QAAQ,EAAE,CAAC;QACX,OAAO,GAAG,EAAE;YACX,MAAM,GAAG,KAAK,CAAC;YACf,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACzG,OAAO,CACN,8BACC,gBACC,SAAS,EAAC,+BAA+B,eAC9B,IAAI,CAAC,IAAI,mBACL,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,qBAC5C,KAAK,gDAET,IAAI,CAAC,MAAM,cACd,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,eAC3C,IAAI,CAAC,IAAI,EACpB,EAAE,EAAE,QAAQ,CAAC,GAAG,EAChB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,CAAC,CAAC,aAEX,IAAI,KAAK,SAAS,IAAI,CACtB,YAAG,SAAS,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,YAChC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAC7C,CACJ,EACD,cAAK,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,YACpF,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAC1C,IACA,EACN,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,YAAG,IAAI,EAAC,QAAQ,iEAAqD,IACxH,CACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,OAAgB,EAAE,OAAgB;IAC3E,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpH,OAAO,OAAO,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,mEAAmE,CAAC;AACvH,CAAC;AAED,SAAS,cAAc,CAAC,KAAuC;IAC9D,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,QAAiB;IACzD,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadingLibrary.d.ts","sourceRoot":"","sources":["../../../src/client/react/ReadingLibrary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,
|
|
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,
|
|
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
|
-
|
|
26
|
+
useLayoutEffect(() => {
|
|
25
27
|
function sync() {
|
|
26
|
-
|
|
27
|
-
if (!doc?.dataset.route) {
|
|
28
|
+
if (!page.route) {
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
|
-
const file =
|
|
31
|
-
const title =
|
|
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 &&
|
|
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
|
-
|
|
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":";AAAA,OAAO,EAAkB,WAAW,EAAE,
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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;
|
|
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;
|
|
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" &&
|
|
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":";AAAA,OAAO,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAA4C;IACpG,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACrH,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,aAAI,SAAS,EAAC,wBAAwB,uBAAY,EAClD,qJAAiI,EACjI,eAAK,SAAS,EAAC,2BAA2B,aACzC,KAAC,IAAI,IACJ,SAAS,EACR,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO;+BACzB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAExH,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,EACjE,MAAM,EAAE,IAAI,CAAC,KAAK,GACjB,EACF,KAAC,IAAI,IACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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":"
|
|
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
|
|
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(() =>
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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 ||
|
|
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":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,
|
|
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":"
|
|
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"}
|