@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,21 +1,24 @@
|
|
|
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 {
|
|
3
|
+
import { BOTMANOR_PERMISSIONS as n } from "../permissions/botmanorPermissions.js";
|
|
4
|
+
import { BotmanorPermissionGate as r } from "../permissions/useBotmanorPermissions.js";
|
|
5
|
+
import { PageLayout as i } from "../components/PageLayout.js";
|
|
6
|
+
import { Button as a } from "../components/Button.js";
|
|
7
|
+
import "../permissions/index.js";
|
|
8
|
+
import { Card as o, CardContent as s, CardDescription as c, CardHeader as l, CardTitle as u } from "../components/Card.js";
|
|
9
|
+
import { Badge as d } from "../components/Badge.js";
|
|
10
|
+
import { EmptyState as f } from "../components/EmptyState.js";
|
|
11
|
+
import { useInstallPackage as p, useStorePackage as m } from "../hooks/useStore.js";
|
|
9
12
|
import "../hooks/index.js";
|
|
10
|
-
import { InstallMode as
|
|
11
|
-
import { useMemo as
|
|
12
|
-
import { PagePurpose as
|
|
13
|
-
import { jsx as
|
|
14
|
-
import { useParams as
|
|
15
|
-
import { AlertTriangle as
|
|
16
|
-
import { toast as
|
|
13
|
+
import { InstallMode as h } from "../../generated/wspace-types.js";
|
|
14
|
+
import { useMemo as g, useState as _ } from "react";
|
|
15
|
+
import { PagePurpose as v } from "@burdenoff/fe-libs/ui";
|
|
16
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
17
|
+
import { useParams as x } from "react-router";
|
|
18
|
+
import { AlertTriangle as S, ArrowLeft as C, CheckCircle as w, Download as T, ExternalLink as E, FileText as D, GitBranch as O, Globe as k, Package as A, Shield as j, Tag as M } from "lucide-react";
|
|
19
|
+
import { toast as N } from "sonner";
|
|
17
20
|
//#region src/botlit/pages/StorePackageDetailPage.tsx
|
|
18
|
-
var
|
|
21
|
+
var P = {
|
|
19
22
|
APP: "Bot",
|
|
20
23
|
AGENT: "Agent",
|
|
21
24
|
MCP_PACK: "MCP Pack",
|
|
@@ -32,7 +35,7 @@ var M = {
|
|
|
32
35
|
TEMPLATE: "Template",
|
|
33
36
|
TOOL: "Tool",
|
|
34
37
|
WORKFLOW: "Workflow"
|
|
35
|
-
},
|
|
38
|
+
}, F = ({ risk: e }) => e ? /* @__PURE__ */ b(d, {
|
|
36
39
|
variant: {
|
|
37
40
|
low: "success",
|
|
38
41
|
medium: "warning",
|
|
@@ -40,245 +43,248 @@ var M = {
|
|
|
40
43
|
}[e] ?? "secondary",
|
|
41
44
|
className: "capitalize",
|
|
42
45
|
children: [e, " Risk"]
|
|
43
|
-
}) : /* @__PURE__ */
|
|
46
|
+
}) : /* @__PURE__ */ y(d, {
|
|
44
47
|
variant: "secondary",
|
|
45
48
|
children: "Risk unknown"
|
|
46
49
|
});
|
|
47
|
-
function
|
|
50
|
+
function I(e) {
|
|
48
51
|
return e && typeof e == "object" && !Array.isArray(e) ? e : {};
|
|
49
52
|
}
|
|
50
|
-
function
|
|
53
|
+
function L(e) {
|
|
51
54
|
return typeof e == "string" && e !== "" ? e : void 0;
|
|
52
55
|
}
|
|
53
|
-
function
|
|
54
|
-
let t =
|
|
56
|
+
function R(e) {
|
|
57
|
+
let t = I(e.package), n = I(t.author), r = I(e.security), i = I(e.integrity), a = I(e.compatibility), o = {};
|
|
55
58
|
for (let [e, t] of Object.entries(a)) {
|
|
56
|
-
let n =
|
|
59
|
+
let n = L(t);
|
|
57
60
|
n && (o[e] = n);
|
|
58
61
|
}
|
|
59
62
|
let s = Array.isArray(e.dependencies) ? e.dependencies.flatMap((e) => {
|
|
60
|
-
let t =
|
|
63
|
+
let t = I(e), n = L(t.slug);
|
|
61
64
|
return n ? [{
|
|
62
65
|
slug: n,
|
|
63
|
-
version:
|
|
66
|
+
version: L(t.version) ?? "*"
|
|
64
67
|
}] : [];
|
|
65
68
|
}) : [];
|
|
66
69
|
return {
|
|
67
|
-
name:
|
|
68
|
-
slug:
|
|
69
|
-
description:
|
|
70
|
-
icon:
|
|
71
|
-
license:
|
|
72
|
-
homepage:
|
|
73
|
-
repository:
|
|
74
|
-
authorName:
|
|
75
|
-
authorUrl:
|
|
70
|
+
name: L(t.name),
|
|
71
|
+
slug: L(t.slug),
|
|
72
|
+
description: L(t.description),
|
|
73
|
+
icon: L(t.icon),
|
|
74
|
+
license: L(t.license),
|
|
75
|
+
homepage: L(t.homepage),
|
|
76
|
+
repository: L(t.repository),
|
|
77
|
+
authorName: L(n.name),
|
|
78
|
+
authorUrl: L(n.url),
|
|
76
79
|
tags: Array.isArray(t.tags) ? t.tags.filter((e) => typeof e == "string") : [],
|
|
77
80
|
dependencies: s,
|
|
78
81
|
compatibility: o,
|
|
79
|
-
risk:
|
|
82
|
+
risk: L(r.risk),
|
|
80
83
|
requiresSecrets: r.requiresSecrets === !0,
|
|
81
|
-
networkEgress:
|
|
82
|
-
checksum:
|
|
83
|
-
signature:
|
|
84
|
+
networkEgress: L(I(r.network).egress),
|
|
85
|
+
checksum: L(i.checksum),
|
|
86
|
+
signature: L(i.signature)
|
|
84
87
|
};
|
|
85
88
|
}
|
|
86
|
-
var
|
|
87
|
-
let { slug:
|
|
88
|
-
if (
|
|
89
|
+
var z = () => {
|
|
90
|
+
let { slug: I } = x(), { navigateTo: L } = e(), { data: z, loading: B } = m(I ? decodeURIComponent(I) : void 0), { install: V, loading: H } = p(), [U, W] = _(h.Linked), [G, K] = _(!1), q = g(() => R(z?.manifest ?? {}), [z?.manifest]), J = async () => {
|
|
91
|
+
if (z) {
|
|
89
92
|
try {
|
|
90
|
-
await
|
|
91
|
-
packageId:
|
|
92
|
-
mode:
|
|
93
|
+
await V({
|
|
94
|
+
packageId: z.id,
|
|
95
|
+
mode: U
|
|
93
96
|
});
|
|
94
97
|
} catch (e) {
|
|
95
|
-
|
|
98
|
+
N.error(e instanceof Error ? e.message : "Failed to install package");
|
|
96
99
|
return;
|
|
97
100
|
}
|
|
98
|
-
|
|
101
|
+
N.success(`Installed "${q.name ?? z.slug}"`), K(!1), L("store/installed");
|
|
99
102
|
}
|
|
100
103
|
};
|
|
101
|
-
return
|
|
104
|
+
return B ? /* @__PURE__ */ y(i, {
|
|
102
105
|
title: "Loading...",
|
|
103
|
-
children: /* @__PURE__ */
|
|
104
|
-
}) :
|
|
105
|
-
title: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ y("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
|
|
107
|
+
}) : z ? /* @__PURE__ */ b(i, {
|
|
108
|
+
title: /* @__PURE__ */ b("div", {
|
|
106
109
|
className: "flex items-center gap-3",
|
|
107
110
|
children: [
|
|
108
|
-
/* @__PURE__ */
|
|
111
|
+
/* @__PURE__ */ y(a, {
|
|
109
112
|
variant: "ghost",
|
|
110
113
|
size: "icon",
|
|
111
|
-
onClick: () =>
|
|
112
|
-
children: /* @__PURE__ */
|
|
114
|
+
onClick: () => L("store"),
|
|
115
|
+
children: /* @__PURE__ */ y(C, { size: 20 })
|
|
113
116
|
}),
|
|
114
|
-
/* @__PURE__ */
|
|
117
|
+
/* @__PURE__ */ y("div", {
|
|
115
118
|
className: "p-2 rounded-lg bg-action-primary-bg/10",
|
|
116
|
-
children:
|
|
119
|
+
children: q.icon ? /* @__PURE__ */ y("span", {
|
|
117
120
|
className: "text-2xl",
|
|
118
|
-
children:
|
|
119
|
-
}) : /* @__PURE__ */
|
|
121
|
+
children: q.icon
|
|
122
|
+
}) : /* @__PURE__ */ y(A, { className: "h-6 w-6 text-primary" })
|
|
120
123
|
}),
|
|
121
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("div", {
|
|
122
125
|
className: "flex items-center gap-2",
|
|
123
|
-
children: [/* @__PURE__ */
|
|
126
|
+
children: [/* @__PURE__ */ y("span", { children: q.name ?? z.slug }), /* @__PURE__ */ b(d, {
|
|
124
127
|
variant: "outline",
|
|
125
|
-
children: ["v",
|
|
128
|
+
children: ["v", z.version]
|
|
126
129
|
})]
|
|
127
|
-
}), /* @__PURE__ */
|
|
130
|
+
}), /* @__PURE__ */ y("p", {
|
|
128
131
|
className: "text-sm font-normal text-text-secondary",
|
|
129
|
-
children:
|
|
132
|
+
children: z.slug
|
|
130
133
|
})] })
|
|
131
134
|
]
|
|
132
135
|
}),
|
|
133
|
-
actions: /* @__PURE__ */
|
|
136
|
+
actions: /* @__PURE__ */ b("div", {
|
|
134
137
|
className: "flex gap-2",
|
|
135
|
-
children: [
|
|
136
|
-
href:
|
|
138
|
+
children: [q.homepage && /* @__PURE__ */ y("a", {
|
|
139
|
+
href: q.homepage,
|
|
137
140
|
target: "_blank",
|
|
138
141
|
rel: "noopener noreferrer",
|
|
139
|
-
children: /* @__PURE__ */
|
|
142
|
+
children: /* @__PURE__ */ y(a, {
|
|
140
143
|
variant: "outline",
|
|
141
|
-
leftIcon: /* @__PURE__ */
|
|
144
|
+
leftIcon: /* @__PURE__ */ y(E, { size: 16 }),
|
|
142
145
|
children: "Homepage"
|
|
143
146
|
})
|
|
144
|
-
}), /* @__PURE__ */
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
}), /* @__PURE__ */ y(r, {
|
|
148
|
+
permission: n.STORE_CREATE,
|
|
149
|
+
children: /* @__PURE__ */ y(a, {
|
|
150
|
+
leftIcon: /* @__PURE__ */ y(T, { size: 16 }),
|
|
151
|
+
onClick: () => K(!0),
|
|
152
|
+
children: "Install"
|
|
153
|
+
})
|
|
148
154
|
})]
|
|
149
155
|
}),
|
|
150
|
-
children: [/* @__PURE__ */
|
|
156
|
+
children: [/* @__PURE__ */ b("div", {
|
|
151
157
|
className: "space-y-6",
|
|
152
158
|
children: [
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
icon: /* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ y(v, {
|
|
160
|
+
icon: /* @__PURE__ */ y(A, { size: 18 }),
|
|
155
161
|
children: "This is a store package — a ready-made bot, agent, skill, tool pack or template you can install into your workspace. Review what it does, its security posture and version, then install it (linked so it stays updated, or forked as your own copy) to get a head start instead of building from scratch."
|
|
156
162
|
}),
|
|
157
|
-
/* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ b("div", {
|
|
158
164
|
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
159
165
|
children: [
|
|
160
|
-
/* @__PURE__ */
|
|
166
|
+
/* @__PURE__ */ y(o, {
|
|
161
167
|
treatment: "glass",
|
|
162
168
|
glow: !0,
|
|
163
|
-
children: /* @__PURE__ */
|
|
169
|
+
children: /* @__PURE__ */ b(s, {
|
|
164
170
|
className: "pt-6 text-center",
|
|
165
|
-
children: [/* @__PURE__ */
|
|
171
|
+
children: [/* @__PURE__ */ y(d, {
|
|
166
172
|
variant: "outline",
|
|
167
173
|
className: "text-xs",
|
|
168
|
-
children:
|
|
169
|
-
}), /* @__PURE__ */
|
|
174
|
+
children: P[z.kind] ?? z.kind
|
|
175
|
+
}), /* @__PURE__ */ y("p", {
|
|
170
176
|
className: "text-sm text-text-secondary mt-1",
|
|
171
177
|
children: "Type"
|
|
172
178
|
})]
|
|
173
179
|
})
|
|
174
180
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
|
|
176
182
|
className: "pt-6 text-center",
|
|
177
|
-
children: [/* @__PURE__ */
|
|
183
|
+
children: [/* @__PURE__ */ b("p", {
|
|
178
184
|
className: "text-lg font-bold",
|
|
179
|
-
children: ["v",
|
|
180
|
-
}), /* @__PURE__ */
|
|
185
|
+
children: ["v", z.version]
|
|
186
|
+
}), /* @__PURE__ */ y("p", {
|
|
181
187
|
className: "text-sm text-text-secondary",
|
|
182
188
|
children: "Version"
|
|
183
189
|
})]
|
|
184
190
|
}) }),
|
|
185
|
-
/* @__PURE__ */
|
|
191
|
+
/* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
|
|
186
192
|
className: "pt-6 text-center",
|
|
187
|
-
children: [/* @__PURE__ */
|
|
193
|
+
children: [/* @__PURE__ */ y(F, { risk: q.risk }), /* @__PURE__ */ y("p", {
|
|
188
194
|
className: "text-sm text-text-secondary mt-1",
|
|
189
195
|
children: "Security"
|
|
190
196
|
})]
|
|
191
197
|
}) }),
|
|
192
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
|
|
193
199
|
className: "pt-6 text-center",
|
|
194
|
-
children: [/* @__PURE__ */
|
|
200
|
+
children: [/* @__PURE__ */ y("p", {
|
|
195
201
|
className: "text-lg font-bold",
|
|
196
|
-
children:
|
|
197
|
-
}), /* @__PURE__ */
|
|
202
|
+
children: q.license ?? "—"
|
|
203
|
+
}), /* @__PURE__ */ y("p", {
|
|
198
204
|
className: "text-sm text-text-secondary",
|
|
199
205
|
children: "License"
|
|
200
206
|
})]
|
|
201
207
|
}) })
|
|
202
208
|
]
|
|
203
209
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ y(u, { children: "Description" }) }), /* @__PURE__ */ b(s, { children: [/* @__PURE__ */ y("p", {
|
|
205
211
|
className: "text-text-primary",
|
|
206
|
-
children:
|
|
207
|
-
}),
|
|
212
|
+
children: q.description ?? "—"
|
|
213
|
+
}), q.tags.length > 0 && /* @__PURE__ */ b("div", {
|
|
208
214
|
className: "flex items-center gap-2 mt-4",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
215
|
+
children: [/* @__PURE__ */ y(M, {
|
|
210
216
|
size: 14,
|
|
211
217
|
className: "text-text-secondary"
|
|
212
|
-
}),
|
|
218
|
+
}), q.tags.map((e) => /* @__PURE__ */ y(d, {
|
|
213
219
|
variant: "secondary",
|
|
214
220
|
children: e
|
|
215
221
|
}, e))]
|
|
216
222
|
})] })] }),
|
|
217
|
-
|
|
223
|
+
z.readme && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ b(u, {
|
|
218
224
|
className: "flex items-center gap-2",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
220
|
-
}) }), /* @__PURE__ */
|
|
225
|
+
children: [/* @__PURE__ */ y(D, { size: 18 }), "README"]
|
|
226
|
+
}) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ y("div", {
|
|
221
227
|
className: "prose prose-sm max-w-none dark:prose-invert",
|
|
222
|
-
children: /* @__PURE__ */
|
|
228
|
+
children: /* @__PURE__ */ y("pre", {
|
|
223
229
|
className: "whitespace-pre-wrap text-sm",
|
|
224
|
-
children:
|
|
230
|
+
children: z.readme
|
|
225
231
|
})
|
|
226
232
|
}) })] }),
|
|
227
|
-
/* @__PURE__ */
|
|
233
|
+
/* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ y(u, { children: "Author & Links" }) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b("div", {
|
|
228
234
|
className: "grid grid-cols-2 md:grid-cols-4 gap-6",
|
|
229
235
|
children: [
|
|
230
|
-
/* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
231
237
|
className: "text-sm text-text-secondary",
|
|
232
238
|
children: "Author"
|
|
233
|
-
}), /* @__PURE__ */
|
|
239
|
+
}), /* @__PURE__ */ b("div", {
|
|
234
240
|
className: "flex items-center gap-2 mt-1",
|
|
235
|
-
children: [/* @__PURE__ */
|
|
241
|
+
children: [/* @__PURE__ */ y("span", {
|
|
236
242
|
className: "font-medium",
|
|
237
|
-
children:
|
|
238
|
-
}),
|
|
239
|
-
href:
|
|
243
|
+
children: q.authorName ?? "—"
|
|
244
|
+
}), q.authorUrl && /* @__PURE__ */ y("a", {
|
|
245
|
+
href: q.authorUrl,
|
|
240
246
|
target: "_blank",
|
|
241
247
|
rel: "noopener noreferrer",
|
|
242
248
|
className: "text-primary hover:underline",
|
|
243
|
-
children: /* @__PURE__ */
|
|
249
|
+
children: /* @__PURE__ */ y(E, { size: 12 })
|
|
244
250
|
})]
|
|
245
251
|
})] }),
|
|
246
|
-
/* @__PURE__ */
|
|
252
|
+
/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
247
253
|
className: "text-sm text-text-secondary",
|
|
248
254
|
children: "Published"
|
|
249
|
-
}), /* @__PURE__ */
|
|
255
|
+
}), /* @__PURE__ */ y("p", {
|
|
250
256
|
className: "font-medium mt-1",
|
|
251
|
-
children: t(
|
|
257
|
+
children: t(z.publishedAt)
|
|
252
258
|
})] }),
|
|
253
|
-
|
|
259
|
+
q.repository && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
254
260
|
className: "text-sm text-text-secondary",
|
|
255
261
|
children: "Repository"
|
|
256
|
-
}), /* @__PURE__ */
|
|
257
|
-
href:
|
|
262
|
+
}), /* @__PURE__ */ b("a", {
|
|
263
|
+
href: q.repository,
|
|
258
264
|
target: "_blank",
|
|
259
265
|
rel: "noopener noreferrer",
|
|
260
266
|
className: "flex items-center gap-1 mt-1 text-primary hover:underline",
|
|
261
|
-
children: [/* @__PURE__ */
|
|
267
|
+
children: [/* @__PURE__ */ y(O, { size: 14 }), "View Source"]
|
|
262
268
|
})] }),
|
|
263
|
-
|
|
269
|
+
q.homepage && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
264
270
|
className: "text-sm text-text-secondary",
|
|
265
271
|
children: "Homepage"
|
|
266
|
-
}), /* @__PURE__ */
|
|
267
|
-
href:
|
|
272
|
+
}), /* @__PURE__ */ b("a", {
|
|
273
|
+
href: q.homepage,
|
|
268
274
|
target: "_blank",
|
|
269
275
|
rel: "noopener noreferrer",
|
|
270
276
|
className: "flex items-center gap-1 mt-1 text-primary hover:underline",
|
|
271
|
-
children: [/* @__PURE__ */
|
|
277
|
+
children: [/* @__PURE__ */ y(k, { size: 14 }), "Visit Site"]
|
|
272
278
|
})] })
|
|
273
279
|
]
|
|
274
280
|
}) })] }),
|
|
275
|
-
|
|
281
|
+
q.dependencies.length > 0 && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y(u, { children: "Dependencies" }), /* @__PURE__ */ b(c, { children: [
|
|
276
282
|
"This package depends on ",
|
|
277
|
-
|
|
283
|
+
q.dependencies.length,
|
|
278
284
|
" other package(s)"
|
|
279
|
-
] })] }), /* @__PURE__ */
|
|
285
|
+
] })] }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ y("div", {
|
|
280
286
|
className: "flex flex-wrap gap-2",
|
|
281
|
-
children:
|
|
287
|
+
children: q.dependencies.map((e) => /* @__PURE__ */ b(d, {
|
|
282
288
|
variant: "outline",
|
|
283
289
|
className: "font-mono",
|
|
284
290
|
children: [
|
|
@@ -288,154 +294,154 @@ var L = () => {
|
|
|
288
294
|
]
|
|
289
295
|
}, e.slug))
|
|
290
296
|
}) })] }),
|
|
291
|
-
/* @__PURE__ */
|
|
297
|
+
/* @__PURE__ */ b("div", {
|
|
292
298
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
293
|
-
children: [/* @__PURE__ */
|
|
299
|
+
children: [/* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ b(u, {
|
|
294
300
|
className: "flex items-center gap-2",
|
|
295
|
-
children: [/* @__PURE__ */
|
|
296
|
-
}) }), /* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ y(w, { size: 18 }), "Compatibility"]
|
|
302
|
+
}) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ y("div", {
|
|
297
303
|
className: "space-y-2",
|
|
298
|
-
children: Object.keys(
|
|
304
|
+
children: Object.keys(q.compatibility).length === 0 ? /* @__PURE__ */ y("p", {
|
|
299
305
|
className: "text-sm text-text-secondary",
|
|
300
306
|
children: "This package does not declare compatibility ranges."
|
|
301
|
-
}) : Object.entries(
|
|
307
|
+
}) : Object.entries(q.compatibility).map(([e, t]) => /* @__PURE__ */ b("div", {
|
|
302
308
|
className: "flex justify-between",
|
|
303
|
-
children: [/* @__PURE__ */
|
|
309
|
+
children: [/* @__PURE__ */ y("span", {
|
|
304
310
|
className: "text-text-secondary capitalize",
|
|
305
311
|
children: e
|
|
306
|
-
}), /* @__PURE__ */
|
|
312
|
+
}), /* @__PURE__ */ y(d, {
|
|
307
313
|
variant: "outline",
|
|
308
314
|
children: t
|
|
309
315
|
})]
|
|
310
316
|
}, e))
|
|
311
|
-
}) })] }), /* @__PURE__ */
|
|
317
|
+
}) })] }), /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ b(u, {
|
|
312
318
|
className: "flex items-center gap-2",
|
|
313
|
-
children: [/* @__PURE__ */
|
|
314
|
-
}) }), /* @__PURE__ */
|
|
319
|
+
children: [/* @__PURE__ */ y(j, { size: 18 }), "Security"]
|
|
320
|
+
}) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b("div", {
|
|
315
321
|
className: "space-y-3",
|
|
316
322
|
children: [
|
|
317
|
-
/* @__PURE__ */
|
|
323
|
+
/* @__PURE__ */ b("div", {
|
|
318
324
|
className: "flex items-center justify-between",
|
|
319
|
-
children: [/* @__PURE__ */
|
|
325
|
+
children: [/* @__PURE__ */ y("span", {
|
|
320
326
|
className: "text-text-secondary",
|
|
321
327
|
children: "Risk Level"
|
|
322
|
-
}), /* @__PURE__ */
|
|
328
|
+
}), /* @__PURE__ */ y(F, { risk: q.risk })]
|
|
323
329
|
}),
|
|
324
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ b("div", {
|
|
325
331
|
className: "flex items-center justify-between",
|
|
326
|
-
children: [/* @__PURE__ */
|
|
332
|
+
children: [/* @__PURE__ */ y("span", {
|
|
327
333
|
className: "text-text-secondary",
|
|
328
334
|
children: "Requires Secrets"
|
|
329
|
-
}), /* @__PURE__ */
|
|
330
|
-
variant:
|
|
331
|
-
children:
|
|
335
|
+
}), /* @__PURE__ */ y(d, {
|
|
336
|
+
variant: q.requiresSecrets ? "warning" : "secondary",
|
|
337
|
+
children: q.requiresSecrets ? "Yes" : "No"
|
|
332
338
|
})]
|
|
333
339
|
}),
|
|
334
|
-
/* @__PURE__ */
|
|
340
|
+
/* @__PURE__ */ b("div", {
|
|
335
341
|
className: "flex items-center justify-between",
|
|
336
|
-
children: [/* @__PURE__ */
|
|
342
|
+
children: [/* @__PURE__ */ y("span", {
|
|
337
343
|
className: "text-text-secondary",
|
|
338
344
|
children: "Network Egress"
|
|
339
|
-
}), /* @__PURE__ */
|
|
340
|
-
variant:
|
|
345
|
+
}), /* @__PURE__ */ y(d, {
|
|
346
|
+
variant: q.networkEgress === "any" ? "warning" : q.networkEgress === "restricted" ? "secondary" : "success",
|
|
341
347
|
className: "capitalize",
|
|
342
|
-
children:
|
|
348
|
+
children: q.networkEgress ?? "unknown"
|
|
343
349
|
})]
|
|
344
350
|
})
|
|
345
351
|
]
|
|
346
352
|
}) })] })]
|
|
347
353
|
}),
|
|
348
|
-
/* @__PURE__ */
|
|
354
|
+
/* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ y(u, { children: "Integrity" }) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b("div", {
|
|
349
355
|
className: "space-y-2",
|
|
350
|
-
children: [/* @__PURE__ */
|
|
356
|
+
children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
351
357
|
className: "text-sm text-text-secondary",
|
|
352
358
|
children: "Checksum"
|
|
353
|
-
}), /* @__PURE__ */
|
|
359
|
+
}), /* @__PURE__ */ y("p", {
|
|
354
360
|
className: "font-mono text-sm break-all",
|
|
355
|
-
children:
|
|
356
|
-
})] }),
|
|
361
|
+
children: q.checksum ?? "—"
|
|
362
|
+
})] }), q.signature && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
357
363
|
className: "text-sm text-text-secondary",
|
|
358
364
|
children: "Signature"
|
|
359
|
-
}), /* @__PURE__ */
|
|
365
|
+
}), /* @__PURE__ */ y("p", {
|
|
360
366
|
className: "font-mono text-sm break-all",
|
|
361
|
-
children:
|
|
367
|
+
children: q.signature
|
|
362
368
|
})] })]
|
|
363
369
|
}) })] })
|
|
364
370
|
]
|
|
365
|
-
}),
|
|
371
|
+
}), G && /* @__PURE__ */ y("div", {
|
|
366
372
|
className: "fixed inset-0 bg-black/50 flex items-center justify-center z-50",
|
|
367
|
-
children: /* @__PURE__ */
|
|
373
|
+
children: /* @__PURE__ */ b(o, {
|
|
368
374
|
className: "w-full max-w-md",
|
|
369
|
-
children: [/* @__PURE__ */
|
|
375
|
+
children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y(u, { children: "Install Package" }), /* @__PURE__ */ b(c, { children: [
|
|
370
376
|
"Install ",
|
|
371
|
-
|
|
377
|
+
q.name ?? z.slug,
|
|
372
378
|
" v",
|
|
373
|
-
|
|
374
|
-
] })] }), /* @__PURE__ */
|
|
379
|
+
z.version
|
|
380
|
+
] })] }), /* @__PURE__ */ b(s, {
|
|
375
381
|
className: "space-y-4",
|
|
376
382
|
children: [
|
|
377
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
378
384
|
className: "text-sm font-medium mb-2",
|
|
379
385
|
children: "Install Mode"
|
|
380
|
-
}), /* @__PURE__ */
|
|
386
|
+
}), /* @__PURE__ */ b("div", {
|
|
381
387
|
className: "space-y-2",
|
|
382
|
-
children: [/* @__PURE__ */
|
|
388
|
+
children: [/* @__PURE__ */ b("label", {
|
|
383
389
|
className: "flex items-start gap-3 p-3 border border-border-subtle rounded-lg cursor-pointer hover:bg-accent",
|
|
384
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ y("input", {
|
|
385
391
|
type: "radio",
|
|
386
392
|
name: "mode",
|
|
387
393
|
value: "LINKED",
|
|
388
|
-
checked:
|
|
389
|
-
onChange: () =>
|
|
394
|
+
checked: U === h.Linked,
|
|
395
|
+
onChange: () => W(h.Linked),
|
|
390
396
|
className: "mt-1"
|
|
391
|
-
}), /* @__PURE__ */
|
|
397
|
+
}), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
392
398
|
className: "font-medium",
|
|
393
399
|
children: "Linked"
|
|
394
|
-
}), /* @__PURE__ */
|
|
400
|
+
}), /* @__PURE__ */ y("p", {
|
|
395
401
|
className: "text-sm text-text-secondary",
|
|
396
402
|
children: "Stay in sync with store updates. Recommended for most cases."
|
|
397
403
|
})] })]
|
|
398
|
-
}), /* @__PURE__ */
|
|
404
|
+
}), /* @__PURE__ */ b("label", {
|
|
399
405
|
className: "flex items-start gap-3 p-3 border border-border-subtle rounded-lg cursor-pointer hover:bg-accent",
|
|
400
|
-
children: [/* @__PURE__ */
|
|
406
|
+
children: [/* @__PURE__ */ y("input", {
|
|
401
407
|
type: "radio",
|
|
402
408
|
name: "mode",
|
|
403
409
|
value: "FORKED",
|
|
404
|
-
checked:
|
|
405
|
-
onChange: () =>
|
|
410
|
+
checked: U === h.Forked,
|
|
411
|
+
onChange: () => W(h.Forked),
|
|
406
412
|
className: "mt-1"
|
|
407
|
-
}), /* @__PURE__ */
|
|
413
|
+
}), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
|
|
408
414
|
className: "font-medium",
|
|
409
415
|
children: "Forked"
|
|
410
|
-
}), /* @__PURE__ */
|
|
416
|
+
}), /* @__PURE__ */ y("p", {
|
|
411
417
|
className: "text-sm text-text-secondary",
|
|
412
418
|
children: "Create a local copy you can customize. No automatic updates."
|
|
413
419
|
})] })]
|
|
414
420
|
})]
|
|
415
421
|
})] }),
|
|
416
|
-
|
|
422
|
+
q.requiresSecrets && /* @__PURE__ */ b("div", {
|
|
417
423
|
className: "p-3 bg-status-warning-bg-subtle rounded-lg",
|
|
418
|
-
children: [/* @__PURE__ */
|
|
424
|
+
children: [/* @__PURE__ */ b("div", {
|
|
419
425
|
className: "flex items-center gap-2 text-status-warning-text",
|
|
420
|
-
children: [/* @__PURE__ */
|
|
426
|
+
children: [/* @__PURE__ */ y(S, { size: 16 }), /* @__PURE__ */ y("span", {
|
|
421
427
|
className: "text-sm font-medium",
|
|
422
428
|
children: "Requires Secrets"
|
|
423
429
|
})]
|
|
424
|
-
}), /* @__PURE__ */
|
|
430
|
+
}), /* @__PURE__ */ y("p", {
|
|
425
431
|
className: "text-sm text-text-secondary mt-1",
|
|
426
432
|
children: "This package requires secret configuration after installation."
|
|
427
433
|
})]
|
|
428
434
|
}),
|
|
429
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ b("div", {
|
|
430
436
|
className: "flex justify-end gap-2 pt-4",
|
|
431
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ y(a, {
|
|
432
438
|
variant: "outline",
|
|
433
|
-
onClick: () =>
|
|
439
|
+
onClick: () => K(!1),
|
|
434
440
|
children: "Cancel"
|
|
435
|
-
}), /* @__PURE__ */
|
|
436
|
-
onClick: () => void
|
|
437
|
-
isLoading:
|
|
438
|
-
leftIcon: /* @__PURE__ */
|
|
441
|
+
}), /* @__PURE__ */ y(a, {
|
|
442
|
+
onClick: () => void J(),
|
|
443
|
+
isLoading: H,
|
|
444
|
+
leftIcon: /* @__PURE__ */ y(T, { size: 16 }),
|
|
439
445
|
children: "Install"
|
|
440
446
|
})]
|
|
441
447
|
})
|
|
@@ -443,20 +449,20 @@ var L = () => {
|
|
|
443
449
|
})]
|
|
444
450
|
})
|
|
445
451
|
})]
|
|
446
|
-
}) : /* @__PURE__ */
|
|
452
|
+
}) : /* @__PURE__ */ y(i, {
|
|
447
453
|
title: "Package Not Found",
|
|
448
|
-
children: /* @__PURE__ */
|
|
454
|
+
children: /* @__PURE__ */ y(f, {
|
|
449
455
|
illustration: "empty-search",
|
|
450
456
|
title: "Package Not Found",
|
|
451
457
|
description: "This package doesn't exist.",
|
|
452
|
-
action: /* @__PURE__ */
|
|
453
|
-
onClick: () =>
|
|
458
|
+
action: /* @__PURE__ */ y(a, {
|
|
459
|
+
onClick: () => L("store"),
|
|
454
460
|
children: "Back to Store"
|
|
455
461
|
})
|
|
456
462
|
})
|
|
457
463
|
});
|
|
458
464
|
};
|
|
459
465
|
//#endregion
|
|
460
|
-
export {
|
|
466
|
+
export { z as StorePackageDetailPage };
|
|
461
467
|
|
|
462
468
|
//# sourceMappingURL=StorePackageDetailPage.js.map
|