@burdenoff/microfe-store 2026.720.4 → 2026.728.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,19 @@
1
1
  import { useStore as e } from "../providers/StoreProvider.js";
2
2
  import { useCart as t } from "../hooks/useCart.js";
3
3
  import { formatNumber as n, formatPrice as r } from "../utils/index.js";
4
- import { useCreateReview as ee, useDeleteReview as te, useMarkReviewHelpful as ne, useStoreProductDetails as re, useUpdateReview as ie } from "../hooks/useStoreGraphQL.js";
5
- import { Markdown as ae } from "../node_modules/react-markdown/lib/index.js";
6
- import { InstallAppModal as oe } from "../components/InstallAppModal.js";
7
- import { useInstallations as se } from "../hooks/useInstallations.js";
8
- import { nativeConfirm as ce, nativeImpact as le, nativeNotify as ue } from "../utils/nativeBridge.js";
9
- import { useCallback as i, useEffect as de, useMemo as fe, useRef as pe, useState as a } from "react";
10
- import { AlertCircle as o, ArrowLeft as me, Check as he, Loader2 as ge, Package as s, ShieldCheck as c, ShoppingCart as _e, Star as l, ThumbsUp as u } from "lucide-react";
11
- import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
12
- import { useLocation as ve, useNavigate as ye, useParams as be } from "react-router-dom";
13
- import { EmphasisPanel as xe, GlassCard as m, IllustratedEmptyState as Se, NextSteps as Ce, PagePurpose as we } from "@burdenoff/fe-libs/ui";
14
- import { useEventBus as Te } from "@burdenoff/fe-libs/shared/events";
4
+ import { useCreateReview as i, useDeleteReview as ee, useMarkReviewHelpful as te, useStoreProductDetails as ne, useUpdateReview as re } from "../hooks/useStoreGraphQL.js";
5
+ import { Markdown as ie } from "../node_modules/react-markdown/lib/index.js";
6
+ import { InstallAppModal as ae } from "../components/InstallAppModal.js";
7
+ import { useInstallations as oe } from "../hooks/useInstallations.js";
8
+ import { nativeConfirm as se, nativeImpact as ce, nativeNotify as le } from "../utils/nativeBridge.js";
9
+ import { useCallback as a, useEffect as ue, useMemo as de, useRef as fe, useState as o } from "react";
10
+ import { AlertCircle as s, ArrowLeft as pe, Check as me, Loader2 as he, Package as c, ShieldCheck as l, ShoppingCart as ge, Star as u, ThumbsUp as d } from "lucide-react";
11
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
12
+ import { useLocation as _e, useNavigate as ve, useParams as ye } from "react-router-dom";
13
+ import { EmphasisPanel as be, GlassCard as h, IllustratedEmptyState as xe, NextSteps as Se, PagePurpose as Ce } from "@burdenoff/fe-libs/ui";
14
+ import { useEventBus as we } from "@burdenoff/fe-libs/shared/events";
15
15
  //#region src/pages/ProductDetailPage.tsx
16
- var Ee = (e, t) => ({
16
+ var Te = (e, t) => ({
17
17
  id: e.id,
18
18
  publisherId: t?.id || "",
19
19
  publisher: {
@@ -45,7 +45,8 @@ var Ee = (e, t) => ({
45
45
  TEMPLATE: "TEMPLATE",
46
46
  INTEGRATION: "INTEGRATION",
47
47
  EXTENSION: "EXTENSION",
48
- THEME: "THEME"
48
+ THEME: "THEME",
49
+ DASHBOARD: "TEMPLATE"
49
50
  }[t] || "APP")(e.nature, e.type),
50
51
  type: ((e) => ({
51
52
  APP: "STANDALONE_APP",
@@ -61,7 +62,9 @@ var Ee = (e, t) => ({
61
62
  WIDGET: "WORKSPACE_MODULE",
62
63
  VIBEMODULE: "WORKSPACE_MODULE",
63
64
  CONSOLE: "STANDALONE_APP",
64
- NODE: "WORKSPACE_MODULE"
65
+ NODE: "WORKSPACE_MODULE",
66
+ PARSER: "WORKSPACE_MODULE",
67
+ DASHBOARD: "WORKFLOW_TEMPLATE"
65
68
  })[e] || "STANDALONE_APP")(e.type),
66
69
  tags: e.tags || [],
67
70
  pricingModel: ((e) => ({
@@ -85,41 +88,41 @@ var Ee = (e, t) => ({
85
88
  createdAt: e.createdAt,
86
89
  updatedAt: e.updatedAt,
87
90
  publishedAt: e.publishedAt
88
- }), De = ({ stars: e, percentage: t, count: r }) => /* @__PURE__ */ p("div", {
91
+ }), Ee = ({ stars: e, percentage: t, count: r }) => /* @__PURE__ */ m("div", {
89
92
  className: "flex items-center gap-2",
90
93
  children: [
91
- /* @__PURE__ */ f("span", {
94
+ /* @__PURE__ */ p("span", {
92
95
  className: "w-3 text-xs text-text-muted",
93
96
  children: e
94
97
  }),
95
- /* @__PURE__ */ f("div", {
98
+ /* @__PURE__ */ p("div", {
96
99
  className: "h-2 flex-1 overflow-hidden rounded-full bg-bg-sunken",
97
- children: /* @__PURE__ */ f("div", {
100
+ children: /* @__PURE__ */ p("div", {
98
101
  className: "h-full rounded-full bg-status-warning-bg-subtle",
99
102
  style: { width: `${t}%` }
100
103
  })
101
104
  }),
102
- /* @__PURE__ */ f("span", {
105
+ /* @__PURE__ */ p("span", {
103
106
  className: "w-12 text-right text-xs text-text-muted",
104
107
  children: n(r)
105
108
  })
106
109
  ]
107
- }), Oe = ({ review: e, onMarkHelpful: t, markingHelpful: n }) => /* @__PURE__ */ p("div", {
110
+ }), De = ({ review: e, onMarkHelpful: t, markingHelpful: n }) => /* @__PURE__ */ m("div", {
108
111
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop)]",
109
112
  children: [
110
- /* @__PURE__ */ f("div", {
113
+ /* @__PURE__ */ p("div", {
111
114
  className: "mb-3 flex items-start justify-between",
112
- children: /* @__PURE__ */ p("div", {
115
+ children: /* @__PURE__ */ m("div", {
113
116
  className: "flex items-center gap-3",
114
- children: [/* @__PURE__ */ f("div", {
117
+ children: [/* @__PURE__ */ p("div", {
115
118
  className: "flex size-10 items-center justify-center rounded-full bg-bg-sunken text-text-muted",
116
- children: /* @__PURE__ */ f(l, { className: "size-4 fill-current" })
117
- }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
119
+ children: /* @__PURE__ */ p(u, { className: "size-4 fill-current" })
120
+ }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
118
121
  className: "font-medium text-text-primary",
119
122
  children: "Verified Buyer"
120
- }), /* @__PURE__ */ p("div", {
123
+ }), /* @__PURE__ */ m("div", {
121
124
  className: "flex items-center gap-2",
122
- children: [/* @__PURE__ */ f("div", {
125
+ children: [/* @__PURE__ */ p("div", {
123
126
  className: "flex gap-0.5",
124
127
  children: [
125
128
  1,
@@ -127,8 +130,8 @@ var Ee = (e, t) => ({
127
130
  3,
128
131
  4,
129
132
  5
130
- ].map((t) => /* @__PURE__ */ f(l, { className: `size-3 ${t <= e.rating ? "fill-current text-status-warning-text" : "text-text-muted"}` }, t))
131
- }), /* @__PURE__ */ f("span", {
133
+ ].map((t) => /* @__PURE__ */ p(u, { className: `size-3 ${t <= e.rating ? "fill-current text-status-warning-text" : "text-text-muted"}` }, t))
134
+ }), /* @__PURE__ */ p("span", {
132
135
  className: "text-xs text-text-muted",
133
136
  children: ((e) => {
134
137
  try {
@@ -145,147 +148,147 @@ var Ee = (e, t) => ({
145
148
  })] })]
146
149
  })
147
150
  }),
148
- e.title && /* @__PURE__ */ f("h4", {
151
+ e.title && /* @__PURE__ */ p("h4", {
149
152
  className: "mb-2 font-medium text-text-primary",
150
153
  children: e.title
151
154
  }),
152
- e.comment && /* @__PURE__ */ f("p", {
155
+ e.comment && /* @__PURE__ */ p("p", {
153
156
  className: "mb-3 text-sm text-text-muted",
154
157
  children: e.comment
155
158
  }),
156
- /* @__PURE__ */ f("div", {
159
+ /* @__PURE__ */ p("div", {
157
160
  className: "flex items-center justify-between",
158
- children: /* @__PURE__ */ p("button", {
161
+ children: /* @__PURE__ */ m("button", {
159
162
  type: "button",
160
163
  onClick: () => t(e.id),
161
164
  disabled: n,
162
165
  "aria-label": "Mark this review as helpful",
163
166
  className: "flex items-center gap-1 text-xs text-text-muted transition-colors hover:text-text-primary disabled:cursor-not-allowed disabled:opacity-60",
164
- children: [/* @__PURE__ */ f(u, { className: "size-3.5" }), /* @__PURE__ */ f("span", { children: n ? "Updating…" : `Helpful (${e.helpful})` })]
167
+ children: [/* @__PURE__ */ p(d, { className: "size-3.5" }), /* @__PURE__ */ p("span", { children: n ? "Updating…" : `Helpful (${e.helpful})` })]
165
168
  })
166
169
  })
167
170
  ]
168
- }), ke = () => /* @__PURE__ */ p("div", {
171
+ }), Oe = () => /* @__PURE__ */ m("div", {
169
172
  className: "h-full overflow-y-auto",
170
- children: [/* @__PURE__ */ f("div", {
173
+ children: [/* @__PURE__ */ p("div", {
171
174
  className: "sticky top-0 z-10 border-b border-border-default bg-bg-surface px-6 py-4",
172
- children: /* @__PURE__ */ p("div", {
175
+ children: /* @__PURE__ */ m("div", {
173
176
  className: "flex items-center gap-4",
174
177
  children: [
175
- /* @__PURE__ */ f("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }),
176
- /* @__PURE__ */ f("div", { className: "h-6 w-48 flex-1 animate-pulse rounded bg-bg-sunken" }),
177
- /* @__PURE__ */ p("div", {
178
+ /* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }),
179
+ /* @__PURE__ */ p("div", { className: "h-6 w-48 flex-1 animate-pulse rounded bg-bg-sunken" }),
180
+ /* @__PURE__ */ m("div", {
178
181
  className: "flex gap-2",
179
- children: [/* @__PURE__ */ f("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" })]
182
+ children: [/* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" })]
180
183
  })
181
184
  ]
182
185
  })
183
- }), /* @__PURE__ */ p("div", {
186
+ }), /* @__PURE__ */ m("div", {
184
187
  className: "mx-auto max-w-6xl p-6",
185
188
  children: [
186
- /* @__PURE__ */ p("div", {
189
+ /* @__PURE__ */ m("div", {
187
190
  className: "mb-8 flex flex-col gap-6 md:flex-row",
188
- children: [/* @__PURE__ */ p("div", {
191
+ children: [/* @__PURE__ */ m("div", {
189
192
  className: "flex gap-4 md:w-1/2",
190
- children: [/* @__PURE__ */ f("div", { className: "size-28 animate-pulse rounded-2xl bg-bg-sunken" }), /* @__PURE__ */ p("div", {
193
+ children: [/* @__PURE__ */ p("div", { className: "size-28 animate-pulse rounded-2xl bg-bg-sunken" }), /* @__PURE__ */ m("div", {
191
194
  className: "flex flex-1 flex-col justify-center gap-2",
192
195
  children: [
193
- /* @__PURE__ */ f("div", { className: "h-8 w-3/4 animate-pulse rounded bg-bg-sunken" }),
194
- /* @__PURE__ */ p("div", {
196
+ /* @__PURE__ */ p("div", { className: "h-8 w-3/4 animate-pulse rounded bg-bg-sunken" }),
197
+ /* @__PURE__ */ m("div", {
195
198
  className: "flex items-center gap-2",
196
- children: [/* @__PURE__ */ f("div", { className: "h-4 w-32 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "size-4 animate-pulse rounded-full bg-bg-sunken" })]
199
+ children: [/* @__PURE__ */ p("div", { className: "h-4 w-32 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-4 animate-pulse rounded-full bg-bg-sunken" })]
197
200
  }),
198
- /* @__PURE__ */ p("div", {
201
+ /* @__PURE__ */ m("div", {
199
202
  className: "flex gap-3",
200
- children: [/* @__PURE__ */ f("div", { className: "h-5 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-5 w-24 animate-pulse rounded bg-bg-sunken" })]
203
+ children: [/* @__PURE__ */ p("div", { className: "h-5 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-5 w-24 animate-pulse rounded bg-bg-sunken" })]
201
204
  })
202
205
  ]
203
206
  })]
204
- }), /* @__PURE__ */ p("div", {
207
+ }), /* @__PURE__ */ m("div", {
205
208
  className: "flex flex-col gap-4 md:w-1/2 md:items-end",
206
- children: [/* @__PURE__ */ p("div", {
209
+ children: [/* @__PURE__ */ m("div", {
207
210
  className: "flex items-center gap-4",
208
211
  children: [
209
- /* @__PURE__ */ p("div", {
212
+ /* @__PURE__ */ m("div", {
210
213
  className: "text-center",
211
- children: [/* @__PURE__ */ f("div", { className: "h-10 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "mt-1 h-3 w-20 animate-pulse rounded bg-bg-sunken" })]
214
+ children: [/* @__PURE__ */ p("div", { className: "h-10 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-20 animate-pulse rounded bg-bg-sunken" })]
212
215
  }),
213
- /* @__PURE__ */ f("div", { className: "h-12 w-px bg-border-default" }),
214
- /* @__PURE__ */ p("div", {
216
+ /* @__PURE__ */ p("div", { className: "h-12 w-px bg-border-default" }),
217
+ /* @__PURE__ */ m("div", {
215
218
  className: "text-center",
216
- children: [/* @__PURE__ */ f("div", { className: "h-8 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "mt-1 h-3 w-16 animate-pulse rounded bg-bg-sunken" })]
219
+ children: [/* @__PURE__ */ p("div", { className: "h-8 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-16 animate-pulse rounded bg-bg-sunken" })]
217
220
  }),
218
- /* @__PURE__ */ f("div", { className: "h-12 w-px bg-border-default" }),
219
- /* @__PURE__ */ p("div", {
221
+ /* @__PURE__ */ p("div", { className: "h-12 w-px bg-border-default" }),
222
+ /* @__PURE__ */ m("div", {
220
223
  className: "text-center",
221
- children: [/* @__PURE__ */ f("div", { className: "h-8 w-20 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "mt-1 h-3 w-12 animate-pulse rounded bg-bg-sunken" })]
224
+ children: [/* @__PURE__ */ p("div", { className: "h-8 w-20 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-12 animate-pulse rounded bg-bg-sunken" })]
222
225
  })
223
226
  ]
224
- }), /* @__PURE__ */ p("div", {
227
+ }), /* @__PURE__ */ m("div", {
225
228
  className: "flex gap-3",
226
- children: [/* @__PURE__ */ f("div", { className: "h-12 w-40 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "size-12 animate-pulse rounded-lg bg-bg-sunken" })]
229
+ children: [/* @__PURE__ */ p("div", { className: "h-12 w-40 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-12 animate-pulse rounded-lg bg-bg-sunken" })]
227
230
  })]
228
231
  })]
229
232
  }),
230
- /* @__PURE__ */ p("section", {
233
+ /* @__PURE__ */ m("section", {
231
234
  className: "mb-8",
232
- children: [/* @__PURE__ */ f("div", { className: "aspect-video animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ f("div", {
235
+ children: [/* @__PURE__ */ p("div", { className: "aspect-video animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", {
233
236
  className: "mt-4 flex gap-4",
234
237
  children: [...[
235
238
  ,
236
239
  ,
237
240
  ,
238
241
  ,
239
- ]].map((e, t) => /* @__PURE__ */ f("div", { className: "h-20 w-36 animate-pulse rounded-lg bg-bg-sunken" }, t))
242
+ ]].map((e, t) => /* @__PURE__ */ p("div", { className: "h-20 w-36 animate-pulse rounded-lg bg-bg-sunken" }, t))
240
243
  })]
241
244
  }),
242
- /* @__PURE__ */ p("section", {
245
+ /* @__PURE__ */ m("section", {
243
246
  className: "mb-8",
244
- children: [/* @__PURE__ */ p("div", {
247
+ children: [/* @__PURE__ */ m("div", {
245
248
  className: "mb-4 flex items-center gap-2",
246
- children: [/* @__PURE__ */ f("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-6 w-32 animate-pulse rounded bg-bg-sunken" })]
247
- }), /* @__PURE__ */ p("div", {
249
+ children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-32 animate-pulse rounded bg-bg-sunken" })]
250
+ }), /* @__PURE__ */ m("div", {
248
251
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
249
- children: [/* @__PURE__ */ p("div", {
252
+ children: [/* @__PURE__ */ m("div", {
250
253
  className: "space-y-2",
251
254
  children: [
252
- /* @__PURE__ */ f("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
253
- /* @__PURE__ */ f("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
254
- /* @__PURE__ */ f("div", { className: "h-4 w-3/4 rounded bg-bg-sunken" }),
255
- /* @__PURE__ */ f("div", { className: "h-4 w-5/6 rounded bg-bg-sunken" })
255
+ /* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
256
+ /* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
257
+ /* @__PURE__ */ p("div", { className: "h-4 w-3/4 rounded bg-bg-sunken" }),
258
+ /* @__PURE__ */ p("div", { className: "h-4 w-5/6 rounded bg-bg-sunken" })
256
259
  ]
257
- }), /* @__PURE__ */ f("div", {
260
+ }), /* @__PURE__ */ p("div", {
258
261
  className: "mt-4 flex gap-2",
259
262
  children: [...[
260
263
  ,
261
264
  ,
262
265
  ,
263
266
  ,
264
- ]].map((e, t) => /* @__PURE__ */ f("div", { className: "h-6 w-16 rounded-full bg-bg-sunken" }, t))
267
+ ]].map((e, t) => /* @__PURE__ */ p("div", { className: "h-6 w-16 rounded-full bg-bg-sunken" }, t))
265
268
  })]
266
269
  })]
267
270
  }),
268
- /* @__PURE__ */ p("section", {
271
+ /* @__PURE__ */ m("section", {
269
272
  className: "mb-8",
270
273
  children: [
271
- /* @__PURE__ */ p("div", {
274
+ /* @__PURE__ */ m("div", {
272
275
  className: "mb-4 flex items-center justify-between",
273
- children: [/* @__PURE__ */ p("div", {
276
+ children: [/* @__PURE__ */ m("div", {
274
277
  className: "flex items-center gap-2",
275
- children: [/* @__PURE__ */ f("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
276
- }), /* @__PURE__ */ f("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
278
+ children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
279
+ }), /* @__PURE__ */ p("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
277
280
  }),
278
- /* @__PURE__ */ p("div", {
281
+ /* @__PURE__ */ m("div", {
279
282
  className: "mb-6 flex flex-col gap-6 md:flex-row",
280
- children: [/* @__PURE__ */ f("div", {
283
+ children: [/* @__PURE__ */ p("div", {
281
284
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4 md:w-64",
282
- children: /* @__PURE__ */ p("div", {
285
+ children: /* @__PURE__ */ m("div", {
283
286
  className: "flex items-center gap-6",
284
- children: [/* @__PURE__ */ p("div", {
287
+ children: [/* @__PURE__ */ m("div", {
285
288
  className: "text-center",
286
289
  children: [
287
- /* @__PURE__ */ f("div", { className: "h-12 w-16 rounded bg-bg-sunken" }),
288
- /* @__PURE__ */ f("div", {
290
+ /* @__PURE__ */ p("div", { className: "h-12 w-16 rounded bg-bg-sunken" }),
291
+ /* @__PURE__ */ p("div", {
289
292
  className: "my-1 flex justify-center gap-0.5",
290
293
  children: [...[
291
294
  ,
@@ -293,11 +296,11 @@ var Ee = (e, t) => ({
293
296
  ,
294
297
  ,
295
298
  ,
296
- ]].map((e, t) => /* @__PURE__ */ f("div", { className: "size-4 rounded bg-bg-sunken" }, t))
299
+ ]].map((e, t) => /* @__PURE__ */ p("div", { className: "size-4 rounded bg-bg-sunken" }, t))
297
300
  }),
298
- /* @__PURE__ */ f("div", { className: "h-3 w-20 rounded bg-bg-sunken" })
301
+ /* @__PURE__ */ p("div", { className: "h-3 w-20 rounded bg-bg-sunken" })
299
302
  ]
300
- }), /* @__PURE__ */ f("div", {
303
+ }), /* @__PURE__ */ p("div", {
301
304
  className: "flex-1 space-y-1",
302
305
  children: [...[
303
306
  ,
@@ -305,29 +308,29 @@ var Ee = (e, t) => ({
305
308
  ,
306
309
  ,
307
310
  ,
308
- ]].map((e, t) => /* @__PURE__ */ p("div", {
311
+ ]].map((e, t) => /* @__PURE__ */ m("div", {
309
312
  className: "flex items-center gap-2",
310
313
  children: [
311
- /* @__PURE__ */ f("div", { className: "h-2 w-3 rounded bg-bg-sunken" }),
312
- /* @__PURE__ */ f("div", { className: "h-2 flex-1 rounded-full bg-bg-sunken" }),
313
- /* @__PURE__ */ f("div", { className: "h-2 w-8 rounded bg-bg-sunken" })
314
+ /* @__PURE__ */ p("div", { className: "h-2 w-3 rounded bg-bg-sunken" }),
315
+ /* @__PURE__ */ p("div", { className: "h-2 flex-1 rounded-full bg-bg-sunken" }),
316
+ /* @__PURE__ */ p("div", { className: "h-2 w-8 rounded bg-bg-sunken" })
314
317
  ]
315
318
  }, t))
316
319
  })]
317
320
  })
318
- }), /* @__PURE__ */ f("div", { className: "h-12 w-32 animate-pulse rounded-lg bg-bg-sunken" })]
321
+ }), /* @__PURE__ */ p("div", { className: "h-12 w-32 animate-pulse rounded-lg bg-bg-sunken" })]
319
322
  }),
320
- /* @__PURE__ */ f("div", {
323
+ /* @__PURE__ */ p("div", {
321
324
  className: "space-y-4",
322
- children: [...[, ,]].map((e, t) => /* @__PURE__ */ p("div", {
325
+ children: [...[, ,]].map((e, t) => /* @__PURE__ */ m("div", {
323
326
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
324
- children: [/* @__PURE__ */ p("div", {
327
+ children: [/* @__PURE__ */ m("div", {
325
328
  className: "mb-3 flex items-start gap-3",
326
- children: [/* @__PURE__ */ f("div", { className: "size-10 rounded-full bg-bg-sunken" }), /* @__PURE__ */ p("div", {
329
+ children: [/* @__PURE__ */ p("div", { className: "size-10 rounded-full bg-bg-sunken" }), /* @__PURE__ */ m("div", {
327
330
  className: "flex-1",
328
- children: [/* @__PURE__ */ f("div", { className: "h-4 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", {
331
+ children: [/* @__PURE__ */ p("div", { className: "h-4 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ m("div", {
329
332
  className: "mt-1 flex items-center gap-2",
330
- children: [/* @__PURE__ */ f("div", {
333
+ children: [/* @__PURE__ */ p("div", {
331
334
  className: "flex gap-0.5",
332
335
  children: [...[
333
336
  ,
@@ -335,26 +338,26 @@ var Ee = (e, t) => ({
335
338
  ,
336
339
  ,
337
340
  ,
338
- ]].map((e, t) => /* @__PURE__ */ f("div", { className: "size-3 rounded bg-bg-sunken" }, t))
339
- }), /* @__PURE__ */ f("div", { className: "h-3 w-20 rounded bg-bg-sunken" })]
341
+ ]].map((e, t) => /* @__PURE__ */ p("div", { className: "size-3 rounded bg-bg-sunken" }, t))
342
+ }), /* @__PURE__ */ p("div", { className: "h-3 w-20 rounded bg-bg-sunken" })]
340
343
  })]
341
344
  })]
342
- }), /* @__PURE__ */ p("div", {
345
+ }), /* @__PURE__ */ m("div", {
343
346
  className: "space-y-2",
344
- children: [/* @__PURE__ */ f("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
347
+ children: [/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
345
348
  })]
346
349
  }, t))
347
350
  })
348
351
  ]
349
352
  }),
350
- /* @__PURE__ */ p("section", {
353
+ /* @__PURE__ */ m("section", {
351
354
  className: "mb-8",
352
- children: [/* @__PURE__ */ p("div", {
355
+ children: [/* @__PURE__ */ m("div", {
353
356
  className: "mb-4 flex items-center gap-2",
354
- children: [/* @__PURE__ */ f("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-6 w-48 animate-pulse rounded bg-bg-sunken" })]
355
- }), /* @__PURE__ */ f("div", {
357
+ children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-48 animate-pulse rounded bg-bg-sunken" })]
358
+ }), /* @__PURE__ */ p("div", {
356
359
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
357
- children: /* @__PURE__ */ f("div", {
360
+ children: /* @__PURE__ */ p("div", {
358
361
  className: "grid gap-4 md:grid-cols-2",
359
362
  children: [...[
360
363
  ,
@@ -363,37 +366,37 @@ var Ee = (e, t) => ({
363
366
  ,
364
367
  ,
365
368
  ,
366
- ]].map((e, t) => /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("div", { className: "h-3 w-16 rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "mt-1 h-5 w-24 rounded bg-bg-sunken" })] }, t))
369
+ ]].map((e, t) => /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("div", { className: "h-3 w-16 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-5 w-24 rounded bg-bg-sunken" })] }, t))
367
370
  })
368
371
  })]
369
372
  }),
370
- /* @__PURE__ */ p("section", {
373
+ /* @__PURE__ */ m("section", {
371
374
  className: "mb-8",
372
- children: [/* @__PURE__ */ p("div", {
375
+ children: [/* @__PURE__ */ m("div", {
373
376
  className: "mb-4 flex items-center justify-between",
374
- children: [/* @__PURE__ */ p("div", {
377
+ children: [/* @__PURE__ */ m("div", {
375
378
  className: "flex items-center gap-2",
376
- children: [/* @__PURE__ */ f("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
377
- }), /* @__PURE__ */ f("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
378
- }), /* @__PURE__ */ f("div", {
379
+ children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
380
+ }), /* @__PURE__ */ p("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
381
+ }), /* @__PURE__ */ p("div", {
379
382
  className: "grid gap-4 md:grid-cols-4",
380
383
  children: [...[
381
384
  ,
382
385
  ,
383
386
  ,
384
387
  ,
385
- ]].map((e, t) => /* @__PURE__ */ f("div", {
388
+ ]].map((e, t) => /* @__PURE__ */ p("div", {
386
389
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-3",
387
- children: /* @__PURE__ */ p("div", {
390
+ children: /* @__PURE__ */ m("div", {
388
391
  className: "flex items-center gap-3",
389
- children: [/* @__PURE__ */ f("div", { className: "size-14 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ p("div", {
392
+ children: [/* @__PURE__ */ p("div", { className: "size-14 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ m("div", {
390
393
  className: "flex-1",
391
394
  children: [
392
- /* @__PURE__ */ f("div", { className: "h-4 w-24 rounded bg-bg-sunken" }),
393
- /* @__PURE__ */ f("div", { className: "mt-1 h-3 w-16 rounded bg-bg-sunken" }),
394
- /* @__PURE__ */ p("div", {
395
+ /* @__PURE__ */ p("div", { className: "h-4 w-24 rounded bg-bg-sunken" }),
396
+ /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-16 rounded bg-bg-sunken" }),
397
+ /* @__PURE__ */ m("div", {
395
398
  className: "mt-1 flex items-center gap-2",
396
- children: [/* @__PURE__ */ f("div", { className: "h-3 w-8 rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-3 w-12 rounded bg-bg-sunken" })]
399
+ children: [/* @__PURE__ */ p("div", { className: "h-3 w-8 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-3 w-12 rounded bg-bg-sunken" })]
397
400
  })
398
401
  ]
399
402
  })]
@@ -401,46 +404,46 @@ var Ee = (e, t) => ({
401
404
  }, t))
402
405
  })]
403
406
  }),
404
- /* @__PURE__ */ p("section", {
407
+ /* @__PURE__ */ m("section", {
405
408
  className: "mb-8",
406
- children: [/* @__PURE__ */ f("div", { className: "mb-4 h-6 w-36 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", {
409
+ children: [/* @__PURE__ */ p("div", { className: "mb-4 h-6 w-36 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ m("div", {
407
410
  className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
408
- children: [/* @__PURE__ */ p("div", {
411
+ children: [/* @__PURE__ */ m("div", {
409
412
  className: "flex items-center gap-4",
410
- children: [/* @__PURE__ */ f("div", { className: "size-12 rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ p("div", {
413
+ children: [/* @__PURE__ */ p("div", { className: "size-12 rounded-lg bg-bg-sunken" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("div", {
411
414
  className: "flex items-center gap-2",
412
- children: [/* @__PURE__ */ f("div", { className: "h-5 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "size-4 rounded-full bg-bg-sunken" })]
413
- }), /* @__PURE__ */ f("div", { className: "mt-1 h-4 w-40 rounded bg-bg-sunken" })] })]
414
- }), /* @__PURE__ */ p("div", {
415
+ children: [/* @__PURE__ */ p("div", { className: "h-5 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-4 rounded-full bg-bg-sunken" })]
416
+ }), /* @__PURE__ */ p("div", { className: "mt-1 h-4 w-40 rounded bg-bg-sunken" })] })]
417
+ }), /* @__PURE__ */ m("div", {
415
418
  className: "mt-3 space-y-2",
416
- children: [/* @__PURE__ */ f("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
419
+ children: [/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
417
420
  })]
418
421
  })]
419
422
  })
420
423
  ]
421
424
  })]
422
- }), Ae = ({ error: e, onRetry: t, onBack: n }) => /* @__PURE__ */ f("div", {
425
+ }), ke = ({ error: e, onRetry: t, onBack: n }) => /* @__PURE__ */ p("div", {
423
426
  className: "flex h-full items-center justify-center",
424
- children: /* @__PURE__ */ p("div", {
427
+ children: /* @__PURE__ */ m("div", {
425
428
  className: "text-center",
426
429
  children: [
427
- /* @__PURE__ */ f(o, { className: "mx-auto mb-4 size-12 text-status-error-text" }),
428
- /* @__PURE__ */ f("h2", {
430
+ /* @__PURE__ */ p(s, { className: "mx-auto mb-4 size-12 text-status-error-text" }),
431
+ /* @__PURE__ */ p("h2", {
429
432
  className: "mb-2 text-xl font-semibold text-text-primary",
430
433
  children: "Failed to load product"
431
434
  }),
432
- /* @__PURE__ */ f("p", {
435
+ /* @__PURE__ */ p("p", {
433
436
  className: "mb-4 text-text-muted",
434
437
  children: e.message || "An error occurred while loading the product details."
435
438
  }),
436
- /* @__PURE__ */ p("div", {
439
+ /* @__PURE__ */ m("div", {
437
440
  className: "flex justify-center gap-3",
438
- children: [/* @__PURE__ */ f("button", {
441
+ children: [/* @__PURE__ */ p("button", {
439
442
  type: "button",
440
443
  onClick: t,
441
444
  className: "rounded-lg bg-action-primary-bg px-4 py-2 text-action-primary-text transition-opacity hover:opacity-90",
442
445
  children: "Try Again"
443
- }), /* @__PURE__ */ f("button", {
446
+ }), /* @__PURE__ */ p("button", {
444
447
  type: "button",
445
448
  onClick: n,
446
449
  className: "rounded-lg border border-border-default px-4 py-2 text-text-primary transition-colors hover:bg-bg-sunken",
@@ -449,78 +452,78 @@ var Ee = (e, t) => ({
449
452
  })
450
453
  ]
451
454
  })
452
- }), je = () => {
453
- let { productId: o } = be(), u = ye(), je = ve(), { basePath: h, workspaceId: g } = e(), { addProduct: Me, cartItems: Ne, addingToCart: Pe, createOrder: Fe, checkingOut: Ie } = t(), { installations: Le, refetch: Re } = se({
454
- filter: fe(() => o && g ? {
455
- productId: o,
456
- workspaceId: g
457
- } : void 0, [o, g]),
455
+ }), Ae = () => {
456
+ let { productId: s } = ye(), d = ve(), Ae = _e(), { basePath: g, workspaceId: _ } = e(), { addProduct: je, cartItems: Me, addingToCart: Ne, createOrder: Pe, checkingOut: Fe } = t(), { installations: Ie, refetch: Le } = oe({
457
+ filter: de(() => s && _ ? {
458
+ productId: s,
459
+ workspaceId: _
460
+ } : void 0, [s, _]),
458
461
  limit: 1
459
- }), ze = Le.find((e) => e.productId === o && e.workspaceId === g && e.status === "ACTIVE"), _ = !!ze, v = ze?.version ?? null, { createReview: Be, loading: Ve } = ee(), { updateReview: He, loading: Ue } = ie(), { deleteReview: We, loading: Ge } = te(), { markHelpful: Ke, loading: qe } = ne(), y = Te(), [b, Je] = a(!1), [x, Ye] = a(!1), [Xe, S] = a(!1), [C, Ze] = a(1), [Qe, w] = a(null), [$e, T] = a(null), [et, E] = a("success"), [D, O] = a(!1), [k, A] = a(""), [j, M] = a(""), [N, P] = a(5), [tt, nt] = a(null), [rt, it] = a(!1), { data: at, loading: ot, error: st, refetch: F } = re({
460
- id: o,
461
- slug: o,
462
+ }), Re = Ie.find((e) => e.productId === s && e.workspaceId === _ && e.status === "ACTIVE"), v = !!Re, y = Re?.version ?? null, { createReview: ze, loading: Be } = i(), { updateReview: Ve, loading: He } = re(), { deleteReview: Ue, loading: We } = ee(), { markHelpful: Ge, loading: Ke } = te(), b = we(), [x, qe] = o(!1), [S, Je] = o(!1), [Ye, C] = o(!1), [w, Xe] = o(1), [Ze, T] = o(null), [Qe, E] = o(null), [$e, D] = o("success"), [O, k] = o(!1), [A, j] = o(""), [M, et] = o(""), [N, P] = o(5), [tt, nt] = o(null), [rt, it] = o(!1), { data: at, loading: ot, error: st, refetch: F } = ne({
463
+ id: s,
464
+ slug: s,
462
465
  includeReviews: !0,
463
466
  reviewsLimit: 10,
464
467
  includeRelated: !0,
465
468
  relatedLimit: 4,
466
469
  includeVersions: !0
467
- }), I = at, L = I?.product, R = I?.publisher, z = Ne.some((e) => e.productId === L?.id), ct = (e) => {
470
+ }), I = at, L = I?.product, R = I?.publisher, z = Me.some((e) => e.productId === L?.id), ct = (e) => {
468
471
  let t = e.split(".");
469
472
  for (; t.length < 3;) t.push("0");
470
473
  return t.join(".");
471
- }, lt = L?.manifestVersion ?? null, ut = !!(_ && v && lt && ct(v) !== ct(lt)), dt = i(async () => {
474
+ }, lt = L?.manifestVersion ?? null, ut = !!(v && y && lt && ct(y) !== ct(lt)), dt = a(async () => {
472
475
  if (L) {
473
- if (w(null), z) {
474
- u(`${h}/cart`);
476
+ if (T(null), z) {
477
+ d(`${g}/cart`);
475
478
  return;
476
479
  }
477
480
  try {
478
- await Me(Ee(L, R), void 0, C);
481
+ await je(Te(L, R), void 0, w);
479
482
  } catch (e) {
480
- console.error("Failed to add product to cart:", e), w("Failed to add this product to cart. Please try again.");
483
+ console.error("Failed to add product to cart:", e), T("Failed to add this product to cart. Please try again.");
481
484
  }
482
485
  }
483
486
  }, [
484
487
  L,
485
488
  R,
486
- Me,
489
+ je,
487
490
  z,
488
- u,
489
- h,
490
- C
491
- ]), ft = i(async () => {
491
+ d,
492
+ g,
493
+ w
494
+ ]), ft = a(async () => {
492
495
  if (L) {
493
- w(null), S(!0);
496
+ T(null), C(!0);
494
497
  try {
495
498
  let e = L.price || 0, t = {
496
499
  productId: L.id,
497
500
  name: L.name,
498
- quantity: C,
501
+ quantity: w,
499
502
  unitPrice: e,
500
- subtotal: e * C,
503
+ subtotal: e * w,
501
504
  itemType: L.nature?.toLowerCase() || "digital",
502
505
  pricingModel: L.pricingModel || "PAID_ONETIME"
503
- }, n = await Fe({
504
- total: e * C,
506
+ }, n = await Pe({
507
+ total: e * w,
505
508
  lineItems: [t],
506
509
  billingAccountId: ""
507
510
  });
508
- n?.id ? u(`/billing/checkout/store/${n.id}${je.search}`) : (console.error("Failed to create order"), w("Failed to create order. Please try again."), S(!1));
511
+ n?.id ? d(`/billing/checkout/store/${n.id}${Ae.search}`) : (console.error("Failed to create order"), T("Failed to create order. Please try again."), C(!1));
509
512
  } catch (e) {
510
- console.error("Buy Now error:", e), w(e instanceof Error ? e.message : "Failed to start checkout"), S(!1);
513
+ console.error("Buy Now error:", e), T(e instanceof Error ? e.message : "Failed to start checkout"), C(!1);
511
514
  }
512
515
  }
513
516
  }, [
514
517
  L,
515
- C,
516
- Fe,
517
- u
518
- ]), B = i(() => {
518
+ w,
519
+ Pe,
520
+ d
521
+ ]), B = a(() => {
519
522
  L && it(!0);
520
- }, [L]), pt = pe(L);
523
+ }, [L]), pt = fe(L);
521
524
  pt.current = L;
522
- let mt = pe(y);
523
- mt.current = y, de(() => {
525
+ let mt = fe(b);
526
+ mt.current = b, ue(() => {
524
527
  let e = pt.current;
525
528
  e && mt.current.emit("store.product.viewed", {
526
529
  productId: e.id,
@@ -529,91 +532,91 @@ var Ee = (e, t) => ({
529
532
  pricingModel: e.pricingModel
530
533
  });
531
534
  }, [L?.id]);
532
- let ht = i((e, t) => {
533
- L && (y.emit("store.product.installed", {
535
+ let ht = a((e, t) => {
536
+ L && (b.emit("store.product.installed", {
534
537
  productId: L.id,
535
538
  workspaceId: e
536
- }), console.log(`Successfully installed ${L.name} to workspace ${t} (${e})`), Re());
539
+ }), console.log(`Successfully installed ${L.name} to workspace ${t} (${e})`), Le());
537
540
  }, [
538
541
  L,
539
- y,
540
- Re
541
- ]), gt = i((e) => {
542
+ b,
543
+ Le
544
+ ]), gt = a((e) => {
542
545
  console.error("Installation failed:", e.message);
543
- }, []), _t = i(() => {
544
- A(I?.userReview?.title ?? ""), M(I?.userReview?.comment ?? ""), P(I?.userReview?.rating ?? 5), T(null), E("success"), O(!0);
545
- }, [I?.userReview]), vt = i(async () => {
546
+ }, []), _t = a(() => {
547
+ j(I?.userReview?.title ?? ""), et(I?.userReview?.comment ?? ""), P(I?.userReview?.rating ?? 5), E(null), D("success"), k(!0);
548
+ }, [I?.userReview]), vt = a(async () => {
546
549
  if (!L) return;
547
550
  if (N < 1 || N > 5) {
548
- E("error"), T("Choose a rating from 1 to 5 stars.");
551
+ D("error"), E("Choose a rating from 1 to 5 stars.");
549
552
  return;
550
553
  }
551
554
  let e = {
552
555
  productId: L.id,
553
556
  rating: N,
554
- title: k.trim() || void 0,
555
- comment: j.trim() || void 0
557
+ title: A.trim() || void 0,
558
+ comment: M.trim() || void 0
556
559
  }, t = I?.userReview ? {
557
- data: await He(I.userReview.id, {
560
+ data: await Ve(I.userReview.id, {
558
561
  rating: e.rating,
559
562
  title: e.title,
560
563
  comment: e.comment
561
564
  }),
562
565
  errorMessage: null
563
- } : await Be(e);
566
+ } : await ze(e);
564
567
  if (!t?.data) {
565
- E("error"), T(t?.errorMessage ?? "We could not save your review. Please try again.");
568
+ D("error"), E(t?.errorMessage ?? "We could not save your review. Please try again.");
566
569
  return;
567
570
  }
568
- E("success"), T(I?.userReview ? "Your review was updated." : "Your review was submitted."), O(!1), y.emit("store.review.submitted", {
571
+ D("success"), E(I?.userReview ? "Your review was updated." : "Your review was submitted."), k(!1), b.emit("store.review.submitted", {
569
572
  productId: L.id,
570
573
  rating: N
571
574
  }), await F();
572
575
  }, [
573
- y,
574
- Be,
576
+ b,
577
+ ze,
575
578
  L,
576
579
  I?.userReview,
577
580
  F,
578
- j,
581
+ M,
579
582
  N,
580
- k,
581
- He
582
- ]), yt = i(async () => {
583
- if (I?.userReview && (le("medium"), await ce({
583
+ A,
584
+ Ve
585
+ ]), yt = a(async () => {
586
+ if (I?.userReview && (ce("medium"), await se({
584
587
  title: "Delete review",
585
588
  message: "Are you sure you want to remove your review?",
586
589
  okButtonTitle: "Delete",
587
590
  cancelButtonTitle: "Cancel"
588
591
  }) !== !1)) {
589
- if (!await We(I.userReview.id)) {
590
- E("error"), T("We could not remove your review. Please try again."), ue("error");
592
+ if (!await Ue(I.userReview.id)) {
593
+ D("error"), E("We could not remove your review. Please try again."), le("error");
591
594
  return;
592
595
  }
593
- E("success"), T("Your review was removed."), O(!1), A(""), M(""), P(5), ue("success"), await F();
596
+ D("success"), E("Your review was removed."), k(!1), j(""), et(""), P(5), le("success"), await F();
594
597
  }
595
598
  }, [
596
- We,
599
+ Ue,
597
600
  I?.userReview,
598
601
  F
599
- ]), bt = i(async (e) => {
600
- nt(e), await Ke(e) && await F(), nt(null);
601
- }, [Ke, F]);
602
- if (ot) return /* @__PURE__ */ f(ke, {});
603
- if (st) return /* @__PURE__ */ f(Ae, {
602
+ ]), bt = a(async (e) => {
603
+ nt(e), await Ge(e) && await F(), nt(null);
604
+ }, [Ge, F]);
605
+ if (ot) return /* @__PURE__ */ p(Oe, {});
606
+ if (st) return /* @__PURE__ */ p(ke, {
604
607
  error: st,
605
608
  onRetry: F,
606
- onBack: () => u(`${h}/marketplace`)
609
+ onBack: () => d(`${g}/marketplace`)
607
610
  });
608
- if (!I?.product) return /* @__PURE__ */ f("div", {
611
+ if (!I?.product) return /* @__PURE__ */ p("div", {
609
612
  className: "flex h-full items-center justify-center p-6",
610
- children: /* @__PURE__ */ f(Se, {
613
+ children: /* @__PURE__ */ p(xe, {
611
614
  illustration: "empty-search",
612
615
  title: "Product not found",
613
616
  description: "The product you are looking for does not exist or has been removed.",
614
- action: /* @__PURE__ */ f("button", {
617
+ action: /* @__PURE__ */ p("button", {
615
618
  type: "button",
616
- onClick: () => u(`${h}/marketplace`),
619
+ onClick: () => d(`${g}/marketplace`),
617
620
  className: "rounded-lg bg-action-primary-bg px-4 py-2 text-action-primary-text transition-opacity hover:opacity-90",
618
621
  children: "Back to Marketplace"
619
622
  })
@@ -646,32 +649,32 @@ var Ee = (e, t) => ({
646
649
  percentage: q > 0 ? U.oneStar / q * 100 : 0
647
650
  }
648
651
  ] : [], J = K.requiredPermissions || [], Ct = K.integrationDeps || [], wt = () => K.pricingModel === "FREE" ? "Free" : K.pricingModel === "SUBSCRIPTION" ? `${r(K.price, K.currency)}/mo` : r(K.price, K.currency), Y = K.pricingModel === "FREE" || K.price === 0, X = K.nature === "PHYSICAL", Z = X && K.trackInventory === !0, Q = K.stockQuantity ?? 0, $ = Z && Q <= 0;
649
- return /* @__PURE__ */ p("div", {
652
+ return /* @__PURE__ */ m("div", {
650
653
  className: "h-full overflow-y-auto bg-bg-base",
651
654
  children: [
652
- /* @__PURE__ */ f("div", {
655
+ /* @__PURE__ */ p("div", {
653
656
  className: "bg-bg-surface",
654
- children: /* @__PURE__ */ f("div", {
657
+ children: /* @__PURE__ */ p("div", {
655
658
  className: "mx-auto max-w-7xl",
656
- children: /* @__PURE__ */ p("div", {
659
+ children: /* @__PURE__ */ m("div", {
657
660
  className: "flex flex-col lg:flex-row",
658
- children: [/* @__PURE__ */ p("div", {
661
+ children: [/* @__PURE__ */ m("div", {
659
662
  className: "flex-1 px-6 py-8 lg:max-w-xl lg:py-12",
660
663
  children: [
661
- /* @__PURE__ */ p("button", {
664
+ /* @__PURE__ */ m("button", {
662
665
  type: "button",
663
- onClick: () => u(-1),
666
+ onClick: () => d(-1),
664
667
  className: "mb-6 cursor-pointer inline-flex items-center gap-2 text-sm text-text-muted transition-colors hover:text-text-primary",
665
- children: [/* @__PURE__ */ f(me, { className: "size-4" }), "Back"]
668
+ children: [/* @__PURE__ */ p(pe, { className: "size-4" }), "Back"]
666
669
  }),
667
- /* @__PURE__ */ f("h1", {
670
+ /* @__PURE__ */ p("h1", {
668
671
  className: "mb-3 text-4xl font-normal leading-tight text-text-primary lg:text-5xl",
669
672
  children: K.name
670
673
  }),
671
- _ && /* @__PURE__ */ p("div", {
674
+ v && /* @__PURE__ */ m("div", {
672
675
  className: "mb-4 inline-flex items-center gap-1.5 rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-medium text-status-success-text",
673
676
  children: [
674
- /* @__PURE__ */ f("svg", {
677
+ /* @__PURE__ */ p("svg", {
675
678
  className: "size-3.5",
676
679
  viewBox: "0 0 16 16",
677
680
  fill: "none",
@@ -680,128 +683,142 @@ var Ee = (e, t) => ({
680
683
  strokeLinecap: "round",
681
684
  strokeLinejoin: "round",
682
685
  "aria-hidden": "true",
683
- children: /* @__PURE__ */ f("polyline", { points: "2,8 6,12 14,4" })
686
+ children: /* @__PURE__ */ p("polyline", { points: "2,8 6,12 14,4" })
684
687
  }),
685
688
  "Installed",
686
- v ? ` v${v}` : ""
689
+ y ? ` v${y}` : ""
687
690
  ]
688
691
  }),
689
692
  /* @__PURE__ */ p("div", {
690
693
  className: "mb-2",
691
- children: [R?.websiteUrl ? /* @__PURE__ */ f("a", {
692
- href: R.websiteUrl,
693
- target: "_blank",
694
- rel: "noreferrer",
695
- className: "text-base font-medium text-text-link hover:underline",
696
- children: R.name
697
- }) : /* @__PURE__ */ f("span", {
698
- className: "text-base font-medium text-text-primary",
699
- children: R?.name || K.authorName || "Unknown Publisher"
700
- }), R?.isVerified && /* @__PURE__ */ f(c, { className: "ml-1.5 inline size-4 text-status-success-text" })]
694
+ children: (() => {
695
+ let e = R?.developerOrganization, t = e?.name || R?.name || K.authorName || "Unknown Publisher", n = e?.logoUrl || R?.logoUrl, r = e?.isVerified || R?.isVerified, i = R?.websiteUrl;
696
+ return /* @__PURE__ */ m("div", {
697
+ className: "flex items-center gap-2",
698
+ children: [
699
+ n && /* @__PURE__ */ p("img", {
700
+ src: n,
701
+ alt: t,
702
+ className: "size-5 rounded object-cover"
703
+ }),
704
+ i ? /* @__PURE__ */ p("a", {
705
+ href: i,
706
+ target: "_blank",
707
+ rel: "noreferrer",
708
+ className: "text-base font-medium text-text-link hover:underline",
709
+ children: t
710
+ }) : /* @__PURE__ */ p("span", {
711
+ className: "text-base font-medium text-text-primary",
712
+ children: t
713
+ }),
714
+ r && /* @__PURE__ */ p(l, { className: "size-4 text-status-success-text" })
715
+ ]
716
+ });
717
+ })()
701
718
  }),
702
- /* @__PURE__ */ p("p", {
719
+ /* @__PURE__ */ m("p", {
703
720
  className: "mb-6 text-sm text-text-muted",
704
721
  children: [
705
- K.category && /* @__PURE__ */ f("span", { children: K.category }),
722
+ K.category && /* @__PURE__ */ p("span", { children: K.category }),
706
723
  K.category && " · ",
707
724
  n(K.downloads),
708
725
  "+ downloads"
709
726
  ]
710
727
  }),
711
- /* @__PURE__ */ p(xe, {
728
+ /* @__PURE__ */ m(be, {
712
729
  className: "mb-6 p-5",
713
730
  children: [
714
- /* @__PURE__ */ p("div", {
731
+ /* @__PURE__ */ m("div", {
715
732
  className: "mb-6 flex items-center gap-4",
716
733
  children: [
717
- /* @__PURE__ */ f("div", {
734
+ /* @__PURE__ */ p("div", {
718
735
  className: "flex size-12 items-center justify-center overflow-hidden rounded-xl bg-bg-sunken",
719
- children: K.icon ? /* @__PURE__ */ f("img", {
736
+ children: K.icon ? /* @__PURE__ */ p("img", {
720
737
  src: K.icon,
721
738
  alt: "",
722
739
  className: "size-full object-cover"
723
- }) : /* @__PURE__ */ f("span", {
740
+ }) : /* @__PURE__ */ p("span", {
724
741
  className: "text-lg font-bold text-text-muted",
725
742
  children: K.name.charAt(0)
726
743
  })
727
744
  }),
728
- /* @__PURE__ */ p("div", {
745
+ /* @__PURE__ */ m("div", {
729
746
  className: "flex items-center gap-1 border-l border-border-default pl-4",
730
747
  children: [
731
- /* @__PURE__ */ f("span", {
748
+ /* @__PURE__ */ p("span", {
732
749
  className: "text-sm font-medium text-text-primary",
733
750
  children: (K.rating || 0).toFixed(1)
734
751
  }),
735
- /* @__PURE__ */ f(l, { className: "size-4 fill-current text-status-warning-text" }),
736
- /* @__PURE__ */ p("span", {
752
+ /* @__PURE__ */ p(u, { className: "size-4 fill-current text-status-warning-text" }),
753
+ /* @__PURE__ */ m("span", {
737
754
  className: "ml-1 text-xs text-text-muted",
738
755
  children: [n(xt || K.reviewCount), " reviews"]
739
756
  })
740
757
  ]
741
758
  }),
742
- /* @__PURE__ */ p("div", {
759
+ /* @__PURE__ */ m("div", {
743
760
  className: "border-l border-border-default pl-4",
744
- children: [/* @__PURE__ */ p("span", {
761
+ children: [/* @__PURE__ */ m("span", {
745
762
  className: "text-sm font-medium text-text-primary",
746
763
  children: [n(K.downloads), "+"]
747
- }), /* @__PURE__ */ f("p", {
764
+ }), /* @__PURE__ */ p("p", {
748
765
  className: "text-xs text-text-muted",
749
766
  children: "Downloads"
750
767
  })]
751
768
  }),
752
- /* @__PURE__ */ p("div", {
769
+ /* @__PURE__ */ m("div", {
753
770
  className: "border-l border-border-default pl-4",
754
- children: [/* @__PURE__ */ f("span", {
771
+ children: [/* @__PURE__ */ p("span", {
755
772
  className: "rounded bg-bg-sunken px-2 py-1 text-xs font-medium text-text-primary",
756
773
  children: K.type
757
- }), /* @__PURE__ */ f("p", {
774
+ }), /* @__PURE__ */ p("p", {
758
775
  className: "mt-0.5 text-xs text-text-muted",
759
776
  children: "Type"
760
777
  })]
761
778
  })
762
779
  ]
763
780
  }),
764
- Qe && /* @__PURE__ */ f("div", {
781
+ Ze && /* @__PURE__ */ p("div", {
765
782
  role: "alert",
766
783
  className: "mb-4 rounded-lg border border-status-error-bg bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text",
767
- children: Qe
784
+ children: Ze
768
785
  }),
769
- X && /* @__PURE__ */ p("div", {
786
+ X && /* @__PURE__ */ m("div", {
770
787
  className: "mb-4 flex flex-wrap items-center gap-4",
771
- children: [Z && ($ ? /* @__PURE__ */ p("span", {
788
+ children: [Z && ($ ? /* @__PURE__ */ m("span", {
772
789
  className: "inline-flex items-center gap-1.5 rounded-full bg-status-error-bg-subtle px-3 py-1 text-sm font-medium text-status-error-text",
773
- children: [/* @__PURE__ */ f(s, { className: "size-4" }), "Out of stock"]
774
- }) : /* @__PURE__ */ p("span", {
790
+ children: [/* @__PURE__ */ p(c, { className: "size-4" }), "Out of stock"]
791
+ }) : /* @__PURE__ */ m("span", {
775
792
  className: "inline-flex items-center gap-1.5 rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-medium text-status-success-text",
776
793
  children: [
777
- /* @__PURE__ */ f(s, { className: "size-4" }),
794
+ /* @__PURE__ */ p(c, { className: "size-4" }),
778
795
  n(Q),
779
796
  " in stock"
780
797
  ]
781
- })), !$ && /* @__PURE__ */ p("div", {
798
+ })), !$ && /* @__PURE__ */ m("div", {
782
799
  className: "flex items-center gap-2",
783
- children: [/* @__PURE__ */ f("span", {
800
+ children: [/* @__PURE__ */ p("span", {
784
801
  className: "text-sm text-text-muted",
785
802
  children: "Qty"
786
- }), /* @__PURE__ */ p("div", {
803
+ }), /* @__PURE__ */ m("div", {
787
804
  className: "flex items-center rounded-full border border-border-default",
788
805
  children: [
789
- /* @__PURE__ */ f("button", {
806
+ /* @__PURE__ */ p("button", {
790
807
  type: "button",
791
- onClick: () => Ze((e) => Math.max(1, e - 1)),
792
- disabled: C <= 1,
808
+ onClick: () => Xe((e) => Math.max(1, e - 1)),
809
+ disabled: w <= 1,
793
810
  "aria-label": "Decrease quantity",
794
811
  className: "cursor-pointer px-3 py-1.5 text-text-primary transition-colors hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-40",
795
812
  children: "−"
796
813
  }),
797
- /* @__PURE__ */ f("span", {
814
+ /* @__PURE__ */ p("span", {
798
815
  className: "min-w-8 px-2 text-center text-sm font-medium tabular-nums text-text-primary",
799
- children: C
816
+ children: w
800
817
  }),
801
- /* @__PURE__ */ f("button", {
818
+ /* @__PURE__ */ p("button", {
802
819
  type: "button",
803
- onClick: () => Ze((e) => Z ? Math.min(Q, e + 1) : e + 1),
804
- disabled: Z && C >= Q,
820
+ onClick: () => Xe((e) => Z ? Math.min(Q, e + 1) : e + 1),
821
+ disabled: Z && w >= Q,
805
822
  "aria-label": "Increase quantity",
806
823
  className: "cursor-pointer px-3 py-1.5 text-text-primary transition-colors hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-40",
807
824
  children: "+"
@@ -810,13 +827,13 @@ var Ee = (e, t) => ({
810
827
  })]
811
828
  })]
812
829
  }),
813
- /* @__PURE__ */ p("div", {
830
+ /* @__PURE__ */ m("div", {
814
831
  className: "mb-6 flex items-center gap-3",
815
- children: [_ ? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p("button", {
832
+ children: [v ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
816
833
  type: "button",
817
834
  disabled: !0,
818
835
  className: "flex items-center gap-2 rounded-full bg-status-success-bg-subtle px-8 py-3 font-medium text-status-success-text cursor-default",
819
- children: [/* @__PURE__ */ f("svg", {
836
+ children: [/* @__PURE__ */ p("svg", {
820
837
  className: "size-4",
821
838
  viewBox: "0 0 16 16",
822
839
  fill: "none",
@@ -825,60 +842,60 @@ var Ee = (e, t) => ({
825
842
  strokeLinecap: "round",
826
843
  strokeLinejoin: "round",
827
844
  "aria-hidden": "true",
828
- children: /* @__PURE__ */ f("polyline", { points: "2,8 6,12 14,4" })
845
+ children: /* @__PURE__ */ p("polyline", { points: "2,8 6,12 14,4" })
829
846
  }), "Installed"]
830
- }), ut && /* @__PURE__ */ p("button", {
847
+ }), ut && /* @__PURE__ */ m("button", {
831
848
  type: "button",
832
849
  onClick: B,
833
850
  className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
834
851
  children: ["Update to v", K.manifestVersion]
835
- })] }) : !X && W && !Y ? /* @__PURE__ */ f("button", {
852
+ })] }) : !X && W && !Y ? /* @__PURE__ */ p("button", {
836
853
  type: "button",
837
854
  onClick: B,
838
855
  className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
839
856
  children: "Install to Workspace"
840
- }) : !X && Y ? /* @__PURE__ */ f("button", {
857
+ }) : !X && Y ? /* @__PURE__ */ p("button", {
841
858
  type: "button",
842
859
  onClick: B,
843
860
  className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
844
861
  children: "Install"
845
- }) : /* @__PURE__ */ f("button", {
862
+ }) : /* @__PURE__ */ p("button", {
846
863
  type: "button",
847
864
  onClick: ft,
848
- disabled: Xe || Ie || $,
865
+ disabled: Ye || Fe || $,
849
866
  className: "cursor-pointer flex items-center gap-2 rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90 disabled:opacity-70",
850
- children: Xe || Ie ? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(ge, { className: "size-4 animate-spin" }), "Processing…"] }) : $ ? "Out of stock" : `Buy ${wt()}`
851
- }), !Y && (!W || X) && /* @__PURE__ */ p("button", {
867
+ children: Ye || Fe ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(he, { className: "size-4 animate-spin" }), "Processing…"] }) : $ ? "Out of stock" : `Buy ${wt()}`
868
+ }), !Y && (!W || X) && /* @__PURE__ */ m("button", {
852
869
  type: "button",
853
870
  onClick: dt,
854
- disabled: Pe || $,
871
+ disabled: Ne || $,
855
872
  className: "cursor-pointer flex items-center gap-2 rounded-full border border-border-default px-4 py-3 text-sm text-text-primary transition-colors hover:bg-bg-sunken disabled:opacity-50",
856
- children: [Pe ? /* @__PURE__ */ f(ge, { className: "size-4 animate-spin" }) : z ? /* @__PURE__ */ f(he, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ f(_e, { className: "size-4" }), z ? "In Cart" : "Add to Cart"]
873
+ children: [Ne ? /* @__PURE__ */ p(he, { className: "size-4 animate-spin" }) : z ? /* @__PURE__ */ p(me, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ p(ge, { className: "size-4" }), z ? "In Cart" : "Add to Cart"]
857
874
  })]
858
875
  }),
859
- X ? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p("p", {
876
+ X ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("p", {
860
877
  className: "flex items-center gap-2 text-xs text-text-muted",
861
- children: [/* @__PURE__ */ f(s, { className: "size-4" }), K.requiresShipping === !1 ? "Available for pickup — no shipping required" : "Ships to your delivery address"]
862
- }), !Y && /* @__PURE__ */ p("p", {
878
+ children: [/* @__PURE__ */ p(c, { className: "size-4" }), K.requiresShipping === !1 ? "Available for pickup — no shipping required" : "Ships to your delivery address"]
879
+ }), !Y && /* @__PURE__ */ m("p", {
863
880
  className: "text-xs text-text-tertiary",
864
881
  children: [
865
882
  "Returns and refunds are handled by ",
866
883
  R?.name || "the seller",
867
884
  " per their store policy."
868
885
  ]
869
- })] }) : /* @__PURE__ */ p(d, { children: [
870
- /* @__PURE__ */ p("p", {
886
+ })] }) : /* @__PURE__ */ m(f, { children: [
887
+ /* @__PURE__ */ m("p", {
871
888
  className: "flex items-center gap-2 text-xs text-text-muted",
872
- children: [/* @__PURE__ */ f(s, { className: "size-4" }), "This app is available for your workspace"]
889
+ children: [/* @__PURE__ */ p(c, { className: "size-4" }), "This app is available for your workspace"]
873
890
  }),
874
- !Y && !W && /* @__PURE__ */ f("p", {
891
+ !Y && !W && /* @__PURE__ */ p("p", {
875
892
  className: "text-xs text-text-tertiary",
876
893
  children: "All purchases are final. Digital app orders cannot be cancelled or refunded once completed."
877
894
  }),
878
- G && /* @__PURE__ */ p("p", {
895
+ G && /* @__PURE__ */ m("p", {
879
896
  className: "mt-2 flex items-center gap-2 text-xs text-text-muted",
880
897
  children: [
881
- /* @__PURE__ */ f(c, { className: "size-4 text-status-success-text" }),
898
+ /* @__PURE__ */ p(l, { className: "size-4 text-status-success-text" }),
882
899
  "License: ",
883
900
  G.status,
884
901
  G.expiresAt && ` (Expires: ${new Date(G.expiresAt).toLocaleDateString()})`
@@ -888,33 +905,33 @@ var Ee = (e, t) => ({
888
905
  ]
889
906
  })
890
907
  ]
891
- }), /* @__PURE__ */ f("div", {
908
+ }), /* @__PURE__ */ p("div", {
892
909
  className: "relative flex-1 overflow-hidden bg-bg-sunken lg:min-h-[500px]",
893
- children: K.type === "WORKFLOW" ? /* @__PURE__ */ f("iframe", {
910
+ children: K.type === "WORKFLOW" ? /* @__PURE__ */ p("iframe", {
894
911
  src: `${window.location.origin}/embed/workflow?productId=${encodeURIComponent(K.id)}&cta=false&theme=${document.documentElement.classList.contains("dark") ? "dark" : "light"}`,
895
912
  title: `${K.name} workflow preview`,
896
913
  loading: "lazy",
897
914
  className: "size-full min-h-[300px] border-0 lg:min-h-[500px]"
898
- }) : K.bannerUrl ? /* @__PURE__ */ f("img", {
915
+ }) : K.bannerUrl ? /* @__PURE__ */ p("img", {
899
916
  src: K.bannerUrl,
900
917
  alt: `${K.name} banner`,
901
918
  className: "size-full object-cover"
902
- }) : K.screenshots && K.screenshots.length > 0 ? /* @__PURE__ */ f("img", {
919
+ }) : K.screenshots && K.screenshots.length > 0 ? /* @__PURE__ */ p("img", {
903
920
  src: K.screenshots[0],
904
921
  alt: `${K.name} preview`,
905
922
  className: "size-full object-cover"
906
- }) : /* @__PURE__ */ p("div", {
923
+ }) : /* @__PURE__ */ m("div", {
907
924
  className: "flex h-full min-h-[300px] flex-col items-center justify-center gap-3 p-8 text-center",
908
925
  children: [
909
- /* @__PURE__ */ f("div", {
926
+ /* @__PURE__ */ p("div", {
910
927
  className: "flex size-20 items-center justify-center rounded-2xl bg-bg-surface text-3xl font-bold text-text-muted",
911
928
  children: K.name.charAt(0)
912
929
  }),
913
- /* @__PURE__ */ f("p", {
930
+ /* @__PURE__ */ p("p", {
914
931
  className: "text-sm text-text-muted",
915
932
  children: "No preview available"
916
933
  }),
917
- /* @__PURE__ */ f("p", {
934
+ /* @__PURE__ */ p("p", {
918
935
  className: "max-w-[200px] text-xs text-text-muted opacity-60",
919
936
  children: "Upload screenshots in the Store Listing tab to show a preview here"
920
937
  })
@@ -924,17 +941,17 @@ var Ee = (e, t) => ({
924
941
  })
925
942
  })
926
943
  }),
927
- K.screenshots && K.screenshots.length > 0 && /* @__PURE__ */ f("div", {
944
+ K.screenshots && K.screenshots.length > 0 && /* @__PURE__ */ p("div", {
928
945
  className: "border-y border-border-default bg-bg-base",
929
- children: /* @__PURE__ */ p("div", {
946
+ children: /* @__PURE__ */ m("div", {
930
947
  className: "px-6 py-6",
931
- children: [/* @__PURE__ */ f("h2", {
948
+ children: [/* @__PURE__ */ p("h2", {
932
949
  className: "mb-4 text-sm font-semibold uppercase tracking-wider text-text-muted",
933
950
  children: "Preview"
934
- }), /* @__PURE__ */ p("div", {
951
+ }), /* @__PURE__ */ m("div", {
935
952
  className: "flex gap-4 overflow-x-auto pb-2",
936
953
  style: { scrollSnapType: "x mandatory" },
937
- children: [K.screenshots.map((e, t) => /* @__PURE__ */ f("div", {
954
+ children: [K.screenshots.map((e, t) => /* @__PURE__ */ p("div", {
938
955
  className: "relative flex-shrink-0 overflow-hidden rounded-2xl shadow-lg",
939
956
  style: {
940
957
  width: "72vw",
@@ -943,19 +960,19 @@ var Ee = (e, t) => ({
943
960
  aspectRatio: "16/9",
944
961
  scrollSnapAlign: "start"
945
962
  },
946
- children: /* @__PURE__ */ f("img", {
963
+ children: /* @__PURE__ */ p("img", {
947
964
  src: e,
948
965
  alt: `Screenshot ${t + 1}`,
949
966
  className: "size-full object-cover"
950
967
  })
951
- }, t)), /* @__PURE__ */ f("div", { className: "flex-shrink-0 w-2" })]
968
+ }, t)), /* @__PURE__ */ p("div", { className: "flex-shrink-0 w-2" })]
952
969
  })]
953
970
  })
954
971
  }),
955
- /* @__PURE__ */ p("main", {
972
+ /* @__PURE__ */ m("main", {
956
973
  className: "mx-auto max-w-7xl px-6 py-8",
957
974
  children: [
958
- /* @__PURE__ */ p(we, {
975
+ /* @__PURE__ */ m(Ce, {
959
976
  className: "mb-6",
960
977
  children: [
961
978
  "Everything you need to decide whether to install ",
@@ -963,7 +980,7 @@ var Ee = (e, t) => ({
963
980
  ": what it does, screenshots, pricing, the permissions and integrations it needs, and real customer reviews. When you're ready, install it (free apps) or buy it, then add it to a workspace — and leave a review once you've used it."
964
981
  ]
965
982
  }),
966
- /* @__PURE__ */ f(Ce, {
983
+ /* @__PURE__ */ p(Se, {
967
984
  className: "mb-8",
968
985
  storageKey: "store-product-detail",
969
986
  steps: [
@@ -972,13 +989,13 @@ var Ee = (e, t) => ({
972
989
  label: "Install this app",
973
990
  description: "It’s free — add it to a workspace in a couple of clicks.",
974
991
  onClick: B,
975
- done: _
992
+ done: v
976
993
  } : {
977
994
  id: "buy",
978
995
  label: W ? "Install to a workspace" : "Buy or add to cart",
979
996
  description: W ? "You already own this — install it where you need it." : "Purchase now, or add it to your cart to check out later.",
980
997
  onClick: W ? B : ft,
981
- done: _
998
+ done: v
982
999
  },
983
1000
  ...J.length > 0 ? [{
984
1001
  id: "permissions",
@@ -994,66 +1011,66 @@ var Ee = (e, t) => ({
994
1011
  }
995
1012
  ]
996
1013
  }),
997
- /* @__PURE__ */ p("div", {
1014
+ /* @__PURE__ */ m("div", {
998
1015
  className: "flex flex-col gap-8 lg:flex-row",
999
- children: [/* @__PURE__ */ p("div", {
1016
+ children: [/* @__PURE__ */ m("div", {
1000
1017
  className: "flex-1 lg:max-w-3xl",
1001
1018
  children: [
1002
- /* @__PURE__ */ p("section", {
1019
+ /* @__PURE__ */ m("section", {
1003
1020
  className: "mb-8",
1004
1021
  children: [
1005
- /* @__PURE__ */ f("div", {
1022
+ /* @__PURE__ */ p("div", {
1006
1023
  className: "mb-4 flex items-center justify-between text-left",
1007
- children: /* @__PURE__ */ f("h2", {
1024
+ children: /* @__PURE__ */ p("h2", {
1008
1025
  className: "text-lg font-medium text-text-primary",
1009
1026
  children: "About this app"
1010
1027
  })
1011
1028
  }),
1012
- /* @__PURE__ */ p("div", {
1029
+ /* @__PURE__ */ m("div", {
1013
1030
  className: "text-sm leading-relaxed text-text-secondary",
1014
- children: [/* @__PURE__ */ f("div", {
1015
- className: b ? "" : "line-clamp-4",
1016
- children: /* @__PURE__ */ f(ae, { children: K.longDescription || K.description || "No description available." })
1017
- }), ((K.longDescription || K.description)?.length ?? 0) > 200 && /* @__PURE__ */ f("button", {
1031
+ children: [/* @__PURE__ */ p("div", {
1032
+ className: x ? "" : "line-clamp-4",
1033
+ children: /* @__PURE__ */ p(ie, { children: K.longDescription || K.description || "No description available." })
1034
+ }), ((K.longDescription || K.description)?.length ?? 0) > 200 && /* @__PURE__ */ p("button", {
1018
1035
  type: "button",
1019
- onClick: () => Je(!b),
1036
+ onClick: () => qe(!x),
1020
1037
  className: "cursor-pointer mt-3 text-sm font-medium text-text-link",
1021
- children: b ? "Show less" : "Show more"
1038
+ children: x ? "Show less" : "Show more"
1022
1039
  })]
1023
1040
  }),
1024
- K.tags && K.tags.length > 0 && /* @__PURE__ */ f("div", {
1041
+ K.tags && K.tags.length > 0 && /* @__PURE__ */ p("div", {
1025
1042
  className: "mt-4 flex flex-wrap gap-2",
1026
- children: K.tags.map((e) => /* @__PURE__ */ f("span", {
1043
+ children: K.tags.map((e) => /* @__PURE__ */ p("span", {
1027
1044
  className: "rounded-full border border-border-seam px-3 py-1.5 text-xs text-text-muted transition-colors hover:bg-bg-sunken",
1028
1045
  children: e
1029
1046
  }, e))
1030
1047
  })
1031
1048
  ]
1032
1049
  }),
1033
- /* @__PURE__ */ p("section", {
1050
+ /* @__PURE__ */ m("section", {
1034
1051
  id: "ratings-reviews",
1035
1052
  className: "mb-8 scroll-mt-6",
1036
1053
  children: [
1037
- /* @__PURE__ */ f("div", {
1054
+ /* @__PURE__ */ p("div", {
1038
1055
  className: "mb-4 flex items-center justify-between text-left",
1039
- children: /* @__PURE__ */ f("h2", {
1056
+ children: /* @__PURE__ */ p("h2", {
1040
1057
  className: "text-lg font-medium text-text-primary",
1041
1058
  children: "Ratings & Reviews"
1042
1059
  })
1043
1060
  }),
1044
- /* @__PURE__ */ p(m, {
1061
+ /* @__PURE__ */ m(h, {
1045
1062
  treatment: "insight",
1046
1063
  className: "p-5",
1047
- children: [V && V.length > 0 ? /* @__PURE__ */ p("div", {
1064
+ children: [V && V.length > 0 ? /* @__PURE__ */ m("div", {
1048
1065
  className: "flex items-start gap-8",
1049
- children: [/* @__PURE__ */ p("div", {
1066
+ children: [/* @__PURE__ */ m("div", {
1050
1067
  className: "text-center",
1051
1068
  children: [
1052
- /* @__PURE__ */ f("p", {
1069
+ /* @__PURE__ */ p("p", {
1053
1070
  className: "text-5xl font-light tabular-nums text-text-primary",
1054
1071
  children: (K.rating || 0).toFixed(1)
1055
1072
  }),
1056
- /* @__PURE__ */ f("div", {
1073
+ /* @__PURE__ */ p("div", {
1057
1074
  className: "my-2 flex justify-center gap-0.5",
1058
1075
  children: [
1059
1076
  1,
@@ -1061,21 +1078,21 @@ var Ee = (e, t) => ({
1061
1078
  3,
1062
1079
  4,
1063
1080
  5
1064
- ].map((e) => /* @__PURE__ */ f(l, { className: `size-4 ${e <= Math.round(K.rating || 0) ? "fill-current text-status-warning-text" : "text-text-muted"}` }, e))
1081
+ ].map((e) => /* @__PURE__ */ p(u, { className: `size-4 ${e <= Math.round(K.rating || 0) ? "fill-current text-status-warning-text" : "text-text-muted"}` }, e))
1065
1082
  }),
1066
- /* @__PURE__ */ p("p", {
1083
+ /* @__PURE__ */ m("p", {
1067
1084
  className: "text-sm text-text-muted",
1068
1085
  children: [n(xt || K.reviewCount), " reviews"]
1069
1086
  })
1070
1087
  ]
1071
- }), St.length > 0 && /* @__PURE__ */ f("div", {
1088
+ }), St.length > 0 && /* @__PURE__ */ p("div", {
1072
1089
  className: "flex-1 space-y-1.5",
1073
- children: St.map((e) => /* @__PURE__ */ f(De, { ...e }, e.stars))
1090
+ children: St.map((e) => /* @__PURE__ */ p(Ee, { ...e }, e.stars))
1074
1091
  })]
1075
- }) : /* @__PURE__ */ p("div", {
1092
+ }) : /* @__PURE__ */ m("div", {
1076
1093
  className: "flex flex-col items-center justify-center py-6 text-center",
1077
1094
  children: [
1078
- /* @__PURE__ */ f("div", {
1095
+ /* @__PURE__ */ p("div", {
1079
1096
  className: "mb-3 flex gap-0.5",
1080
1097
  children: [
1081
1098
  1,
@@ -1083,37 +1100,37 @@ var Ee = (e, t) => ({
1083
1100
  3,
1084
1101
  4,
1085
1102
  5
1086
- ].map((e) => /* @__PURE__ */ f(l, { className: "size-5 text-border-default" }, e))
1103
+ ].map((e) => /* @__PURE__ */ p(u, { className: "size-5 text-border-default" }, e))
1087
1104
  }),
1088
- /* @__PURE__ */ f("p", {
1105
+ /* @__PURE__ */ p("p", {
1089
1106
  className: "font-medium text-text-primary",
1090
1107
  children: "No reviews yet"
1091
1108
  }),
1092
- /* @__PURE__ */ f("p", {
1109
+ /* @__PURE__ */ p("p", {
1093
1110
  className: "mt-1 text-sm text-text-muted",
1094
1111
  children: "Be the first to share your experience with this app."
1095
1112
  })
1096
1113
  ]
1097
- }), /* @__PURE__ */ p("div", {
1114
+ }), /* @__PURE__ */ m("div", {
1098
1115
  className: "mt-6 border-t border-border-seam pt-4",
1099
- children: [$e && /* @__PURE__ */ f("p", {
1100
- role: et === "success" ? "status" : "alert",
1101
- className: `mb-3 rounded-lg px-3 py-2 text-sm ${et === "success" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"}`,
1102
- children: $e
1103
- }), _ || I?.userReview ? /* @__PURE__ */ p("div", {
1116
+ children: [Qe && /* @__PURE__ */ p("p", {
1117
+ role: $e === "success" ? "status" : "alert",
1118
+ className: `mb-3 rounded-lg px-3 py-2 text-sm ${$e === "success" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"}`,
1119
+ children: Qe
1120
+ }), v || I?.userReview ? /* @__PURE__ */ m("div", {
1104
1121
  className: "space-y-4",
1105
- children: [/* @__PURE__ */ f("button", {
1122
+ children: [/* @__PURE__ */ p("button", {
1106
1123
  type: "button",
1107
- onClick: () => D ? O(!1) : _t(),
1124
+ onClick: () => O ? k(!1) : _t(),
1108
1125
  className: "w-full cursor-pointer py-2 text-center text-sm font-medium text-text-primary transition-colors hover:text-text-link",
1109
- children: I?.userReview ? D ? "Cancel review editing" : "Edit your review" : D ? "Cancel review" : "Write a Review"
1110
- }), D && /* @__PURE__ */ p("div", {
1126
+ children: I?.userReview ? O ? "Cancel review editing" : "Edit your review" : O ? "Cancel review" : "Write a Review"
1127
+ }), O && /* @__PURE__ */ m("div", {
1111
1128
  className: "rounded-xl border border-border-seam bg-bg-sunken p-4",
1112
1129
  children: [
1113
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1130
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1114
1131
  className: "text-sm font-medium text-text-primary",
1115
1132
  children: "Your rating"
1116
- }), /* @__PURE__ */ f("div", {
1133
+ }), /* @__PURE__ */ p("div", {
1117
1134
  className: "mt-2 flex flex-wrap gap-2",
1118
1135
  children: [
1119
1136
  1,
@@ -1121,29 +1138,29 @@ var Ee = (e, t) => ({
1121
1138
  3,
1122
1139
  4,
1123
1140
  5
1124
- ].map((e) => /* @__PURE__ */ p("button", {
1141
+ ].map((e) => /* @__PURE__ */ m("button", {
1125
1142
  type: "button",
1126
1143
  onClick: () => P(e),
1127
1144
  className: `cursor-pointer rounded-full border px-3 py-1.5 text-sm transition-colors ${N === e ? "border-action-primary-border bg-action-primary-bg text-action-primary-text" : "border-border-default bg-bg-surface text-text-primary hover:bg-bg-surface"}`,
1128
1145
  children: [e, " ★"]
1129
1146
  }, e))
1130
1147
  })] }),
1131
- /* @__PURE__ */ p("label", {
1148
+ /* @__PURE__ */ m("label", {
1132
1149
  className: "mt-4 block text-sm font-medium text-text-primary",
1133
- children: ["Title", /* @__PURE__ */ f("input", {
1150
+ children: ["Title", /* @__PURE__ */ p("input", {
1134
1151
  "aria-label": "Review title",
1135
- value: k,
1136
- onChange: (e) => A(e.target.value),
1152
+ value: A,
1153
+ onChange: (e) => j(e.target.value),
1137
1154
  className: "mt-2 w-full rounded-lg border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary outline-none focus:border-action-primary-border",
1138
1155
  placeholder: "Summarize your experience"
1139
1156
  })]
1140
1157
  }),
1141
- /* @__PURE__ */ p("label", {
1158
+ /* @__PURE__ */ m("label", {
1142
1159
  className: "mt-4 block text-sm font-medium text-text-primary",
1143
- children: ["Review", /* @__PURE__ */ f("textarea", {
1160
+ children: ["Review", /* @__PURE__ */ p("textarea", {
1144
1161
  "aria-label": "Review body",
1145
- value: j,
1146
- onChange: (e) => M(e.target.value),
1162
+ value: M,
1163
+ onChange: (e) => et(e.target.value),
1147
1164
  rows: 4,
1148
1165
  required: !0,
1149
1166
  "aria-required": "true",
@@ -1151,130 +1168,130 @@ var Ee = (e, t) => ({
1151
1168
  placeholder: "What worked well? What should improve?"
1152
1169
  })]
1153
1170
  }),
1154
- /* @__PURE__ */ p("div", {
1171
+ /* @__PURE__ */ m("div", {
1155
1172
  className: "mt-4 flex flex-wrap gap-3",
1156
- children: [/* @__PURE__ */ f("button", {
1173
+ children: [/* @__PURE__ */ p("button", {
1157
1174
  type: "button",
1158
1175
  onClick: vt,
1159
- disabled: Ve || Ue,
1176
+ disabled: Be || He,
1160
1177
  className: "cursor-pointer rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60",
1161
- children: Ve || Ue ? "Saving..." : I?.userReview ? "Update Review" : "Submit Review"
1162
- }), I?.userReview && /* @__PURE__ */ f("button", {
1178
+ children: Be || He ? "Saving..." : I?.userReview ? "Update Review" : "Submit Review"
1179
+ }), I?.userReview && /* @__PURE__ */ p("button", {
1163
1180
  type: "button",
1164
1181
  onClick: yt,
1165
- disabled: Ge,
1182
+ disabled: We,
1166
1183
  className: "cursor-pointer rounded-lg border border-status-error-border px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-60",
1167
- children: Ge ? "Removing..." : "Delete Review"
1184
+ children: We ? "Removing..." : "Delete Review"
1168
1185
  })]
1169
1186
  })
1170
1187
  ]
1171
1188
  })]
1172
- }) : /* @__PURE__ */ f("p", {
1189
+ }) : /* @__PURE__ */ p("p", {
1173
1190
  className: "text-center text-sm text-text-muted",
1174
1191
  children: "Install this app to leave a review."
1175
1192
  })]
1176
1193
  })]
1177
1194
  }),
1178
- V && V.length > 0 && /* @__PURE__ */ p("div", {
1195
+ V && V.length > 0 && /* @__PURE__ */ m("div", {
1179
1196
  className: "mt-4 space-y-3",
1180
- children: [/* @__PURE__ */ f("ul", {
1197
+ children: [/* @__PURE__ */ p("ul", {
1181
1198
  className: "space-y-3",
1182
- children: (x ? V : V.slice(0, 2)).map((e) => /* @__PURE__ */ f("li", { children: /* @__PURE__ */ f(Oe, {
1199
+ children: (S ? V : V.slice(0, 2)).map((e) => /* @__PURE__ */ p("li", { children: /* @__PURE__ */ p(De, {
1183
1200
  review: e,
1184
1201
  onMarkHelpful: bt,
1185
- markingHelpful: qe && tt === e.id
1202
+ markingHelpful: Ke && tt === e.id
1186
1203
  }) }, e.id))
1187
- }), V.length > 2 && /* @__PURE__ */ f("button", {
1204
+ }), V.length > 2 && /* @__PURE__ */ p("button", {
1188
1205
  type: "button",
1189
- onClick: () => Ye(!x),
1206
+ onClick: () => Je(!S),
1190
1207
  className: "cursor-pointer text-sm font-medium text-text-link",
1191
- children: x ? "Show less" : `Show all ${V.length} reviews`
1208
+ children: S ? "Show less" : `Show all ${V.length} reviews`
1192
1209
  })]
1193
1210
  }),
1194
- (!V || V.length === 0) && /* @__PURE__ */ f("p", {
1211
+ (!V || V.length === 0) && /* @__PURE__ */ p("p", {
1195
1212
  className: "mt-4 text-sm text-text-muted",
1196
1213
  children: "No reviews yet. Be the first to review!"
1197
1214
  })
1198
1215
  ]
1199
1216
  }),
1200
- J.length > 0 && /* @__PURE__ */ p("section", {
1217
+ J.length > 0 && /* @__PURE__ */ m("section", {
1201
1218
  id: "about-permissions",
1202
1219
  className: "mb-8 scroll-mt-6",
1203
- children: [/* @__PURE__ */ f("h2", {
1220
+ children: [/* @__PURE__ */ p("h2", {
1204
1221
  className: "mb-4 text-lg font-medium text-text-primary",
1205
1222
  children: "Required Permissions"
1206
- }), /* @__PURE__ */ f("div", {
1223
+ }), /* @__PURE__ */ p("div", {
1207
1224
  className: "space-y-2",
1208
- children: J.map((e) => /* @__PURE__ */ p("div", {
1225
+ children: J.map((e) => /* @__PURE__ */ m("div", {
1209
1226
  className: "flex items-center gap-3 rounded-lg bg-bg-surface px-4 py-3",
1210
- children: [/* @__PURE__ */ f(c, { className: "size-5 text-status-success-text" }), /* @__PURE__ */ f("span", {
1227
+ children: [/* @__PURE__ */ p(l, { className: "size-5 text-status-success-text" }), /* @__PURE__ */ p("span", {
1211
1228
  className: "text-sm text-text-primary",
1212
1229
  children: e
1213
1230
  })]
1214
1231
  }, e))
1215
1232
  })]
1216
1233
  }),
1217
- Ct.length > 0 && /* @__PURE__ */ p("section", {
1234
+ Ct.length > 0 && /* @__PURE__ */ m("section", {
1218
1235
  className: "mb-8",
1219
- children: [/* @__PURE__ */ f("h2", {
1236
+ children: [/* @__PURE__ */ p("h2", {
1220
1237
  className: "mb-4 text-lg font-medium text-text-primary",
1221
1238
  children: "Integrations"
1222
- }), /* @__PURE__ */ f("div", {
1239
+ }), /* @__PURE__ */ p("div", {
1223
1240
  className: "flex flex-wrap gap-2",
1224
- children: Ct.map((e) => /* @__PURE__ */ f("span", {
1241
+ children: Ct.map((e) => /* @__PURE__ */ p("span", {
1225
1242
  className: "rounded-lg bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary",
1226
1243
  children: e
1227
1244
  }, e))
1228
1245
  })]
1229
1246
  }),
1230
- /* @__PURE__ */ p("section", {
1247
+ /* @__PURE__ */ m("section", {
1231
1248
  className: "mb-8",
1232
- children: [/* @__PURE__ */ f("h2", {
1249
+ children: [/* @__PURE__ */ p("h2", {
1233
1250
  className: "mb-4 text-lg font-medium text-text-primary",
1234
1251
  children: "Additional Information"
1235
- }), /* @__PURE__ */ p(m, {
1252
+ }), /* @__PURE__ */ m(h, {
1236
1253
  treatment: "metric",
1237
1254
  className: "grid grid-cols-2 gap-6 p-5 md:grid-cols-3",
1238
1255
  children: [
1239
- K.manifestVersion && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1256
+ K.manifestVersion && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1240
1257
  className: "text-xs text-text-muted",
1241
1258
  children: "Version"
1242
- }), /* @__PURE__ */ f("p", {
1259
+ }), /* @__PURE__ */ p("p", {
1243
1260
  className: "mt-1 text-sm font-medium text-text-primary",
1244
1261
  children: K.manifestVersion
1245
1262
  })] }),
1246
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1263
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1247
1264
  className: "text-xs text-text-muted",
1248
1265
  children: "Type"
1249
- }), /* @__PURE__ */ f("p", {
1266
+ }), /* @__PURE__ */ p("p", {
1250
1267
  className: "mt-1 text-sm font-medium text-text-primary",
1251
1268
  children: K.type
1252
1269
  })] }),
1253
- K.publishedAt && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1270
+ K.publishedAt && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1254
1271
  className: "text-xs text-text-muted",
1255
1272
  children: "Published"
1256
- }), /* @__PURE__ */ f("p", {
1273
+ }), /* @__PURE__ */ p("p", {
1257
1274
  className: "mt-1 text-sm font-medium text-text-primary",
1258
1275
  children: new Date(K.publishedAt).toLocaleDateString()
1259
1276
  })] }),
1260
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1277
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1261
1278
  className: "text-xs text-text-muted",
1262
1279
  children: "Updated"
1263
- }), /* @__PURE__ */ f("p", {
1280
+ }), /* @__PURE__ */ p("p", {
1264
1281
  className: "mt-1 text-sm font-medium text-text-primary",
1265
1282
  children: new Date(K.updatedAt).toLocaleDateString()
1266
1283
  })] }),
1267
- K.license && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1284
+ K.license && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1268
1285
  className: "text-xs text-text-muted",
1269
1286
  children: "License"
1270
- }), /* @__PURE__ */ f("p", {
1287
+ }), /* @__PURE__ */ p("p", {
1271
1288
  className: "mt-1 text-sm font-medium text-text-primary",
1272
1289
  children: K.license
1273
1290
  })] }),
1274
- K.minPlatformVersion && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
1291
+ K.minPlatformVersion && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
1275
1292
  className: "text-xs text-text-muted",
1276
1293
  children: "Min Platform Version"
1277
- }), /* @__PURE__ */ f("p", {
1294
+ }), /* @__PURE__ */ p("p", {
1278
1295
  className: "mt-1 text-sm font-medium text-text-primary",
1279
1296
  children: K.minPlatformVersion
1280
1297
  })] })
@@ -1282,32 +1299,32 @@ var Ee = (e, t) => ({
1282
1299
  })]
1283
1300
  })
1284
1301
  ]
1285
- }), /* @__PURE__ */ p("div", {
1302
+ }), /* @__PURE__ */ m("div", {
1286
1303
  className: "w-full lg:w-80",
1287
1304
  children: [
1288
- (K.documentationUrl || K.repositoryUrl || R?.email) && /* @__PURE__ */ p(m, {
1305
+ (K.documentationUrl || K.repositoryUrl || R?.email) && /* @__PURE__ */ m(h, {
1289
1306
  className: "mb-6 p-4",
1290
- children: [/* @__PURE__ */ f("h3", {
1307
+ children: [/* @__PURE__ */ p("h3", {
1291
1308
  className: "font-medium text-text-primary",
1292
1309
  children: "App support"
1293
- }), /* @__PURE__ */ p("div", {
1310
+ }), /* @__PURE__ */ m("div", {
1294
1311
  className: "mt-3 space-y-2 text-sm",
1295
1312
  children: [
1296
- K.documentationUrl && /* @__PURE__ */ f("a", {
1313
+ K.documentationUrl && /* @__PURE__ */ p("a", {
1297
1314
  href: K.documentationUrl,
1298
1315
  target: "_blank",
1299
1316
  rel: "noreferrer",
1300
1317
  className: "block text-text-link hover:underline",
1301
1318
  children: "Documentation"
1302
1319
  }),
1303
- K.repositoryUrl && /* @__PURE__ */ f("a", {
1320
+ K.repositoryUrl && /* @__PURE__ */ p("a", {
1304
1321
  href: K.repositoryUrl,
1305
1322
  target: "_blank",
1306
1323
  rel: "noreferrer",
1307
1324
  className: "block text-text-link hover:underline",
1308
1325
  children: "Source repository"
1309
1326
  }),
1310
- R?.email && /* @__PURE__ */ f("a", {
1327
+ R?.email && /* @__PURE__ */ p("a", {
1311
1328
  href: `mailto:${R.email}`,
1312
1329
  className: "block text-text-link hover:underline",
1313
1330
  children: "Contact publisher"
@@ -1315,66 +1332,81 @@ var Ee = (e, t) => ({
1315
1332
  ]
1316
1333
  })]
1317
1334
  }),
1318
- R && /* @__PURE__ */ p(m, {
1335
+ R && /* @__PURE__ */ p(h, {
1319
1336
  className: "mb-6 p-4",
1320
- children: [
1321
- /* @__PURE__ */ f("h3", {
1322
- className: "font-medium text-text-primary",
1323
- children: "Publisher"
1324
- }),
1325
- /* @__PURE__ */ f("p", {
1326
- className: "mt-2 text-sm text-text-primary",
1327
- children: R.name
1328
- }),
1329
- R.bio && /* @__PURE__ */ f("p", {
1330
- className: "mt-2 text-sm text-text-muted",
1331
- children: R.bio
1332
- }),
1333
- R.websiteUrl && /* @__PURE__ */ f("a", {
1334
- href: R.websiteUrl,
1335
- target: "_blank",
1336
- rel: "noreferrer",
1337
- className: "mt-3 inline-block text-sm text-text-link hover:underline",
1338
- children: "Visit publisher website"
1339
- })
1340
- ]
1337
+ children: (() => {
1338
+ let e = R.developerOrganization, t = e?.name || R.name, n = e?.logoUrl || R.logoUrl, r = e?.description || R.bio, i = e?.isVerified || R.isVerified;
1339
+ return /* @__PURE__ */ m(f, { children: [
1340
+ /* @__PURE__ */ m("div", {
1341
+ className: "flex items-center gap-2.5",
1342
+ children: [n ? /* @__PURE__ */ p("img", {
1343
+ src: n,
1344
+ alt: t,
1345
+ className: "size-8 rounded-lg object-cover"
1346
+ }) : /* @__PURE__ */ p("div", {
1347
+ className: "flex size-8 items-center justify-center rounded-lg bg-bg-sunken text-sm font-bold text-text-muted",
1348
+ children: t.charAt(0)
1349
+ }), /* @__PURE__ */ p("div", {
1350
+ className: "flex-1 min-w-0",
1351
+ children: /* @__PURE__ */ m("div", {
1352
+ className: "flex items-center gap-1.5",
1353
+ children: [/* @__PURE__ */ p("span", {
1354
+ className: "font-medium text-text-primary truncate",
1355
+ children: t
1356
+ }), i && /* @__PURE__ */ p(l, { className: "size-3.5 text-status-success-text shrink-0" })]
1357
+ })
1358
+ })]
1359
+ }),
1360
+ r && /* @__PURE__ */ p("p", {
1361
+ className: "mt-2 text-sm text-text-muted",
1362
+ children: r
1363
+ }),
1364
+ R.websiteUrl && /* @__PURE__ */ p("a", {
1365
+ href: R.websiteUrl,
1366
+ target: "_blank",
1367
+ rel: "noreferrer",
1368
+ className: "mt-3 inline-block text-sm text-text-link hover:underline",
1369
+ children: "Visit website"
1370
+ })
1371
+ ] });
1372
+ })()
1341
1373
  }),
1342
- H && H.length > 0 && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("div", {
1374
+ H && H.length > 0 && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("div", {
1343
1375
  className: "mb-4 flex items-center justify-between text-left",
1344
- children: /* @__PURE__ */ f("span", {
1376
+ children: /* @__PURE__ */ p("span", {
1345
1377
  className: "font-medium text-text-primary",
1346
1378
  children: "Similar apps"
1347
1379
  })
1348
- }), /* @__PURE__ */ f("div", {
1380
+ }), /* @__PURE__ */ p("div", {
1349
1381
  className: "space-y-3",
1350
- children: H.slice(0, 4).map((e) => /* @__PURE__ */ p("button", {
1382
+ children: H.slice(0, 4).map((e) => /* @__PURE__ */ m("button", {
1351
1383
  type: "button",
1352
- onClick: () => u(`${h}/marketplace/product/${e.id}`),
1384
+ onClick: () => d(`${g}/marketplace/product/${e.id}`),
1353
1385
  className: "flex w-full cursor-pointer items-center gap-3 rounded-lg p-2 text-left transition-colors hover:bg-bg-sunken",
1354
- children: [e.icon ? /* @__PURE__ */ f("img", {
1386
+ children: [e.icon ? /* @__PURE__ */ p("img", {
1355
1387
  src: e.icon,
1356
1388
  alt: e.name,
1357
1389
  className: "size-12 rounded-xl object-cover"
1358
- }) : /* @__PURE__ */ f("div", {
1390
+ }) : /* @__PURE__ */ p("div", {
1359
1391
  className: "flex size-12 items-center justify-center rounded-xl bg-bg-sunken text-lg font-bold text-text-muted",
1360
1392
  children: e.name.charAt(0)
1361
- }), /* @__PURE__ */ p("div", {
1393
+ }), /* @__PURE__ */ m("div", {
1362
1394
  className: "flex-1 overflow-hidden",
1363
1395
  children: [
1364
- /* @__PURE__ */ f("p", {
1396
+ /* @__PURE__ */ p("p", {
1365
1397
  className: "truncate text-sm font-medium text-text-primary",
1366
1398
  children: e.name
1367
1399
  }),
1368
- /* @__PURE__ */ f("p", {
1400
+ /* @__PURE__ */ p("p", {
1369
1401
  className: "text-xs text-text-muted",
1370
1402
  children: R?.name || "Unknown"
1371
1403
  }),
1372
- (e.reviewCount ?? 0) > 0 && /* @__PURE__ */ p("div", {
1404
+ (e.reviewCount ?? 0) > 0 && /* @__PURE__ */ m("div", {
1373
1405
  className: "flex items-center gap-1",
1374
- children: [/* @__PURE__ */ f("span", {
1406
+ children: [/* @__PURE__ */ p("span", {
1375
1407
  className: "text-xs text-text-muted",
1376
1408
  children: (e.rating || 0).toFixed(1)
1377
- }), /* @__PURE__ */ f(l, { className: "size-3 fill-current text-status-warning-text" })]
1409
+ }), /* @__PURE__ */ p(u, { className: "size-3 fill-current text-status-warning-text" })]
1378
1410
  })
1379
1411
  ]
1380
1412
  })]
@@ -1385,7 +1417,7 @@ var Ee = (e, t) => ({
1385
1417
  })
1386
1418
  ]
1387
1419
  }),
1388
- K && /* @__PURE__ */ f(oe, {
1420
+ K && /* @__PURE__ */ p(ae, {
1389
1421
  isOpen: rt,
1390
1422
  onClose: () => it(!1),
1391
1423
  app: {
@@ -1406,6 +1438,6 @@ var Ee = (e, t) => ({
1406
1438
  });
1407
1439
  };
1408
1440
  //#endregion
1409
- export { je as ProductDetailPage };
1441
+ export { Ae as ProductDetailPage };
1410
1442
 
1411
1443
  //# sourceMappingURL=ProductDetailPage.js.map