@burdenoff/microfe-store 2026.830.1 → 2026.830.2

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