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