@shivaedev/work-board 0.17.1 → 0.18.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 +13 -0
- package/README.md +23 -21
- package/assets/react.css +1 -1
- package/assets/react.js +37 -37
- package/dist/browser/responses/cardContext.d.ts +1 -1
- package/dist/browser/responses/cardContext.d.ts.map +1 -1
- package/dist/browser/responses/cardContext.js +1 -4
- package/dist/browser/responses/cardContext.js.map +1 -1
- package/dist/browser/views/now.d.ts +5 -0
- package/dist/browser/views/now.d.ts.map +1 -1
- package/dist/browser/views/now.js +38 -2
- package/dist/browser/views/now.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 +1 -1
- package/dist/client/formStatus.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +1 -1
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/DocumentMain.js +1 -1
- package/dist/client/react/DocumentMain.js.map +1 -1
- package/dist/client/react/FleetMain.js +1 -1
- package/dist/client/react/FleetMain.js.map +1 -1
- package/dist/client/react/FormField.js +1 -1
- package/dist/client/react/FormField.js.map +1 -1
- package/dist/client/react/GoalPage.js +1 -1
- package/dist/client/react/GoalPage.js.map +1 -1
- package/dist/client/react/GoalProgressHeader.js +1 -1
- package/dist/client/react/GoalProgressHeader.js.map +1 -1
- package/dist/client/react/Header.d.ts.map +1 -1
- package/dist/client/react/Header.js +3 -2
- package/dist/client/react/Header.js.map +1 -1
- package/dist/client/react/LibraryContents.js +1 -1
- package/dist/client/react/LibraryContents.js.map +1 -1
- package/dist/client/react/LibraryPage.js +1 -1
- package/dist/client/react/LibraryPage.js.map +1 -1
- package/dist/client/react/LiveControls.js +1 -1
- package/dist/client/react/LiveControls.js.map +1 -1
- package/dist/client/react/PromptOption.js +1 -1
- package/dist/client/react/PromptOption.js.map +1 -1
- package/dist/client/react/ReadingHistory.js +1 -1
- package/dist/client/react/ReadingHistory.js.map +1 -1
- package/dist/client/react/SearchPalette.js +1 -1
- package/dist/client/react/SearchPalette.js.map +1 -1
- package/dist/client/react/Sidebar.d.ts.map +1 -1
- package/dist/client/react/Sidebar.js +9 -2
- package/dist/client/react/Sidebar.js.map +1 -1
- package/dist/client/react/SystemFleetLane.d.ts.map +1 -1
- package/dist/client/react/SystemFleetLane.js +2 -1
- package/dist/client/react/SystemFleetLane.js.map +1 -1
- package/dist/client/react/SystemHealth.d.ts +2 -1
- package/dist/client/react/SystemHealth.d.ts.map +1 -1
- package/dist/client/react/SystemHealth.js +3 -2
- package/dist/client/react/SystemHealth.js.map +1 -1
- package/dist/client/react/SystemMain.d.ts.map +1 -1
- package/dist/client/react/SystemMain.js +6 -2
- package/dist/client/react/SystemMain.js.map +1 -1
- package/dist/client/react/SystemPage.d.ts +2 -1
- package/dist/client/react/SystemPage.d.ts.map +1 -1
- package/dist/client/react/SystemPage.js +2 -2
- package/dist/client/react/SystemPage.js.map +1 -1
- package/dist/client/react/TodayOptionButton.d.ts +1 -2
- package/dist/client/react/TodayOptionButton.d.ts.map +1 -1
- package/dist/client/react/TodayOptionButton.js +2 -2
- package/dist/client/react/TodayOptionButton.js.map +1 -1
- package/dist/client/react/TodayOptions.js +8 -6
- package/dist/client/react/TodayOptions.js.map +1 -1
- package/dist/client/react/TodayPage.js +14 -2
- package/dist/client/react/TodayPage.js.map +1 -1
- package/dist/client/react/WorkCard.d.ts.map +1 -1
- package/dist/client/react/WorkCard.js +7 -2
- package/dist/client/react/WorkCard.js.map +1 -1
- package/dist/client/react/WorkLane.d.ts.map +1 -1
- package/dist/client/react/WorkLane.js +1 -1
- package/dist/client/react/WorkLane.js.map +1 -1
- package/dist/client/react/WorkNow.js +1 -1
- package/dist/client/react/WorkNow.js.map +1 -1
- package/dist/client/react/destinationName.d.ts +2 -0
- package/dist/client/react/destinationName.d.ts.map +1 -0
- package/dist/client/react/destinationName.js +4 -0
- package/dist/client/react/destinationName.js.map +1 -0
- package/dist/client/react/loadBoardPage.js +1 -1
- package/dist/client/react/loadBoardPage.js.map +1 -1
- package/dist/client/react/loadProjection.d.ts +135 -135
- package/dist/client/react/loadProjection.js +1 -1
- package/dist/client/react/loadProjection.js.map +1 -1
- package/dist/client/react/loadRemaining.d.ts +17 -17
- package/dist/client/react/loadRemaining.js +1 -1
- package/dist/client/react/loadRemaining.js.map +1 -1
- package/dist/client/react/useHandoffForm.js +1 -1
- package/dist/client/react/useHandoffForm.js.map +1 -1
- package/dist/client/react/useProjectionData.d.ts +1 -1
- package/dist/client/react/useProjectionData.js +1 -1
- package/dist/client/react/useProjectionData.js.map +1 -1
- package/dist/client/react/useResponseForm.js +1 -1
- package/dist/client/react/useResponseForm.js.map +1 -1
- package/dist/client/responses/summary.js +1 -1
- package/dist/client/responses/summary.js.map +1 -1
- package/dist/diagnostics/source.js +1 -1
- package/dist/diagnostics/source.js.map +1 -1
- package/dist/rpc/contract.d.ts +1930 -1930
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/server/Responses.js +2 -2
- package/dist/server/Responses.js.map +1 -1
- package/dist/server/board.js +1 -1
- package/dist/server/board.js.map +1 -1
- package/dist/server/document/answerBody.d.ts.map +1 -1
- package/dist/server/document/answerBody.js +9 -1
- package/dist/server/document/answerBody.js.map +1 -1
- package/dist/server/document/reviewedWork.d.ts +3 -0
- package/dist/server/document/reviewedWork.d.ts.map +1 -0
- package/dist/server/document/reviewedWork.js +23 -0
- package/dist/server/document/reviewedWork.js.map +1 -0
- package/dist/server/files/changes.d.ts.map +1 -1
- package/dist/server/files/changes.js +1 -1
- package/dist/server/files/changes.js.map +1 -1
- package/dist/server/files/watchDirectories.d.ts +1 -1
- package/dist/server/files/watchDirectories.d.ts.map +1 -1
- package/dist/server/files/watchDirectories.js +71 -12
- package/dist/server/files/watchDirectories.js.map +1 -1
- package/dist/server/handoffs/Service.js +2 -2
- package/dist/server/handoffs/Service.js.map +1 -1
- package/dist/server/handoffs/source.js +1 -1
- package/dist/server/handoffs/source.js.map +1 -1
- package/dist/server/http/boardRoutes.js +1 -1
- package/dist/server/http/boardRoutes.js.map +1 -1
- package/dist/server/mcp/client.d.ts +896 -896
- package/dist/server/mcp/client.d.ts.map +1 -1
- package/dist/server/mcp/queries.d.ts +2947 -2947
- package/dist/server/packageInfo.d.ts +1 -1
- package/dist/server/packageInfo.js +1 -1
- package/dist/server/render/Highlighter.js +1 -1
- package/dist/server/render/Highlighter.js.map +1 -1
- package/dist/server/responses/locate.js +1 -1
- package/dist/server/responses/locate.js.map +1 -1
- package/dist/server/rpc/handlers.js +2 -2
- package/dist/server/rpc/handlers.js.map +1 -1
- package/dist/server/serve.js +1 -1
- package/dist/server/serve.js.map +1 -1
- package/dist/server/workspace.js +1 -1
- package/dist/server/workspace.js.map +1 -1
- package/package.json +18 -362
- package/src/browser/responses/cardContext.ts +1 -4
- package/src/browser/views/now.ts +42 -2
- package/src/client/document/View.ts +1 -1
- package/src/client/formStatus.ts +1 -1
- package/src/client/react/BoardShell.tsx +1 -1
- package/src/client/react/DocumentMain.tsx +1 -1
- package/src/client/react/FleetMain.tsx +1 -1
- package/src/client/react/FormField.tsx +1 -1
- package/src/client/react/GoalPage.tsx +1 -1
- package/src/client/react/GoalProgressHeader.tsx +1 -1
- package/src/client/react/Header.tsx +3 -2
- package/src/client/react/LibraryContents.tsx +1 -1
- package/src/client/react/LibraryPage.tsx +1 -1
- package/src/client/react/LiveControls.tsx +1 -1
- package/src/client/react/PromptOption.tsx +1 -1
- package/src/client/react/ReadingHistory.tsx +1 -1
- package/src/client/react/SearchPalette.tsx +1 -1
- package/src/client/react/Sidebar.tsx +10 -2
- package/src/client/react/SystemFleetLane.tsx +2 -1
- package/src/client/react/SystemHealth.tsx +24 -4
- package/src/client/react/SystemMain.tsx +6 -2
- package/src/client/react/SystemPage.tsx +8 -2
- package/src/client/react/TodayOptionButton.tsx +1 -3
- package/src/client/react/TodayOptions.tsx +7 -6
- package/src/client/react/TodayPage.tsx +18 -4
- package/src/client/react/WorkCard.tsx +16 -8
- package/src/client/react/WorkLane.tsx +8 -2
- package/src/client/react/WorkNow.tsx +1 -1
- package/src/client/react/destinationName.ts +3 -0
- package/src/client/react/loadBoardPage.ts +1 -1
- package/src/client/react/loadProjection.ts +1 -1
- package/src/client/react/loadRemaining.ts +1 -1
- package/src/client/react/useHandoffForm.ts +1 -1
- package/src/client/react/useProjectionData.ts +1 -1
- package/src/client/react/useResponseForm.ts +1 -1
- package/src/client/responses/summary.ts +1 -1
- package/src/diagnostics/source.ts +1 -1
- package/src/server/Responses.ts +2 -2
- package/src/server/board.ts +1 -1
- package/src/server/document/answerBody.ts +10 -1
- package/src/server/document/reviewedWork.ts +24 -0
- package/src/server/files/changes.ts +1 -0
- package/src/server/files/watchDirectories.ts +90 -27
- package/src/server/handoffs/Service.ts +2 -2
- package/src/server/handoffs/source.ts +1 -1
- package/src/server/http/boardRoutes.ts +1 -1
- package/src/server/packageInfo.ts +1 -1
- package/src/server/render/Highlighter.ts +1 -1
- package/src/server/responses/locate.ts +1 -1
- package/src/server/rpc/handlers.ts +2 -2
- package/src/server/serve.ts +1 -1
- package/src/server/workspace.ts +1 -1
|
@@ -2,9 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Option } from "effect";
|
|
3
3
|
import { PanelsTopLeft } from "lucide-react";
|
|
4
4
|
import { useContext, useEffect } from "react";
|
|
5
|
-
import { useQuery } from "@shivaedev/effect-react/
|
|
5
|
+
import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
|
|
6
6
|
import { Badge } from "#client/react/components/ui/Badge.tsx";
|
|
7
7
|
import { buttonVariants } from "#client/react/components/ui/buttonVariants.ts";
|
|
8
|
+
import { destinationName } from "#client/react/destinationName.ts";
|
|
8
9
|
import { GoalProgress } from "#client/react/GoalProgress.tsx";
|
|
9
10
|
import { InboxCount } from "#client/react/Header.tsx";
|
|
10
11
|
import { LibraryContext } from "#client/react/LibraryContext.ts";
|
|
@@ -20,6 +21,12 @@ export function Sidebar({ api, data, main, home, controls, openLibrary, }) {
|
|
|
20
21
|
today: data?.inboxCount,
|
|
21
22
|
work: data?.counts.now,
|
|
22
23
|
};
|
|
24
|
+
function name(view, label) {
|
|
25
|
+
if (view === "today") {
|
|
26
|
+
return destinationName(label, counts.today, "need you");
|
|
27
|
+
}
|
|
28
|
+
return view === "work" ? destinationName(label, counts.work, "open tasks") : label;
|
|
29
|
+
}
|
|
23
30
|
useEffect(() => {
|
|
24
31
|
const sidebar = document.getElementById(shellIds.sidebar);
|
|
25
32
|
if (controls.narrow && controls.open) {
|
|
@@ -29,7 +36,7 @@ export function Sidebar({ api, data, main, home, controls, openLibrary, }) {
|
|
|
29
36
|
sidebar?.removeAttribute("aria-modal");
|
|
30
37
|
}
|
|
31
38
|
}, [controls.narrow, controls.open]);
|
|
32
|
-
return (_jsxs("aside", { "aria-label": "Workspace navigation", className: "sticky top-0 flex h-dvh flex-col gap-5 overflow-y-auto border-r bg-card p-4 text-card-foreground max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-40 max-md:w-[min(320px,calc(100vw-48px))] print:hidden", hidden: !controls.open, id: shellIds.sidebar, role: controls.narrow && controls.open ? "dialog" : undefined, children: [_jsxs("a", { "aria-current": home ? "page" : undefined, className: "flex items-center gap-2 px-2 py-3 font-semibold text-lg text-primary no-underline", href: "/", children: [_jsx(PanelsTopLeft, { "aria-hidden": "true", className: "size-5" }), "work board"] }), _jsx("nav", { "aria-label": "Workspace", className: "grid shrink-0 gap-1", "data-inbox-count": String(data?.inboxCount ?? "?"), id: shellIds.primaryNavigation, children: workspaceDestinations.map(({ label, href, view, id }) => (_jsxs("a", { "aria-current": (view === "today" ? home : main.view === view) ? "page" : undefined, className: cn(buttonVariants({ variant: "ghost" }), "justify-between no-underline", (view === "today" ? home : main.view === view) && "bg-accent"), href: href, id: id, children: [_jsx("span", { children: label }), view === "today" && _jsx(InboxCount, { count: counts.today ?? null, id: shellIds.inboxCount }), view === "work" && _jsx(Badge, { children: counts.work
|
|
39
|
+
return (_jsxs("aside", { "aria-label": "Workspace navigation", className: "sticky top-0 flex h-dvh flex-col gap-5 overflow-y-auto border-r bg-card p-4 text-card-foreground max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-40 max-md:w-[min(320px,calc(100vw-48px))] print:hidden", hidden: !controls.open, id: shellIds.sidebar, role: controls.narrow && controls.open ? "dialog" : undefined, children: [_jsxs("a", { "aria-current": home ? "page" : undefined, className: "flex items-center gap-2 px-2 py-3 font-semibold text-lg text-primary no-underline", href: "/", children: [_jsx(PanelsTopLeft, { "aria-hidden": "true", className: "size-5" }), "work board"] }), _jsx("nav", { "aria-label": "Workspace", className: "grid shrink-0 gap-1", "data-inbox-count": String(data?.inboxCount ?? "?"), id: shellIds.primaryNavigation, children: workspaceDestinations.map(({ label, href, view, id }) => (_jsxs("a", { "aria-current": (view === "today" ? home : main.view === view) ? "page" : undefined, "aria-label": name(view, label), className: cn(buttonVariants({ variant: "ghost" }), "justify-between no-underline", (view === "today" ? home : main.view === view) && "bg-accent"), href: href, id: id, children: [_jsx("span", { children: label }), view === "today" && _jsx(InboxCount, { count: counts.today ?? null, id: shellIds.inboxCount }), view === "work" && counts.work !== undefined && _jsx(Badge, { "aria-hidden": "true", children: counts.work })] }, view))) }), _jsx(ReadingSection, { current: main.file, items: reading.favorites, title: "Pinned" }), _jsxs("section", { "aria-label": "Active goals", children: [_jsx("h2", { className: "mb-2 px-2 font-semibold text-muted-foreground text-xs", children: "Active goals" }), goals?.length === 0 && _jsx("p", { className: "px-2 text-muted-foreground text-xs", children: "No active goals." }), goals?.map((goal) => (_jsxs("div", { className: "mb-3 px-2", children: [_jsx("a", { className: "block truncate text-sm", href: `/_board/item/${encodeURIComponent(goal.id)}/`, children: goal.title }), _jsx(GoalProgress, { compact: true, counts: goal.counts, title: goal.title })] }, goal.id)))] }), _jsx(ReadingSection, { current: main.file, items: reading.recents.slice(0, 5), title: "Recent" }), _jsx("button", { className: "mt-auto text-left text-muted-foreground text-xs", id: shellIds.libraryOpen, onClick: () => openLibrary(), type: "button", children: "Reading history" })] }));
|
|
33
40
|
}
|
|
34
41
|
function ReadingSection({ title, items, current }) {
|
|
35
42
|
return (_jsxs("section", { "aria-label": title, children: [_jsx("h2", { className: "mb-2 px-2 font-semibold text-muted-foreground text-xs", children: title }), _jsx("ul", { className: "m-0 grid list-none gap-2 p-0", children: items.map((item) => (_jsx("li", { className: "min-w-0 px-2 text-sm", children: _jsx("a", { "aria-current": item.file === current ? "page" : undefined, className: "block truncate", href: fileUrl(item.file), title: item.title, children: item.title }) }, item.file))) }), items.length === 0 && (_jsx("p", { className: "px-2 text-muted-foreground text-xs", children: title === "Pinned" ? "Pin a document to keep it here." : "No recent documents." }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemFleetLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"SystemFleetLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAKnF,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,CAAA;CAAE,+BAgB5F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { fleetHolder } from "#browser/views/now.ts";
|
|
2
3
|
import { Badge } from "#client/react/components/ui/Badge.tsx";
|
|
3
4
|
import { Card } from "#client/react/components/ui/Card.tsx";
|
|
4
5
|
export function SystemFleetLane({ data }) {
|
|
@@ -7,6 +8,6 @@ export function SystemFleetLane({ data }) {
|
|
|
7
8
|
}
|
|
8
9
|
function FleetRow({ item }) {
|
|
9
10
|
const title = item.document?.title ?? item.workId;
|
|
10
|
-
return (_jsxs("li", { className: "flex min-w-0 flex-wrap items-center gap-2 py-3", "data-fleet-id": item.workId, children: [_jsx("a", { className: "min-w-0 flex-1 basis-40 font-medium text-sm [overflow-wrap:anywhere]", href: `/_board/item/${encodeURIComponent(item.workId)}/`, children: title }), _jsx(Badge, { variant: "outline", children: item.stage }),
|
|
11
|
+
return (_jsxs("li", { className: "flex min-w-0 flex-wrap items-center gap-2 py-3", "data-fleet-id": item.workId, children: [_jsx("a", { className: "min-w-0 flex-1 basis-40 font-medium text-sm [overflow-wrap:anywhere]", href: `/_board/item/${encodeURIComponent(item.workId)}/`, children: title }), _jsx(Badge, { variant: "outline", children: item.stage }), _jsx("span", { className: "text-muted-foreground text-xs", children: fleetHolder(item) }), Boolean(item.prUrl) && (_jsx("a", { "aria-label": `Pull request for ${title}`, className: "text-sm underline", href: item.prUrl, children: "PR \u2197" }))] }));
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=SystemFleetLane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemFleetLane.js","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAuD;IAC5F,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,OAAO,CACN,MAAC,IAAI,kBAAY,YAAY,EAAC,SAAS,EAAC,mBAAmB,aAC1D,aAAI,SAAS,EAAC,uBAAuB,2BAAgB,EACpD,KAAK,KAAK,SAAS,IAAI,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,qBAAqB,GAAK,EAC9I,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,YAAG,SAAS,EAAC,+BAA+B,kDAAsC,EACzG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7B,aAAI,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,IAAO,IAAI,CAAC,MAAM,CAAI,CAC1C,CAAC,GACE,CACL,IACK,CACP,CAAC;AACH,CAAC;AAGD,SAAS,QAAQ,CAAC,EAAE,IAAI,EAA2B;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,gDAAgD,mBAAgB,IAAI,CAAC,MAAM,aACxF,YAAG,SAAS,EAAC,sEAAsE,EAAC,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAC1I,KAAK,GACH,EACJ,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAS,
|
|
1
|
+
{"version":3,"file":"SystemFleetLane.js","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAuD;IAC5F,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,OAAO,CACN,MAAC,IAAI,kBAAY,YAAY,EAAC,SAAS,EAAC,mBAAmB,aAC1D,aAAI,SAAS,EAAC,uBAAuB,2BAAgB,EACpD,KAAK,KAAK,SAAS,IAAI,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,qBAAqB,GAAK,EAC9I,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,YAAG,SAAS,EAAC,+BAA+B,kDAAsC,EACzG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7B,aAAI,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,IAAO,IAAI,CAAC,MAAM,CAAI,CAC1C,CAAC,GACE,CACL,IACK,CACP,CAAC;AACH,CAAC;AAGD,SAAS,QAAQ,CAAC,EAAE,IAAI,EAA2B;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,gDAAgD,mBAAgB,IAAI,CAAC,MAAM,aACxF,YAAG,SAAS,EAAC,sEAAsE,EAAC,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAC1I,KAAK,GACH,EACJ,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAS,EAC7C,eAAM,SAAS,EAAC,+BAA+B,YAAE,WAAW,CAAC,IAAI,CAAC,GAAQ,EACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,0BAAe,oBAAoB,KAAK,EAAE,EAAE,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,0BAEtF,CACJ,IACG,CACL,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FleetHealth } from "#diagnostics/health.ts";
|
|
2
|
-
export declare function SystemHealth({ value, now }: {
|
|
2
|
+
export declare function SystemHealth({ value, now, needsYou, }: {
|
|
3
3
|
readonly value: FleetHealth;
|
|
4
4
|
readonly now: number;
|
|
5
|
+
readonly needsYou?: number | null | undefined;
|
|
5
6
|
}): import("react").JSX.Element;
|
|
6
7
|
//# sourceMappingURL=SystemHealth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemHealth.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"SystemHealth.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,+BA0DA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ObservedTime } from "./diagnosticsValues.js";
|
|
3
|
-
|
|
3
|
+
const waitingOn = { automation: "Waiting on Fleet agents", orchestrator: "Waiting on the orchestrator" };
|
|
4
|
+
export function SystemHealth({ value, now, needsYou, }) {
|
|
4
5
|
let freshness = "Current snapshot";
|
|
5
6
|
if (now < value.observedAt) {
|
|
6
7
|
freshness = "Publisher clock is ahead";
|
|
@@ -8,7 +9,7 @@ export function SystemHealth({ value, now }) {
|
|
|
8
9
|
else if (now - value.observedAt > value.staleAfterMs) {
|
|
9
10
|
freshness = "Stale snapshot — Fleet has not refreshed its health";
|
|
10
11
|
}
|
|
11
|
-
return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-muted-foreground text-xs", children: freshness }), _jsxs("dl", { className: "grid gap-4 text-sm [&_dt]:text-muted-foreground", children: [_jsxs("div", { children: [_jsx("dt", { children: "Running / concurrency cap" }), _jsx("dd", { children: _jsxs("strong", { children: [value.running, " / ", value.concurrency] }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Queued" }), _jsx("dd", { children: _jsx("strong", { children: value.queued }) })] }),
|
|
12
|
+
return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-muted-foreground text-xs", children: freshness }), _jsxs("dl", { className: "grid gap-4 text-sm [&_dt]:text-muted-foreground", children: [_jsxs("div", { children: [_jsx("dt", { children: "Running / concurrency cap" }), _jsx("dd", { children: _jsxs("strong", { children: [value.running, " / ", value.concurrency] }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Queued" }), _jsx("dd", { children: _jsx("strong", { children: value.queued }) })] }), _jsxs("div", { "data-needs-you": true, children: [_jsx("dt", { children: "Needs you" }), _jsxs("dd", { className: "flex flex-wrap items-baseline gap-2", children: [_jsx("strong", { children: needsYou ?? "Unavailable" }), _jsx("a", { className: "text-xs", href: "/#needs-you", children: "Open Today" })] })] }), ["orchestrator", "automation"].map((owner) => (_jsxs("div", { children: [_jsx("dt", { children: waitingOn[owner] }), _jsx("dd", { children: _jsx("strong", { children: value.waiting[owner] }) })] }, owner))), _jsxs("div", { children: [_jsx("dt", { children: "Last scheduler pass" }), _jsx("dd", { children: _jsx(ObservedTime, { at: value.lastSchedulerPass }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Last provider capacity rejection" }), _jsx("dd", { children: _jsx(CapacityRejection, { value: value.lastCapacityRejection }) })] })] })] }));
|
|
12
13
|
}
|
|
13
14
|
function CapacityRejection({ value }) {
|
|
14
15
|
return value === null ? ("None observed") : (_jsxs(_Fragment, { children: [value.cause, _jsx("br", {}), _jsx(ObservedTime, { at: value.at })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemHealth.js","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"SystemHealth.js","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;AAEvD,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAAY,EAAE,6BAA6B,EAAW,CAAC;AAElH,MAAM,UAAU,YAAY,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,QAAQ,GAKR;IACA,IAAI,SAAS,GAAG,kBAAkB,CAAC;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC5B,SAAS,GAAG,0BAA0B,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACxD,SAAS,GAAG,qDAAqD,CAAC;IACnE,CAAC;IAED,OAAO,CACN,8BACC,YAAG,SAAS,EAAC,+BAA+B,YAAE,SAAS,GAAK,EAC5D,cAAI,SAAS,EAAC,iDAAiD,aAC9D,0BACC,qDAAkC,EAClC,uBACC,6BACE,KAAK,CAAC,OAAO,SAAK,KAAK,CAAC,WAAW,IAC5B,GACL,IACA,EACN,0BACC,kCAAe,EACf,uBACC,2BAAS,KAAK,CAAC,MAAM,GAAU,GAC3B,IACA,EACN,kDACC,qCAAkB,EAClB,cAAI,SAAS,EAAC,qCAAqC,aAClD,2BAAS,QAAQ,IAAI,aAAa,GAAU,EAC5C,YAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,2BAErC,IACA,IACA,EACJ,CAAC,cAAc,EAAE,YAAY,CAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzD,0BACC,uBAAK,SAAS,CAAC,KAAK,CAAC,GAAM,EAC3B,uBACC,2BAAS,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAU,GACnC,KAJI,KAAK,CAKT,CACN,CAAC,EACF,0BACC,+CAA4B,EAC5B,uBACC,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,iBAAiB,GAAI,GACzC,IACA,EACN,0BACC,4DAAyC,EACzC,uBACC,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,GAAI,GACrD,IACA,IACF,IACH,CACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAA4D;IAC7F,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACvB,eAAe,CACf,CAAC,CAAC,CAAC,CACH,8BACE,KAAK,CAAC,KAAK,EACZ,cAAM,EACN,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,IAC5B,CACH,CAAC;AACH,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":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,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,+BAeA"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Option } from "effect";
|
|
2
3
|
import { useContext } from "react";
|
|
4
|
+
import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
|
|
3
5
|
import { ProjectionFrame } from "./ProjectionFrame.js";
|
|
4
|
-
import { routeQueryOptions } from "./routeQuery.js";
|
|
6
|
+
import { navigationQuery, routeQueryOptions } from "./routeQuery.js";
|
|
5
7
|
import { SessionContext } from "./SessionContext.js";
|
|
6
8
|
import { SystemPage } from "./SystemPage.js";
|
|
7
9
|
import { useDiagnosticsPolling } from "./useDiagnosticsPolling.js";
|
|
8
10
|
export function SystemMain({ api, onPage, url, }) {
|
|
9
11
|
const atom = api.diagnostics.query(undefined, routeQueryOptions);
|
|
10
12
|
useDiagnosticsPolling(useContext(SessionContext), atom, api.fleetItems.query(undefined, routeQueryOptions));
|
|
11
|
-
|
|
13
|
+
const navigation = useQuery(navigationQuery(api), { keepPreviousData: true });
|
|
14
|
+
const needsYou = Option.getOrUndefined(navigation.data)?.inboxCount;
|
|
15
|
+
return (_jsx(ProjectionFrame, { atom: atom, location: () => ({ file: "System", status: 200, view: "system" }), onPage: onPage, render: (data) => _jsx(SystemPage, { data: data, needsYou: needsYou }), route: "system", url: url }));
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=SystemMain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,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,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IACpE,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,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAChE,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,GAAG,GACP,CACF,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DiagnosticsProjection } from "#browser/views/remaining.ts";
|
|
2
|
-
export declare function SystemPage({ data: { sources: data, now } }: {
|
|
2
|
+
export declare function SystemPage({ data: { sources: data, now }, needsYou, }: {
|
|
3
3
|
readonly data: DiagnosticsProjection;
|
|
4
|
+
readonly needsYou?: number | null | undefined;
|
|
4
5
|
}): import("react").JSX.Element;
|
|
5
6
|
//# sourceMappingURL=SystemPage.d.ts.map
|
|
@@ -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;AAOzE,wBAAgB,UAAU,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,EAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAC5B,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,+BAuCA"}
|
|
@@ -6,14 +6,14 @@ import { FleetItemsContext } from "./FleetItemsContext.js";
|
|
|
6
6
|
import { githubLimited } from "./githubLimited.js";
|
|
7
7
|
import { SystemFleetLane } from "./SystemFleetLane.js";
|
|
8
8
|
import { SystemHealth } from "./SystemHealth.js";
|
|
9
|
-
export function SystemPage({ data: { sources: data, now } }) {
|
|
9
|
+
export function SystemPage({ data: { sources: data, now }, needsYou, }) {
|
|
10
10
|
const items = useContext(FleetItemsContext);
|
|
11
11
|
const fleet = data.fleet.state === "ready" ? { ...data.fleet, observedAt: data.fleet.value.observedAt } : data.fleet;
|
|
12
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"
|
|
13
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"
|
|
14
14
|
&& (fleet.value.running >= fleet.value.concurrency
|
|
15
15
|
|| Object.values(fleet.value.waiting).some((count) => count > 0)
|
|
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 })] }));
|
|
16
|
+
|| now < fleet.value.observedAt), name: "Fleet", render: (value) => _jsx(SystemHealth, { needsYou: needsYou, now: now, value: value }), source: fleet, stale: fleet.state === "ready" && now - fleet.value.observedAt > fleet.value.staleAfterMs })] }), _jsx(SystemFleetLane, { data: items })] }));
|
|
17
17
|
}
|
|
18
18
|
function Card({ name, source, attention, stale, render, }) {
|
|
19
19
|
let state = source.state;
|
|
@@ -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,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,MAAM,UAAU,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
export declare function TodayOptionButton({ disabled, onChoose, option,
|
|
1
|
+
export declare function TodayOptionButton({ disabled, onChoose, option, recommended, source, }: {
|
|
2
2
|
readonly disabled: boolean;
|
|
3
3
|
readonly onChoose: () => void;
|
|
4
4
|
readonly option: {
|
|
5
5
|
readonly id: string;
|
|
6
6
|
readonly source: string;
|
|
7
7
|
};
|
|
8
|
-
readonly reason: string;
|
|
9
8
|
readonly recommended: string | undefined;
|
|
10
9
|
readonly source: {
|
|
11
10
|
readonly label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TodayOptionButton.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"TodayOptionButton.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,GACN,EAAE;IACF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACtF,+BAmBA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { optionText } from "#browser/responses/cardContext.ts";
|
|
3
3
|
import { Button } from "#client/react/components/ui/Button.tsx";
|
|
4
|
-
export function TodayOptionButton({ disabled, onChoose, option,
|
|
5
|
-
const authored = optionText(option.id, option.source
|
|
4
|
+
export function TodayOptionButton({ disabled, onChoose, option, recommended, source, }) {
|
|
5
|
+
const authored = optionText(option.id, option.source);
|
|
6
6
|
const text = source?.label ?? authored.label;
|
|
7
7
|
const description = source?.description ?? authored.description;
|
|
8
8
|
return (_jsxs(Button, { className: "h-auto w-full flex-col items-start gap-0.5 whitespace-normal px-3 py-2 text-left", disabled: disabled, onClick: onChoose, size: "sm", variant: "outline", children: [_jsxs("span", { children: [text, recommended === text ? " · Recommended" : null] }), description ? _jsx("span", { className: "font-normal text-muted-foreground text-xs", children: description }) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TodayOptionButton.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"TodayOptionButton.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,GAON;IACA,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;IAChE,OAAO,CACN,MAAC,MAAM,IACN,SAAS,EAAC,kFAAkF,EAC5F,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,aAEjB,2BACE,IAAI,EACJ,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IACzC,EACN,WAAW,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,2CAA2C,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC9F,CACT,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { RegistryContext } from "@effect/atom-react";
|
|
3
3
|
import { Cause, Effect, Option } from "effect";
|
|
4
|
-
import { useContext, useMemo, useState } from "react";
|
|
5
|
-
import { useAction, useQuery } from "@shivaedev/effect-react/
|
|
4
|
+
import { useContext, useMemo, useRef, useState } from "react";
|
|
5
|
+
import { useAction, useQuery } from "@shivaedev/effect-react/client/resultState.ts";
|
|
6
6
|
import { answerBody } from "#browser/responses/answerBody.ts";
|
|
7
7
|
import { promptHeading } from "#browser/responses/cardContext.ts";
|
|
8
8
|
import { reasonMarkdown } from "#browser/responses/reasonMarkdown.ts";
|
|
@@ -30,12 +30,14 @@ export function TodayOptions({ api, item }) {
|
|
|
30
30
|
}
|
|
31
31
|
function InlineOptions({ api, document: data, request }) {
|
|
32
32
|
const registry = useContext(RegistryContext);
|
|
33
|
+
const requestRef = useRef(request);
|
|
34
|
+
requestRef.current = request;
|
|
33
35
|
const client = useFormClient();
|
|
34
36
|
const [label] = useState(() => authorLabel(() => localStorage, document.documentElement.dataset.workspace));
|
|
35
37
|
const [author, setAuthor] = useState(() => label.read("") || "maintainer");
|
|
36
38
|
const actionAtom = useMemo(() => client.runtime.fn(Effect.fn("Board.answerOption")(function* (choice) {
|
|
37
|
-
const preview =
|
|
38
|
-
const prompt =
|
|
39
|
+
const preview = requestRef.current.preview;
|
|
40
|
+
const prompt = requestRef.current.prompts?.[0];
|
|
39
41
|
if (!(preview && prompt && author.trim())) {
|
|
40
42
|
return yield* Effect.fail("Add your local author label.");
|
|
41
43
|
}
|
|
@@ -55,7 +57,7 @@ function InlineOptions({ api, document: data, request }) {
|
|
|
55
57
|
registry.refresh(navigationQuery(api));
|
|
56
58
|
registry.refresh(documentQuery(api, fileUrl(data.file)));
|
|
57
59
|
return saved;
|
|
58
|
-
})), [client, api, registry,
|
|
60
|
+
})), [client, api, registry, author, data.file, label.save]);
|
|
59
61
|
const action = useAction(actionAtom);
|
|
60
62
|
const failure = Option.getOrUndefined(Option.flatMap(action.cause, Cause.findErrorOption));
|
|
61
63
|
const saved = Option.getOrUndefined(action.data);
|
|
@@ -70,6 +72,6 @@ function InlineOptions({ api, document: data, request }) {
|
|
|
70
72
|
}
|
|
71
73
|
const prompt = request.prompts?.[0];
|
|
72
74
|
const reason = reasonMarkdown(request.preview?.reason ?? "").split("\n")[0];
|
|
73
|
-
return (_jsxs("fieldset", { "aria-label": `Options for ${data.identity}`, className: "m-0 min-w-0 space-y-3 border-0 px-2 pb-1", children: [Boolean(reason) && _jsx("p", { className: "m-0 font-medium text-sm", children: reason }), prompt ? _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: promptHeading(prompt.source).title ?? "Choose one option." }) : null, _jsx("div", { className: "grid gap-2", children: prompt?.options.map((option, index) => (_jsx(TodayOptionButton, { disabled: !(data.writable && author.trim()) || action.pending || Boolean(saved), onChoose: () => action.dispatch(option.id), option: option,
|
|
75
|
+
return (_jsxs("fieldset", { "aria-label": `Options for ${data.identity}`, className: "m-0 min-w-0 space-y-3 border-0 px-2 pb-1", children: [Boolean(reason) && _jsx("p", { className: "m-0 font-medium text-sm", children: reason }), prompt ? _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: promptHeading(prompt.source).title ?? "Choose one option." }) : null, _jsx("div", { className: "grid gap-2", children: prompt?.options.map((option, index) => (_jsx(TodayOptionButton, { disabled: !(data.writable && author.trim()) || action.pending || Boolean(saved), onChoose: () => action.dispatch(option.id), option: option, recommended: data.metadata.recommended, source: data.metadata.options?.[index] }, option.id))) }), _jsxs("details", { className: "text-muted-foreground text-xs", children: [_jsxs("summary", { className: "cursor-pointer", children: ["Answer as ", author || "…"] }), _jsxs("label", { className: "mt-2 flex items-center gap-2", children: ["Local author label", " ", _jsx("input", { className: "rounded border bg-background 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: "This Board is read-only. Start it with --responses to record answers." }), Boolean(status) && (_jsx("p", { className: "m-0 text-xs", role: "status", children: status }))] }));
|
|
74
76
|
}
|
|
75
77
|
//# 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,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TodayOptions.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Option } from "effect";
|
|
3
|
-
import { useQuery } from "@shivaedev/effect-react/
|
|
3
|
+
import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
|
|
4
4
|
import { fileUrl } from "#files/url.ts";
|
|
5
5
|
import { inProgressItems } from "./inProgressItems.js";
|
|
6
6
|
import { navigationQuery, routeQueryOptions } from "./routeQuery.js";
|
|
@@ -16,7 +16,7 @@ export function TodayPage({ api, data }) {
|
|
|
16
16
|
const progress = inProgressItems(fleet);
|
|
17
17
|
const navigation = useQuery(navigationQuery(api), { keepPreviousData: true });
|
|
18
18
|
const home = Option.getOrUndefined(navigation.data)?.home;
|
|
19
|
-
return (_jsxs("div", { className: "today-page min-w-0 space-y-3 md:space-y-6", children: [_jsxs("header", { className: "flex items-center justify-between gap-3", children: [_jsx("h1", { className: "m-0 font-semibold text-2xl", children: "Today" }), home !== undefined && (_jsx("a", { className: "text-sm", href: fileUrl(home.file), children: "Workspace notes" }))] }), _jsxs("nav", { "aria-label": "Today summary", className: "today-strip flex items-center gap-1 whitespace-nowrap text-xs tabular-nums sm:gap-2 sm:text-sm", children: [
|
|
19
|
+
return (_jsxs("div", { className: "today-page min-w-0 space-y-3 md:space-y-6", children: [_jsxs("header", { className: "flex items-center justify-between gap-3", children: [_jsx("h1", { className: "m-0 font-semibold text-2xl", children: "Today" }), home !== undefined && (_jsx("a", { className: "text-sm", href: fileUrl(home.file), children: "Workspace notes" }))] }), _jsxs("nav", { "aria-label": "Today summary", className: "today-strip flex items-center gap-1 whitespace-nowrap text-xs tabular-nums sm:gap-2 sm:text-sm", children: [_jsx("a", { href: `#${todayIds.needs}`, children: data.complete ? `${data.you.length} need you` : "Needs you unavailable" }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsx("a", { href: `#${todayIds.progress}`, children: progressSummary(progress?.length, fleet?.state === "unavailable" || Option.isSome(fleetQuery.cause)) }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsx("a", { href: `#${todayIds.goals}`, children: goalsSummary(goals?.goals.length, Option.isSome(query.cause)) })] }), _jsxs("div", { className: "today-grid grid min-w-0 gap-6 xl:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]", children: [_jsxs("div", { className: "min-w-0 space-y-6", children: [_jsx(NeedsYou, { api: api, data: data }), _jsxs("section", { className: "min-w-0", id: todayIds.progress, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "In progress" }), _jsx(TodayProgress, { data: fleet, failed: Option.isSome(fleetQuery.cause) })] }), data.complete && data.later.length > 0 && _jsx(Later, { items: data.later })] }), _jsxs("section", { className: "min-w-0", id: todayIds.goals, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "Goals" }), goals ? _jsx(TodayGoals, { data: goals }) : _jsx("p", { role: "status", children: Option.isSome(query.cause) ? "Goals unavailable." : "Loading goals…" }), goals && Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Goal refresh failed. Displayed goals are retained." })] })] })] }));
|
|
20
20
|
}
|
|
21
21
|
function NeedsYou({ api, data }) {
|
|
22
22
|
return (_jsxs("section", { className: "min-w-0", id: todayIds.needs, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "Needs you" }), _jsx(TodayNeeds, { api: api, data: data }), data.complete && data.you.length === 0 && (_jsx("a", { className: "text-sm", href: "/_board/start", children: "Getting started" }))] }));
|
|
@@ -24,4 +24,16 @@ function NeedsYou({ api, data }) {
|
|
|
24
24
|
function Later({ items }) {
|
|
25
25
|
return (_jsx("section", { className: "min-w-0", id: todayIds.later, children: _jsxs("details", { children: [_jsxs("summary", { className: "mb-3 cursor-pointer", children: [_jsx("h2", { className: "m-0 inline font-semibold text-lg", children: "Later" }), _jsx("span", { className: "ml-2 text-muted-foreground text-sm tabular-nums", children: items.length })] }), _jsx(TodayLater, { items: items })] }) }));
|
|
26
26
|
}
|
|
27
|
+
function progressSummary(count, unavailable) {
|
|
28
|
+
if (count !== undefined) {
|
|
29
|
+
return `${count} in progress`;
|
|
30
|
+
}
|
|
31
|
+
return unavailable ? "Fleet unavailable" : "Loading Fleet…";
|
|
32
|
+
}
|
|
33
|
+
function goalsSummary(count, failed) {
|
|
34
|
+
if (count !== undefined) {
|
|
35
|
+
return `${count} active goals`;
|
|
36
|
+
}
|
|
37
|
+
return failed ? "Goals unavailable" : "Loading goals…";
|
|
38
|
+
}
|
|
27
39
|
//# sourceMappingURL=TodayPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TodayPage.js","sourceRoot":"","sources":["../../../src/client/react/TodayPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TodayPage.js","sourceRoot":"","sources":["../../../src/client/react/TodayPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkCard.d.ts","sourceRoot":"","sources":["../../../src/client/react/WorkCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"WorkCard.d.ts","sourceRoot":"","sources":["../../../src/client/react/WorkCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAuB,MAAM,uBAAuB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAOrD,wBAAgB,QAAQ,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,KAAK,GACL,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CACtC,+BAiBA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cardStatus, holderOf } from "#browser/views/now.ts";
|
|
2
|
+
import { cardStatus, holderOf, stageTime } from "#browser/views/now.ts";
|
|
3
3
|
import { Card } from "#client/react/components/ui/Card.tsx";
|
|
4
4
|
import { StatusChip } from "#client/react/components/ui/StatusChip.tsx";
|
|
5
5
|
import { Age } from "./Age.js";
|
|
@@ -7,6 +7,11 @@ import { PrChip } from "./PrChip.js";
|
|
|
7
7
|
import { WorkItemTitle } from "./WorkItemTitle.js";
|
|
8
8
|
export function WorkCard({ item, state, fleet, }) {
|
|
9
9
|
const holder = holderOf(item.metadata, fleet);
|
|
10
|
-
|
|
10
|
+
const kind = item.metadata.kind === "task" ? undefined : item.metadata.kind;
|
|
11
|
+
return (_jsxs(Card, { className: "work-card", "data-item": item.id, "data-selected": item.id === state.item ? "true" : undefined, children: [kind !== undefined && _jsx("p", { className: "work-kind", children: kind }), _jsx("h3", { children: _jsx(WorkItemTitle, { item: item, state: state }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(StatusChip, { status: cardStatus(item.metadata, fleet, item.waiting), title: item.waiting }), _jsx(PrChip, { url: fleet?.prUrl })] }), holder && _jsx("p", { className: "work-owner", children: holder }), fleet?.stageEnteredAt !== undefined && fleet.stageEnteredAt !== null && _jsx(StageTime, { entered: fleet.stageEnteredAt, stage: fleet.stage })] }));
|
|
12
|
+
}
|
|
13
|
+
function StageTime({ stage, entered }) {
|
|
14
|
+
const { ended, label } = stageTime(stage);
|
|
15
|
+
return (_jsxs("p", { className: "work-stage", children: [label, " ", ended ? "" : "for ", _jsx(Age, { modified: entered, short: true }), ended ? " ago" : ""] }));
|
|
11
16
|
}
|
|
12
17
|
//# sourceMappingURL=WorkCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkCard.js","sourceRoot":"","sources":["../../../src/client/react/WorkCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkCard.js","sourceRoot":"","sources":["../../../src/client/react/WorkCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkB,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGxF,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAW,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,MAAM,UAAU,QAAQ,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,KAAK,GAKL;IACA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5E,OAAO,CACN,MAAC,IAAI,IAAC,SAAS,EAAC,WAAW,eAAY,IAAI,CAAC,EAAE,mBAAiB,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aACxG,IAAI,KAAK,SAAS,IAAI,YAAG,SAAS,EAAC,WAAW,YAAE,IAAI,GAAK,EAC1D,uBACC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,GACvC,EACL,eAAK,SAAS,EAAC,mCAAmC,aACjD,KAAC,UAAU,IAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,GAAI,EAC3F,KAAC,MAAM,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,IACxB,EACL,MAAM,IAAI,YAAG,SAAS,EAAC,YAAY,YAAE,MAAM,GAAK,EAChD,KAAK,EAAE,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI,KAAC,SAAS,IAAC,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,IACnI,CACP,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAoE;IACtG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,CACN,aAAG,SAAS,EAAC,YAAY,aACvB,KAAK,OAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAC5B,KAAC,GAAG,IAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,SAAG,EAC/B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IACjB,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/WorkLane.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,wBAAgB,QAAQ,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GACT,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC5B,+
|
|
1
|
+
{"version":3,"file":"WorkLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/WorkLane.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,wBAAgB,QAAQ,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GACT,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC5B,+BAuBA"}
|
|
@@ -4,6 +4,6 @@ import { Button } from "#client/react/components/ui/Button.tsx";
|
|
|
4
4
|
import { WorkCardList } from "#client/react/WorkCardList.tsx";
|
|
5
5
|
export function WorkLane({ lane, rows, state, fleet, virtual, collapsed, }) {
|
|
6
6
|
const [open, setOpen] = useState(!collapsed);
|
|
7
|
-
return (_jsxs("section", { "aria-label": lane, className: "work-column min-w-0", children: [_jsxs("h2", { className: "m-0 mb-3 flex min-h-8 items-center justify-between gap-
|
|
7
|
+
return (_jsxs("section", { "aria-label": lane, className: "work-column min-w-0", children: [_jsxs("h2", { className: "m-0 mb-3 flex min-h-8 items-center justify-between gap-2 font-semibold text-sm", children: [collapsed ? (_jsx(Button, { "aria-expanded": open, className: "h-auto min-h-8 shrink whitespace-normal text-left", onClick: () => setOpen(!open), size: "sm", variant: "outline", children: lane })) : (lane), _jsx("span", { className: "work-count shrink-0 text-muted-foreground text-xs tabular-nums", children: rows.length })] }), Boolean(open) && _jsx(WorkCardList, { fleet: fleet, rows: rows, state: state, virtual: virtual })] }));
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=WorkLane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkLane.js","sourceRoot":"","sources":["../../../src/client/react/WorkLane.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,QAAQ,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GAQT;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,CACN,iCAAqB,IAAI,EAAE,SAAS,EAAC,qBAAqB,aACzD,cAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"WorkLane.js","sourceRoot":"","sources":["../../../src/client/react/WorkLane.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,QAAQ,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GAQT;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,CACN,iCAAqB,IAAI,EAAE,SAAS,EAAC,qBAAqB,aACzD,cAAI,SAAS,EAAC,gFAAgF,aAC5F,SAAS,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,qBACS,IAAI,EACnB,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAC7B,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,YAEhB,IAAI,GACG,CACT,CAAC,CAAC,CAAC,CACH,IAAI,CACJ,EACD,eAAM,SAAS,EAAC,gEAAgE,YAAE,IAAI,CAAC,MAAM,GAAQ,IACjG,EACJ,OAAO,CAAC,IAAI,CAAC,IAAI,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,IACnF,CACV,CAAC;AACH,CAAC"}
|
|
@@ -12,7 +12,7 @@ export function WorkNow({ data }) {
|
|
|
12
12
|
? fleet.completed.filter((item) => item.completedAt >= Effect.runSync(Clock.currentTimeMillis) - 604_800_000).map((item) => item.workId)
|
|
13
13
|
: []);
|
|
14
14
|
const groups = Map.groupBy(data.rows, (item) => laneOf(item.metadata, items.get(item.id), item.fleetApproved));
|
|
15
|
-
return (_jsxs(_Fragment, { children: [!ready && (_jsxs("p", { role: "status", children: ["Fleet is unavailable. Lanes use authored status. ", fleet?.state === "unavailable" ? fleet.reason : "Fleet data has not loaded."] })), _jsx("div", { className: "work-columns work-now grid
|
|
15
|
+
return (_jsxs(_Fragment, { children: [!ready && (_jsxs("p", { role: "status", children: ["Fleet is unavailable. Lanes use authored status. ", fleet?.state === "unavailable" ? fleet.reason : "Fleet data has not loaded."] })), _jsx("div", { className: "work-columns work-now grid grid-cols-[repeat(6,minmax(8.5rem,1fr))] gap-3 overflow-x-auto pb-2", children: nowLanes.map((lane, index) => {
|
|
16
16
|
const rows = (groups.get(lane) ?? []).filter((item) => index !== 5 || recent.has(item.id));
|
|
17
17
|
return (_jsx(WorkLane, { collapsed: index === 5, fleet: items, lane: lane, rows: rows, state: data.state, virtual: data.rows.length > 200 }, lane));
|
|
18
18
|
}) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkNow.js","sourceRoot":"","sources":["../../../src/client/react/WorkNow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAqC;IAClE,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrH,MAAM,MAAM,GAAG,IAAI,GAAG,CACrB,KAAK;QACJ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACxI,CAAC,CAAC,EAAE,CACL,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/G,OAAO,CACN,8BACE,CAAC,KAAK,IAAI,CACV,aAAG,IAAI,EAAC,QAAQ,kEACmC,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,IAC3H,CACJ,EACD,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"WorkNow.js","sourceRoot":"","sources":["../../../src/client/react/WorkNow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAqC;IAClE,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrH,MAAM,MAAM,GAAG,IAAI,GAAG,CACrB,KAAK;QACJ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACxI,CAAC,CAAC,EAAE,CACL,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/G,OAAO,CACN,8BACE,CAAC,KAAK,IAAI,CACV,aAAG,IAAI,EAAC,QAAQ,kEACmC,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,IAC3H,CACJ,EACD,cAAK,SAAS,EAAC,gGAAgG,YAC7G,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3F,OAAO,CACN,KAAC,QAAQ,IAAC,SAAS,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAa,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,IAAhF,IAAI,CAAgF,CACzI,CAAC;gBACH,CAAC,CAAC,GACG,IACJ,CACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destinationName.d.ts","sourceRoot":"","sources":["../../../src/client/react/destinationName.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,UAE5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destinationName.js","sourceRoot":"","sources":["../../../src/client/react/destinationName.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAgC,EAAE,IAAY;IAC5F,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;AACrF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isRedirect, redirect } from "@tanstack/react-router";
|
|
2
2
|
import { Predicate } from "effect";
|
|
3
|
-
import { loadQuery } from "@shivaedev/effect-react/
|
|
3
|
+
import { loadQuery } from "@shivaedev/effect-react/loadQuery.ts";
|
|
4
4
|
import { documentRoute } from "./documentRoute.js";
|
|
5
5
|
import { loadProjection } from "./loadProjection.js";
|
|
6
6
|
import { loadRemaining } from "./loadRemaining.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadBoardPage.js","sourceRoot":"","sources":["../../../src/client/react/loadBoardPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"loadBoardPage.js","sourceRoot":"","sources":["../../../src/client/react/loadBoardPage.ts"],"names":[],"mappings":"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"}
|