@burdenoff/microfe-botmanor 2026.1027.2 → 2026.1027.3
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/botlit/BotlitRoutes.js +142 -132
- package/dist/botlit/BotlitRoutes.js.map +1 -1
- package/dist/botlit/components/AgentApprovalPanel.js +144 -126
- package/dist/botlit/components/AgentApprovalPanel.js.map +1 -1
- package/dist/botlit/components/ModelRegistrationPanel.js +4 -4
- package/dist/botlit/components/VersionHistoryPanel.js +92 -83
- package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
- package/dist/botlit/pages/A2AAgentDetailPage.js +212 -203
- package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/A2ARegistryPage.js +129 -117
- package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
- package/dist/botlit/pages/AgentApprovalsPage.js +122 -110
- package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
- package/dist/botlit/pages/AgentBuilderPage.js +18 -18
- package/dist/botlit/pages/AgentDetailPage.js +298 -273
- package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/AgentsListPage.js +145 -121
- package/dist/botlit/pages/AgentsListPage.js.map +1 -1
- package/dist/botlit/pages/BotChannelsTab.js +238 -226
- package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
- package/dist/botlit/pages/BotDetailPage.js +307 -288
- package/dist/botlit/pages/BotDetailPage.js.map +1 -1
- package/dist/botlit/pages/BotWorkflowTab.js +125 -116
- package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
- package/dist/botlit/pages/BotsListPage.js +159 -144
- package/dist/botlit/pages/BotsListPage.js.map +1 -1
- package/dist/botlit/pages/BucketsPage.js +279 -258
- package/dist/botlit/pages/BucketsPage.js.map +1 -1
- package/dist/botlit/pages/ChannelDetailPage.js +346 -328
- package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
- package/dist/botlit/pages/ChannelRoutesPage.js +10 -10
- package/dist/botlit/pages/ChannelsPage.js +163 -148
- package/dist/botlit/pages/ChannelsPage.js.map +1 -1
- package/dist/botlit/pages/DashboardPage.js +129 -114
- package/dist/botlit/pages/DashboardPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionDetailPage.js +145 -139
- package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionsPage.js +14 -14
- package/dist/botlit/pages/InstalledPackagesPage.js +245 -227
- package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js +168 -156
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBasesPage.js +91 -79
- package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
- package/dist/botlit/pages/MCPServerDetailPage.js +200 -188
- package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
- package/dist/botlit/pages/MCPServersPage.js +170 -155
- package/dist/botlit/pages/MCPServersPage.js.map +1 -1
- package/dist/botlit/pages/PoliciesPage.js +113 -104
- package/dist/botlit/pages/PoliciesPage.js.map +1 -1
- package/dist/botlit/pages/PolicyDetailPage.js +145 -133
- package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptStudioPage.js +106 -97
- package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplateDetailPage.js +359 -347
- package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplatesPage.js +127 -112
- package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfileDetailPage.js +219 -210
- package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfilesPage.js +112 -103
- package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
- package/dist/botlit/pages/SettingsPage.js +264 -252
- package/dist/botlit/pages/SettingsPage.js.map +1 -1
- package/dist/botlit/pages/SkillDetailPage.js +235 -226
- package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
- package/dist/botlit/pages/SkillsPage.js +115 -106
- package/dist/botlit/pages/SkillsPage.js.map +1 -1
- package/dist/botlit/pages/StorePackageDetailPage.js +194 -188
- package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
- package/dist/botlit/pages/StorePage.js +161 -155
- package/dist/botlit/pages/StorePage.js.map +1 -1
- package/dist/botlit/permissions/PermissionRequired.js +45 -0
- package/dist/botlit/permissions/PermissionRequired.js.map +1 -0
- package/dist/botlit/permissions/botmanorPermissions.js +72 -0
- package/dist/botlit/permissions/botmanorPermissions.js.map +1 -0
- package/dist/botlit/permissions/index.js +3 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js +19 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,457 +1,478 @@
|
|
|
1
1
|
import { useBotlit as e } from "../providers/BotlitProvider.js";
|
|
2
2
|
import { formatRelativeTime as t } from "../utils/formatters.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { BOTMANOR_PERMISSIONS as n } from "../permissions/botmanorPermissions.js";
|
|
4
|
+
import { BotmanorPermissionGate as r, useBotmanorCan as i } from "../permissions/useBotmanorPermissions.js";
|
|
5
|
+
import { PageLayout as a } from "../components/PageLayout.js";
|
|
6
|
+
import { Button as o } from "../components/Button.js";
|
|
7
|
+
import "../permissions/index.js";
|
|
8
|
+
import { Card as s, CardContent as c, CardDescription as l, CardHeader as u, CardTitle as d } from "../components/Card.js";
|
|
9
|
+
import { isNative as f, nativeImpact as p, nativeNotify as m } from "../../utils/nativeBridge.js";
|
|
10
|
+
import { EmptyState as h } from "../components/EmptyState.js";
|
|
11
|
+
import { FormField as g, Input as _, Textarea as v } from "../components/Input.js";
|
|
12
|
+
import { ErrorState as y } from "../components/ErrorState.js";
|
|
10
13
|
import { useBucketTree as ee, useBuckets as te, useCreateBucket as ne, useDeleteBucket as re, useUpdateBucket as ie } from "../hooks/useBuckets.js";
|
|
11
14
|
import "../hooks/index.js";
|
|
12
|
-
import { useState as
|
|
13
|
-
import { GlassCard as
|
|
14
|
-
import { Fragment as
|
|
15
|
-
import { Link as
|
|
16
|
-
import { ChevronDown as
|
|
17
|
-
import { toast as
|
|
15
|
+
import { useState as b } from "react";
|
|
16
|
+
import { GlassCard as x, PagePurpose as ae } from "@burdenoff/fe-libs/ui";
|
|
17
|
+
import { Fragment as oe, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
18
|
+
import { Link as w } from "react-router";
|
|
19
|
+
import { ChevronDown as T, ChevronRight as E, Edit as D, Folder as O, FolderOpen as k, FolderTree as A, MoreHorizontal as j, Plus as M, Save as N, Search as se, Settings as ce, Trash2 as P, X as F } from "lucide-react";
|
|
20
|
+
import { toast as I } from "sonner";
|
|
18
21
|
//#region src/botlit/pages/BucketsPage.tsx
|
|
19
|
-
var
|
|
20
|
-
let
|
|
21
|
-
return /* @__PURE__ */
|
|
22
|
-
to:
|
|
23
|
-
children: /* @__PURE__ */
|
|
22
|
+
var L = ({ bucket: e, level: t, expanded: a, onToggle: s, getPath: c, onEdit: l, onDelete: u, onCreateChild: d, activeMenu: f, setActiveMenu: p }) => {
|
|
23
|
+
let m = a.has(e.id), h = e.children.length > 0, g = f === e.id, _ = i(), v = _(n.BUCKET_CREATE) || _(n.BUCKET_UPDATE) || _(n.BUCKET_DELETE);
|
|
24
|
+
return /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S(w, {
|
|
25
|
+
to: c(`buckets/${e.id}`),
|
|
26
|
+
children: /* @__PURE__ */ C("div", {
|
|
24
27
|
className: "flex items-center gap-2 px-3 py-2 hover:bg-accent rounded-md transition-colors cursor-pointer group",
|
|
25
28
|
style: { paddingLeft: `${t * 24 + 12}px` },
|
|
26
29
|
children: [
|
|
27
|
-
|
|
30
|
+
h ? /* @__PURE__ */ S("button", {
|
|
28
31
|
onClick: (t) => {
|
|
29
|
-
t.preventDefault(),
|
|
32
|
+
t.preventDefault(), s(e.id);
|
|
30
33
|
},
|
|
31
34
|
className: "p-0.5 hover:bg-bg-sunken rounded",
|
|
32
|
-
children:
|
|
35
|
+
children: S(m ? T : E, {
|
|
33
36
|
size: 16,
|
|
34
37
|
className: "text-text-secondary"
|
|
35
38
|
})
|
|
36
|
-
}) : /* @__PURE__ */
|
|
37
|
-
|
|
39
|
+
}) : /* @__PURE__ */ S("div", { className: "w-5" }),
|
|
40
|
+
m ? /* @__PURE__ */ S(k, {
|
|
38
41
|
size: 18,
|
|
39
42
|
className: "text-primary"
|
|
40
|
-
}) : /* @__PURE__ */
|
|
43
|
+
}) : /* @__PURE__ */ S(O, {
|
|
41
44
|
size: 18,
|
|
42
45
|
className: "text-text-secondary"
|
|
43
46
|
}),
|
|
44
|
-
/* @__PURE__ */
|
|
47
|
+
/* @__PURE__ */ S("span", {
|
|
45
48
|
className: "flex-1 font-medium",
|
|
46
49
|
children: e.name
|
|
47
50
|
}),
|
|
48
|
-
/* @__PURE__ */
|
|
51
|
+
v && /* @__PURE__ */ C("div", {
|
|
49
52
|
className: "relative",
|
|
50
|
-
children: [/* @__PURE__ */
|
|
53
|
+
children: [/* @__PURE__ */ S(o, {
|
|
51
54
|
variant: "ghost",
|
|
52
55
|
size: "icon",
|
|
53
56
|
className: "h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",
|
|
54
57
|
onClick: (t) => {
|
|
55
|
-
t.preventDefault(), t.stopPropagation(),
|
|
58
|
+
t.preventDefault(), t.stopPropagation(), p(g ? null : e.id);
|
|
56
59
|
},
|
|
57
|
-
children: /* @__PURE__ */
|
|
58
|
-
}),
|
|
60
|
+
children: /* @__PURE__ */ S(j, { size: 14 })
|
|
61
|
+
}), g && /* @__PURE__ */ C("div", {
|
|
59
62
|
className: "absolute right-0 top-8 bg-popover border rounded-md shadow-lg z-50 py-1 min-w-[160px]",
|
|
60
63
|
children: [
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
/* @__PURE__ */ S(r, {
|
|
65
|
+
permission: n.BUCKET_CREATE,
|
|
66
|
+
children: /* @__PURE__ */ C("button", {
|
|
67
|
+
className: "w-full flex items-center gap-2 px-3 py-2 text-sm hover:bg-accent text-left",
|
|
68
|
+
onClick: (t) => {
|
|
69
|
+
t.preventDefault(), t.stopPropagation(), d(e.id);
|
|
70
|
+
},
|
|
71
|
+
children: [/* @__PURE__ */ S(M, { size: 14 }), "Add Sub-Bucket"]
|
|
72
|
+
})
|
|
67
73
|
}),
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
/* @__PURE__ */ S(r, {
|
|
75
|
+
permission: n.BUCKET_UPDATE,
|
|
76
|
+
children: /* @__PURE__ */ C("button", {
|
|
77
|
+
className: "w-full flex items-center gap-2 px-3 py-2 text-sm hover:bg-accent text-left",
|
|
78
|
+
onClick: (t) => {
|
|
79
|
+
t.preventDefault(), t.stopPropagation(), l(e);
|
|
80
|
+
},
|
|
81
|
+
children: [/* @__PURE__ */ S(D, { size: 14 }), "Edit"]
|
|
82
|
+
})
|
|
74
83
|
}),
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
/* @__PURE__ */ S(r, {
|
|
85
|
+
permission: n.BUCKET_DELETE,
|
|
86
|
+
children: /* @__PURE__ */ C("button", {
|
|
87
|
+
className: "w-full flex items-center gap-2 px-3 py-2 text-sm hover:bg-accent text-status-error-text text-left",
|
|
88
|
+
onClick: (t) => {
|
|
89
|
+
t.preventDefault(), t.stopPropagation(), u(e.id);
|
|
90
|
+
},
|
|
91
|
+
children: [/* @__PURE__ */ S(P, { size: 14 }), "Delete"]
|
|
92
|
+
})
|
|
81
93
|
})
|
|
82
94
|
]
|
|
83
95
|
})]
|
|
84
96
|
})
|
|
85
97
|
]
|
|
86
98
|
})
|
|
87
|
-
}),
|
|
99
|
+
}), m && e.children.map((e) => /* @__PURE__ */ S(L, {
|
|
88
100
|
bucket: e,
|
|
89
101
|
level: t + 1,
|
|
90
|
-
expanded:
|
|
91
|
-
onToggle:
|
|
92
|
-
getPath:
|
|
93
|
-
onEdit:
|
|
94
|
-
onDelete:
|
|
95
|
-
onCreateChild:
|
|
96
|
-
activeMenu:
|
|
97
|
-
setActiveMenu:
|
|
102
|
+
expanded: a,
|
|
103
|
+
onToggle: s,
|
|
104
|
+
getPath: c,
|
|
105
|
+
onEdit: l,
|
|
106
|
+
onDelete: u,
|
|
107
|
+
onCreateChild: d,
|
|
108
|
+
activeMenu: f,
|
|
109
|
+
setActiveMenu: p
|
|
98
110
|
}, e.id))] });
|
|
99
|
-
},
|
|
100
|
-
let { getPath:
|
|
111
|
+
}, R = () => {
|
|
112
|
+
let { getPath: i } = e(), [T, E] = b(""), [D, k] = b("tree"), [j, R] = b(new Set(["bucket-1"])), [le, z] = b(!1), [B, V] = b(null), [H, U] = b(null), [ue, W] = b(null), [G, K] = b({
|
|
101
113
|
name: "",
|
|
102
114
|
description: "",
|
|
103
115
|
visibility: "PRIVATE",
|
|
104
116
|
parentBucketId: void 0
|
|
105
|
-
}), { data:
|
|
106
|
-
|
|
117
|
+
}), { data: q, loading: de, error: fe, refetch: J } = te({ search: T }), { data: Y, loading: pe, error: me, refetch: X } = ee(), [he, ge] = ne(), [_e, ve] = ie(), [ye, be] = re(), xe = (e) => {
|
|
118
|
+
R((t) => {
|
|
107
119
|
let n = new Set(t);
|
|
108
120
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
109
121
|
});
|
|
110
|
-
},
|
|
111
|
-
if (
|
|
122
|
+
}, Se = () => {
|
|
123
|
+
if (Y) {
|
|
112
124
|
let e = /* @__PURE__ */ new Set(), t = (n) => {
|
|
113
125
|
for (let r of n) e.add(r.id), r.children && t(r.children);
|
|
114
126
|
};
|
|
115
|
-
t(
|
|
127
|
+
t(Y), R(e);
|
|
116
128
|
}
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
if (
|
|
129
|
+
}, Ce = () => {
|
|
130
|
+
R(/* @__PURE__ */ new Set());
|
|
131
|
+
}, we = D === "tree" ? pe : de, Z = D === "tree" ? me : fe, Q = D === "tree" ? X : J, Te = async () => {
|
|
132
|
+
if (G.name) {
|
|
121
133
|
try {
|
|
122
|
-
await
|
|
123
|
-
name:
|
|
124
|
-
slug:
|
|
125
|
-
description:
|
|
126
|
-
parentBucketId:
|
|
127
|
-
metadata: { visibility:
|
|
134
|
+
await he({
|
|
135
|
+
name: G.name,
|
|
136
|
+
slug: G.name.toLowerCase().replace(/\s+/g, "-"),
|
|
137
|
+
description: G.description,
|
|
138
|
+
parentBucketId: G.parentBucketId,
|
|
139
|
+
metadata: { visibility: G.visibility }
|
|
128
140
|
});
|
|
129
141
|
} catch (e) {
|
|
130
|
-
|
|
142
|
+
I.error(e instanceof Error ? e.message : "Failed to create bucket");
|
|
131
143
|
return;
|
|
132
144
|
}
|
|
133
|
-
|
|
145
|
+
I.success(`Bucket "${G.name}" created`), J(), X(), z(!1), K({
|
|
134
146
|
name: "",
|
|
135
147
|
description: "",
|
|
136
148
|
visibility: "PRIVATE",
|
|
137
149
|
parentBucketId: void 0
|
|
138
150
|
});
|
|
139
151
|
}
|
|
140
|
-
},
|
|
141
|
-
if (!(!
|
|
152
|
+
}, Ee = async () => {
|
|
153
|
+
if (!(!H || !G.name)) {
|
|
142
154
|
try {
|
|
143
|
-
await
|
|
144
|
-
bucketId:
|
|
155
|
+
await _e({
|
|
156
|
+
bucketId: H.id,
|
|
145
157
|
input: {
|
|
146
|
-
name:
|
|
147
|
-
description:
|
|
158
|
+
name: G.name,
|
|
159
|
+
description: G.description
|
|
148
160
|
}
|
|
149
161
|
});
|
|
150
162
|
} catch (e) {
|
|
151
|
-
|
|
163
|
+
I.error(e instanceof Error ? e.message : "Failed to update bucket");
|
|
152
164
|
return;
|
|
153
165
|
}
|
|
154
|
-
|
|
166
|
+
I.success("Bucket updated"), J(), X(), U(null);
|
|
155
167
|
}
|
|
156
|
-
},
|
|
168
|
+
}, De = async (e) => {
|
|
157
169
|
try {
|
|
158
|
-
await
|
|
170
|
+
await ye(e), f() && m("success"), I.success("Bucket deleted"), J(), X();
|
|
159
171
|
} catch (e) {
|
|
160
|
-
|
|
172
|
+
f() && m("error"), I.error(e instanceof Error ? e.message : "Failed to delete bucket");
|
|
161
173
|
return;
|
|
162
174
|
}
|
|
163
|
-
|
|
164
|
-
},
|
|
165
|
-
|
|
175
|
+
V(null);
|
|
176
|
+
}, Oe = (e) => {
|
|
177
|
+
K({
|
|
166
178
|
name: e.name,
|
|
167
179
|
description: e.description ?? "",
|
|
168
180
|
visibility: "PRIVATE",
|
|
169
181
|
parentBucketId: void 0
|
|
170
|
-
}),
|
|
182
|
+
}), U(e), W(null);
|
|
171
183
|
}, $ = (e) => {
|
|
172
|
-
|
|
184
|
+
K({
|
|
173
185
|
name: "",
|
|
174
186
|
description: "",
|
|
175
187
|
visibility: "PRIVATE",
|
|
176
188
|
parentBucketId: e
|
|
177
|
-
}),
|
|
189
|
+
}), z(!0);
|
|
178
190
|
};
|
|
179
|
-
return /* @__PURE__ */
|
|
191
|
+
return /* @__PURE__ */ S(a, {
|
|
180
192
|
title: "Buckets",
|
|
181
193
|
description: "Organize your agents, apps, and resources into hierarchical folders",
|
|
182
|
-
actions: /* @__PURE__ */
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
194
|
+
actions: /* @__PURE__ */ S(r, {
|
|
195
|
+
permission: n.BUCKET_CREATE,
|
|
196
|
+
children: /* @__PURE__ */ S(o, {
|
|
197
|
+
leftIcon: /* @__PURE__ */ S(M, { size: 16 }),
|
|
198
|
+
onClick: () => $(),
|
|
199
|
+
children: "Create Bucket"
|
|
200
|
+
})
|
|
186
201
|
}),
|
|
187
|
-
children: /* @__PURE__ */
|
|
202
|
+
children: /* @__PURE__ */ C("div", {
|
|
188
203
|
className: "space-y-6",
|
|
189
204
|
children: [
|
|
190
|
-
/* @__PURE__ */
|
|
191
|
-
icon: /* @__PURE__ */
|
|
205
|
+
/* @__PURE__ */ S(ae, {
|
|
206
|
+
icon: /* @__PURE__ */ S(A, { size: 18 }),
|
|
192
207
|
children: "Buckets are folders for everything you build in BotManor — agents, bots, skills, knowledge and more — arranged in a hierarchy that mirrors how your team works. Group resources by team, project or environment so they stay organised, easy to find and simple to share as your account grows. Browse the tree or list view to manage that structure."
|
|
193
208
|
}),
|
|
194
|
-
|
|
209
|
+
q.length > 0 ? /* @__PURE__ */ C("div", {
|
|
195
210
|
className: "grid grid-cols-2 gap-4 sm:grid-cols-2",
|
|
196
|
-
children: [/* @__PURE__ */ x
|
|
211
|
+
children: [/* @__PURE__ */ C(x, {
|
|
197
212
|
treatment: "glass",
|
|
198
213
|
glow: !0,
|
|
199
214
|
className: "p-4",
|
|
200
|
-
children: [/* @__PURE__ */
|
|
215
|
+
children: [/* @__PURE__ */ S("p", {
|
|
201
216
|
className: "text-sm text-text-secondary",
|
|
202
217
|
children: "Total buckets"
|
|
203
|
-
}), /* @__PURE__ */
|
|
218
|
+
}), /* @__PURE__ */ S("p", {
|
|
204
219
|
className: "mt-1 text-2xl font-semibold tabular-nums text-text-primary",
|
|
205
|
-
children:
|
|
220
|
+
children: q.length
|
|
206
221
|
})]
|
|
207
|
-
}), /* @__PURE__ */ x
|
|
222
|
+
}), /* @__PURE__ */ C(x, {
|
|
208
223
|
treatment: "metric",
|
|
209
224
|
className: "p-4",
|
|
210
|
-
children: [/* @__PURE__ */
|
|
225
|
+
children: [/* @__PURE__ */ S("p", {
|
|
211
226
|
className: "text-sm text-text-secondary",
|
|
212
227
|
children: "Top-level buckets"
|
|
213
|
-
}), /* @__PURE__ */
|
|
228
|
+
}), /* @__PURE__ */ S("p", {
|
|
214
229
|
className: "mt-1 text-2xl font-semibold tabular-nums text-text-primary",
|
|
215
|
-
children:
|
|
230
|
+
children: Y.length
|
|
216
231
|
})]
|
|
217
232
|
})]
|
|
218
233
|
}) : null,
|
|
219
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ C("div", {
|
|
220
235
|
className: "flex items-center justify-between gap-4",
|
|
221
|
-
children: [/* @__PURE__ */
|
|
236
|
+
children: [/* @__PURE__ */ C("div", {
|
|
222
237
|
className: "relative flex-1 max-w-md",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
238
|
+
children: [/* @__PURE__ */ S(se, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ S(_, {
|
|
224
239
|
placeholder: "Search buckets...",
|
|
225
|
-
value:
|
|
226
|
-
onChange: (e) =>
|
|
240
|
+
value: T,
|
|
241
|
+
onChange: (e) => E(e.target.value),
|
|
227
242
|
className: "pl-9"
|
|
228
243
|
})]
|
|
229
|
-
}), /* @__PURE__ */
|
|
244
|
+
}), /* @__PURE__ */ C("div", {
|
|
230
245
|
className: "flex items-center gap-2",
|
|
231
246
|
children: [
|
|
232
|
-
/* @__PURE__ */
|
|
247
|
+
/* @__PURE__ */ S(o, {
|
|
233
248
|
variant: "outline",
|
|
234
249
|
size: "sm",
|
|
235
|
-
onClick:
|
|
250
|
+
onClick: Se,
|
|
236
251
|
children: "Expand All"
|
|
237
252
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ S(o, {
|
|
239
254
|
variant: "outline",
|
|
240
255
|
size: "sm",
|
|
241
|
-
onClick:
|
|
256
|
+
onClick: Ce,
|
|
242
257
|
children: "Collapse All"
|
|
243
258
|
}),
|
|
244
|
-
/* @__PURE__ */
|
|
259
|
+
/* @__PURE__ */ C("div", {
|
|
245
260
|
className: "flex border border-border-subtle rounded-md overflow-hidden",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
261
|
+
children: [/* @__PURE__ */ S(o, {
|
|
247
262
|
variant: D === "tree" ? "default" : "ghost",
|
|
248
263
|
size: "sm",
|
|
249
264
|
className: "rounded-none",
|
|
250
265
|
onClick: () => k("tree"),
|
|
251
|
-
children: /* @__PURE__ */
|
|
252
|
-
}), /* @__PURE__ */
|
|
266
|
+
children: /* @__PURE__ */ S(A, { size: 16 })
|
|
267
|
+
}), /* @__PURE__ */ S(o, {
|
|
253
268
|
variant: D === "list" ? "default" : "ghost",
|
|
254
269
|
size: "sm",
|
|
255
270
|
className: "rounded-none",
|
|
256
271
|
onClick: () => k("list"),
|
|
257
|
-
children: /* @__PURE__ */
|
|
272
|
+
children: /* @__PURE__ */ S(ce, { size: 16 })
|
|
258
273
|
})]
|
|
259
274
|
})
|
|
260
275
|
]
|
|
261
276
|
})]
|
|
262
277
|
}),
|
|
263
|
-
D === "tree" && /* @__PURE__ */
|
|
278
|
+
D === "tree" && /* @__PURE__ */ S(s, { children: /* @__PURE__ */ S(c, {
|
|
264
279
|
className: "p-2",
|
|
265
|
-
children:
|
|
280
|
+
children: we ? /* @__PURE__ */ S("div", {
|
|
266
281
|
className: "space-y-2 p-4",
|
|
267
282
|
children: [
|
|
268
283
|
1,
|
|
269
284
|
2,
|
|
270
285
|
3,
|
|
271
286
|
4
|
|
272
|
-
].map((e) => /* @__PURE__ */
|
|
273
|
-
}) : Z ? /* @__PURE__ */
|
|
287
|
+
].map((e) => /* @__PURE__ */ S("div", { className: "h-10 bg-bg-sunken motion-safe:animate-vc-shimmer rounded" }, e))
|
|
288
|
+
}) : Z ? /* @__PURE__ */ S(y, {
|
|
274
289
|
resource: "buckets",
|
|
275
290
|
error: Z,
|
|
276
291
|
onRetry: () => void Q()
|
|
277
|
-
}) :
|
|
292
|
+
}) : Y.length > 0 ? /* @__PURE__ */ S("div", {
|
|
278
293
|
className: "py-2",
|
|
279
|
-
onClick: () =>
|
|
280
|
-
children:
|
|
294
|
+
onClick: () => W(null),
|
|
295
|
+
children: Y.map((e) => /* @__PURE__ */ S(L, {
|
|
281
296
|
bucket: e,
|
|
282
297
|
level: 0,
|
|
283
|
-
expanded:
|
|
284
|
-
onToggle:
|
|
285
|
-
getPath:
|
|
286
|
-
onEdit:
|
|
287
|
-
onDelete: (e) =>
|
|
298
|
+
expanded: j,
|
|
299
|
+
onToggle: xe,
|
|
300
|
+
getPath: i,
|
|
301
|
+
onEdit: Oe,
|
|
302
|
+
onDelete: (e) => V(e),
|
|
288
303
|
onCreateChild: (e) => $(e),
|
|
289
|
-
activeMenu:
|
|
290
|
-
setActiveMenu:
|
|
304
|
+
activeMenu: ue,
|
|
305
|
+
setActiveMenu: W
|
|
291
306
|
}, e.id))
|
|
292
|
-
}) : /* @__PURE__ */
|
|
307
|
+
}) : /* @__PURE__ */ S(h, {
|
|
293
308
|
illustration: "empty-files",
|
|
294
309
|
title: "No buckets created",
|
|
295
310
|
description: "Create buckets to organize your BotManor resources.",
|
|
296
|
-
action: /* @__PURE__ */
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
311
|
+
action: /* @__PURE__ */ S(r, {
|
|
312
|
+
permission: n.BUCKET_CREATE,
|
|
313
|
+
children: /* @__PURE__ */ S(o, {
|
|
314
|
+
leftIcon: /* @__PURE__ */ S(M, { size: 16 }),
|
|
315
|
+
onClick: () => $(),
|
|
316
|
+
children: "Create Bucket"
|
|
317
|
+
})
|
|
300
318
|
})
|
|
301
319
|
})
|
|
302
320
|
}) }),
|
|
303
|
-
D === "list" && /* @__PURE__ */
|
|
321
|
+
D === "list" && /* @__PURE__ */ S(oe, { children: we ? /* @__PURE__ */ S("div", {
|
|
304
322
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
305
323
|
children: [
|
|
306
324
|
1,
|
|
307
325
|
2,
|
|
308
326
|
3
|
|
309
|
-
].map((e) => /* @__PURE__ */
|
|
310
|
-
}) : Z ? /* @__PURE__ */
|
|
327
|
+
].map((e) => /* @__PURE__ */ S("div", { className: "h-32 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" }, e))
|
|
328
|
+
}) : Z ? /* @__PURE__ */ S(y, {
|
|
311
329
|
resource: "buckets",
|
|
312
330
|
error: Z,
|
|
313
331
|
onRetry: () => void Q()
|
|
314
|
-
}) :
|
|
332
|
+
}) : q.length > 0 ? /* @__PURE__ */ S("div", {
|
|
315
333
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
316
|
-
children:
|
|
317
|
-
to:
|
|
318
|
-
children: /* @__PURE__ */
|
|
334
|
+
children: q.map((e) => /* @__PURE__ */ S(w, {
|
|
335
|
+
to: i(`buckets/${e.id}`),
|
|
336
|
+
children: /* @__PURE__ */ C(s, {
|
|
319
337
|
className: "h-full hover:border-primary/50 transition-colors cursor-pointer",
|
|
320
|
-
children: [/* @__PURE__ */
|
|
338
|
+
children: [/* @__PURE__ */ S(u, {
|
|
321
339
|
className: "pb-2",
|
|
322
|
-
children: /* @__PURE__ */
|
|
340
|
+
children: /* @__PURE__ */ S("div", {
|
|
323
341
|
className: "flex items-start justify-between",
|
|
324
|
-
children: /* @__PURE__ */
|
|
342
|
+
children: /* @__PURE__ */ C("div", {
|
|
325
343
|
className: "flex items-center gap-3",
|
|
326
|
-
children: [/* @__PURE__ */
|
|
344
|
+
children: [/* @__PURE__ */ S(O, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S(d, {
|
|
327
345
|
className: "text-base",
|
|
328
346
|
children: e.name
|
|
329
|
-
}), /* @__PURE__ */
|
|
347
|
+
}), /* @__PURE__ */ S(l, {
|
|
330
348
|
className: "text-xs",
|
|
331
349
|
children: e.path
|
|
332
350
|
})] })]
|
|
333
351
|
})
|
|
334
352
|
})
|
|
335
|
-
}), /* @__PURE__ */
|
|
353
|
+
}), /* @__PURE__ */ S(c, { children: /* @__PURE__ */ C("div", {
|
|
336
354
|
className: "flex items-center justify-between text-sm",
|
|
337
|
-
children: [/* @__PURE__ */
|
|
355
|
+
children: [/* @__PURE__ */ S("span", {
|
|
338
356
|
className: "text-text-secondary",
|
|
339
357
|
children: e.slug
|
|
340
|
-
}), /* @__PURE__ */
|
|
358
|
+
}), /* @__PURE__ */ S("span", {
|
|
341
359
|
className: "text-xs text-text-secondary",
|
|
342
360
|
children: t(e.createdAt)
|
|
343
361
|
})]
|
|
344
362
|
}) })]
|
|
345
363
|
})
|
|
346
364
|
}, e.id))
|
|
347
|
-
}) : /* @__PURE__ */
|
|
365
|
+
}) : /* @__PURE__ */ S(h, {
|
|
348
366
|
illustration: "empty-search",
|
|
349
367
|
title: "No buckets found",
|
|
350
368
|
description: "Create buckets to organize your BotManor resources.",
|
|
351
|
-
action: /* @__PURE__ */
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
369
|
+
action: /* @__PURE__ */ S(r, {
|
|
370
|
+
permission: n.BUCKET_CREATE,
|
|
371
|
+
children: /* @__PURE__ */ S(o, {
|
|
372
|
+
leftIcon: /* @__PURE__ */ S(M, { size: 16 }),
|
|
373
|
+
onClick: () => $(),
|
|
374
|
+
children: "Create Bucket"
|
|
375
|
+
})
|
|
355
376
|
})
|
|
356
377
|
}) }),
|
|
357
|
-
/* @__PURE__ */
|
|
378
|
+
/* @__PURE__ */ C(s, { children: [/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(d, {
|
|
358
379
|
className: "flex items-center gap-2",
|
|
359
|
-
children: [/* @__PURE__ */
|
|
360
|
-
}), /* @__PURE__ */
|
|
380
|
+
children: [/* @__PURE__ */ S(A, { size: 18 }), "Organizing with Buckets"]
|
|
381
|
+
}), /* @__PURE__ */ S(l, { children: "Buckets help you organize and manage permissions for your resources" })] }), /* @__PURE__ */ S(c, { children: /* @__PURE__ */ C("div", {
|
|
361
382
|
className: "grid grid-cols-1 md:grid-cols-3 gap-6",
|
|
362
383
|
children: [
|
|
363
|
-
/* @__PURE__ */
|
|
384
|
+
/* @__PURE__ */ C("div", {
|
|
364
385
|
className: "space-y-2",
|
|
365
|
-
children: [/* @__PURE__ */
|
|
386
|
+
children: [/* @__PURE__ */ S("h4", {
|
|
366
387
|
className: "font-medium",
|
|
367
388
|
children: "Hierarchical Organization"
|
|
368
|
-
}), /* @__PURE__ */
|
|
389
|
+
}), /* @__PURE__ */ S("p", {
|
|
369
390
|
className: "text-sm text-text-secondary",
|
|
370
391
|
children: "Create nested folder structures to organize apps, agents, and other resources by team, project, or domain."
|
|
371
392
|
})]
|
|
372
393
|
}),
|
|
373
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ C("div", {
|
|
374
395
|
className: "space-y-2",
|
|
375
|
-
children: [/* @__PURE__ */
|
|
396
|
+
children: [/* @__PURE__ */ S("h4", {
|
|
376
397
|
className: "font-medium",
|
|
377
398
|
children: "Inherited Permissions"
|
|
378
|
-
}), /* @__PURE__ */
|
|
399
|
+
}), /* @__PURE__ */ S("p", {
|
|
379
400
|
className: "text-sm text-text-secondary",
|
|
380
401
|
children: "Set owners, editors, and viewers at the bucket level. Permissions cascade to all items within."
|
|
381
402
|
})]
|
|
382
403
|
}),
|
|
383
|
-
/* @__PURE__ */
|
|
404
|
+
/* @__PURE__ */ C("div", {
|
|
384
405
|
className: "space-y-2",
|
|
385
|
-
children: [/* @__PURE__ */
|
|
406
|
+
children: [/* @__PURE__ */ S("h4", {
|
|
386
407
|
className: "font-medium",
|
|
387
408
|
children: "Default Policies"
|
|
388
|
-
}), /* @__PURE__ */
|
|
409
|
+
}), /* @__PURE__ */ S("p", {
|
|
389
410
|
className: "text-sm text-text-secondary",
|
|
390
411
|
children: "Configure default policy bindings for buckets. All new items inherit these policies automatically."
|
|
391
412
|
})]
|
|
392
413
|
})
|
|
393
414
|
]
|
|
394
415
|
}) })] }),
|
|
395
|
-
|
|
416
|
+
le && /* @__PURE__ */ S("div", {
|
|
396
417
|
className: "fixed inset-0 bg-black/50 flex items-center justify-center z-50",
|
|
397
|
-
children: /* @__PURE__ */
|
|
418
|
+
children: /* @__PURE__ */ C(s, {
|
|
398
419
|
className: "w-full max-w-md mx-4",
|
|
399
420
|
children: [
|
|
400
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(d, {
|
|
401
422
|
className: "flex items-center justify-between",
|
|
402
|
-
children: [/* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ S("span", { children: "Create Bucket" }), /* @__PURE__ */ S(o, {
|
|
403
424
|
variant: "ghost",
|
|
404
425
|
size: "icon",
|
|
405
|
-
onClick: () =>
|
|
406
|
-
children: /* @__PURE__ */
|
|
426
|
+
onClick: () => z(!1),
|
|
427
|
+
children: /* @__PURE__ */ S(F, { size: 16 })
|
|
407
428
|
})]
|
|
408
|
-
}), /* @__PURE__ */
|
|
409
|
-
/* @__PURE__ */
|
|
429
|
+
}), /* @__PURE__ */ S(l, { children: G.parentBucketId ? "Create a new sub-bucket" : "Create a new root bucket" })] }),
|
|
430
|
+
/* @__PURE__ */ C(c, {
|
|
410
431
|
className: "space-y-4",
|
|
411
432
|
children: [
|
|
412
|
-
/* @__PURE__ */
|
|
433
|
+
/* @__PURE__ */ S(g, {
|
|
413
434
|
label: "Bucket Name",
|
|
414
435
|
required: !0,
|
|
415
|
-
children: /* @__PURE__ */
|
|
436
|
+
children: /* @__PURE__ */ S(_, {
|
|
416
437
|
placeholder: "e.g., Marketing Team",
|
|
417
|
-
value:
|
|
418
|
-
onChange: (e) =>
|
|
419
|
-
...
|
|
438
|
+
value: G.name,
|
|
439
|
+
onChange: (e) => K({
|
|
440
|
+
...G,
|
|
420
441
|
name: e.target.value
|
|
421
442
|
})
|
|
422
443
|
})
|
|
423
444
|
}),
|
|
424
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ S(g, {
|
|
425
446
|
label: "Description",
|
|
426
|
-
children: /* @__PURE__ */
|
|
447
|
+
children: /* @__PURE__ */ S(v, {
|
|
427
448
|
placeholder: "What is this bucket for?",
|
|
428
|
-
value:
|
|
429
|
-
onChange: (e) =>
|
|
430
|
-
...
|
|
449
|
+
value: G.description,
|
|
450
|
+
onChange: (e) => K({
|
|
451
|
+
...G,
|
|
431
452
|
description: e.target.value
|
|
432
453
|
}),
|
|
433
454
|
rows: 2
|
|
434
455
|
})
|
|
435
456
|
}),
|
|
436
|
-
/* @__PURE__ */
|
|
457
|
+
/* @__PURE__ */ S(g, {
|
|
437
458
|
label: "Visibility",
|
|
438
|
-
children: /* @__PURE__ */
|
|
459
|
+
children: /* @__PURE__ */ C("select", {
|
|
439
460
|
className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
|
|
440
|
-
value:
|
|
441
|
-
onChange: (e) =>
|
|
442
|
-
...
|
|
461
|
+
value: G.visibility,
|
|
462
|
+
onChange: (e) => K({
|
|
463
|
+
...G,
|
|
443
464
|
visibility: e.target.value
|
|
444
465
|
}),
|
|
445
466
|
children: [
|
|
446
|
-
/* @__PURE__ */
|
|
467
|
+
/* @__PURE__ */ S("option", {
|
|
447
468
|
value: "PRIVATE",
|
|
448
469
|
children: "Private"
|
|
449
470
|
}),
|
|
450
|
-
/* @__PURE__ */
|
|
471
|
+
/* @__PURE__ */ S("option", {
|
|
451
472
|
value: "WORKSPACE",
|
|
452
473
|
children: "Workspace"
|
|
453
474
|
}),
|
|
454
|
-
/* @__PURE__ */
|
|
475
|
+
/* @__PURE__ */ S("option", {
|
|
455
476
|
value: "PUBLIC",
|
|
456
477
|
children: "Public"
|
|
457
478
|
})
|
|
@@ -460,83 +481,83 @@ var F = ({ bucket: e, level: t, expanded: n, onToggle: r, getPath: i, onEdit: a,
|
|
|
460
481
|
})
|
|
461
482
|
]
|
|
462
483
|
}),
|
|
463
|
-
/* @__PURE__ */
|
|
484
|
+
/* @__PURE__ */ C("div", {
|
|
464
485
|
className: "flex justify-end gap-2 p-4 border-t",
|
|
465
|
-
children: [/* @__PURE__ */
|
|
486
|
+
children: [/* @__PURE__ */ S(o, {
|
|
466
487
|
variant: "outline",
|
|
467
|
-
onClick: () =>
|
|
488
|
+
onClick: () => z(!1),
|
|
468
489
|
children: "Cancel"
|
|
469
|
-
}), /* @__PURE__ */
|
|
470
|
-
onClick:
|
|
471
|
-
isLoading:
|
|
472
|
-
disabled: !
|
|
473
|
-
leftIcon: /* @__PURE__ */
|
|
490
|
+
}), /* @__PURE__ */ S(o, {
|
|
491
|
+
onClick: Te,
|
|
492
|
+
isLoading: ge.loading,
|
|
493
|
+
disabled: !G.name,
|
|
494
|
+
leftIcon: /* @__PURE__ */ S(N, { size: 16 }),
|
|
474
495
|
children: "Create Bucket"
|
|
475
496
|
})]
|
|
476
497
|
})
|
|
477
498
|
]
|
|
478
499
|
})
|
|
479
500
|
}),
|
|
480
|
-
|
|
501
|
+
H && /* @__PURE__ */ S("div", {
|
|
481
502
|
className: "fixed inset-0 bg-black/50 flex items-center justify-center z-50",
|
|
482
|
-
children: /* @__PURE__ */
|
|
503
|
+
children: /* @__PURE__ */ C(s, {
|
|
483
504
|
className: "w-full max-w-md mx-4",
|
|
484
505
|
children: [
|
|
485
|
-
/* @__PURE__ */
|
|
506
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(d, {
|
|
486
507
|
className: "flex items-center justify-between",
|
|
487
|
-
children: [/* @__PURE__ */
|
|
508
|
+
children: [/* @__PURE__ */ S("span", { children: "Edit Bucket" }), /* @__PURE__ */ S(o, {
|
|
488
509
|
variant: "ghost",
|
|
489
510
|
size: "icon",
|
|
490
|
-
onClick: () =>
|
|
491
|
-
children: /* @__PURE__ */
|
|
511
|
+
onClick: () => U(null),
|
|
512
|
+
children: /* @__PURE__ */ S(F, { size: 16 })
|
|
492
513
|
})]
|
|
493
|
-
}), /* @__PURE__ */
|
|
494
|
-
/* @__PURE__ */
|
|
514
|
+
}), /* @__PURE__ */ S(l, { children: "Update bucket details" })] }),
|
|
515
|
+
/* @__PURE__ */ C(c, {
|
|
495
516
|
className: "space-y-4",
|
|
496
517
|
children: [
|
|
497
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ S(g, {
|
|
498
519
|
label: "Bucket Name",
|
|
499
520
|
required: !0,
|
|
500
|
-
children: /* @__PURE__ */
|
|
521
|
+
children: /* @__PURE__ */ S(_, {
|
|
501
522
|
placeholder: "e.g., Marketing Team",
|
|
502
|
-
value:
|
|
503
|
-
onChange: (e) =>
|
|
504
|
-
...
|
|
523
|
+
value: G.name,
|
|
524
|
+
onChange: (e) => K({
|
|
525
|
+
...G,
|
|
505
526
|
name: e.target.value
|
|
506
527
|
})
|
|
507
528
|
})
|
|
508
529
|
}),
|
|
509
|
-
/* @__PURE__ */
|
|
530
|
+
/* @__PURE__ */ S(g, {
|
|
510
531
|
label: "Description",
|
|
511
|
-
children: /* @__PURE__ */
|
|
532
|
+
children: /* @__PURE__ */ S(v, {
|
|
512
533
|
placeholder: "What is this bucket for?",
|
|
513
|
-
value:
|
|
514
|
-
onChange: (e) =>
|
|
515
|
-
...
|
|
534
|
+
value: G.description,
|
|
535
|
+
onChange: (e) => K({
|
|
536
|
+
...G,
|
|
516
537
|
description: e.target.value
|
|
517
538
|
}),
|
|
518
539
|
rows: 2
|
|
519
540
|
})
|
|
520
541
|
}),
|
|
521
|
-
/* @__PURE__ */
|
|
542
|
+
/* @__PURE__ */ S(g, {
|
|
522
543
|
label: "Visibility",
|
|
523
|
-
children: /* @__PURE__ */
|
|
544
|
+
children: /* @__PURE__ */ C("select", {
|
|
524
545
|
className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
|
|
525
|
-
value:
|
|
526
|
-
onChange: (e) =>
|
|
527
|
-
...
|
|
546
|
+
value: G.visibility,
|
|
547
|
+
onChange: (e) => K({
|
|
548
|
+
...G,
|
|
528
549
|
visibility: e.target.value
|
|
529
550
|
}),
|
|
530
551
|
children: [
|
|
531
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ S("option", {
|
|
532
553
|
value: "PRIVATE",
|
|
533
554
|
children: "Private"
|
|
534
555
|
}),
|
|
535
|
-
/* @__PURE__ */
|
|
556
|
+
/* @__PURE__ */ S("option", {
|
|
536
557
|
value: "WORKSPACE",
|
|
537
558
|
children: "Workspace"
|
|
538
559
|
}),
|
|
539
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ S("option", {
|
|
540
561
|
value: "PUBLIC",
|
|
541
562
|
children: "Public"
|
|
542
563
|
})
|
|
@@ -545,49 +566,49 @@ var F = ({ bucket: e, level: t, expanded: n, onToggle: r, getPath: i, onEdit: a,
|
|
|
545
566
|
})
|
|
546
567
|
]
|
|
547
568
|
}),
|
|
548
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ C("div", {
|
|
549
570
|
className: "flex justify-end gap-2 p-4 border-t",
|
|
550
|
-
children: [/* @__PURE__ */
|
|
571
|
+
children: [/* @__PURE__ */ S(o, {
|
|
551
572
|
variant: "outline",
|
|
552
|
-
onClick: () =>
|
|
573
|
+
onClick: () => U(null),
|
|
553
574
|
children: "Cancel"
|
|
554
|
-
}), /* @__PURE__ */
|
|
555
|
-
onClick:
|
|
556
|
-
isLoading:
|
|
557
|
-
disabled: !
|
|
558
|
-
leftIcon: /* @__PURE__ */
|
|
575
|
+
}), /* @__PURE__ */ S(o, {
|
|
576
|
+
onClick: Ee,
|
|
577
|
+
isLoading: ve.loading,
|
|
578
|
+
disabled: !G.name,
|
|
579
|
+
leftIcon: /* @__PURE__ */ S(N, { size: 16 }),
|
|
559
580
|
children: "Save Changes"
|
|
560
581
|
})]
|
|
561
582
|
})
|
|
562
583
|
]
|
|
563
584
|
})
|
|
564
585
|
}),
|
|
565
|
-
|
|
586
|
+
B && /* @__PURE__ */ S("div", {
|
|
566
587
|
className: "fixed inset-0 bg-black/50 flex items-center justify-center z-50",
|
|
567
|
-
children: /* @__PURE__ */
|
|
588
|
+
children: /* @__PURE__ */ C(s, {
|
|
568
589
|
className: "w-full max-w-md mx-4",
|
|
569
590
|
children: [
|
|
570
|
-
/* @__PURE__ */
|
|
591
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(d, {
|
|
571
592
|
className: "flex items-center gap-2 text-status-error-text",
|
|
572
|
-
children: [/* @__PURE__ */
|
|
573
|
-
}), /* @__PURE__ */
|
|
574
|
-
/* @__PURE__ */
|
|
593
|
+
children: [/* @__PURE__ */ S(P, { size: 18 }), "Delete Bucket"]
|
|
594
|
+
}), /* @__PURE__ */ S(l, { children: "Are you sure you want to delete this bucket? This action cannot be undone." })] }),
|
|
595
|
+
/* @__PURE__ */ S(c, { children: /* @__PURE__ */ S("p", {
|
|
575
596
|
className: "text-sm text-text-secondary",
|
|
576
597
|
children: "Note: Buckets with children or items cannot be deleted. You must delete or move all contents first."
|
|
577
598
|
}) }),
|
|
578
|
-
/* @__PURE__ */
|
|
599
|
+
/* @__PURE__ */ C("div", {
|
|
579
600
|
className: "flex justify-end gap-2 p-4 border-t",
|
|
580
|
-
children: [/* @__PURE__ */
|
|
601
|
+
children: [/* @__PURE__ */ S(o, {
|
|
581
602
|
variant: "outline",
|
|
582
|
-
onClick: () =>
|
|
603
|
+
onClick: () => V(null),
|
|
583
604
|
children: "Cancel"
|
|
584
|
-
}), /* @__PURE__ */
|
|
605
|
+
}), /* @__PURE__ */ S(o, {
|
|
585
606
|
variant: "destructive",
|
|
586
607
|
onClick: () => {
|
|
587
|
-
|
|
608
|
+
p("medium"), De(B);
|
|
588
609
|
},
|
|
589
|
-
isLoading:
|
|
590
|
-
leftIcon: /* @__PURE__ */
|
|
610
|
+
isLoading: be.loading,
|
|
611
|
+
leftIcon: /* @__PURE__ */ S(P, { size: 16 }),
|
|
591
612
|
children: "Delete Bucket"
|
|
592
613
|
})]
|
|
593
614
|
})
|
|
@@ -599,6 +620,6 @@ var F = ({ bucket: e, level: t, expanded: n, onToggle: r, getPath: i, onEdit: a,
|
|
|
599
620
|
});
|
|
600
621
|
};
|
|
601
622
|
//#endregion
|
|
602
|
-
export {
|
|
623
|
+
export { R as BucketsPage };
|
|
603
624
|
|
|
604
625
|
//# sourceMappingURL=BucketsPage.js.map
|