@parallelworks/tandem-web 0.139.0 → 0.139.2
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/components/AppRoot.js +9 -8
- package/components/SettingsNav.js +6 -6
- package/components/settings.js +10 -10
- package/hostedApp.js +47 -45
- package/lib/pageTitle.js +22 -10
- package/package.json +1 -1
- package/pages/areas.js +112 -112
- package/pages/decisions.js +36 -36
- package/pages/issues.js +34 -34
- package/pages/projects.js +109 -109
- package/pages/triage.js +64 -64
- package/routes/_workspace/agents/_slug2.js +21 -21
- package/routes/_workspace/agents/index2.js +16 -16
- package/routes/_workspace/areas/_area2.js +105 -105
- package/routes/_workspace/docs/_doc2.js +185 -185
- package/routes/_workspace/graph3.js +8 -8
- package/routes/_workspace/issues/_identifier2.js +484 -484
- package/routes/_workspace/knowledge/_term2.js +166 -166
- package/routes/_workspace/knowledge/index2.js +33 -33
- package/routes/_workspace/measures3.js +18 -18
- package/routes/_workspace/notifications2.js +112 -112
- package/routes/_workspace/people/_username2.js +36 -36
- package/routes/_workspace/projects/_projectId3.js +215 -215
- package/routes/_workspace/teams/_key/cycles/_number2.js +16 -16
- package/routes/_workspace/teams/_key/cycles/index2.js +38 -38
- package/routes/_workspace/teams/_key/settings2.js +131 -131
- package/routes/_workspace2.js +394 -394
- package/routes/docs/route2.js +5 -5
- package/routes/new2.js +8 -8
- package/routes/request2._token.js +4 -4
package/routes/_workspace2.js
CHANGED
|
@@ -14,16 +14,16 @@ import { usePeople as g } from "../lib/people.js";
|
|
|
14
14
|
import { NewIssueContext as ve } from "../lib/newIssue.js";
|
|
15
15
|
import { PaletteSelectionContext as ye } from "../lib/palette.js";
|
|
16
16
|
import { isBuiltIn as be, useCan as xe } from "../lib/roles.js";
|
|
17
|
-
import { SettingsNav as Se } from "../components/SettingsNav.js";
|
|
18
|
-
import { useSavedViews as
|
|
19
|
-
import { EntityIcon as
|
|
20
|
-
import { CommandPalette as
|
|
21
|
-
import { DocsTree as
|
|
22
|
-
import { FavoritesNav as
|
|
23
|
-
import { HostPanelProvider as
|
|
24
|
-
import { HostActions as
|
|
25
|
-
import { HostPanel as
|
|
26
|
-
import { PersonHoverCard as
|
|
17
|
+
import { SettingsNav as Se, navItem as _, navOn as v } from "../components/SettingsNav.js";
|
|
18
|
+
import { useSavedViews as y, useViewMenu as b, viewSearch as Ce } from "../lib/views.js";
|
|
19
|
+
import { EntityIcon as x } from "../components/EntityIcon.js";
|
|
20
|
+
import { CommandPalette as we } from "../components/CommandPalette.js";
|
|
21
|
+
import { DocsTree as Te } from "../components/DocsTree.js";
|
|
22
|
+
import { FavoritesNav as Ee } from "../components/FavoritesNav.js";
|
|
23
|
+
import { HostPanelProvider as De, useHostPanel as S } from "../lib/hostPanel.js";
|
|
24
|
+
import { HostActions as C } from "../components/HostActions.js";
|
|
25
|
+
import { HostPanel as Oe } from "../components/HostPanel.js";
|
|
26
|
+
import { PersonHoverCard as ke } from "../components/PersonHoverCard.js";
|
|
27
27
|
import { HoverCards as Ae } from "../components/HoverCards.js";
|
|
28
28
|
import { Logo as je } from "../components/Logo.js";
|
|
29
29
|
import { CreateTeamDialog as Me } from "../components/TeamForm.js";
|
|
@@ -34,26 +34,26 @@ import { useInstall as Ie } from "../lib/install.js";
|
|
|
34
34
|
import { LiveProvider as Le, useLive as Re } from "../lib/live.js";
|
|
35
35
|
import { usePushSync as ze } from "../lib/notifications.js";
|
|
36
36
|
import { useShortcuts as Be } from "../lib/shortcuts.js";
|
|
37
|
-
import { ActionMenu as Ve, Avatar as He, AvatarGroup as
|
|
37
|
+
import { ActionMenu as Ve, Avatar as He, AvatarGroup as w, Combobox as Ue, CountBadge as We, IconButton as T, Kbd as Ge, Tooltip as E, menuDivider as D, useOpenMenu as Ke } from "@parallelworks/ui";
|
|
38
38
|
import { Outlet as qe, useParams as Je } from "@tanstack/react-router";
|
|
39
|
-
import { Fragment as Ye, Suspense as Xe, useCallback as Ze, useEffect as
|
|
40
|
-
import { useLocale as $e, useTranslations as
|
|
41
|
-
import { Fragment as
|
|
42
|
-
import { useQuery as
|
|
39
|
+
import { Fragment as Ye, Suspense as Xe, useCallback as Ze, useEffect as O, useMemo as Qe, useState as k } from "react";
|
|
40
|
+
import { useLocale as $e, useTranslations as A } from "use-intl";
|
|
41
|
+
import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
42
|
+
import { useQuery as P, useQueryClient as et, useSuspenseQuery as F } from "@tanstack/react-query";
|
|
43
43
|
import { MoreButton as tt } from "@parallelworks/ui/list";
|
|
44
|
-
import { AppFrame as nt, AppFrameToggle as
|
|
45
|
-
import { createPortal as
|
|
44
|
+
import { AppFrame as nt, AppFrameToggle as I, useAppFrame as L } from "@parallelworks/ui/app-frame";
|
|
45
|
+
import { createPortal as R } from "react-dom";
|
|
46
46
|
// src/routes/$workspace.tsx?tsr-split=component
|
|
47
|
-
function
|
|
47
|
+
function rt(e, t) {
|
|
48
48
|
let n = e.slice(`/${t}/docs/`.length).split("/")[0];
|
|
49
49
|
return e.startsWith(`/${t}/docs/`) && n ? h(n) : void 0;
|
|
50
50
|
}
|
|
51
|
-
var
|
|
52
|
-
function
|
|
53
|
-
let { workspace: f } = n.useParams(), { data: p } =
|
|
51
|
+
var z = { className: v }, B = "inline-flex h-8 min-w-8 items-center justify-center rounded-md border border-[color-mix(in_oklab,currentColor_20%,transparent)] bg-[color-mix(in_oklab,currentColor_6%,transparent)] text-sm font-medium hover:bg-[color-mix(in_oklab,currentColor_12%,transparent)]", it = "absolute top-1.5 right-3 size-2 rounded-full bg-primary", V = (...e) => e.filter(Boolean).join(" ");
|
|
52
|
+
function H() {
|
|
53
|
+
let { workspace: f } = n.useParams(), { data: p } = F(c), { data: h } = F(te(f)), { data: g } = F(ee(f)), v = t(), [y, b] = k(null), [Ce, S] = k(!1), Oe = xe(f, "manage_teams"), { canInstall: ke, install: Re } = Ie(), w = a(), L = et(), R = Ke(), H = he(f), W = A("workspace"), G = A("common"), _t = $e(), K = A("favorites"), vt = A("roles"), q = _e(), yt = (e) => [
|
|
54
54
|
{
|
|
55
|
-
label:
|
|
56
|
-
onClick: () =>
|
|
55
|
+
label: G("open"),
|
|
56
|
+
onClick: () => w({
|
|
57
57
|
to: "/$workspace/teams/$key/issues",
|
|
58
58
|
params: {
|
|
59
59
|
workspace: f,
|
|
@@ -62,13 +62,13 @@ function B() {
|
|
|
62
62
|
})
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
label:
|
|
65
|
+
label: W("newIssueInTeam"),
|
|
66
66
|
shortcut: "C",
|
|
67
|
-
onClick: () =>
|
|
67
|
+
onClick: () => Q({ team: e.key })
|
|
68
68
|
},
|
|
69
69
|
...e.cyclesEnabled ? [{
|
|
70
|
-
label:
|
|
71
|
-
onClick: () =>
|
|
70
|
+
label: W("cycles"),
|
|
71
|
+
onClick: () => w({
|
|
72
72
|
to: "/$workspace/teams/$key/cycles",
|
|
73
73
|
params: {
|
|
74
74
|
workspace: f,
|
|
@@ -77,8 +77,8 @@ function B() {
|
|
|
77
77
|
})
|
|
78
78
|
}] : [],
|
|
79
79
|
{
|
|
80
|
-
label:
|
|
81
|
-
onClick: () =>
|
|
80
|
+
label: W("teamSettings"),
|
|
81
|
+
onClick: () => w({
|
|
82
82
|
to: "/$workspace/teams/$key/settings",
|
|
83
83
|
params: {
|
|
84
84
|
workspace: f,
|
|
@@ -87,554 +87,554 @@ function B() {
|
|
|
87
87
|
})
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
|
-
label: H.find("team", e.id) ?
|
|
90
|
+
label: H.find("team", e.id) ? K("remove") : K("add"),
|
|
91
91
|
onClick: () => H.toggle("team", e.id)
|
|
92
92
|
},
|
|
93
|
-
|
|
94
|
-
...
|
|
95
|
-
ge(
|
|
96
|
-
],
|
|
97
|
-
label: H.find("page", e) ?
|
|
93
|
+
D,
|
|
94
|
+
...q(m(f, e.key, "issues")),
|
|
95
|
+
ge(G("copyKey"), e.key)
|
|
96
|
+
], J = (e) => ({
|
|
97
|
+
label: H.find("page", e) ? K("remove") : K("add"),
|
|
98
98
|
onClick: () => H.toggle("page", e)
|
|
99
|
-
}),
|
|
100
|
-
let e = pe(
|
|
99
|
+
}), Y = i(), [bt, xt] = k(() => ft().expanded), [St, Ct] = k(() => ft().width), wt = Qe(() => {
|
|
100
|
+
let e = pe(Y.pathname, f), t = e?.page === "issues" ? e.team : void 0, n = Y.pathname === `/${f}/issues` || t !== void 0, r = Y.search, i = n && !r.saved;
|
|
101
101
|
return {
|
|
102
102
|
mine: i && !t && (r.assignee === p?.user.username || r.creator === p?.user.username),
|
|
103
103
|
team: i && !r.assignee ? t : void 0,
|
|
104
104
|
saved: n ? r.saved : void 0
|
|
105
105
|
};
|
|
106
106
|
}, [
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
Y.pathname,
|
|
108
|
+
Y.search,
|
|
109
109
|
f,
|
|
110
110
|
p?.user.username
|
|
111
|
-
]),
|
|
112
|
-
let n = pe(
|
|
111
|
+
]), X = (e, t) => {
|
|
112
|
+
let n = pe(Y.pathname, f);
|
|
113
113
|
return n?.page === e && n.team === t;
|
|
114
|
-
}, [
|
|
114
|
+
}, [Tt, Et] = k(() => dt(f)), Dt = (e) => Et((t) => {
|
|
115
115
|
let n = new Set(t);
|
|
116
|
-
return n.delete(e) || n.add(e),
|
|
117
|
-
}),
|
|
116
|
+
return n.delete(e) || n.add(e), mt(f, n), n;
|
|
117
|
+
}), Z = Y.pathname.startsWith(`/${f}/settings`), { data: Ot = [] } = P(o(f)), kt = g.some((e) => e.triageEnabled && !e.archivedAt), { data: At } = P({
|
|
118
118
|
...s(f, { triage: "only" }),
|
|
119
|
-
enabled:
|
|
120
|
-
}),
|
|
119
|
+
enabled: kt
|
|
120
|
+
}), jt = (e) => At?.issues.filter((t) => t.teamId === e).length ?? 0, { data: Mt } = P(l(f)), Nt = Mt?.unread ?? 0;
|
|
121
121
|
ze();
|
|
122
|
-
let { key:
|
|
123
|
-
...
|
|
122
|
+
let { key: Pt } = Je({ strict: !1 }), Q = Ze((e) => b({
|
|
123
|
+
...Pt && { team: Pt },
|
|
124
124
|
...e
|
|
125
|
-
}), [
|
|
126
|
-
Be({ c: () =>
|
|
127
|
-
let [
|
|
128
|
-
if (
|
|
125
|
+
}), [Pt]);
|
|
126
|
+
Be({ c: () => Q() }, y === null);
|
|
127
|
+
let [Ft, $] = k(!1), [It, Lt] = k([]);
|
|
128
|
+
if (O(() => {
|
|
129
129
|
let e = (e) => {
|
|
130
|
-
!e.metaKey && !e.ctrlKey || e.altKey || e.shiftKey || e.key.toLowerCase() !== "k" || e.defaultPrevented || (e.preventDefault(),
|
|
130
|
+
!e.metaKey && !e.ctrlKey || e.altKey || e.shiftKey || e.key.toLowerCase() !== "k" || e.defaultPrevented || (e.preventDefault(), $((e) => !e)), !e.metaKey && !e.ctrlKey || e.altKey || e.shiftKey || e.key.toLowerCase() !== "f" || e.defaultPrevented || ht() || (e.preventDefault(), $(!0));
|
|
131
131
|
};
|
|
132
132
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
133
133
|
}, []), !p) return null;
|
|
134
|
-
let
|
|
135
|
-
|
|
136
|
-
},
|
|
137
|
-
let t = /* @__PURE__ */
|
|
134
|
+
let Rt = p.mode === "platform", zt = ke && !Rt, Bt = p.signOutUrl, Vt = !v && (!Rt || Bt !== void 0), Ht = async () => {
|
|
135
|
+
Bt === void 0 ? (await e.POST("/api/v1/auth/logout"), L.clear(), w({ to: "/login" })) : await Fe(Bt);
|
|
136
|
+
}, Ut = Z ? void 0 : ({ expanded: e }) => {
|
|
137
|
+
let t = /* @__PURE__ */ M(Ue, {
|
|
138
138
|
items: [...p.workspaces.map((e) => ({
|
|
139
139
|
value: e.slug,
|
|
140
140
|
label: e.name,
|
|
141
|
-
hint: be(e.role) ?
|
|
141
|
+
hint: be(e.role) ? vt(`${e.role}.name`) : vt("custom")
|
|
142
142
|
})), ...p.canCreateWorkspace ? [{
|
|
143
143
|
value: "__new",
|
|
144
|
-
label:
|
|
144
|
+
label: W("createWorkspace")
|
|
145
145
|
}] : []],
|
|
146
146
|
value: f,
|
|
147
|
-
onValueChange: (e) =>
|
|
147
|
+
onValueChange: (e) => w(e === "__new" ? { to: "/new" } : {
|
|
148
148
|
to: "/$workspace/issues",
|
|
149
149
|
params: { workspace: e ?? f }
|
|
150
150
|
}),
|
|
151
|
-
placeholder:
|
|
152
|
-
"aria-label":
|
|
153
|
-
trigger: /* @__PURE__ */
|
|
151
|
+
placeholder: W("switchWorkspacePlaceholder"),
|
|
152
|
+
"aria-label": W("switchWorkspace"),
|
|
153
|
+
trigger: /* @__PURE__ */ N("button", {
|
|
154
154
|
type: "button",
|
|
155
155
|
"aria-label": e ? void 0 : h.name,
|
|
156
|
-
onContextMenu: (e) =>
|
|
156
|
+
onContextMenu: (e) => R(e, [
|
|
157
157
|
{
|
|
158
|
-
label:
|
|
159
|
-
onClick: () =>
|
|
158
|
+
label: W("workspaceSettings"),
|
|
159
|
+
onClick: () => w({
|
|
160
160
|
to: "/$workspace/settings",
|
|
161
161
|
params: { workspace: f }
|
|
162
162
|
})
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
label:
|
|
165
|
+
label: W("switchWorkspace"),
|
|
166
166
|
items: [...p.workspaces.map((e) => ({
|
|
167
167
|
label: e.name,
|
|
168
168
|
checked: e.slug === f,
|
|
169
|
-
onClick: () =>
|
|
169
|
+
onClick: () => w({
|
|
170
170
|
to: "/$workspace/issues",
|
|
171
171
|
params: { workspace: e.slug }
|
|
172
172
|
})
|
|
173
|
-
})), ...p.canCreateWorkspace ? [
|
|
174
|
-
label:
|
|
175
|
-
onClick: () =>
|
|
173
|
+
})), ...p.canCreateWorkspace ? [D, {
|
|
174
|
+
label: W("createWorkspace"),
|
|
175
|
+
onClick: () => w({ to: "/new" })
|
|
176
176
|
}] : []]
|
|
177
177
|
},
|
|
178
|
-
|
|
179
|
-
ge(
|
|
180
|
-
...
|
|
181
|
-
label:
|
|
182
|
-
onClick:
|
|
178
|
+
D,
|
|
179
|
+
ge(W("copyWorkspaceSlug"), f),
|
|
180
|
+
...Vt ? [D, {
|
|
181
|
+
label: W("signOut"),
|
|
182
|
+
onClick: Ht
|
|
183
183
|
}] : []
|
|
184
184
|
]),
|
|
185
|
-
className:
|
|
186
|
-
children: [h.icon ? /* @__PURE__ */
|
|
185
|
+
className: V("flex h-9 items-center gap-2 rounded-md text-left hover:bg-muted", e ? "w-full px-2" : "w-9 justify-center"),
|
|
186
|
+
children: [h.icon ? /* @__PURE__ */ M(x, {
|
|
187
187
|
icon: h.icon,
|
|
188
188
|
color: h.color,
|
|
189
189
|
name: h.name,
|
|
190
190
|
className: "size-6 text-base"
|
|
191
|
-
}) : /* @__PURE__ */
|
|
191
|
+
}) : /* @__PURE__ */ M(je, { withName: !1 }), e && /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M("span", {
|
|
192
192
|
className: "min-w-0 flex-1 truncate text-sm font-semibold",
|
|
193
193
|
children: h.name
|
|
194
|
-
}), /* @__PURE__ */
|
|
194
|
+
}), /* @__PURE__ */ M(ie, { className: "size-3.5 text-muted-foreground" })] })]
|
|
195
195
|
})
|
|
196
196
|
});
|
|
197
|
-
return e ? /* @__PURE__ */ j
|
|
197
|
+
return e ? /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ N("div", {
|
|
198
198
|
className: "flex items-center gap-1",
|
|
199
199
|
children: [
|
|
200
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ M("div", {
|
|
201
201
|
className: "min-w-0 flex-1",
|
|
202
202
|
children: t
|
|
203
203
|
}),
|
|
204
|
-
!
|
|
205
|
-
!
|
|
204
|
+
!v && /* @__PURE__ */ M(C, { className: "hidden md:flex" }),
|
|
205
|
+
!v && /* @__PURE__ */ M(me, {
|
|
206
206
|
apps: p.apps ?? [],
|
|
207
207
|
className: "hidden md:block"
|
|
208
208
|
})
|
|
209
209
|
]
|
|
210
|
-
}), /* @__PURE__ */
|
|
210
|
+
}), /* @__PURE__ */ N("div", {
|
|
211
211
|
className: "mt-3 flex gap-1.5",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ N("button", {
|
|
213
213
|
type: "button",
|
|
214
|
-
onClick: () =>
|
|
215
|
-
className:
|
|
214
|
+
onClick: () => Q(),
|
|
215
|
+
className: V(B, "min-w-0 flex-1 gap-2 px-2"),
|
|
216
216
|
children: [
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ M(u, { className: "size-3.5" }),
|
|
218
|
+
/* @__PURE__ */ M("span", {
|
|
219
219
|
className: "flex-1 text-left",
|
|
220
|
-
children:
|
|
220
|
+
children: W("newIssue")
|
|
221
221
|
}),
|
|
222
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ M(Ge, {
|
|
223
223
|
keys: "C",
|
|
224
224
|
size: "xs",
|
|
225
225
|
variant: "plain"
|
|
226
226
|
})
|
|
227
227
|
]
|
|
228
|
-
}), /* @__PURE__ */
|
|
229
|
-
content:
|
|
228
|
+
}), /* @__PURE__ */ M(E, {
|
|
229
|
+
content: W("openPalette"),
|
|
230
230
|
shortcut: "Mod+K",
|
|
231
|
-
children: /* @__PURE__ */
|
|
231
|
+
children: /* @__PURE__ */ M("button", {
|
|
232
232
|
type: "button",
|
|
233
|
-
onClick: () =>
|
|
234
|
-
"aria-label":
|
|
233
|
+
onClick: () => $(!0),
|
|
234
|
+
"aria-label": W("openPalette"),
|
|
235
235
|
"aria-keyshortcuts": "Meta+K Control+K",
|
|
236
|
-
className:
|
|
237
|
-
children: /* @__PURE__ */
|
|
236
|
+
className: B,
|
|
237
|
+
children: /* @__PURE__ */ M(d, { className: "size-3.5" })
|
|
238
238
|
})
|
|
239
239
|
})]
|
|
240
|
-
})] }) : /* @__PURE__ */
|
|
240
|
+
})] }) : /* @__PURE__ */ N("div", {
|
|
241
241
|
className: "flex flex-col items-center gap-1.5",
|
|
242
242
|
children: [
|
|
243
243
|
t,
|
|
244
|
-
!
|
|
245
|
-
!
|
|
246
|
-
/* @__PURE__ */
|
|
247
|
-
content:
|
|
244
|
+
!v && /* @__PURE__ */ M(me, { apps: p.apps ?? [] }),
|
|
245
|
+
!v && /* @__PURE__ */ M(C, { className: "flex-col" }),
|
|
246
|
+
/* @__PURE__ */ M(E, {
|
|
247
|
+
content: W("newIssue"),
|
|
248
248
|
shortcut: "C",
|
|
249
249
|
side: "right",
|
|
250
|
-
children: /* @__PURE__ */
|
|
250
|
+
children: /* @__PURE__ */ M("button", {
|
|
251
251
|
type: "button",
|
|
252
|
-
onClick: () =>
|
|
253
|
-
"aria-label":
|
|
254
|
-
className:
|
|
255
|
-
children: /* @__PURE__ */
|
|
252
|
+
onClick: () => Q(),
|
|
253
|
+
"aria-label": W("newIssue"),
|
|
254
|
+
className: B,
|
|
255
|
+
children: /* @__PURE__ */ M(u, { className: "size-3.5" })
|
|
256
256
|
})
|
|
257
257
|
}),
|
|
258
|
-
/* @__PURE__ */
|
|
259
|
-
content:
|
|
258
|
+
/* @__PURE__ */ M(E, {
|
|
259
|
+
content: W("openPalette"),
|
|
260
260
|
shortcut: "Mod+K",
|
|
261
261
|
side: "right",
|
|
262
|
-
children: /* @__PURE__ */
|
|
262
|
+
children: /* @__PURE__ */ M("button", {
|
|
263
263
|
type: "button",
|
|
264
|
-
onClick: () =>
|
|
265
|
-
"aria-label":
|
|
264
|
+
onClick: () => $(!0),
|
|
265
|
+
"aria-label": W("openPalette"),
|
|
266
266
|
"aria-keyshortcuts": "Meta+K Control+K",
|
|
267
|
-
className:
|
|
268
|
-
children: /* @__PURE__ */
|
|
267
|
+
className: B,
|
|
268
|
+
children: /* @__PURE__ */ M(d, { className: "size-3.5" })
|
|
269
269
|
})
|
|
270
270
|
})
|
|
271
271
|
]
|
|
272
272
|
});
|
|
273
|
-
},
|
|
274
|
-
if (
|
|
275
|
-
let n = !e, i =
|
|
273
|
+
}, Wt = ({ expanded: e, mobileOpen: t }) => {
|
|
274
|
+
if (Z) return /* @__PURE__ */ M(Se, { workspace: f });
|
|
275
|
+
let n = !e, i = V(_, n && "relative justify-center px-0"), a = (e) => n ? /* @__PURE__ */ M("span", {
|
|
276
276
|
className: "sr-only",
|
|
277
277
|
children: e
|
|
278
278
|
}) : e;
|
|
279
|
-
return /* @__PURE__ */ j
|
|
280
|
-
t && /* @__PURE__ */
|
|
281
|
-
/* @__PURE__ */
|
|
279
|
+
return /* @__PURE__ */ N(j, { children: [
|
|
280
|
+
t && /* @__PURE__ */ M(at, {}),
|
|
281
|
+
/* @__PURE__ */ N("nav", {
|
|
282
282
|
className: "space-y-0.5",
|
|
283
|
-
"aria-label":
|
|
283
|
+
"aria-label": W("workspaceNav"),
|
|
284
284
|
children: [
|
|
285
|
-
/* @__PURE__ */
|
|
285
|
+
/* @__PURE__ */ M(U, {
|
|
286
286
|
rail: n,
|
|
287
|
-
label:
|
|
288
|
-
children: /* @__PURE__ */
|
|
287
|
+
label: W("notifications"),
|
|
288
|
+
children: /* @__PURE__ */ N(r, {
|
|
289
289
|
to: "/$workspace/notifications",
|
|
290
290
|
params: { workspace: f },
|
|
291
|
-
onContextMenu: (e) =>
|
|
291
|
+
onContextMenu: (e) => R(e, q(`/${f}/notifications`)),
|
|
292
292
|
className: i,
|
|
293
|
-
activeProps:
|
|
294
|
-
children: [/* @__PURE__ */
|
|
293
|
+
activeProps: z,
|
|
294
|
+
children: [/* @__PURE__ */ M(le, { className: "size-4" }), n ? /* @__PURE__ */ N(j, { children: [a(W("notifications")), Nt > 0 && /* @__PURE__ */ M("span", { className: it })] }) : /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M("span", {
|
|
295
295
|
className: "flex-1",
|
|
296
|
-
children:
|
|
297
|
-
}), /* @__PURE__ */
|
|
298
|
-
count:
|
|
299
|
-
locale:
|
|
300
|
-
label:
|
|
296
|
+
children: W("notifications")
|
|
297
|
+
}), /* @__PURE__ */ M(We, {
|
|
298
|
+
count: Nt,
|
|
299
|
+
locale: _t,
|
|
300
|
+
label: W("unreadCount")
|
|
301
301
|
})] })]
|
|
302
302
|
})
|
|
303
303
|
}),
|
|
304
|
-
/* @__PURE__ */
|
|
304
|
+
/* @__PURE__ */ M(U, {
|
|
305
305
|
rail: n,
|
|
306
|
-
label:
|
|
307
|
-
children: /* @__PURE__ */
|
|
306
|
+
label: W("myIssues"),
|
|
307
|
+
children: /* @__PURE__ */ N(r, {
|
|
308
308
|
to: "/$workspace/issues",
|
|
309
309
|
params: { workspace: f },
|
|
310
310
|
search: { assignee: p.user.username },
|
|
311
|
-
onContextMenu: (e) =>
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
...
|
|
311
|
+
onContextMenu: (e) => R(e, [
|
|
312
|
+
J("my-issues"),
|
|
313
|
+
D,
|
|
314
|
+
...q(`/${f}/issues?assignee=${p.user.username}`)
|
|
315
315
|
]),
|
|
316
|
-
className:
|
|
316
|
+
className: V(i, wt.mine && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
317
317
|
children: [
|
|
318
|
-
/* @__PURE__ */
|
|
318
|
+
/* @__PURE__ */ M(fe, { className: "size-4" }),
|
|
319
319
|
" ",
|
|
320
|
-
a(
|
|
320
|
+
a(W("myIssues"))
|
|
321
321
|
]
|
|
322
322
|
})
|
|
323
323
|
}),
|
|
324
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ M(U, {
|
|
325
325
|
rail: n,
|
|
326
|
-
label:
|
|
327
|
-
children: /* @__PURE__ */
|
|
326
|
+
label: W("projects"),
|
|
327
|
+
children: /* @__PURE__ */ N(r, {
|
|
328
328
|
to: "/$workspace/projects",
|
|
329
329
|
params: { workspace: f },
|
|
330
|
-
onContextMenu: (e) =>
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
...
|
|
330
|
+
onContextMenu: (e) => R(e, [
|
|
331
|
+
J("projects"),
|
|
332
|
+
D,
|
|
333
|
+
...q(`/${f}/projects`)
|
|
334
334
|
]),
|
|
335
335
|
className: i,
|
|
336
|
-
activeProps:
|
|
336
|
+
activeProps: z,
|
|
337
337
|
children: [
|
|
338
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ M(ue, { className: "size-4" }),
|
|
339
339
|
" ",
|
|
340
|
-
a(
|
|
340
|
+
a(W("projects"))
|
|
341
341
|
]
|
|
342
342
|
})
|
|
343
343
|
}),
|
|
344
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ M(U, {
|
|
345
345
|
rail: n,
|
|
346
|
-
label:
|
|
347
|
-
children: /* @__PURE__ */
|
|
346
|
+
label: W("knowledge"),
|
|
347
|
+
children: /* @__PURE__ */ N(r, {
|
|
348
348
|
to: "/$workspace/knowledge",
|
|
349
349
|
params: { workspace: f },
|
|
350
|
-
onContextMenu: (e) =>
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
...
|
|
350
|
+
onContextMenu: (e) => R(e, [
|
|
351
|
+
J("knowledge"),
|
|
352
|
+
D,
|
|
353
|
+
...q(`/${f}/knowledge`)
|
|
354
354
|
]),
|
|
355
355
|
className: i,
|
|
356
|
-
activeProps:
|
|
356
|
+
activeProps: z,
|
|
357
357
|
children: [
|
|
358
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ M(se, { className: "size-4" }),
|
|
359
359
|
" ",
|
|
360
|
-
a(
|
|
360
|
+
a(W("knowledge"))
|
|
361
361
|
]
|
|
362
362
|
})
|
|
363
363
|
}),
|
|
364
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ M(U, {
|
|
365
365
|
rail: n,
|
|
366
|
-
label:
|
|
367
|
-
children: /* @__PURE__ */
|
|
366
|
+
label: W("agents"),
|
|
367
|
+
children: /* @__PURE__ */ N(r, {
|
|
368
368
|
to: "/$workspace/agents",
|
|
369
369
|
params: { workspace: f },
|
|
370
|
-
onContextMenu: (e) =>
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
...
|
|
370
|
+
onContextMenu: (e) => R(e, [
|
|
371
|
+
J("agents"),
|
|
372
|
+
D,
|
|
373
|
+
...q(`/${f}/agents`)
|
|
374
374
|
]),
|
|
375
375
|
className: i,
|
|
376
|
-
activeProps:
|
|
376
|
+
activeProps: z,
|
|
377
377
|
children: [
|
|
378
|
-
/* @__PURE__ */
|
|
378
|
+
/* @__PURE__ */ M(ne, { className: "size-4" }),
|
|
379
379
|
" ",
|
|
380
|
-
a(
|
|
380
|
+
a(W("agents"))
|
|
381
381
|
]
|
|
382
382
|
})
|
|
383
383
|
})
|
|
384
384
|
]
|
|
385
385
|
}),
|
|
386
|
-
n ? /* @__PURE__ */
|
|
386
|
+
n ? /* @__PURE__ */ M("nav", {
|
|
387
387
|
className: "mt-4 space-y-0.5 border-t border-border pt-4",
|
|
388
|
-
"aria-label":
|
|
389
|
-
children: g.filter((e) => !e.archivedAt).map((e) => /* @__PURE__ */
|
|
388
|
+
"aria-label": W("teams"),
|
|
389
|
+
children: g.filter((e) => !e.archivedAt).map((e) => /* @__PURE__ */ M(U, {
|
|
390
390
|
rail: !0,
|
|
391
391
|
label: e.name,
|
|
392
|
-
children: /* @__PURE__ */
|
|
392
|
+
children: /* @__PURE__ */ N(r, {
|
|
393
393
|
to: "/$workspace/teams/$key/issues",
|
|
394
394
|
params: {
|
|
395
395
|
workspace: f,
|
|
396
396
|
key: e.key
|
|
397
397
|
},
|
|
398
|
-
onContextMenu: (t) =>
|
|
399
|
-
className:
|
|
398
|
+
onContextMenu: (t) => R(t, yt(e)),
|
|
399
|
+
className: V(i, pe(Y.pathname, f)?.team === e.key && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
400
400
|
children: [
|
|
401
|
-
/* @__PURE__ */
|
|
401
|
+
/* @__PURE__ */ M(x, {
|
|
402
402
|
icon: e.icon,
|
|
403
403
|
color: e.color,
|
|
404
404
|
name: e.name
|
|
405
405
|
}),
|
|
406
406
|
a(e.name),
|
|
407
|
-
|
|
407
|
+
jt(e.id) > 0 && /* @__PURE__ */ M("span", { className: it })
|
|
408
408
|
]
|
|
409
409
|
})
|
|
410
410
|
}, e.id))
|
|
411
|
-
}) : /* @__PURE__ */ j
|
|
412
|
-
/* @__PURE__ */
|
|
411
|
+
}) : /* @__PURE__ */ N(j, { children: [
|
|
412
|
+
/* @__PURE__ */ M(ut, {
|
|
413
413
|
workspace: f,
|
|
414
|
-
current:
|
|
414
|
+
current: wt.saved
|
|
415
415
|
}),
|
|
416
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ M(Ee, {
|
|
417
417
|
workspace: f,
|
|
418
418
|
myUsername: p.user.username,
|
|
419
|
-
currentHref:
|
|
419
|
+
currentHref: Y.pathname + Y.searchStr
|
|
420
420
|
}),
|
|
421
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ N("div", {
|
|
422
422
|
className: "group mt-6 flex h-6 items-center pr-1 pl-2",
|
|
423
|
-
children: [/* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ M("p", {
|
|
424
424
|
className: "flex-1 text-xs font-medium text-muted-foreground",
|
|
425
|
-
children:
|
|
426
|
-
}),
|
|
425
|
+
children: W("teams")
|
|
426
|
+
}), Oe && /* @__PURE__ */ M(T, {
|
|
427
427
|
variant: "ghost",
|
|
428
428
|
size: "xs",
|
|
429
|
-
icon: /* @__PURE__ */
|
|
430
|
-
label:
|
|
431
|
-
onClick: () =>
|
|
429
|
+
icon: /* @__PURE__ */ M(u, {}),
|
|
430
|
+
label: W("createTeam"),
|
|
431
|
+
onClick: () => S(!0),
|
|
432
432
|
className: "opacity-0 group-hover:opacity-100 focus-visible:opacity-100"
|
|
433
433
|
})]
|
|
434
434
|
}),
|
|
435
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ N("nav", {
|
|
436
436
|
className: "mt-1 space-y-0.5",
|
|
437
|
-
"aria-label":
|
|
438
|
-
children: [g.filter((e) => !e.archivedAt).map((e) => /* @__PURE__ */
|
|
439
|
-
className:
|
|
440
|
-
children: [/* @__PURE__ */
|
|
437
|
+
"aria-label": W("teams"),
|
|
438
|
+
children: [g.filter((e) => !e.archivedAt).map((e) => /* @__PURE__ */ N(Ye, { children: [/* @__PURE__ */ N("div", {
|
|
439
|
+
className: V(_, "group gap-0 pr-1 pl-0"),
|
|
440
|
+
children: [/* @__PURE__ */ N("button", {
|
|
441
441
|
type: "button",
|
|
442
|
-
onClick: () =>
|
|
443
|
-
onContextMenu: (t) =>
|
|
444
|
-
"aria-expanded": !
|
|
442
|
+
onClick: () => Dt(e.key),
|
|
443
|
+
onContextMenu: (t) => R(t, yt(e)),
|
|
444
|
+
"aria-expanded": !Tt.has(e.key),
|
|
445
445
|
className: "flex h-full min-w-0 flex-1 items-center gap-2.5 pl-2 text-left",
|
|
446
446
|
children: [
|
|
447
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ M(x, {
|
|
448
448
|
icon: e.icon,
|
|
449
449
|
color: e.color,
|
|
450
450
|
name: e.name
|
|
451
451
|
}),
|
|
452
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ M("span", {
|
|
453
453
|
className: "truncate",
|
|
454
454
|
children: e.name
|
|
455
455
|
}),
|
|
456
|
-
/* @__PURE__ */
|
|
456
|
+
/* @__PURE__ */ M(ie, { className: V("size-3 shrink-0 text-muted-foreground transition-transform", Tt.has(e.key) && "-rotate-90") })
|
|
457
457
|
]
|
|
458
|
-
}), /* @__PURE__ */
|
|
459
|
-
items: () =>
|
|
460
|
-
label:
|
|
458
|
+
}), /* @__PURE__ */ M(tt, {
|
|
459
|
+
items: () => yt(e),
|
|
460
|
+
label: G("moreActionsFor", { name: e.name })
|
|
461
461
|
})]
|
|
462
|
-
}), !
|
|
463
|
-
e.triageEnabled && /* @__PURE__ */
|
|
462
|
+
}), !Tt.has(e.key) && /* @__PURE__ */ N(j, { children: [
|
|
463
|
+
e.triageEnabled && /* @__PURE__ */ N(r, {
|
|
464
464
|
to: "/$workspace/teams/$key/triage",
|
|
465
465
|
params: {
|
|
466
466
|
workspace: f,
|
|
467
467
|
key: e.key
|
|
468
468
|
},
|
|
469
|
-
onContextMenu: (t) =>
|
|
470
|
-
className:
|
|
469
|
+
onContextMenu: (t) => R(t, q(m(f, e.key, "triage"))),
|
|
470
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8", X("triage", e.key) && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
471
471
|
children: [
|
|
472
|
-
/* @__PURE__ */
|
|
473
|
-
/* @__PURE__ */
|
|
472
|
+
/* @__PURE__ */ M(de, { className: "size-4" }),
|
|
473
|
+
/* @__PURE__ */ M("span", {
|
|
474
474
|
className: "flex-1",
|
|
475
|
-
children:
|
|
475
|
+
children: W("triage")
|
|
476
476
|
}),
|
|
477
|
-
/* @__PURE__ */
|
|
478
|
-
count:
|
|
479
|
-
locale:
|
|
480
|
-
label:
|
|
477
|
+
/* @__PURE__ */ M(We, {
|
|
478
|
+
count: jt(e.id),
|
|
479
|
+
locale: _t,
|
|
480
|
+
label: W("triageCount")
|
|
481
481
|
})
|
|
482
482
|
]
|
|
483
483
|
}),
|
|
484
|
-
/* @__PURE__ */
|
|
484
|
+
/* @__PURE__ */ N(r, {
|
|
485
485
|
to: "/$workspace/teams/$key/issues",
|
|
486
486
|
params: {
|
|
487
487
|
workspace: f,
|
|
488
488
|
key: e.key
|
|
489
489
|
},
|
|
490
|
-
onContextMenu: (t) =>
|
|
491
|
-
className:
|
|
490
|
+
onContextMenu: (t) => R(t, q(m(f, e.key, "issues"))),
|
|
491
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8", wt.team === e.key && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
492
492
|
children: [
|
|
493
|
-
/* @__PURE__ */
|
|
493
|
+
/* @__PURE__ */ M(ce, { className: "size-4" }),
|
|
494
494
|
" ",
|
|
495
|
-
|
|
495
|
+
W("issues")
|
|
496
496
|
]
|
|
497
497
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
498
|
+
/* @__PURE__ */ N(r, {
|
|
499
499
|
to: "/$workspace/teams/$key/projects",
|
|
500
500
|
params: {
|
|
501
501
|
workspace: f,
|
|
502
502
|
key: e.key
|
|
503
503
|
},
|
|
504
|
-
onContextMenu: (t) =>
|
|
505
|
-
className:
|
|
504
|
+
onContextMenu: (t) => R(t, q(m(f, e.key, "projects"))),
|
|
505
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8", X("projects", e.key) && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
506
506
|
children: [
|
|
507
|
-
/* @__PURE__ */
|
|
507
|
+
/* @__PURE__ */ M(ue, { className: "size-4" }),
|
|
508
508
|
" ",
|
|
509
|
-
|
|
509
|
+
W("projects")
|
|
510
510
|
]
|
|
511
511
|
}),
|
|
512
|
-
/* @__PURE__ */
|
|
512
|
+
/* @__PURE__ */ N(r, {
|
|
513
513
|
to: "/$workspace/teams/$key/areas",
|
|
514
514
|
params: {
|
|
515
515
|
workspace: f,
|
|
516
516
|
key: e.key
|
|
517
517
|
},
|
|
518
|
-
onContextMenu: (t) =>
|
|
519
|
-
className:
|
|
518
|
+
onContextMenu: (t) => R(t, q(m(f, e.key, "areas"))),
|
|
519
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8", X("areas", e.key) && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
520
520
|
children: [
|
|
521
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ M(re, { className: "size-4" }),
|
|
522
522
|
" ",
|
|
523
|
-
|
|
523
|
+
W("areas")
|
|
524
524
|
]
|
|
525
525
|
}),
|
|
526
|
-
/* @__PURE__ */
|
|
526
|
+
/* @__PURE__ */ N(r, {
|
|
527
527
|
to: "/$workspace/teams/$key/decisions",
|
|
528
528
|
params: {
|
|
529
529
|
workspace: f,
|
|
530
530
|
key: e.key
|
|
531
531
|
},
|
|
532
|
-
onContextMenu: (t) =>
|
|
533
|
-
className:
|
|
532
|
+
onContextMenu: (t) => R(t, q(m(f, e.key, "decisions"))),
|
|
533
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8", X("decisions", e.key) && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
534
534
|
children: [
|
|
535
|
-
/* @__PURE__ */
|
|
536
|
-
/* @__PURE__ */
|
|
535
|
+
/* @__PURE__ */ M(oe, { className: "size-4" }),
|
|
536
|
+
/* @__PURE__ */ M("span", {
|
|
537
537
|
className: "flex-1",
|
|
538
|
-
children:
|
|
538
|
+
children: W("decisions")
|
|
539
539
|
}),
|
|
540
|
-
/* @__PURE__ */
|
|
541
|
-
count:
|
|
542
|
-
locale:
|
|
543
|
-
label:
|
|
540
|
+
/* @__PURE__ */ M(We, {
|
|
541
|
+
count: Ot.filter((t) => t.identifier.startsWith(`${e.key}-`)).length,
|
|
542
|
+
locale: _t,
|
|
543
|
+
label: W("waitingCount"),
|
|
544
544
|
className: "bg-agent! text-agent-foreground!"
|
|
545
545
|
})
|
|
546
546
|
]
|
|
547
547
|
}),
|
|
548
|
-
/* @__PURE__ */
|
|
548
|
+
/* @__PURE__ */ M(Te, {
|
|
549
549
|
workspace: f,
|
|
550
550
|
team: e,
|
|
551
|
-
current:
|
|
551
|
+
current: rt(Y.pathname, f)
|
|
552
552
|
}),
|
|
553
|
-
e.cyclesEnabled && /* @__PURE__ */
|
|
553
|
+
e.cyclesEnabled && /* @__PURE__ */ N(r, {
|
|
554
554
|
to: "/$workspace/teams/$key/cycles",
|
|
555
555
|
params: {
|
|
556
556
|
workspace: f,
|
|
557
557
|
key: e.key
|
|
558
558
|
},
|
|
559
|
-
className:
|
|
560
|
-
activeProps:
|
|
559
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "pl-8"),
|
|
560
|
+
activeProps: z,
|
|
561
561
|
activeOptions: { includeSearch: !1 },
|
|
562
562
|
children: [
|
|
563
|
-
/* @__PURE__ */
|
|
563
|
+
/* @__PURE__ */ M(ae, { className: "size-4" }),
|
|
564
564
|
" ",
|
|
565
|
-
|
|
565
|
+
W("cycles")
|
|
566
566
|
]
|
|
567
567
|
})
|
|
568
|
-
] })] }, e.id)), g.length === 0 && (
|
|
568
|
+
] })] }, e.id)), g.length === 0 && (Oe ? /* @__PURE__ */ N("button", {
|
|
569
569
|
type: "button",
|
|
570
|
-
onClick: () =>
|
|
571
|
-
className:
|
|
570
|
+
onClick: () => S(!0),
|
|
571
|
+
className: V("flex h-8 items-center gap-2.5 rounded-md px-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground", "w-full"),
|
|
572
572
|
children: [
|
|
573
|
-
/* @__PURE__ */
|
|
573
|
+
/* @__PURE__ */ M(u, { className: "size-4" }),
|
|
574
574
|
" ",
|
|
575
|
-
|
|
575
|
+
W("createFirstTeam")
|
|
576
576
|
]
|
|
577
|
-
}) : /* @__PURE__ */
|
|
577
|
+
}) : /* @__PURE__ */ M("p", {
|
|
578
578
|
className: "px-2 text-sm text-muted-foreground",
|
|
579
|
-
children:
|
|
579
|
+
children: W("noTeams")
|
|
580
580
|
}))]
|
|
581
581
|
})
|
|
582
582
|
] })
|
|
583
583
|
] });
|
|
584
|
-
},
|
|
584
|
+
}, Gt = Z ? void 0 : ({ expanded: e, isMobile: t }) => {
|
|
585
585
|
let n = [
|
|
586
586
|
{
|
|
587
|
-
label:
|
|
588
|
-
onClick: () =>
|
|
587
|
+
label: W("myAccount"),
|
|
588
|
+
onClick: () => w({
|
|
589
589
|
to: "/$workspace/settings/account",
|
|
590
590
|
params: { workspace: f }
|
|
591
591
|
})
|
|
592
592
|
},
|
|
593
593
|
{
|
|
594
|
-
label:
|
|
595
|
-
onClick: () =>
|
|
594
|
+
label: W("settings"),
|
|
595
|
+
onClick: () => w({
|
|
596
596
|
to: "/$workspace/settings",
|
|
597
597
|
params: { workspace: f }
|
|
598
598
|
})
|
|
599
599
|
},
|
|
600
|
-
...
|
|
601
|
-
label:
|
|
602
|
-
onClick:
|
|
600
|
+
...zt ? [{
|
|
601
|
+
label: W("installApp"),
|
|
602
|
+
onClick: Re
|
|
603
603
|
}] : [],
|
|
604
|
-
...
|
|
605
|
-
label:
|
|
606
|
-
onClick:
|
|
604
|
+
...Vt ? [D, {
|
|
605
|
+
label: W("signOut"),
|
|
606
|
+
onClick: Ht
|
|
607
607
|
}] : []
|
|
608
|
-
], r = /* @__PURE__ */
|
|
608
|
+
], r = /* @__PURE__ */ M(He, {
|
|
609
609
|
name: p.user.name,
|
|
610
610
|
src: p.user.avatarUrl,
|
|
611
611
|
size: "sm",
|
|
612
612
|
decorative: !0
|
|
613
613
|
});
|
|
614
|
-
return e ? /* @__PURE__ */ j
|
|
614
|
+
return e ? /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(lt, {
|
|
615
615
|
myUsername: p.user.username,
|
|
616
616
|
workspace: f
|
|
617
|
-
}), /* @__PURE__ */
|
|
617
|
+
}), /* @__PURE__ */ N("div", {
|
|
618
618
|
className: "flex items-center gap-1",
|
|
619
|
-
children: [/* @__PURE__ */
|
|
620
|
-
label:
|
|
619
|
+
children: [/* @__PURE__ */ M(Ve, {
|
|
620
|
+
label: W("accountMenu", { name: p.user.name }),
|
|
621
621
|
side: "top",
|
|
622
622
|
align: "start",
|
|
623
623
|
matchTriggerWidth: !0,
|
|
624
624
|
items: n,
|
|
625
|
-
trigger: /* @__PURE__ */
|
|
625
|
+
trigger: /* @__PURE__ */ N("button", {
|
|
626
626
|
type: "button",
|
|
627
627
|
className: "flex h-9 min-w-0 flex-1 items-center gap-2 rounded-md px-1.5 text-left hover:bg-muted",
|
|
628
|
-
children: [r, /* @__PURE__ */
|
|
628
|
+
children: [r, /* @__PURE__ */ M("span", {
|
|
629
629
|
className: "min-w-0 flex-1 truncate text-sm",
|
|
630
630
|
children: p.user.name
|
|
631
631
|
})]
|
|
632
632
|
})
|
|
633
|
-
}), !t && /* @__PURE__ */
|
|
634
|
-
})] }) : /* @__PURE__ */
|
|
633
|
+
}), !t && /* @__PURE__ */ M(I, {})]
|
|
634
|
+
})] }) : /* @__PURE__ */ N("div", {
|
|
635
635
|
className: "flex flex-col items-center gap-2",
|
|
636
|
-
children: [/* @__PURE__ */
|
|
637
|
-
label:
|
|
636
|
+
children: [/* @__PURE__ */ M(I, {}), /* @__PURE__ */ M(Ve, {
|
|
637
|
+
label: W("accountMenu", { name: p.user.name }),
|
|
638
638
|
side: "right",
|
|
639
639
|
align: "end",
|
|
640
640
|
items: n,
|
|
@@ -643,89 +643,89 @@ function B() {
|
|
|
643
643
|
children: r
|
|
644
644
|
})]
|
|
645
645
|
});
|
|
646
|
-
},
|
|
646
|
+
}, Kt = /* @__PURE__ */ M(ot, {
|
|
647
647
|
workspace: f,
|
|
648
648
|
name: h.name,
|
|
649
649
|
apps: p.apps ?? [],
|
|
650
|
-
unread:
|
|
651
|
-
onSearch: () =>
|
|
652
|
-
onNewIssue: () =>
|
|
650
|
+
unread: Nt,
|
|
651
|
+
onSearch: () => $(!0),
|
|
652
|
+
onNewIssue: () => Q()
|
|
653
653
|
});
|
|
654
|
-
return /* @__PURE__ */
|
|
654
|
+
return /* @__PURE__ */ M(Le, {
|
|
655
655
|
workspace: f,
|
|
656
|
-
children: /* @__PURE__ */
|
|
656
|
+
children: /* @__PURE__ */ M(De, {
|
|
657
657
|
actions: p.actions ?? [],
|
|
658
|
-
children: /* @__PURE__ */
|
|
659
|
-
value:
|
|
660
|
-
children: /* @__PURE__ */
|
|
661
|
-
value:
|
|
658
|
+
children: /* @__PURE__ */ M(ve.Provider, {
|
|
659
|
+
value: Q,
|
|
660
|
+
children: /* @__PURE__ */ N(ye.Provider, {
|
|
661
|
+
value: Lt,
|
|
662
662
|
children: [
|
|
663
|
-
|
|
664
|
-
sidebar:
|
|
665
|
-
brand:
|
|
666
|
-
navigation:
|
|
667
|
-
header:
|
|
668
|
-
presence: /* @__PURE__ */
|
|
663
|
+
v ? /* @__PURE__ */ M(st, {
|
|
664
|
+
sidebar: v.sidebar,
|
|
665
|
+
brand: Ut,
|
|
666
|
+
navigation: Wt,
|
|
667
|
+
header: Kt,
|
|
668
|
+
presence: /* @__PURE__ */ M(lt, {
|
|
669
669
|
myUsername: p.user.username,
|
|
670
670
|
workspace: f
|
|
671
671
|
}),
|
|
672
|
-
children: /* @__PURE__ */
|
|
673
|
-
}) : /* @__PURE__ */
|
|
674
|
-
expanded:
|
|
672
|
+
children: /* @__PURE__ */ M(ct, { children: /* @__PURE__ */ M(qe, {}) })
|
|
673
|
+
}) : /* @__PURE__ */ M(nt, {
|
|
674
|
+
expanded: bt || Z,
|
|
675
675
|
onExpandedChange: (e) => {
|
|
676
|
-
|
|
676
|
+
xt(e), pt({
|
|
677
677
|
expanded: e,
|
|
678
|
-
width:
|
|
678
|
+
width: St
|
|
679
679
|
});
|
|
680
680
|
},
|
|
681
|
-
width:
|
|
681
|
+
width: St,
|
|
682
682
|
onWidthChange: (e) => {
|
|
683
|
-
|
|
684
|
-
expanded:
|
|
683
|
+
Ct(e), pt({
|
|
684
|
+
expanded: bt,
|
|
685
685
|
width: e
|
|
686
686
|
});
|
|
687
687
|
},
|
|
688
|
-
navigationKey:
|
|
689
|
-
navigationResetKey:
|
|
688
|
+
navigationKey: Y.pathname + Y.searchStr,
|
|
689
|
+
navigationResetKey: Z ? "settings" : "workspace",
|
|
690
690
|
mainClassName: "flex flex-col overflow-hidden",
|
|
691
691
|
labels: {
|
|
692
|
-
navigation:
|
|
693
|
-
skipToContent:
|
|
694
|
-
openNavigation:
|
|
695
|
-
closeNavigation:
|
|
696
|
-
expandSidebar:
|
|
697
|
-
collapseSidebar:
|
|
698
|
-
resizeSidebar:
|
|
692
|
+
navigation: W("navigation"),
|
|
693
|
+
skipToContent: W("skipToContent"),
|
|
694
|
+
openNavigation: W("openNav"),
|
|
695
|
+
closeNavigation: W("closeNav"),
|
|
696
|
+
expandSidebar: W("expandSidebar"),
|
|
697
|
+
collapseSidebar: W("collapseSidebar"),
|
|
698
|
+
resizeSidebar: W("resizeSidebar")
|
|
699
699
|
},
|
|
700
|
-
header:
|
|
701
|
-
brand:
|
|
702
|
-
navigation:
|
|
703
|
-
footer:
|
|
704
|
-
children: /* @__PURE__ */
|
|
700
|
+
header: Kt,
|
|
701
|
+
brand: Ut,
|
|
702
|
+
navigation: Wt,
|
|
703
|
+
footer: Gt,
|
|
704
|
+
children: /* @__PURE__ */ M(ct, { children: /* @__PURE__ */ M(qe, {}) })
|
|
705
705
|
}),
|
|
706
|
-
/* @__PURE__ */
|
|
707
|
-
!
|
|
708
|
-
/* @__PURE__ */
|
|
706
|
+
/* @__PURE__ */ M(Ae, { workspace: f }),
|
|
707
|
+
!Rt && /* @__PURE__ */ M(gt, {}),
|
|
708
|
+
/* @__PURE__ */ M(we, {
|
|
709
709
|
workspace: f,
|
|
710
|
-
open:
|
|
711
|
-
onClose: () =>
|
|
712
|
-
selection:
|
|
710
|
+
open: Ft,
|
|
711
|
+
onClose: () => $(!1),
|
|
712
|
+
selection: It
|
|
713
713
|
}),
|
|
714
|
-
/* @__PURE__ */
|
|
715
|
-
|
|
714
|
+
/* @__PURE__ */ M(Pe, { workspace: f }),
|
|
715
|
+
Ce && /* @__PURE__ */ M(Me, {
|
|
716
716
|
workspace: f,
|
|
717
|
-
onClose: () =>
|
|
717
|
+
onClose: () => S(!1)
|
|
718
718
|
}),
|
|
719
|
-
|
|
719
|
+
y && /* @__PURE__ */ M(Xe, { children: /* @__PURE__ */ M(Ne, {
|
|
720
720
|
workspace: f,
|
|
721
|
-
...
|
|
722
|
-
...
|
|
723
|
-
...
|
|
724
|
-
...
|
|
725
|
-
...
|
|
726
|
-
...
|
|
727
|
-
...
|
|
728
|
-
onClose: () =>
|
|
721
|
+
...y.team && { defaultTeam: y.team },
|
|
722
|
+
...y.title && { defaultTitle: y.title },
|
|
723
|
+
...y.body && { defaultBody: y.body },
|
|
724
|
+
...y.area && { defaultArea: y.area },
|
|
725
|
+
...y.origin && { origin: y.origin },
|
|
726
|
+
...y.fields && { defaults: y.fields },
|
|
727
|
+
...y.onCreated && { onCreated: y.onCreated },
|
|
728
|
+
onClose: () => b(null)
|
|
729
729
|
}) })
|
|
730
730
|
]
|
|
731
731
|
})
|
|
@@ -733,98 +733,98 @@ function B() {
|
|
|
733
733
|
})
|
|
734
734
|
});
|
|
735
735
|
}
|
|
736
|
-
function
|
|
737
|
-
return /* @__PURE__ */
|
|
736
|
+
function U({ rail: e, label: t, children: n }) {
|
|
737
|
+
return /* @__PURE__ */ M(E, {
|
|
738
738
|
content: t,
|
|
739
739
|
side: "right",
|
|
740
740
|
disabled: !e,
|
|
741
741
|
children: n
|
|
742
742
|
});
|
|
743
743
|
}
|
|
744
|
-
function
|
|
745
|
-
return
|
|
744
|
+
function at() {
|
|
745
|
+
return O(() => {
|
|
746
746
|
document.querySelector(".pw-frame-drawer [aria-current=\"page\"]")?.scrollIntoView({ block: "nearest" });
|
|
747
747
|
}, []), null;
|
|
748
748
|
}
|
|
749
|
-
function
|
|
750
|
-
let { isMobile: s } =
|
|
751
|
-
return s ? /* @__PURE__ */
|
|
749
|
+
function ot({ workspace: e, name: n, apps: r, unread: i, onSearch: a, onNewIssue: o }) {
|
|
750
|
+
let { isMobile: s } = L(), c = t(), l = A("workspace");
|
|
751
|
+
return s ? /* @__PURE__ */ N("div", {
|
|
752
752
|
className: "flex h-12 items-center gap-1 border-b border-border px-1",
|
|
753
753
|
children: [
|
|
754
|
-
/* @__PURE__ */
|
|
755
|
-
/* @__PURE__ */
|
|
754
|
+
/* @__PURE__ */ M(I, {}),
|
|
755
|
+
/* @__PURE__ */ M("span", {
|
|
756
756
|
className: "min-w-0 flex-1 truncate text-sm font-semibold",
|
|
757
757
|
children: n
|
|
758
758
|
}),
|
|
759
|
-
!c && /* @__PURE__ */
|
|
760
|
-
!c && /* @__PURE__ */
|
|
761
|
-
/* @__PURE__ */
|
|
759
|
+
!c && /* @__PURE__ */ M(C, {}),
|
|
760
|
+
!c && /* @__PURE__ */ M(me, { apps: r }),
|
|
761
|
+
/* @__PURE__ */ M(T, {
|
|
762
762
|
variant: "ghost",
|
|
763
763
|
size: "lg",
|
|
764
|
-
icon: /* @__PURE__ */
|
|
764
|
+
icon: /* @__PURE__ */ M(d, {}),
|
|
765
765
|
label: l("openPalette"),
|
|
766
766
|
onClick: a
|
|
767
767
|
}),
|
|
768
|
-
/* @__PURE__ */
|
|
768
|
+
/* @__PURE__ */ M(T, {
|
|
769
769
|
variant: "ghost",
|
|
770
770
|
size: "lg",
|
|
771
|
-
icon: /* @__PURE__ */
|
|
771
|
+
icon: /* @__PURE__ */ M(le, {}),
|
|
772
772
|
label: l("notifications"),
|
|
773
773
|
href: `/${e}/notifications`,
|
|
774
774
|
dot: i > 0
|
|
775
775
|
}),
|
|
776
|
-
/* @__PURE__ */
|
|
776
|
+
/* @__PURE__ */ M(T, {
|
|
777
777
|
variant: "ghost",
|
|
778
778
|
size: "lg",
|
|
779
|
-
icon: /* @__PURE__ */
|
|
779
|
+
icon: /* @__PURE__ */ M(u, {}),
|
|
780
780
|
label: l("newIssue"),
|
|
781
781
|
onClick: o
|
|
782
782
|
})
|
|
783
783
|
]
|
|
784
784
|
}) : null;
|
|
785
785
|
}
|
|
786
|
-
function
|
|
787
|
-
let o =
|
|
788
|
-
return /* @__PURE__ */ j
|
|
786
|
+
function st({ sidebar: e, brand: t, navigation: n, header: r, presence: i, children: a }) {
|
|
787
|
+
let o = L();
|
|
788
|
+
return /* @__PURE__ */ N(j, { children: [e && R(/* @__PURE__ */ N("div", {
|
|
789
789
|
className: "tandem-hosted-sidebar flex flex-col gap-3",
|
|
790
790
|
children: [
|
|
791
791
|
t?.(o),
|
|
792
792
|
n(o),
|
|
793
793
|
o.expanded && i
|
|
794
794
|
]
|
|
795
|
-
}), e), /* @__PURE__ */
|
|
795
|
+
}), e), /* @__PURE__ */ N("div", {
|
|
796
796
|
className: "flex h-full min-h-0 flex-col",
|
|
797
797
|
children: [r, a]
|
|
798
798
|
})] });
|
|
799
799
|
}
|
|
800
|
-
function
|
|
801
|
-
let { state: t } =
|
|
802
|
-
return /* @__PURE__ */ j
|
|
803
|
-
className:
|
|
800
|
+
function ct({ children: e }) {
|
|
801
|
+
let { state: t } = S(), n = t?.open && t.maximized;
|
|
802
|
+
return /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M("div", {
|
|
803
|
+
className: V("min-h-0 min-w-0 flex-1 overflow-y-auto bg-card", n && "hidden"),
|
|
804
804
|
children: e
|
|
805
|
-
}), /* @__PURE__ */
|
|
805
|
+
}), /* @__PURE__ */ M(Oe, {})] });
|
|
806
806
|
}
|
|
807
|
-
function
|
|
808
|
-
let { people: n, page: r } = Re(), { person: i } = g(t), a =
|
|
807
|
+
function lt({ myUsername: e, workspace: t }) {
|
|
808
|
+
let { people: n, page: r } = Re(), { person: i } = g(t), a = A("workspace"), o = new Set(n.map((e) => e.username).filter((t) => t !== e));
|
|
809
809
|
if (o.size === 0) return null;
|
|
810
810
|
let s = [...new Set(n.filter((t) => t.username !== e && t.page === r).map((e) => e.username))];
|
|
811
|
-
return /* @__PURE__ */
|
|
811
|
+
return /* @__PURE__ */ N("div", {
|
|
812
812
|
className: "flex items-center gap-2 px-2 pb-2 text-xs text-muted-foreground",
|
|
813
|
-
children: [s.length > 0 && /* @__PURE__ */
|
|
813
|
+
children: [s.length > 0 && /* @__PURE__ */ M(w, {
|
|
814
814
|
size: "xs",
|
|
815
815
|
max: 5,
|
|
816
816
|
showOverflow: !1,
|
|
817
817
|
ringColor: "var(--theme-sidebar-bg, var(--theme-muted-panel-bg))",
|
|
818
818
|
label: a("onThisPage", { count: s.length }),
|
|
819
|
-
children: s.map((e) => /* @__PURE__ */
|
|
819
|
+
children: s.map((e) => /* @__PURE__ */ M(ke, {
|
|
820
820
|
workspace: t,
|
|
821
821
|
handle: e,
|
|
822
|
-
children: /* @__PURE__ */
|
|
822
|
+
children: /* @__PURE__ */ M(He, {
|
|
823
823
|
name: i(e).name,
|
|
824
824
|
src: i(e).avatarUrl
|
|
825
825
|
})
|
|
826
826
|
}, e))
|
|
827
|
-
}), /* @__PURE__ */
|
|
827
|
+
}), /* @__PURE__ */ M("span", { children: s.length === 1 ? a("oneOnThisPage", {
|
|
828
828
|
name: i(s[0] ?? "").name,
|
|
829
829
|
count: o.size
|
|
830
830
|
}) : s.length > 1 ? a("othersOnThisPage", {
|
|
@@ -833,34 +833,34 @@ function dt({ myUsername: e, workspace: t }) {
|
|
|
833
833
|
}) : a("online", { count: o.size }) })]
|
|
834
834
|
});
|
|
835
835
|
}
|
|
836
|
-
function
|
|
837
|
-
let n =
|
|
838
|
-
return o.length === 0 ? c : /* @__PURE__ */ j
|
|
839
|
-
/* @__PURE__ */
|
|
836
|
+
function ut({ workspace: e, current: t }) {
|
|
837
|
+
let n = A("savedViews"), i = A("common"), a = Ke(), { views: o } = y(e), { menu: s, dialogs: c } = b(e);
|
|
838
|
+
return o.length === 0 ? c : /* @__PURE__ */ N(j, { children: [
|
|
839
|
+
/* @__PURE__ */ M("p", {
|
|
840
840
|
className: "mt-6 flex h-6 items-center px-2 text-xs font-medium text-muted-foreground",
|
|
841
841
|
children: n("title")
|
|
842
842
|
}),
|
|
843
|
-
/* @__PURE__ */
|
|
843
|
+
/* @__PURE__ */ M("nav", {
|
|
844
844
|
className: "mt-1 space-y-0.5",
|
|
845
845
|
"aria-label": n("title"),
|
|
846
|
-
children: o.map((o) => /* @__PURE__ */
|
|
847
|
-
className:
|
|
848
|
-
children: [/* @__PURE__ */
|
|
846
|
+
children: o.map((o) => /* @__PURE__ */ N("div", {
|
|
847
|
+
className: V(_, "group gap-0 pr-1 pl-0", p(o, t) && "bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] hover:bg-[var(--theme-sidebar-active-bg,var(--theme-hover))] !text-[var(--theme-sidebar-active-text,var(--theme-app))] font-medium"),
|
|
848
|
+
children: [/* @__PURE__ */ M(E, {
|
|
849
849
|
content: o.shared ? n("sharedBy", { owner: o.owner }) : n("onlyYou"),
|
|
850
850
|
side: "right",
|
|
851
851
|
describesAnchor: !0,
|
|
852
|
-
children: /* @__PURE__ */
|
|
852
|
+
children: /* @__PURE__ */ N(r, {
|
|
853
853
|
to: "/$workspace/issues",
|
|
854
854
|
params: { workspace: e },
|
|
855
855
|
search: Ce(o),
|
|
856
856
|
onContextMenu: (e) => a(e, s(o)),
|
|
857
857
|
className: "flex h-full min-w-0 flex-1 items-center gap-2.5 pl-2",
|
|
858
|
-
children: [o.shared ? /* @__PURE__ */
|
|
858
|
+
children: [o.shared ? /* @__PURE__ */ M(f, { className: "size-4" }) : /* @__PURE__ */ M(ce, { className: "size-4" }), /* @__PURE__ */ M("span", {
|
|
859
859
|
className: "truncate",
|
|
860
860
|
children: o.name
|
|
861
861
|
})]
|
|
862
862
|
})
|
|
863
|
-
}), /* @__PURE__ */
|
|
863
|
+
}), /* @__PURE__ */ M(tt, {
|
|
864
864
|
items: () => s(o),
|
|
865
865
|
label: i("moreActionsFor", { name: o.name })
|
|
866
866
|
})]
|
|
@@ -869,19 +869,19 @@ function ft({ workspace: e, current: t }) {
|
|
|
869
869
|
c
|
|
870
870
|
] });
|
|
871
871
|
}
|
|
872
|
-
var
|
|
873
|
-
function
|
|
872
|
+
var W = (e) => `tandem:collapsed-teams:${e}`;
|
|
873
|
+
function dt(e) {
|
|
874
874
|
try {
|
|
875
|
-
let t = JSON.parse(localStorage.getItem(
|
|
875
|
+
let t = JSON.parse(localStorage.getItem(W(e)) ?? "[]");
|
|
876
876
|
return new Set(Array.isArray(t) ? t.filter((e) => typeof e == "string") : []);
|
|
877
877
|
} catch {
|
|
878
878
|
return /* @__PURE__ */ new Set();
|
|
879
879
|
}
|
|
880
880
|
}
|
|
881
|
-
var
|
|
882
|
-
function
|
|
881
|
+
var G = "tandem:sidebar";
|
|
882
|
+
function ft() {
|
|
883
883
|
try {
|
|
884
|
-
let e = JSON.parse(localStorage.getItem(
|
|
884
|
+
let e = JSON.parse(localStorage.getItem(G) ?? "{}");
|
|
885
885
|
return {
|
|
886
886
|
expanded: e?.expanded !== !1,
|
|
887
887
|
width: typeof e?.width == "number" ? e.width : 240
|
|
@@ -893,21 +893,21 @@ function mt() {
|
|
|
893
893
|
};
|
|
894
894
|
}
|
|
895
895
|
}
|
|
896
|
-
function
|
|
896
|
+
function pt(e) {
|
|
897
897
|
try {
|
|
898
|
-
localStorage.setItem(
|
|
898
|
+
localStorage.setItem(G, JSON.stringify(e));
|
|
899
899
|
} catch {}
|
|
900
900
|
}
|
|
901
|
-
function
|
|
901
|
+
function mt(e, t) {
|
|
902
902
|
try {
|
|
903
|
-
localStorage.setItem(
|
|
903
|
+
localStorage.setItem(W(e), JSON.stringify([...t]));
|
|
904
904
|
} catch {}
|
|
905
905
|
}
|
|
906
|
-
function
|
|
906
|
+
function ht() {
|
|
907
907
|
return Array.from(document.querySelectorAll("[aria-keyshortcuts]")).some((e) => /\b(Meta|Control)\+F\b/.test(e.getAttribute("aria-keyshortcuts") ?? "") && e.getClientRects().length > 0);
|
|
908
908
|
}
|
|
909
|
-
function
|
|
910
|
-
return
|
|
909
|
+
function gt() {
|
|
910
|
+
return O(() => {
|
|
911
911
|
let t = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
912
912
|
try {
|
|
913
913
|
if (!t || sessionStorage.getItem("tandem:time-zone") === t) return;
|
|
@@ -916,4 +916,4 @@ function vt() {
|
|
|
916
916
|
e.PATCH("/api/v1/me", { body: { timeZone: t } }).catch(() => {});
|
|
917
917
|
}, []), null;
|
|
918
918
|
}
|
|
919
|
-
export {
|
|
919
|
+
export { H as component };
|