@burdenoff/microfe-store 2026.714.5 → 2026.714.7

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.
@@ -8,7 +8,7 @@ import { jsx as _, jsxs as v } from "react/jsx-runtime";
8
8
  import { useNavigate as se } from "react-router-dom";
9
9
  import { IllustratedEmptyState as y, PagePurpose as ce } from "@burdenoff/fe-libs/ui";
10
10
  //#region src/pages/AdminSubmissionsQueuePage.tsx
11
- var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendingReviewProducts(limit: $limit, offset: $offset) {\n totalCount\n products {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", ue = "\n query AdminProducts($limit: Int, $offset: Int, $status: ProductStatus) {\n products(filter: { status: $status }, limit: $limit, offset: $offset) {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n", de = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", fe = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", pe = "\n query AdminAppPackageUrl($id: ID!) {\n application(id: $id) {\n id\n versions(first: 1) {\n edges {\n node {\n packageUrl\n }\n }\n }\n }\n }\n", me = "\n query AdminPendingVersionApps($limit: Int, $offset: Int) {\n applicationsWithPendingVersions(limit: $limit, offset: $offset) {\n totalCount\n edges {\n node {\n id\n name\n slug\n iconUrl\n shortDescription\n description\n versions(first: 5) {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n packageSize\n isLatest\n reviewNotes\n manifest\n createdAt\n }\n }\n }\n }\n }\n }\n }\n", he = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", ge = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", _e = [
11
+ var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendingReviewProducts(limit: $limit, offset: $offset) {\n totalCount\n products {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", ue = "\n query AdminProducts($limit: Int, $offset: Int, $status: ProductStatus) {\n products(filter: { status: $status }, limit: $limit, offset: $offset) {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n", de = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", fe = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", pe = "\n query AdminAppPackageUrl($id: ID!) {\n application(id: $id) {\n id\n versions(first: 1) {\n edges {\n node {\n id\n packageUrl\n }\n }\n }\n }\n }\n", me = "\n mutation RefreshApplicationVersionPackageUrl($id: ID!) {\n refreshApplicationVersionPackageUrl(id: $id)\n }\n", he = "\n query AdminPendingVersionApps($limit: Int, $offset: Int) {\n applicationsWithPendingVersions(limit: $limit, offset: $offset) {\n totalCount\n edges {\n node {\n id\n name\n slug\n iconUrl\n shortDescription\n description\n versions(first: 5) {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n packageSize\n isLatest\n reviewNotes\n manifest\n createdAt\n }\n }\n }\n }\n }\n }\n }\n", ge = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", _e = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", ve = [
12
12
  {
13
13
  label: "Pending review",
14
14
  value: "PENDING_REVIEW"
@@ -46,10 +46,10 @@ var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
46
46
  "DATASINK",
47
47
  "CONSOLE"
48
48
  ]);
49
- function ve(e) {
49
+ function ye(e) {
50
50
  return b[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
51
51
  }
52
- function ye(e) {
52
+ function be(e) {
53
53
  return x[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
54
54
  }
55
55
  function C(e) {
@@ -62,12 +62,12 @@ function C(e) {
62
62
  }) : "—";
63
63
  }
64
64
  var w = () => {
65
- let b = se(), { authToken: x, basePath: w } = e(), [T, E] = a([]), [D, O] = a(0), [k, A] = a(!1), [j, M] = a(null), [N, P] = a(null), [F, be] = a("PENDING_REVIEW"), [xe, I] = a(null), [L, R] = a(""), [z, B] = a(null), [V, H] = a(null), [U, Se] = a([]), [W, Ce] = a(0), [G, K] = a(null), [q, J] = a(null), [Y, X] = a(""), [we, Z] = a(null), [Te, Ee] = a({}), Q = r(async () => {
65
+ let b = se(), { authToken: x, basePath: w } = e(), [T, E] = a([]), [D, O] = a(0), [k, A] = a(!1), [j, M] = a(null), [N, P] = a(null), [F, xe] = a("PENDING_REVIEW"), [Se, I] = a(null), [L, R] = a(""), [z, B] = a(null), [V, H] = a(null), [U, Ce] = a([]), [we, Te] = a(0), [W, G] = a(null), [Ee, K] = a(null), [q, J] = a(""), [De, Y] = a(null), [Oe, ke] = a({}), [X, Z] = a(null), Q = r(async () => {
66
66
  A(!0), M(null);
67
67
  try {
68
68
  let e = await g({
69
69
  gateway: "global",
70
- query: me,
70
+ query: he,
71
71
  variables: {
72
72
  limit: 50,
73
73
  offset: 0
@@ -75,18 +75,18 @@ var w = () => {
75
75
  authToken: x || void 0
76
76
  });
77
77
  if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load version updates");
78
- Se((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), Ce(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
78
+ Ce((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), Te(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
79
79
  } catch (e) {
80
80
  M(e instanceof Error ? e.message : "Failed to load version updates");
81
81
  } finally {
82
82
  A(!1);
83
83
  }
84
- }, [x]), De = async (e, t, n) => {
85
- K(e), M(null);
84
+ }, [x]), Ae = async (e, t, n) => {
85
+ G(e), M(null);
86
86
  try {
87
87
  let t = await g({
88
88
  gateway: "global",
89
- query: he,
89
+ query: ge,
90
90
  variables: {
91
91
  id: e,
92
92
  notes: n || null
@@ -98,18 +98,18 @@ var w = () => {
98
98
  } catch (e) {
99
99
  M(e instanceof Error ? e.message : "Approval failed");
100
100
  } finally {
101
- K(null);
101
+ G(null);
102
102
  }
103
- }, Oe = async (e, t, n) => {
103
+ }, je = async (e, t, n) => {
104
104
  if (!n.trim()) {
105
105
  M("Rejection reason is required");
106
106
  return;
107
107
  }
108
- K(e), M(null);
108
+ G(e), M(null);
109
109
  try {
110
110
  let t = await g({
111
111
  gateway: "global",
112
- query: ge,
112
+ query: _e,
113
113
  variables: {
114
114
  id: e,
115
115
  reason: n.trim()
@@ -117,11 +117,11 @@ var w = () => {
117
117
  authToken: x || void 0
118
118
  });
119
119
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
120
- J(null), X(""), Z(null), await Q();
120
+ K(null), J(""), Y(null), await Q();
121
121
  } catch (e) {
122
122
  M(e instanceof Error ? e.message : "Rejection failed");
123
123
  } finally {
124
- K(null);
124
+ G(null);
125
125
  }
126
126
  }, $ = r(async (e) => {
127
127
  if (e === "VERSION_UPDATES") {
@@ -176,18 +176,36 @@ var w = () => {
176
176
  variables: { id: e.productId },
177
177
  authToken: x || void 0
178
178
  })));
179
- Ee((n) => {
179
+ ke((n) => {
180
180
  let r = { ...n };
181
181
  return t.forEach((t, n) => {
182
182
  if (t.status === "fulfilled") {
183
- let i = t.value.data?.application?.versions?.edges?.[0]?.node?.packageUrl, a = e[n].productId;
184
- i && a && (r[a] = i);
183
+ let i = t.value.data?.application?.versions?.edges?.[0]?.node, a = e[n].productId;
184
+ i?.id && i.packageUrl && a && (r[a] = {
185
+ versionId: i.id,
186
+ packageUrl: i.packageUrl
187
+ });
185
188
  }
186
189
  }), r;
187
190
  });
188
191
  })();
189
192
  }, [T, x]);
190
- let ke = async (e) => {
193
+ let Me = async (e) => {
194
+ Z(e);
195
+ try {
196
+ let t = (await g({
197
+ gateway: "global",
198
+ query: me,
199
+ variables: { id: e },
200
+ authToken: x || void 0
201
+ })).data?.refreshApplicationVersionPackageUrl;
202
+ t ? window.open(t, "_blank", "noreferrer") : M("Could not generate a download URL. S3 credentials may not be configured.");
203
+ } catch (e) {
204
+ M(e instanceof Error ? e.message : "Failed to refresh download URL");
205
+ } finally {
206
+ Z(null);
207
+ }
208
+ }, Ne = async (e) => {
191
209
  P(e), M(null);
192
210
  try {
193
211
  let t = await g({
@@ -206,7 +224,7 @@ var w = () => {
206
224
  } finally {
207
225
  P(null);
208
226
  }
209
- }, Ae = async (e) => {
227
+ }, Pe = async (e) => {
210
228
  if (!L.trim()) {
211
229
  M("Rejection reason is required");
212
230
  return;
@@ -229,7 +247,7 @@ var w = () => {
229
247
  } finally {
230
248
  P(null);
231
249
  }
232
- }, je = T.filter((e) => e.status === "PENDING_REVIEW").length;
250
+ }, Fe = T.filter((e) => e.status === "PENDING_REVIEW").length;
233
251
  return /* @__PURE__ */ v("div", {
234
252
  className: "min-h-screen bg-[var(--color-surface-default)]",
235
253
  children: [
@@ -268,19 +286,19 @@ var w = () => {
268
286
  })]
269
287
  }), /* @__PURE__ */ _("div", {
270
288
  className: "mt-3 flex gap-1.5 flex-wrap",
271
- children: _e.map((e) => /* @__PURE__ */ v("button", {
289
+ children: ve.map((e) => /* @__PURE__ */ v("button", {
272
290
  type: "button",
273
- onClick: () => be(e.value),
291
+ onClick: () => xe(e.value),
274
292
  className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${F === e.value ? "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)]" : "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)]"}`,
275
293
  children: [
276
294
  e.label,
277
- e.value === "PENDING_REVIEW" && je > 0 && F !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
295
+ e.value === "PENDING_REVIEW" && Fe > 0 && F !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
278
296
  className: "ml-1.5 rounded-full bg-[var(--color-status-warning-text)] px-1.5 py-0.5 text-[10px] text-white",
279
- children: je
297
+ children: Fe
280
298
  }),
281
- e.value === "VERSION_UPDATES" && W > 0 && F !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
299
+ e.value === "VERSION_UPDATES" && we > 0 && F !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
282
300
  className: "ml-1.5 rounded-full bg-[var(--color-status-info-text)] px-1.5 py-0.5 text-[10px] text-white",
283
- children: W
301
+ children: we
284
302
  })
285
303
  ]
286
304
  }, e.value))
@@ -386,14 +404,13 @@ var w = () => {
386
404
  }),
387
405
  /* @__PURE__ */ v("div", {
388
406
  className: "flex flex-wrap gap-2",
389
- children: [t.packageUrl && /* @__PURE__ */ v("a", {
390
- href: t.packageUrl,
391
- download: !0,
392
- target: "_blank",
393
- rel: "noreferrer",
394
- className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
407
+ children: [t.packageUrl && /* @__PURE__ */ v("button", {
408
+ type: "button",
409
+ onClick: () => void Me(t.id),
410
+ disabled: X === t.id,
411
+ className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors disabled:opacity-50",
395
412
  children: [
396
- /* @__PURE__ */ _(u, { className: "size-3.5" }),
413
+ X === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }),
397
414
  "Download Package",
398
415
  t.packageSize != null && /* @__PURE__ */ v("span", {
399
416
  className: "text-[var(--color-text-muted)]",
@@ -419,7 +436,7 @@ var w = () => {
419
436
  className: "overflow-x-auto rounded-lg border border-[var(--color-border-seam)] bg-[var(--color-surface-default)] p-4 text-[11px] leading-relaxed text-[var(--color-text-primary)] max-h-48 overflow-y-auto",
420
437
  children: JSON.stringify(t.manifest, null, 2)
421
438
  }),
422
- q === t.id && we === e.id && /* @__PURE__ */ v("div", {
439
+ Ee === t.id && De === e.id && /* @__PURE__ */ v("div", {
423
440
  className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)]/30 p-3 space-y-2",
424
441
  children: [
425
442
  /* @__PURE__ */ _("p", {
@@ -427,8 +444,8 @@ var w = () => {
427
444
  children: "Rejection reason (the developer will see this)"
428
445
  }),
429
446
  /* @__PURE__ */ _("textarea", {
430
- value: Y,
431
- onChange: (e) => X(e.target.value),
447
+ value: q,
448
+ onChange: (e) => J(e.target.value),
432
449
  rows: 2,
433
450
  className: "w-full rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-2 text-sm text-[var(--color-text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none",
434
451
  placeholder: "Be specific — what needs to change before this version can be approved…"
@@ -438,14 +455,14 @@ var w = () => {
438
455
  children: [/* @__PURE__ */ _("button", {
439
456
  type: "button",
440
457
  onClick: () => {
441
- J(null), X(""), Z(null);
458
+ K(null), J(""), Y(null);
442
459
  },
443
460
  className: "rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors",
444
461
  children: "Cancel"
445
462
  }), /* @__PURE__ */ _("button", {
446
463
  type: "button",
447
- onClick: () => void Oe(t.id, e.id, Y),
448
- disabled: !Y.trim() || G === t.id,
464
+ onClick: () => void je(t.id, e.id, q),
465
+ disabled: !q.trim() || W === t.id,
449
466
  className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
450
467
  children: "Submit rejection"
451
468
  })]
@@ -456,16 +473,16 @@ var w = () => {
456
473
  className: "flex items-center gap-2",
457
474
  children: [/* @__PURE__ */ v("button", {
458
475
  type: "button",
459
- onClick: () => void De(t.id, e.id, ""),
460
- disabled: G === t.id,
476
+ onClick: () => void Ae(t.id, e.id, ""),
477
+ disabled: W === t.id,
461
478
  className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
462
- children: [G === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(o, { className: "size-3.5" }), "Approve version"]
463
- }), q !== t.id && /* @__PURE__ */ v("button", {
479
+ children: [W === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(o, { className: "size-3.5" }), "Approve version"]
480
+ }), Ee !== t.id && /* @__PURE__ */ v("button", {
464
481
  type: "button",
465
482
  onClick: () => {
466
- J(t.id), X(""), Z(e.id);
483
+ K(t.id), J(""), Y(e.id);
467
484
  },
468
- disabled: G === t.id,
485
+ disabled: W === t.id,
469
486
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-danger)] hover:bg-[var(--color-surface-danger)] hover:text-[var(--color-text-on-danger)] disabled:opacity-50 transition-colors",
470
487
  children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Reject version"]
471
488
  })]
@@ -507,11 +524,11 @@ var w = () => {
507
524
  children: e.name
508
525
  }),
509
526
  /* @__PURE__ */ _("span", {
510
- className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${ve(e.type)}`,
527
+ className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${ye(e.type)}`,
511
528
  children: e.type
512
529
  }),
513
530
  /* @__PURE__ */ _("span", {
514
- className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${ye(e.status)}`,
531
+ className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${be(e.status)}`,
515
532
  children: e.status.replace("_", " ")
516
533
  })
517
534
  ]
@@ -571,15 +588,23 @@ var w = () => {
571
588
  children: [/* @__PURE__ */ _(d, { className: "size-3.5" }), "Devportal"]
572
589
  }),
573
590
  S.has(e.type) && (() => {
574
- let t = e.zipFileUrl ?? (e.productId ? Te[e.productId] ?? null : null) ?? U.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.packageUrl ?? null;
575
- return t ? /* @__PURE__ */ v("a", {
576
- href: t,
591
+ let t = e.productId ? Oe[e.productId]?.versionId ?? U.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.id : void 0;
592
+ if (!t && !e.zipFileUrl) return null;
593
+ let n = X === t;
594
+ return t ? /* @__PURE__ */ v("button", {
595
+ type: "button",
596
+ onClick: () => void Me(t),
597
+ disabled: n,
598
+ className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors disabled:opacity-50",
599
+ children: [n ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
600
+ }) : /* @__PURE__ */ v("a", {
601
+ href: e.zipFileUrl,
577
602
  download: !0,
578
603
  target: "_blank",
579
604
  rel: "noreferrer",
580
605
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
581
606
  children: [/* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
582
- }) : null;
607
+ });
583
608
  })(),
584
609
  S.has(e.type) && /* @__PURE__ */ v("button", {
585
610
  type: "button",
@@ -602,7 +627,7 @@ var w = () => {
602
627
  className: "flex items-center gap-2",
603
628
  children: [e.status !== "PUBLISHED" && /* @__PURE__ */ v("button", {
604
629
  type: "button",
605
- onClick: () => void ke(e.id),
630
+ onClick: () => void Ne(e.id),
606
631
  disabled: N === e.id,
607
632
  className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
608
633
  children: [/* @__PURE__ */ _(o, { className: "size-3.5" }), "Approve"]
@@ -708,7 +733,7 @@ var w = () => {
708
733
  })] })
709
734
  ]
710
735
  }),
711
- xe === e.id && /* @__PURE__ */ v("div", {
736
+ Se === e.id && /* @__PURE__ */ v("div", {
712
737
  className: "border-t border-[var(--color-border-seam)] bg-[var(--color-surface-danger-muted)]/30 px-5 py-4",
713
738
  children: [
714
739
  /* @__PURE__ */ _("p", {
@@ -737,7 +762,7 @@ var w = () => {
737
762
  children: "Cancel"
738
763
  }), /* @__PURE__ */ _("button", {
739
764
  type: "button",
740
- onClick: () => void Ae(e.id),
765
+ onClick: () => void Pe(e.id),
741
766
  disabled: !L.trim() || N === e.id,
742
767
  className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
743
768
  children: "Submit rejection"