@burdenoff/microfe-planmagnet 2026.925.15 → 2026.925.16

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.
@@ -0,0 +1,224 @@
1
+ import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
+ import { PersonName as n } from "../people/People.js";
3
+ import { MarkdownEditor as r } from "../../components/MarkdownEditor.js";
4
+ import { throwOnError as i } from "../utils/mutationResult.js";
5
+ import { DOC_STATUSES as a, DOC_STATUS_LABEL as o, DocStatusBadge as s } from "../docs/DocStatusBadge.js";
6
+ import { useDeferredValue as c, useState as l } from "react";
7
+ import { FileText as u, Plus as d, Search as f } from "lucide-react";
8
+ import { gql as p } from "@apollo/client";
9
+ import { useMutation as m, useQuery as h } from "@apollo/client/react";
10
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
11
+ import { Button as v, Card as y, CardContent as b, Input as x } from "@burdenoff/fe-libs/ui";
12
+ //#region src/planmagnet/pages/DocsDocsPagePage.tsx
13
+ var S = 50, C = p`
14
+ query DocsList(
15
+ $workspaceId: String
16
+ $filter: PlanmagnetDocFilter
17
+ $pagination: PlanmagnetPaginationInput
18
+ ) {
19
+ planmagnetDocs(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {
20
+ totalCount
21
+ pageInfo {
22
+ hasNextPage
23
+ endCursor
24
+ }
25
+ items {
26
+ id
27
+ title
28
+ status
29
+ version
30
+ updatedAt
31
+ updatedBy
32
+ createdBy
33
+ }
34
+ }
35
+ }
36
+ `, w = p`
37
+ mutation DocsCreate($input: PlanmagnetCreateDocInput!) {
38
+ planmagnetCreateDoc(input: $input) {
39
+ id
40
+ }
41
+ }
42
+ `, T = (e) => `/docs/doc-detail-page?docId=${encodeURIComponent(e)}`;
43
+ function E() {
44
+ let { workspaceId: p } = e(), E = t(), [D, O] = l(""), [k, A] = l("ALL"), [j, M] = l(!1), [N, P] = l(""), [F, I] = l(""), [L, R] = l(null), [z, B] = l(!1), V = c(D.trim()), { data: H, loading: U, error: W, fetchMore: G } = h(C, {
45
+ variables: {
46
+ workspaceId: p,
47
+ filter: {
48
+ ...V ? { search: V } : {},
49
+ ...k === "ALL" ? {} : { status: k }
50
+ },
51
+ pagination: { first: S }
52
+ },
53
+ skip: !p,
54
+ fetchPolicy: "cache-and-network"
55
+ }), [K, q] = m(w, { refetchQueries: ["DocsList"] }), J = H?.planmagnetDocs, Y = J?.items ?? [], X = async () => {
56
+ R(null);
57
+ try {
58
+ let e = (await i(K({ variables: { input: {
59
+ title: N.trim(),
60
+ content: F
61
+ } } }))).data?.planmagnetCreateDoc.id;
62
+ M(!1), P(""), I(""), e && E(T(e));
63
+ } catch (e) {
64
+ R(e instanceof Error ? e.message : "The doc could not be created.");
65
+ }
66
+ }, Z = async () => {
67
+ let e = J?.pageInfo.endCursor;
68
+ if (e) {
69
+ B(!0);
70
+ try {
71
+ await G({
72
+ variables: { pagination: {
73
+ first: S,
74
+ after: e
75
+ } },
76
+ updateQuery: (e, { fetchMoreResult: t }) => ({ planmagnetDocs: {
77
+ ...t.planmagnetDocs,
78
+ items: [...e.planmagnetDocs.items, ...t.planmagnetDocs.items]
79
+ } })
80
+ });
81
+ } finally {
82
+ B(!1);
83
+ }
84
+ }
85
+ };
86
+ return /* @__PURE__ */ _("div", {
87
+ className: "space-y-6 p-6",
88
+ "data-testid": "docs-page",
89
+ children: [
90
+ /* @__PURE__ */ _("div", {
91
+ className: "flex flex-wrap items-center justify-between gap-3",
92
+ children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h1", {
93
+ className: "text-2xl font-semibold",
94
+ children: "Docs"
95
+ }), /* @__PURE__ */ g("p", {
96
+ className: "text-sm text-muted-foreground",
97
+ children: J ? `${J.totalCount} doc${J.totalCount === 1 ? "" : "s"}${V || k !== "ALL" ? " match" : " in this workspace"}` : "Specs and documents, with full version history"
98
+ })] }), !j && /* @__PURE__ */ _(v, {
99
+ size: "sm",
100
+ onClick: () => M(!0),
101
+ "data-testid": "doc-new",
102
+ children: [/* @__PURE__ */ g(d, { className: "mr-1 h-4 w-4" }), "New doc"]
103
+ })]
104
+ }),
105
+ L && /* @__PURE__ */ g("p", {
106
+ role: "alert",
107
+ className: "text-sm text-destructive",
108
+ children: L
109
+ }),
110
+ j && /* @__PURE__ */ g(y, { children: /* @__PURE__ */ _(b, {
111
+ className: "space-y-3 pt-6",
112
+ children: [
113
+ /* @__PURE__ */ g(x, {
114
+ "aria-label": "Doc title",
115
+ placeholder: "Doc title",
116
+ value: N,
117
+ onChange: (e) => P(e.target.value)
118
+ }),
119
+ /* @__PURE__ */ g(r, {
120
+ value: F,
121
+ onChange: I,
122
+ placeholder: "Write the doc…",
123
+ minHeight: 160
124
+ }),
125
+ /* @__PURE__ */ _("div", {
126
+ className: "flex justify-end gap-2",
127
+ children: [/* @__PURE__ */ g(v, {
128
+ size: "sm",
129
+ variant: "ghost",
130
+ onClick: () => {
131
+ M(!1), R(null);
132
+ },
133
+ children: "Cancel"
134
+ }), /* @__PURE__ */ g(v, {
135
+ size: "sm",
136
+ onClick: X,
137
+ disabled: q.loading,
138
+ "data-testid": "doc-create",
139
+ children: q.loading ? "Creating…" : "Create doc"
140
+ })]
141
+ })
142
+ ]
143
+ }) }),
144
+ /* @__PURE__ */ _("div", {
145
+ className: "flex flex-wrap items-center gap-3",
146
+ children: [/* @__PURE__ */ _("div", {
147
+ className: "relative w-full max-w-sm",
148
+ children: [/* @__PURE__ */ g(f, { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ g(x, {
149
+ "aria-label": "Search docs",
150
+ placeholder: "Search titles and content",
151
+ className: "pl-8",
152
+ value: D,
153
+ onChange: (e) => O(e.target.value)
154
+ })]
155
+ }), /* @__PURE__ */ g("div", {
156
+ className: "flex gap-1",
157
+ role: "group",
158
+ "aria-label": "Filter by status",
159
+ children: ["ALL", ...a].map((e) => /* @__PURE__ */ g("button", {
160
+ type: "button",
161
+ "aria-pressed": k === e,
162
+ onClick: () => A(e),
163
+ className: `px-3 py-1.5 text-sm rounded-md ${k === e ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted"}`,
164
+ children: e === "ALL" ? "All" : o[e]
165
+ }, e))
166
+ })]
167
+ }),
168
+ W && /* @__PURE__ */ _("p", {
169
+ role: "alert",
170
+ className: "text-sm text-destructive",
171
+ children: ["Docs could not be loaded: ", W.message]
172
+ }),
173
+ U && !H && /* @__PURE__ */ g("p", {
174
+ className: "text-sm text-muted-foreground",
175
+ children: "Loading docs…"
176
+ }),
177
+ J && Y.length === 0 && /* @__PURE__ */ g("p", {
178
+ className: "text-sm text-muted-foreground",
179
+ children: V || k !== "ALL" ? "No docs match." : "No docs yet. Create the first one."
180
+ }),
181
+ /* @__PURE__ */ g("ul", {
182
+ className: "space-y-2",
183
+ children: Y.map((e) => /* @__PURE__ */ g("li", { children: /* @__PURE__ */ _("button", {
184
+ type: "button",
185
+ "data-testid": "doc-row",
186
+ onClick: () => E(T(e.id)),
187
+ className: "flex w-full items-center justify-between gap-3 rounded-md border p-3 text-left hover:border-primary transition-colors",
188
+ children: [/* @__PURE__ */ _("span", {
189
+ className: "flex min-w-0 items-center gap-2",
190
+ children: [/* @__PURE__ */ g(u, { className: "h-4 w-4 shrink-0 text-muted-foreground" }), /* @__PURE__ */ _("span", {
191
+ className: "min-w-0",
192
+ children: [/* @__PURE__ */ g("span", {
193
+ className: "block truncate text-sm font-medium",
194
+ children: e.title
195
+ }), /* @__PURE__ */ _("span", {
196
+ className: "block text-xs text-muted-foreground",
197
+ children: [
198
+ "v",
199
+ e.version,
200
+ " · updated ",
201
+ new Date(e.updatedAt).toLocaleString(),
202
+ " by",
203
+ " ",
204
+ /* @__PURE__ */ g(n, { id: e.updatedBy ?? e.createdBy })
205
+ ]
206
+ })]
207
+ })]
208
+ }), /* @__PURE__ */ g(s, { status: e.status })]
209
+ }) }, e.id))
210
+ }),
211
+ J?.pageInfo.hasNextPage && /* @__PURE__ */ g(v, {
212
+ size: "sm",
213
+ variant: "outline",
214
+ onClick: Z,
215
+ disabled: z,
216
+ children: z ? "Loading…" : `Show more (${Y.length} of ${J.totalCount})`
217
+ })
218
+ ]
219
+ });
220
+ }
221
+ //#endregion
222
+ export { E as DocsDocsPagePage };
223
+
224
+ //# sourceMappingURL=DocsDocsPagePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsDocsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DocsDocsPagePage.tsx"],"sourcesContent":["import { useDeferredValue, useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { Button, Card, CardContent, Input } from '@burdenoff/fe-libs/ui';\nimport { FileText, Plus, Search } from 'lucide-react';\nimport { MarkdownEditor } from '#src/components/MarkdownEditor';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { PersonName } from '../people/People';\nimport { throwOnError } from '../utils/mutationResult';\nimport {\n DOC_STATUSES,\n DOC_STATUS_LABEL,\n DocStatusBadge,\n type DocStatus,\n} from '../docs/DocStatusBadge';\n\n/**\n * Docs browse surface (P1.4). Before this, a doc could only be created from a\n * work item's \"Linked Docs\" panel and never opened again: there was no list,\n * no detail view and no history UI, although the service kept every revision.\n */\n\nconst PAGE = 50;\n\nconst DOCS = gql`\n query DocsList(\n $workspaceId: String\n $filter: PlanmagnetDocFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetDocs(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n items {\n id\n title\n status\n version\n updatedAt\n updatedBy\n createdBy\n }\n }\n }\n`;\n\nconst CREATE_DOC = gql`\n mutation DocsCreate($input: PlanmagnetCreateDocInput!) {\n planmagnetCreateDoc(input: $input) {\n id\n }\n }\n`;\n\ninterface DocRow {\n id: string;\n title: string;\n status: string;\n version: number;\n updatedAt: string;\n updatedBy: string | null;\n createdBy: string;\n}\n\ninterface DocsData {\n planmagnetDocs: {\n totalCount: number;\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n items: DocRow[];\n };\n}\n\nexport const docDetailPath = (id: string) =>\n `/docs/doc-detail-page?docId=${encodeURIComponent(id)}`;\n\nexport function DocsDocsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [search, setSearch] = useState('');\n const [status, setStatus] = useState<DocStatus | 'ALL'>('ALL');\n const [composing, setComposing] = useState(false);\n const [title, setTitle] = useState('');\n const [content, setContent] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [loadingMore, setLoadingMore] = useState(false);\n const term = useDeferredValue(search.trim());\n\n const filter = {\n ...(term ? { search: term } : {}),\n ...(status !== 'ALL' ? { status } : {}),\n };\n const {\n data,\n loading,\n error: loadError,\n fetchMore,\n } = useQuery<DocsData>(DOCS, {\n variables: { workspaceId, filter, pagination: { first: PAGE } },\n skip: !workspaceId,\n // Cached copies go stale here: a deleted doc, or someone else's newer version.\n fetchPolicy: 'cache-and-network',\n });\n const [create, createState] = useMutation<{ planmagnetCreateDoc: { id: string } }>(CREATE_DOC, {\n refetchQueries: ['DocsList'],\n });\n\n const list = data?.planmagnetDocs;\n const docs = list?.items ?? [];\n\n const submit = async () => {\n setError(null);\n try {\n const result = await throwOnError(\n create({ variables: { input: { title: title.trim(), content } } })\n );\n const id = result.data?.planmagnetCreateDoc.id;\n setComposing(false);\n setTitle('');\n setContent('');\n if (id) navigate(docDetailPath(id));\n } catch (e) {\n setError(e instanceof Error ? e.message : 'The doc could not be created.');\n }\n };\n\n const loadMore = async () => {\n const after = list?.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: PAGE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetDocs: {\n ...fetchMoreResult.planmagnetDocs,\n items: [...prev.planmagnetDocs.items, ...fetchMoreResult.planmagnetDocs.items],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\" data-testid=\"docs-page\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Docs</h1>\n <p className=\"text-sm text-muted-foreground\">\n {list\n ? `${list.totalCount} doc${list.totalCount === 1 ? '' : 's'}${term || status !== 'ALL' ? ' match' : ' in this workspace'}`\n : 'Specs and documents, with full version history'}\n </p>\n </div>\n {!composing && (\n <Button size=\"sm\" onClick={() => setComposing(true)} data-testid=\"doc-new\">\n <Plus className=\"mr-1 h-4 w-4\" />\n New doc\n </Button>\n )}\n </div>\n\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n\n {composing && (\n <Card>\n <CardContent className=\"space-y-3 pt-6\">\n <Input\n aria-label=\"Doc title\"\n placeholder=\"Doc title\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n />\n <MarkdownEditor\n value={content}\n onChange={setContent}\n placeholder=\"Write the doc…\"\n minHeight={160}\n />\n <div className=\"flex justify-end gap-2\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setComposing(false);\n setError(null);\n }}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={submit}\n disabled={createState.loading}\n data-testid=\"doc-create\"\n >\n {createState.loading ? 'Creating…' : 'Create doc'}\n </Button>\n </div>\n </CardContent>\n </Card>\n )}\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"relative w-full max-w-sm\">\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n aria-label=\"Search docs\"\n placeholder=\"Search titles and content\"\n className=\"pl-8\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <div className=\"flex gap-1\" role=\"group\" aria-label=\"Filter by status\">\n {(['ALL', ...DOC_STATUSES] as const).map((s) => (\n <button\n key={s}\n type=\"button\"\n aria-pressed={status === s}\n onClick={() => setStatus(s)}\n className={`px-3 py-1.5 text-sm rounded-md ${status === s ? 'bg-primary text-primary-foreground' : 'text-muted-foreground hover:bg-muted'}`}\n >\n {s === 'ALL' ? 'All' : DOC_STATUS_LABEL[s]}\n </button>\n ))}\n </div>\n </div>\n\n {loadError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Docs could not be loaded: {loadError.message}\n </p>\n )}\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading docs…</p>}\n {list && docs.length === 0 && (\n <p className=\"text-sm text-muted-foreground\">\n {term || status !== 'ALL' ? 'No docs match.' : 'No docs yet. Create the first one.'}\n </p>\n )}\n\n <ul className=\"space-y-2\">\n {docs.map((doc) => (\n <li key={doc.id}>\n <button\n type=\"button\"\n data-testid=\"doc-row\"\n onClick={() => navigate(docDetailPath(doc.id))}\n className=\"flex w-full items-center justify-between gap-3 rounded-md border p-3 text-left hover:border-primary transition-colors\"\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <FileText className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <span className=\"min-w-0\">\n <span className=\"block truncate text-sm font-medium\">{doc.title}</span>\n <span className=\"block text-xs text-muted-foreground\">\n v{doc.version} · updated {new Date(doc.updatedAt).toLocaleString()} by{' '}\n <PersonName id={doc.updatedBy ?? doc.createdBy} />\n </span>\n </span>\n </span>\n <DocStatusBadge status={doc.status} />\n </button>\n </li>\n ))}\n </ul>\n {list?.pageInfo.hasNextPage && (\n <Button size=\"sm\" variant=\"outline\" onClick={loadMore} disabled={loadingMore}>\n {loadingMore ? 'Loading…' : `Show more (${docs.length} of ${list.totalCount})`}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TasksTaskDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/TasksTaskDetailPagePage.tsx"],"names":[],"mappings":"AA6RA,wBAAgB,uBAAuB,4CAgItC"}
1
+ {"version":3,"file":"TasksTaskDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/TasksTaskDetailPagePage.tsx"],"names":[],"mappings":"AAsSA,wBAAgB,uBAAuB,4CAgItC"}