@burdenoff/microfe-devportal 2026.914.6 → 2026.915.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/devportal/components/ReportOrderIssueModal.d.ts +20 -0
  2. package/dist/devportal/components/ReportOrderIssueModal.d.ts.map +1 -0
  3. package/dist/devportal/components/ReportOrderIssueModal.js +157 -0
  4. package/dist/devportal/components/ReportOrderIssueModal.js.map +1 -0
  5. package/dist/devportal/components/index.d.ts +1 -0
  6. package/dist/devportal/components/index.d.ts.map +1 -1
  7. package/dist/devportal/components/index.js +1 -0
  8. package/dist/devportal/hooks/usePackageUpload.d.ts.map +1 -1
  9. package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
  10. package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +1 -1
  11. package/dist/devportal/pages/CreateOrganizationPage.js +11 -2
  12. package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
  13. package/dist/devportal/pages/EditApplicationPage.d.ts.map +1 -1
  14. package/dist/devportal/pages/EditApplicationPage.js +4 -0
  15. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  16. package/dist/devportal/pages/OrganizationDetailPage.d.ts.map +1 -1
  17. package/dist/devportal/pages/OrganizationDetailPage.js +145 -109
  18. package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
  19. package/dist/devportal/pages/PublishPage.d.ts.map +1 -1
  20. package/dist/devportal/pages/PublishPage.js.map +1 -1
  21. package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +1 -1
  22. package/dist/devportal/pages/RevenueDashboardPage.js +478 -258
  23. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  24. package/dist/devportal/pages/SellerItemsPage.d.ts.map +1 -1
  25. package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
  26. package/dist/devportal/pages/SellerOrdersPage.d.ts.map +1 -1
  27. package/dist/devportal/pages/SellerOrdersPage.js +186 -93
  28. package/dist/devportal/pages/SellerOrdersPage.js.map +1 -1
  29. package/dist/devportal/types/index.d.ts +1 -0
  30. package/dist/devportal/types/index.d.ts.map +1 -1
  31. package/dist/devportal/types/index.js.map +1 -1
  32. package/dist/generated/global-operations.d.ts +16 -0
  33. package/dist/generated/global-operations.d.ts.map +1 -1
  34. package/dist/generated/global-operations.js +74 -46
  35. package/dist/generated/global-operations.js.map +1 -1
  36. package/dist/generated/global-types.d.ts +15 -0
  37. package/dist/generated/global-types.d.ts.map +1 -1
  38. package/dist/generated/global-types.js +8 -0
  39. package/dist/generated/global-types.js.map +1 -0
  40. package/package.json +1 -1
@@ -16,11 +16,11 @@ import { AlertCircle as S, AppWindow as C, ArrowRight as w, BarChart3 as T, Buil
16
16
  import { useParams as re } from "react-router";
17
17
  import { Fragment as F, jsx as I, jsxs as L } from "react/jsx-runtime";
18
18
  import { useI18n as R } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { EmphasisPanel as z, NextSteps as B } from "@burdenoff/fe-libs/ui";
20
- import { graphqlFetch as V } from "@burdenoff/fe-libs/shared/graphql";
19
+ import { EmphasisPanel as z, NextSteps as ie } from "@burdenoff/fe-libs/ui";
20
+ import { graphqlFetch as B } from "@burdenoff/fe-libs/shared/graphql";
21
21
  //#region src/devportal/pages/OrganizationDetailPage.tsx
22
- var H = "\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", U = "\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 W(e) {
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) {
24
24
  let t = e;
25
25
  return {
26
26
  id: e.id,
@@ -72,11 +72,12 @@ function W(e) {
72
72
  taxFormVerified: e.taxFormVerified ?? !1,
73
73
  legalEntityName: e.legalEntityName ?? void 0,
74
74
  legalEntityType: e.legalEntityType ?? void 0,
75
+ pickupPostalCode: e.pickupPostalCode ?? void 0,
75
76
  createdAt: e.createdAt,
76
77
  updatedAt: e.updatedAt
77
78
  };
78
79
  }
79
- function G(e) {
80
+ function U(e) {
80
81
  return {
81
82
  id: e.id,
82
83
  organizationId: e.organizationId,
@@ -95,11 +96,11 @@ function G(e) {
95
96
  updatedAt: e.updatedAt
96
97
  };
97
98
  }
98
- function K(e) {
99
+ function W(e) {
99
100
  let t = e.trim().toLowerCase();
100
101
  return /^[a-z0-9.-]+\.[a-z]{2,}$/i.test(t) && !t.includes("@");
101
102
  }
102
- function q(e) {
103
+ function G(e) {
103
104
  try {
104
105
  let t = new URL(e.trim());
105
106
  return t.protocol === "http:" || t.protocol === "https:";
@@ -107,16 +108,16 @@ function q(e) {
107
108
  return !1;
108
109
  }
109
110
  }
110
- function J(e) {
111
+ function K(e) {
111
112
  let t = e.trim();
112
113
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t);
113
114
  }
114
- var Y = {
115
+ var q = {
115
116
  VIEWER: 0,
116
117
  DEVELOPER: 1,
117
118
  ADMIN: 2,
118
119
  OWNER: 3
119
- }, X = () => {
120
+ }, J = () => {
120
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
122
  let n = m(e);
122
123
  return n === e ? t : n;
@@ -151,7 +152,7 @@ var Y = {
151
152
  },
152
153
  skip: !p,
153
154
  fetchPolicy: "cache-and-network"
154
- }), O = (T?.developerOrganization?.members ?? []).map(G), M = (d ? O.find((e) => e.userId === d.id) : void 0)?.role, N = M !== void 0 && Y[M] >= Y.DEVELOPER, F = M !== void 0 && Y[M] >= Y.ADMIN, z = F, V = F, H = v.filter((e) => e.id !== "settings" || F), U = (e) => {
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) => {
155
156
  n?.(`${s}${e}`);
156
157
  };
157
158
  if (b(() => {
@@ -194,24 +195,24 @@ var Y = {
194
195
  children: w?.message || h("devportal.organizationNotFoundDescription", "The organization you're looking for doesn't exist or you don't have access to it.")
195
196
  }),
196
197
  /* @__PURE__ */ I("button", {
197
- onClick: () => U(r(f)),
198
+ onClick: () => H(r(f)),
198
199
  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
200
  children: h("devportal.backToOrganizations", "Back to Organizations")
200
201
  })
201
202
  ]
202
203
  })
203
204
  });
204
- let K = W(T.developerOrganization), q = O, J = E?.applications?.edges?.map((e) => e.node) ?? [];
205
+ let W = ae(T.developerOrganization), G = O, K = E?.applications?.edges?.map((e) => e.node) ?? [];
205
206
  return /* @__PURE__ */ L(u, {
206
- title: K.name,
207
- description: K.description,
207
+ title: W.name,
208
+ description: W.description,
208
209
  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
210
  backLink: `${s}${r(f)}`,
210
211
  backLabel: h("devportal.backToOrganizations", "Back to Organizations"),
211
212
  actions: /* @__PURE__ */ I("div", {
212
213
  className: "flex items-center gap-2",
213
214
  children: z ? /* @__PURE__ */ L("button", {
214
- onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(K.id)}&developerOrgName=${encodeURIComponent(K.name)}`),
215
+ onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(W.id)}&developerOrgName=${encodeURIComponent(W.name)}`),
215
216
  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
217
  children: [/* @__PURE__ */ I(D, { size: 16 }), h("devportal.revenue", "Revenue")]
217
218
  }) : null
@@ -223,7 +224,7 @@ var Y = {
223
224
  className: "-mb-px flex gap-4 overflow-x-auto",
224
225
  role: "tablist",
225
226
  "aria-label": h("devportal.organizationSections", "Organization sections"),
226
- children: H.map((e) => {
227
+ children: V.map((e) => {
227
228
  let n = e.icon;
228
229
  return /* @__PURE__ */ L("button", {
229
230
  id: `organization-tab-${e.id}`,
@@ -237,11 +238,11 @@ var Y = {
237
238
  })
238
239
  })
239
240
  }),
240
- /* @__PURE__ */ I(B, {
241
+ /* @__PURE__ */ I(ie, {
241
242
  className: "mt-6",
242
- storageKey: `devportal-org-${K.id}`,
243
+ storageKey: `devportal-org-${W.id}`,
243
244
  steps: [
244
- ...V ? [{
245
+ ...B ? [{
245
246
  id: "invite-members",
246
247
  label: h("devportal.inviteMembers", "Invite members"),
247
248
  description: h("devportal.orgStepInvite", "Add teammates so they can build alongside you"),
@@ -253,14 +254,14 @@ var Y = {
253
254
  label: h("devportal.createApp", "Create App"),
254
255
  description: h("devportal.orgStepCreateApp", "Build a new application under this organization"),
255
256
  icon: /* @__PURE__ */ I(C, { size: 16 }),
256
- onClick: () => U("/apps/new")
257
+ onClick: () => H("/apps/new")
257
258
  }] : [],
258
259
  ...N && f ? [{
259
260
  id: "list-item",
260
261
  label: h("devportal.listAnItem", "List an Item"),
261
262
  description: h("devportal.orgStepListItem", "List a physical product for sale under this organization"),
262
263
  icon: /* @__PURE__ */ I(A, { size: 16 }),
263
- onClick: () => U("/seller/items/new")
264
+ onClick: () => H("/seller/items/new")
264
265
  }] : [],
265
266
  ...F ? [{
266
267
  id: "settings",
@@ -268,7 +269,7 @@ var Y = {
268
269
  description: h("devportal.orgStepVerifyDesc", "Add a logo and details, then request verification"),
269
270
  icon: /* @__PURE__ */ I(j, { size: 16 }),
270
271
  onClick: () => _("settings"),
271
- done: !!K.isVerified
272
+ done: !!W.isVerified
272
273
  }] : []
273
274
  ]
274
275
  }),
@@ -279,33 +280,33 @@ var Y = {
279
280
  "aria-labelledby": `organization-tab-${g}`,
280
281
  tabIndex: 0,
281
282
  children: [
282
- g === "overview" && /* @__PURE__ */ I(Z, {
283
- org: K,
284
- apps: J,
285
- members: q,
283
+ g === "overview" && /* @__PURE__ */ I(Y, {
284
+ org: W,
285
+ apps: K,
286
+ members: G,
286
287
  canCreateApps: N,
287
288
  canViewRevenue: z,
288
- onNavigate: U,
289
+ onNavigate: H,
289
290
  onShowApps: () => _("apps")
290
291
  }),
291
- g === "apps" && /* @__PURE__ */ I(ie, {
292
- org: K,
293
- apps: J,
294
- onNavigate: U,
292
+ g === "apps" && /* @__PURE__ */ I(X, {
293
+ org: W,
294
+ apps: K,
295
+ onNavigate: H,
295
296
  canCreateApps: N
296
297
  }),
297
- g === "members" && /* @__PURE__ */ I(Q, {
298
- members: q,
299
- onNavigate: U,
300
- orgId: K.id,
301
- canInviteMembers: V
298
+ g === "members" && /* @__PURE__ */ I(Z, {
299
+ members: G,
300
+ onNavigate: H,
301
+ orgId: W.id,
302
+ canInviteMembers: B
302
303
  }),
303
- g === "settings" && F && /* @__PURE__ */ I($, { org: K })
304
+ g === "settings" && F && /* @__PURE__ */ I(oe, { org: W })
304
305
  ]
305
306
  })
306
307
  ]
307
308
  });
308
- }, Z = ({ org: e, apps: t, members: r, canCreateApps: i, canViewRevenue: a, onNavigate: o, onShowApps: s }) => {
309
+ }, Y = ({ org: e, apps: t, members: r, canCreateApps: i, canViewRevenue: a, onNavigate: o, onShowApps: s }) => {
309
310
  let { t: c } = R(), l = (e, t) => {
310
311
  let n = c(e);
311
312
  return n === e ? t : n;
@@ -450,7 +451,7 @@ var Y = {
450
451
  ]
451
452
  })]
452
453
  });
453
- }, ie = ({ org: e, apps: t, onNavigate: r, canCreateApps: i }) => {
454
+ }, X = ({ org: e, apps: t, onNavigate: r, canCreateApps: i }) => {
454
455
  let { t: a } = R(), o = (e, t) => {
455
456
  let n = a(e);
456
457
  return n === e ? t : n;
@@ -489,7 +490,7 @@ var Y = {
489
490
  }) : void 0
490
491
  })]
491
492
  });
492
- }, Q = ({ members: e, onNavigate: n, orgId: r, canInviteMembers: i }) => {
493
+ }, Z = ({ members: e, onNavigate: n, orgId: r, canInviteMembers: i }) => {
493
494
  let { t: a } = R(), o = (e, t) => {
494
495
  let n = a(e);
495
496
  return n === e ? t : n;
@@ -544,7 +545,7 @@ var Y = {
544
545
  ]
545
546
  })]
546
547
  });
547
- }, $ = ({ org: e }) => {
548
+ }, oe = ({ org: e }) => {
548
549
  let { t } = R(), { allowed: n } = ee(te.ORG_UPDATE), r = (e, n) => {
549
550
  let r = t(e);
550
551
  return r === e ? n : r;
@@ -562,17 +563,17 @@ var Y = {
562
563
  }), [f, p] = x({
563
564
  taxId: e.taxId ?? "",
564
565
  taxCountry: e.taxCountry ?? ""
565
- }), [m, h] = x(null), [g, S] = x(null), [C, w] = x("manual"), [T, ne] = x(!1), [D, O] = x(""), [A, N] = x(""), [P, re] = x(""), [z, B] = x(null), [W, G] = x(!1), Y = z ?? {
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 ?? {
566
567
  verificationMethod: e.verificationMethod,
567
568
  verificationRequestedAt: e.verificationRequestedAt,
568
569
  verificationStatus: e.verificationStatus,
569
570
  verificationRequestNotes: e.verificationRequestNotes,
570
571
  verificationRejectedReason: e.verificationRejectedReason
571
572
  }, X = [];
572
- i.contactEmail.trim() ? J(i.contactEmail) || X.push(r("devportal.contactEmailInvalid", "Contact email must be valid")) : X.push(r("devportal.contactEmailRequired", "Contact email is required")), i.supportEmail.trim() && !J(i.supportEmail) && X.push(r("devportal.supportEmailInvalid", "Support email must be valid")), i.websiteUrl.trim() ? q(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
+ 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
574
  let Z = [];
574
- C === "domain" && !K(P.trim()) && Z.push(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com")), C === "document" && !q(A.trim()) && Z.push(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://")), C === "manual" && !D.trim() && Z.push(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
575
- let ie = X.length === 0 && Z.length === 0 && !W && n, [Q, { loading: $ }] = l({ refetchQueries: ["GetOrganization"] }), [ae, { loading: oe }] = s({ refetchQueries: ["GetOrganization"] }), [se, { loading: ce }] = c({ refetchQueries: ["GetOrganization"] });
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"] });
576
577
  b(() => {
577
578
  a({
578
579
  name: e.name,
@@ -588,16 +589,16 @@ var Y = {
588
589
  }), p({
589
590
  taxId: e.taxId ?? "",
590
591
  taxCountry: e.taxCountry ?? ""
591
- });
592
+ }), h({ pickupPostalCode: e.pickupPostalCode ?? "" });
592
593
  }, [e.id]), b(() => {
593
- e.id && V({
594
+ e.id && B({
594
595
  gateway: "global",
595
- query: H,
596
+ query: V,
596
597
  variables: { id: e.id }
597
- }).then((e) => B(e.data?.developerOrganization ?? null)).catch(() => B(null));
598
- }, [e.id, T]);
599
- let le = async () => {
600
- S(null), h(null);
598
+ }).then((e) => U(e.data?.developerOrganization ?? null)).catch(() => U(null));
599
+ }, [e.id, D]);
600
+ let de = async () => {
601
+ w(null), S(null);
601
602
  try {
602
603
  await Q({ variables: {
603
604
  id: e.id,
@@ -610,47 +611,57 @@ var Y = {
610
611
  logoUrl: i.logoUrl.trim() || null,
611
612
  bannerUrl: i.bannerUrl.trim() || null
612
613
  }
613
- } }), h(r("devportal.organizationUpdated", "Organization details updated"));
614
+ } }), S(r("devportal.organizationUpdated", "Organization details updated"));
614
615
  } catch (e) {
615
- S(e instanceof Error ? e.message : r("devportal.failedToUpdateOrganization", "Failed to update organization"));
616
+ w(e instanceof Error ? e.message : r("devportal.failedToUpdateOrganization", "Failed to update organization"));
616
617
  }
617
- }, ue = async () => {
618
- S(null), h(null);
618
+ }, fe = async () => {
619
+ w(null), S(null);
619
620
  try {
620
- await ae({ variables: {
621
+ await se({ variables: {
621
622
  id: e.id,
622
623
  input: {
623
624
  legalEntityName: o.legalEntityName.trim() || null,
624
625
  legalEntityType: o.legalEntityType.trim() || null
625
626
  }
626
- } }), h(r("devportal.legalInfoUpdated", "Legal information updated"));
627
+ } }), S(r("devportal.legalInfoUpdated", "Legal information updated"));
627
628
  } catch (e) {
628
- S(e instanceof Error ? e.message : r("devportal.failedToUpdateLegalInfo", "Failed to update legal information"));
629
+ w(e instanceof Error ? e.message : r("devportal.failedToUpdateLegalInfo", "Failed to update legal information"));
629
630
  }
630
- }, de = async () => {
631
- S(null), h(null);
631
+ }, pe = async () => {
632
+ w(null), S(null);
632
633
  try {
633
- await se({ variables: {
634
+ await le({ variables: {
634
635
  id: e.id,
635
636
  input: {
636
637
  taxId: f.taxId.trim() || null,
637
638
  taxCountry: f.taxCountry.trim() || null
638
639
  }
639
- } }), h(r("devportal.taxInfoUpdated", "Tax information updated"));
640
+ } }), S(r("devportal.taxInfoUpdated", "Tax information updated"));
641
+ } catch (e) {
642
+ w(e instanceof Error ? e.message : r("devportal.failedToUpdateTaxInfo", "Failed to update tax information"));
643
+ }
644
+ }, me = async () => {
645
+ w(null), S(null);
646
+ try {
647
+ await Q({ variables: {
648
+ id: e.id,
649
+ input: { pickupPostalCode: m.pickupPostalCode.trim() || null }
650
+ } }), S(r("devportal.fulfillmentInfoUpdated", "Fulfillment settings updated"));
640
651
  } catch (e) {
641
- S(e instanceof Error ? e.message : r("devportal.failedToUpdateTaxInfo", "Failed to update tax information"));
652
+ w(e instanceof Error ? e.message : r("devportal.failedToUpdateFulfillmentInfo", "Failed to update fulfillment settings"));
642
653
  }
643
654
  };
644
655
  return /* @__PURE__ */ L("div", {
645
656
  className: "space-y-6 max-w-2xl",
646
657
  children: [
647
- g && /* @__PURE__ */ I("div", {
658
+ C && /* @__PURE__ */ I("div", {
648
659
  className: "rounded-md border border-status-error-bg bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text",
649
- children: g
660
+ children: C
650
661
  }),
651
- m && /* @__PURE__ */ I("div", {
662
+ g && /* @__PURE__ */ I("div", {
652
663
  className: "rounded-md border border-status-success-bg bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text",
653
- children: m
664
+ children: g
654
665
  }),
655
666
  /* @__PURE__ */ I(d, {
656
667
  title: r("devportal.organizationDetails", "Organization Details"),
@@ -770,7 +781,7 @@ var Y = {
770
781
  children: /* @__PURE__ */ L("button", {
771
782
  type: "button",
772
783
  disabled: !n || $,
773
- onClick: () => void le(),
784
+ onClick: () => void de(),
774
785
  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",
775
786
  children: [$ ? /* @__PURE__ */ I(k, {
776
787
  size: 14,
@@ -845,19 +856,19 @@ var Y = {
845
856
  className: "flex justify-end gap-2",
846
857
  children: [/* @__PURE__ */ L("button", {
847
858
  type: "button",
848
- disabled: !n || oe,
849
- onClick: () => void ue(),
859
+ disabled: !n || ce,
860
+ onClick: () => void fe(),
850
861
  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",
851
- children: [oe ? /* @__PURE__ */ I(k, {
862
+ children: [ce ? /* @__PURE__ */ I(k, {
852
863
  size: 14,
853
864
  className: "animate-spin"
854
865
  }) : null, r("devportal.saveLegalInfo", "Save Legal Info")]
855
866
  }), /* @__PURE__ */ L("button", {
856
867
  type: "button",
857
- disabled: !n || ce,
858
- onClick: () => void de(),
868
+ disabled: !n || ue,
869
+ onClick: () => void pe(),
859
870
  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",
860
- children: [ce ? /* @__PURE__ */ I(k, {
871
+ children: [ue ? /* @__PURE__ */ I(k, {
861
872
  size: 14,
862
873
  className: "animate-spin"
863
874
  }) : null, r("devportal.saveTaxInfo", "Save Tax Info")]
@@ -866,6 +877,31 @@ var Y = {
866
877
  ]
867
878
  })
868
879
  }),
880
+ e.kind === "PHYSICAL" && /* @__PURE__ */ I(d, {
881
+ title: r("devportal.fulfillment", "Fulfillment"),
882
+ children: /* @__PURE__ */ L("div", {
883
+ className: "space-y-4",
884
+ children: [/* @__PURE__ */ I(v, {
885
+ label: r("devportal.pickupPostalCode", "Pickup Pincode"),
886
+ value: m.pickupPostalCode,
887
+ onChange: (e) => h({ pickupPostalCode: e.target.value }),
888
+ disabled: !n,
889
+ 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", {
891
+ className: "flex justify-end",
892
+ children: /* @__PURE__ */ L("button", {
893
+ type: "button",
894
+ disabled: !n || $,
895
+ onClick: () => void me(),
896
+ 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, {
898
+ size: 14,
899
+ className: "animate-spin"
900
+ }) : null, r("devportal.saveFulfillmentInfo", "Save Fulfillment Settings")]
901
+ })
902
+ })]
903
+ })
904
+ }),
869
905
  /* @__PURE__ */ L(d, {
870
906
  title: r("devportal.verificationStatus", "Verification Status"),
871
907
  children: [/* @__PURE__ */ I(_, { items: [{
@@ -894,7 +930,7 @@ var Y = {
894
930
  }) : r("devportal.notCertified", "Not certified")
895
931
  }] }), Y.verificationStatus !== "VERIFIED" && /* @__PURE__ */ I("div", {
896
932
  className: "mt-4 rounded-md border border-border-subtle p-4 space-y-3",
897
- children: T ? /* @__PURE__ */ L("p", {
933
+ children: D ? /* @__PURE__ */ L("p", {
898
934
  className: "text-sm text-status-success-text flex items-center gap-2",
899
935
  children: [/* @__PURE__ */ I(E, { size: 14 }), r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")]
900
936
  }) : /* @__PURE__ */ L(F, { children: [
@@ -933,46 +969,46 @@ var Y = {
933
969
  "manual"
934
970
  ].map((e) => /* @__PURE__ */ I("button", {
935
971
  type: "button",
936
- onClick: () => w(e),
937
- className: `rounded-md border px-3 py-1 text-xs font-medium transition-colors ${C === e ? "bg-action-primary-bg text-action-primary-text border-primary" : "border-border-subtle hover:bg-bg-sunken"}`,
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"}`,
938
974
  children: e === "domain" ? r("devportal.domainVerification", "Domain") : e === "document" ? r("devportal.documentVerification", "Document") : r("devportal.manualVerification", "Manual review")
939
975
  }, e))
940
976
  }),
941
- C === "domain" ? /* @__PURE__ */ I(v, {
977
+ T === "domain" ? /* @__PURE__ */ I(v, {
942
978
  label: r("devportal.domainVerification", "Domain"),
943
- value: P,
944
- onChange: (e) => re(e.target.value),
979
+ value: z,
980
+ onChange: (e) => ie(e.target.value),
945
981
  placeholder: "example.com"
946
- }) : C === "document" ? /* @__PURE__ */ I(v, {
982
+ }) : T === "document" ? /* @__PURE__ */ I(v, {
947
983
  label: r("devportal.evidenceUrl", "Evidence URL"),
948
- value: A,
949
- onChange: (e) => N(e.target.value),
984
+ value: P,
985
+ onChange: (e) => re(e.target.value),
950
986
  placeholder: "https://..."
951
987
  }) : null,
952
988
  /* @__PURE__ */ I(y, {
953
989
  label: r("devportal.notes", "Notes"),
954
- value: D,
955
- onChange: (e) => O(e.target.value),
990
+ value: A,
991
+ onChange: (e) => N(e.target.value),
956
992
  placeholder: "What should reviewers validate?"
957
993
  }),
958
994
  /* @__PURE__ */ L("button", {
959
995
  type: "button",
960
- disabled: !ie,
996
+ disabled: !oe,
961
997
  onClick: () => void (async () => {
962
- let t = P.trim(), n = A.trim(), a = D.trim();
963
- if (C === "domain" && !K(t)) {
964
- S(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com"));
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"));
965
1001
  return;
966
1002
  }
967
- if (C === "document" && !q(n)) {
968
- S(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://"));
1003
+ if (T === "document" && !G(n)) {
1004
+ w(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://"));
969
1005
  return;
970
1006
  }
971
- if (C === "manual" && !a) {
972
- S(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
1007
+ if (T === "manual" && !a) {
1008
+ w(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
973
1009
  return;
974
1010
  }
975
- S(null), h(null), G(!0);
1011
+ w(null), S(null), J(!0);
976
1012
  try {
977
1013
  await Q({ variables: {
978
1014
  id: e.id,
@@ -985,44 +1021,44 @@ var Y = {
985
1021
  logoUrl: i.logoUrl.trim() || null,
986
1022
  bannerUrl: i.bannerUrl.trim() || null
987
1023
  }
988
- } }), await ae({ variables: {
1024
+ } }), await se({ variables: {
989
1025
  id: e.id,
990
1026
  input: {
991
1027
  legalEntityName: o.legalEntityName.trim() || null,
992
1028
  legalEntityType: o.legalEntityType.trim() || null
993
1029
  }
994
- } }), await se({ variables: {
1030
+ } }), await le({ variables: {
995
1031
  id: e.id,
996
1032
  input: {
997
1033
  taxId: f.taxId.trim() || null,
998
1034
  taxCountry: f.taxCountry.trim() || null
999
1035
  }
1000
1036
  } });
1001
- let s = await V({
1037
+ let s = await B({
1002
1038
  gateway: "global",
1003
- query: U,
1039
+ query: H,
1004
1040
  variables: {
1005
1041
  id: e.id,
1006
- method: C,
1042
+ method: T,
1007
1043
  notes: a || null,
1008
- evidenceUrl: C === "domain" ? null : n || null,
1009
- domain: C === "domain" && t || null
1044
+ evidenceUrl: T === "domain" ? null : n || null,
1045
+ domain: T === "domain" && t || null
1010
1046
  }
1011
1047
  });
1012
1048
  if (s.errors?.length) throw Error(s.errors[0]?.message || "Verification request failed");
1013
- ne(!0), h(r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")), B((await V({
1049
+ O(!0), S(r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")), U((await B({
1014
1050
  gateway: "global",
1015
- query: H,
1051
+ query: V,
1016
1052
  variables: { id: e.id }
1017
1053
  })).data?.developerOrganization ?? null);
1018
1054
  } catch (e) {
1019
- S(e instanceof Error ? e.message : r("devportal.verificationRequestFailed", "Verification request failed"));
1055
+ w(e instanceof Error ? e.message : r("devportal.verificationRequestFailed", "Verification request failed"));
1020
1056
  } finally {
1021
- G(!1);
1057
+ J(!1);
1022
1058
  }
1023
1059
  })(),
1024
1060
  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",
1025
- children: [W ? /* @__PURE__ */ I(k, {
1061
+ children: [q ? /* @__PURE__ */ I(k, {
1026
1062
  size: 14,
1027
1063
  className: "animate-spin"
1028
1064
  }) : /* @__PURE__ */ I(M, { size: 14 }), r("devportal.requestVerification", "Request Verification")]
@@ -1035,6 +1071,6 @@ var Y = {
1035
1071
  });
1036
1072
  };
1037
1073
  //#endregion
1038
- export { X as OrganizationDetailPage };
1074
+ export { J as OrganizationDetailPage };
1039
1075
 
1040
1076
  //# sourceMappingURL=OrganizationDetailPage.js.map