@burdenoff/microfe-vibecontrols 2026.601.20 → 2026.601.21
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/dist/components/notes/NoteCard.js +19 -10
- package/dist/components/notes/NoteCard.js.map +1 -1
- package/dist/components/notes/NoteList.js +37 -27
- package/dist/components/notes/NoteList.js.map +1 -1
- package/dist/components/notes/NotesTabPanel.js +125 -108
- package/dist/components/notes/NotesTabPanel.js.map +1 -1
- package/dist/components/sharing/NoteShareDialog.js +24 -0
- package/dist/components/sharing/NoteShareDialog.js.map +1 -0
- package/dist/components/sharing/SharedWithMePanel.js +24 -0
- package/dist/components/sharing/SharedWithMePanel.js.map +1 -0
- package/dist/components/sharing/VibeShareButton.js +42 -0
- package/dist/components/sharing/VibeShareButton.js.map +1 -0
- package/dist/components/sharing/index.js +6 -0
- package/dist/components/sharing/shareControllerTypes.js +36 -0
- package/dist/components/sharing/shareControllerTypes.js.map +1 -0
- package/dist/components/sharing/shareRegistry.js +58 -0
- package/dist/components/sharing/shareRegistry.js.map +1 -0
- package/dist/components/sharing/useNoteShareController.js +131 -0
- package/dist/components/sharing/useNoteShareController.js.map +1 -0
- package/dist/components/sharing/useVibeShareController.js +131 -0
- package/dist/components/sharing/useVibeShareController.js.map +1 -0
- package/dist/pages/VibeDetailsPage.js +437 -428
- package/dist/pages/VibeDetailsPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -12,50 +12,54 @@ import { VIBE_PERMISSIONS as c } from "../../constants/permissions.js";
|
|
|
12
12
|
import { NoteCard as de } from "./NoteCard.js";
|
|
13
13
|
import { NoteList as fe } from "./NoteList.js";
|
|
14
14
|
import { NoteEditor as pe } from "./NoteEditor.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
15
|
+
import { SHARE_REGISTRY as l } from "../sharing/shareRegistry.js";
|
|
16
|
+
import { NoteShareDialog as me } from "../sharing/NoteShareDialog.js";
|
|
17
|
+
import "../sharing/index.js";
|
|
18
|
+
import { useMemo as u, useState as d } from "react";
|
|
19
|
+
import { useI18n as he } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
20
|
+
import { FileText as ge, Globe as _e, Grid as ve, List as ye, Lock as be, Pin as xe, Plus as f, RefreshCw as Se } from "lucide-react";
|
|
21
|
+
import { useNavigate as Ce } from "react-router-dom";
|
|
22
|
+
import { useApolloClient as we } from "@apollo/client/react";
|
|
23
|
+
import { usePermissions as Te } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
24
|
+
import { AnimatePresence as Ee } from "framer-motion";
|
|
25
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
26
|
+
import { useFeatureFlag as De } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
27
|
+
import { AccessDenied as Oe, PermissionButton as ke } from "@burdenoff/fe-libs/shared/components";
|
|
28
|
+
import { MotionItem as Ae, MotionList as je } from "@burdenoff/fe-libs/shared/motion";
|
|
25
29
|
//#region src/components/notes/NotesTabPanel.tsx
|
|
26
|
-
function
|
|
27
|
-
let { t:
|
|
28
|
-
|
|
30
|
+
function h({ context: h, vibeId: g, agentVibes: _ = [] }) {
|
|
31
|
+
let { t: Me } = he(), Ne = Ce(), v = we(), { hasPermission: y, isLoading: b, permissions: Pe } = Te(), x = y(c.NOTE_LIST), Fe = y(c.NOTE_CREATE), Ie = De(l.note.featureFlag, l.note.defaultEnabled), Le = y(l.note.permission), Re = Ie && Le, [S, C] = d(null), [w, ze] = d(""), [T, Be] = d("all"), [E, Ve] = d("all"), [D, O] = d("all"), [k, He] = d(!1), [A, j] = d("grid"), [Ue, M] = d(!1), [We, N] = d(null), [Ge, P] = d(!1), F = (e) => {
|
|
32
|
+
v.cache.evict({
|
|
29
33
|
id: "ROOT_QUERY",
|
|
30
34
|
fieldName: "notes"
|
|
31
|
-
}),
|
|
32
|
-
}, [
|
|
35
|
+
}), v.cache.gc(), e();
|
|
36
|
+
}, [Ke] = ee({
|
|
33
37
|
refetchQueries: [e],
|
|
34
38
|
awaitRefetchQueries: !0
|
|
35
|
-
}), [
|
|
39
|
+
}), [qe] = re({
|
|
36
40
|
refetchQueries: [e],
|
|
37
41
|
awaitRefetchQueries: !0
|
|
38
|
-
}), [
|
|
42
|
+
}), [Je] = r({
|
|
39
43
|
refetchQueries: [e],
|
|
40
44
|
awaitRefetchQueries: !0
|
|
41
|
-
}), [
|
|
45
|
+
}), [Ye] = n({
|
|
42
46
|
refetchQueries: [e],
|
|
43
47
|
awaitRefetchQueries: !0
|
|
44
|
-
}), [
|
|
48
|
+
}), [Xe] = ie({
|
|
45
49
|
refetchQueries: [e],
|
|
46
50
|
awaitRefetchQueries: !0
|
|
47
51
|
}), [I] = te({
|
|
48
52
|
refetchQueries: [e],
|
|
49
53
|
awaitRefetchQueries: !0
|
|
50
|
-
}), [
|
|
54
|
+
}), [Ze] = ne({
|
|
51
55
|
refetchQueries: [e],
|
|
52
56
|
awaitRefetchQueries: !0
|
|
53
|
-
}), L =
|
|
57
|
+
}), L = b || !x, { data: R } = t({ skip: L }), { data: z, loading: B, error: V, refetch: H } = i({
|
|
54
58
|
variables: {
|
|
55
|
-
filter:
|
|
59
|
+
filter: u(() => {
|
|
56
60
|
let e = D === "all" ? void 0 : D;
|
|
57
|
-
return
|
|
58
|
-
vibeId:
|
|
61
|
+
return h === "vibe" && g ? {
|
|
62
|
+
vibeId: g,
|
|
59
63
|
isPinned: k ? !0 : void 0,
|
|
60
64
|
visibility: e
|
|
61
65
|
} : {
|
|
@@ -64,8 +68,8 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
64
68
|
visibility: e
|
|
65
69
|
};
|
|
66
70
|
}, [
|
|
71
|
+
h,
|
|
67
72
|
g,
|
|
68
|
-
_,
|
|
69
73
|
T,
|
|
70
74
|
k,
|
|
71
75
|
D
|
|
@@ -74,7 +78,7 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
74
78
|
},
|
|
75
79
|
fetchPolicy: "cache-and-network",
|
|
76
80
|
skip: L
|
|
77
|
-
}),
|
|
81
|
+
}), Qe = u(() => h === "agent" ? [
|
|
78
82
|
{
|
|
79
83
|
value: "all",
|
|
80
84
|
label: "All Vibes"
|
|
@@ -83,14 +87,14 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
83
87
|
value: "none",
|
|
84
88
|
label: "No Vibe (General)"
|
|
85
89
|
},
|
|
86
|
-
...
|
|
90
|
+
..._.map((e) => ({
|
|
87
91
|
value: e.id,
|
|
88
92
|
label: e.name
|
|
89
93
|
}))
|
|
90
|
-
] : [], [
|
|
94
|
+
] : [], [h, _]), U = u(() => {
|
|
91
95
|
let e = R?.availableNoteTags ?? [];
|
|
92
96
|
return new Map(e.map((e) => [e.id, e]));
|
|
93
|
-
}, [R?.availableNoteTags]), W =
|
|
97
|
+
}, [R?.availableNoteTags]), W = u(() => {
|
|
94
98
|
let e = (z?.notes?.items ?? []).map((e) => ({
|
|
95
99
|
id: e.id,
|
|
96
100
|
workspaceId: e.workspaceId,
|
|
@@ -132,23 +136,23 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
132
136
|
name: e.vibe.name
|
|
133
137
|
} : void 0
|
|
134
138
|
}));
|
|
135
|
-
if (
|
|
136
|
-
let t = new Set(
|
|
139
|
+
if (h === "agent" && _.length > 0) {
|
|
140
|
+
let t = new Set(_.map((e) => e.id));
|
|
137
141
|
return e.filter((e) => e.vibeId && t.has(e.vibeId));
|
|
138
142
|
}
|
|
139
143
|
return e;
|
|
140
144
|
}, [
|
|
141
145
|
z?.notes?.items,
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
h,
|
|
147
|
+
_,
|
|
144
148
|
U
|
|
145
|
-
]),
|
|
149
|
+
]), $e = u(() => [{
|
|
146
150
|
value: "all",
|
|
147
151
|
label: "All Tags"
|
|
148
152
|
}, ...(R?.availableNoteTags ?? []).map((e) => ({
|
|
149
153
|
value: e.id,
|
|
150
154
|
label: e.label
|
|
151
|
-
}))], [R?.availableNoteTags]), G =
|
|
155
|
+
}))], [R?.availableNoteTags]), G = u(() => W.filter((e) => {
|
|
152
156
|
if (w) {
|
|
153
157
|
let t = w.toLowerCase();
|
|
154
158
|
if (!(e.title.toLowerCase().includes(t) || e.content.toLowerCase().includes(t) || e.tagAssignments?.some((e) => e.tag?.label?.toLowerCase().includes(t)))) return !1;
|
|
@@ -158,32 +162,32 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
158
162
|
W,
|
|
159
163
|
w,
|
|
160
164
|
E
|
|
161
|
-
]), K =
|
|
165
|
+
]), K = u(() => [...G].sort((e, t) => e.isPinned && !t.isPinned ? -1 : !e.isPinned && t.isPinned ? 1 : new Date(t.updatedAt).getTime() - new Date(e.updatedAt).getTime()), [G]), q = (e) => {
|
|
162
166
|
N(e), M(!0);
|
|
163
167
|
}, J = () => {
|
|
164
168
|
N(null), M(!0);
|
|
165
169
|
}, Y = async (e) => {
|
|
166
170
|
try {
|
|
167
|
-
e.isPinned ? await
|
|
171
|
+
e.isPinned ? await qe({ variables: { id: e.id } }) : await Ke({ variables: { id: e.id } }), F(H);
|
|
168
172
|
} catch (e) {
|
|
169
173
|
console.error("Failed to toggle pin for note:", e);
|
|
170
174
|
}
|
|
171
175
|
}, X = async (e) => {
|
|
172
176
|
try {
|
|
173
|
-
await
|
|
177
|
+
await Je({ variables: { id: e.id } }), F(H);
|
|
174
178
|
} catch (e) {
|
|
175
179
|
console.error("Failed to delete note:", e);
|
|
176
180
|
}
|
|
177
|
-
},
|
|
181
|
+
}, et = async (e) => {
|
|
178
182
|
let t = () => {
|
|
179
183
|
M(!1), N(null), oe(), P(!0);
|
|
180
184
|
};
|
|
181
185
|
try {
|
|
182
|
-
let n, r =
|
|
186
|
+
let n, r = h === "vibe" ? g : e.vibeId;
|
|
183
187
|
if (e.id) {
|
|
184
188
|
let r;
|
|
185
189
|
try {
|
|
186
|
-
r = await
|
|
190
|
+
r = await Xe({ variables: {
|
|
187
191
|
id: e.id,
|
|
188
192
|
input: {
|
|
189
193
|
title: e.title,
|
|
@@ -202,7 +206,7 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
202
206
|
} else {
|
|
203
207
|
let i;
|
|
204
208
|
try {
|
|
205
|
-
i = await
|
|
209
|
+
i = await Ye({ variables: { input: {
|
|
206
210
|
title: e.title || "",
|
|
207
211
|
content: e.content || "",
|
|
208
212
|
vibeId: r,
|
|
@@ -227,41 +231,41 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
227
231
|
} catch (e) {
|
|
228
232
|
console.error("Failed to save note:", e);
|
|
229
233
|
}
|
|
230
|
-
},
|
|
234
|
+
}, tt = async (e) => {
|
|
231
235
|
let t = e.visibility === "PRIVATE" ? o.Workspace : o.Private;
|
|
232
236
|
try {
|
|
233
|
-
await
|
|
237
|
+
await Ze({ variables: {
|
|
234
238
|
id: e.id,
|
|
235
239
|
visibility: t
|
|
236
240
|
} }), F(H);
|
|
237
241
|
} catch (e) {
|
|
238
242
|
console.error("Failed to toggle note visibility:", e);
|
|
239
243
|
}
|
|
240
|
-
}, Q = {
|
|
244
|
+
}, Z = Re ? (e) => C(e) : void 0, Q = {
|
|
241
245
|
total: W.length,
|
|
242
246
|
pinned: W.filter((e) => e.isPinned).length
|
|
243
|
-
},
|
|
244
|
-
if (!
|
|
247
|
+
}, nt = u(() => h === "vibe" ? [] : _, [h, _]);
|
|
248
|
+
if (!b && Pe && !x) return /* @__PURE__ */ p(Oe, {
|
|
245
249
|
title: "Access Denied",
|
|
246
250
|
description: "You don't have permission to view notes.",
|
|
247
251
|
details: "Required permission: note:list"
|
|
248
252
|
});
|
|
249
|
-
if (B && W.length === 0) return /* @__PURE__ */
|
|
250
|
-
if (V && W.length === 0) return /* @__PURE__ */
|
|
253
|
+
if (B && W.length === 0) return /* @__PURE__ */ p(se, { message: "Loading notes..." });
|
|
254
|
+
if (V && W.length === 0) return /* @__PURE__ */ p(ce, {
|
|
251
255
|
title: "Failed to load notes",
|
|
252
256
|
message: V.message,
|
|
253
257
|
onRetry: () => H()
|
|
254
258
|
});
|
|
255
|
-
let $ = w ||
|
|
256
|
-
return /* @__PURE__ */
|
|
259
|
+
let $ = w || h === "agent" && T !== "all" || E !== "all" || k;
|
|
260
|
+
return /* @__PURE__ */ m("div", {
|
|
257
261
|
className: "space-y-4",
|
|
258
262
|
children: [
|
|
259
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ m("div", {
|
|
260
264
|
className: "flex items-center justify-between",
|
|
261
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h3", {
|
|
262
266
|
className: "text-lg font-semibold text-text-primary",
|
|
263
267
|
children: "Notes"
|
|
264
|
-
}), /* @__PURE__ */
|
|
268
|
+
}), /* @__PURE__ */ m("p", {
|
|
265
269
|
className: "text-sm text-text-secondary",
|
|
266
270
|
children: [
|
|
267
271
|
Q.total,
|
|
@@ -271,107 +275,107 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
271
275
|
Q.pinned,
|
|
272
276
|
" pinned"
|
|
273
277
|
]
|
|
274
|
-
})] }), /* @__PURE__ */
|
|
278
|
+
})] }), /* @__PURE__ */ m("div", {
|
|
275
279
|
className: "flex items-center gap-2",
|
|
276
|
-
children: [/* @__PURE__ */
|
|
280
|
+
children: [/* @__PURE__ */ p("button", {
|
|
277
281
|
type: "button",
|
|
278
282
|
onClick: () => H(),
|
|
279
283
|
disabled: B,
|
|
280
284
|
className: "flex items-center gap-2 px-3 py-2 text-text-secondary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
|
|
281
285
|
title: "Refresh notes",
|
|
282
|
-
children: /* @__PURE__ */
|
|
283
|
-
}), /* @__PURE__ */
|
|
286
|
+
children: /* @__PURE__ */ p(Se, { className: `size-4 ${B ? "animate-spin" : ""}` })
|
|
287
|
+
}), /* @__PURE__ */ p(ke, {
|
|
284
288
|
permission: c.NOTE_CREATE,
|
|
285
|
-
children: /* @__PURE__ */
|
|
289
|
+
children: /* @__PURE__ */ m("button", {
|
|
286
290
|
type: "button",
|
|
287
291
|
onClick: J,
|
|
288
292
|
className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
|
|
289
|
-
children: [/* @__PURE__ */
|
|
293
|
+
children: [/* @__PURE__ */ p(f, { className: "size-4" }), "New Note"]
|
|
290
294
|
})
|
|
291
295
|
})]
|
|
292
296
|
})]
|
|
293
297
|
}),
|
|
294
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ m("div", {
|
|
295
299
|
className: "space-y-3",
|
|
296
|
-
children: [/* @__PURE__ */
|
|
300
|
+
children: [/* @__PURE__ */ m("div", {
|
|
297
301
|
className: "flex items-center gap-2",
|
|
298
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ p(ue, {
|
|
299
303
|
value: w,
|
|
300
|
-
onChange:
|
|
304
|
+
onChange: ze,
|
|
301
305
|
placeholder: "Search notes...",
|
|
302
306
|
className: "flex-1 sm:w-64 sm:flex-none"
|
|
303
|
-
}), /* @__PURE__ */
|
|
307
|
+
}), /* @__PURE__ */ m("div", {
|
|
304
308
|
className: "flex items-center gap-1 bg-bg-sunken rounded-md p-1 flex-shrink-0",
|
|
305
|
-
children: [/* @__PURE__ */
|
|
309
|
+
children: [/* @__PURE__ */ p("button", {
|
|
306
310
|
type: "button",
|
|
307
311
|
onClick: () => j("grid"),
|
|
308
312
|
className: `p-1.5 sm:p-2 rounded ${A === "grid" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
|
|
309
313
|
title: "Grid view",
|
|
310
|
-
children: /* @__PURE__ */
|
|
311
|
-
}), /* @__PURE__ */
|
|
314
|
+
children: /* @__PURE__ */ p(ve, { className: "size-4 text-text-secondary" })
|
|
315
|
+
}), /* @__PURE__ */ p("button", {
|
|
312
316
|
type: "button",
|
|
313
317
|
onClick: () => j("list"),
|
|
314
318
|
className: `p-1.5 sm:p-2 rounded ${A === "list" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
|
|
315
319
|
title: "List view",
|
|
316
|
-
children: /* @__PURE__ */
|
|
320
|
+
children: /* @__PURE__ */ p(ye, { className: "size-4 text-text-secondary" })
|
|
317
321
|
})]
|
|
318
322
|
})]
|
|
319
|
-
}), /* @__PURE__ */
|
|
323
|
+
}), /* @__PURE__ */ m("div", {
|
|
320
324
|
className: "flex items-center gap-2 sm:gap-3 flex-wrap",
|
|
321
325
|
children: [
|
|
322
|
-
|
|
326
|
+
h === "agent" && /* @__PURE__ */ p(s, {
|
|
323
327
|
label: "Vibe",
|
|
324
328
|
value: T,
|
|
325
|
-
options:
|
|
326
|
-
onChange:
|
|
329
|
+
options: Qe,
|
|
330
|
+
onChange: Be
|
|
327
331
|
}),
|
|
328
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ p(s, {
|
|
329
333
|
label: "Tag",
|
|
330
334
|
value: E,
|
|
331
|
-
options:
|
|
332
|
-
onChange:
|
|
335
|
+
options: $e,
|
|
336
|
+
onChange: Ve
|
|
333
337
|
}),
|
|
334
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ m("div", {
|
|
335
339
|
className: "flex items-center gap-1 bg-bg-sunken rounded-md p-0.5",
|
|
336
340
|
children: [
|
|
337
|
-
/* @__PURE__ */
|
|
341
|
+
/* @__PURE__ */ p("button", {
|
|
338
342
|
type: "button",
|
|
339
343
|
onClick: () => O("all"),
|
|
340
344
|
className: `px-2.5 py-1 text-xs rounded transition-colors ${D === "all" ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-muted hover:text-text-secondary"}`,
|
|
341
345
|
children: "All"
|
|
342
346
|
}),
|
|
343
|
-
/* @__PURE__ */
|
|
347
|
+
/* @__PURE__ */ m("button", {
|
|
344
348
|
type: "button",
|
|
345
349
|
onClick: () => O("WORKSPACE"),
|
|
346
350
|
className: `flex items-center gap-1 px-2.5 py-1 text-xs rounded transition-colors ${D === "WORKSPACE" ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-muted hover:text-text-secondary"}`,
|
|
347
|
-
children: [/* @__PURE__ */
|
|
351
|
+
children: [/* @__PURE__ */ p(_e, { className: "size-3" }), "Shared"]
|
|
348
352
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
353
|
+
/* @__PURE__ */ m("button", {
|
|
350
354
|
type: "button",
|
|
351
355
|
onClick: () => O("PRIVATE"),
|
|
352
356
|
className: `flex items-center gap-1 px-2.5 py-1 text-xs rounded transition-colors ${D === "PRIVATE" ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-muted hover:text-text-secondary"}`,
|
|
353
|
-
children: [/* @__PURE__ */
|
|
357
|
+
children: [/* @__PURE__ */ p(be, { className: "size-3" }), "Private"]
|
|
354
358
|
})
|
|
355
359
|
]
|
|
356
360
|
})
|
|
357
361
|
]
|
|
358
362
|
})]
|
|
359
363
|
}),
|
|
360
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ p("div", {
|
|
361
365
|
className: "flex items-center gap-2",
|
|
362
|
-
children: /* @__PURE__ */
|
|
366
|
+
children: /* @__PURE__ */ m("button", {
|
|
363
367
|
type: "button",
|
|
364
|
-
onClick: () =>
|
|
368
|
+
onClick: () => He(!k),
|
|
365
369
|
className: `flex items-center gap-2 px-3 py-1.5 text-sm rounded-full transition-colors ${k ? "bg-status-warning-bg text-status-warning-text" : "bg-bg-sunken text-text-secondary hover:bg-bg-sunken/80"}`,
|
|
366
370
|
children: [
|
|
367
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ p(xe, { className: "size-3" }),
|
|
368
372
|
"Pinned (",
|
|
369
373
|
Q.pinned,
|
|
370
374
|
")"
|
|
371
375
|
]
|
|
372
376
|
})
|
|
373
377
|
}),
|
|
374
|
-
$ ? /* @__PURE__ */
|
|
378
|
+
$ ? /* @__PURE__ */ m("p", {
|
|
375
379
|
className: "text-sm text-text-secondary",
|
|
376
380
|
children: [
|
|
377
381
|
"Showing ",
|
|
@@ -379,67 +383,80 @@ function g({ context: g, vibeId: _, agentVibes: v = [] }) {
|
|
|
379
383
|
" of ",
|
|
380
384
|
W.length,
|
|
381
385
|
" notes",
|
|
382
|
-
B && /* @__PURE__ */
|
|
386
|
+
B && /* @__PURE__ */ p("span", {
|
|
383
387
|
className: "ml-2 text-text-muted",
|
|
384
388
|
children: "(refreshing…)"
|
|
385
389
|
})
|
|
386
390
|
]
|
|
387
391
|
}) : null,
|
|
388
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ p(Ee, {
|
|
389
393
|
mode: "wait",
|
|
390
|
-
children: K.length > 0 ? A === "grid" ? /* @__PURE__ */
|
|
394
|
+
children: K.length > 0 ? A === "grid" ? /* @__PURE__ */ p(je, {
|
|
391
395
|
stagger: .04,
|
|
392
396
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
393
|
-
children: K.map((e) => /* @__PURE__ */
|
|
397
|
+
children: K.map((e) => /* @__PURE__ */ p(Ae, { children: /* @__PURE__ */ p(de, {
|
|
394
398
|
note: e,
|
|
395
399
|
onOpen: q,
|
|
396
400
|
onEdit: q,
|
|
397
401
|
onPin: Y,
|
|
398
402
|
onUnpin: Y,
|
|
399
403
|
onDelete: X,
|
|
400
|
-
onShare:
|
|
404
|
+
onShare: tt,
|
|
405
|
+
onShareAccess: Z
|
|
401
406
|
}) }, e.id))
|
|
402
|
-
}, "grid") : /* @__PURE__ */
|
|
407
|
+
}, "grid") : /* @__PURE__ */ p(fe, {
|
|
403
408
|
notes: K,
|
|
404
409
|
onOpen: q,
|
|
405
410
|
onEdit: q,
|
|
406
411
|
onPin: Y,
|
|
407
412
|
onUnpin: Y,
|
|
408
413
|
onDelete: X,
|
|
409
|
-
onShare:
|
|
410
|
-
|
|
411
|
-
|
|
414
|
+
onShare: tt,
|
|
415
|
+
onShareAccess: Z
|
|
416
|
+
}, "list") : /* @__PURE__ */ p(le, {
|
|
417
|
+
icon: /* @__PURE__ */ p(ge, { className: "size-8 text-text-secondary" }),
|
|
412
418
|
title: $ ? "No notes found" : "No notes yet",
|
|
413
419
|
description: $ ? "Try adjusting your search or filters" : "Create your first note to start documenting your work",
|
|
414
|
-
action: !$ &&
|
|
420
|
+
action: !$ && Fe ? /* @__PURE__ */ m("button", {
|
|
415
421
|
type: "button",
|
|
416
422
|
onClick: J,
|
|
417
423
|
className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
|
|
418
|
-
children: [/* @__PURE__ */
|
|
424
|
+
children: [/* @__PURE__ */ p(f, { className: "size-4" }), "New Note"]
|
|
419
425
|
}) : void 0
|
|
420
426
|
})
|
|
421
427
|
}),
|
|
422
|
-
|
|
423
|
-
note:
|
|
424
|
-
vibeOptions:
|
|
425
|
-
defaultVibeId:
|
|
426
|
-
hideVibeSelect:
|
|
427
|
-
onSubmit:
|
|
428
|
+
Ue && /* @__PURE__ */ p(pe, {
|
|
429
|
+
note: We || void 0,
|
|
430
|
+
vibeOptions: nt,
|
|
431
|
+
defaultVibeId: h === "vibe" ? g : void 0,
|
|
432
|
+
hideVibeSelect: h === "vibe",
|
|
433
|
+
onSubmit: et,
|
|
428
434
|
onCancel: () => M(!1)
|
|
429
435
|
}),
|
|
430
|
-
/* @__PURE__ */
|
|
431
|
-
isOpen:
|
|
436
|
+
/* @__PURE__ */ p(ae, {
|
|
437
|
+
isOpen: Ge,
|
|
432
438
|
onClose: () => P(!1),
|
|
433
439
|
onConfirm: () => {
|
|
434
|
-
P(!1),
|
|
440
|
+
P(!1), Ne("/billing/plans");
|
|
435
441
|
},
|
|
436
442
|
title: "Note Quota Reached",
|
|
437
443
|
message: "You've used all available note quota on your current plan. Upgrade your plan to create or update more notes."
|
|
444
|
+
}),
|
|
445
|
+
S && /* @__PURE__ */ p(me, {
|
|
446
|
+
note: {
|
|
447
|
+
id: S.id,
|
|
448
|
+
title: S.title,
|
|
449
|
+
vibeId: S.vibeId
|
|
450
|
+
},
|
|
451
|
+
open: !!S,
|
|
452
|
+
onOpenChange: (e) => {
|
|
453
|
+
e || C(null);
|
|
454
|
+
}
|
|
438
455
|
})
|
|
439
456
|
]
|
|
440
457
|
});
|
|
441
458
|
}
|
|
442
459
|
//#endregion
|
|
443
|
-
export {
|
|
460
|
+
export { h as NotesTabPanel };
|
|
444
461
|
|
|
445
462
|
//# sourceMappingURL=NotesTabPanel.js.map
|