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