@burdenoff/microfe-devportal 2026.1101.1 → 2026.1102.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 (41) hide show
  1. package/dist/devportal/DevportalRoutes.d.ts.map +1 -1
  2. package/dist/devportal/DevportalRoutes.js +13 -9
  3. package/dist/devportal/DevportalRoutes.js.map +1 -1
  4. package/dist/devportal/components/OnboardingChecklist.d.ts +16 -0
  5. package/dist/devportal/components/OnboardingChecklist.d.ts.map +1 -0
  6. package/dist/devportal/components/OnboardingChecklist.js +151 -0
  7. package/dist/devportal/components/OnboardingChecklist.js.map +1 -0
  8. package/dist/devportal/constants/developerLinks.d.ts +47 -0
  9. package/dist/devportal/constants/developerLinks.d.ts.map +1 -0
  10. package/dist/devportal/constants/developerLinks.js +27 -0
  11. package/dist/devportal/constants/developerLinks.js.map +1 -0
  12. package/dist/devportal/hooks/useGraphQL.d.ts.map +1 -1
  13. package/dist/devportal/hooks/useGraphQL.js +2 -1
  14. package/dist/devportal/hooks/useGraphQL.js.map +1 -1
  15. package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
  16. package/dist/devportal/pages/DashboardPage.js +107 -105
  17. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  18. package/dist/devportal/pages/DocumentationPage.d.ts.map +1 -1
  19. package/dist/devportal/pages/DocumentationPage.js +114 -148
  20. package/dist/devportal/pages/DocumentationPage.js.map +1 -1
  21. package/dist/devportal/pages/PublisherProfilePage.d.ts.map +1 -1
  22. package/dist/devportal/pages/PublisherProfilePage.js +170 -160
  23. package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
  24. package/dist/devportal/pages/ResourcesPage.js +2 -2
  25. package/dist/devportal/pages/ResourcesPage.js.map +1 -1
  26. package/dist/devportal/pages/SetupPage.d.ts.map +1 -1
  27. package/dist/devportal/pages/SetupPage.js +363 -218
  28. package/dist/devportal/pages/SetupPage.js.map +1 -1
  29. package/dist/devportal/utils/developerOnboarding.d.ts +85 -0
  30. package/dist/devportal/utils/developerOnboarding.d.ts.map +1 -0
  31. package/dist/devportal/utils/developerOnboarding.js +104 -0
  32. package/dist/devportal/utils/developerOnboarding.js.map +1 -0
  33. package/dist/generated/global-operations.d.ts +53 -0
  34. package/dist/generated/global-operations.d.ts.map +1 -1
  35. package/dist/generated/global-operations.js +170 -134
  36. package/dist/generated/global-operations.js.map +1 -1
  37. package/dist/translations/en.d.ts +50 -0
  38. package/dist/translations/en.d.ts.map +1 -1
  39. package/dist/translations/en.js +51 -1
  40. package/dist/translations/en.js.map +1 -1
  41. package/package.json +1 -1
@@ -1,16 +1,18 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { cn as t } from "../utils/cn.js";
3
3
  import { useDevportalEventBus as n } from "../events/index.js";
4
- import { useCreateApplicationMutation as r, useCreateBillingAccountMutation as i, useCreateOrganizationMutation as a } from "../../generated/global-operations.js";
5
- import { InputField as o, SelectField as s, TextareaField as c } from "../components/FormField.js";
4
+ import { useCreateApplicationMutation as r, useCreateBillingAccountMutation as i, useCreateDeveloperProfileMutation as a, useCreateOrganizationMutation as ee } from "../../generated/global-operations.js";
5
+ import { InputField as o, SelectField as te, TextareaField as s } from "../components/FormField.js";
6
+ import { ELIGIBILITY_RULES as c, reviewRequirementsFor as ne } from "../utils/developerOnboarding.js";
7
+ import { DEVELOPER_AGREEMENT_VERSION as re, DEVELOPER_LINKS as l } from "../constants/developerLinks.js";
6
8
  import "../hooks/index.js";
7
- import { useState as l } from "react";
8
- import { AppWindow as u, ArrowRight as ee, BookOpen as te, Box as d, Building2 as f, Check as p, ChevronRight as m, GitFork as ne, Key as re, Puzzle as ie, Rocket as h } from "lucide-react";
9
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
10
- import { useI18n as ae } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
- import { Illustration as oe, PagePurpose as se } from "@burdenoff/fe-libs/ui";
9
+ import { useState as u } from "react";
10
+ import { AppWindow as d, ArrowRight as ie, BookOpen as ae, Box as oe, Building2 as f, Check as p, ChevronRight as m, GitFork as se, Key as ce, ListChecks as le, Puzzle as h, Rocket as g, ShieldCheck as _ } from "lucide-react";
11
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
12
+ import { useI18n as ue } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
+ import { Illustration as de, PagePurpose as fe } from "@burdenoff/fe-libs/ui";
12
14
  //#region src/devportal/pages/SetupPage.tsx
13
- var v = [
15
+ var pe = [
14
16
  {
15
17
  value: "productivity",
16
18
  label: "Productivity"
@@ -60,15 +62,18 @@ var v = [
60
62
  label: "Other"
61
63
  }
62
64
  ];
63
- function y(e) {
65
+ function b(e) {
64
66
  return e.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
65
67
  }
66
- function b() {
68
+ function x(e, t) {
69
+ return e instanceof Error && e.message ? e.message : t;
70
+ }
71
+ function S() {
67
72
  try {
68
73
  localStorage.setItem("devportal_setup_dismissed", "1");
69
74
  } catch {}
70
75
  }
71
- var x = [
76
+ var C = [
72
77
  {
73
78
  key: "org",
74
79
  label: "Organization"
@@ -77,285 +82,353 @@ var x = [
77
82
  key: "app",
78
83
  label: "First app"
79
84
  },
85
+ {
86
+ key: "submit",
87
+ label: "Submit"
88
+ },
80
89
  {
81
90
  key: "done",
82
91
  label: "Done"
83
92
  }
84
- ], ce = ({ current: e }) => {
85
- let t = x.findIndex((t) => t.key === e);
86
- return /* @__PURE__ */ g("div", {
93
+ ], me = ({ current: e }) => {
94
+ let t = C.findIndex((t) => t.key === e);
95
+ return /* @__PURE__ */ v("div", {
87
96
  className: "flex items-center gap-0",
88
- children: x.map((e, n) => {
97
+ children: C.map((e, n) => {
89
98
  let r = n < t, i = n === t;
90
- return /* @__PURE__ */ _("div", {
99
+ return /* @__PURE__ */ y("div", {
91
100
  className: "flex items-center",
92
- children: [/* @__PURE__ */ _("div", {
101
+ children: [/* @__PURE__ */ y("div", {
93
102
  className: "flex flex-col items-center gap-1.5",
94
- children: [/* @__PURE__ */ g("div", {
103
+ children: [/* @__PURE__ */ v("div", {
95
104
  className: ["flex h-8 w-8 items-center justify-center rounded-full text-sm font-semibold transition-colors", r ? "bg-action-primary-bg text-action-primary-text" : i ? "bg-action-primary-bg text-action-primary-text ring-4 ring-primary/20" : "bg-bg-sunken text-text-secondary"].join(" "),
96
- children: r ? /* @__PURE__ */ g(p, { size: 14 }) : n + 1
97
- }), /* @__PURE__ */ g("span", {
105
+ children: r ? /* @__PURE__ */ v(p, { size: 14 }) : n + 1
106
+ }), /* @__PURE__ */ v("span", {
98
107
  className: ["text-xs font-medium whitespace-nowrap", i ? "text-text-primary" : "text-text-secondary"].join(" "),
99
108
  children: e.label
100
109
  })]
101
- }), n < x.length - 1 && /* @__PURE__ */ g("div", { className: ["mx-3 mb-5 h-px w-16 flex-shrink-0 transition-colors", n < t ? "bg-action-primary-bg" : "bg-border"].join(" ") })]
110
+ }), n < C.length - 1 && /* @__PURE__ */ v("div", { className: ["mx-3 mb-5 h-px w-16 flex-shrink-0 transition-colors", n < t ? "bg-action-primary-bg" : "bg-border"].join(" ") })]
102
111
  }, e.key);
103
112
  })
104
113
  });
105
- }, S = () => {
106
- let { navigate: t, basePath: p, currentUser: x } = e(), { t: S } = ae(), T = n(), E = (e, t) => {
107
- let n = S(e);
114
+ }, w = () => {
115
+ let { navigate: t, basePath: c, currentUser: _ } = e(), { t: C } = ue(), w = n(), D = (e, t) => {
116
+ let n = C(e);
108
117
  return n === e ? t : n;
109
- }, D = (e) => t?.(`${p}${e}`), [O, k] = l("org"), [A, le] = l(null), [j, M] = l(null), [N, ue] = l(""), [P, F] = l(""), [I, L] = l(""), [R, z] = l({}), [B, { loading: V }] = a(), [H] = i(), U = () => {
118
+ }, O = (e) => t?.(`${c}${e}`), [k, A] = u("org"), [j, ge] = u(null), [M, _e] = u(null), [ve, ye] = u(null), [N, be] = u(""), [P, F] = u(""), [I, xe] = u(""), [L, R] = u({}), [z, Se] = u(!1), [B, V] = u(null), [Ce, { loading: we }] = ee(), [Te, { loading: Ee }] = a(), H = we || Ee, [De] = i(), Oe = () => {
110
119
  let e = {};
111
- return N.trim() ? N.length < 2 && (e.name = E("devportal.orgNameTooShort", "Name must be at least 2 characters")) : e.name = E("devportal.orgNameRequired", "Organization name is required"), P.trim() ? /^[a-z0-9-]+$/.test(P) || (e.slug = E("devportal.slugInvalid", "Lowercase letters, numbers, and hyphens only")) : e.slug = E("devportal.slugRequired", "Slug is required"), z(e), Object.keys(e).length === 0;
112
- }, de = async () => {
113
- if (U()) try {
114
- let e = (await B({ variables: { input: {
115
- name: N,
116
- slug: P || void 0,
117
- description: I || void 0
118
- } } })).data?.createDeveloperOrganization?.id;
119
- if (e) {
120
- T.emit("devportal.org.created", {
121
- organizationId: e,
122
- name: N
123
- }), le(e);
124
- try {
125
- H({ variables: { input: {
126
- name: N,
127
- email: x?.email ?? ""
128
- } } }).catch(() => {});
129
- } catch {}
130
- k("app");
120
+ return N.trim() ? N.length < 2 && (e.name = D("devportal.orgNameTooShort", "Name must be at least 2 characters")) : e.name = D("devportal.orgNameRequired", "Organization name is required"), P.trim() ? /^[a-z0-9-]+$/.test(P) || (e.slug = D("devportal.slugInvalid", "Lowercase letters, numbers, and hyphens only")) : e.slug = D("devportal.slugRequired", "Slug is required"), z || (e.agreement = D("devportal.onboarding.agreementRequired", "Accept the Developer Agreement to continue")), R(e), Object.keys(e).length === 0;
121
+ }, ke = async () => {
122
+ if (Oe()) {
123
+ V(null);
124
+ try {
125
+ await Te({ variables: { input: { companyName: N } } });
126
+ let e = (await Ce({ variables: { input: {
127
+ name: N,
128
+ slug: P || void 0,
129
+ description: I || void 0,
130
+ contactEmail: _?.email || void 0,
131
+ metadata: {
132
+ developerAgreement: {
133
+ version: re,
134
+ url: l.developerAgreement,
135
+ acceptedAt: (/* @__PURE__ */ new Date()).toISOString(),
136
+ acceptedBy: _?.id ?? null
137
+ },
138
+ registrationSource: "devportal-setup"
139
+ }
140
+ } } })).data?.createDeveloperOrganization?.id;
141
+ if (e) {
142
+ w.emit("devportal.org.created", {
143
+ organizationId: e,
144
+ name: N
145
+ }), ge(e);
146
+ try {
147
+ De({ variables: { input: {
148
+ name: N,
149
+ email: _?.email ?? ""
150
+ } } }).catch(() => {});
151
+ } catch {}
152
+ A("app");
153
+ }
154
+ } catch (e) {
155
+ V(x(e, D("devportal.onboarding.orgCreateFailed", "We could not create your organization. Please try again.")));
131
156
  }
132
- } catch {}
133
- }, [W, fe] = l(""), [G, pe] = l(""), [K, q] = l(null), [J, me] = l(""), [Y, he] = l(""), [X, Z] = l({}), [ge, { loading: Q }] = r(), _e = () => K === "node" ? "NODE" : K === "workflow" ? "WORKFLOW" : "API_INTEGRATION", ve = () => {
157
+ }
158
+ }, [U, Ae] = u(""), [W, je] = u(""), [G, K] = u(null), [q, Me] = u(""), [J, Ne] = u(""), [Y, X] = u({}), [Z, Pe] = u(null), [Fe, { loading: Q }] = r(), Ie = () => G === "node" ? "NODE" : G === "workflow" ? "WORKFLOW" : "API_INTEGRATION", Le = () => {
134
159
  let e = {};
135
- return W.trim() ? W.length < 3 && (e.name = E("devportal.nameTooShort", "Name must be at least 3 characters")) : e.name = E("devportal.appNameRequired", "Application name is required"), K || (e.builderType = E("devportal.appTypeRequired", "Application type is required")), J || (e.category = E("devportal.categoryRequired", "Category is required")), Y.trim() || (e.shortDescription = E("devportal.shortDescriptionRequired", "Short description is required")), Z(e), Object.keys(e).length === 0;
136
- }, ye = async () => {
137
- if (!ve()) return;
138
- let e = _e();
160
+ return U.trim() ? U.length < 3 && (e.name = D("devportal.nameTooShort", "Name must be at least 3 characters")) : e.name = D("devportal.appNameRequired", "Application name is required"), G || (e.builderType = D("devportal.appTypeRequired", "Application type is required")), q || (e.category = D("devportal.categoryRequired", "Category is required")), J.trim() || (e.shortDescription = D("devportal.shortDescriptionRequired", "Short description is required")), X(e), Object.keys(e).length === 0;
161
+ }, Re = async () => {
162
+ if (!Le()) return;
163
+ let e = Ie();
164
+ Pe(null);
139
165
  try {
140
- let t = (await ge({ variables: { input: {
141
- name: W,
142
- slug: G || void 0,
166
+ let t = (await Fe({ variables: { input: {
167
+ name: U,
168
+ slug: W || void 0,
143
169
  appType: e,
144
- category: J || void 0,
145
- shortDescription: Y || void 0,
170
+ category: q || void 0,
171
+ shortDescription: J || void 0,
146
172
  visibility: "PRIVATE",
147
- developerOrganizationId: A || void 0
173
+ developerOrganizationId: j || void 0
148
174
  } } })).data?.createApplication?.id;
149
- t && (T.emit("devportal.app.created", {
175
+ t && (w.emit("devportal.app.created", {
150
176
  appId: t,
151
- name: W,
177
+ name: U,
152
178
  appType: e,
153
- organizationId: A
154
- }), M(t), b(), k("done"));
155
- } catch {}
156
- }, $ = () => {
157
- b(), D("/");
179
+ organizationId: j
180
+ }), _e(t), ye(e), S(), A("submit"));
181
+ } catch (e) {
182
+ Pe(x(e, D("devportal.onboarding.appCreateFailed", "We could not create your app. Please try again.")));
183
+ }
184
+ }, ze = ne(ve), $ = () => {
185
+ S(), O("/");
158
186
  };
159
- return /* @__PURE__ */ _("main", {
187
+ return /* @__PURE__ */ y("main", {
160
188
  className: "min-h-screen bg-surface-default",
161
- children: [/* @__PURE__ */ g("div", {
189
+ children: [/* @__PURE__ */ v("div", {
162
190
  className: "border-b border-border-default bg-surface-raised",
163
- children: /* @__PURE__ */ g("div", {
191
+ children: /* @__PURE__ */ v("div", {
164
192
  className: "mx-auto max-w-2xl px-6 py-5",
165
- children: /* @__PURE__ */ _("div", {
193
+ children: /* @__PURE__ */ y("div", {
166
194
  className: "flex items-center justify-between",
167
- children: [/* @__PURE__ */ _("div", {
195
+ children: [/* @__PURE__ */ y("div", {
168
196
  className: "flex items-center gap-3",
169
- children: [/* @__PURE__ */ g("div", {
197
+ children: [/* @__PURE__ */ v("div", {
170
198
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-action-primary-bg/10 text-primary",
171
- children: /* @__PURE__ */ g(h, { size: 20 })
172
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
199
+ children: /* @__PURE__ */ v(g, { size: 20 })
200
+ }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
173
201
  className: "text-xs font-medium text-text-secondary",
174
- children: E("devportal.developerPortal", "Developer Portal")
175
- }), /* @__PURE__ */ g("h1", {
202
+ children: D("devportal.developerPortal", "Developer Portal")
203
+ }), /* @__PURE__ */ v("h1", {
176
204
  className: "text-base font-semibold text-text-primary",
177
- children: E("devportal.setup.title", "Get set up")
205
+ children: D("devportal.setup.title", "Get set up")
178
206
  })] })]
179
- }), O !== "done" && /* @__PURE__ */ g("button", {
207
+ }), k !== "done" && /* @__PURE__ */ v("button", {
180
208
  type: "button",
181
209
  onClick: $,
182
210
  className: "text-sm text-text-secondary hover:text-text-primary transition-colors",
183
- children: E("devportal.setup.skipForNow", "Skip for now")
211
+ children: D("devportal.setup.skipForNow", "Skip for now")
184
212
  })]
185
213
  })
186
214
  })
187
- }), /* @__PURE__ */ _("div", {
215
+ }), /* @__PURE__ */ y("div", {
188
216
  className: "mx-auto max-w-2xl px-6 py-10",
189
217
  children: [
190
- /* @__PURE__ */ g("div", {
218
+ /* @__PURE__ */ v("div", {
191
219
  className: "mb-10 flex justify-center",
192
- children: /* @__PURE__ */ g(ce, { current: O })
220
+ children: /* @__PURE__ */ v(me, { current: k })
193
221
  }),
194
- O === "org" && /* @__PURE__ */ _("div", {
222
+ k === "org" && /* @__PURE__ */ y("div", {
195
223
  className: "mb-8 flex flex-col items-center gap-3 text-center",
196
- children: [/* @__PURE__ */ g(oe, {
224
+ children: [/* @__PURE__ */ v(de, {
197
225
  name: "onboarding",
198
- alt: E("devportal.setup.illustrationAlt", "Getting started with the developer portal"),
226
+ alt: D("devportal.setup.illustrationAlt", "Getting started with the developer portal"),
199
227
  size: "md"
200
- }), /* @__PURE__ */ g(se, {
228
+ }), /* @__PURE__ */ v(fe, {
201
229
  className: "justify-center",
202
- children: E("devportal.setup.purpose", "Two quick steps to start building: create the organization that owns your apps, then register your first app. You can change everything later — this just gets you to a working starting point.")
230
+ children: D("devportal.setup.purpose", "Three quick steps to start building: create the organization that owns your apps, register your first app, then submit it for review. Your developer profile is created with your organization. You can change everything later.")
203
231
  })]
204
232
  }),
205
- O === "org" && /* @__PURE__ */ _("div", {
233
+ k === "org" && /* @__PURE__ */ y("div", {
206
234
  className: "rounded-xl border border-border-default bg-surface-raised p-8 shadow-sm",
207
235
  children: [
208
- /* @__PURE__ */ _("div", {
236
+ /* @__PURE__ */ y("div", {
209
237
  className: "mb-6 flex items-center gap-3",
210
- children: [/* @__PURE__ */ g("div", {
238
+ children: [/* @__PURE__ */ v("div", {
211
239
  className: "flex h-10 w-10 items-center justify-center rounded-lg bg-action-primary-bg/10 text-primary",
212
- children: /* @__PURE__ */ g(f, { size: 20 })
213
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h2", {
240
+ children: /* @__PURE__ */ v(f, { size: 20 })
241
+ }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
214
242
  className: "text-lg font-semibold text-text-primary",
215
- children: E("devportal.setup.orgTitle", "Set up your organization")
216
- }), /* @__PURE__ */ g("p", {
243
+ children: D("devportal.setup.orgTitle", "Set up your organization")
244
+ }), /* @__PURE__ */ v("p", {
217
245
  className: "text-sm text-text-secondary",
218
- children: E("devportal.setup.orgSubtitle", "This groups your apps and teams under one publisher identity.")
246
+ children: D("devportal.setup.orgSubtitle", "This groups your apps and teams under one publisher identity.")
219
247
  })] })]
220
248
  }),
221
- /* @__PURE__ */ _("div", {
249
+ /* @__PURE__ */ y("div", {
222
250
  className: "space-y-5",
223
251
  children: [
224
- /* @__PURE__ */ g(o, {
225
- label: E("devportal.organizationName", "Organization Name"),
252
+ /* @__PURE__ */ v(o, {
253
+ label: D("devportal.organizationName", "Organization Name"),
226
254
  value: N,
227
255
  onChange: (e) => {
228
- ue(e.target.value), (!P || P === y(N)) && F(y(e.target.value)), z((e) => ({
256
+ be(e.target.value), (!P || P === b(N)) && F(b(e.target.value)), R((e) => ({
229
257
  ...e,
230
258
  name: void 0
231
259
  }));
232
260
  },
233
- placeholder: E("devportal.organizationNamePlaceholder", "Acme Development"),
261
+ placeholder: D("devportal.organizationNamePlaceholder", "Acme Development"),
234
262
  required: !0,
235
- error: R.name
263
+ error: L.name
236
264
  }),
237
- /* @__PURE__ */ g(o, {
238
- label: E("devportal.slug", "Slug"),
265
+ /* @__PURE__ */ v(o, {
266
+ label: D("devportal.slug", "Slug"),
239
267
  value: P,
240
268
  onChange: (e) => {
241
- F(e.target.value.toLowerCase()), z((e) => ({
269
+ F(e.target.value.toLowerCase()), R((e) => ({
242
270
  ...e,
243
271
  slug: void 0
244
272
  }));
245
273
  },
246
274
  placeholder: "acme-dev",
247
275
  required: !0,
248
- error: R.slug,
249
- hint: E("devportal.slugHint", "URL-friendly identifier — auto-generated from name")
276
+ error: L.slug,
277
+ hint: D("devportal.slugHint", "URL-friendly identifier — auto-generated from name")
250
278
  }),
251
- /* @__PURE__ */ g(c, {
252
- label: E("devportal.description", "Description"),
279
+ /* @__PURE__ */ v(s, {
280
+ label: D("devportal.description", "Description"),
253
281
  value: I,
254
- onChange: (e) => L(e.target.value),
255
- placeholder: E("devportal.orgDescriptionPlaceholder", "Tell us about your organization…"),
282
+ onChange: (e) => xe(e.target.value),
283
+ placeholder: D("devportal.orgDescriptionPlaceholder", "Tell us about your organization…"),
256
284
  rows: 2
285
+ }),
286
+ /* @__PURE__ */ v(he, { tr: D }),
287
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("label", {
288
+ className: "flex items-start gap-3 text-sm text-text-primary",
289
+ children: [/* @__PURE__ */ v("input", {
290
+ type: "checkbox",
291
+ "data-testid": "devportal-setup-accept-agreement",
292
+ checked: z,
293
+ onChange: (e) => {
294
+ Se(e.target.checked), R((e) => ({
295
+ ...e,
296
+ agreement: void 0
297
+ }));
298
+ },
299
+ className: "mt-0.5 h-4 w-4 shrink-0 rounded border-border-default accent-primary"
300
+ }), /* @__PURE__ */ y("span", { children: [
301
+ D("devportal.onboarding.agreementLabelPrefix", "I meet these requirements and accept the"),
302
+ " ",
303
+ /* @__PURE__ */ v("a", {
304
+ href: l.developerAgreement,
305
+ target: "_blank",
306
+ rel: "noopener noreferrer",
307
+ className: "font-medium text-primary hover:underline",
308
+ children: D("devportal.onboarding.developerAgreement", "Marketplace & Developer Agreement")
309
+ }),
310
+ " ",
311
+ D("devportal.onboarding.and", "and the"),
312
+ " ",
313
+ /* @__PURE__ */ v("a", {
314
+ href: l.acceptableUsePolicy,
315
+ target: "_blank",
316
+ rel: "noopener noreferrer",
317
+ className: "font-medium text-primary hover:underline",
318
+ children: D("devportal.onboarding.acceptableUsePolicy", "Acceptable Use Policy")
319
+ }),
320
+ "."
321
+ ] })]
322
+ }), L.agreement && /* @__PURE__ */ v("p", {
323
+ className: "mt-1.5 text-xs text-status-error-text",
324
+ children: L.agreement
325
+ })] }),
326
+ B && /* @__PURE__ */ v("p", {
327
+ role: "alert",
328
+ className: "rounded-md bg-status-error-bg px-3 py-2 text-sm text-status-error-text",
329
+ children: B
257
330
  })
258
331
  ]
259
332
  }),
260
- /* @__PURE__ */ _("div", {
333
+ /* @__PURE__ */ y("div", {
261
334
  className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
262
- children: [/* @__PURE__ */ g("button", {
335
+ children: [/* @__PURE__ */ v("button", {
263
336
  type: "button",
264
337
  onClick: $,
265
338
  className: "text-sm text-text-secondary hover:text-text-primary transition-colors",
266
- children: E("devportal.setup.skipForNow", "Skip for now")
267
- }), /* @__PURE__ */ _("button", {
339
+ children: D("devportal.setup.skipForNow", "Skip for now")
340
+ }), /* @__PURE__ */ y("button", {
268
341
  type: "button",
269
- onClick: () => void de(),
270
- disabled: V,
342
+ onClick: () => void ke(),
343
+ disabled: H,
271
344
  className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-5 py-2.5 text-sm font-semibold text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-60 transition-colors",
272
345
  children: [
273
- V ? /* @__PURE__ */ g("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
274
- E("devportal.setup.createAndContinue", "Create & Continue"),
275
- !V && /* @__PURE__ */ g(m, { size: 16 })
346
+ H ? /* @__PURE__ */ v("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
347
+ D("devportal.setup.createAndContinue", "Create & Continue"),
348
+ !H && /* @__PURE__ */ v(m, { size: 16 })
276
349
  ]
277
350
  })]
278
351
  })
279
352
  ]
280
353
  }),
281
- O === "app" && /* @__PURE__ */ _("div", {
354
+ k === "app" && /* @__PURE__ */ y("div", {
282
355
  className: "rounded-xl border border-border-default bg-surface-raised p-8 shadow-sm",
283
356
  children: [
284
- /* @__PURE__ */ _("div", {
357
+ /* @__PURE__ */ y("div", {
285
358
  className: "mb-6 flex items-center gap-3",
286
- children: [/* @__PURE__ */ g("div", {
359
+ children: [/* @__PURE__ */ v("div", {
287
360
  className: "flex h-10 w-10 items-center justify-center rounded-lg bg-action-primary-bg/10 text-primary",
288
- children: /* @__PURE__ */ g(u, { size: 20 })
289
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h2", {
361
+ children: /* @__PURE__ */ v(d, { size: 20 })
362
+ }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
290
363
  className: "text-lg font-semibold text-text-primary",
291
- children: E("devportal.setup.appTitle", "Create your first app")
292
- }), /* @__PURE__ */ g("p", {
364
+ children: D("devportal.setup.appTitle", "Create your first app")
365
+ }), /* @__PURE__ */ v("p", {
293
366
  className: "text-sm text-text-secondary",
294
- children: E("devportal.setup.appSubtitle", "Register the app you want to publish or integrate.")
367
+ children: D("devportal.setup.appSubtitle", "Register the app you want to publish or integrate.")
295
368
  })] })]
296
369
  }),
297
- /* @__PURE__ */ _("div", {
370
+ /* @__PURE__ */ y("div", {
298
371
  className: "space-y-5",
299
372
  children: [
300
- /* @__PURE__ */ g(o, {
301
- label: E("devportal.applicationName", "Application Name"),
302
- value: W,
373
+ /* @__PURE__ */ v(o, {
374
+ label: D("devportal.applicationName", "Application Name"),
375
+ value: U,
303
376
  onChange: (e) => {
304
- fe(e.target.value), (!G || G === y(W)) && pe(y(e.target.value)), Z((e) => ({
377
+ Ae(e.target.value), (!W || W === b(U)) && je(b(e.target.value)), X((e) => ({
305
378
  ...e,
306
379
  name: void 0
307
380
  }));
308
381
  },
309
- placeholder: E("devportal.applicationNamePlaceholder", "My Awesome App"),
382
+ placeholder: D("devportal.applicationNamePlaceholder", "My Awesome App"),
310
383
  required: !0,
311
- error: X.name
384
+ error: Y.name
312
385
  }),
313
- /* @__PURE__ */ _("div", { children: [
314
- /* @__PURE__ */ _("p", {
386
+ /* @__PURE__ */ y("div", { children: [
387
+ /* @__PURE__ */ y("p", {
315
388
  className: "mb-2 text-sm font-medium text-text-primary",
316
389
  children: [
317
- E("devportal.applicationType", "Application Type"),
390
+ D("devportal.applicationType", "Application Type"),
318
391
  " ",
319
- /* @__PURE__ */ g("span", {
392
+ /* @__PURE__ */ v("span", {
320
393
  className: "text-status-error-text",
321
394
  children: "*"
322
395
  })
323
396
  ]
324
397
  }),
325
- /* @__PURE__ */ _("div", {
398
+ /* @__PURE__ */ y("div", {
326
399
  className: "grid grid-cols-3 gap-3",
327
400
  children: [
328
- /* @__PURE__ */ g(C, {
329
- icon: d,
401
+ /* @__PURE__ */ v(T, {
402
+ icon: oe,
330
403
  title: "App",
331
404
  description: "OAuth integration for the platform",
332
- selected: K === "app",
405
+ selected: G === "app",
333
406
  onClick: () => {
334
- q("app"), Z((e) => ({
407
+ K("app"), X((e) => ({
335
408
  ...e,
336
409
  builderType: void 0
337
410
  }));
338
411
  }
339
412
  }),
340
- /* @__PURE__ */ g(C, {
341
- icon: ie,
413
+ /* @__PURE__ */ v(T, {
414
+ icon: h,
342
415
  title: "Node",
343
416
  description: "Custom FluidGrids workflow node",
344
- selected: K === "node",
417
+ selected: G === "node",
345
418
  onClick: () => {
346
- q("node"), Z((e) => ({
419
+ K("node"), X((e) => ({
347
420
  ...e,
348
421
  builderType: void 0
349
422
  }));
350
423
  }
351
424
  }),
352
- /* @__PURE__ */ g(C, {
353
- icon: ne,
425
+ /* @__PURE__ */ v(T, {
426
+ icon: se,
354
427
  title: "Workflow",
355
428
  description: "Reusable automation template",
356
- selected: K === "workflow",
429
+ selected: G === "workflow",
357
430
  onClick: () => {
358
- q("workflow"), Z((e) => ({
431
+ K("workflow"), X((e) => ({
359
432
  ...e,
360
433
  builderType: void 0
361
434
  }));
@@ -363,169 +436,241 @@ var x = [
363
436
  })
364
437
  ]
365
438
  }),
366
- X.builderType && /* @__PURE__ */ g("p", {
439
+ Y.builderType && /* @__PURE__ */ v("p", {
367
440
  className: "mt-1.5 text-xs text-status-error-text",
368
- children: X.builderType
441
+ children: Y.builderType
369
442
  })
370
443
  ] }),
371
- /* @__PURE__ */ g(s, {
372
- label: E("devportal.category", "Category"),
373
- value: J,
444
+ /* @__PURE__ */ v(te, {
445
+ label: D("devportal.category", "Category"),
446
+ value: q,
374
447
  onChange: (e) => {
375
- me(e.target.value), Z((e) => ({
448
+ Me(e.target.value), X((e) => ({
376
449
  ...e,
377
450
  category: void 0
378
451
  }));
379
452
  },
380
- options: v,
381
- placeholder: E("devportal.selectCategory", "Select category…"),
453
+ options: pe,
454
+ placeholder: D("devportal.selectCategory", "Select category…"),
382
455
  required: !0,
383
- error: X.category
456
+ error: Y.category
384
457
  }),
385
- /* @__PURE__ */ g(c, {
386
- label: E("devportal.shortDescription", "Short Description"),
387
- value: Y,
458
+ /* @__PURE__ */ v(s, {
459
+ label: D("devportal.shortDescription", "Short Description"),
460
+ value: J,
388
461
  onChange: (e) => {
389
- he(e.target.value), Z((e) => ({
462
+ Ne(e.target.value), X((e) => ({
390
463
  ...e,
391
464
  shortDescription: void 0
392
465
  }));
393
466
  },
394
- placeholder: E("devportal.shortDescriptionPlaceholder", "A brief description of what your app does"),
467
+ placeholder: D("devportal.shortDescriptionPlaceholder", "A brief description of what your app does"),
395
468
  required: !0,
396
- error: X.shortDescription,
469
+ error: Y.shortDescription,
397
470
  rows: 2,
398
- hint: `${Y.length}/200`
471
+ hint: `${J.length}/200`
472
+ }),
473
+ Z && /* @__PURE__ */ v("p", {
474
+ role: "alert",
475
+ className: "rounded-md bg-status-error-bg px-3 py-2 text-sm text-status-error-text",
476
+ children: Z
399
477
  })
400
478
  ]
401
479
  }),
402
- /* @__PURE__ */ _("div", {
480
+ /* @__PURE__ */ y("div", {
403
481
  className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
404
- children: [/* @__PURE__ */ g("button", {
482
+ children: [/* @__PURE__ */ v("button", {
405
483
  type: "button",
406
484
  onClick: $,
407
485
  className: "text-sm text-text-secondary hover:text-text-primary transition-colors",
408
- children: E("devportal.setup.skipForNow", "Skip for now")
409
- }), /* @__PURE__ */ _("button", {
486
+ children: D("devportal.setup.skipForNow", "Skip for now")
487
+ }), /* @__PURE__ */ y("button", {
410
488
  type: "button",
411
- onClick: () => void ye(),
489
+ onClick: () => void Re(),
412
490
  disabled: Q,
413
491
  className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-5 py-2.5 text-sm font-semibold text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-60 transition-colors",
414
492
  children: [
415
- Q ? /* @__PURE__ */ g("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
416
- E("devportal.setup.createApp", "Create App"),
417
- !Q && /* @__PURE__ */ g(m, { size: 16 })
493
+ Q ? /* @__PURE__ */ v("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
494
+ D("devportal.setup.createApp", "Create App"),
495
+ !Q && /* @__PURE__ */ v(m, { size: 16 })
418
496
  ]
419
497
  })]
420
498
  })
421
499
  ]
422
500
  }),
423
- O === "done" && /* @__PURE__ */ _("div", {
501
+ k === "submit" && /* @__PURE__ */ y("div", {
502
+ className: "rounded-xl border border-border-default bg-surface-raised p-8 shadow-sm",
503
+ children: [
504
+ /* @__PURE__ */ y("div", {
505
+ className: "mb-6 flex items-center gap-3",
506
+ children: [/* @__PURE__ */ v("div", {
507
+ className: "flex h-10 w-10 items-center justify-center rounded-lg bg-action-primary-bg/10 text-primary",
508
+ children: /* @__PURE__ */ v(le, { size: 20 })
509
+ }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
510
+ className: "text-lg font-semibold text-text-primary",
511
+ children: D("devportal.onboarding.readyTitle", "Get it ready for review")
512
+ }), /* @__PURE__ */ v("p", {
513
+ className: "text-sm text-text-secondary",
514
+ children: D("devportal.onboarding.readySubtitle", "Reviewers check every app before it is listed. Your app page walks you through what they need, then you submit it from there. It stays private until it is approved and you publish it.")
515
+ })] })]
516
+ }),
517
+ /* @__PURE__ */ v("ul", {
518
+ "data-testid": "devportal-setup-review-requirements",
519
+ className: "space-y-2",
520
+ children: ze.map((e) => /* @__PURE__ */ y("li", {
521
+ className: "flex items-start gap-3 rounded-md bg-bg-sunken px-4 py-3 text-sm text-text-primary",
522
+ children: [/* @__PURE__ */ v(p, {
523
+ size: 16,
524
+ className: "mt-0.5 shrink-0 text-text-secondary",
525
+ "aria-hidden": "true"
526
+ }), D(e.key, e.text)]
527
+ }, e.id))
528
+ }),
529
+ /* @__PURE__ */ y("div", {
530
+ className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
531
+ children: [/* @__PURE__ */ v("button", {
532
+ type: "button",
533
+ onClick: () => A("done"),
534
+ className: "text-sm text-text-secondary hover:text-text-primary transition-colors",
535
+ children: D("devportal.onboarding.submitLater", "Do this later")
536
+ }), /* @__PURE__ */ y("button", {
537
+ type: "button",
538
+ "data-testid": "devportal-setup-finish-app",
539
+ onClick: () => M && O(`/apps/${M}`),
540
+ className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-5 py-2.5 text-sm font-semibold text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
541
+ children: [D("devportal.onboarding.finishApp", "Finish and submit"), /* @__PURE__ */ v(m, { size: 16 })]
542
+ })]
543
+ })
544
+ ]
545
+ }),
546
+ k === "done" && /* @__PURE__ */ y("div", {
424
547
  className: "text-center",
425
548
  children: [
426
- /* @__PURE__ */ g("div", {
549
+ /* @__PURE__ */ v("div", {
427
550
  className: "mx-auto mb-6 flex h-16 w-16 items-center justify-center rounded-full bg-action-primary-bg/10 text-primary",
428
- children: /* @__PURE__ */ g(h, { size: 32 })
551
+ children: /* @__PURE__ */ v(g, { size: 32 })
429
552
  }),
430
- /* @__PURE__ */ g("h2", {
553
+ /* @__PURE__ */ v("h2", {
431
554
  className: "text-2xl font-bold text-text-primary",
432
- children: E("devportal.setup.doneTitle", "You're all set!")
555
+ children: D("devportal.setup.doneTitle", "You're all set!")
433
556
  }),
434
- /* @__PURE__ */ g("p", {
557
+ /* @__PURE__ */ v("p", {
435
558
  className: "mt-2 text-text-secondary",
436
- children: E("devportal.setup.doneSubtitle", "Your organization and first app are ready. Here's what to do next.")
559
+ children: D("devportal.setup.doneSubtitle", "Your organization and first app are ready. Here's what to do next.")
437
560
  }),
438
- /* @__PURE__ */ _("div", {
561
+ /* @__PURE__ */ y("div", {
439
562
  className: "mt-8 grid gap-3 sm:grid-cols-2",
440
563
  children: [
441
- j && /* @__PURE__ */ g(w, {
442
- icon: /* @__PURE__ */ g(u, { size: 20 }),
443
- title: E("devportal.setup.viewApp", "View your app"),
444
- description: E("devportal.setup.viewAppDesc", "Configure OAuth, webhooks, and versioning"),
445
- onClick: () => D(`/apps/${j}`),
564
+ M && /* @__PURE__ */ v(E, {
565
+ icon: /* @__PURE__ */ v(d, { size: 20 }),
566
+ title: D("devportal.setup.viewApp", "View your app"),
567
+ description: D("devportal.setup.viewAppDesc", "Configure OAuth, webhooks, and versioning"),
568
+ onClick: () => O(`/apps/${M}`),
446
569
  primary: !0
447
570
  }),
448
- /* @__PURE__ */ g(w, {
449
- icon: /* @__PURE__ */ g(re, { size: 20 }),
450
- title: E("devportal.setup.generateApiKey", "Generate API key"),
451
- description: E("devportal.setup.generateApiKeyDesc", "Create credentials to start calling APIs"),
452
- onClick: () => D("/api-keys/new")
571
+ /* @__PURE__ */ v(E, {
572
+ icon: /* @__PURE__ */ v(ce, { size: 20 }),
573
+ title: D("devportal.setup.generateApiKey", "Generate API key"),
574
+ description: D("devportal.setup.generateApiKeyDesc", "Create credentials to start calling APIs"),
575
+ onClick: () => O("/api-keys/new")
576
+ }),
577
+ /* @__PURE__ */ v(E, {
578
+ icon: /* @__PURE__ */ v(ae, { size: 20 }),
579
+ title: D("devportal.setup.browseDocs", "Browse docs"),
580
+ description: D("devportal.setup.browseDocsDesc", "Learn about publishing, SDKs, and webhooks"),
581
+ onClick: () => O("/docs")
453
582
  }),
454
- /* @__PURE__ */ g(w, {
455
- icon: /* @__PURE__ */ g(te, { size: 20 }),
456
- title: E("devportal.setup.browseDocs", "Browse docs"),
457
- description: E("devportal.setup.browseDocsDesc", "Learn about publishing, SDKs, and webhooks"),
458
- onClick: () => D("/docs")
583
+ /* @__PURE__ */ v(E, {
584
+ icon: /* @__PURE__ */ v(h, { size: 20 }),
585
+ title: D("devportal.onboarding.publishConnector", "Publish a connector"),
586
+ description: D("devportal.onboarding.publishConnectorDesc", "List an API-key integration in the Workspaces integrations catalog"),
587
+ onClick: () => window.open(l.publishConnector, "_blank", "noopener,noreferrer")
459
588
  }),
460
- A && /* @__PURE__ */ g(w, {
461
- icon: /* @__PURE__ */ g(f, { size: 20 }),
462
- title: E("devportal.setup.inviteTeam", "Invite your team"),
463
- description: E("devportal.setup.inviteTeamDesc", "Add members to collaborate on your apps"),
464
- onClick: () => D(`/organizations/${A}/members`)
589
+ j && /* @__PURE__ */ v(E, {
590
+ icon: /* @__PURE__ */ v(f, { size: 20 }),
591
+ title: D("devportal.setup.inviteTeam", "Invite your team"),
592
+ description: D("devportal.setup.inviteTeamDesc", "Add members to collaborate on your apps"),
593
+ onClick: () => O(`/organizations/${j}/members`)
465
594
  })
466
595
  ]
467
596
  }),
468
- /* @__PURE__ */ _("button", {
597
+ /* @__PURE__ */ y("button", {
469
598
  type: "button",
470
- onClick: () => D("/"),
599
+ onClick: () => O("/"),
471
600
  className: "mt-8 inline-flex items-center gap-2 text-sm text-text-secondary hover:text-text-primary transition-colors",
472
- children: [E("devportal.setup.goToDashboard", "Go to dashboard"), /* @__PURE__ */ g(ee, { size: 14 })]
601
+ children: [D("devportal.setup.goToDashboard", "Go to dashboard"), /* @__PURE__ */ v(ie, { size: 14 })]
473
602
  })
474
603
  ]
475
604
  })
476
605
  ]
477
606
  })]
478
607
  });
479
- }, C = ({ icon: e, title: n, description: r, selected: i, onClick: a }) => /* @__PURE__ */ _("button", {
608
+ }, he = ({ tr: e }) => /* @__PURE__ */ y("section", {
609
+ "aria-labelledby": "devportal-setup-eligibility-title",
610
+ "data-testid": "devportal-setup-eligibility",
611
+ className: "rounded-lg border border-border-subtle bg-bg-sunken p-4",
612
+ children: [/* @__PURE__ */ y("h3", {
613
+ id: "devportal-setup-eligibility-title",
614
+ className: "flex items-center gap-2 text-sm font-semibold text-text-primary",
615
+ children: [/* @__PURE__ */ v(_, {
616
+ size: 16,
617
+ className: "text-primary",
618
+ "aria-hidden": "true"
619
+ }), e("devportal.onboarding.eligibilityTitle", "Who can register")]
620
+ }), /* @__PURE__ */ v("ul", {
621
+ className: "mt-2 list-disc space-y-1 pl-5 text-sm text-text-secondary",
622
+ children: c.map((t) => /* @__PURE__ */ v("li", { children: e(t.key, t.text) }, t.id))
623
+ })]
624
+ }), T = ({ icon: e, title: n, description: r, selected: i, onClick: a }) => /* @__PURE__ */ y("button", {
480
625
  type: "button",
481
626
  onClick: a,
482
627
  className: t("relative flex flex-col gap-2 rounded-xl border-2 p-4 text-left transition-all hover:border-primary/50 hover:shadow-sm", i ? "border-primary bg-action-primary-bg/5 shadow-sm" : "border-border-subtle bg-bg-surface"),
483
628
  children: [
484
- i && /* @__PURE__ */ g("span", {
629
+ i && /* @__PURE__ */ v("span", {
485
630
  className: "absolute top-3 right-3 flex h-4 w-4 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text",
486
- children: /* @__PURE__ */ g(p, { size: 10 })
631
+ children: /* @__PURE__ */ v(p, { size: 10 })
487
632
  }),
488
- /* @__PURE__ */ g("div", {
633
+ /* @__PURE__ */ v("div", {
489
634
  className: "flex h-8 w-8 items-center justify-center rounded-lg bg-bg-sunken",
490
- children: /* @__PURE__ */ g(e, {
635
+ children: /* @__PURE__ */ v(e, {
491
636
  size: 18,
492
637
  className: "text-text-primary"
493
638
  })
494
639
  }),
495
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
640
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
496
641
  className: "text-sm font-semibold text-text-primary",
497
642
  children: n
498
- }), /* @__PURE__ */ g("p", {
643
+ }), /* @__PURE__ */ v("p", {
499
644
  className: "mt-0.5 text-xs text-text-secondary",
500
645
  children: r
501
646
  })] })
502
647
  ]
503
- }), w = ({ icon: e, title: t, description: n, onClick: r, primary: i }) => /* @__PURE__ */ _("button", {
648
+ }), E = ({ icon: e, title: t, description: n, onClick: r, primary: i }) => /* @__PURE__ */ y("button", {
504
649
  type: "button",
505
650
  onClick: r,
506
651
  className: ["flex items-start gap-4 rounded-xl border p-5 text-left transition-colors", i ? "border-primary bg-action-primary-bg/5 hover:bg-action-primary-bg/10" : "border-border-default bg-surface-raised hover:bg-surface-hover"].join(" "),
507
652
  children: [
508
- /* @__PURE__ */ g("div", {
653
+ /* @__PURE__ */ v("div", {
509
654
  className: ["flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg", i ? "bg-action-primary-bg/20 text-primary" : "bg-bg-sunken text-text-secondary"].join(" "),
510
655
  children: e
511
656
  }),
512
- /* @__PURE__ */ _("div", {
657
+ /* @__PURE__ */ y("div", {
513
658
  className: "min-w-0 flex-1",
514
- children: [/* @__PURE__ */ g("p", {
659
+ children: [/* @__PURE__ */ v("p", {
515
660
  className: "font-semibold text-text-primary",
516
661
  children: t
517
- }), /* @__PURE__ */ g("p", {
662
+ }), /* @__PURE__ */ v("p", {
518
663
  className: "mt-0.5 text-sm text-text-secondary",
519
664
  children: n
520
665
  })]
521
666
  }),
522
- /* @__PURE__ */ g(m, {
667
+ /* @__PURE__ */ v(m, {
523
668
  size: 16,
524
669
  className: "mt-0.5 flex-shrink-0 text-text-secondary"
525
670
  })
526
671
  ]
527
672
  });
528
673
  //#endregion
529
- export { S as SetupPage };
674
+ export { w as SetupPage };
530
675
 
531
676
  //# sourceMappingURL=SetupPage.js.map