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