@burdenoff/microfe-devportal 2026.915.1 → 2026.915.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,19 +8,20 @@ import { ORG_ROLE_LABELS as f } from "../utils/constants.js";
8
8
  import { AppListItem as p } from "../components/AppCard.js";
9
9
  import { StatCard as m, StatCardGrid as h } from "../components/StatCard.js";
10
10
  import { DataTable as g, DetailList as _ } from "../components/DataTable.js";
11
- import { InputField as v, TextareaField as y } from "../components/FormField.js";
12
- import { useDevportalPermission as ee } from "../hooks/usePermission.js";
13
- import { DEVPORTAL_PERMISSIONS as te } from "../constants/permissions.js";
14
- import { useEffect as b, useState as x } from "react";
15
- import { AlertCircle as S, AppWindow as C, ArrowRight as w, BarChart3 as T, Building2 as ne, CheckCircle as E, DollarSign as D, ExternalLink as O, Loader2 as k, Plus as A, Settings as j, Shield as M, TrendingUp as N, Users as P } from "lucide-react";
16
- import { useParams as re } from "react-router";
17
- import { Fragment as F, jsx as I, jsxs as L } from "react/jsx-runtime";
18
- import { useI18n as R } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { EmphasisPanel as z, NextSteps as ie } from "@burdenoff/fe-libs/ui";
20
- import { graphqlFetch as B } from "@burdenoff/fe-libs/shared/graphql";
11
+ import { InputField as v, SelectField as y, TextareaField as ee } from "../components/FormField.js";
12
+ import { useDevportalPermission as te } from "../hooks/usePermission.js";
13
+ import { useCarrierPickupLocations as b } from "../hooks/useCarrierPickupLocations.js";
14
+ import { DEVPORTAL_PERMISSIONS as x } from "../constants/permissions.js";
15
+ import { useEffect as S, useState as C } from "react";
16
+ import { AlertCircle as w, AppWindow as T, ArrowRight as E, BarChart3 as D, Building2 as O, CheckCircle as k, DollarSign as A, ExternalLink as j, Loader2 as M, Plus as N, Settings as P, Shield as F, TrendingUp as I, Users as ne } from "lucide-react";
17
+ import { useParams as L } from "react-router";
18
+ import { Fragment as R, jsx as z, jsxs as B } from "react/jsx-runtime";
19
+ import { useI18n as V } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
+ import { EmphasisPanel as H, NextSteps as U } from "@burdenoff/fe-libs/ui";
21
+ import { graphqlFetch as W } from "@burdenoff/fe-libs/shared/graphql";
21
22
  //#region src/devportal/pages/OrganizationDetailPage.tsx
22
- var V = "\n query OrganizationVerificationDetails($id: ID!) {\n developerOrganization(id: $id) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRequestedBy\n verificationReviewedAt\n verificationReviewedBy\n verificationReviewNotes\n verificationRejectedReason\n }\n }\n", H = "\n mutation RequestOrgVerificationExtended(\n $id: ID!\n $method: String!\n $notes: String\n $evidenceUrl: String\n $domain: String\n ) {\n requestOrgVerification(\n id: $id\n method: $method\n notes: $notes\n evidenceUrl: $evidenceUrl\n domain: $domain\n ) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRejectedReason\n }\n }\n";
23
- function ae(e) {
23
+ var G = "\n query OrganizationVerificationDetails($id: ID!) {\n developerOrganization(id: $id) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRequestedBy\n verificationReviewedAt\n verificationReviewedBy\n verificationReviewNotes\n verificationRejectedReason\n }\n }\n", K = "\n mutation RequestOrgVerificationExtended(\n $id: ID!\n $method: String!\n $notes: String\n $evidenceUrl: String\n $domain: String\n ) {\n requestOrgVerification(\n id: $id\n method: $method\n notes: $notes\n evidenceUrl: $evidenceUrl\n domain: $domain\n ) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRejectedReason\n }\n }\n";
24
+ function re(e) {
24
25
  let t = e;
25
26
  return {
26
27
  id: e.id,
@@ -77,7 +78,7 @@ function ae(e) {
77
78
  updatedAt: e.updatedAt
78
79
  };
79
80
  }
80
- function U(e) {
81
+ function ie(e) {
81
82
  return {
82
83
  id: e.id,
83
84
  organizationId: e.organizationId,
@@ -96,11 +97,11 @@ function U(e) {
96
97
  updatedAt: e.updatedAt
97
98
  };
98
99
  }
99
- function W(e) {
100
+ function q(e) {
100
101
  let t = e.trim().toLowerCase();
101
102
  return /^[a-z0-9.-]+\.[a-z]{2,}$/i.test(t) && !t.includes("@");
102
103
  }
103
- function G(e) {
104
+ function J(e) {
104
105
  try {
105
106
  let t = new URL(e.trim());
106
107
  return t.protocol === "http:" || t.protocol === "https:";
@@ -108,272 +109,272 @@ function G(e) {
108
109
  return !1;
109
110
  }
110
111
  }
111
- function K(e) {
112
+ function ae(e) {
112
113
  let t = e.trim();
113
114
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t);
114
115
  }
115
- var q = {
116
+ var Y = {
116
117
  VIEWER: 0,
117
118
  DEVELOPER: 1,
118
119
  ADMIN: 2,
119
120
  OWNER: 3
120
- }, J = () => {
121
- let { navigate: n, basePath: s, setActiveOrgId: c, setActivePhysicalOrgId: l, currentUser: d } = e(), f = i(), { orgId: p } = re(), { t: m } = R(), h = (e, t) => {
121
+ }, oe = () => {
122
+ let { navigate: n, basePath: s, setActiveOrgId: c, setActivePhysicalOrgId: l, currentUser: d } = e(), f = i(), { orgId: p } = L(), { t: m } = V(), h = (e, t) => {
122
123
  let n = m(e);
123
124
  return n === e ? t : n;
124
- }, [g, _] = x("overview"), v = [
125
+ }, [g, _] = C("overview"), v = [
125
126
  {
126
127
  id: "overview",
127
128
  label: h("devportal.overview", "Overview"),
128
- icon: ne
129
+ icon: O
129
130
  },
130
131
  {
131
132
  id: "apps",
132
133
  label: h("devportal.applications", "Applications"),
133
- icon: C
134
+ icon: T
134
135
  },
135
136
  {
136
137
  id: "members",
137
138
  label: h("devportal.members", "Members"),
138
- icon: P
139
+ icon: ne
139
140
  },
140
141
  {
141
142
  id: "settings",
142
143
  label: h("devportal.settings", "Settings"),
143
- icon: j
144
+ icon: P
144
145
  }
145
- ], { data: y, previousData: ee, loading: te, error: w } = o({
146
+ ], { data: y, previousData: ee, loading: te, error: b } = o({
146
147
  variables: { id: p },
147
148
  skip: !p
148
- }), T = y ?? ee, { data: E } = a({
149
+ }), x = y ?? ee, { data: E } = a({
149
150
  variables: {
150
151
  limit: 50,
151
152
  organizationId: p
152
153
  },
153
154
  skip: !p,
154
155
  fetchPolicy: "cache-and-network"
155
- }), O = (T?.developerOrganization?.members ?? []).map(U), M = (d ? O.find((e) => e.userId === d.id) : void 0)?.role, N = M !== void 0 && q[M] >= q.DEVELOPER, F = M !== void 0 && q[M] >= q.ADMIN, z = F, B = F, V = v.filter((e) => e.id !== "settings" || F), H = (e) => {
156
+ }), D = (x?.developerOrganization?.members ?? []).map(ie), k = (d ? D.find((e) => e.userId === d.id) : void 0)?.role, j = k !== void 0 && Y[k] >= Y.DEVELOPER, F = k !== void 0 && Y[k] >= Y.ADMIN, I = F, R = F, H = v.filter((e) => e.id !== "settings" || F), W = (e) => {
156
157
  n?.(`${s}${e}`);
157
158
  };
158
- if (b(() => {
159
+ if (S(() => {
159
160
  p && (f ? l(p) : c(p));
160
161
  }, [
161
162
  p,
162
163
  f,
163
164
  c,
164
165
  l
165
- ]), b(() => {
166
+ ]), S(() => {
166
167
  g === "settings" && !F && _("overview");
167
- }, [g, F]), b(() => {
168
- let e = T?.developerOrganization?.name;
168
+ }, [g, F]), S(() => {
169
+ let e = x?.developerOrganization?.name;
169
170
  if (!p || !e) return;
170
171
  let t = window.__breadcrumbRegistry;
171
172
  return t?.register(p, e), () => t?.unregister(p);
172
- }, [p, y?.developerOrganization?.name]), te && !T) return /* @__PURE__ */ I(u, {
173
+ }, [p, y?.developerOrganization?.name]), te && !x) return /* @__PURE__ */ z(u, {
173
174
  title: h("devportal.loadingDots", "Loading..."),
174
175
  backLink: `${s}${r(f)}`,
175
176
  backLabel: h("devportal.backToOrganizations", "Back to Organizations"),
176
- children: /* @__PURE__ */ I("div", {
177
+ children: /* @__PURE__ */ z("div", {
177
178
  className: "flex items-center justify-center py-12",
178
- children: /* @__PURE__ */ I(k, { className: "h-8 w-8 animate-spin text-text-secondary" })
179
+ children: /* @__PURE__ */ z(M, { className: "h-8 w-8 animate-spin text-text-secondary" })
179
180
  })
180
181
  });
181
- if (w || !T?.developerOrganization) return /* @__PURE__ */ I(u, {
182
+ if (b || !x?.developerOrganization) return /* @__PURE__ */ z(u, {
182
183
  title: h("devportal.organizationNotFound", "Organization Not Found"),
183
184
  backLink: `${s}${r(f)}`,
184
185
  backLabel: h("devportal.backToOrganizations", "Back to Organizations"),
185
- children: /* @__PURE__ */ L("div", {
186
+ children: /* @__PURE__ */ B("div", {
186
187
  className: "flex flex-col items-center justify-center py-12 gap-4",
187
188
  children: [
188
- /* @__PURE__ */ I(S, { className: "h-12 w-12 text-status-error-text" }),
189
- /* @__PURE__ */ I("h2", {
189
+ /* @__PURE__ */ z(w, { className: "h-12 w-12 text-status-error-text" }),
190
+ /* @__PURE__ */ z("h2", {
190
191
  className: "text-lg font-semibold",
191
192
  children: h("devportal.organizationNotFoundLower", "Organization not found")
192
193
  }),
193
- /* @__PURE__ */ I("p", {
194
+ /* @__PURE__ */ z("p", {
194
195
  className: "text-text-secondary",
195
- children: w?.message || h("devportal.organizationNotFoundDescription", "The organization you're looking for doesn't exist or you don't have access to it.")
196
+ children: b?.message || h("devportal.organizationNotFoundDescription", "The organization you're looking for doesn't exist or you don't have access to it.")
196
197
  }),
197
- /* @__PURE__ */ I("button", {
198
- onClick: () => H(r(f)),
198
+ /* @__PURE__ */ z("button", {
199
+ onClick: () => W(r(f)),
199
200
  className: "mt-4 inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
200
201
  children: h("devportal.backToOrganizations", "Back to Organizations")
201
202
  })
202
203
  ]
203
204
  })
204
205
  });
205
- let W = ae(T.developerOrganization), G = O, K = E?.applications?.edges?.map((e) => e.node) ?? [];
206
- return /* @__PURE__ */ L(u, {
207
- title: W.name,
208
- description: W.description,
206
+ let G = re(x.developerOrganization), K = D, q = E?.applications?.edges?.map((e) => e.node) ?? [];
207
+ return /* @__PURE__ */ B(u, {
208
+ title: G.name,
209
+ description: G.description,
209
210
  purpose: h("devportal.orgDetailPurpose", "This is the home for one organization — the apps it owns, the people who can work on them, and its store and billing settings. Invite teammates, add apps, and verify the org so your published listings look trustworthy."),
210
211
  backLink: `${s}${r(f)}`,
211
212
  backLabel: h("devportal.backToOrganizations", "Back to Organizations"),
212
- actions: /* @__PURE__ */ I("div", {
213
+ actions: /* @__PURE__ */ z("div", {
213
214
  className: "flex items-center gap-2",
214
- children: z ? /* @__PURE__ */ L("button", {
215
- onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(W.id)}&developerOrgName=${encodeURIComponent(W.name)}`),
215
+ children: I ? /* @__PURE__ */ B("button", {
216
+ onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(G.id)}&developerOrgName=${encodeURIComponent(G.name)}`),
216
217
  className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken transition-colors",
217
- children: [/* @__PURE__ */ I(D, { size: 16 }), h("devportal.revenue", "Revenue")]
218
+ children: [/* @__PURE__ */ z(A, { size: 16 }), h("devportal.revenue", "Revenue")]
218
219
  }) : null
219
220
  }),
220
221
  children: [
221
- /* @__PURE__ */ I("div", {
222
+ /* @__PURE__ */ z("div", {
222
223
  className: "border-b",
223
- children: /* @__PURE__ */ I("nav", {
224
+ children: /* @__PURE__ */ z("nav", {
224
225
  className: "-mb-px flex gap-4 overflow-x-auto",
225
226
  role: "tablist",
226
227
  "aria-label": h("devportal.organizationSections", "Organization sections"),
227
- children: V.map((e) => {
228
+ children: H.map((e) => {
228
229
  let n = e.icon;
229
- return /* @__PURE__ */ L("button", {
230
+ return /* @__PURE__ */ B("button", {
230
231
  id: `organization-tab-${e.id}`,
231
232
  role: "tab",
232
233
  "aria-selected": g === e.id,
233
234
  "aria-controls": `organization-panel-${e.id}`,
234
235
  onClick: () => _(e.id),
235
236
  className: t("flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors", g === e.id ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-muted-foreground"),
236
- children: [/* @__PURE__ */ I(n, { size: 16 }), e.label]
237
+ children: [/* @__PURE__ */ z(n, { size: 16 }), e.label]
237
238
  }, e.id);
238
239
  })
239
240
  })
240
241
  }),
241
- /* @__PURE__ */ I(ie, {
242
+ /* @__PURE__ */ z(U, {
242
243
  className: "mt-6",
243
- storageKey: `devportal-org-${W.id}`,
244
+ storageKey: `devportal-org-${G.id}`,
244
245
  steps: [
245
- ...B ? [{
246
+ ...R ? [{
246
247
  id: "invite-members",
247
248
  label: h("devportal.inviteMembers", "Invite members"),
248
249
  description: h("devportal.orgStepInvite", "Add teammates so they can build alongside you"),
249
- icon: /* @__PURE__ */ I(P, { size: 16 }),
250
+ icon: /* @__PURE__ */ z(ne, { size: 16 }),
250
251
  onClick: () => _("members")
251
252
  }] : [],
252
- ...N && !f ? [{
253
+ ...j && !f ? [{
253
254
  id: "create-app",
254
255
  label: h("devportal.createApp", "Create App"),
255
256
  description: h("devportal.orgStepCreateApp", "Build a new application under this organization"),
256
- icon: /* @__PURE__ */ I(C, { size: 16 }),
257
- onClick: () => H("/apps/new")
257
+ icon: /* @__PURE__ */ z(T, { size: 16 }),
258
+ onClick: () => W("/apps/new")
258
259
  }] : [],
259
- ...N && f ? [{
260
+ ...j && f ? [{
260
261
  id: "list-item",
261
262
  label: h("devportal.listAnItem", "List an Item"),
262
263
  description: h("devportal.orgStepListItem", "List a physical product for sale under this organization"),
263
- icon: /* @__PURE__ */ I(A, { size: 16 }),
264
- onClick: () => H("/seller/items/new")
264
+ icon: /* @__PURE__ */ z(N, { size: 16 }),
265
+ onClick: () => W("/seller/items/new")
265
266
  }] : [],
266
267
  ...F ? [{
267
268
  id: "settings",
268
269
  label: h("devportal.orgStepVerify", "Complete organization profile"),
269
270
  description: h("devportal.orgStepVerifyDesc", "Add a logo and details, then request verification"),
270
- icon: /* @__PURE__ */ I(j, { size: 16 }),
271
+ icon: /* @__PURE__ */ z(P, { size: 16 }),
271
272
  onClick: () => _("settings"),
272
- done: !!W.isVerified
273
+ done: !!G.isVerified
273
274
  }] : []
274
275
  ]
275
276
  }),
276
- /* @__PURE__ */ L("div", {
277
+ /* @__PURE__ */ B("div", {
277
278
  className: "mt-6",
278
279
  id: `organization-panel-${g}`,
279
280
  role: "tabpanel",
280
281
  "aria-labelledby": `organization-tab-${g}`,
281
282
  tabIndex: 0,
282
283
  children: [
283
- g === "overview" && /* @__PURE__ */ I(Y, {
284
- org: W,
285
- apps: K,
286
- members: G,
287
- canCreateApps: N,
288
- canViewRevenue: z,
289
- onNavigate: H,
284
+ g === "overview" && /* @__PURE__ */ z(se, {
285
+ org: G,
286
+ apps: q,
287
+ members: K,
288
+ canCreateApps: j,
289
+ canViewRevenue: I,
290
+ onNavigate: W,
290
291
  onShowApps: () => _("apps")
291
292
  }),
292
- g === "apps" && /* @__PURE__ */ I(X, {
293
- org: W,
294
- apps: K,
295
- onNavigate: H,
296
- canCreateApps: N
293
+ g === "apps" && /* @__PURE__ */ z(X, {
294
+ org: G,
295
+ apps: q,
296
+ onNavigate: W,
297
+ canCreateApps: j
297
298
  }),
298
- g === "members" && /* @__PURE__ */ I(Z, {
299
- members: G,
300
- onNavigate: H,
301
- orgId: W.id,
302
- canInviteMembers: B
299
+ g === "members" && /* @__PURE__ */ z(Z, {
300
+ members: K,
301
+ onNavigate: W,
302
+ orgId: G.id,
303
+ canInviteMembers: R
303
304
  }),
304
- g === "settings" && F && /* @__PURE__ */ I(oe, { org: W })
305
+ g === "settings" && F && /* @__PURE__ */ z(Q, { org: G })
305
306
  ]
306
307
  })
307
308
  ]
308
309
  });
309
- }, Y = ({ org: e, apps: t, members: r, canCreateApps: i, canViewRevenue: a, onNavigate: o, onShowApps: s }) => {
310
- let { t: c } = R(), l = (e, t) => {
310
+ }, se = ({ org: e, apps: t, members: r, canCreateApps: i, canViewRevenue: a, onNavigate: o, onShowApps: s }) => {
311
+ let { t: c } = V(), l = (e, t) => {
311
312
  let n = c(e);
312
313
  return n === e ? t : n;
313
314
  };
314
- return /* @__PURE__ */ L("div", {
315
+ return /* @__PURE__ */ B("div", {
315
316
  className: "grid gap-6 lg:grid-cols-3",
316
- children: [/* @__PURE__ */ L("div", {
317
+ children: [/* @__PURE__ */ B("div", {
317
318
  className: "lg:col-span-2 space-y-6",
318
- children: [/* @__PURE__ */ I(z, { children: /* @__PURE__ */ L(h, {
319
+ children: [/* @__PURE__ */ z(H, { children: /* @__PURE__ */ B(h, {
319
320
  columns: a ? 4 : 3,
320
321
  children: [
321
- /* @__PURE__ */ I(m, {
322
+ /* @__PURE__ */ z(m, {
322
323
  title: l("devportal.publishedApps", "Published Apps"),
323
324
  value: `${e.publishedApps}/${e.totalApps}`,
324
- icon: /* @__PURE__ */ I(C, { size: 20 })
325
+ icon: /* @__PURE__ */ z(T, { size: 20 })
325
326
  }),
326
- /* @__PURE__ */ I(m, {
327
+ /* @__PURE__ */ z(m, {
327
328
  title: l("devportal.totalInstalls", "Total Installs"),
328
329
  value: e.totalInstalls.toLocaleString(),
329
- icon: /* @__PURE__ */ I(N, { size: 20 })
330
+ icon: /* @__PURE__ */ z(I, { size: 20 })
330
331
  }),
331
- a ? /* @__PURE__ */ I(m, {
332
+ a ? /* @__PURE__ */ z(m, {
332
333
  title: l("devportal.totalRevenue", "Total Revenue"),
333
334
  value: `$${e.totalRevenue.toLocaleString()}`,
334
- icon: /* @__PURE__ */ I(D, { size: 20 })
335
+ icon: /* @__PURE__ */ z(A, { size: 20 })
335
336
  }) : null,
336
- /* @__PURE__ */ I(m, {
337
+ /* @__PURE__ */ z(m, {
337
338
  title: l("devportal.avgRating", "Avg Rating"),
338
339
  value: e.averageRating ? `${e.averageRating.toFixed(1)} ★` : l("devportal.notAvailable", "N/A"),
339
- icon: /* @__PURE__ */ I(T, { size: 20 })
340
+ icon: /* @__PURE__ */ z(D, { size: 20 })
340
341
  })
341
342
  ]
342
- }) }), /* @__PURE__ */ I(d, {
343
+ }) }), /* @__PURE__ */ z(d, {
343
344
  title: l("devportal.recentApplications", "Recent Applications"),
344
- actions: /* @__PURE__ */ L("button", {
345
+ actions: /* @__PURE__ */ B("button", {
345
346
  onClick: s,
346
347
  className: "text-sm text-primary hover:underline flex items-center gap-1",
347
348
  children: [
348
349
  l("devportal.viewAll", "View all"),
349
350
  " ",
350
- /* @__PURE__ */ I(w, { size: 14 })
351
+ /* @__PURE__ */ z(E, { size: 14 })
351
352
  ]
352
353
  }),
353
- children: t.length > 0 ? /* @__PURE__ */ I("div", {
354
+ children: t.length > 0 ? /* @__PURE__ */ z("div", {
354
355
  className: "space-y-2",
355
- children: t.slice(0, 3).map((e) => /* @__PURE__ */ I(p, {
356
+ children: t.slice(0, 3).map((e) => /* @__PURE__ */ z(p, {
356
357
  app: e,
357
358
  onClick: () => o(`/apps/${e.id}`)
358
359
  }, e.id))
359
- }) : /* @__PURE__ */ I(n, {
360
+ }) : /* @__PURE__ */ z(n, {
360
361
  illustration: "empty-data",
361
- icon: /* @__PURE__ */ I(C, { size: 24 }),
362
+ icon: /* @__PURE__ */ z(T, { size: 24 }),
362
363
  title: l("devportal.noApplications", "No applications"),
363
364
  description: e.kind === "PHYSICAL" ? l("devportal.createYourFirstItem", "List your first physical item") : l("devportal.createYourFirstApplication", "Create your first application"),
364
- action: i ? /* @__PURE__ */ L("button", {
365
+ action: i ? /* @__PURE__ */ B("button", {
365
366
  onClick: () => o(e.kind === "PHYSICAL" ? "/seller/items/new" : "/apps/new"),
366
367
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
367
- children: [/* @__PURE__ */ I(A, { size: 16 }), e.kind === "PHYSICAL" ? l("devportal.createItem", "Create Item") : l("devportal.createApp", "Create App")]
368
+ children: [/* @__PURE__ */ z(N, { size: 16 }), e.kind === "PHYSICAL" ? l("devportal.createItem", "Create Item") : l("devportal.createApp", "Create App")]
368
369
  }) : void 0
369
370
  })
370
371
  })]
371
- }), /* @__PURE__ */ L("div", {
372
+ }), /* @__PURE__ */ B("div", {
372
373
  className: "space-y-6",
373
374
  children: [
374
- a ? /* @__PURE__ */ I(d, {
375
+ a ? /* @__PURE__ */ z(d, {
375
376
  title: l("devportal.revenueSummary", "Revenue Summary"),
376
- children: /* @__PURE__ */ I(_, { items: [
377
+ children: /* @__PURE__ */ z(_, { items: [
377
378
  {
378
379
  label: l("devportal.totalRevenue", "Total Revenue"),
379
380
  value: `$${e.totalRevenue.toLocaleString()}`
@@ -396,31 +397,31 @@ var q = {
396
397
  }
397
398
  ] })
398
399
  }) : null,
399
- /* @__PURE__ */ I(d, {
400
+ /* @__PURE__ */ z(d, {
400
401
  title: l("devportal.teamMembers", "Team Members"),
401
- actions: /* @__PURE__ */ I("button", {
402
+ actions: /* @__PURE__ */ z("button", {
402
403
  onClick: () => o(`/organizations/${e.id}/members`),
403
404
  className: "text-sm text-primary hover:underline",
404
405
  children: l("devportal.manage", "Manage")
405
406
  }),
406
- children: /* @__PURE__ */ L("div", {
407
+ children: /* @__PURE__ */ B("div", {
407
408
  className: "space-y-2",
408
- children: [r.slice(0, 3).map((e) => /* @__PURE__ */ I("div", {
409
+ children: [r.slice(0, 3).map((e) => /* @__PURE__ */ z("div", {
409
410
  className: "flex items-center justify-between py-2",
410
- children: /* @__PURE__ */ L("div", {
411
+ children: /* @__PURE__ */ B("div", {
411
412
  className: "flex items-center gap-3",
412
- children: [/* @__PURE__ */ I("div", {
413
+ children: [/* @__PURE__ */ z("div", {
413
414
  className: "h-8 w-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center text-sm font-medium text-primary",
414
415
  children: e.email?.charAt(0).toUpperCase() || "U"
415
- }), /* @__PURE__ */ L("div", { children: [/* @__PURE__ */ I("p", {
416
+ }), /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("p", {
416
417
  className: "text-sm font-medium",
417
418
  children: e.email
418
- }), /* @__PURE__ */ I("p", {
419
+ }), /* @__PURE__ */ z("p", {
419
420
  className: "text-xs text-text-secondary",
420
421
  children: f[e.role]
421
422
  })] })]
422
423
  })
423
- }, e.id)), r.length > 3 && /* @__PURE__ */ L("p", {
424
+ }, e.id)), r.length > 3 && /* @__PURE__ */ B("p", {
424
425
  className: "text-xs text-text-secondary",
425
426
  children: [
426
427
  "+",
@@ -431,20 +432,20 @@ var q = {
431
432
  })]
432
433
  })
433
434
  }),
434
- /* @__PURE__ */ I(d, {
435
+ /* @__PURE__ */ z(d, {
435
436
  title: l("devportal.links", "Links"),
436
- children: /* @__PURE__ */ L("div", {
437
+ children: /* @__PURE__ */ B("div", {
437
438
  className: "space-y-2",
438
- children: [e.websiteUrl && /* @__PURE__ */ L("a", {
439
+ children: [e.websiteUrl && /* @__PURE__ */ B("a", {
439
440
  href: e.websiteUrl,
440
441
  target: "_blank",
441
442
  rel: "noopener noreferrer",
442
443
  className: "flex items-center gap-2 text-sm text-primary hover:underline",
443
- children: [/* @__PURE__ */ I(O, { size: 14 }), l("devportal.website", "Website")]
444
- }), e.contactEmail && /* @__PURE__ */ L("a", {
444
+ children: [/* @__PURE__ */ z(j, { size: 14 }), l("devportal.website", "Website")]
445
+ }), e.contactEmail && /* @__PURE__ */ B("a", {
445
446
  href: `mailto:${e.contactEmail}`,
446
447
  className: "flex items-center gap-2 text-sm text-primary hover:underline",
447
- children: [/* @__PURE__ */ I(O, { size: 14 }), e.contactEmail]
448
+ children: [/* @__PURE__ */ z(j, { size: 14 }), e.contactEmail]
448
449
  })]
449
450
  })
450
451
  })
@@ -452,78 +453,78 @@ var q = {
452
453
  })]
453
454
  });
454
455
  }, X = ({ org: e, apps: t, onNavigate: r, canCreateApps: i }) => {
455
- let { t: a } = R(), o = (e, t) => {
456
+ let { t: a } = V(), o = (e, t) => {
456
457
  let n = a(e);
457
458
  return n === e ? t : n;
458
459
  }, s = e.kind === "PHYSICAL", c = s ? "/seller/items/new" : "/apps/new", l = s ? o("devportal.createItem", "Create Item") : o("devportal.createApp", "Create App");
459
- return /* @__PURE__ */ L("div", {
460
+ return /* @__PURE__ */ B("div", {
460
461
  className: "space-y-6",
461
- children: [/* @__PURE__ */ L("div", {
462
+ children: [/* @__PURE__ */ B("div", {
462
463
  className: "flex items-center justify-between",
463
- children: [/* @__PURE__ */ L("p", {
464
+ children: [/* @__PURE__ */ B("p", {
464
465
  className: "text-sm text-text-secondary",
465
466
  children: [
466
467
  t.length,
467
468
  " ",
468
469
  t.length === 1 ? o("devportal.application", "application") : o("devportal.applications", "applications")
469
470
  ]
470
- }), i ? /* @__PURE__ */ L("button", {
471
+ }), i ? /* @__PURE__ */ B("button", {
471
472
  onClick: () => r(c),
472
473
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
473
- children: [/* @__PURE__ */ I(A, { size: 16 }), l]
474
+ children: [/* @__PURE__ */ z(N, { size: 16 }), l]
474
475
  }) : null]
475
- }), t.length > 0 ? /* @__PURE__ */ I("div", {
476
+ }), t.length > 0 ? /* @__PURE__ */ z("div", {
476
477
  className: "space-y-2",
477
- children: t.map((e) => /* @__PURE__ */ I(p, {
478
+ children: t.map((e) => /* @__PURE__ */ z(p, {
478
479
  app: e,
479
480
  onClick: () => r(`/apps/${e.id}`)
480
481
  }, e.id))
481
- }) : /* @__PURE__ */ I(n, {
482
+ }) : /* @__PURE__ */ z(n, {
482
483
  illustration: "empty-data",
483
- icon: /* @__PURE__ */ I(C, { size: 32 }),
484
+ icon: /* @__PURE__ */ z(T, { size: 32 }),
484
485
  title: o("devportal.noApplications", "No applications"),
485
486
  description: s ? o("devportal.createFirstItemForOrg", "List your first physical item for this organization") : o("devportal.createFirstAppForOrg", "Create your first application for this organization"),
486
- action: i ? /* @__PURE__ */ L("button", {
487
+ action: i ? /* @__PURE__ */ B("button", {
487
488
  onClick: () => r(c),
488
489
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
489
- children: [/* @__PURE__ */ I(A, { size: 16 }), l]
490
+ children: [/* @__PURE__ */ z(N, { size: 16 }), l]
490
491
  }) : void 0
491
492
  })]
492
493
  });
493
494
  }, Z = ({ members: e, onNavigate: n, orgId: r, canInviteMembers: i }) => {
494
- let { t: a } = R(), o = (e, t) => {
495
+ let { t: a } = V(), o = (e, t) => {
495
496
  let n = a(e);
496
497
  return n === e ? t : n;
497
498
  };
498
- return /* @__PURE__ */ L("div", {
499
+ return /* @__PURE__ */ B("div", {
499
500
  className: "space-y-6",
500
- children: [/* @__PURE__ */ L("div", {
501
+ children: [/* @__PURE__ */ B("div", {
501
502
  className: "flex items-center justify-between",
502
- children: [/* @__PURE__ */ L("p", {
503
+ children: [/* @__PURE__ */ B("p", {
503
504
  className: "text-sm text-text-secondary",
504
505
  children: [
505
506
  e.length,
506
507
  " ",
507
508
  e.length === 1 ? o("devportal.memberLower", "member") : o("devportal.membersLower", "members")
508
509
  ]
509
- }), i ? /* @__PURE__ */ L("button", {
510
+ }), i ? /* @__PURE__ */ B("button", {
510
511
  onClick: () => n(`/organizations/${r}/members`),
511
512
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
512
- children: [/* @__PURE__ */ I(A, { size: 16 }), o("devportal.inviteMember", "Invite Member")]
513
+ children: [/* @__PURE__ */ z(N, { size: 16 }), o("devportal.inviteMember", "Invite Member")]
513
514
  }) : null]
514
- }), /* @__PURE__ */ I(g, {
515
+ }), /* @__PURE__ */ z(g, {
515
516
  data: e,
516
517
  keyField: "id",
517
518
  columns: [
518
519
  {
519
520
  key: "email",
520
521
  header: o("devportal.memberColumn", "Member"),
521
- render: (e) => /* @__PURE__ */ L("div", {
522
+ render: (e) => /* @__PURE__ */ B("div", {
522
523
  className: "flex items-center gap-3",
523
- children: [/* @__PURE__ */ I("div", {
524
+ children: [/* @__PURE__ */ z("div", {
524
525
  className: "h-8 w-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center text-sm font-medium text-primary",
525
526
  children: e.email?.charAt(0).toUpperCase() || "U"
526
- }), /* @__PURE__ */ I("span", {
527
+ }), /* @__PURE__ */ z("span", {
527
528
  className: "font-medium",
528
529
  children: e.email
529
530
  })]
@@ -532,7 +533,7 @@ var q = {
532
533
  {
533
534
  key: "role",
534
535
  header: o("devportal.roleColumn", "Role"),
535
- render: (e) => /* @__PURE__ */ I("span", {
536
+ render: (e) => /* @__PURE__ */ z("span", {
536
537
  className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", e.role === "OWNER" ? "bg-accent-purple-subtle text-accent-purple" : e.role === "ADMIN" ? "bg-status-info-bg-subtle text-status-info-text" : e.role === "DEVELOPER" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-primary"),
537
538
  children: f[e.role]
538
539
  })
@@ -545,11 +546,11 @@ var q = {
545
546
  ]
546
547
  })]
547
548
  });
548
- }, oe = ({ org: e }) => {
549
- let { t } = R(), { allowed: n } = ee(te.ORG_UPDATE), r = (e, n) => {
549
+ }, Q = ({ org: e }) => {
550
+ let { t } = V(), { allowed: n } = te(x.ORG_UPDATE), r = (e, n) => {
550
551
  let r = t(e);
551
552
  return r === e ? n : r;
552
- }, [i, a] = x({
553
+ }, [i, a] = C({
553
554
  name: e.name,
554
555
  description: e.description ?? "",
555
556
  websiteUrl: e.websiteUrl ?? "",
@@ -557,24 +558,24 @@ var q = {
557
558
  supportEmail: e.supportEmail ?? "",
558
559
  logoUrl: e.logoUrl ?? "",
559
560
  bannerUrl: e.bannerUrl ?? ""
560
- }), [o, u] = x({
561
+ }), [o, u] = C({
561
562
  legalEntityName: e.legalEntityName ?? "",
562
563
  legalEntityType: e.legalEntityType ?? ""
563
- }), [f, p] = x({
564
+ }), [f, p] = C({
564
565
  taxId: e.taxId ?? "",
565
566
  taxCountry: e.taxCountry ?? ""
566
- }), [m, h] = x({ pickupPostalCode: e.pickupPostalCode ?? "" }), [g, S] = x(null), [C, w] = x(null), [T, ne] = x("manual"), [D, O] = x(!1), [A, N] = x(""), [P, re] = x(""), [z, ie] = x(""), [ae, U] = x(null), [q, J] = x(!1), Y = ae ?? {
567
+ }), [m, h] = C({ pickupPostalCode: e.pickupPostalCode ?? "" }), { locations: g } = b(), [w, T] = C(null), [E, D] = C(null), [O, A] = C("manual"), [j, N] = C(!1), [I, ne] = C(""), [L, H] = C(""), [U, re] = C(""), [ie, Y] = C(null), [oe, se] = C(!1), X = ie ?? {
567
568
  verificationMethod: e.verificationMethod,
568
569
  verificationRequestedAt: e.verificationRequestedAt,
569
570
  verificationStatus: e.verificationStatus,
570
571
  verificationRequestNotes: e.verificationRequestNotes,
571
572
  verificationRejectedReason: e.verificationRejectedReason
572
- }, X = [];
573
- i.contactEmail.trim() ? K(i.contactEmail) || X.push(r("devportal.contactEmailInvalid", "Contact email must be valid")) : X.push(r("devportal.contactEmailRequired", "Contact email is required")), i.supportEmail.trim() && !K(i.supportEmail) && X.push(r("devportal.supportEmailInvalid", "Support email must be valid")), i.websiteUrl.trim() ? G(i.websiteUrl) || X.push(r("devportal.websiteInvalid", "Website URL must be valid")) : X.push(r("devportal.websiteRequired", "Website URL is required")), o.legalEntityName.trim() || X.push(r("devportal.legalEntityNameRequired", "Legal entity name is required")), o.legalEntityType.trim() || X.push(r("devportal.legalEntityTypeRequired", "Entity type is required")), f.taxId.trim() || X.push(r("devportal.taxIdRequired", "Tax ID is required")), f.taxCountry.trim() ? /^[A-Za-z]{2}$/.test(f.taxCountry.trim()) || X.push(r("devportal.taxCountryInvalid", "Tax country must be a 2-letter code")) : X.push(r("devportal.taxCountryRequired", "Tax country is required"));
574
- let Z = [];
575
- T === "domain" && !W(z.trim()) && Z.push(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com")), T === "document" && !G(P.trim()) && Z.push(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://")), T === "manual" && !A.trim() && Z.push(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
576
- let oe = X.length === 0 && Z.length === 0 && !q && n, [Q, { loading: $ }] = l({ refetchQueries: ["GetOrganization"] }), [se, { loading: ce }] = s({ refetchQueries: ["GetOrganization"] }), [le, { loading: ue }] = c({ refetchQueries: ["GetOrganization"] });
577
- b(() => {
573
+ }, Z = [];
574
+ i.contactEmail.trim() ? ae(i.contactEmail) || Z.push(r("devportal.contactEmailInvalid", "Contact email must be valid")) : Z.push(r("devportal.contactEmailRequired", "Contact email is required")), i.supportEmail.trim() && !ae(i.supportEmail) && Z.push(r("devportal.supportEmailInvalid", "Support email must be valid")), i.websiteUrl.trim() ? J(i.websiteUrl) || Z.push(r("devportal.websiteInvalid", "Website URL must be valid")) : Z.push(r("devportal.websiteRequired", "Website URL is required")), o.legalEntityName.trim() || Z.push(r("devportal.legalEntityNameRequired", "Legal entity name is required")), o.legalEntityType.trim() || Z.push(r("devportal.legalEntityTypeRequired", "Entity type is required")), f.taxId.trim() || Z.push(r("devportal.taxIdRequired", "Tax ID is required")), f.taxCountry.trim() ? /^[A-Za-z]{2}$/.test(f.taxCountry.trim()) || Z.push(r("devportal.taxCountryInvalid", "Tax country must be a 2-letter code")) : Z.push(r("devportal.taxCountryRequired", "Tax country is required"));
575
+ let Q = [];
576
+ O === "domain" && !q(U.trim()) && Q.push(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com")), O === "document" && !J(L.trim()) && Q.push(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://")), O === "manual" && !I.trim() && Q.push(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
577
+ let ce = Z.length === 0 && Q.length === 0 && !oe && n, [le, { loading: $ }] = l({ refetchQueries: ["GetOrganization"] }), [ue, { loading: de }] = s({ refetchQueries: ["GetOrganization"] }), [fe, { loading: pe }] = c({ refetchQueries: ["GetOrganization"] });
578
+ S(() => {
578
579
  a({
579
580
  name: e.name,
580
581
  description: e.description ?? "",
@@ -590,17 +591,17 @@ var q = {
590
591
  taxId: e.taxId ?? "",
591
592
  taxCountry: e.taxCountry ?? ""
592
593
  }), h({ pickupPostalCode: e.pickupPostalCode ?? "" });
593
- }, [e.id]), b(() => {
594
- e.id && B({
594
+ }, [e.id]), S(() => {
595
+ e.id && W({
595
596
  gateway: "global",
596
- query: V,
597
+ query: G,
597
598
  variables: { id: e.id }
598
- }).then((e) => U(e.data?.developerOrganization ?? null)).catch(() => U(null));
599
- }, [e.id, D]);
600
- let de = async () => {
601
- w(null), S(null);
599
+ }).then((e) => Y(e.data?.developerOrganization ?? null)).catch(() => Y(null));
600
+ }, [e.id, j]);
601
+ let me = async () => {
602
+ D(null), T(null);
602
603
  try {
603
- await Q({ variables: {
604
+ await le({ variables: {
604
605
  id: e.id,
605
606
  input: {
606
607
  name: i.name.trim() || void 0,
@@ -611,66 +612,66 @@ var q = {
611
612
  logoUrl: i.logoUrl.trim() || null,
612
613
  bannerUrl: i.bannerUrl.trim() || null
613
614
  }
614
- } }), S(r("devportal.organizationUpdated", "Organization details updated"));
615
+ } }), T(r("devportal.organizationUpdated", "Organization details updated"));
615
616
  } catch (e) {
616
- w(e instanceof Error ? e.message : r("devportal.failedToUpdateOrganization", "Failed to update organization"));
617
+ D(e instanceof Error ? e.message : r("devportal.failedToUpdateOrganization", "Failed to update organization"));
617
618
  }
618
- }, fe = async () => {
619
- w(null), S(null);
619
+ }, he = async () => {
620
+ D(null), T(null);
620
621
  try {
621
- await se({ variables: {
622
+ await ue({ variables: {
622
623
  id: e.id,
623
624
  input: {
624
625
  legalEntityName: o.legalEntityName.trim() || null,
625
626
  legalEntityType: o.legalEntityType.trim() || null
626
627
  }
627
- } }), S(r("devportal.legalInfoUpdated", "Legal information updated"));
628
+ } }), T(r("devportal.legalInfoUpdated", "Legal information updated"));
628
629
  } catch (e) {
629
- w(e instanceof Error ? e.message : r("devportal.failedToUpdateLegalInfo", "Failed to update legal information"));
630
+ D(e instanceof Error ? e.message : r("devportal.failedToUpdateLegalInfo", "Failed to update legal information"));
630
631
  }
631
- }, pe = async () => {
632
- w(null), S(null);
632
+ }, ge = async () => {
633
+ D(null), T(null);
633
634
  try {
634
- await le({ variables: {
635
+ await fe({ variables: {
635
636
  id: e.id,
636
637
  input: {
637
638
  taxId: f.taxId.trim() || null,
638
639
  taxCountry: f.taxCountry.trim() || null
639
640
  }
640
- } }), S(r("devportal.taxInfoUpdated", "Tax information updated"));
641
+ } }), T(r("devportal.taxInfoUpdated", "Tax information updated"));
641
642
  } catch (e) {
642
- w(e instanceof Error ? e.message : r("devportal.failedToUpdateTaxInfo", "Failed to update tax information"));
643
+ D(e instanceof Error ? e.message : r("devportal.failedToUpdateTaxInfo", "Failed to update tax information"));
643
644
  }
644
- }, me = async () => {
645
- w(null), S(null);
645
+ }, _e = async () => {
646
+ D(null), T(null);
646
647
  try {
647
- await Q({ variables: {
648
+ await le({ variables: {
648
649
  id: e.id,
649
650
  input: { pickupPostalCode: m.pickupPostalCode.trim() || null }
650
- } }), S(r("devportal.fulfillmentInfoUpdated", "Fulfillment settings updated"));
651
+ } }), T(r("devportal.fulfillmentInfoUpdated", "Fulfillment settings updated"));
651
652
  } catch (e) {
652
- w(e instanceof Error ? e.message : r("devportal.failedToUpdateFulfillmentInfo", "Failed to update fulfillment settings"));
653
+ D(e instanceof Error ? e.message : r("devportal.failedToUpdateFulfillmentInfo", "Failed to update fulfillment settings"));
653
654
  }
654
655
  };
655
- return /* @__PURE__ */ L("div", {
656
+ return /* @__PURE__ */ B("div", {
656
657
  className: "space-y-6 max-w-2xl",
657
658
  children: [
658
- C && /* @__PURE__ */ I("div", {
659
+ E && /* @__PURE__ */ z("div", {
659
660
  className: "rounded-md border border-status-error-bg bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text",
660
- children: C
661
+ children: E
661
662
  }),
662
- g && /* @__PURE__ */ I("div", {
663
+ w && /* @__PURE__ */ z("div", {
663
664
  className: "rounded-md border border-status-success-bg bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text",
664
- children: g
665
+ children: w
665
666
  }),
666
- /* @__PURE__ */ I(d, {
667
+ /* @__PURE__ */ z(d, {
667
668
  title: r("devportal.organizationDetails", "Organization Details"),
668
- children: /* @__PURE__ */ L("div", {
669
+ children: /* @__PURE__ */ B("div", {
669
670
  className: "space-y-4",
670
671
  children: [
671
- /* @__PURE__ */ L("div", {
672
+ /* @__PURE__ */ B("div", {
672
673
  className: "grid gap-4 sm:grid-cols-2",
673
- children: [/* @__PURE__ */ I(v, {
674
+ children: [/* @__PURE__ */ z(v, {
674
675
  label: r("devportal.organizationName", "Organization Name"),
675
676
  value: i.name,
676
677
  onChange: (e) => a((t) => ({
@@ -679,14 +680,14 @@ var q = {
679
680
  })),
680
681
  disabled: !n,
681
682
  required: !0
682
- }), /* @__PURE__ */ I(v, {
683
+ }), /* @__PURE__ */ z(v, {
683
684
  label: r("devportal.slug", "Slug"),
684
685
  value: e.slug,
685
686
  disabled: !0,
686
687
  hint: r("devportal.slugReadOnly", "Slug cannot be changed here")
687
688
  })]
688
689
  }),
689
- /* @__PURE__ */ I(y, {
690
+ /* @__PURE__ */ z(ee, {
690
691
  label: r("devportal.description", "Description"),
691
692
  value: i.description,
692
693
  onChange: (e) => a((t) => ({
@@ -696,10 +697,10 @@ var q = {
696
697
  disabled: !n,
697
698
  rows: 4
698
699
  }),
699
- /* @__PURE__ */ L("div", {
700
+ /* @__PURE__ */ B("div", {
700
701
  className: "grid gap-4 sm:grid-cols-2",
701
702
  children: [
702
- /* @__PURE__ */ I(v, {
703
+ /* @__PURE__ */ z(v, {
703
704
  label: r("devportal.website", "Website"),
704
705
  type: "url",
705
706
  value: i.websiteUrl,
@@ -709,7 +710,7 @@ var q = {
709
710
  })),
710
711
  disabled: !n
711
712
  }),
712
- /* @__PURE__ */ I(v, {
713
+ /* @__PURE__ */ z(v, {
713
714
  label: r("devportal.contactEmail", "Contact Email"),
714
715
  type: "email",
715
716
  value: i.contactEmail,
@@ -719,7 +720,7 @@ var q = {
719
720
  })),
720
721
  disabled: !n
721
722
  }),
722
- /* @__PURE__ */ I(v, {
723
+ /* @__PURE__ */ z(v, {
723
724
  label: r("devportal.supportEmail", "Support Email"),
724
725
  type: "email",
725
726
  value: i.supportEmail,
@@ -729,7 +730,7 @@ var q = {
729
730
  })),
730
731
  disabled: !n
731
732
  }),
732
- /* @__PURE__ */ I(v, {
733
+ /* @__PURE__ */ z(v, {
733
734
  label: r("devportal.logoUrl", "Logo URL"),
734
735
  type: "url",
735
736
  value: i.logoUrl,
@@ -741,7 +742,7 @@ var q = {
741
742
  })
742
743
  ]
743
744
  }),
744
- /* @__PURE__ */ I(v, {
745
+ /* @__PURE__ */ z(v, {
745
746
  label: r("devportal.bannerUrl", "Banner URL"),
746
747
  type: "url",
747
748
  value: i.bannerUrl,
@@ -751,10 +752,10 @@ var q = {
751
752
  })),
752
753
  disabled: !n
753
754
  }),
754
- /* @__PURE__ */ I(_, { items: [
755
+ /* @__PURE__ */ z(_, { items: [
755
756
  {
756
757
  label: r("devportal.organizationId", "Organization ID"),
757
- value: /* @__PURE__ */ I("code", {
758
+ value: /* @__PURE__ */ z("code", {
758
759
  className: "text-xs",
759
760
  children: e.id
760
761
  })
@@ -776,31 +777,31 @@ var q = {
776
777
  value: `${(e.platformFeeRate * 100).toFixed(0)}%`
777
778
  }
778
779
  ] }),
779
- /* @__PURE__ */ I("div", {
780
+ /* @__PURE__ */ z("div", {
780
781
  className: "flex justify-end",
781
- children: /* @__PURE__ */ L("button", {
782
+ children: /* @__PURE__ */ B("button", {
782
783
  type: "button",
783
784
  disabled: !n || $,
784
- onClick: () => void de(),
785
+ onClick: () => void me(),
785
786
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50",
786
- children: [$ ? /* @__PURE__ */ I(k, {
787
+ children: [$ ? /* @__PURE__ */ z(M, {
787
788
  size: 14,
788
789
  className: "animate-spin"
789
- }) : /* @__PURE__ */ I(j, { size: 14 }), r("devportal.saveChanges", "Save Changes")]
790
+ }) : /* @__PURE__ */ z(P, { size: 14 }), r("devportal.saveChanges", "Save Changes")]
790
791
  })
791
792
  })
792
793
  ]
793
794
  })
794
795
  }),
795
- /* @__PURE__ */ I(d, {
796
+ /* @__PURE__ */ z(d, {
796
797
  title: r("devportal.legalInformation", "Legal Information"),
797
- children: /* @__PURE__ */ L("div", {
798
+ children: /* @__PURE__ */ B("div", {
798
799
  className: "space-y-4",
799
800
  children: [
800
- /* @__PURE__ */ L("div", {
801
+ /* @__PURE__ */ B("div", {
801
802
  className: "grid gap-4 sm:grid-cols-2",
802
803
  children: [
803
- /* @__PURE__ */ I(v, {
804
+ /* @__PURE__ */ z(v, {
804
805
  label: r("devportal.legalEntityName", "Legal Entity Name"),
805
806
  value: o.legalEntityName,
806
807
  onChange: (e) => u((t) => ({
@@ -809,7 +810,7 @@ var q = {
809
810
  })),
810
811
  disabled: !n
811
812
  }),
812
- /* @__PURE__ */ I(v, {
813
+ /* @__PURE__ */ z(v, {
813
814
  label: r("devportal.entityType", "Entity Type"),
814
815
  value: o.legalEntityType,
815
816
  onChange: (e) => u((t) => ({
@@ -818,7 +819,7 @@ var q = {
818
819
  })),
819
820
  disabled: !n
820
821
  }),
821
- /* @__PURE__ */ I(v, {
822
+ /* @__PURE__ */ z(v, {
822
823
  label: r("devportal.taxId", "Tax ID"),
823
824
  value: f.taxId,
824
825
  onChange: (e) => p((t) => ({
@@ -827,7 +828,7 @@ var q = {
827
828
  })),
828
829
  disabled: !n
829
830
  }),
830
- /* @__PURE__ */ I(v, {
831
+ /* @__PURE__ */ z(v, {
831
832
  label: r("devportal.taxCountry", "Tax Country"),
832
833
  value: f.taxCountry,
833
834
  onChange: (e) => p((t) => ({
@@ -838,37 +839,37 @@ var q = {
838
839
  })
839
840
  ]
840
841
  }),
841
- /* @__PURE__ */ I(_, { items: [{
842
+ /* @__PURE__ */ z(_, { items: [{
842
843
  label: r("devportal.taxForm", "Tax Form"),
843
844
  value: e.taxFormType || r("devportal.notSubmitted", "Not submitted")
844
845
  }, {
845
846
  label: r("devportal.taxFormStatus", "Tax Form Status"),
846
- value: e.taxFormType ? e.taxFormVerified ? /* @__PURE__ */ L("span", {
847
+ value: e.taxFormType ? e.taxFormVerified ? /* @__PURE__ */ B("span", {
847
848
  className: "text-status-success-text flex items-center gap-1",
848
849
  children: [
849
- /* @__PURE__ */ I(E, { size: 14 }),
850
+ /* @__PURE__ */ z(k, { size: 14 }),
850
851
  " ",
851
852
  r("devportal.verified", "Verified")
852
853
  ]
853
854
  }) : r("devportal.pendingVerification", "Pending verification") : r("devportal.notSubmitted", "Not submitted")
854
855
  }] }),
855
- /* @__PURE__ */ L("div", {
856
+ /* @__PURE__ */ B("div", {
856
857
  className: "flex justify-end gap-2",
857
- children: [/* @__PURE__ */ L("button", {
858
+ children: [/* @__PURE__ */ B("button", {
858
859
  type: "button",
859
- disabled: !n || ce,
860
- onClick: () => void fe(),
860
+ disabled: !n || de,
861
+ onClick: () => void he(),
861
862
  className: "inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken disabled:opacity-50",
862
- children: [ce ? /* @__PURE__ */ I(k, {
863
+ children: [de ? /* @__PURE__ */ z(M, {
863
864
  size: 14,
864
865
  className: "animate-spin"
865
866
  }) : null, r("devportal.saveLegalInfo", "Save Legal Info")]
866
- }), /* @__PURE__ */ L("button", {
867
+ }), /* @__PURE__ */ B("button", {
867
868
  type: "button",
868
- disabled: !n || ue,
869
- onClick: () => void pe(),
869
+ disabled: !n || pe,
870
+ onClick: () => void ge(),
870
871
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50",
871
- children: [ue ? /* @__PURE__ */ I(k, {
872
+ children: [pe ? /* @__PURE__ */ z(M, {
872
873
  size: 14,
873
874
  className: "animate-spin"
874
875
  }) : null, r("devportal.saveTaxInfo", "Save Tax Info")]
@@ -877,24 +878,36 @@ var q = {
877
878
  ]
878
879
  })
879
880
  }),
880
- e.kind === "PHYSICAL" && /* @__PURE__ */ I(d, {
881
+ e.kind === "PHYSICAL" && /* @__PURE__ */ z(d, {
881
882
  title: r("devportal.fulfillment", "Fulfillment"),
882
- children: /* @__PURE__ */ L("div", {
883
+ children: /* @__PURE__ */ B("div", {
883
884
  className: "space-y-4",
884
- children: [/* @__PURE__ */ I(v, {
885
+ children: [g.length > 0 ? /* @__PURE__ */ z(y, {
885
886
  label: r("devportal.pickupPostalCode", "Pickup Pincode"),
886
887
  value: m.pickupPostalCode,
887
888
  onChange: (e) => h({ pickupPostalCode: e.target.value }),
888
889
  disabled: !n,
890
+ placeholder: r("devportal.pickupPostalCodeUseBilling", "Use billing account address"),
891
+ options: g.map((e) => ({
892
+ value: e.postalCode,
893
+ label: `${e.label} — ${e.postalCode}`
894
+ })),
895
+ error: m.pickupPostalCode && !g.some((e) => e.postalCode === m.pickupPostalCode) ? r("devportal.pickupPostalCodeNotRegistered", "This pincode isn't a registered pickup location — orders may fail to ship. Pick one below.") : void 0,
889
896
  hint: r("devportal.pickupPostalCodeHint", "The postal code your physical orders actually ship from — used to quote real carrier shipping rates. If left blank, we fall back to your linked billing account's address.")
890
- }), /* @__PURE__ */ I("div", {
897
+ }) : /* @__PURE__ */ z(v, {
898
+ label: r("devportal.pickupPostalCode", "Pickup Pincode"),
899
+ value: m.pickupPostalCode,
900
+ onChange: (e) => h({ pickupPostalCode: e.target.value }),
901
+ disabled: !n,
902
+ hint: r("devportal.pickupPostalCodeHintFallback", "The postal code your physical orders actually ship from — used to quote real carrier shipping rates. If left blank, we fall back to your linked billing account's address. (Live pickup-location list unavailable — enter your pincode manually.)")
903
+ }), /* @__PURE__ */ z("div", {
891
904
  className: "flex justify-end",
892
- children: /* @__PURE__ */ L("button", {
905
+ children: /* @__PURE__ */ B("button", {
893
906
  type: "button",
894
907
  disabled: !n || $,
895
- onClick: () => void me(),
908
+ onClick: () => void _e(),
896
909
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50",
897
- children: [$ ? /* @__PURE__ */ I(k, {
910
+ children: [$ ? /* @__PURE__ */ z(M, {
898
911
  size: 14,
899
912
  className: "animate-spin"
900
913
  }) : null, r("devportal.saveFulfillmentInfo", "Save Fulfillment Settings")]
@@ -902,115 +915,115 @@ var q = {
902
915
  })]
903
916
  })
904
917
  }),
905
- /* @__PURE__ */ L(d, {
918
+ /* @__PURE__ */ B(d, {
906
919
  title: r("devportal.verificationStatus", "Verification Status"),
907
- children: [/* @__PURE__ */ I(_, { items: [{
920
+ children: [/* @__PURE__ */ z(_, { items: [{
908
921
  label: r("devportal.verifiedLabel", "Verified"),
909
- value: Y.verificationStatus === "VERIFIED" ? /* @__PURE__ */ L("span", {
922
+ value: X.verificationStatus === "VERIFIED" ? /* @__PURE__ */ B("span", {
910
923
  className: "text-status-success-text flex items-center gap-1",
911
924
  children: [
912
- /* @__PURE__ */ I(E, { size: 14 }),
925
+ /* @__PURE__ */ z(k, { size: 14 }),
913
926
  " ",
914
927
  r("devportal.verifiedVia", "Verified via"),
915
928
  " ",
916
- Y.verificationMethod
929
+ X.verificationMethod
917
930
  ]
918
- }) : Y.verificationStatus === "PENDING" ? r("devportal.pendingVerification", "Pending verification") : Y.verificationStatus === "REJECTED" ? r("devportal.verificationRejected", "Rejected") : r("devportal.notVerified", "Not verified")
931
+ }) : X.verificationStatus === "PENDING" ? r("devportal.pendingVerification", "Pending verification") : X.verificationStatus === "REJECTED" ? r("devportal.verificationRejected", "Rejected") : r("devportal.notVerified", "Not verified")
919
932
  }, {
920
933
  label: r("devportal.certifiedLabel", "Certified"),
921
- value: e.isCertified ? /* @__PURE__ */ L("span", {
934
+ value: e.isCertified ? /* @__PURE__ */ B("span", {
922
935
  className: "text-accent-blue flex items-center gap-1",
923
936
  children: [
924
- /* @__PURE__ */ I(M, { size: 14 }),
937
+ /* @__PURE__ */ z(F, { size: 14 }),
925
938
  " ",
926
939
  r("devportal.certifiedUntil", "Certified until"),
927
940
  " ",
928
941
  e.certificationExpiry ? new Date(e.certificationExpiry).toLocaleDateString() : "N/A"
929
942
  ]
930
943
  }) : r("devportal.notCertified", "Not certified")
931
- }] }), Y.verificationStatus !== "VERIFIED" && /* @__PURE__ */ I("div", {
944
+ }] }), X.verificationStatus !== "VERIFIED" && /* @__PURE__ */ z("div", {
932
945
  className: "mt-4 rounded-md border border-border-subtle p-4 space-y-3",
933
- children: D ? /* @__PURE__ */ L("p", {
946
+ children: j ? /* @__PURE__ */ B("p", {
934
947
  className: "text-sm text-status-success-text flex items-center gap-2",
935
- children: [/* @__PURE__ */ I(E, { size: 14 }), r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")]
936
- }) : /* @__PURE__ */ L(F, { children: [
937
- /* @__PURE__ */ I("p", {
948
+ children: [/* @__PURE__ */ z(k, { size: 14 }), r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")]
949
+ }) : /* @__PURE__ */ B(R, { children: [
950
+ /* @__PURE__ */ z("p", {
938
951
  className: "text-sm text-text-secondary",
939
952
  children: r("devportal.requestVerificationHint", "Get your organization verified to build trust with users. Choose a verification method:")
940
953
  }),
941
- Y.verificationStatus === "PENDING" && /* @__PURE__ */ L("div", {
954
+ X.verificationStatus === "PENDING" && /* @__PURE__ */ B("div", {
942
955
  className: "rounded-md border border-border-subtle bg-bg-sunken/40 p-3 text-sm text-text-secondary",
943
956
  children: [
944
957
  r("devportal.pendingVerification", "Pending verification"),
945
- Y.verificationMethod ? ` · ${Y.verificationMethod}` : "",
946
- Y.verificationRequestNotes ? ` · ${Y.verificationRequestNotes}` : ""
958
+ X.verificationMethod ? ` · ${X.verificationMethod}` : "",
959
+ X.verificationRequestNotes ? ` · ${X.verificationRequestNotes}` : ""
947
960
  ]
948
961
  }),
949
- Y.verificationStatus === "REJECTED" && Y.verificationRejectedReason && /* @__PURE__ */ I("div", {
962
+ X.verificationStatus === "REJECTED" && X.verificationRejectedReason && /* @__PURE__ */ z("div", {
950
963
  className: "rounded-md border border-status-error-border bg-status-error-bg-subtle p-3 text-sm text-status-error-text",
951
- children: Y.verificationRejectedReason
964
+ children: X.verificationRejectedReason
952
965
  }),
953
- X.length > 0 && /* @__PURE__ */ L("div", {
966
+ Z.length > 0 && /* @__PURE__ */ B("div", {
954
967
  className: "rounded-md border border-border-subtle bg-bg-sunken/40 p-3 text-sm text-text-secondary",
955
- children: [/* @__PURE__ */ I("div", {
968
+ children: [/* @__PURE__ */ z("div", {
956
969
  className: "font-medium text-text-primary",
957
970
  children: r("devportal.completeBeforeVerification", "Complete these details before submitting for review")
958
- }), /* @__PURE__ */ I("ul", {
971
+ }), /* @__PURE__ */ z("ul", {
959
972
  className: "mt-2 list-disc pl-5 space-y-1",
960
- children: X.map((e) => /* @__PURE__ */ I("li", { children: e }, e))
973
+ children: Z.map((e) => /* @__PURE__ */ z("li", { children: e }, e))
961
974
  })]
962
975
  }),
963
- Y.verificationStatus !== "PENDING" && /* @__PURE__ */ L(F, { children: [
964
- /* @__PURE__ */ I("div", {
976
+ X.verificationStatus !== "PENDING" && /* @__PURE__ */ B(R, { children: [
977
+ /* @__PURE__ */ z("div", {
965
978
  className: "flex gap-2 flex-wrap",
966
979
  children: [
967
980
  "domain",
968
981
  "document",
969
982
  "manual"
970
- ].map((e) => /* @__PURE__ */ I("button", {
983
+ ].map((e) => /* @__PURE__ */ z("button", {
971
984
  type: "button",
972
- onClick: () => ne(e),
973
- className: `rounded-md border px-3 py-1 text-xs font-medium transition-colors ${T === e ? "bg-action-primary-bg text-action-primary-text border-primary" : "border-border-subtle hover:bg-bg-sunken"}`,
985
+ onClick: () => A(e),
986
+ className: `rounded-md border px-3 py-1 text-xs font-medium transition-colors ${O === e ? "bg-action-primary-bg text-action-primary-text border-primary" : "border-border-subtle hover:bg-bg-sunken"}`,
974
987
  children: e === "domain" ? r("devportal.domainVerification", "Domain") : e === "document" ? r("devportal.documentVerification", "Document") : r("devportal.manualVerification", "Manual review")
975
988
  }, e))
976
989
  }),
977
- T === "domain" ? /* @__PURE__ */ I(v, {
990
+ O === "domain" ? /* @__PURE__ */ z(v, {
978
991
  label: r("devportal.domainVerification", "Domain"),
979
- value: z,
980
- onChange: (e) => ie(e.target.value),
992
+ value: U,
993
+ onChange: (e) => re(e.target.value),
981
994
  placeholder: "example.com"
982
- }) : T === "document" ? /* @__PURE__ */ I(v, {
995
+ }) : O === "document" ? /* @__PURE__ */ z(v, {
983
996
  label: r("devportal.evidenceUrl", "Evidence URL"),
984
- value: P,
985
- onChange: (e) => re(e.target.value),
997
+ value: L,
998
+ onChange: (e) => H(e.target.value),
986
999
  placeholder: "https://..."
987
1000
  }) : null,
988
- /* @__PURE__ */ I(y, {
1001
+ /* @__PURE__ */ z(ee, {
989
1002
  label: r("devportal.notes", "Notes"),
990
- value: A,
991
- onChange: (e) => N(e.target.value),
1003
+ value: I,
1004
+ onChange: (e) => ne(e.target.value),
992
1005
  placeholder: "What should reviewers validate?"
993
1006
  }),
994
- /* @__PURE__ */ L("button", {
1007
+ /* @__PURE__ */ B("button", {
995
1008
  type: "button",
996
- disabled: !oe,
1009
+ disabled: !ce,
997
1010
  onClick: () => void (async () => {
998
- let t = z.trim(), n = P.trim(), a = A.trim();
999
- if (T === "domain" && !W(t)) {
1000
- w(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com"));
1011
+ let t = U.trim(), n = L.trim(), a = I.trim();
1012
+ if (O === "domain" && !q(t)) {
1013
+ D(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com"));
1001
1014
  return;
1002
1015
  }
1003
- if (T === "document" && !G(n)) {
1004
- w(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://"));
1016
+ if (O === "document" && !J(n)) {
1017
+ D(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://"));
1005
1018
  return;
1006
1019
  }
1007
- if (T === "manual" && !a) {
1008
- w(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
1020
+ if (O === "manual" && !a) {
1021
+ D(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
1009
1022
  return;
1010
1023
  }
1011
- w(null), S(null), J(!0);
1024
+ D(null), T(null), se(!0);
1012
1025
  try {
1013
- await Q({ variables: {
1026
+ await le({ variables: {
1014
1027
  id: e.id,
1015
1028
  input: {
1016
1029
  name: i.name.trim() || void 0,
@@ -1021,47 +1034,47 @@ var q = {
1021
1034
  logoUrl: i.logoUrl.trim() || null,
1022
1035
  bannerUrl: i.bannerUrl.trim() || null
1023
1036
  }
1024
- } }), await se({ variables: {
1037
+ } }), await ue({ variables: {
1025
1038
  id: e.id,
1026
1039
  input: {
1027
1040
  legalEntityName: o.legalEntityName.trim() || null,
1028
1041
  legalEntityType: o.legalEntityType.trim() || null
1029
1042
  }
1030
- } }), await le({ variables: {
1043
+ } }), await fe({ variables: {
1031
1044
  id: e.id,
1032
1045
  input: {
1033
1046
  taxId: f.taxId.trim() || null,
1034
1047
  taxCountry: f.taxCountry.trim() || null
1035
1048
  }
1036
1049
  } });
1037
- let s = await B({
1050
+ let s = await W({
1038
1051
  gateway: "global",
1039
- query: H,
1052
+ query: K,
1040
1053
  variables: {
1041
1054
  id: e.id,
1042
- method: T,
1055
+ method: O,
1043
1056
  notes: a || null,
1044
- evidenceUrl: T === "domain" ? null : n || null,
1045
- domain: T === "domain" && t || null
1057
+ evidenceUrl: O === "domain" ? null : n || null,
1058
+ domain: O === "domain" && t || null
1046
1059
  }
1047
1060
  });
1048
1061
  if (s.errors?.length) throw Error(s.errors[0]?.message || "Verification request failed");
1049
- O(!0), S(r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")), U((await B({
1062
+ N(!0), T(r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")), Y((await W({
1050
1063
  gateway: "global",
1051
- query: V,
1064
+ query: G,
1052
1065
  variables: { id: e.id }
1053
1066
  })).data?.developerOrganization ?? null);
1054
1067
  } catch (e) {
1055
- w(e instanceof Error ? e.message : r("devportal.verificationRequestFailed", "Verification request failed"));
1068
+ D(e instanceof Error ? e.message : r("devportal.verificationRequestFailed", "Verification request failed"));
1056
1069
  } finally {
1057
- J(!1);
1070
+ se(!1);
1058
1071
  }
1059
1072
  })(),
1060
1073
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50",
1061
- children: [q ? /* @__PURE__ */ I(k, {
1074
+ children: [oe ? /* @__PURE__ */ z(M, {
1062
1075
  size: 14,
1063
1076
  className: "animate-spin"
1064
- }) : /* @__PURE__ */ I(M, { size: 14 }), r("devportal.requestVerification", "Request Verification")]
1077
+ }) : /* @__PURE__ */ z(F, { size: 14 }), r("devportal.requestVerification", "Request Verification")]
1065
1078
  })
1066
1079
  ] })
1067
1080
  ] })
@@ -1071,6 +1084,6 @@ var q = {
1071
1084
  });
1072
1085
  };
1073
1086
  //#endregion
1074
- export { J as OrganizationDetailPage };
1087
+ export { oe as OrganizationDetailPage };
1075
1088
 
1076
1089
  //# sourceMappingURL=OrganizationDetailPage.js.map