@parallelworks/tandem-web 0.138.2 → 0.139.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/components/AgentWork.js +35 -35
  2. package/components/AppRoot.js +4 -4
  3. package/components/AreaWork.js +1 -1
  4. package/components/BlockHandle.js +3 -3
  5. package/components/CommandPalette.js +27 -27
  6. package/components/DateChip.js +27 -27
  7. package/components/DocLinkPicker.js +17 -17
  8. package/components/Graph.js +6 -6
  9. package/components/HoverCards.js +30 -29
  10. package/components/IssueListBlock.js +83 -83
  11. package/components/LinkCard.js +20 -20
  12. package/components/MentionPicker.js +12 -12
  13. package/components/NewIssueDialog.js +116 -116
  14. package/components/NewProjectDialog.js +5 -4
  15. package/components/Planning.js +31 -43
  16. package/components/RouterLink.js +4 -4
  17. package/components/ShareDialog.js +12 -12
  18. package/components/SharedUI.js +19 -19
  19. package/components/SlashMenu.js +11 -11
  20. package/components/SubPages.js +10 -10
  21. package/components/UnlinkedMentions.js +10 -10
  22. package/components/WorkCounts.js +8 -8
  23. package/components/settings.js +26 -26
  24. package/hostedApp.js +36 -36
  25. package/hosting.d.ts +24 -11
  26. package/index.js +58 -27
  27. package/lib/base.js +1 -14
  28. package/lib/docs.js +6 -6
  29. package/lib/issueMenu.js +33 -33
  30. package/lib/knowledge.js +90 -101
  31. package/lib/knowledgeKinds.js +14 -0
  32. package/lib/projectList.js +1 -1
  33. package/lib/projectStates.js +15 -0
  34. package/lib/router.js +20 -34
  35. package/package.json +2 -2
  36. package/pages/areas.js +147 -147
  37. package/pages/decisions.js +40 -40
  38. package/pages/issues.js +4 -4
  39. package/pages/projects.js +232 -231
  40. package/pages/triage.js +86 -86
  41. package/pages.js +21 -0
  42. package/routes/__root.js +6 -6
  43. package/routes/_workspace/docs/_doc2.js +12 -12
  44. package/routes/_workspace/docs2.js +8 -8
  45. package/routes/_workspace/graph2.js +9 -9
  46. package/routes/_workspace/issues/_identifier2.js +327 -327
  47. package/routes/_workspace/issues/index.js +6 -6
  48. package/routes/_workspace/knowledge/_term2.js +125 -124
  49. package/routes/_workspace/knowledge/index.js +8 -8
  50. package/routes/_workspace/knowledge/index2.js +22 -21
  51. package/routes/_workspace/measures2.js +4 -4
  52. package/routes/_workspace/people/_username.js +4 -4
  53. package/routes/_workspace/projects/_projectId3.js +264 -263
  54. package/routes/_workspace/projects/index.js +7 -7
  55. package/routes/_workspace/settings/account2.js +3 -3
  56. package/routes/_workspace/settings/audit-log2.js +4 -4
  57. package/routes/_workspace/settings/audit-log3.js +51 -51
  58. package/routes/_workspace/settings/labels2.js +14 -14
  59. package/routes/_workspace/settings/members2.js +9 -9
  60. package/routes/_workspace/settings/runners2.js +11 -11
  61. package/routes/_workspace/settings/teams2.js +15 -15
  62. package/routes/_workspace/settings/tokens2.js +5 -5
  63. package/routes/_workspace/settings/webhooks2.js +7 -7
  64. package/routes/_workspace/settings2.js +3 -3
  65. package/routes/_workspace/teams/_key/cycles/_number2.js +8 -8
  66. package/routes/_workspace/teams/_key/cycles/index2.js +20 -20
  67. package/routes/_workspace/teams/_key/issues.js +4 -4
  68. package/routes/_workspace/teams/_key/projects.js +4 -4
  69. package/routes/_workspace/teams/_key/settings2.js +8 -8
  70. package/routes/_workspace2.js +319 -319
  71. package/routes/docs/route2.js +15 -15
@@ -1,10 +1,11 @@
1
1
  import { Link as e, useNavigate as t } from "../../../lib/router.js";
2
2
  import { areasQuery as n, knowledgeQuery as r } from "../../../api/queries.js";
3
3
  import { AddIcon as i, LibraryIcon as a } from "../../../components/icons.js";
4
- import { EntryDialog as o, kinds as s, termRef as c, useKnowledgeMenu as l } from "../../../lib/knowledge.js";
5
- import { Route as u } from "./index.js";
6
- import { useTime as d } from "../../../lib/time.js";
7
- import { usePageTitle as f } from "../../../lib/pageTitle.js";
4
+ import { kinds as o, termRef as s } from "../../../lib/knowledgeKinds.js";
5
+ import { Route as c } from "./index.js";
6
+ import { useTime as l } from "../../../lib/time.js";
7
+ import { usePageTitle as u } from "../../../lib/pageTitle.js";
8
+ import { EntryDialog as d, useKnowledgeMenu as f } from "../../../lib/knowledge.js";
8
9
  import { KnowledgeStatus as p } from "../../../components/HoverCards.js";
9
10
  import { FavoriteStar as m } from "../../../components/FavoriteStar.js";
10
11
  import { Button as h, EmptyState as g, SearchInput as _, SegmentedControl as v, buttonClasses as y, useOpenMenu as b } from "@parallelworks/ui";
@@ -15,8 +16,8 @@ import { useQuery as j, useSuspenseQuery as M } from "@tanstack/react-query";
15
16
  // src/routes/$workspace/knowledge/index.tsx?tsr-split=component
16
17
  var N = 5, P = 8;
17
18
  function F() {
18
- let { workspace: l } = u.useParams(), { archived: d, kind: p = "all" } = u.useSearch(), b = D("knowledge"), F = E();
19
- f(b("title"));
19
+ let { workspace: l } = c.useParams(), { archived: f, kind: p = "all" } = c.useSearch(), b = D("knowledge"), F = E();
20
+ u(b("title"));
20
21
  let L = t(), [R, z] = T(""), [B, V] = T(""), [H, U] = T(null);
21
22
  C(() => {
22
23
  let e = setTimeout(() => V(R.trim()), 200);
@@ -24,11 +25,11 @@ function F() {
24
25
  }, [R]);
25
26
  let { data: W } = M(r(l)), { data: G = [] } = j(n(l)), K = {
26
27
  ...B && { q: B },
27
- ...d && { archived: !0 }
28
+ ...f && { archived: !0 }
28
29
  }, { data: q } = j({
29
30
  ...r(l, K),
30
- enabled: !!B || !!d
31
- }), J = !!B || !!d, Y = J ? q ?? [] : W, X = p === "all" ? Y : Y.filter((e) => e.kind === p), Z = S((e) => U(e), []), Q = w(() => {
31
+ enabled: !!B || !!f
32
+ }), J = !!B || !!f, Y = J ? q ?? [] : W, X = p === "all" ? Y : Y.filter((e) => e.kind === p), Z = S((e) => U(e), []), Q = w(() => {
32
33
  let e = /* @__PURE__ */ new Map();
33
34
  for (let t of Y) e.set(t.kind, (e.get(t.kind) ?? 0) + 1);
34
35
  return e;
@@ -52,11 +53,11 @@ function F() {
52
53
  to: "/$workspace/knowledge",
53
54
  params: { workspace: l },
54
55
  search: {
55
- ...d && { archived: d },
56
+ ...f && { archived: f },
56
57
  ...e !== "all" && { kind: e }
57
58
  },
58
59
  replace: !0
59
- }), $ = s.filter((e) => Q.has(e) || e === p);
60
+ }), $ = o.filter((e) => Q.has(e) || e === p);
60
61
  return /* @__PURE__ */ A("div", {
61
62
  className: "flex h-full flex-col",
62
63
  children: [
@@ -126,13 +127,13 @@ function F() {
126
127
  to: "/$workspace/knowledge",
127
128
  params: { workspace: l },
128
129
  search: {
129
- ...!d && { archived: !0 },
130
+ ...!f && { archived: !0 },
130
131
  ...p !== "all" && { kind: p }
131
132
  },
132
- "aria-current": d || void 0,
133
+ "aria-current": f || void 0,
133
134
  className: `${y({
134
135
  size: "sm",
135
- variant: d ? "secondary" : "ghost"
136
+ variant: f ? "secondary" : "ghost"
136
137
  })} ml-auto`,
137
138
  children: b("archived")
138
139
  })]
@@ -168,7 +169,7 @@ function F() {
168
169
  ]
169
170
  })
170
171
  }),
171
- H && /* @__PURE__ */ k(x, { children: /* @__PURE__ */ k(o, {
172
+ H && /* @__PURE__ */ k(x, { children: /* @__PURE__ */ k(d, {
172
173
  workspace: l,
173
174
  mode: H,
174
175
  onClose: () => U(null),
@@ -176,7 +177,7 @@ function F() {
176
177
  to: "/$workspace/knowledge/$term",
177
178
  params: {
178
179
  workspace: l,
179
- term: c(e)
180
+ term: s(e)
180
181
  }
181
182
  })
182
183
  }) })
@@ -184,7 +185,7 @@ function F() {
184
185
  });
185
186
  }
186
187
  function I({ workspace: t, title: n, entries: r, onOpen: i, showTime: a = !1 }) {
187
- let o = D("knowledge"), s = b(), u = l(t, i), f = d();
188
+ let o = D("knowledge"), c = b(), u = f(t, i), d = l();
188
189
  return /* @__PURE__ */ A("section", {
189
190
  "aria-label": n,
190
191
  className: "mt-10",
@@ -200,9 +201,9 @@ function I({ workspace: t, title: n, entries: r, onOpen: i, showTime: a = !1 })
200
201
  to: "/$workspace/knowledge/$term",
201
202
  params: {
202
203
  workspace: t,
203
- term: c(n)
204
+ term: s(n)
204
205
  },
205
- onContextMenu: (e) => s(e, u(n)),
206
+ onContextMenu: (e) => c(e, u(n)),
206
207
  className: "group flex flex-col gap-1 px-4 py-3 sm:flex-row sm:items-start sm:gap-3 transition-colors duration-150 hover:bg-muted focus-visible:outline-offset-[-2px]",
207
208
  children: [/* @__PURE__ */ A("span", {
208
209
  className: "min-w-0 flex-1",
@@ -220,9 +221,9 @@ function I({ workspace: t, title: n, entries: r, onOpen: i, showTime: a = !1 })
220
221
  n.kind !== "term" && n.status === "proposed" && /* @__PURE__ */ k(p, { status: n.status }),
221
222
  a && /* @__PURE__ */ k("time", {
222
223
  dateTime: n.updatedAt,
223
- title: f.full(n.updatedAt),
224
+ title: d.full(n.updatedAt),
224
225
  className: "tabular-nums",
225
- children: f.relative(n.updatedAt)
226
+ children: d.relative(n.updatedAt)
226
227
  })
227
228
  ]
228
229
  })]
@@ -1,12 +1,12 @@
1
- import { redirect as e } from "../../lib/router.js";
2
- import { rememberSearch as t } from "../../lib/listSearch.js";
1
+ import { rememberSearch as e } from "../../lib/listSearch.js";
2
+ import { redirect as t } from "../../lib/router.js";
3
3
  import { windows as n } from "./measures.js";
4
4
  import { createFileRoute as r, lazyFn as i, lazyRouteComponent as a } from "@tanstack/react-router";
5
5
  var o = r("/$workspace/measures")({
6
6
  validateSearch: (e) => ({ ...n.includes(e.days) && { days: e.days } }),
7
7
  beforeLoad: ({ params: n, search: r, location: i, preload: a }) => {
8
- let o = t(i.pathname, r, a);
9
- if (o) throw e({
8
+ let o = e(i.pathname, r, a);
9
+ if (o) throw t({
10
10
  to: "/$workspace/measures",
11
11
  params: n,
12
12
  search: o,
@@ -1,5 +1,5 @@
1
- import { redirect as e } from "../../../lib/router.js";
2
- import { rememberSearch as t } from "../../../lib/listSearch.js";
1
+ import { rememberSearch as e } from "../../../lib/listSearch.js";
2
+ import { redirect as t } from "../../../lib/router.js";
3
3
  import { issueSearch as n } from "../../../lib/issueList.js";
4
4
  import { createFileRoute as r, lazyFn as i, lazyRouteComponent as a } from "@tanstack/react-router";
5
5
  var o = r("/$workspace/people/$username")({
@@ -11,8 +11,8 @@ var o = r("/$workspace/people/$username")({
11
11
  };
12
12
  },
13
13
  beforeLoad: ({ params: n, search: r, location: i, preload: a }) => {
14
- let o = t(i.pathname, r, a);
15
- if (o) throw e({
14
+ let o = e(i.pathname, r, a);
15
+ if (o) throw t({
16
16
  to: "/$workspace/people/$username",
17
17
  params: n,
18
18
  search: o,