@burdenoff/microfe-devportal 2026.914.6 → 2026.914.7

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