@burdenoff/microfe-store 2026.916.2 → 2026.918.1
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/StoreAdminRoutes.js +18 -8
- package/dist/StoreAdminRoutes.js.map +1 -1
- package/dist/generated/global-types.js +5 -7
- package/dist/generated/global-types.js.map +1 -1
- package/dist/pages/AdminDashboardPage.js +203 -194
- package/dist/pages/AdminDashboardPage.js.map +1 -1
- package/dist/pages/AdminNodeSandboxBuildsPage.d.ts +12 -0
- package/dist/pages/AdminNodeSandboxBuildsPage.js +277 -0
- package/dist/pages/AdminNodeSandboxBuildsPage.js.map +1 -0
- package/dist/pages/AdminSubmissionsQueuePage.js +396 -312
- package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +454 -497
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,17 +4,17 @@ import { useCart as n } from "../hooks/useCart.js";
|
|
|
4
4
|
import { formatPrice as r } from "../utils/index.js";
|
|
5
5
|
import { useBrowseStoreWithContext as i, useHomeGroupedProducts as ee } from "../hooks/useStoreGraphQL.js";
|
|
6
6
|
import { useTr as a } from "../shared/hooks/useTr.js";
|
|
7
|
-
import { PricingModel as o,
|
|
7
|
+
import { PricingModel as o, StoreSortBy as s } from "../generated/global-types.js";
|
|
8
8
|
import { CartDrawer as te } from "../components/cart/CartDrawer.js";
|
|
9
|
-
import { useCallback as ne, useEffect as re, useId as ie, useMemo as
|
|
9
|
+
import { useCallback as ne, useEffect as re, useId as ie, useMemo as c, useRef as ae, useState as l } from "react";
|
|
10
10
|
import { useNavigate as oe } from "react-router";
|
|
11
|
-
import { AlertCircle as
|
|
12
|
-
import { Fragment as
|
|
13
|
-
import { AuroraBackground as
|
|
14
|
-
import { useEventBus as
|
|
15
|
-
import { useDebounce as
|
|
11
|
+
import { AlertCircle as u, Bot as d, Box as f, Brain as se, ChevronDown as p, ChevronRight as ce, Clock as le, Database as ue, Download as de, FileCode2 as fe, Filter as pe, Gift as me, GitBranch as m, LayoutDashboard as h, Loader2 as he, Puzzle as g, Search as ge, ShoppingBag as _e, ShoppingCart as ve, SlidersHorizontal as ye, Sparkles as _, Star as v, TrendingUp as be, X as y } from "lucide-react";
|
|
12
|
+
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
13
|
+
import { AuroraBackground as xe, GlassCard as Se, GradientText as Ce, IllustratedEmptyState as we, PagePurpose as Te } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { useEventBus as Ee } from "@burdenoff/fe-libs/shared/events";
|
|
15
|
+
import { useDebounce as De } from "@burdenoff/fe-libs/shared/hooks";
|
|
16
16
|
//#region src/pages/MarketplaceHomePage.tsx
|
|
17
|
-
var
|
|
17
|
+
var C = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : e.toString(), w = (e, t) => e.pricingModel === "FREE" || e.price === 0 ? t ? t("pages.marketplace.free", "Free") : "Free" : r(e.price, e.currency), T = (e) => ({
|
|
18
18
|
BOTAPP: "var(--color-accent-blue)",
|
|
19
19
|
AGENT: "var(--color-accent-purple)",
|
|
20
20
|
CONSOLE: "var(--color-accent-teal)",
|
|
@@ -32,114 +32,114 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
32
32
|
THEME: "var(--color-accent-purple)",
|
|
33
33
|
PLUGIN: "var(--color-status-success-bg)",
|
|
34
34
|
COMPONENT: "var(--color-accent-blue)"
|
|
35
|
-
})[e] || "var(--color-text-muted)",
|
|
36
|
-
BOTAPP:
|
|
35
|
+
})[e] || "var(--color-text-muted)", E = (e) => `color-mix(in srgb, ${T(e)}, transparent 85%)`, D = {
|
|
36
|
+
BOTAPP: d,
|
|
37
37
|
AGENT: se,
|
|
38
|
-
CONSOLE:
|
|
39
|
-
WORKFLOW:
|
|
40
|
-
NODE:
|
|
41
|
-
WIDGET:
|
|
42
|
-
VIBEMODULE:
|
|
43
|
-
DASHBOARD:
|
|
38
|
+
CONSOLE: h,
|
|
39
|
+
WORKFLOW: m,
|
|
40
|
+
NODE: f,
|
|
41
|
+
WIDGET: g,
|
|
42
|
+
VIBEMODULE: g,
|
|
43
|
+
DASHBOARD: h,
|
|
44
44
|
PARSER: fe,
|
|
45
45
|
DATASINK: ue,
|
|
46
|
-
APP:
|
|
47
|
-
TEMPLATE:
|
|
48
|
-
INTEGRATION:
|
|
49
|
-
EXTENSION:
|
|
50
|
-
THEME:
|
|
51
|
-
PLUGIN:
|
|
52
|
-
COMPONENT:
|
|
53
|
-
},
|
|
46
|
+
APP: f,
|
|
47
|
+
TEMPLATE: h,
|
|
48
|
+
INTEGRATION: m,
|
|
49
|
+
EXTENSION: g,
|
|
50
|
+
THEME: g,
|
|
51
|
+
PLUGIN: g,
|
|
52
|
+
COMPONENT: f
|
|
53
|
+
}, O = ({ type: e, className: t, style: n }) => /* @__PURE__ */ x(D[e] || f, {
|
|
54
54
|
className: t,
|
|
55
55
|
style: n
|
|
56
|
-
}),
|
|
57
|
-
let r = a(), i =
|
|
58
|
-
return n === "featured" ? /* @__PURE__ */
|
|
56
|
+
}), k = ({ product: e, onClick: t, variant: n = "default" }) => {
|
|
57
|
+
let r = a(), i = T(e.type);
|
|
58
|
+
return n === "featured" ? /* @__PURE__ */ S("button", {
|
|
59
59
|
type: "button",
|
|
60
60
|
onClick: t,
|
|
61
61
|
className: "group relative flex size-full cursor-pointer flex-col overflow-hidden rounded-2xl border border-border-seam bg-gradient-to-br from-bg-surface to-bg-sunken p-6 text-left shadow-elevation-1 transition-[box-shadow,border-color,color] hover:border-border-strong hover:shadow-[var(--shadow-pop)]",
|
|
62
62
|
children: [
|
|
63
|
-
e.featured && /* @__PURE__ */
|
|
63
|
+
e.featured && /* @__PURE__ */ S("div", {
|
|
64
64
|
className: "absolute right-4 top-4 flex items-center gap-1 rounded-full bg-status-warning-bg-subtle px-2 py-1 text-xs font-medium text-status-warning-text",
|
|
65
|
-
children: [/* @__PURE__ */
|
|
65
|
+
children: [/* @__PURE__ */ x(_, { className: "size-3" }), r("pages.marketplace.featured", "Featured")]
|
|
66
66
|
}),
|
|
67
|
-
/* @__PURE__ */
|
|
67
|
+
/* @__PURE__ */ S("div", {
|
|
68
68
|
className: "flex items-start gap-4",
|
|
69
|
-
children: [/* @__PURE__ */
|
|
69
|
+
children: [/* @__PURE__ */ x("div", {
|
|
70
70
|
className: "flex size-16 flex-shrink-0 items-center justify-center rounded-2xl",
|
|
71
|
-
style: { backgroundColor:
|
|
72
|
-
children: e.icon ? /* @__PURE__ */
|
|
71
|
+
style: { backgroundColor: E(e.type) },
|
|
72
|
+
children: e.icon ? /* @__PURE__ */ x("img", {
|
|
73
73
|
src: e.icon,
|
|
74
74
|
alt: e.name,
|
|
75
75
|
className: "size-10 rounded-lg object-cover"
|
|
76
|
-
}) : /* @__PURE__ */
|
|
76
|
+
}) : /* @__PURE__ */ x(O, {
|
|
77
77
|
type: e.type,
|
|
78
78
|
className: "size-10",
|
|
79
79
|
style: { color: i }
|
|
80
80
|
})
|
|
81
|
-
}), /* @__PURE__ */
|
|
81
|
+
}), /* @__PURE__ */ S("div", {
|
|
82
82
|
className: "flex-1 overflow-hidden",
|
|
83
|
-
children: [/* @__PURE__ */
|
|
83
|
+
children: [/* @__PURE__ */ x("h3", {
|
|
84
84
|
className: "truncate text-lg font-semibold text-text-primary group-hover:text-text-link",
|
|
85
85
|
children: e.name
|
|
86
|
-
}), /* @__PURE__ */
|
|
86
|
+
}), /* @__PURE__ */ S("p", {
|
|
87
87
|
className: "flex items-center gap-2 text-sm text-text-muted",
|
|
88
|
-
children: [/* @__PURE__ */
|
|
88
|
+
children: [/* @__PURE__ */ x(O, {
|
|
89
89
|
type: e.type,
|
|
90
90
|
className: "size-3.5"
|
|
91
91
|
}), e.category || e.type]
|
|
92
92
|
})]
|
|
93
93
|
})]
|
|
94
94
|
}),
|
|
95
|
-
/* @__PURE__ */
|
|
95
|
+
/* @__PURE__ */ x("p", {
|
|
96
96
|
className: "mt-4 line-clamp-2 flex-1 text-sm text-text-muted",
|
|
97
97
|
children: e.description || r("pages.productDetail.noDesc", "No description available")
|
|
98
98
|
}),
|
|
99
|
-
/* @__PURE__ */
|
|
99
|
+
/* @__PURE__ */ S("div", {
|
|
100
100
|
className: "mt-4 flex items-center justify-between border-t border-border-seam pt-4",
|
|
101
|
-
children: [/* @__PURE__ */
|
|
101
|
+
children: [/* @__PURE__ */ S("div", {
|
|
102
102
|
className: "flex items-center gap-3",
|
|
103
|
-
children: [/* @__PURE__ */
|
|
103
|
+
children: [/* @__PURE__ */ S("span", {
|
|
104
104
|
className: "flex items-center gap-1 text-sm text-text-muted",
|
|
105
|
-
children: [/* @__PURE__ */
|
|
106
|
-
}), e.nature === "PHYSICAL" ? /* @__PURE__ */
|
|
105
|
+
children: [/* @__PURE__ */ x(v, { className: "size-4 fill-current text-status-warning-text" }), (e.rating ?? 0).toFixed(1)]
|
|
106
|
+
}), e.nature === "PHYSICAL" ? /* @__PURE__ */ S("span", {
|
|
107
107
|
className: "flex items-center gap-1 text-sm text-text-muted",
|
|
108
|
-
children: [/* @__PURE__ */
|
|
109
|
-
}) : /* @__PURE__ */
|
|
108
|
+
children: [/* @__PURE__ */ x(_e, { className: "size-4" }), C(e.purchaseCount)]
|
|
109
|
+
}) : /* @__PURE__ */ S("span", {
|
|
110
110
|
className: "flex items-center gap-1 text-sm text-text-muted",
|
|
111
|
-
children: [/* @__PURE__ */
|
|
111
|
+
children: [/* @__PURE__ */ x(de, { className: "size-4" }), C(e.downloads)]
|
|
112
112
|
})]
|
|
113
|
-
}), /* @__PURE__ */
|
|
113
|
+
}), /* @__PURE__ */ x("span", {
|
|
114
114
|
className: "rounded-full bg-action-primary-bg/10 px-3 py-1 text-sm font-medium text-text-link",
|
|
115
|
-
children:
|
|
115
|
+
children: w(e, r)
|
|
116
116
|
})]
|
|
117
117
|
})
|
|
118
118
|
]
|
|
119
|
-
}) : n === "compact" ? /* @__PURE__ */
|
|
119
|
+
}) : n === "compact" ? /* @__PURE__ */ S("button", {
|
|
120
120
|
type: "button",
|
|
121
121
|
onClick: t,
|
|
122
122
|
className: "group flex cursor-pointer items-center gap-3 rounded-xl border border-transparent p-3 text-left transition-[background-color,border-color] hover:border-border-seam hover:bg-bg-surface",
|
|
123
123
|
children: [
|
|
124
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ x("div", {
|
|
125
125
|
className: "flex size-12 flex-shrink-0 items-center justify-center rounded-xl",
|
|
126
|
-
style: { backgroundColor:
|
|
127
|
-
children: e.icon ? /* @__PURE__ */
|
|
126
|
+
style: { backgroundColor: E(e.type) },
|
|
127
|
+
children: e.icon ? /* @__PURE__ */ x("img", {
|
|
128
128
|
src: e.icon,
|
|
129
129
|
alt: e.name,
|
|
130
130
|
className: "size-8 rounded-lg object-cover"
|
|
131
|
-
}) : /* @__PURE__ */
|
|
131
|
+
}) : /* @__PURE__ */ x(O, {
|
|
132
132
|
type: e.type,
|
|
133
133
|
className: "size-8",
|
|
134
134
|
style: { color: i }
|
|
135
135
|
})
|
|
136
136
|
}),
|
|
137
|
-
/* @__PURE__ */
|
|
137
|
+
/* @__PURE__ */ S("div", {
|
|
138
138
|
className: "flex-1 overflow-hidden",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
139
|
+
children: [/* @__PURE__ */ x("h4", {
|
|
140
140
|
className: "truncate font-medium text-text-primary group-hover:text-text-link",
|
|
141
141
|
children: e.name
|
|
142
|
-
}), /* @__PURE__ */
|
|
142
|
+
}), /* @__PURE__ */ S("p", {
|
|
143
143
|
className: "truncate text-xs text-text-muted",
|
|
144
144
|
children: [
|
|
145
145
|
e.category || e.type,
|
|
@@ -149,216 +149,216 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
149
149
|
]
|
|
150
150
|
})]
|
|
151
151
|
}),
|
|
152
|
-
/* @__PURE__ */
|
|
152
|
+
/* @__PURE__ */ x("span", {
|
|
153
153
|
className: "text-xs font-medium text-text-muted",
|
|
154
|
-
children:
|
|
154
|
+
children: w(e, r)
|
|
155
155
|
})
|
|
156
156
|
]
|
|
157
|
-
}) : /* @__PURE__ */
|
|
157
|
+
}) : /* @__PURE__ */ S("button", {
|
|
158
158
|
type: "button",
|
|
159
159
|
onClick: t,
|
|
160
160
|
className: "group flex cursor-pointer flex-col overflow-hidden rounded-xl border border-border-seam bg-bg-surface p-4 text-left shadow-elevation-1 transition-[box-shadow,border-color,color] hover:border-border-strong hover:shadow-[var(--shadow-pop)]",
|
|
161
161
|
children: [
|
|
162
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ S("div", {
|
|
163
163
|
className: "flex items-start gap-3",
|
|
164
|
-
children: [/* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ x("div", {
|
|
165
165
|
className: "flex size-14 flex-shrink-0 items-center justify-center rounded-xl",
|
|
166
|
-
style: { backgroundColor:
|
|
167
|
-
children: e.icon ? /* @__PURE__ */
|
|
166
|
+
style: { backgroundColor: E(e.type) },
|
|
167
|
+
children: e.icon ? /* @__PURE__ */ x("img", {
|
|
168
168
|
src: e.icon,
|
|
169
169
|
alt: e.name,
|
|
170
170
|
className: "size-9 rounded-lg object-cover"
|
|
171
|
-
}) : /* @__PURE__ */
|
|
171
|
+
}) : /* @__PURE__ */ x(O, {
|
|
172
172
|
type: e.type,
|
|
173
173
|
className: "size-9",
|
|
174
174
|
style: { color: i }
|
|
175
175
|
})
|
|
176
|
-
}), /* @__PURE__ */
|
|
176
|
+
}), /* @__PURE__ */ S("div", {
|
|
177
177
|
className: "flex-1 overflow-hidden",
|
|
178
|
-
children: [/* @__PURE__ */
|
|
178
|
+
children: [/* @__PURE__ */ x("h4", {
|
|
179
179
|
className: "truncate font-semibold text-text-primary group-hover:text-text-link",
|
|
180
180
|
children: e.name
|
|
181
|
-
}), /* @__PURE__ */
|
|
181
|
+
}), /* @__PURE__ */ S("p", {
|
|
182
182
|
className: "flex items-center gap-1.5 text-xs text-text-muted",
|
|
183
|
-
children: [/* @__PURE__ */
|
|
183
|
+
children: [/* @__PURE__ */ x(O, {
|
|
184
184
|
type: e.type,
|
|
185
185
|
className: "size-3"
|
|
186
186
|
}), e.category || e.type]
|
|
187
187
|
})]
|
|
188
188
|
})]
|
|
189
189
|
}),
|
|
190
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ x("p", {
|
|
191
191
|
className: "mt-3 line-clamp-2 text-sm text-text-muted",
|
|
192
192
|
children: e.description || r("pages.productDetail.noDesc", "No description available")
|
|
193
193
|
}),
|
|
194
|
-
/* @__PURE__ */
|
|
194
|
+
/* @__PURE__ */ S("div", {
|
|
195
195
|
className: "mt-3 flex items-center justify-between",
|
|
196
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ S("div", {
|
|
197
197
|
className: "flex items-center gap-2",
|
|
198
198
|
children: [
|
|
199
|
-
/* @__PURE__ */
|
|
199
|
+
/* @__PURE__ */ S("span", {
|
|
200
200
|
className: "flex items-center gap-0.5 text-xs text-text-muted",
|
|
201
|
-
children: [/* @__PURE__ */
|
|
201
|
+
children: [/* @__PURE__ */ x(v, { className: "size-3.5 fill-current text-status-warning-text" }), (e.rating ?? 0).toFixed(1)]
|
|
202
202
|
}),
|
|
203
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ x("span", {
|
|
204
204
|
className: "text-xs text-text-muted",
|
|
205
205
|
children: "·"
|
|
206
206
|
}),
|
|
207
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ x("span", {
|
|
208
208
|
className: "text-xs text-text-muted",
|
|
209
|
-
children: e.nature === "PHYSICAL" ? r("pages.marketplace.purchases", "{{count}} purchases", { count:
|
|
209
|
+
children: e.nature === "PHYSICAL" ? r("pages.marketplace.purchases", "{{count}} purchases", { count: C(e.purchaseCount) }) : r("pages.marketplace.downloads", "{{count}} downloads", { count: C(e.downloads) })
|
|
210
210
|
})
|
|
211
211
|
]
|
|
212
|
-
}), /* @__PURE__ */
|
|
212
|
+
}), /* @__PURE__ */ x("span", {
|
|
213
213
|
className: "text-xs font-semibold text-text-link",
|
|
214
|
-
children:
|
|
214
|
+
children: w(e, r)
|
|
215
215
|
})]
|
|
216
216
|
})
|
|
217
217
|
]
|
|
218
218
|
});
|
|
219
|
-
},
|
|
219
|
+
}, Oe = ({ product: e, onClick: t }) => {
|
|
220
220
|
let n = a();
|
|
221
|
-
return /* @__PURE__ */
|
|
221
|
+
return /* @__PURE__ */ S("button", {
|
|
222
222
|
type: "button",
|
|
223
223
|
onClick: t,
|
|
224
224
|
className: "group flex cursor-pointer items-center gap-3 rounded-xl border border-status-warning-border/30 bg-bg-surface p-4 text-left shadow-elevation-1 transition-all hover:border-status-warning-border/60 hover:shadow-[var(--shadow-pop)]",
|
|
225
|
-
children: [/* @__PURE__ */
|
|
225
|
+
children: [/* @__PURE__ */ S("div", {
|
|
226
226
|
className: "relative flex size-14 flex-shrink-0 items-center justify-center rounded-xl bg-status-warning-bg-subtle",
|
|
227
|
-
children: [e.icon ? /* @__PURE__ */
|
|
227
|
+
children: [e.icon ? /* @__PURE__ */ x("img", {
|
|
228
228
|
src: e.icon,
|
|
229
229
|
alt: e.name,
|
|
230
230
|
className: "size-9 rounded-lg object-cover grayscale"
|
|
231
|
-
}) : /* @__PURE__ */
|
|
231
|
+
}) : /* @__PURE__ */ x(f, { className: "size-9 text-status-warning-text/50" }), /* @__PURE__ */ x("span", {
|
|
232
232
|
className: "absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-status-warning-bg-subtle border border-status-warning-border/40",
|
|
233
|
-
children: /* @__PURE__ */
|
|
233
|
+
children: /* @__PURE__ */ x(u, { className: "size-2.5 text-status-warning-text" })
|
|
234
234
|
})]
|
|
235
|
-
}), /* @__PURE__ */
|
|
235
|
+
}), /* @__PURE__ */ S("div", {
|
|
236
236
|
className: "min-w-0 flex-1",
|
|
237
|
-
children: [/* @__PURE__ */
|
|
237
|
+
children: [/* @__PURE__ */ x("h4", {
|
|
238
238
|
className: "truncate font-semibold text-text-secondary group-hover:text-text-link",
|
|
239
239
|
children: e.name
|
|
240
|
-
}), /* @__PURE__ */
|
|
240
|
+
}), /* @__PURE__ */ S("span", {
|
|
241
241
|
title: n("pages.marketplace.deprecatedHint", "This node is no longer supported. We encourage you to migrate to newer alternatives."),
|
|
242
242
|
className: "mt-1 inline-flex cursor-help items-center gap-1 rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text",
|
|
243
|
-
children: [/* @__PURE__ */
|
|
243
|
+
children: [/* @__PURE__ */ x(u, { className: "size-3" }), n("pages.marketplace.deprecated", "No Longer Supported")]
|
|
244
244
|
})]
|
|
245
245
|
})]
|
|
246
246
|
});
|
|
247
|
-
},
|
|
247
|
+
}, A = ({ icon: e, title: t, subtitle: n, onViewAll: r }) => {
|
|
248
248
|
let i = a();
|
|
249
|
-
return /* @__PURE__ */
|
|
249
|
+
return /* @__PURE__ */ S("div", {
|
|
250
250
|
className: "mb-4 flex items-center justify-between",
|
|
251
|
-
children: [/* @__PURE__ */
|
|
251
|
+
children: [/* @__PURE__ */ S("div", {
|
|
252
252
|
className: "flex items-center gap-3",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
253
|
+
children: [/* @__PURE__ */ x("div", {
|
|
254
254
|
className: "flex size-10 items-center justify-center rounded-xl bg-action-primary-bg/10",
|
|
255
|
-
children: /* @__PURE__ */
|
|
256
|
-
}), /* @__PURE__ */
|
|
255
|
+
children: /* @__PURE__ */ x(e, { className: "size-5 text-text-link" })
|
|
256
|
+
}), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h2", {
|
|
257
257
|
className: "text-lg font-semibold text-text-primary",
|
|
258
258
|
children: t
|
|
259
|
-
}), n && /* @__PURE__ */
|
|
259
|
+
}), n && /* @__PURE__ */ x("p", {
|
|
260
260
|
className: "text-sm text-text-muted",
|
|
261
261
|
children: n
|
|
262
262
|
})] })]
|
|
263
|
-
}), r && /* @__PURE__ */
|
|
263
|
+
}), r && /* @__PURE__ */ S("button", {
|
|
264
264
|
type: "button",
|
|
265
265
|
onClick: r,
|
|
266
266
|
className: "cursor-pointer flex items-center gap-1 text-sm font-medium text-text-link hover:underline",
|
|
267
|
-
children: [i("pages.marketplace.viewAll", "View all"), /* @__PURE__ */
|
|
267
|
+
children: [i("pages.marketplace.viewAll", "View all"), /* @__PURE__ */ x(ce, { className: "size-4" })]
|
|
268
268
|
})]
|
|
269
269
|
});
|
|
270
|
-
},
|
|
270
|
+
}, ke = ({ typeId: e, name: t, count: n, active: r, onClick: i }) => /* @__PURE__ */ S("button", {
|
|
271
271
|
type: "button",
|
|
272
272
|
onClick: i,
|
|
273
273
|
className: `flex cursor-pointer items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition-all ${r ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-surface text-text-primary hover:bg-bg-sunken"}`,
|
|
274
274
|
children: [
|
|
275
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ x(O, {
|
|
276
276
|
type: e,
|
|
277
277
|
className: "size-4"
|
|
278
278
|
}),
|
|
279
279
|
t,
|
|
280
|
-
/* @__PURE__ */
|
|
280
|
+
/* @__PURE__ */ x("span", {
|
|
281
281
|
className: `rounded-full px-1.5 py-0.5 text-xs ${r ? "bg-bg-surface/20" : "bg-bg-sunken"}`,
|
|
282
282
|
children: n
|
|
283
283
|
})
|
|
284
284
|
]
|
|
285
|
-
}),
|
|
286
|
-
let r = a(), [i, ee] =
|
|
285
|
+
}), Ae = ({ featuredProducts: e, onProductClick: t, dataTour: n }) => {
|
|
286
|
+
let r = a(), [i, ee] = l(0), o = e[i] || e[0];
|
|
287
287
|
if (!o) return null;
|
|
288
|
-
let s =
|
|
289
|
-
return /* @__PURE__ */
|
|
288
|
+
let s = T(o.type);
|
|
289
|
+
return /* @__PURE__ */ S(Se, {
|
|
290
290
|
treatment: "glass",
|
|
291
291
|
glow: !0,
|
|
292
292
|
"data-tour": n,
|
|
293
293
|
className: "relative overflow-hidden rounded-2xl p-8",
|
|
294
294
|
children: [
|
|
295
|
-
/* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ x("div", {
|
|
296
296
|
className: "absolute inset-0 opacity-10",
|
|
297
297
|
style: { background: `linear-gradient(135deg, ${s} 0%, transparent 50%)` }
|
|
298
298
|
}),
|
|
299
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ S("div", {
|
|
300
300
|
className: "relative z-10 flex items-center gap-8",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ S("div", {
|
|
302
302
|
className: "flex-1",
|
|
303
303
|
children: [
|
|
304
|
-
/* @__PURE__ */
|
|
304
|
+
/* @__PURE__ */ S("div", {
|
|
305
305
|
className: "mb-4 flex items-center gap-2",
|
|
306
|
-
children: [/* @__PURE__ */
|
|
306
|
+
children: [/* @__PURE__ */ S("span", {
|
|
307
307
|
className: "flex items-center gap-1 rounded-full bg-status-warning-bg-subtle px-3 py-1 text-xs font-semibold text-status-warning-text motion-safe:animate-vc-glow-pulse",
|
|
308
|
-
children: [/* @__PURE__ */
|
|
309
|
-
}), /* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ x(_, { className: "size-3" }), r("pages.marketplace.featuredApp", "Featured App")]
|
|
309
|
+
}), /* @__PURE__ */ x("span", {
|
|
310
310
|
className: "rounded-full bg-action-primary-bg/10 px-3 py-1 text-xs font-medium text-text-link",
|
|
311
311
|
children: o.category || o.type
|
|
312
312
|
})]
|
|
313
313
|
}),
|
|
314
|
-
/* @__PURE__ */
|
|
314
|
+
/* @__PURE__ */ x("h1", {
|
|
315
315
|
className: "mb-3 text-3xl font-bold text-text-primary",
|
|
316
316
|
children: o.name
|
|
317
317
|
}),
|
|
318
|
-
/* @__PURE__ */
|
|
318
|
+
/* @__PURE__ */ x("p", {
|
|
319
319
|
className: "mb-6 max-w-xl text-text-muted",
|
|
320
320
|
children: o.description || r("pages.productDetail.noDesc", "No description available")
|
|
321
321
|
}),
|
|
322
|
-
/* @__PURE__ */
|
|
322
|
+
/* @__PURE__ */ S("div", {
|
|
323
323
|
className: "mb-6 flex items-center gap-4",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
324
|
+
children: [/* @__PURE__ */ S("span", {
|
|
325
325
|
className: "flex items-center gap-1 text-sm",
|
|
326
326
|
children: [
|
|
327
|
-
/* @__PURE__ */
|
|
328
|
-
/* @__PURE__ */
|
|
327
|
+
/* @__PURE__ */ x(v, { className: "size-5 fill-current text-status-warning-text" }),
|
|
328
|
+
/* @__PURE__ */ x("span", {
|
|
329
329
|
className: "font-semibold text-text-primary",
|
|
330
330
|
children: (o.rating ?? 0).toFixed(1)
|
|
331
331
|
}),
|
|
332
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ x("span", {
|
|
333
333
|
className: "text-text-muted",
|
|
334
334
|
children: r("pages.productDetail.reviews_count", "({{count}} reviews)", { count: o.reviewCount })
|
|
335
335
|
})
|
|
336
336
|
]
|
|
337
|
-
}), o.nature === "PHYSICAL" ? /* @__PURE__ */
|
|
337
|
+
}), o.nature === "PHYSICAL" ? /* @__PURE__ */ S("span", {
|
|
338
338
|
className: "flex items-center gap-1 text-sm text-text-muted",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
340
|
-
}) : /* @__PURE__ */
|
|
339
|
+
children: [/* @__PURE__ */ x(_e, { className: "size-4" }), r("pages.marketplace.purchasesCount", "{{count}} purchases", { count: o.purchaseCount.toLocaleString() })]
|
|
340
|
+
}) : /* @__PURE__ */ S("span", {
|
|
341
341
|
className: "flex items-center gap-1 text-sm text-text-muted",
|
|
342
|
-
children: [/* @__PURE__ */
|
|
342
|
+
children: [/* @__PURE__ */ x(de, { className: "size-4" }), r("pages.marketplace.downloadsCount", "{{count}} downloads", { count: o.downloads.toLocaleString() })]
|
|
343
343
|
})]
|
|
344
344
|
}),
|
|
345
|
-
/* @__PURE__ */
|
|
345
|
+
/* @__PURE__ */ x("button", {
|
|
346
346
|
type: "button",
|
|
347
347
|
onClick: () => t(o),
|
|
348
348
|
className: "cursor-pointer rounded-lg bg-action-primary-bg px-6 py-3 font-semibold text-action-primary-text transition-opacity hover:opacity-90",
|
|
349
349
|
children: r("pages.marketplace.viewDetails", "View Details")
|
|
350
350
|
})
|
|
351
351
|
]
|
|
352
|
-
}), /* @__PURE__ */
|
|
352
|
+
}), /* @__PURE__ */ x("div", {
|
|
353
353
|
className: "hidden flex-shrink-0 lg:block",
|
|
354
|
-
children: /* @__PURE__ */
|
|
354
|
+
children: /* @__PURE__ */ x("div", {
|
|
355
355
|
className: "flex size-48 items-center justify-center rounded-3xl shadow-lg",
|
|
356
|
-
style: { backgroundColor:
|
|
357
|
-
children: o.icon ? /* @__PURE__ */
|
|
356
|
+
style: { backgroundColor: E(o.type) },
|
|
357
|
+
children: o.icon ? /* @__PURE__ */ x("img", {
|
|
358
358
|
src: o.icon,
|
|
359
359
|
alt: o.name,
|
|
360
360
|
className: "size-32 rounded-2xl object-cover"
|
|
361
|
-
}) : /* @__PURE__ */
|
|
361
|
+
}) : /* @__PURE__ */ x(O, {
|
|
362
362
|
type: o.type,
|
|
363
363
|
className: "size-32",
|
|
364
364
|
style: { color: s }
|
|
@@ -366,9 +366,9 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
366
366
|
})
|
|
367
367
|
})]
|
|
368
368
|
}),
|
|
369
|
-
e.length > 1 && /* @__PURE__ */
|
|
369
|
+
e.length > 1 && /* @__PURE__ */ x("div", {
|
|
370
370
|
className: "relative z-10 mt-6 flex gap-2",
|
|
371
|
-
children: e.map((e, t) => /* @__PURE__ */
|
|
371
|
+
children: e.map((e, t) => /* @__PURE__ */ x("button", {
|
|
372
372
|
type: "button",
|
|
373
373
|
onClick: () => ee(t),
|
|
374
374
|
className: `h-2 w-8 rounded-full transition-all ${t === i ? "bg-action-primary-bg" : "bg-border-default hover:bg-action-primary-border"}`,
|
|
@@ -377,68 +377,68 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
377
377
|
})
|
|
378
378
|
]
|
|
379
379
|
});
|
|
380
|
-
},
|
|
380
|
+
}, j = ({ variant: e = "default" }) => e === "featured" ? /* @__PURE__ */ S("div", {
|
|
381
381
|
className: "h-full animate-pulse rounded-2xl border border-border-seam bg-bg-surface p-6",
|
|
382
|
-
children: [/* @__PURE__ */
|
|
382
|
+
children: [/* @__PURE__ */ S("div", {
|
|
383
383
|
className: "flex items-start gap-4",
|
|
384
|
-
children: [/* @__PURE__ */
|
|
384
|
+
children: [/* @__PURE__ */ x("div", { className: "size-16 rounded-2xl bg-bg-sunken" }), /* @__PURE__ */ S("div", {
|
|
385
385
|
className: "flex-1 space-y-2",
|
|
386
|
-
children: [/* @__PURE__ */
|
|
386
|
+
children: [/* @__PURE__ */ x("div", { className: "h-5 w-3/4 rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-4 w-1/2 rounded bg-bg-sunken" })]
|
|
387
387
|
})]
|
|
388
|
-
}), /* @__PURE__ */
|
|
388
|
+
}), /* @__PURE__ */ S("div", {
|
|
389
389
|
className: "mt-4 space-y-2",
|
|
390
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ x("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
|
|
391
391
|
})]
|
|
392
|
-
}) : e === "compact" ? /* @__PURE__ */
|
|
392
|
+
}) : e === "compact" ? /* @__PURE__ */ S("div", {
|
|
393
393
|
className: "flex animate-pulse items-center gap-3 p-3",
|
|
394
|
-
children: [/* @__PURE__ */
|
|
394
|
+
children: [/* @__PURE__ */ x("div", { className: "size-12 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ S("div", {
|
|
395
395
|
className: "flex-1 space-y-2",
|
|
396
|
-
children: [/* @__PURE__ */
|
|
396
|
+
children: [/* @__PURE__ */ x("div", { className: "h-4 w-3/4 rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-3 w-1/2 rounded bg-bg-sunken" })]
|
|
397
397
|
})]
|
|
398
|
-
}) : /* @__PURE__ */
|
|
398
|
+
}) : /* @__PURE__ */ S("div", {
|
|
399
399
|
className: "animate-pulse rounded-xl border border-border-seam bg-bg-surface p-4",
|
|
400
|
-
children: [/* @__PURE__ */
|
|
400
|
+
children: [/* @__PURE__ */ S("div", {
|
|
401
401
|
className: "flex items-start gap-3",
|
|
402
|
-
children: [/* @__PURE__ */
|
|
402
|
+
children: [/* @__PURE__ */ x("div", { className: "size-14 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ S("div", {
|
|
403
403
|
className: "flex-1 space-y-2",
|
|
404
|
-
children: [/* @__PURE__ */
|
|
404
|
+
children: [/* @__PURE__ */ x("div", { className: "h-4 w-3/4 rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-3 w-1/2 rounded bg-bg-sunken" })]
|
|
405
405
|
})]
|
|
406
|
-
}), /* @__PURE__ */
|
|
406
|
+
}), /* @__PURE__ */ S("div", {
|
|
407
407
|
className: "mt-3 space-y-2",
|
|
408
|
-
children: [/* @__PURE__ */
|
|
408
|
+
children: [/* @__PURE__ */ x("div", { className: "h-3 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-3 w-2/3 rounded bg-bg-sunken" })]
|
|
409
409
|
})]
|
|
410
|
-
}),
|
|
410
|
+
}), M = () => /* @__PURE__ */ S("div", {
|
|
411
411
|
className: "animate-pulse rounded-2xl bg-gradient-to-r from-bg-surface via-bg-sunken to-bg-surface p-8",
|
|
412
|
-
children: [/* @__PURE__ */
|
|
412
|
+
children: [/* @__PURE__ */ S("div", {
|
|
413
413
|
className: "flex items-center gap-8",
|
|
414
|
-
children: [/* @__PURE__ */
|
|
414
|
+
children: [/* @__PURE__ */ S("div", {
|
|
415
415
|
className: "flex-1 space-y-4",
|
|
416
416
|
children: [
|
|
417
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ S("div", {
|
|
418
418
|
className: "flex gap-2",
|
|
419
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ x("div", { className: "h-6 w-24 rounded-full bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-6 w-20 rounded-full bg-bg-sunken" })]
|
|
420
420
|
}),
|
|
421
|
-
/* @__PURE__ */
|
|
422
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ x("div", { className: "h-9 w-3/4 rounded bg-bg-sunken" }),
|
|
422
|
+
/* @__PURE__ */ S("div", {
|
|
423
423
|
className: "space-y-2",
|
|
424
|
-
children: [/* @__PURE__ */
|
|
424
|
+
children: [/* @__PURE__ */ x("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-4 w-5/6 rounded bg-bg-sunken" })]
|
|
425
425
|
}),
|
|
426
|
-
/* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ S("div", {
|
|
427
427
|
className: "flex gap-4",
|
|
428
|
-
children: [/* @__PURE__ */
|
|
428
|
+
children: [/* @__PURE__ */ x("div", { className: "h-5 w-24 rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-5 w-32 rounded bg-bg-sunken" })]
|
|
429
429
|
}),
|
|
430
|
-
/* @__PURE__ */
|
|
430
|
+
/* @__PURE__ */ x("div", { className: "h-12 w-36 rounded-lg bg-bg-sunken" })
|
|
431
431
|
]
|
|
432
|
-
}), /* @__PURE__ */
|
|
433
|
-
}), /* @__PURE__ */
|
|
432
|
+
}), /* @__PURE__ */ x("div", { className: "hidden size-48 rounded-3xl bg-bg-sunken lg:block" })]
|
|
433
|
+
}), /* @__PURE__ */ x("div", {
|
|
434
434
|
className: "mt-6 flex gap-2",
|
|
435
435
|
children: [...[
|
|
436
436
|
,
|
|
437
437
|
,
|
|
438
438
|
,
|
|
439
|
-
]].map((e, t) => /* @__PURE__ */
|
|
439
|
+
]].map((e, t) => /* @__PURE__ */ x("div", { className: "h-2 w-8 rounded-full bg-bg-sunken" }, t))
|
|
440
440
|
})]
|
|
441
|
-
}),
|
|
441
|
+
}), N = [
|
|
442
442
|
100,
|
|
443
443
|
120,
|
|
444
444
|
90,
|
|
@@ -447,30 +447,30 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
447
447
|
95,
|
|
448
448
|
115,
|
|
449
449
|
105
|
|
450
|
-
],
|
|
450
|
+
], P = () => /* @__PURE__ */ S("div", {
|
|
451
451
|
className: "space-y-4",
|
|
452
|
-
children: [/* @__PURE__ */
|
|
452
|
+
children: [/* @__PURE__ */ x("div", { className: "h-6 w-32 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", {
|
|
453
453
|
className: "flex flex-wrap gap-2",
|
|
454
|
-
children:
|
|
454
|
+
children: N.map((e, t) => /* @__PURE__ */ x("div", {
|
|
455
455
|
className: "h-9 animate-pulse rounded-full bg-bg-sunken",
|
|
456
456
|
style: { width: `${e}px` }
|
|
457
457
|
}, t))
|
|
458
458
|
})]
|
|
459
|
-
}),
|
|
459
|
+
}), F = () => /* @__PURE__ */ S("div", {
|
|
460
460
|
className: "mb-4 flex items-center justify-between",
|
|
461
|
-
children: [/* @__PURE__ */
|
|
461
|
+
children: [/* @__PURE__ */ S("div", {
|
|
462
462
|
className: "flex items-center gap-3",
|
|
463
|
-
children: [/* @__PURE__ */
|
|
463
|
+
children: [/* @__PURE__ */ x("div", { className: "size-10 animate-pulse rounded-xl bg-bg-sunken" }), /* @__PURE__ */ S("div", {
|
|
464
464
|
className: "space-y-1",
|
|
465
|
-
children: [/* @__PURE__ */
|
|
465
|
+
children: [/* @__PURE__ */ x("div", { className: "h-5 w-40 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ x("div", { className: "h-4 w-32 animate-pulse rounded bg-bg-sunken" })]
|
|
466
466
|
})]
|
|
467
|
-
}), /* @__PURE__ */
|
|
468
|
-
}),
|
|
467
|
+
}), /* @__PURE__ */ x("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
|
|
468
|
+
}), je = () => /* @__PURE__ */ S("div", {
|
|
469
469
|
className: "mx-auto max-w-7xl space-y-8 p-6",
|
|
470
470
|
children: [
|
|
471
|
-
/* @__PURE__ */
|
|
472
|
-
/* @__PURE__ */
|
|
473
|
-
/* @__PURE__ */
|
|
471
|
+
/* @__PURE__ */ x(M, {}),
|
|
472
|
+
/* @__PURE__ */ x(P, {}),
|
|
473
|
+
/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x(F, {}), /* @__PURE__ */ x("div", {
|
|
474
474
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
475
475
|
children: [...[
|
|
476
476
|
,
|
|
@@ -479,9 +479,9 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
479
479
|
,
|
|
480
480
|
,
|
|
481
481
|
,
|
|
482
|
-
]].map((e, t) => /* @__PURE__ */
|
|
482
|
+
]].map((e, t) => /* @__PURE__ */ x(j, {}, t))
|
|
483
483
|
})] }),
|
|
484
|
-
/* @__PURE__ */
|
|
484
|
+
/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x(F, {}), /* @__PURE__ */ x("div", {
|
|
485
485
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
486
486
|
children: [...[
|
|
487
487
|
,
|
|
@@ -490,9 +490,9 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
490
490
|
,
|
|
491
491
|
,
|
|
492
492
|
,
|
|
493
|
-
]].map((e, t) => /* @__PURE__ */
|
|
493
|
+
]].map((e, t) => /* @__PURE__ */ x(j, {}, t))
|
|
494
494
|
})] }),
|
|
495
|
-
/* @__PURE__ */
|
|
495
|
+
/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x(F, {}), /* @__PURE__ */ x("div", {
|
|
496
496
|
className: "grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-6",
|
|
497
497
|
children: [...[
|
|
498
498
|
,
|
|
@@ -501,170 +501,156 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
501
501
|
,
|
|
502
502
|
,
|
|
503
503
|
,
|
|
504
|
-
]].map((e, t) => /* @__PURE__ */
|
|
504
|
+
]].map((e, t) => /* @__PURE__ */ x(j, { variant: "compact" }, t))
|
|
505
505
|
})] })
|
|
506
506
|
]
|
|
507
|
-
}),
|
|
507
|
+
}), I = ({ label: e, value: t, options: n, onChange: r }) => {
|
|
508
508
|
let i = ie();
|
|
509
|
-
return /* @__PURE__ */
|
|
509
|
+
return /* @__PURE__ */ S("label", {
|
|
510
510
|
htmlFor: i,
|
|
511
511
|
className: "relative inline-flex items-center gap-2 rounded-lg border border-border-default bg-bg-surface px-3 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken focus-within:border-action-primary-border focus-within:ring-2 focus-within:ring-action-primary-border/20",
|
|
512
512
|
children: [
|
|
513
|
-
/* @__PURE__ */
|
|
513
|
+
/* @__PURE__ */ x("span", {
|
|
514
514
|
className: "sr-only",
|
|
515
515
|
children: e
|
|
516
516
|
}),
|
|
517
|
-
/* @__PURE__ */
|
|
517
|
+
/* @__PURE__ */ S("span", {
|
|
518
518
|
className: "text-text-muted",
|
|
519
519
|
children: [e, ":"]
|
|
520
520
|
}),
|
|
521
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ x("select", {
|
|
522
522
|
id: i,
|
|
523
523
|
"aria-label": e,
|
|
524
524
|
value: t,
|
|
525
525
|
onChange: (e) => r(e.target.value),
|
|
526
526
|
className: "min-w-[8rem] appearance-none bg-transparent pr-6 text-sm font-medium text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
|
|
527
|
-
children: n.map((e) => /* @__PURE__ */
|
|
527
|
+
children: n.map((e) => /* @__PURE__ */ x("option", {
|
|
528
528
|
value: e.value,
|
|
529
529
|
children: e.label
|
|
530
530
|
}, e.value))
|
|
531
531
|
}),
|
|
532
|
-
/* @__PURE__ */
|
|
532
|
+
/* @__PURE__ */ x(p, { className: "pointer-events-none absolute right-3 size-4 text-text-muted" })
|
|
533
533
|
]
|
|
534
534
|
});
|
|
535
|
-
},
|
|
536
|
-
let r = oe(), { basePath:
|
|
535
|
+
}, L = () => {
|
|
536
|
+
let r = oe(), { basePath: d, user: se } = e(), p = a(), ce = ie(), ue = Ee(), { cart: de, cartOpen: fe, closeCart: m, itemCount: h, cartItems: g, subtotal: _e, tax: Se, total: C, updateQuantity: w, removeProduct: T } = n(), [E, D] = l(""), [O, j] = l("all"), [M, N] = l("all"), [P, F] = l("any"), [L, Me] = l("all"), [R, Ne] = l("all"), [z, Pe] = l(!1), [B, Fe] = l("relevance"), [Ie, Le] = l(!1), V = De(E, 1500), Re = [
|
|
537
537
|
{
|
|
538
538
|
value: "all",
|
|
539
|
-
label:
|
|
539
|
+
label: p("pages.marketplace.pricingAll", "All Prices")
|
|
540
540
|
},
|
|
541
541
|
{
|
|
542
542
|
value: "free",
|
|
543
|
-
label:
|
|
543
|
+
label: p("pages.marketplace.pricingFree", "Free")
|
|
544
544
|
},
|
|
545
545
|
{
|
|
546
546
|
value: "paid",
|
|
547
|
-
label:
|
|
547
|
+
label: p("pages.marketplace.pricingPaid", "Paid (One-time)")
|
|
548
548
|
},
|
|
549
549
|
{
|
|
550
550
|
value: "subscription",
|
|
551
|
-
label:
|
|
551
|
+
label: p("pages.marketplace.pricingSubscription", "Subscription")
|
|
552
552
|
}
|
|
553
|
-
],
|
|
553
|
+
], ze = [
|
|
554
554
|
{
|
|
555
555
|
value: "any",
|
|
556
|
-
label:
|
|
556
|
+
label: p("pages.marketplace.ratingAny", "Any Rating")
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
559
|
value: "3",
|
|
560
|
-
label:
|
|
560
|
+
label: p("pages.marketplace.rating3", "3+ Stars")
|
|
561
561
|
},
|
|
562
562
|
{
|
|
563
563
|
value: "3.5",
|
|
564
|
-
label:
|
|
564
|
+
label: p("pages.marketplace.rating3_5", "3.5+ Stars")
|
|
565
565
|
},
|
|
566
566
|
{
|
|
567
567
|
value: "4",
|
|
568
|
-
label:
|
|
568
|
+
label: p("pages.marketplace.rating4", "4+ Stars")
|
|
569
569
|
},
|
|
570
570
|
{
|
|
571
571
|
value: "4.5",
|
|
572
|
-
label:
|
|
572
|
+
label: p("pages.marketplace.rating4_5", "4.5+ Stars")
|
|
573
573
|
}
|
|
574
|
-
],
|
|
575
|
-
{
|
|
576
|
-
value: "all",
|
|
577
|
-
label: m("pages.marketplace.natureAll", "All Types")
|
|
578
|
-
},
|
|
579
|
-
{
|
|
580
|
-
value: "digital",
|
|
581
|
-
label: m("pages.marketplace.natureDigital", "Digital")
|
|
582
|
-
},
|
|
583
|
-
{
|
|
584
|
-
value: "physical",
|
|
585
|
-
label: m("pages.marketplace.naturePhysical", "Physical")
|
|
586
|
-
}
|
|
587
|
-
], We = [
|
|
574
|
+
], Be = [
|
|
588
575
|
{
|
|
589
576
|
value: "relevance",
|
|
590
|
-
label:
|
|
577
|
+
label: p("pages.marketplace.sortRelevance", "Relevance")
|
|
591
578
|
},
|
|
592
579
|
{
|
|
593
580
|
value: "rating",
|
|
594
|
-
label:
|
|
581
|
+
label: p("pages.marketplace.sortRating", "Highest Rated")
|
|
595
582
|
},
|
|
596
583
|
{
|
|
597
584
|
value: "downloads",
|
|
598
|
-
label:
|
|
585
|
+
label: p("pages.marketplace.sortDownloads", "Most Downloads")
|
|
599
586
|
},
|
|
600
587
|
{
|
|
601
588
|
value: "newest",
|
|
602
|
-
label:
|
|
589
|
+
label: p("pages.marketplace.sortNewest", "Newest First")
|
|
603
590
|
},
|
|
604
591
|
{
|
|
605
592
|
value: "price-low",
|
|
606
|
-
label:
|
|
593
|
+
label: p("pages.marketplace.sortPriceLow", "Price: Low to High")
|
|
607
594
|
},
|
|
608
595
|
{
|
|
609
596
|
value: "price-high",
|
|
610
|
-
label:
|
|
597
|
+
label: p("pages.marketplace.sortPriceHigh", "Price: High to Low")
|
|
611
598
|
},
|
|
612
599
|
{
|
|
613
600
|
value: "name-asc",
|
|
614
|
-
label:
|
|
601
|
+
label: p("pages.marketplace.sortNameAsc", "Name A-Z")
|
|
615
602
|
}
|
|
616
|
-
],
|
|
617
|
-
relevance:
|
|
618
|
-
rating:
|
|
619
|
-
downloads:
|
|
620
|
-
newest:
|
|
621
|
-
"price-low":
|
|
622
|
-
"price-high":
|
|
623
|
-
"name-asc":
|
|
624
|
-
})[e],
|
|
603
|
+
], Ve = (e) => ({
|
|
604
|
+
relevance: s.Relevance,
|
|
605
|
+
rating: s.Rating,
|
|
606
|
+
downloads: s.Downloads,
|
|
607
|
+
newest: s.Newest,
|
|
608
|
+
"price-low": s.PriceLow,
|
|
609
|
+
"price-high": s.PriceHigh,
|
|
610
|
+
"name-asc": s.NameAsc
|
|
611
|
+
})[e], He = (e) => {
|
|
625
612
|
if (e !== "all") return {
|
|
626
613
|
free: o.Free,
|
|
627
614
|
paid: o.PaidOnetime,
|
|
628
615
|
subscription: o.Subscription
|
|
629
616
|
}[e];
|
|
630
|
-
}, H = V.trim() !== "" ||
|
|
631
|
-
|
|
632
|
-
}, U = (
|
|
617
|
+
}, H = V.trim() !== "" || M !== "all" || P !== "any" || L !== "all" || R !== "all" || z || O !== "all" || B !== "relevance", Ue = E.trim() !== "" && E !== V, We = () => {
|
|
618
|
+
D(""), N("all"), F("any"), Me("all"), Ne("all"), Pe(!1), Fe("relevance"), j("all");
|
|
619
|
+
}, U = (M === "all" ? 0 : 1) + (P === "any" ? 0 : 1) + (L === "all" ? 0 : 1) + (R === "all" ? 0 : 1) + +!!z + (O === "all" ? 0 : 1), Ge = c(() => {
|
|
633
620
|
let e = {
|
|
634
|
-
sortBy:
|
|
621
|
+
sortBy: Ve(B),
|
|
635
622
|
pagination: { limit: 50 }
|
|
636
623
|
};
|
|
637
624
|
if (H) {
|
|
638
|
-
e.filter = {}, V.trim() && (e.filter.search = V.trim()),
|
|
639
|
-
let t =
|
|
640
|
-
t && (e.filter.pricingModel = t),
|
|
625
|
+
e.filter = {}, V.trim() && (e.filter.search = V.trim()), O !== "all" && (e.filter.type = O), L !== "all" && (e.filter.category = L);
|
|
626
|
+
let t = He(M);
|
|
627
|
+
t && (e.filter.pricingModel = t), P !== "any" && (e.filter.minRating = parseFloat(P)), z && (e.filter.featured = !0), R !== "all" && (e.filter.license = R);
|
|
641
628
|
}
|
|
642
629
|
return e;
|
|
643
630
|
}, [
|
|
644
631
|
V,
|
|
645
|
-
|
|
632
|
+
O,
|
|
646
633
|
L,
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
N,
|
|
634
|
+
M,
|
|
635
|
+
P,
|
|
650
636
|
z,
|
|
651
637
|
R,
|
|
652
638
|
B,
|
|
653
639
|
H
|
|
654
|
-
]), { featured: W, mostDownloaded: G, recentlyAdded: K, freeItems: q, loading:
|
|
655
|
-
|
|
656
|
-
let
|
|
657
|
-
|
|
658
|
-
!V.trim() || X ||
|
|
640
|
+
]), { featured: W, mostDownloaded: G, recentlyAdded: K, freeItems: q, loading: Ke, error: qe, refetch: Je } = ee({ skip: H }), { products: Ye, totalCount: J, facets: Y, loading: X, error: Xe, refetch: Ze } = i(H ? Ge : {}, { skip: !H }), Qe = H ? X : Ke, Z = H ? Xe : qe, $e = H ? Ze : Je, et = H ? Ye : [], tt = ae(J);
|
|
641
|
+
tt.current = J;
|
|
642
|
+
let nt = ae(ue);
|
|
643
|
+
nt.current = ue, re(() => {
|
|
644
|
+
!V.trim() || X || nt.current.emit("store.marketplace.searched", {
|
|
659
645
|
query: V,
|
|
660
|
-
resultCount:
|
|
646
|
+
resultCount: tt.current
|
|
661
647
|
});
|
|
662
648
|
}, [V, X]);
|
|
663
649
|
let Q = ne((e) => {
|
|
664
|
-
r(`${
|
|
665
|
-
}, [r,
|
|
666
|
-
|
|
667
|
-
}, $ =
|
|
650
|
+
r(`${d}/marketplace/product/${e.id}`);
|
|
651
|
+
}, [r, d]), rt = () => {
|
|
652
|
+
m(), r(`${d}/cart`);
|
|
653
|
+
}, $ = c(() => [...new Map([
|
|
668
654
|
...W,
|
|
669
655
|
...G,
|
|
670
656
|
...K,
|
|
@@ -674,23 +660,23 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
674
660
|
G,
|
|
675
661
|
K,
|
|
676
662
|
q
|
|
677
|
-
]),
|
|
663
|
+
]), it = !!se?.id, { data: at } = t({
|
|
678
664
|
variables: { limit: 100 },
|
|
679
|
-
skip: !
|
|
665
|
+
skip: !it,
|
|
680
666
|
fetchPolicy: "cache-and-network"
|
|
681
|
-
}),
|
|
682
|
-
if (!
|
|
667
|
+
}), ot = c(() => {
|
|
668
|
+
if (!at?.myStoreAppInstallations?.items) return [];
|
|
683
669
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
684
|
-
for (let n of
|
|
670
|
+
for (let n of at.myStoreAppInstallations.items) n.productStatus === "UNLISTED" && !e.has(n.productId) && (e.add(n.productId), t.push({
|
|
685
671
|
id: n.productId,
|
|
686
672
|
name: n.productName ?? "Unknown App",
|
|
687
673
|
icon: n.productIcon ?? void 0
|
|
688
674
|
}));
|
|
689
675
|
return t;
|
|
690
|
-
}, [
|
|
676
|
+
}, [at]), st = c(() => {
|
|
691
677
|
if (Y?.types && Y.types.length > 0) return [{
|
|
692
678
|
id: "all",
|
|
693
|
-
name:
|
|
679
|
+
name: p("pages.marketplace.typeAll", "All Apps"),
|
|
694
680
|
count: J
|
|
695
681
|
}, ...Y.types.map((e) => ({
|
|
696
682
|
id: e.value,
|
|
@@ -704,361 +690,332 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
704
690
|
}] : []).sort((e, t) => t.count - e.count);
|
|
705
691
|
return [{
|
|
706
692
|
id: "all",
|
|
707
|
-
name:
|
|
693
|
+
name: p("pages.marketplace.typeAll", "All Apps"),
|
|
708
694
|
count: $.length
|
|
709
695
|
}, ...t];
|
|
710
696
|
}, [
|
|
711
697
|
Y,
|
|
712
698
|
$,
|
|
713
699
|
J,
|
|
714
|
-
|
|
715
|
-
]),
|
|
700
|
+
p
|
|
701
|
+
]), ct = c(() => Y?.categories && Y.categories.length > 0 ? [{
|
|
716
702
|
value: "all",
|
|
717
|
-
label:
|
|
703
|
+
label: p("pages.marketplace.allCategories", "All Categories")
|
|
718
704
|
}, ...Y.categories.map((e) => ({
|
|
719
705
|
value: e.value,
|
|
720
706
|
label: e.value
|
|
721
707
|
}))] : [{
|
|
722
708
|
value: "all",
|
|
723
|
-
label:
|
|
709
|
+
label: p("pages.marketplace.allCategories", "All Categories")
|
|
724
710
|
}, ...Array.from(new Set($.flatMap((e) => e.category ? [e.category] : []))).map((e) => ({
|
|
725
711
|
value: e,
|
|
726
712
|
label: e
|
|
727
713
|
})).sort((e, t) => e.label.localeCompare(t.label))], [
|
|
728
714
|
Y,
|
|
729
715
|
$,
|
|
730
|
-
|
|
731
|
-
]),
|
|
716
|
+
p
|
|
717
|
+
]), lt = c(() => Y?.licenses && Y.licenses.length > 0 ? [{
|
|
732
718
|
value: "all",
|
|
733
|
-
label:
|
|
719
|
+
label: p("pages.marketplace.allLicenses", "All Licenses")
|
|
734
720
|
}, ...Y.licenses.map((e) => ({
|
|
735
721
|
value: e.value,
|
|
736
722
|
label: e.value
|
|
737
723
|
}))] : [{
|
|
738
724
|
value: "all",
|
|
739
|
-
label:
|
|
740
|
-
}], [Y,
|
|
741
|
-
return /* @__PURE__ */
|
|
725
|
+
label: p("pages.marketplace.allLicenses", "All Licenses")
|
|
726
|
+
}], [Y, p]);
|
|
727
|
+
return /* @__PURE__ */ S("div", {
|
|
742
728
|
className: "flex h-full flex-col",
|
|
743
729
|
children: [
|
|
744
|
-
/* @__PURE__ */
|
|
730
|
+
/* @__PURE__ */ S("header", {
|
|
745
731
|
className: "relative overflow-hidden border-b border-border-seam bg-bg-surface px-6 py-4",
|
|
746
732
|
children: [
|
|
747
|
-
/* @__PURE__ */
|
|
748
|
-
/* @__PURE__ */
|
|
733
|
+
/* @__PURE__ */ x(xe, { intensity: "subtle" }),
|
|
734
|
+
/* @__PURE__ */ S("div", {
|
|
749
735
|
className: "flex items-center justify-between",
|
|
750
|
-
children: [/* @__PURE__ */
|
|
736
|
+
children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("h1", {
|
|
751
737
|
className: "text-2xl font-bold text-text-primary",
|
|
752
738
|
children: [
|
|
753
|
-
|
|
739
|
+
p("pages.marketplace.appTitle", "App"),
|
|
754
740
|
" ",
|
|
755
|
-
/* @__PURE__ */
|
|
741
|
+
/* @__PURE__ */ x(Ce, { children: p("pages.marketplace.title", "Marketplace") })
|
|
756
742
|
]
|
|
757
|
-
}), /* @__PURE__ */
|
|
743
|
+
}), /* @__PURE__ */ x("p", {
|
|
758
744
|
className: "text-sm text-text-muted",
|
|
759
|
-
children:
|
|
760
|
-
})] }), /* @__PURE__ */
|
|
745
|
+
children: p("pages.marketplace.subtitle", "Discover apps, workflows, and integrations for your workspace")
|
|
746
|
+
})] }), /* @__PURE__ */ S("button", {
|
|
761
747
|
type: "button",
|
|
762
748
|
"data-tour": "store-marketplace-cart-button",
|
|
763
|
-
onClick: () => r(`${
|
|
749
|
+
onClick: () => r(`${d}/cart`),
|
|
764
750
|
className: "cursor-pointer relative flex items-center gap-2 rounded-lg border border-border-default bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
|
|
765
751
|
children: [
|
|
766
|
-
/* @__PURE__ */
|
|
767
|
-
|
|
768
|
-
|
|
752
|
+
/* @__PURE__ */ x(ve, { className: "size-5" }),
|
|
753
|
+
p("pages.marketplace.cart", "Cart"),
|
|
754
|
+
h > 0 && /* @__PURE__ */ x("span", {
|
|
769
755
|
className: "absolute -right-2 -top-2 flex size-5 items-center justify-center rounded-full bg-action-primary-bg text-xs font-bold text-action-primary-text",
|
|
770
|
-
children:
|
|
756
|
+
children: h
|
|
771
757
|
})
|
|
772
758
|
]
|
|
773
759
|
})]
|
|
774
760
|
}),
|
|
775
|
-
/* @__PURE__ */
|
|
761
|
+
/* @__PURE__ */ S("div", {
|
|
776
762
|
className: "mt-4",
|
|
777
|
-
children: [/* @__PURE__ */
|
|
763
|
+
children: [/* @__PURE__ */ S("div", {
|
|
778
764
|
className: "relative",
|
|
779
765
|
children: [
|
|
780
|
-
/* @__PURE__ */
|
|
766
|
+
/* @__PURE__ */ x("label", {
|
|
781
767
|
htmlFor: ce,
|
|
782
768
|
className: "sr-only",
|
|
783
|
-
children:
|
|
769
|
+
children: p("pages.marketplace.search.label", "Search marketplace products")
|
|
784
770
|
}),
|
|
785
|
-
/* @__PURE__ */
|
|
786
|
-
/* @__PURE__ */
|
|
771
|
+
/* @__PURE__ */ x(ge, { className: "absolute left-4 top-1/2 size-5 -translate-y-1/2 text-text-muted" }),
|
|
772
|
+
/* @__PURE__ */ x("input", {
|
|
787
773
|
id: ce,
|
|
788
774
|
"data-tour": "store-marketplace-search-input",
|
|
789
|
-
"aria-label":
|
|
775
|
+
"aria-label": p("pages.marketplace.search.label", "Search marketplace products"),
|
|
790
776
|
type: "text",
|
|
791
|
-
value:
|
|
792
|
-
onChange: (e) =>
|
|
793
|
-
placeholder:
|
|
777
|
+
value: E,
|
|
778
|
+
onChange: (e) => D(e.target.value),
|
|
779
|
+
placeholder: p("pages.marketplace.search.placeholder", "Search apps, workflows, integrations..."),
|
|
794
780
|
className: "w-full rounded-xl border border-border-default bg-bg-sunken py-3 pl-12 pr-4 text-text-primary placeholder-text-muted focus:border-action-primary-border focus:bg-bg-surface focus:outline-none focus:ring-2 focus:ring-action-primary-border/20"
|
|
795
781
|
}),
|
|
796
|
-
|
|
782
|
+
E && /* @__PURE__ */ x("button", {
|
|
797
783
|
type: "button",
|
|
798
|
-
onClick: () =>
|
|
799
|
-
"aria-label":
|
|
784
|
+
onClick: () => D(""),
|
|
785
|
+
"aria-label": p("pages.marketplace.search.clear", "Clear search"),
|
|
800
786
|
className: "cursor-pointer absolute right-4 top-1/2 -translate-y-1/2 text-text-muted transition-colors hover:text-text-primary",
|
|
801
|
-
children: /* @__PURE__ */
|
|
787
|
+
children: /* @__PURE__ */ x(y, {
|
|
802
788
|
className: "size-4",
|
|
803
789
|
"aria-hidden": "true"
|
|
804
790
|
})
|
|
805
791
|
})
|
|
806
792
|
]
|
|
807
|
-
}),
|
|
793
|
+
}), E.trim() && /* @__PURE__ */ x("div", {
|
|
808
794
|
"aria-live": "polite",
|
|
809
795
|
className: "mt-2 flex items-center gap-2 text-sm text-text-muted",
|
|
810
|
-
children:
|
|
796
|
+
children: Ue || X ? /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(he, { className: "size-4 animate-spin" }), /* @__PURE__ */ x("span", { children: p("pages.marketplace.search.searching", "Searching...") })] }) : /* @__PURE__ */ x("span", { children: p("pages.marketplace.search.resultCount", "{{count}} result{{plural}} for \"{{query}}\"", {
|
|
811
797
|
count: J,
|
|
812
798
|
plural: J === 1 ? "" : "s",
|
|
813
799
|
query: V
|
|
814
800
|
}) })
|
|
815
801
|
})]
|
|
816
802
|
}),
|
|
817
|
-
/* @__PURE__ */
|
|
803
|
+
/* @__PURE__ */ S("div", {
|
|
818
804
|
className: "mt-4 flex flex-wrap items-center gap-3",
|
|
819
805
|
children: [
|
|
820
|
-
/* @__PURE__ */
|
|
806
|
+
/* @__PURE__ */ S("button", {
|
|
821
807
|
type: "button",
|
|
822
808
|
"data-tour": "store-marketplace-filters-button",
|
|
823
|
-
onClick: () =>
|
|
824
|
-
className: `cursor-pointer flex items-center gap-2 rounded-lg border px-3 py-2 text-sm font-medium transition-colors ${
|
|
809
|
+
onClick: () => Le(!Ie),
|
|
810
|
+
className: `cursor-pointer flex items-center gap-2 rounded-lg border px-3 py-2 text-sm font-medium transition-colors ${Ie || U > 0 ? "border-action-primary-border bg-action-primary-bg/10 text-text-link" : "border-border-default bg-bg-surface text-text-primary transition-colors hover:bg-bg-sunken"}`,
|
|
825
811
|
children: [
|
|
826
|
-
/* @__PURE__ */
|
|
827
|
-
|
|
828
|
-
U > 0 && /* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ x(ye, { className: "size-4" }),
|
|
813
|
+
p("pages.marketplace.filters", "Filters"),
|
|
814
|
+
U > 0 && /* @__PURE__ */ x("span", {
|
|
829
815
|
className: "flex size-5 items-center justify-center rounded-full bg-action-primary-bg text-xs text-action-primary-text",
|
|
830
816
|
children: U
|
|
831
817
|
})
|
|
832
818
|
]
|
|
833
819
|
}),
|
|
834
|
-
/* @__PURE__ */
|
|
820
|
+
/* @__PURE__ */ S("div", {
|
|
835
821
|
className: "flex flex-wrap items-center gap-2",
|
|
836
822
|
"data-tour": "store-marketplace-quick-filters",
|
|
837
823
|
children: [
|
|
838
|
-
/* @__PURE__ */
|
|
824
|
+
/* @__PURE__ */ S("button", {
|
|
839
825
|
type: "button",
|
|
840
|
-
onClick: () => M
|
|
841
|
-
className: `cursor-pointer flex items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors ${
|
|
842
|
-
children: [/* @__PURE__ */
|
|
826
|
+
onClick: () => N(M === "free" ? "all" : "free"),
|
|
827
|
+
className: `cursor-pointer flex items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors ${M === "free" ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-primary transition-colors hover:bg-bg-surface"}`,
|
|
828
|
+
children: [/* @__PURE__ */ x(me, { className: "size-3.5" }), p("pages.marketplace.quickFilterFree", "Free")]
|
|
843
829
|
}),
|
|
844
|
-
/* @__PURE__ */
|
|
830
|
+
/* @__PURE__ */ S("button", {
|
|
845
831
|
type: "button",
|
|
846
|
-
onClick: () => P
|
|
847
|
-
className: `cursor-pointer flex items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors ${
|
|
848
|
-
children: [/* @__PURE__ */
|
|
832
|
+
onClick: () => F(P === "4" ? "any" : "4"),
|
|
833
|
+
className: `cursor-pointer flex items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors ${P === "4" ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-primary transition-colors hover:bg-bg-surface"}`,
|
|
834
|
+
children: [/* @__PURE__ */ x(v, { className: "size-3.5" }), p("pages.marketplace.quickFilterRating", "4+ Stars")]
|
|
849
835
|
}),
|
|
850
|
-
/* @__PURE__ */
|
|
836
|
+
/* @__PURE__ */ S("button", {
|
|
851
837
|
type: "button",
|
|
852
|
-
onClick: () =>
|
|
838
|
+
onClick: () => Pe(!z),
|
|
853
839
|
className: `cursor-pointer flex items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors ${z ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-primary transition-colors hover:bg-bg-surface"}`,
|
|
854
|
-
children: [/* @__PURE__ */
|
|
840
|
+
children: [/* @__PURE__ */ x(_, { className: "size-3.5" }), p("pages.marketplace.quickFilterFeatured", "Featured")]
|
|
855
841
|
})
|
|
856
842
|
]
|
|
857
843
|
}),
|
|
858
|
-
H && /* @__PURE__ */
|
|
844
|
+
H && /* @__PURE__ */ S("button", {
|
|
859
845
|
type: "button",
|
|
860
|
-
onClick:
|
|
846
|
+
onClick: We,
|
|
861
847
|
className: "cursor-pointer flex items-center gap-1 text-sm text-text-muted transition-colors hover:text-text-primary",
|
|
862
|
-
children: [/* @__PURE__ */
|
|
848
|
+
children: [/* @__PURE__ */ x(y, {
|
|
863
849
|
className: "size-4",
|
|
864
850
|
"aria-hidden": "true"
|
|
865
|
-
}),
|
|
851
|
+
}), p("pages.marketplace.clearAll", "Clear all")]
|
|
866
852
|
}),
|
|
867
|
-
/* @__PURE__ */
|
|
853
|
+
/* @__PURE__ */ x("div", {
|
|
868
854
|
className: "ml-auto",
|
|
869
855
|
"data-tour": "store-marketplace-section-sort",
|
|
870
|
-
children: /* @__PURE__ */
|
|
871
|
-
label:
|
|
856
|
+
children: /* @__PURE__ */ x(I, {
|
|
857
|
+
label: p("pages.marketplace.sortLabel", "Sort"),
|
|
872
858
|
value: B,
|
|
873
|
-
options:
|
|
874
|
-
onChange: (e) =>
|
|
859
|
+
options: Be,
|
|
860
|
+
onChange: (e) => Fe(e)
|
|
875
861
|
})
|
|
876
862
|
})
|
|
877
863
|
]
|
|
878
864
|
}),
|
|
879
|
-
|
|
865
|
+
Ie && /* @__PURE__ */ S("div", {
|
|
880
866
|
className: "mt-4 rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
881
|
-
children: [/* @__PURE__ */
|
|
867
|
+
children: [/* @__PURE__ */ S("div", {
|
|
882
868
|
className: "flex flex-wrap items-start gap-6",
|
|
883
869
|
children: [
|
|
884
|
-
/* @__PURE__ */
|
|
870
|
+
/* @__PURE__ */ S("div", {
|
|
885
871
|
className: "flex flex-col gap-2",
|
|
886
|
-
children: [/* @__PURE__ */
|
|
872
|
+
children: [/* @__PURE__ */ x("span", {
|
|
887
873
|
className: "text-xs font-medium uppercase tracking-wider text-text-muted",
|
|
888
|
-
children:
|
|
889
|
-
}), /* @__PURE__ */
|
|
890
|
-
label:
|
|
891
|
-
value:
|
|
892
|
-
options:
|
|
893
|
-
onChange: (e) =>
|
|
874
|
+
children: p("pages.marketplace.filterPricing", "Pricing")
|
|
875
|
+
}), /* @__PURE__ */ x(I, {
|
|
876
|
+
label: p("pages.marketplace.filterPrice", "Price"),
|
|
877
|
+
value: M,
|
|
878
|
+
options: Re,
|
|
879
|
+
onChange: (e) => N(e)
|
|
894
880
|
})]
|
|
895
881
|
}),
|
|
896
|
-
/* @__PURE__ */
|
|
882
|
+
/* @__PURE__ */ S("div", {
|
|
897
883
|
className: "flex flex-col gap-2",
|
|
898
|
-
children: [/* @__PURE__ */
|
|
884
|
+
children: [/* @__PURE__ */ x("span", {
|
|
899
885
|
className: "text-xs font-medium uppercase tracking-wider text-text-muted",
|
|
900
|
-
children:
|
|
901
|
-
}), /* @__PURE__ */
|
|
902
|
-
label:
|
|
903
|
-
value:
|
|
904
|
-
options:
|
|
905
|
-
onChange: (e) =>
|
|
886
|
+
children: p("pages.marketplace.filterMinRating", "Min Rating")
|
|
887
|
+
}), /* @__PURE__ */ x(I, {
|
|
888
|
+
label: p("pages.marketplace.filterRating", "Rating"),
|
|
889
|
+
value: P,
|
|
890
|
+
options: ze,
|
|
891
|
+
onChange: (e) => F(e)
|
|
906
892
|
})]
|
|
907
893
|
}),
|
|
908
|
-
|
|
894
|
+
ct.length > 1 && /* @__PURE__ */ S("div", {
|
|
909
895
|
className: "flex flex-col gap-2",
|
|
910
|
-
children: [/* @__PURE__ */
|
|
896
|
+
children: [/* @__PURE__ */ x("span", {
|
|
911
897
|
className: "text-xs font-medium uppercase tracking-wider text-text-muted",
|
|
912
|
-
children:
|
|
913
|
-
}), /* @__PURE__ */
|
|
914
|
-
label:
|
|
898
|
+
children: p("pages.marketplace.filterCategory", "Category")
|
|
899
|
+
}), /* @__PURE__ */ x(I, {
|
|
900
|
+
label: p("pages.marketplace.filterCategory", "Category"),
|
|
915
901
|
value: L,
|
|
916
|
-
options:
|
|
917
|
-
onChange:
|
|
918
|
-
})]
|
|
919
|
-
}),
|
|
920
|
-
/* @__PURE__ */ x("div", {
|
|
921
|
-
className: "flex flex-col gap-2",
|
|
922
|
-
children: [/* @__PURE__ */ b("span", {
|
|
923
|
-
className: "text-xs font-medium uppercase tracking-wider text-text-muted",
|
|
924
|
-
children: m("pages.marketplace.filterNature", "Nature")
|
|
925
|
-
}), /* @__PURE__ */ b(F, {
|
|
926
|
-
label: m("pages.marketplace.filterNature", "Nature"),
|
|
927
|
-
value: I,
|
|
928
|
-
options: Ue,
|
|
929
|
-
onChange: (e) => Pe(e)
|
|
902
|
+
options: ct,
|
|
903
|
+
onChange: Me
|
|
930
904
|
})]
|
|
931
905
|
}),
|
|
932
|
-
|
|
906
|
+
lt.length > 1 && /* @__PURE__ */ S("div", {
|
|
933
907
|
className: "flex flex-col gap-2",
|
|
934
|
-
children: [/* @__PURE__ */
|
|
908
|
+
children: [/* @__PURE__ */ x("span", {
|
|
935
909
|
className: "text-xs font-medium uppercase tracking-wider text-text-muted",
|
|
936
|
-
children:
|
|
937
|
-
}), /* @__PURE__ */
|
|
938
|
-
label:
|
|
910
|
+
children: p("pages.marketplace.filterLicense", "License")
|
|
911
|
+
}), /* @__PURE__ */ x(I, {
|
|
912
|
+
label: p("pages.marketplace.filterLicense", "License"),
|
|
939
913
|
value: R,
|
|
940
|
-
options:
|
|
941
|
-
onChange:
|
|
914
|
+
options: lt,
|
|
915
|
+
onChange: Ne
|
|
942
916
|
})]
|
|
943
917
|
})
|
|
944
918
|
]
|
|
945
|
-
}), U > 0 && /* @__PURE__ */
|
|
919
|
+
}), U > 0 && /* @__PURE__ */ S("div", {
|
|
946
920
|
className: "mt-4 flex flex-wrap items-center gap-2 border-t border-border-default pt-4",
|
|
947
921
|
children: [
|
|
948
|
-
/* @__PURE__ */
|
|
922
|
+
/* @__PURE__ */ x("span", {
|
|
949
923
|
className: "text-xs font-medium text-text-muted",
|
|
950
|
-
children:
|
|
924
|
+
children: p("pages.marketplace.activeFilters", "Active filters:")
|
|
951
925
|
}),
|
|
952
|
-
|
|
926
|
+
O !== "all" && /* @__PURE__ */ S("button", {
|
|
953
927
|
type: "button",
|
|
954
|
-
onClick: () =>
|
|
928
|
+
onClick: () => j("all"),
|
|
955
929
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
956
930
|
children: [
|
|
957
|
-
/* @__PURE__ */
|
|
931
|
+
/* @__PURE__ */ x("span", {
|
|
958
932
|
className: "text-text-muted",
|
|
959
|
-
children:
|
|
933
|
+
children: p("pages.marketplace.activeFilterType", "Type:")
|
|
960
934
|
}),
|
|
961
935
|
" ",
|
|
962
|
-
|
|
963
|
-
/* @__PURE__ */
|
|
936
|
+
O,
|
|
937
|
+
/* @__PURE__ */ x(y, {
|
|
964
938
|
className: "size-3",
|
|
965
939
|
"aria-hidden": "true"
|
|
966
940
|
})
|
|
967
941
|
]
|
|
968
942
|
}),
|
|
969
|
-
|
|
943
|
+
M !== "all" && /* @__PURE__ */ S("button", {
|
|
970
944
|
type: "button",
|
|
971
|
-
onClick: () =>
|
|
945
|
+
onClick: () => N("all"),
|
|
972
946
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
973
947
|
children: [
|
|
974
|
-
/* @__PURE__ */
|
|
948
|
+
/* @__PURE__ */ x("span", {
|
|
975
949
|
className: "text-text-muted",
|
|
976
|
-
children:
|
|
950
|
+
children: p("pages.marketplace.activeFilterPrice", "Price:")
|
|
977
951
|
}),
|
|
978
952
|
" ",
|
|
979
|
-
|
|
980
|
-
/* @__PURE__ */
|
|
953
|
+
Re.find((e) => e.value === M)?.label,
|
|
954
|
+
/* @__PURE__ */ x(y, {
|
|
981
955
|
className: "size-3",
|
|
982
956
|
"aria-hidden": "true"
|
|
983
957
|
})
|
|
984
958
|
]
|
|
985
959
|
}),
|
|
986
|
-
|
|
960
|
+
P !== "any" && /* @__PURE__ */ S("button", {
|
|
987
961
|
type: "button",
|
|
988
|
-
onClick: () =>
|
|
962
|
+
onClick: () => F("any"),
|
|
989
963
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
990
964
|
children: [
|
|
991
|
-
/* @__PURE__ */
|
|
965
|
+
/* @__PURE__ */ x("span", {
|
|
992
966
|
className: "text-text-muted",
|
|
993
|
-
children:
|
|
967
|
+
children: p("pages.marketplace.activeFilterRating", "Rating:")
|
|
994
968
|
}),
|
|
995
969
|
" ",
|
|
996
|
-
|
|
997
|
-
/* @__PURE__ */
|
|
970
|
+
ze.find((e) => e.value === P)?.label,
|
|
971
|
+
/* @__PURE__ */ x(y, {
|
|
998
972
|
className: "size-3",
|
|
999
973
|
"aria-hidden": "true"
|
|
1000
974
|
})
|
|
1001
975
|
]
|
|
1002
976
|
}),
|
|
1003
|
-
L !== "all" && /* @__PURE__ */
|
|
977
|
+
L !== "all" && /* @__PURE__ */ S("button", {
|
|
1004
978
|
type: "button",
|
|
1005
|
-
onClick: () =>
|
|
979
|
+
onClick: () => Me("all"),
|
|
1006
980
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
1007
981
|
children: [
|
|
1008
|
-
/* @__PURE__ */
|
|
982
|
+
/* @__PURE__ */ x("span", {
|
|
1009
983
|
className: "text-text-muted",
|
|
1010
|
-
children:
|
|
984
|
+
children: p("pages.marketplace.activeFilterCategory", "Category:")
|
|
1011
985
|
}),
|
|
1012
986
|
" ",
|
|
1013
987
|
L,
|
|
1014
|
-
/* @__PURE__ */
|
|
1015
|
-
className: "size-3",
|
|
1016
|
-
"aria-hidden": "true"
|
|
1017
|
-
})
|
|
1018
|
-
]
|
|
1019
|
-
}),
|
|
1020
|
-
I !== "all" && /* @__PURE__ */ x("button", {
|
|
1021
|
-
type: "button",
|
|
1022
|
-
onClick: () => Pe("all"),
|
|
1023
|
-
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
1024
|
-
children: [
|
|
1025
|
-
/* @__PURE__ */ b("span", {
|
|
1026
|
-
className: "text-text-muted",
|
|
1027
|
-
children: m("pages.marketplace.activeFilterNature", "Nature:")
|
|
1028
|
-
}),
|
|
1029
|
-
" ",
|
|
1030
|
-
Ue.find((e) => e.value === I)?.label,
|
|
1031
|
-
/* @__PURE__ */ b(y, {
|
|
988
|
+
/* @__PURE__ */ x(y, {
|
|
1032
989
|
className: "size-3",
|
|
1033
990
|
"aria-hidden": "true"
|
|
1034
991
|
})
|
|
1035
992
|
]
|
|
1036
993
|
}),
|
|
1037
|
-
R !== "all" && /* @__PURE__ */
|
|
994
|
+
R !== "all" && /* @__PURE__ */ S("button", {
|
|
1038
995
|
type: "button",
|
|
1039
|
-
onClick: () =>
|
|
996
|
+
onClick: () => Ne("all"),
|
|
1040
997
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
1041
998
|
children: [
|
|
1042
|
-
/* @__PURE__ */
|
|
999
|
+
/* @__PURE__ */ x("span", {
|
|
1043
1000
|
className: "text-text-muted",
|
|
1044
|
-
children:
|
|
1001
|
+
children: p("pages.marketplace.activeFilterLicense", "License:")
|
|
1045
1002
|
}),
|
|
1046
1003
|
" ",
|
|
1047
|
-
|
|
1048
|
-
/* @__PURE__ */
|
|
1004
|
+
lt.find((e) => e.value === R)?.label,
|
|
1005
|
+
/* @__PURE__ */ x(y, {
|
|
1049
1006
|
className: "size-3",
|
|
1050
1007
|
"aria-hidden": "true"
|
|
1051
1008
|
})
|
|
1052
1009
|
]
|
|
1053
1010
|
}),
|
|
1054
|
-
z && /* @__PURE__ */
|
|
1011
|
+
z && /* @__PURE__ */ S("button", {
|
|
1055
1012
|
type: "button",
|
|
1056
|
-
onClick: () =>
|
|
1013
|
+
onClick: () => Pe(!1),
|
|
1057
1014
|
className: "inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-action-primary-border bg-action-primary-bg/5 px-3 py-1.5 text-xs font-medium text-text-link shadow-sm transition-colors hover:bg-action-primary-bg/15",
|
|
1058
1015
|
children: [
|
|
1059
|
-
/* @__PURE__ */
|
|
1060
|
-
|
|
1061
|
-
/* @__PURE__ */
|
|
1016
|
+
/* @__PURE__ */ x(_, { className: "size-3" }),
|
|
1017
|
+
p("pages.marketplace.activeFilterFeatured", "Featured Only"),
|
|
1018
|
+
/* @__PURE__ */ x(y, {
|
|
1062
1019
|
className: "size-3",
|
|
1063
1020
|
"aria-hidden": "true"
|
|
1064
1021
|
})
|
|
@@ -1069,164 +1026,164 @@ var S = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).t
|
|
|
1069
1026
|
})
|
|
1070
1027
|
]
|
|
1071
1028
|
}),
|
|
1072
|
-
/* @__PURE__ */
|
|
1029
|
+
/* @__PURE__ */ x("main", {
|
|
1073
1030
|
className: "flex-1 overflow-y-auto",
|
|
1074
|
-
children: /* @__PURE__ */
|
|
1031
|
+
children: /* @__PURE__ */ S("div", {
|
|
1075
1032
|
className: "mx-auto max-w-7xl space-y-8 p-6",
|
|
1076
1033
|
children: [
|
|
1077
|
-
/* @__PURE__ */
|
|
1078
|
-
Z && /* @__PURE__ */
|
|
1034
|
+
/* @__PURE__ */ x(Te, { children: p("pages.marketplace.pagePurpose", "The marketplace is where you discover and install apps, agents, workflows, nodes and widgets that extend your workspaces. Browse featured and trending picks, filter by type or category, search for something specific, then open any product to view pricing and reviews before adding it to your cart.") }),
|
|
1035
|
+
Z && /* @__PURE__ */ S("div", {
|
|
1079
1036
|
role: "alert",
|
|
1080
1037
|
className: "flex flex-col items-center justify-center rounded-xl border border-status-error-border bg-status-error-bg-subtle p-8 text-center",
|
|
1081
1038
|
children: [
|
|
1082
|
-
/* @__PURE__ */
|
|
1083
|
-
/* @__PURE__ */
|
|
1039
|
+
/* @__PURE__ */ x(u, { className: "mb-4 size-12 text-status-error-text" }),
|
|
1040
|
+
/* @__PURE__ */ x("h3", {
|
|
1084
1041
|
className: "mb-2 text-lg font-semibold text-status-error-text-emphasis",
|
|
1085
|
-
children:
|
|
1042
|
+
children: p("pages.marketplace.errorTitle", "Failed to load marketplace")
|
|
1086
1043
|
}),
|
|
1087
|
-
/* @__PURE__ */
|
|
1044
|
+
/* @__PURE__ */ x("p", {
|
|
1088
1045
|
className: "mb-4 text-sm text-status-error-text",
|
|
1089
|
-
children: Z.message ||
|
|
1046
|
+
children: Z.message || p("pages.marketplace.errorDescription", "An error occurred while fetching products")
|
|
1090
1047
|
}),
|
|
1091
|
-
/* @__PURE__ */
|
|
1048
|
+
/* @__PURE__ */ x("button", {
|
|
1092
1049
|
type: "button",
|
|
1093
|
-
onClick: () =>
|
|
1050
|
+
onClick: () => $e(),
|
|
1094
1051
|
className: "cursor-pointer rounded-lg bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-emphasis",
|
|
1095
|
-
children:
|
|
1052
|
+
children: p("common.tryAgain", "Try Again")
|
|
1096
1053
|
})
|
|
1097
1054
|
]
|
|
1098
1055
|
}),
|
|
1099
|
-
|
|
1100
|
-
!
|
|
1101
|
-
!H &&
|
|
1056
|
+
Qe && !Z && /* @__PURE__ */ x(je, {}),
|
|
1057
|
+
!Qe && !Z && /* @__PURE__ */ S(b, { children: [
|
|
1058
|
+
!H && O === "all" && W.length > 0 && /* @__PURE__ */ x(Ae, {
|
|
1102
1059
|
dataTour: "store-marketplace-hero-section",
|
|
1103
1060
|
featuredProducts: W,
|
|
1104
1061
|
onProductClick: Q
|
|
1105
1062
|
}),
|
|
1106
|
-
|
|
1063
|
+
st.length > 1 && /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h2", {
|
|
1107
1064
|
className: "mb-4 text-lg font-semibold text-text-primary",
|
|
1108
|
-
children:
|
|
1109
|
-
}), /* @__PURE__ */
|
|
1065
|
+
children: p("pages.marketplace.browseByType", "Browse by Type")
|
|
1066
|
+
}), /* @__PURE__ */ x("div", {
|
|
1110
1067
|
className: "flex flex-wrap gap-2",
|
|
1111
1068
|
"data-tour": "store-marketplace-type-categories",
|
|
1112
|
-
children:
|
|
1069
|
+
children: st.map((e) => /* @__PURE__ */ x(ke, {
|
|
1113
1070
|
typeId: e.id,
|
|
1114
1071
|
name: e.name,
|
|
1115
1072
|
count: e.count,
|
|
1116
|
-
active:
|
|
1117
|
-
onClick: () =>
|
|
1073
|
+
active: O === e.id,
|
|
1074
|
+
onClick: () => j(e.id)
|
|
1118
1075
|
}, e.id))
|
|
1119
1076
|
})] }),
|
|
1120
|
-
H && /* @__PURE__ */
|
|
1077
|
+
H && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1121
1078
|
icon: pe,
|
|
1122
|
-
title: V ?
|
|
1123
|
-
subtitle:
|
|
1079
|
+
title: V ? p("pages.marketplace.searchResults", "Search Results") : p("pages.marketplace.filteredResults", "Filtered Results"),
|
|
1080
|
+
subtitle: p("pages.marketplace.appsFound", "{{count}} app{{plural}} found", {
|
|
1124
1081
|
count: J,
|
|
1125
1082
|
plural: J === 1 ? "" : "s"
|
|
1126
1083
|
})
|
|
1127
|
-
}),
|
|
1084
|
+
}), et.length > 0 ? /* @__PURE__ */ x("div", {
|
|
1128
1085
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
1129
1086
|
"data-tour": "store-marketplace-product-grid",
|
|
1130
|
-
children:
|
|
1087
|
+
children: et.map((e) => /* @__PURE__ */ x(k, {
|
|
1131
1088
|
product: e,
|
|
1132
1089
|
onClick: () => Q(e)
|
|
1133
1090
|
}, e.id))
|
|
1134
|
-
}) : /* @__PURE__ */
|
|
1091
|
+
}) : /* @__PURE__ */ x(we, {
|
|
1135
1092
|
illustration: "empty-search",
|
|
1136
|
-
title:
|
|
1137
|
-
description:
|
|
1138
|
-
action: /* @__PURE__ */
|
|
1093
|
+
title: p("pages.marketplace.noFilterMatch", "No apps match your filters"),
|
|
1094
|
+
description: p("pages.marketplace.noFilterMatchDescription", "Try adjusting your filter criteria or clearing filters to see more results."),
|
|
1095
|
+
action: /* @__PURE__ */ x("button", {
|
|
1139
1096
|
type: "button",
|
|
1140
|
-
onClick:
|
|
1097
|
+
onClick: We,
|
|
1141
1098
|
className: "cursor-pointer rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-opacity hover:opacity-90",
|
|
1142
|
-
children:
|
|
1099
|
+
children: p("pages.marketplace.clearAllFilters", "Clear All Filters")
|
|
1143
1100
|
})
|
|
1144
1101
|
})] }),
|
|
1145
|
-
!H &&
|
|
1146
|
-
G.length > 0 && /* @__PURE__ */
|
|
1147
|
-
icon:
|
|
1148
|
-
title:
|
|
1149
|
-
subtitle:
|
|
1150
|
-
}), /* @__PURE__ */
|
|
1102
|
+
!H && O === "all" && /* @__PURE__ */ S(b, { children: [
|
|
1103
|
+
G.length > 0 && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1104
|
+
icon: be,
|
|
1105
|
+
title: p("pages.marketplace.mostDownloaded", "Most Downloaded"),
|
|
1106
|
+
subtitle: p("pages.marketplace.mostDownloadedSubtitle", "Top picks by our community")
|
|
1107
|
+
}), /* @__PURE__ */ x("div", {
|
|
1151
1108
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
1152
1109
|
"data-tour": "store-marketplace-most-downloaded",
|
|
1153
|
-
children: G.slice(0, 6).map((e) => /* @__PURE__ */
|
|
1110
|
+
children: G.slice(0, 6).map((e) => /* @__PURE__ */ x(k, {
|
|
1154
1111
|
product: e,
|
|
1155
1112
|
onClick: () => Q(e)
|
|
1156
1113
|
}, e.id))
|
|
1157
1114
|
})] }),
|
|
1158
|
-
K.length > 0 && /* @__PURE__ */
|
|
1115
|
+
K.length > 0 && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1159
1116
|
icon: le,
|
|
1160
|
-
title:
|
|
1161
|
-
subtitle:
|
|
1162
|
-
}), /* @__PURE__ */
|
|
1117
|
+
title: p("pages.marketplace.newReleases", "New Releases"),
|
|
1118
|
+
subtitle: p("pages.marketplace.newReleasesSubtitle", "Recently published apps")
|
|
1119
|
+
}), /* @__PURE__ */ x("div", {
|
|
1163
1120
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
1164
|
-
children: K.slice(0, 6).map((e) => /* @__PURE__ */
|
|
1121
|
+
children: K.slice(0, 6).map((e) => /* @__PURE__ */ x(k, {
|
|
1165
1122
|
product: e,
|
|
1166
1123
|
onClick: () => Q(e)
|
|
1167
1124
|
}, e.id))
|
|
1168
1125
|
})] }),
|
|
1169
|
-
q.length > 0 && /* @__PURE__ */
|
|
1126
|
+
q.length > 0 && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1170
1127
|
icon: me,
|
|
1171
|
-
title:
|
|
1172
|
-
subtitle:
|
|
1173
|
-
}), /* @__PURE__ */
|
|
1128
|
+
title: p("pages.marketplace.freeApps", "Free Apps"),
|
|
1129
|
+
subtitle: p("pages.marketplace.freeAppsSubtitle", "No cost, full functionality")
|
|
1130
|
+
}), /* @__PURE__ */ x("div", {
|
|
1174
1131
|
className: "grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-6",
|
|
1175
|
-
children: q.slice(0, 6).map((e) => /* @__PURE__ */
|
|
1132
|
+
children: q.slice(0, 6).map((e) => /* @__PURE__ */ x(k, {
|
|
1176
1133
|
product: e,
|
|
1177
1134
|
onClick: () => Q(e),
|
|
1178
1135
|
variant: "compact"
|
|
1179
1136
|
}, e.id))
|
|
1180
1137
|
})] }),
|
|
1181
|
-
$.length > 0 && /* @__PURE__ */
|
|
1182
|
-
icon:
|
|
1183
|
-
title:
|
|
1184
|
-
subtitle:
|
|
1185
|
-
}), /* @__PURE__ */
|
|
1138
|
+
$.length > 0 && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1139
|
+
icon: f,
|
|
1140
|
+
title: p("pages.marketplace.allApps", "All Apps"),
|
|
1141
|
+
subtitle: p("pages.marketplace.allAppsSubtitle", "{{count}} apps available", { count: $.length })
|
|
1142
|
+
}), /* @__PURE__ */ x("div", {
|
|
1186
1143
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
1187
|
-
children: $.map((e) => /* @__PURE__ */
|
|
1144
|
+
children: $.map((e) => /* @__PURE__ */ x(k, {
|
|
1188
1145
|
product: e,
|
|
1189
1146
|
onClick: () => Q(e)
|
|
1190
1147
|
}, e.id))
|
|
1191
1148
|
})] })
|
|
1192
1149
|
] }),
|
|
1193
|
-
|
|
1194
|
-
icon:
|
|
1195
|
-
title:
|
|
1196
|
-
subtitle:
|
|
1197
|
-
}), /* @__PURE__ */
|
|
1150
|
+
it && ot.length > 0 && /* @__PURE__ */ S("section", { children: [/* @__PURE__ */ x(A, {
|
|
1151
|
+
icon: u,
|
|
1152
|
+
title: p("pages.marketplace.deprecatedApps", "Deprecated Apps You've Installed"),
|
|
1153
|
+
subtitle: p("pages.marketplace.deprecatedAppsSubtitle", "These apps are no longer supported — hover the badge for details")
|
|
1154
|
+
}), /* @__PURE__ */ x("div", {
|
|
1198
1155
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
1199
|
-
children:
|
|
1156
|
+
children: ot.map((e) => /* @__PURE__ */ x(Oe, {
|
|
1200
1157
|
product: e,
|
|
1201
|
-
onClick: () => r(`${
|
|
1158
|
+
onClick: () => r(`${d}/marketplace/product/${e.id}`)
|
|
1202
1159
|
}, e.id))
|
|
1203
1160
|
})] }),
|
|
1204
|
-
$.length === 0 && /* @__PURE__ */
|
|
1161
|
+
$.length === 0 && /* @__PURE__ */ x(we, {
|
|
1205
1162
|
illustration: "onboarding",
|
|
1206
|
-
title:
|
|
1207
|
-
description:
|
|
1163
|
+
title: p("pages.marketplace.noAppsTitle", "No apps available yet"),
|
|
1164
|
+
description: p("pages.marketplace.noAppsDescription", "The marketplace is empty. Check back soon for new apps, workflows, and integrations.")
|
|
1208
1165
|
})
|
|
1209
1166
|
] })
|
|
1210
1167
|
]
|
|
1211
1168
|
})
|
|
1212
1169
|
}),
|
|
1213
|
-
/* @__PURE__ */
|
|
1170
|
+
/* @__PURE__ */ x(te, {
|
|
1214
1171
|
isOpen: fe,
|
|
1215
|
-
onClose:
|
|
1216
|
-
onCheckout:
|
|
1217
|
-
cartItems:
|
|
1218
|
-
itemCount:
|
|
1172
|
+
onClose: m,
|
|
1173
|
+
onCheckout: rt,
|
|
1174
|
+
cartItems: g,
|
|
1175
|
+
itemCount: h,
|
|
1219
1176
|
currency: de?.currency || "USD",
|
|
1220
1177
|
subtotal: _e,
|
|
1221
|
-
tax:
|
|
1222
|
-
total:
|
|
1223
|
-
updateQuantity:
|
|
1224
|
-
removeProduct:
|
|
1178
|
+
tax: Se,
|
|
1179
|
+
total: C,
|
|
1180
|
+
updateQuantity: w,
|
|
1181
|
+
removeProduct: T
|
|
1225
1182
|
})
|
|
1226
1183
|
]
|
|
1227
1184
|
});
|
|
1228
1185
|
};
|
|
1229
1186
|
//#endregion
|
|
1230
|
-
export {
|
|
1187
|
+
export { L as MarketplaceHomePage };
|
|
1231
1188
|
|
|
1232
1189
|
//# sourceMappingURL=MarketplaceHomePage.js.map
|