@burdenoff/microfe-vibecontrols 2026.522.7 → 2026.522.8

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.
@@ -56,42 +56,15 @@ function h() {
56
56
  value: "ERROR",
57
57
  label: x("vibesPage.statusError", "Error")
58
58
  }
59
- ], ze = [
60
- {
61
- value: "all",
62
- label: x("vibesPage.typeAll", "All Types")
63
- },
64
- {
65
- value: "PROJECT",
66
- label: x("vibesPage.typeProject", "Project")
67
- },
68
- {
69
- value: "REPOSITORY",
70
- label: x("vibesPage.typeRepository", "Repository")
71
- },
72
- {
73
- value: "WORKSPACE",
74
- label: x("vibesPage.typeWorkspace", "Workspace")
75
- },
76
- {
77
- value: "MONOREPO",
78
- label: x("vibesPage.typeMonorepo", "Monorepo")
79
- },
80
- {
81
- value: "PACKAGE",
82
- label: x("vibesPage.typePackage", "Package")
83
- },
84
- {
85
- value: "CUSTOM",
86
- label: x("vibesPage.typeCustom", "Custom")
87
- }
88
- ], S = _(s.VIBE_LIST), C = _(s.VIBE_UPDATE), w = v || !S, [T, Be] = d(""), [E, Ve] = d("all"), [D, He] = d("all"), [O, Ue] = d("all"), [k, We] = d("grid"), [Ge, A] = d(!1), [Ke, j] = d(null), [M, qe] = d(!1), [Je, N] = d(null), [Ye, P] = d(!1), [F, I] = d({}), [Xe, L] = d(null), [R, z] = d(/* @__PURE__ */ new Set()), [Ze, B] = d(null), V = u(null);
59
+ ];
60
+ x("vibesPage.typeAll", "All Types"), x("vibesPage.typeProject", "Project"), x("vibesPage.typeRepository", "Repository"), x("vibesPage.typeWorkspace", "Workspace"), x("vibesPage.typeMonorepo", "Monorepo"), x("vibesPage.typePackage", "Package"), x("vibesPage.typeCustom", "Custom");
61
+ let S = _(s.VIBE_LIST), C = _(s.VIBE_UPDATE), w = v || !S, [T, ze] = d(""), [E, Be] = d("all"), [D, Ve] = d("all"), [O, He] = d("all"), [k, Ue] = d("grid"), [We, A] = d(!1), [j, M] = d(null), [N, Ge] = d(!1), [Ke, P] = d(null), [qe, F] = d(!1), [I, L] = d({}), [Je, R] = d(null), [z, B] = d(/* @__PURE__ */ new Set()), [Ye, V] = d(null), H = u(null);
89
62
  xe(() => () => {
90
- V.current && clearTimeout(V.current);
63
+ H.current && clearTimeout(H.current);
91
64
  }, []);
92
- let Qe = c(() => {
93
- L(null), V.current &&= (clearTimeout(V.current), null);
94
- }, []), $e = u(null), et = u(null), tt = u(null), nt = u(null), [rt] = t(), { setDraftTagIds: it, flushTags: at } = ue("VIBECONTROLS_VIBE"), [ot] = i(), [st] = e(), { data: ct, loading: H, error: lt, refetch: U } = r({
65
+ let Xe = c(() => {
66
+ R(null), H.current &&= (clearTimeout(H.current), null);
67
+ }, []), Ze = u(null), Qe = u(null), $e = u(null), et = u(null), [tt] = t(), { setDraftTagIds: nt, flushTags: rt } = ue("VIBECONTROLS_VIBE"), [it] = i(), [at] = e(), { data: ot, loading: U, error: st, refetch: W } = r({
95
68
  variables: l(() => ({ filter: {
96
69
  status: E === "all" ? void 0 : E,
97
70
  type: D === "all" ? void 0 : D,
@@ -105,13 +78,13 @@ function h() {
105
78
  nextFetchPolicy: "cache-first",
106
79
  skip: w,
107
80
  notifyOnNetworkStatusChange: !0
108
- }), { agents: ut } = re(), [dt, { data: ft }] = n({ fetchPolicy: "cache-first" }), pt = u(!1), W = c(() => {
109
- pt.current || w || (pt.current = !0, dt({ variables: { pagination: { limit: 100 } } }));
110
- }, [dt, w]), mt = l(() => {
111
- let e = ft?.vibecontrolsAgents ?? null, t = e ? e.map((e) => ({
81
+ }), { agents: ct } = re(), [lt, { data: ut }] = n({ fetchPolicy: "cache-first" }), dt = u(!1), G = c(() => {
82
+ dt.current || w || (dt.current = !0, lt({ variables: { pagination: { limit: 100 } } }));
83
+ }, [lt, w]), ft = l(() => {
84
+ let e = ut?.vibecontrolsAgents ?? null, t = e ? e.map((e) => ({
112
85
  id: e.id,
113
86
  name: e.name
114
- })) : ut.map((e) => ({
87
+ })) : ct.map((e) => ({
115
88
  id: e.id,
116
89
  name: e.name
117
90
  }));
@@ -123,10 +96,10 @@ function h() {
123
96
  label: e.name
124
97
  }))];
125
98
  }, [
126
- ft?.vibecontrolsAgents,
127
- ut,
99
+ ut?.vibecontrolsAgents,
100
+ ct,
128
101
  x
129
- ]), G = l(() => (ct?.vibes?.items ?? []).map((e) => ({
102
+ ]), K = l(() => (ot?.vibes?.items ?? []).map((e) => ({
130
103
  id: e.id,
131
104
  workspaceId: e.workspaceId,
132
105
  name: e.name,
@@ -149,17 +122,17 @@ function h() {
149
122
  isActive: e.isActive,
150
123
  ownerUserId: e.ownerUserId ?? null
151
124
  }))
152
- })), [ct?.vibes?.items]), K = l(() => G.filter((e) => {
125
+ })), [ot?.vibes?.items]), q = l(() => K.filter((e) => {
153
126
  if (T) {
154
127
  let t = T.toLowerCase();
155
128
  if (!(e.name.toLowerCase().includes(t) || e.description?.toLowerCase().includes(t) || e.path?.toLowerCase().includes(t) || e.tags?.some((e) => e.toLowerCase().includes(t)))) return !1;
156
129
  }
157
130
  return !0;
158
- }), [G, T]), ht = l(() => G.filter((e) => R.has(e.id)), [G, R]), q = ht.filter((e) => e.status !== "ACTIVE"), J = ht.filter((e) => e.status !== "ARCHIVED"), Y = K.length > 0 && K.every((e) => R.has(e.id)), gt = K.some((e) => R.has(e.id)) && !Y, _t = (e) => {
131
+ }), [K, T]), pt = l(() => K.filter((e) => z.has(e.id)), [K, z]), J = pt.filter((e) => e.status !== "ACTIVE"), Y = pt.filter((e) => e.status !== "ARCHIVED"), X = q.length > 0 && q.every((e) => z.has(e.id)), mt = q.some((e) => z.has(e.id)) && !X, ht = (e) => {
159
132
  g(`/vibes/${e.id}`);
160
- }, vt = async (e) => {
133
+ }, gt = async (e) => {
161
134
  try {
162
- (await ot({ variables: {
135
+ (await it({ variables: {
163
136
  id: e.id,
164
137
  status: "ACTIVE"
165
138
  } })).data?.updateVibeStatus && h?.({
@@ -171,55 +144,55 @@ function h() {
171
144
  } catch (e) {
172
145
  console.error("Failed to activate vibe:", e);
173
146
  }
174
- }, yt = async (e) => {
147
+ }, _t = async (e) => {
175
148
  try {
176
- await st({ variables: { id: e.id } });
149
+ await at({ variables: { id: e.id } });
177
150
  } catch (e) {
178
151
  console.error("Failed to archive vibe:", e);
179
152
  }
180
- }, bt = ne((e) => e.preferredIdeCommand), xt = ne((e) => e.vibeIdeOverrides), St = (e) => {
153
+ }, vt = ne((e) => e.preferredIdeCommand), yt = ne((e) => e.vibeIdeOverrides), bt = (e) => {
181
154
  if (!e.path) {
182
- L(x("vibesPage.openEditorPathMissing", "No path available to open in editor")), V.current = setTimeout(() => {
183
- L(null), V.current = null;
155
+ R(x("vibesPage.openEditorPathMissing", "No path available to open in editor")), H.current = setTimeout(() => {
156
+ R(null), H.current = null;
184
157
  }, 3e3);
185
158
  return;
186
159
  }
187
- let t = ve(e.id, bt, xt), n = _e(t), r = n ? ge(n, e.path) : `vscode://file/${e.path}`;
188
- r ? window.location.href = r : (L(x("vibesPage.openEditorNoProtocol", `${n?.label ?? t} has no URL handler — open this Vibe and use the editor menu.`)), V.current = setTimeout(() => {
189
- L(null), V.current = null;
160
+ let t = ve(e.id, vt, yt), n = _e(t), r = n ? ge(n, e.path) : `vscode://file/${e.path}`;
161
+ r ? window.location.href = r : (R(x("vibesPage.openEditorNoProtocol", `${n?.label ?? t} has no URL handler — open this Vibe and use the editor menu.`)), H.current = setTimeout(() => {
162
+ R(null), H.current = null;
190
163
  }, 4e3));
191
- }, X = () => {
192
- j(null), A(!0), W();
193
- }, Ct = (e, t) => {
194
- z((n) => {
164
+ }, xt = () => {
165
+ M(null), A(!0), G();
166
+ }, St = (e, t) => {
167
+ B((n) => {
195
168
  let r = new Set(n);
196
169
  return t ? r.add(e.id) : r.delete(e.id), r;
197
170
  });
198
- }, wt = (e) => {
199
- z((t) => {
171
+ }, Ct = (e) => {
172
+ B((t) => {
200
173
  let n = new Set(t);
201
- return K.forEach((t) => {
174
+ return q.forEach((t) => {
202
175
  e ? n.add(t.id) : n.delete(t.id);
203
176
  }), n;
204
177
  });
205
- }, Z = () => z(/* @__PURE__ */ new Set()), Tt = async () => {
206
- if (q.length === 0) return;
207
- let e = await Promise.allSettled(q.map((e) => ot({ variables: {
178
+ }, Z = () => B(/* @__PURE__ */ new Set()), wt = async () => {
179
+ if (J.length === 0) return;
180
+ let e = await Promise.allSettled(J.map((e) => it({ variables: {
208
181
  id: e.id,
209
182
  status: "ACTIVE"
210
183
  } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
211
- N(`Activated ${t} vibe${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), setTimeout(() => N(null), 4e3), Z(), B(null), await U();
184
+ P(`Activated ${t} vibe${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), setTimeout(() => P(null), 4e3), Z(), V(null), await W();
185
+ }, Tt = async () => {
186
+ if (Y.length === 0) return;
187
+ let e = await Promise.allSettled(Y.map((e) => at({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
188
+ P(`Archived ${t} vibe${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), setTimeout(() => P(null), 4e3), Z(), V(null), await W();
212
189
  }, Et = async () => {
213
- if (J.length === 0) return;
214
- let e = await Promise.allSettled(J.map((e) => st({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
215
- N(`Archived ${t} vibe${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), setTimeout(() => N(null), 4e3), Z(), B(null), await U();
216
- }, Dt = async () => {
217
- let e = $e.current?.value?.trim(), t = et.current?.value?.trim(), n = tt.current?.value, r = nt.current?.value, i = {};
190
+ let e = Ze.current?.value?.trim(), t = Qe.current?.value?.trim(), n = $e.current?.value, r = et.current?.value, i = {};
218
191
  if (e || (i.name = x("vibesPage.nameRequired", "Name is required")), t || (i.path = x("vibesPage.pathRequired", "Path is required")), i.name || i.path) {
219
- I(i), j(x("vibesPage.fillRequired", "Please fill in all required fields"));
192
+ L(i), M(x("vibesPage.fillRequired", "Please fill in all required fields"));
220
193
  return;
221
194
  }
222
- I({});
195
+ L({});
223
196
  let ee = [
224
197
  "PROJECT",
225
198
  "REPOSITORY",
@@ -228,9 +201,9 @@ function h() {
228
201
  "PACKAGE",
229
202
  "CUSTOM"
230
203
  ].includes(r) ? r : "PROJECT";
231
- qe(!0), j(null);
204
+ Ge(!0), M(null);
232
205
  try {
233
- let r = await rt({ variables: { input: {
206
+ let r = await tt({ variables: { input: {
234
207
  name: e,
235
208
  path: t,
236
209
  type: ee,
@@ -238,21 +211,21 @@ function h() {
238
211
  } } });
239
212
  if (!r.data?.createVibe?.id) throw Error(x("vibesPage.failedCreate", "Failed to create vibe"));
240
213
  let i = r.data.createVibe.id;
241
- A(!1), N(x("vibesPage.createdSuccess", "Vibe created successfully")), await at(i), await U(), setTimeout(() => N(null), 3e3);
214
+ A(!1), P(x("vibesPage.createdSuccess", "Vibe created successfully")), await rt(i), await W(), setTimeout(() => P(null), 3e3);
242
215
  } catch (e) {
243
216
  if (ce(e)) {
244
- A(!1), j(null), I({}), P(!0);
217
+ A(!1), M(null), L({}), F(!0);
245
218
  return;
246
219
  }
247
- j(e instanceof Error ? e.message : x("vibesPage.failedCreate", "Failed to create vibe"));
220
+ M(e instanceof Error ? e.message : x("vibesPage.failedCreate", "Failed to create vibe"));
248
221
  } finally {
249
- qe(!1);
222
+ Ge(!1);
250
223
  }
251
- }, Ot = {
252
- total: G.length,
253
- active: G.filter((e) => e.status === "ACTIVE").length,
254
- inactive: G.filter((e) => e.status === "INACTIVE").length
255
- }, Q = v, $ = !v && !!y && (y.permissionStrings?.length ?? 0) > 0 && !S, kt = !Q && !$ && H && G.length === 0, At = !Q && !$ && !!lt && G.length === 0, jt = !Q && !$ && !At;
224
+ }, Dt = {
225
+ total: K.length,
226
+ active: K.filter((e) => e.status === "ACTIVE").length,
227
+ inactive: K.filter((e) => e.status === "INACTIVE").length
228
+ }, Q = v, $ = !v && !!y && (y.permissionStrings?.length ?? 0) > 0 && !S, Ot = !Q && !$ && U && K.length === 0, kt = !Q && !$ && !!st && K.length === 0, At = !Q && !$ && !kt;
256
229
  return /* @__PURE__ */ p(Pe, {
257
230
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
258
231
  children: [
@@ -261,32 +234,32 @@ function h() {
261
234
  title: x("vibesPage.accessDeniedTitle", "Access Denied"),
262
235
  description: x("vibesPage.accessDeniedDescription", "You don't have permission to view vibes. Contact your workspace administrator for access.")
263
236
  }),
264
- At && /* @__PURE__ */ f(oe, {
237
+ kt && /* @__PURE__ */ f(oe, {
265
238
  title: x("vibesPage.failedLoad", "Failed to load vibes"),
266
- message: lt?.message ?? "",
267
- onRetry: () => U()
239
+ message: st?.message ?? "",
240
+ onRetry: () => W()
268
241
  }),
269
- jt && /* @__PURE__ */ p(Me, { children: [
242
+ At && /* @__PURE__ */ p(Me, { children: [
270
243
  /* @__PURE__ */ f(ie, {
271
244
  title: x("vibesPage.title", "Vibes"),
272
245
  description: x("vibesPage.descriptionActive", "{{active}} of {{total}} vibes active", {
273
- active: Ot.active,
274
- total: Ot.total
246
+ active: Dt.active,
247
+ total: Dt.total
275
248
  }),
276
249
  actions: /* @__PURE__ */ p("div", {
277
250
  className: "flex items-center gap-2",
278
251
  children: [/* @__PURE__ */ f("button", {
279
- onClick: () => U(),
280
- disabled: H,
252
+ onClick: () => W(),
253
+ disabled: U,
281
254
  className: "flex items-center gap-2 px-3 py-2 text-text-secondary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
282
255
  title: x("vibesPage.refreshTitle", "Refresh vibes"),
283
- children: /* @__PURE__ */ f(Oe, { className: `w-4 h-4 ${H ? "animate-spin" : ""}` })
256
+ children: /* @__PURE__ */ f(Oe, { className: `w-4 h-4 ${U ? "animate-spin" : ""}` })
284
257
  }), /* @__PURE__ */ f(Ie, {
285
258
  permission: s.VIBE_CREATE,
286
259
  deniedBehavior: "disable",
287
260
  deniedTooltip: x("vibesPage.deniedCreateTooltip", "You don't have permission to create vibes"),
288
261
  children: /* @__PURE__ */ p("button", {
289
- onClick: X,
262
+ onClick: xt,
290
263
  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 disabled:opacity-50 disabled:cursor-not-allowed",
291
264
  children: [/* @__PURE__ */ f(De, { className: "w-4 h-4" }), x("vibesPage.addVibe", "Add Vibe")]
292
265
  })
@@ -299,18 +272,18 @@ function h() {
299
272
  className: "flex items-center gap-2",
300
273
  children: [/* @__PURE__ */ f(fe, {
301
274
  value: T,
302
- onChange: Be,
275
+ onChange: ze,
303
276
  placeholder: x("vibesPage.searchPlaceholder", "Search vibes..."),
304
277
  className: "flex-1 sm:w-64 sm:flex-none"
305
278
  }), /* @__PURE__ */ p("div", {
306
279
  className: "flex items-center gap-1 bg-bg-sunken rounded-md p-1 flex-shrink-0",
307
280
  children: [/* @__PURE__ */ f("button", {
308
- onClick: () => We("grid"),
281
+ onClick: () => Ue("grid"),
309
282
  className: `p-1.5 sm:p-2 rounded ${k === "grid" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
310
283
  title: x("vibesPage.gridViewTitle", "Grid view"),
311
284
  children: /* @__PURE__ */ f(we, { className: "w-4 h-4 text-text-secondary" })
312
285
  }), /* @__PURE__ */ f("button", {
313
- onClick: () => We("list"),
286
+ onClick: () => Ue("list"),
314
287
  className: `p-1.5 sm:p-2 rounded ${k === "list" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
315
288
  title: x("vibesPage.listViewTitle", "List view"),
316
289
  children: /* @__PURE__ */ f(Te, { className: "w-4 h-4 text-text-secondary" })
@@ -318,43 +291,34 @@ function h() {
318
291
  })]
319
292
  }), /* @__PURE__ */ p("div", {
320
293
  className: "flex items-center gap-2 sm:gap-3 flex-wrap",
321
- children: [
322
- /* @__PURE__ */ f(o, {
323
- label: x("vibesPage.filterStatus", "Status"),
324
- value: E,
325
- options: Re,
326
- onChange: Ve
327
- }),
328
- /* @__PURE__ */ f(o, {
329
- label: x("vibesPage.filterType", "Type"),
330
- value: D,
331
- options: ze,
294
+ children: [/* @__PURE__ */ f(o, {
295
+ label: x("vibesPage.filterStatus", "Status"),
296
+ value: E,
297
+ options: Re,
298
+ onChange: Be
299
+ }), /* @__PURE__ */ f("div", {
300
+ onMouseDown: G,
301
+ onFocus: G,
302
+ children: /* @__PURE__ */ f(o, {
303
+ label: x("vibesPage.filterAgent", "Agent"),
304
+ value: O,
305
+ options: ft,
332
306
  onChange: He
333
- }),
334
- /* @__PURE__ */ f("div", {
335
- onMouseDown: W,
336
- onFocus: W,
337
- children: /* @__PURE__ */ f(o, {
338
- label: x("vibesPage.filterAgent", "Agent"),
339
- value: O,
340
- options: mt,
341
- onChange: Ue
342
- })
343
307
  })
344
- ]
308
+ })]
345
309
  })]
346
310
  }),
347
311
  T || E !== "all" || D !== "all" || O !== "all" ? /* @__PURE__ */ p("p", {
348
312
  className: "text-sm text-text-secondary",
349
313
  children: [x("vibesPage.showingResults", "Showing {{filtered}} of {{total}} vibes", {
350
- filtered: K.length,
351
- total: G.length
352
- }), H && /* @__PURE__ */ f("span", {
314
+ filtered: q.length,
315
+ total: K.length
316
+ }), U && /* @__PURE__ */ f("span", {
353
317
  className: "ml-2 text-text-muted",
354
318
  children: x("vibesPage.refreshing", "(refreshing...)")
355
319
  })]
356
320
  }) : null,
357
- K.length > 0 && /* @__PURE__ */ f("div", {
321
+ q.length > 0 && /* @__PURE__ */ f("div", {
358
322
  className: "rounded-lg border border-border-default bg-bg-surface p-4",
359
323
  children: /* @__PURE__ */ p("div", {
360
324
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
@@ -363,15 +327,15 @@ function h() {
363
327
  children: [/* @__PURE__ */ p("div", {
364
328
  className: "flex items-center gap-2",
365
329
  children: [/* @__PURE__ */ f(me, {
366
- checked: Y,
367
- indeterminate: gt,
368
- onChange: wt,
330
+ checked: X,
331
+ indeterminate: mt,
332
+ onChange: Ct,
369
333
  ariaLabel: "Select all visible vibes"
370
334
  }), /* @__PURE__ */ f("span", {
371
335
  className: "text-sm font-medium text-text-primary",
372
336
  children: "Select all visible"
373
337
  })]
374
- }), R.size > 0 && /* @__PURE__ */ f("button", {
338
+ }), z.size > 0 && /* @__PURE__ */ f("button", {
375
339
  onClick: Z,
376
340
  className: "text-sm text-text-secondary hover:text-text-primary",
377
341
  children: "Clear selection"
@@ -381,31 +345,32 @@ function h() {
381
345
  children: [
382
346
  /* @__PURE__ */ p("span", {
383
347
  className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
384
- children: [R.size, " selected"]
348
+ children: [z.size, " selected"]
385
349
  }),
386
350
  /* @__PURE__ */ f("button", {
387
- onClick: () => B("activate"),
388
- disabled: q.length === 0,
351
+ onClick: () => V("activate"),
352
+ disabled: J.length === 0,
353
+ title: "Mark selected vibes as ACTIVE so they appear in the default vibe list and can run sessions/tunnels via their attached agent(s).",
389
354
  className: "rounded-md border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg disabled:cursor-not-allowed disabled:opacity-50",
390
355
  children: /* @__PURE__ */ p("span", {
391
356
  className: "inline-flex items-center gap-2",
392
357
  children: [
393
358
  /* @__PURE__ */ f(Ee, { className: "w-4 h-4" }),
394
359
  "Activate Selected",
395
- q.length > 0 ? ` (${q.length})` : ""
360
+ J.length > 0 ? ` (${J.length})` : ""
396
361
  ]
397
362
  })
398
363
  }),
399
364
  /* @__PURE__ */ f("button", {
400
- onClick: () => B("archive"),
401
- disabled: J.length === 0,
365
+ onClick: () => V("archive"),
366
+ disabled: Y.length === 0,
402
367
  className: "rounded-md border border-status-warning-border px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg disabled:cursor-not-allowed disabled:opacity-50",
403
368
  children: /* @__PURE__ */ p("span", {
404
369
  className: "inline-flex items-center gap-2",
405
370
  children: [
406
371
  /* @__PURE__ */ f(Ce, { className: "w-4 h-4" }),
407
372
  "Archive Selected",
408
- J.length > 0 ? ` (${J.length})` : ""
373
+ Y.length > 0 ? ` (${Y.length})` : ""
409
374
  ]
410
375
  })
411
376
  })
@@ -413,34 +378,34 @@ function h() {
413
378
  })]
414
379
  })
415
380
  }),
416
- kt ? /* @__PURE__ */ f(he, {
381
+ Ot ? /* @__PURE__ */ f(he, {
417
382
  variant: "cards",
418
383
  count: 6
419
- }) : K.length > 0 ? /* @__PURE__ */ f(je, {
384
+ }) : q.length > 0 ? /* @__PURE__ */ f(je, {
420
385
  mode: "wait",
421
386
  children: k === "grid" ? /* @__PURE__ */ f(m, {
422
387
  stagger: .04,
423
388
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
424
- children: K.map((e) => /* @__PURE__ */ f(Ne, { children: /* @__PURE__ */ f(ye, {
389
+ children: q.map((e) => /* @__PURE__ */ f(Ne, { children: /* @__PURE__ */ f(ye, {
425
390
  vibe: e,
426
- onOpen: _t,
427
- onActivate: C ? vt : void 0,
428
- onArchive: C ? yt : void 0,
429
- onOpenInEditor: St,
430
- selected: R.has(e.id),
431
- onToggleSelect: (t) => Ct(e, t)
391
+ onOpen: ht,
392
+ onActivate: C ? gt : void 0,
393
+ onArchive: C ? _t : void 0,
394
+ onOpenInEditor: bt,
395
+ selected: z.has(e.id),
396
+ onToggleSelect: (t) => St(e, t)
432
397
  }) }, e.id))
433
398
  }, "grid") : /* @__PURE__ */ f(m, { children: /* @__PURE__ */ f(be, {
434
- vibes: K,
435
- onOpen: _t,
436
- onActivate: vt,
437
- onArchive: yt,
438
- onOpenInEditor: St,
439
- selectedVibeIds: R,
440
- onToggleSelect: Ct,
441
- onToggleAllVisible: wt,
442
- allVisibleSelected: Y,
443
- partiallySelected: gt
399
+ vibes: q,
400
+ onOpen: ht,
401
+ onActivate: gt,
402
+ onArchive: _t,
403
+ onOpenInEditor: bt,
404
+ selectedVibeIds: z,
405
+ onToggleSelect: St,
406
+ onToggleAllVisible: Ct,
407
+ allVisibleSelected: X,
408
+ partiallySelected: mt
444
409
  }) }, "list")
445
410
  }) : /* @__PURE__ */ f(de, {
446
411
  icon: /* @__PURE__ */ f(ke, { className: "w-8 h-8 text-text-secondary" }),
@@ -451,45 +416,45 @@ function h() {
451
416
  children: [/* @__PURE__ */ f(Le, {
452
417
  permission: s.VIBE_CREATE,
453
418
  children: /* @__PURE__ */ p("button", {
454
- onClick: X,
419
+ onClick: xt,
455
420
  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",
456
421
  children: [/* @__PURE__ */ f(De, { className: "w-4 h-4" }), x("vibesPage.addVibe", "Add Vibe")]
457
422
  })
458
423
  }), /* @__PURE__ */ f(pe, { prompt: "What is a Vibe in VibeControls and how do I create one?" })]
459
424
  }) : void 0
460
425
  }),
461
- Je && /* @__PURE__ */ f("div", {
426
+ Ke && /* @__PURE__ */ f("div", {
462
427
  className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-success-bg text-status-success-text rounded-md shadow-lg text-sm",
463
- children: Je
428
+ children: Ke
464
429
  }),
465
430
  /* @__PURE__ */ f(a, {
466
- isOpen: Ze === "activate",
467
- onClose: () => B(null),
468
- onConfirm: Tt,
431
+ isOpen: Ye === "activate",
432
+ onClose: () => V(null),
433
+ onConfirm: wt,
469
434
  title: "Activate selected vibes",
470
- message: `Activate ${q.length} selected vibe${q.length === 1 ? "" : "s"}?`,
435
+ message: `Activate ${J.length} selected vibe${J.length === 1 ? "" : "s"}?`,
471
436
  confirmLabel: "Activate",
472
437
  variant: "default"
473
438
  }),
474
439
  /* @__PURE__ */ f(a, {
475
- isOpen: Ze === "archive",
476
- onClose: () => B(null),
477
- onConfirm: Et,
440
+ isOpen: Ye === "archive",
441
+ onClose: () => V(null),
442
+ onConfirm: Tt,
478
443
  title: "Archive selected vibes",
479
- message: `Archive ${J.length} selected vibe${J.length === 1 ? "" : "s"}? Archived vibes will be hidden from active workflows.`,
444
+ message: `Archive ${Y.length} selected vibe${Y.length === 1 ? "" : "s"}? Archived vibes will be hidden from active workflows.`,
480
445
  confirmLabel: "Archive",
481
446
  variant: "warning"
482
447
  }),
483
- Xe && /* @__PURE__ */ p("div", {
448
+ Je && /* @__PURE__ */ p("div", {
484
449
  role: "alert",
485
450
  className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-error-bg text-status-error-text rounded-md shadow-lg text-sm",
486
- children: [Xe, /* @__PURE__ */ f("button", {
487
- onClick: Qe,
451
+ children: [Je, /* @__PURE__ */ f("button", {
452
+ onClick: Xe,
488
453
  className: "ml-3 text-xs underline opacity-80 hover:opacity-100",
489
454
  children: x("vibesPage.dismiss", "Dismiss")
490
455
  })]
491
456
  }),
492
- Ge && /* @__PURE__ */ f("div", {
457
+ We && /* @__PURE__ */ f("div", {
493
458
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-50 p-4",
494
459
  children: /* @__PURE__ */ p("div", {
495
460
  className: "bg-bg-surface rounded-lg p-6 w-full max-w-lg",
@@ -501,9 +466,9 @@ function h() {
501
466
  /* @__PURE__ */ p("div", {
502
467
  className: "space-y-4",
503
468
  children: [
504
- Ke && /* @__PURE__ */ f("div", {
469
+ j && /* @__PURE__ */ f("div", {
505
470
  className: "p-3 bg-status-error-bg text-status-error-text text-sm rounded-md",
506
- children: Ke
471
+ children: j
507
472
  }),
508
473
  /* @__PURE__ */ p("div", { children: [
509
474
  /* @__PURE__ */ f("label", {
@@ -511,18 +476,18 @@ function h() {
511
476
  children: x("vibesPage.nameLabel", "Name *")
512
477
  }),
513
478
  /* @__PURE__ */ f("input", {
514
- ref: $e,
479
+ ref: Ze,
515
480
  type: "text",
516
481
  placeholder: x("vibesPage.namePlaceholder", "My Project"),
517
- onChange: () => F.name && I((e) => ({
482
+ onChange: () => I.name && L((e) => ({
518
483
  ...e,
519
484
  name: void 0
520
485
  })),
521
- className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${F.name ? "border-status-error-border" : "border-border-default"}`
486
+ className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${I.name ? "border-status-error-border" : "border-border-default"}`
522
487
  }),
523
- F.name && /* @__PURE__ */ f("p", {
488
+ I.name && /* @__PURE__ */ f("p", {
524
489
  className: "mt-1 text-xs text-status-error-text",
525
- children: F.name
490
+ children: I.name
526
491
  })
527
492
  ] }),
528
493
  /* @__PURE__ */ p("div", { children: [
@@ -531,30 +496,30 @@ function h() {
531
496
  children: x("vibesPage.pathLabel", "Path *")
532
497
  }),
533
498
  /* @__PURE__ */ f("input", {
534
- ref: et,
499
+ ref: Qe,
535
500
  type: "text",
536
501
  placeholder: x("vibesPage.pathPlaceholder", "/path/to/project"),
537
- onChange: () => F.path && I((e) => ({
502
+ onChange: () => I.path && L((e) => ({
538
503
  ...e,
539
504
  path: void 0
540
505
  })),
541
- className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${F.path ? "border-status-error-border" : "border-border-default"}`
506
+ className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${I.path ? "border-status-error-border" : "border-border-default"}`
542
507
  }),
543
- F.path && /* @__PURE__ */ f("p", {
508
+ I.path && /* @__PURE__ */ f("p", {
544
509
  className: "mt-1 text-xs text-status-error-text",
545
- children: F.path
510
+ children: I.path
546
511
  })
547
512
  ] }),
548
513
  /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
549
514
  className: "block text-sm font-medium text-text-primary mb-1",
550
515
  children: x("vibesPage.agentLabel", "Agent")
551
516
  }), /* @__PURE__ */ p("select", {
552
- ref: tt,
517
+ ref: $e,
553
518
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary",
554
519
  children: [/* @__PURE__ */ f("option", {
555
520
  value: "",
556
521
  children: x("vibesPage.selectAgent", "Select an agent")
557
- }), mt.filter((e) => e.value !== "all").map((e) => /* @__PURE__ */ f("option", {
522
+ }), ft.filter((e) => e.value !== "all").map((e) => /* @__PURE__ */ f("option", {
558
523
  value: e.value,
559
524
  children: e.label
560
525
  }, e.value))]
@@ -563,7 +528,7 @@ function h() {
563
528
  className: "block text-sm font-medium text-text-primary mb-1",
564
529
  children: x("vibesPage.typeLabel", "Type")
565
530
  }), /* @__PURE__ */ p("select", {
566
- ref: nt,
531
+ ref: et,
567
532
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary",
568
533
  children: [
569
534
  /* @__PURE__ */ f("option", {
@@ -601,31 +566,31 @@ function h() {
601
566
  children: x("vibesPage.tags", "Tags")
602
567
  }), /* @__PURE__ */ f(le, {
603
568
  entityType: "VIBECONTROLS_VIBE",
604
- onDraftChange: it
569
+ onDraftChange: nt
605
570
  })]
606
571
  }),
607
572
  /* @__PURE__ */ p("div", {
608
573
  className: "flex flex-col sm:flex-row justify-end gap-3 mt-6",
609
574
  children: [/* @__PURE__ */ f("button", {
610
575
  onClick: () => A(!1),
611
- disabled: M,
576
+ disabled: N,
612
577
  className: "px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
613
578
  children: x("vibesPage.cancel", "Cancel")
614
579
  }), /* @__PURE__ */ f("button", {
615
- onClick: Dt,
616
- disabled: M,
580
+ onClick: Et,
581
+ disabled: N,
617
582
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
618
- children: M ? x("vibesPage.creating", "Creating...") : x("vibesPage.createVibe", "Create Vibe")
583
+ children: N ? x("vibesPage.creating", "Creating...") : x("vibesPage.createVibe", "Create Vibe")
619
584
  })]
620
585
  })
621
586
  ]
622
587
  })
623
588
  }),
624
589
  /* @__PURE__ */ f(se, {
625
- isOpen: Ye,
626
- onClose: () => P(!1),
590
+ isOpen: qe,
591
+ onClose: () => F(!1),
627
592
  onConfirm: () => {
628
- P(!1), g("/billing");
593
+ F(!1), g("/billing");
629
594
  },
630
595
  title: "Vibe Quota Reached",
631
596
  message: "You've used all available vibe creation quota on your current plan. Upgrade your plan to create more vibes."