@burdenoff/microfe-devportal 2026.611.1 → 2026.611.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.
- package/dist/devportal/pages/CreateOrganizationPage.js +232 -228
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +232 -176
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/generated/global-operations.js +65 -39
- package/dist/generated/global-operations.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,17 +2,17 @@ import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
|
2
2
|
import { useDevportalEventBus as t } from "../events/index.js";
|
|
3
3
|
import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
|
|
4
4
|
import { InputField as i, SelectField as a, TextareaField as o } from "../components/FormField.js";
|
|
5
|
-
import { useCreateBillingAccountMutation as s, useCreateOrganizationMutation as c } from "../../generated/global-operations.js";
|
|
6
|
-
import { PermissionGuard as
|
|
5
|
+
import { useCreateBillingAccountMutation as s, useCreateOrganizationMutation as c, useLinkDevOrgBillingAccountMutation as l } from "../../generated/global-operations.js";
|
|
6
|
+
import { PermissionGuard as u } from "../components/PermissionGuard.js";
|
|
7
7
|
import "../components/index.js";
|
|
8
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
8
|
+
import { DEVPORTAL_PERMISSIONS as d } from "../constants/permissions.js";
|
|
9
9
|
import "../hooks/index.js";
|
|
10
|
-
import { useState as
|
|
11
|
-
import { useI18n as
|
|
12
|
-
import { Building2 as
|
|
13
|
-
import { Fragment as
|
|
10
|
+
import { useState as f } from "react";
|
|
11
|
+
import { useI18n as p } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
12
|
+
import { Building2 as m, Info as h, X as g } from "lucide-react";
|
|
13
|
+
import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
14
14
|
//#region src/devportal/pages/CreateOrganizationPage.tsx
|
|
15
|
-
var
|
|
15
|
+
var b = [
|
|
16
16
|
{
|
|
17
17
|
value: "FREE",
|
|
18
18
|
label: "Free - Personal projects and testing"
|
|
@@ -29,7 +29,7 @@ var y = [
|
|
|
29
29
|
value: "ENTERPRISE",
|
|
30
30
|
label: "Enterprise - Large organizations, unlimited apps"
|
|
31
31
|
}
|
|
32
|
-
],
|
|
32
|
+
], x = [
|
|
33
33
|
{
|
|
34
34
|
value: "individual",
|
|
35
35
|
label: "Individual / Sole Proprietor"
|
|
@@ -54,7 +54,7 @@ var y = [
|
|
|
54
54
|
value: "other",
|
|
55
55
|
label: "Other"
|
|
56
56
|
}
|
|
57
|
-
],
|
|
57
|
+
], S = [
|
|
58
58
|
{
|
|
59
59
|
value: "US",
|
|
60
60
|
label: "United States"
|
|
@@ -95,11 +95,11 @@ var y = [
|
|
|
95
95
|
value: "NL",
|
|
96
96
|
label: "Netherlands"
|
|
97
97
|
}
|
|
98
|
-
],
|
|
99
|
-
let { navigate:
|
|
100
|
-
let n =
|
|
98
|
+
], C = () => {
|
|
99
|
+
let { navigate: C, basePath: w, currentUser: T } = e(), { t: E } = p(), D = (e, t) => {
|
|
100
|
+
let n = E(e);
|
|
101
101
|
return n === e ? t : n;
|
|
102
|
-
}, [
|
|
102
|
+
}, [O, k] = f({}), [A, j] = f("basic"), [M, { loading: N }] = c(), [P] = s(), [F] = l(), I = t(), [L, R] = f({
|
|
103
103
|
name: "",
|
|
104
104
|
slug: "",
|
|
105
105
|
description: "",
|
|
@@ -116,76 +116,80 @@ var y = [
|
|
|
116
116
|
state: "",
|
|
117
117
|
postalCode: "",
|
|
118
118
|
country: ""
|
|
119
|
-
}),
|
|
120
|
-
|
|
121
|
-
},
|
|
119
|
+
}), z = (e) => {
|
|
120
|
+
C?.(`${w}${e}`);
|
|
121
|
+
}, B = (e) => e.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, ""), V = (e) => {
|
|
122
122
|
let t = e.target.value;
|
|
123
|
-
|
|
123
|
+
R((e) => ({
|
|
124
124
|
...e,
|
|
125
125
|
name: t,
|
|
126
|
-
slug: e.slug ||
|
|
127
|
-
})),
|
|
126
|
+
slug: e.slug || B(t)
|
|
127
|
+
})), O.name && k((e) => ({
|
|
128
128
|
...e,
|
|
129
129
|
name: void 0
|
|
130
130
|
}));
|
|
131
|
-
},
|
|
132
|
-
|
|
131
|
+
}, H = (e, t) => {
|
|
132
|
+
R((n) => ({
|
|
133
133
|
...n,
|
|
134
134
|
[e]: t
|
|
135
|
-
})),
|
|
135
|
+
})), O[e] && k((t) => ({
|
|
136
136
|
...t,
|
|
137
137
|
[e]: void 0
|
|
138
138
|
}));
|
|
139
|
-
}, V = () => {
|
|
140
|
-
let e = {};
|
|
141
|
-
return F.name.trim() ? F.name.length < 2 ? e.name = E("devportal.orgNameTooShort", "Name must be at least 2 characters") : F.name.length > 100 && (e.name = E("devportal.nameTooLong", "Name must be less than 100 characters")) : e.name = E("devportal.orgNameRequired", "Organization name is required"), F.slug.trim() ? /^[a-z0-9-]+$/.test(F.slug) || (e.slug = E("devportal.slugInvalid", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = E("devportal.slugRequired", "Slug is required"), F.contactEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(F.contactEmail) && (e.contactEmail = E("devportal.invalidEmailAddress", "Invalid email address")), F.supportEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(F.supportEmail) && (e.supportEmail = E("devportal.invalidEmailAddress", "Invalid email address")), O(e), Object.keys(e).length === 0;
|
|
142
|
-
}, H = () => {
|
|
143
|
-
V() && A("billing");
|
|
144
139
|
}, U = () => {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
140
|
+
let e = {};
|
|
141
|
+
return L.name.trim() ? L.name.length < 2 ? e.name = D("devportal.orgNameTooShort", "Name must be at least 2 characters") : L.name.length > 100 && (e.name = D("devportal.nameTooLong", "Name must be less than 100 characters")) : e.name = D("devportal.orgNameRequired", "Organization name is required"), L.slug.trim() ? /^[a-z0-9-]+$/.test(L.slug) || (e.slug = D("devportal.slugInvalid", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = D("devportal.slugRequired", "Slug is required"), L.contactEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(L.contactEmail) && (e.contactEmail = D("devportal.invalidEmailAddress", "Invalid email address")), L.supportEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(L.supportEmail) && (e.supportEmail = D("devportal.invalidEmailAddress", "Invalid email address")), k(e), Object.keys(e).length === 0;
|
|
142
|
+
}, W = () => {
|
|
143
|
+
U() && j("billing");
|
|
144
|
+
}, G = () => {
|
|
145
|
+
j("basic");
|
|
146
|
+
}, K = async (e) => {
|
|
147
|
+
if (e.preventDefault(), !U()) {
|
|
148
|
+
j("basic");
|
|
149
149
|
return;
|
|
150
150
|
}
|
|
151
151
|
try {
|
|
152
|
-
let e =
|
|
153
|
-
street:
|
|
154
|
-
city:
|
|
155
|
-
state:
|
|
156
|
-
postalCode:
|
|
157
|
-
country:
|
|
158
|
-
} : void 0, t = await
|
|
159
|
-
name:
|
|
160
|
-
slug:
|
|
161
|
-
description:
|
|
162
|
-
websiteUrl:
|
|
163
|
-
contactEmail:
|
|
164
|
-
supportEmail:
|
|
165
|
-
legalEntityName:
|
|
166
|
-
legalEntityType:
|
|
152
|
+
let e = L.streetAddress || L.city || L.state || L.postalCode || L.country ? {
|
|
153
|
+
street: L.streetAddress || void 0,
|
|
154
|
+
city: L.city || void 0,
|
|
155
|
+
state: L.state || void 0,
|
|
156
|
+
postalCode: L.postalCode || void 0,
|
|
157
|
+
country: L.country || void 0
|
|
158
|
+
} : void 0, t = (await M({ variables: { input: {
|
|
159
|
+
name: L.name,
|
|
160
|
+
slug: L.slug || void 0,
|
|
161
|
+
description: L.description || void 0,
|
|
162
|
+
websiteUrl: L.websiteUrl || void 0,
|
|
163
|
+
contactEmail: L.contactEmail || void 0,
|
|
164
|
+
supportEmail: L.supportEmail || void 0,
|
|
165
|
+
legalEntityName: L.legalEntityName || void 0,
|
|
166
|
+
legalEntityType: L.legalEntityType || void 0,
|
|
167
167
|
legalAddress: e,
|
|
168
|
-
metadata:
|
|
169
|
-
} } });
|
|
170
|
-
if (t
|
|
171
|
-
|
|
172
|
-
organizationId: t
|
|
173
|
-
name:
|
|
168
|
+
metadata: L.tier === "FREE" ? void 0 : { tier: L.tier }
|
|
169
|
+
} } })).data?.createDeveloperOrganization?.id;
|
|
170
|
+
if (t) {
|
|
171
|
+
I.emit("devportal.org.created", {
|
|
172
|
+
organizationId: t,
|
|
173
|
+
name: L.name
|
|
174
174
|
});
|
|
175
175
|
try {
|
|
176
|
-
|
|
177
|
-
name:
|
|
178
|
-
email:
|
|
179
|
-
} } }).
|
|
176
|
+
let e = (await P({ variables: { input: {
|
|
177
|
+
name: L.name,
|
|
178
|
+
email: T?.email ?? ""
|
|
179
|
+
} } })).data?.createBillingAccount?.id;
|
|
180
|
+
e && await F({ variables: {
|
|
181
|
+
organizationId: t,
|
|
182
|
+
billingAccountId: e
|
|
183
|
+
} });
|
|
180
184
|
} catch {}
|
|
181
|
-
|
|
185
|
+
z(`/organizations/${t}`);
|
|
182
186
|
}
|
|
183
187
|
} catch (e) {
|
|
184
188
|
console.error("Failed to create organization:", e);
|
|
185
189
|
}
|
|
186
|
-
},
|
|
187
|
-
|
|
188
|
-
},
|
|
190
|
+
}, q = () => {
|
|
191
|
+
z("/organizations");
|
|
192
|
+
}, J = {
|
|
189
193
|
FREE: {
|
|
190
194
|
apps: 1,
|
|
191
195
|
apiCalls: "100K",
|
|
@@ -215,149 +219,149 @@ var y = [
|
|
|
215
219
|
price: "Custom"
|
|
216
220
|
}
|
|
217
221
|
};
|
|
218
|
-
return /* @__PURE__ */
|
|
219
|
-
permission:
|
|
220
|
-
children: /* @__PURE__ */
|
|
221
|
-
title:
|
|
222
|
-
description:
|
|
223
|
-
backLink: `${
|
|
224
|
-
backLabel:
|
|
225
|
-
children: [/* @__PURE__ */
|
|
222
|
+
return /* @__PURE__ */ v(u, {
|
|
223
|
+
permission: d.ORG_CREATE,
|
|
224
|
+
children: /* @__PURE__ */ y(n, {
|
|
225
|
+
title: D("devportal.createOrganization", "Create Organization"),
|
|
226
|
+
description: D("devportal.createOrganizationDescription", "Set up a developer organization to collaborate with your team"),
|
|
227
|
+
backLink: `${w}/organizations`,
|
|
228
|
+
backLabel: D("devportal.backToOrganizations", "Back to Organizations"),
|
|
229
|
+
children: [/* @__PURE__ */ y("div", {
|
|
226
230
|
className: "flex items-center gap-4 mb-8",
|
|
227
231
|
children: [
|
|
228
|
-
/* @__PURE__ */
|
|
232
|
+
/* @__PURE__ */ y("div", {
|
|
229
233
|
className: "flex items-center gap-2",
|
|
230
|
-
children: [/* @__PURE__ */
|
|
231
|
-
className: `flex h-8 w-8 items-center justify-center rounded-full text-sm font-medium ${
|
|
234
|
+
children: [/* @__PURE__ */ v("div", {
|
|
235
|
+
className: `flex h-8 w-8 items-center justify-center rounded-full text-sm font-medium ${A === "basic" ? "bg-primary text-primary-foreground" : "bg-primary/20 text-primary"}`,
|
|
232
236
|
children: "1"
|
|
233
|
-
}), /* @__PURE__ */
|
|
234
|
-
className: `text-sm font-medium ${
|
|
235
|
-
children:
|
|
237
|
+
}), /* @__PURE__ */ v("span", {
|
|
238
|
+
className: `text-sm font-medium ${A === "basic" ? "text-foreground" : "text-muted-foreground"}`,
|
|
239
|
+
children: D("devportal.basicInfo", "Basic Info")
|
|
236
240
|
})]
|
|
237
241
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
239
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ v("div", { className: "h-px flex-1 bg-border" }),
|
|
243
|
+
/* @__PURE__ */ y("div", {
|
|
240
244
|
className: "flex items-center gap-2",
|
|
241
|
-
children: [/* @__PURE__ */
|
|
242
|
-
className: `flex h-8 w-8 items-center justify-center rounded-full text-sm font-medium ${
|
|
245
|
+
children: [/* @__PURE__ */ v("div", {
|
|
246
|
+
className: `flex h-8 w-8 items-center justify-center rounded-full text-sm font-medium ${A === "billing" ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground"}`,
|
|
243
247
|
children: "2"
|
|
244
|
-
}), /* @__PURE__ */
|
|
245
|
-
className: `text-sm font-medium ${
|
|
246
|
-
children:
|
|
248
|
+
}), /* @__PURE__ */ v("span", {
|
|
249
|
+
className: `text-sm font-medium ${A === "billing" ? "text-foreground" : "text-muted-foreground"}`,
|
|
250
|
+
children: D("devportal.billingAndLegal", "Billing & Legal")
|
|
247
251
|
})]
|
|
248
252
|
})
|
|
249
253
|
]
|
|
250
|
-
}), /* @__PURE__ */
|
|
251
|
-
onSubmit:
|
|
254
|
+
}), /* @__PURE__ */ y("form", {
|
|
255
|
+
onSubmit: K,
|
|
252
256
|
className: "space-y-8 max-w-3xl",
|
|
253
|
-
children: [
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
title:
|
|
256
|
-
description:
|
|
257
|
-
children: /* @__PURE__ */
|
|
257
|
+
children: [A === "basic" && /* @__PURE__ */ y(_, { children: [
|
|
258
|
+
/* @__PURE__ */ v(r, {
|
|
259
|
+
title: D("devportal.organizationDetails", "Organization Details"),
|
|
260
|
+
description: D("devportal.organizationDetailsDescription", "Basic information about your organization"),
|
|
261
|
+
children: /* @__PURE__ */ y("div", {
|
|
258
262
|
className: "space-y-4",
|
|
259
263
|
children: [
|
|
260
|
-
/* @__PURE__ */
|
|
261
|
-
label:
|
|
262
|
-
value:
|
|
263
|
-
onChange:
|
|
264
|
-
placeholder:
|
|
264
|
+
/* @__PURE__ */ v(i, {
|
|
265
|
+
label: D("devportal.organizationName", "Organization Name"),
|
|
266
|
+
value: L.name,
|
|
267
|
+
onChange: V,
|
|
268
|
+
placeholder: D("devportal.organizationNamePlaceholder", "Acme Development"),
|
|
265
269
|
required: !0,
|
|
266
|
-
error:
|
|
267
|
-
hint:
|
|
270
|
+
error: O.name,
|
|
271
|
+
hint: D("devportal.organizationNameHint", "Your organization's display name")
|
|
268
272
|
}),
|
|
269
|
-
/* @__PURE__ */
|
|
270
|
-
label:
|
|
271
|
-
value:
|
|
272
|
-
onChange: (e) =>
|
|
273
|
-
placeholder:
|
|
273
|
+
/* @__PURE__ */ v(i, {
|
|
274
|
+
label: D("devportal.slug", "Slug"),
|
|
275
|
+
value: L.slug,
|
|
276
|
+
onChange: (e) => H("slug", e.target.value.toLowerCase()),
|
|
277
|
+
placeholder: D("devportal.orgSlugPlaceholder", "acme-dev"),
|
|
274
278
|
required: !0,
|
|
275
|
-
error:
|
|
276
|
-
hint:
|
|
279
|
+
error: O.slug,
|
|
280
|
+
hint: D("devportal.slugHint", "URL-friendly identifier (auto-generated from name)")
|
|
277
281
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
279
|
-
label:
|
|
280
|
-
value:
|
|
281
|
-
onChange: (e) =>
|
|
282
|
-
placeholder:
|
|
282
|
+
/* @__PURE__ */ v(o, {
|
|
283
|
+
label: D("devportal.description", "Description"),
|
|
284
|
+
value: L.description,
|
|
285
|
+
onChange: (e) => H("description", e.target.value),
|
|
286
|
+
placeholder: D("devportal.orgDescriptionPlaceholder", "Tell us about your organization..."),
|
|
283
287
|
rows: 3
|
|
284
288
|
}),
|
|
285
|
-
/* @__PURE__ */
|
|
286
|
-
label:
|
|
289
|
+
/* @__PURE__ */ v(i, {
|
|
290
|
+
label: D("devportal.websiteUrl", "Website URL"),
|
|
287
291
|
type: "url",
|
|
288
|
-
value:
|
|
289
|
-
onChange: (e) =>
|
|
292
|
+
value: L.websiteUrl,
|
|
293
|
+
onChange: (e) => H("websiteUrl", e.target.value),
|
|
290
294
|
placeholder: "https://example.com"
|
|
291
295
|
}),
|
|
292
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ y("div", {
|
|
293
297
|
className: "grid gap-4 sm:grid-cols-2",
|
|
294
|
-
children: [/* @__PURE__ */
|
|
295
|
-
label:
|
|
298
|
+
children: [/* @__PURE__ */ v(i, {
|
|
299
|
+
label: D("devportal.contactEmail", "Contact Email"),
|
|
296
300
|
type: "email",
|
|
297
|
-
value:
|
|
298
|
-
onChange: (e) =>
|
|
301
|
+
value: L.contactEmail,
|
|
302
|
+
onChange: (e) => H("contactEmail", e.target.value),
|
|
299
303
|
placeholder: "contact@example.com",
|
|
300
|
-
error:
|
|
301
|
-
}), /* @__PURE__ */
|
|
302
|
-
label:
|
|
304
|
+
error: O.contactEmail
|
|
305
|
+
}), /* @__PURE__ */ v(i, {
|
|
306
|
+
label: D("devportal.supportEmail", "Support Email"),
|
|
303
307
|
type: "email",
|
|
304
|
-
value:
|
|
305
|
-
onChange: (e) =>
|
|
308
|
+
value: L.supportEmail,
|
|
309
|
+
onChange: (e) => H("supportEmail", e.target.value),
|
|
306
310
|
placeholder: "support@example.com",
|
|
307
|
-
error:
|
|
311
|
+
error: O.supportEmail
|
|
308
312
|
})]
|
|
309
313
|
})
|
|
310
314
|
]
|
|
311
315
|
})
|
|
312
316
|
}),
|
|
313
|
-
/* @__PURE__ */
|
|
314
|
-
title:
|
|
315
|
-
description:
|
|
316
|
-
children: /* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ v(r, {
|
|
318
|
+
title: D("devportal.selectPlan", "Select Plan"),
|
|
319
|
+
description: D("devportal.selectPlanDescription", "Choose a plan that fits your needs"),
|
|
320
|
+
children: /* @__PURE__ */ v("div", {
|
|
317
321
|
className: "grid gap-4 sm:grid-cols-2",
|
|
318
|
-
children:
|
|
319
|
-
let t =
|
|
320
|
-
return /* @__PURE__ */
|
|
322
|
+
children: b.map((e) => {
|
|
323
|
+
let t = J[e.value], n = L.tier === e.value;
|
|
324
|
+
return /* @__PURE__ */ y("button", {
|
|
321
325
|
type: "button",
|
|
322
|
-
onClick: () =>
|
|
326
|
+
onClick: () => H("tier", e.value),
|
|
323
327
|
className: `rounded-lg border p-4 text-left transition-colors ${n ? "border-primary bg-primary/5 ring-2 ring-primary" : "hover:border-muted-foreground/50"}`,
|
|
324
|
-
children: [/* @__PURE__ */
|
|
328
|
+
children: [/* @__PURE__ */ y("div", {
|
|
325
329
|
className: "flex items-start justify-between",
|
|
326
|
-
children: [/* @__PURE__ */
|
|
330
|
+
children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
327
331
|
className: "font-medium",
|
|
328
332
|
children: e.value
|
|
329
|
-
}), /* @__PURE__ */
|
|
333
|
+
}), /* @__PURE__ */ v("p", {
|
|
330
334
|
className: "text-sm text-muted-foreground",
|
|
331
335
|
children: t.price
|
|
332
|
-
})] }), /* @__PURE__ */
|
|
336
|
+
})] }), /* @__PURE__ */ v("div", {
|
|
333
337
|
className: `h-4 w-4 rounded-full border-2 ${n ? "border-primary bg-primary" : "border-muted-foreground"}`,
|
|
334
|
-
children: n && /* @__PURE__ */
|
|
338
|
+
children: n && /* @__PURE__ */ v("div", {
|
|
335
339
|
className: "h-full w-full flex items-center justify-center",
|
|
336
|
-
children: /* @__PURE__ */
|
|
340
|
+
children: /* @__PURE__ */ v("div", { className: "h-1.5 w-1.5 rounded-full bg-bg-surface" })
|
|
337
341
|
})
|
|
338
342
|
})]
|
|
339
|
-
}), /* @__PURE__ */
|
|
343
|
+
}), /* @__PURE__ */ y("div", {
|
|
340
344
|
className: "mt-3 grid grid-cols-2 gap-2 text-xs text-muted-foreground",
|
|
341
345
|
children: [
|
|
342
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ y("span", { children: [
|
|
343
347
|
t.apps,
|
|
344
348
|
" ",
|
|
345
|
-
|
|
349
|
+
D("devportal.apps", "apps")
|
|
346
350
|
] }),
|
|
347
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ y("span", { children: [
|
|
348
352
|
t.apiCalls,
|
|
349
353
|
" ",
|
|
350
|
-
|
|
354
|
+
D("devportal.apiCalls", "API calls")
|
|
351
355
|
] }),
|
|
352
|
-
/* @__PURE__ */
|
|
356
|
+
/* @__PURE__ */ y("span", { children: [
|
|
353
357
|
t.storage,
|
|
354
358
|
" ",
|
|
355
|
-
|
|
359
|
+
D("devportal.storage", "storage")
|
|
356
360
|
] }),
|
|
357
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ y("span", { children: [
|
|
358
362
|
t.members,
|
|
359
363
|
" ",
|
|
360
|
-
|
|
364
|
+
D("devportal.members", "members")
|
|
361
365
|
] })
|
|
362
366
|
]
|
|
363
367
|
})]
|
|
@@ -365,132 +369,132 @@ var y = [
|
|
|
365
369
|
})
|
|
366
370
|
})
|
|
367
371
|
}),
|
|
368
|
-
/* @__PURE__ */
|
|
372
|
+
/* @__PURE__ */ y("div", {
|
|
369
373
|
className: "flex items-center justify-end gap-3 border-t pt-6",
|
|
370
|
-
children: [/* @__PURE__ */
|
|
374
|
+
children: [/* @__PURE__ */ y("button", {
|
|
371
375
|
type: "button",
|
|
372
|
-
onClick:
|
|
376
|
+
onClick: q,
|
|
373
377
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",
|
|
374
|
-
children: [/* @__PURE__ */
|
|
375
|
-
}), /* @__PURE__ */
|
|
378
|
+
children: [/* @__PURE__ */ v(g, { size: 16 }), D("devportal.cancel", "Cancel")]
|
|
379
|
+
}), /* @__PURE__ */ v("button", {
|
|
376
380
|
type: "button",
|
|
377
|
-
onClick:
|
|
381
|
+
onClick: W,
|
|
378
382
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",
|
|
379
|
-
children:
|
|
383
|
+
children: D("devportal.continue", "Continue")
|
|
380
384
|
})]
|
|
381
385
|
})
|
|
382
|
-
] }),
|
|
383
|
-
/* @__PURE__ */
|
|
384
|
-
title:
|
|
385
|
-
description:
|
|
386
|
-
children: /* @__PURE__ */
|
|
386
|
+
] }), A === "billing" && /* @__PURE__ */ y(_, { children: [
|
|
387
|
+
/* @__PURE__ */ v(r, {
|
|
388
|
+
title: D("devportal.legalInformation", "Legal Information"),
|
|
389
|
+
description: D("devportal.legalInformationDescription", "Required for payouts and compliance (optional for Free tier)"),
|
|
390
|
+
children: /* @__PURE__ */ y("div", {
|
|
387
391
|
className: "space-y-4",
|
|
388
392
|
children: [
|
|
389
|
-
/* @__PURE__ */
|
|
390
|
-
label:
|
|
391
|
-
value:
|
|
392
|
-
onChange: (e) =>
|
|
393
|
-
placeholder:
|
|
394
|
-
hint:
|
|
393
|
+
/* @__PURE__ */ v(i, {
|
|
394
|
+
label: D("devportal.legalEntityName", "Legal Entity Name"),
|
|
395
|
+
value: L.legalEntityName,
|
|
396
|
+
onChange: (e) => H("legalEntityName", e.target.value),
|
|
397
|
+
placeholder: D("devportal.legalEntityNamePlaceholder", "Acme Inc."),
|
|
398
|
+
hint: D("devportal.legalEntityNameHint", "Your registered business name")
|
|
395
399
|
}),
|
|
396
|
-
/* @__PURE__ */
|
|
400
|
+
/* @__PURE__ */ y("div", {
|
|
397
401
|
className: "grid gap-4 sm:grid-cols-2",
|
|
398
|
-
children: [/* @__PURE__ */
|
|
399
|
-
label:
|
|
400
|
-
value:
|
|
401
|
-
onChange: (e) =>
|
|
402
|
-
options: b,
|
|
403
|
-
placeholder: E("devportal.selectEntityType", "Select entity type")
|
|
404
|
-
}), /* @__PURE__ */ _(a, {
|
|
405
|
-
label: E("devportal.taxCountry", "Tax Country"),
|
|
406
|
-
value: F.taxCountry,
|
|
407
|
-
onChange: (e) => B("taxCountry", e.target.value),
|
|
402
|
+
children: [/* @__PURE__ */ v(a, {
|
|
403
|
+
label: D("devportal.entityType", "Entity Type"),
|
|
404
|
+
value: L.legalEntityType,
|
|
405
|
+
onChange: (e) => H("legalEntityType", e.target.value),
|
|
408
406
|
options: x,
|
|
409
|
-
placeholder:
|
|
407
|
+
placeholder: D("devportal.selectEntityType", "Select entity type")
|
|
408
|
+
}), /* @__PURE__ */ v(a, {
|
|
409
|
+
label: D("devportal.taxCountry", "Tax Country"),
|
|
410
|
+
value: L.taxCountry,
|
|
411
|
+
onChange: (e) => H("taxCountry", e.target.value),
|
|
412
|
+
options: S,
|
|
413
|
+
placeholder: D("devportal.selectCountry", "Select country")
|
|
410
414
|
})]
|
|
411
415
|
}),
|
|
412
|
-
/* @__PURE__ */
|
|
413
|
-
label:
|
|
414
|
-
value:
|
|
415
|
-
onChange: (e) =>
|
|
416
|
+
/* @__PURE__ */ v(i, {
|
|
417
|
+
label: D("devportal.taxIdVatNumber", "Tax ID / VAT Number"),
|
|
418
|
+
value: L.taxId,
|
|
419
|
+
onChange: (e) => H("taxId", e.target.value),
|
|
416
420
|
placeholder: "XX-XXXXXXX",
|
|
417
|
-
hint:
|
|
421
|
+
hint: D("devportal.taxIdHint", "Your business tax identification number")
|
|
418
422
|
})
|
|
419
423
|
]
|
|
420
424
|
})
|
|
421
425
|
}),
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
title:
|
|
424
|
-
description:
|
|
425
|
-
children: /* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ v(r, {
|
|
427
|
+
title: D("devportal.businessAddress", "Business Address"),
|
|
428
|
+
description: D("devportal.businessAddressDescription", "Used for invoicing and legal documents"),
|
|
429
|
+
children: /* @__PURE__ */ y("div", {
|
|
426
430
|
className: "space-y-4",
|
|
427
431
|
children: [
|
|
428
|
-
/* @__PURE__ */
|
|
429
|
-
label:
|
|
430
|
-
value:
|
|
431
|
-
onChange: (e) =>
|
|
432
|
-
placeholder:
|
|
432
|
+
/* @__PURE__ */ v(i, {
|
|
433
|
+
label: D("devportal.streetAddress", "Street Address"),
|
|
434
|
+
value: L.streetAddress,
|
|
435
|
+
onChange: (e) => H("streetAddress", e.target.value),
|
|
436
|
+
placeholder: D("devportal.streetAddressPlaceholder", "123 Main Street")
|
|
433
437
|
}),
|
|
434
|
-
/* @__PURE__ */
|
|
438
|
+
/* @__PURE__ */ y("div", {
|
|
435
439
|
className: "grid gap-4 sm:grid-cols-2",
|
|
436
|
-
children: [/* @__PURE__ */
|
|
437
|
-
label:
|
|
438
|
-
value:
|
|
439
|
-
onChange: (e) =>
|
|
440
|
-
placeholder:
|
|
441
|
-
}), /* @__PURE__ */
|
|
442
|
-
label:
|
|
443
|
-
value:
|
|
444
|
-
onChange: (e) =>
|
|
445
|
-
placeholder:
|
|
440
|
+
children: [/* @__PURE__ */ v(i, {
|
|
441
|
+
label: D("devportal.city", "City"),
|
|
442
|
+
value: L.city,
|
|
443
|
+
onChange: (e) => H("city", e.target.value),
|
|
444
|
+
placeholder: D("devportal.cityPlaceholder", "San Francisco")
|
|
445
|
+
}), /* @__PURE__ */ v(i, {
|
|
446
|
+
label: D("devportal.stateProvince", "State / Province"),
|
|
447
|
+
value: L.state,
|
|
448
|
+
onChange: (e) => H("state", e.target.value),
|
|
449
|
+
placeholder: D("devportal.stateProvincePlaceholder", "California")
|
|
446
450
|
})]
|
|
447
451
|
}),
|
|
448
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ y("div", {
|
|
449
453
|
className: "grid gap-4 sm:grid-cols-2",
|
|
450
|
-
children: [/* @__PURE__ */
|
|
451
|
-
label:
|
|
452
|
-
value:
|
|
453
|
-
onChange: (e) =>
|
|
454
|
-
placeholder:
|
|
455
|
-
}), /* @__PURE__ */
|
|
456
|
-
label:
|
|
457
|
-
value:
|
|
458
|
-
onChange: (e) =>
|
|
459
|
-
options:
|
|
460
|
-
placeholder:
|
|
454
|
+
children: [/* @__PURE__ */ v(i, {
|
|
455
|
+
label: D("devportal.postalCode", "Postal Code"),
|
|
456
|
+
value: L.postalCode,
|
|
457
|
+
onChange: (e) => H("postalCode", e.target.value),
|
|
458
|
+
placeholder: D("devportal.postalCodePlaceholder", "94102")
|
|
459
|
+
}), /* @__PURE__ */ v(a, {
|
|
460
|
+
label: D("devportal.country", "Country"),
|
|
461
|
+
value: L.country,
|
|
462
|
+
onChange: (e) => H("country", e.target.value),
|
|
463
|
+
options: S,
|
|
464
|
+
placeholder: D("devportal.selectCountry", "Select country")
|
|
461
465
|
})]
|
|
462
466
|
})
|
|
463
467
|
]
|
|
464
468
|
})
|
|
465
469
|
}),
|
|
466
|
-
/* @__PURE__ */
|
|
470
|
+
/* @__PURE__ */ y("div", {
|
|
467
471
|
className: "rounded-lg border border-border-subtle bg-status-info-bg-subtle p-4 flex gap-3",
|
|
468
|
-
children: [/* @__PURE__ */
|
|
472
|
+
children: [/* @__PURE__ */ v(h, {
|
|
469
473
|
size: 20,
|
|
470
474
|
className: "text-accent-blue flex-shrink-0 mt-0.5"
|
|
471
|
-
}), /* @__PURE__ */
|
|
475
|
+
}), /* @__PURE__ */ y("div", {
|
|
472
476
|
className: "text-sm text-status-info-text",
|
|
473
|
-
children: [/* @__PURE__ */
|
|
477
|
+
children: [/* @__PURE__ */ v("p", {
|
|
474
478
|
className: "font-medium",
|
|
475
|
-
children:
|
|
476
|
-
}), /* @__PURE__ */
|
|
479
|
+
children: D("devportal.canAddLater", "You can add this later")
|
|
480
|
+
}), /* @__PURE__ */ v("p", {
|
|
477
481
|
className: "mt-1 text-status-info-text",
|
|
478
|
-
children:
|
|
482
|
+
children: D("devportal.legalInfoOptionalNote", "Legal and billing information is only required when you want to receive payouts from app sales or upgrade to a paid plan.")
|
|
479
483
|
})]
|
|
480
484
|
})]
|
|
481
485
|
}),
|
|
482
|
-
/* @__PURE__ */
|
|
486
|
+
/* @__PURE__ */ y("div", {
|
|
483
487
|
className: "flex items-center justify-between border-t pt-6",
|
|
484
|
-
children: [/* @__PURE__ */
|
|
488
|
+
children: [/* @__PURE__ */ v("button", {
|
|
485
489
|
type: "button",
|
|
486
|
-
onClick:
|
|
490
|
+
onClick: G,
|
|
487
491
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",
|
|
488
|
-
children:
|
|
489
|
-
}), /* @__PURE__ */
|
|
492
|
+
children: D("devportal.back", "Back")
|
|
493
|
+
}), /* @__PURE__ */ v("button", {
|
|
490
494
|
type: "submit",
|
|
491
|
-
disabled:
|
|
495
|
+
disabled: N,
|
|
492
496
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50",
|
|
493
|
-
children:
|
|
497
|
+
children: N ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), D("devportal.creating", "Creating...")] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(m, { size: 16 }), D("devportal.createOrganization", "Create Organization")] })
|
|
494
498
|
})]
|
|
495
499
|
})
|
|
496
500
|
] })]
|
|
@@ -499,6 +503,6 @@ var y = [
|
|
|
499
503
|
});
|
|
500
504
|
};
|
|
501
505
|
//#endregion
|
|
502
|
-
export {
|
|
506
|
+
export { C as CreateOrganizationPage };
|
|
503
507
|
|
|
504
508
|
//# sourceMappingURL=CreateOrganizationPage.js.map
|