@burdenoff/microfe-devportal 2026.828.1 → 2026.830.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/AdminDevportalRoot.d.ts.map +1 -1
- package/dist/devportal/AdminDevportalRoot.js +16 -19
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoot.d.ts.map +1 -1
- package/dist/devportal/DevportalRoot.js +36 -39
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +41 -41
- package/dist/devportal/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/devportal/components/ConfirmDialog.js +19 -22
- package/dist/devportal/components/ConfirmDialog.js.map +1 -1
- package/dist/devportal/components/DataTable.d.ts.map +1 -1
- package/dist/devportal/components/DataTable.js +31 -34
- package/dist/devportal/components/DataTable.js.map +1 -1
- package/dist/devportal/components/FeatureFlaggedRoute.js +8 -8
- package/dist/devportal/components/FormField.d.ts.map +1 -1
- package/dist/devportal/components/FormField.js +26 -32
- package/dist/devportal/components/FormField.js.map +1 -1
- package/dist/devportal/components/GrantDelegationModal.js +64 -64
- package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
- package/dist/devportal/components/LoadingState.d.ts.map +1 -1
- package/dist/devportal/components/LoadingState.js +5 -8
- package/dist/devportal/components/LoadingState.js.map +1 -1
- package/dist/devportal/components/PageLayout.d.ts.map +1 -1
- package/dist/devportal/components/PageLayout.js +10 -13
- package/dist/devportal/components/PageLayout.js.map +1 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +11 -14
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/components/SecretDisplay.d.ts.map +1 -1
- package/dist/devportal/components/SecretDisplay.js +24 -30
- package/dist/devportal/components/SecretDisplay.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts.map +1 -1
- package/dist/devportal/components/SectionNav.js +24 -27
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/StatusBadge.d.ts.map +1 -1
- package/dist/devportal/components/StatusBadge.js +24 -33
- package/dist/devportal/components/StatusBadge.js.map +1 -1
- package/dist/devportal/index.d.ts +1 -0
- package/dist/devportal/index.d.ts.map +1 -1
- package/dist/devportal/index.js +1 -0
- package/dist/devportal/pages/AdminReviewPage.js +172 -172
- package/dist/devportal/pages/AnalyticsDashboardPage.js +43 -43
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +119 -119
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +45 -45
- package/dist/devportal/pages/ApplicationDetailPage.js +607 -607
- package/dist/devportal/pages/ApplicationVersionsPage.js +13 -13
- package/dist/devportal/pages/ApplicationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +104 -101
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +45 -45
- package/dist/devportal/pages/CreateApplicationPage.js +38 -38
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +52 -52
- package/dist/devportal/pages/CreateOrganizationPage.js +26 -26
- package/dist/devportal/pages/CreateWebhookPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +48 -48
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +66 -72
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +174 -174
- package/dist/devportal/pages/DocumentationPage.js +93 -93
- package/dist/devportal/pages/EditApplicationPage.js +14 -14
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js +75 -75
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +64 -64
- package/dist/devportal/pages/OrganizationDetailPage.js +189 -189
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +10 -10
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +163 -154
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +104 -104
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +55 -55
- package/dist/devportal/pages/ResourcesPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +83 -83
- package/dist/devportal/pages/SellerItemsPage.js +163 -163
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.js +63 -63
- package/dist/devportal/pages/SettingsPage.js +21 -21
- package/dist/devportal/pages/SetupPage.js +183 -183
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +123 -123
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +118 -118
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/i18n.d.ts +9 -2
- package/dist/devportal/utils/i18n.d.ts.map +1 -1
- package/dist/devportal/utils/i18n.js +13 -10
- package/dist/devportal/utils/i18n.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.d.ts +1251 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +1235 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
|
@@ -9,13 +9,13 @@ import { PermissionGuard as f } from "../components/PermissionGuard.js";
|
|
|
9
9
|
import "../components/index.js";
|
|
10
10
|
import "../hooks/index.js";
|
|
11
11
|
import { useState as p } from "react";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { Plus as m, Save as h, Trash2 as g, X as _ } from "lucide-react";
|
|
13
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
14
|
+
import { useI18n as b } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
15
15
|
import { OptionalFields as x } from "@burdenoff/fe-libs/ui";
|
|
16
16
|
//#region src/devportal/pages/CreateOAuthClientPage.tsx
|
|
17
17
|
var S = () => {
|
|
18
|
-
let { navigate: S, basePath: C } = e(), { t: w } =
|
|
18
|
+
let { navigate: S, basePath: C } = e(), { t: w } = b(), T = (e, t) => {
|
|
19
19
|
let n = w(e);
|
|
20
20
|
return n === e ? t : n;
|
|
21
21
|
}, [E, D] = p(""), [O, k] = p(""), [A, j] = p("CONFIDENTIAL"), [M, N] = p([]), [P, F] = p(""), [I, L] = p([]), [R, z] = p(""), [B, V] = p(null), [H, U] = p(null), [W, { loading: G, error: K }] = n(), q = (e) => {
|
|
@@ -31,47 +31,47 @@ var S = () => {
|
|
|
31
31
|
}, Z = (e) => {
|
|
32
32
|
L(I.filter((t) => t !== e));
|
|
33
33
|
};
|
|
34
|
-
return B ? /* @__PURE__ */
|
|
34
|
+
return B ? /* @__PURE__ */ v(i, {
|
|
35
35
|
title: T("devportal.appCreated", "App Created!"),
|
|
36
36
|
description: T("devportal.appCreatedDescription", "Save the client secret below. It will not be shown again."),
|
|
37
37
|
backLink: "/oauth",
|
|
38
38
|
backLabel: T("devportal.backToOAuthApps", "Back to OAuth Apps"),
|
|
39
|
-
children: /* @__PURE__ */
|
|
39
|
+
children: /* @__PURE__ */ y("div", {
|
|
40
40
|
className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-6",
|
|
41
41
|
children: [
|
|
42
|
-
/* @__PURE__ */
|
|
42
|
+
/* @__PURE__ */ v("h3", {
|
|
43
43
|
className: "font-medium text-status-success-text",
|
|
44
44
|
children: T("devportal.oauthAppCreated", "Your OAuth App has been created")
|
|
45
45
|
}),
|
|
46
|
-
/* @__PURE__ */
|
|
46
|
+
/* @__PURE__ */ y("div", {
|
|
47
47
|
className: "mt-4 space-y-3",
|
|
48
|
-
children: [/* @__PURE__ */
|
|
48
|
+
children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
49
49
|
className: "text-xs font-medium text-status-success-text",
|
|
50
50
|
children: T("devportal.clientSecret", "Client Secret")
|
|
51
|
-
}), /* @__PURE__ */
|
|
51
|
+
}), /* @__PURE__ */ y("div", {
|
|
52
52
|
className: "mt-1 flex items-center gap-2",
|
|
53
|
-
children: [/* @__PURE__ */
|
|
53
|
+
children: [/* @__PURE__ */ v("code", {
|
|
54
54
|
className: "flex-1 rounded border bg-bg-surface px-3 py-2 text-sm font-mono break-all",
|
|
55
55
|
children: B
|
|
56
|
-
}), /* @__PURE__ */
|
|
56
|
+
}), /* @__PURE__ */ v("button", {
|
|
57
57
|
onClick: async () => {
|
|
58
58
|
s("light"), c(await o(B) ? "success" : "error");
|
|
59
59
|
},
|
|
60
60
|
className: "rounded bg-status-success-bg-subtle px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle transition-colors",
|
|
61
61
|
children: T("devportal.copy", "Copy")
|
|
62
62
|
})]
|
|
63
|
-
})] }), /* @__PURE__ */
|
|
63
|
+
})] }), /* @__PURE__ */ v("p", {
|
|
64
64
|
className: "text-sm text-status-success-text",
|
|
65
65
|
children: T("devportal.storeSecretSecurely", "Store this secret securely. You will not be able to see it again.")
|
|
66
66
|
})]
|
|
67
67
|
}),
|
|
68
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ y("div", {
|
|
69
69
|
className: "mt-6 flex gap-3",
|
|
70
|
-
children: [H && /* @__PURE__ */
|
|
70
|
+
children: [H && /* @__PURE__ */ v("button", {
|
|
71
71
|
onClick: () => q(`/oauth/${H}`),
|
|
72
72
|
className: "rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
|
|
73
73
|
children: T("devportal.viewAppDetails", "View App Details")
|
|
74
|
-
}), /* @__PURE__ */
|
|
74
|
+
}), /* @__PURE__ */ v("button", {
|
|
75
75
|
onClick: () => q("/oauth"),
|
|
76
76
|
className: "rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken transition-colors",
|
|
77
77
|
children: T("devportal.backToOAuthApps", "Back to OAuth Apps")
|
|
@@ -79,15 +79,15 @@ var S = () => {
|
|
|
79
79
|
})
|
|
80
80
|
]
|
|
81
81
|
})
|
|
82
|
-
}) : /* @__PURE__ */
|
|
82
|
+
}) : /* @__PURE__ */ v(f, {
|
|
83
83
|
authOnly: !0,
|
|
84
|
-
children: /* @__PURE__ */
|
|
84
|
+
children: /* @__PURE__ */ v(i, {
|
|
85
85
|
title: T("devportal.createOAuthApp", "Create OAuth App"),
|
|
86
86
|
description: T("devportal.createOAuthAppDescription", "Register a new OAuth application for authentication"),
|
|
87
87
|
purpose: T("devportal.createOAuthAppPurpose", "Register an OAuth app so an external service can let users sign in with their account and call the API on their behalf. Set its redirect URIs and request only the scopes it needs — you will receive a client ID and secret to finish the integration."),
|
|
88
88
|
backLink: "/oauth",
|
|
89
89
|
backLabel: T("devportal.backToOAuthApps", "Back to OAuth Apps"),
|
|
90
|
-
children: /* @__PURE__ */
|
|
90
|
+
children: /* @__PURE__ */ y("form", {
|
|
91
91
|
onSubmit: async (e) => {
|
|
92
92
|
if (e.preventDefault(), E.trim()) try {
|
|
93
93
|
let e = await W({ variables: { input: {
|
|
@@ -102,30 +102,30 @@ var S = () => {
|
|
|
102
102
|
},
|
|
103
103
|
className: "space-y-6 max-w-2xl",
|
|
104
104
|
children: [
|
|
105
|
-
K && /* @__PURE__ */
|
|
105
|
+
K && /* @__PURE__ */ v("div", {
|
|
106
106
|
className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-4",
|
|
107
|
-
children: /* @__PURE__ */
|
|
107
|
+
children: /* @__PURE__ */ v("p", {
|
|
108
108
|
className: "text-sm text-status-error-text",
|
|
109
109
|
children: r(K)
|
|
110
110
|
})
|
|
111
111
|
}),
|
|
112
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ y(a, {
|
|
113
113
|
title: T("devportal.basicInformation", "Basic Information"),
|
|
114
114
|
children: [
|
|
115
|
-
/* @__PURE__ */
|
|
115
|
+
/* @__PURE__ */ v(l, {
|
|
116
116
|
label: T("devportal.appName", "App Name"),
|
|
117
117
|
value: E,
|
|
118
118
|
onChange: (e) => D(e.target.value),
|
|
119
119
|
placeholder: T("devportal.myOAuthAppPlaceholder", "My OAuth App"),
|
|
120
120
|
required: !0
|
|
121
121
|
}),
|
|
122
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ v(d, {
|
|
123
123
|
label: T("devportal.description", "Description"),
|
|
124
124
|
value: O,
|
|
125
125
|
onChange: (e) => k(e.target.value),
|
|
126
126
|
placeholder: T("devportal.appDescriptionPlaceholder", "Brief description of what this app does...")
|
|
127
127
|
}),
|
|
128
|
-
/* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ v(u, {
|
|
129
129
|
label: T("devportal.appType", "App Type"),
|
|
130
130
|
value: A,
|
|
131
131
|
onChange: (e) => j(e.target.value),
|
|
@@ -154,16 +154,16 @@ var S = () => {
|
|
|
154
154
|
})
|
|
155
155
|
]
|
|
156
156
|
}),
|
|
157
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ y(x, {
|
|
158
158
|
title: T("devportal.advancedOAuthSettings", "Advanced settings"),
|
|
159
159
|
description: T("devportal.advancedOAuthSettingsDescription", "Advanced grant types, PKCE-required toggles, scope tuning, and redirect URIs."),
|
|
160
|
-
children: [/* @__PURE__ */
|
|
160
|
+
children: [/* @__PURE__ */ v(a, {
|
|
161
161
|
title: T("devportal.scopes", "Scopes"),
|
|
162
|
-
children: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ y("div", {
|
|
163
163
|
className: "space-y-3",
|
|
164
|
-
children: [/* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ y("div", {
|
|
165
165
|
className: "flex items-center gap-2",
|
|
166
|
-
children: [/* @__PURE__ */
|
|
166
|
+
children: [/* @__PURE__ */ v("input", {
|
|
167
167
|
type: "text",
|
|
168
168
|
value: P,
|
|
169
169
|
onChange: (e) => F(e.target.value),
|
|
@@ -172,32 +172,32 @@ var S = () => {
|
|
|
172
172
|
},
|
|
173
173
|
placeholder: "e.g. workspace:read",
|
|
174
174
|
className: "flex-1 rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
|
|
175
|
-
}), /* @__PURE__ */
|
|
175
|
+
}), /* @__PURE__ */ v("button", {
|
|
176
176
|
type: "button",
|
|
177
177
|
onClick: J,
|
|
178
178
|
className: "rounded-md bg-action-primary-bg/10 p-2 text-primary hover:bg-action-primary-bg/20 transition-colors",
|
|
179
|
-
children: /* @__PURE__ */
|
|
179
|
+
children: /* @__PURE__ */ v(m, { size: 16 })
|
|
180
180
|
})]
|
|
181
|
-
}), M.length > 0 && /* @__PURE__ */
|
|
181
|
+
}), M.length > 0 && /* @__PURE__ */ v("div", {
|
|
182
182
|
className: "flex flex-wrap gap-2",
|
|
183
|
-
children: M.map((e) => /* @__PURE__ */
|
|
183
|
+
children: M.map((e) => /* @__PURE__ */ y("span", {
|
|
184
184
|
className: "inline-flex items-center gap-1 rounded-full bg-action-primary-bg/10 px-3 py-1 text-xs font-medium text-primary",
|
|
185
|
-
children: [e, /* @__PURE__ */
|
|
185
|
+
children: [e, /* @__PURE__ */ v("button", {
|
|
186
186
|
type: "button",
|
|
187
187
|
onClick: () => Y(e),
|
|
188
188
|
className: "hover:text-status-error-text",
|
|
189
|
-
children: /* @__PURE__ */
|
|
189
|
+
children: /* @__PURE__ */ v(_, { size: 12 })
|
|
190
190
|
})]
|
|
191
191
|
}, e))
|
|
192
192
|
})]
|
|
193
193
|
})
|
|
194
|
-
}), /* @__PURE__ */
|
|
194
|
+
}), /* @__PURE__ */ v(a, {
|
|
195
195
|
title: T("devportal.redirectUris", "Redirect URIs"),
|
|
196
|
-
children: /* @__PURE__ */
|
|
196
|
+
children: /* @__PURE__ */ y("div", {
|
|
197
197
|
className: "space-y-3",
|
|
198
|
-
children: [/* @__PURE__ */
|
|
198
|
+
children: [/* @__PURE__ */ y("div", {
|
|
199
199
|
className: "flex items-center gap-2",
|
|
200
|
-
children: [/* @__PURE__ */
|
|
200
|
+
children: [/* @__PURE__ */ v("input", {
|
|
201
201
|
type: "url",
|
|
202
202
|
value: R,
|
|
203
203
|
onChange: (e) => z(e.target.value),
|
|
@@ -206,42 +206,42 @@ var S = () => {
|
|
|
206
206
|
},
|
|
207
207
|
placeholder: "https://example.com/callback",
|
|
208
208
|
className: "flex-1 rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
|
|
209
|
-
}), /* @__PURE__ */
|
|
209
|
+
}), /* @__PURE__ */ v("button", {
|
|
210
210
|
type: "button",
|
|
211
211
|
onClick: X,
|
|
212
212
|
className: "rounded-md bg-action-primary-bg/10 p-2 text-primary hover:bg-action-primary-bg/20 transition-colors",
|
|
213
|
-
children: /* @__PURE__ */
|
|
213
|
+
children: /* @__PURE__ */ v(m, { size: 16 })
|
|
214
214
|
})]
|
|
215
|
-
}), I.length > 0 && /* @__PURE__ */
|
|
215
|
+
}), I.length > 0 && /* @__PURE__ */ v("div", {
|
|
216
216
|
className: "space-y-2",
|
|
217
|
-
children: I.map((e) => /* @__PURE__ */
|
|
217
|
+
children: I.map((e) => /* @__PURE__ */ y("div", {
|
|
218
218
|
className: "flex items-center gap-2",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
219
|
+
children: [/* @__PURE__ */ v("code", {
|
|
220
220
|
className: "flex-1 rounded bg-bg-sunken px-3 py-1.5 text-sm font-mono",
|
|
221
221
|
children: e
|
|
222
|
-
}), /* @__PURE__ */
|
|
222
|
+
}), /* @__PURE__ */ v("button", {
|
|
223
223
|
type: "button",
|
|
224
224
|
onClick: () => Z(e),
|
|
225
225
|
className: "rounded p-1 text-text-secondary hover:text-status-error-text transition-colors",
|
|
226
|
-
children: /* @__PURE__ */
|
|
226
|
+
children: /* @__PURE__ */ v(g, { size: 14 })
|
|
227
227
|
})]
|
|
228
228
|
}, e))
|
|
229
229
|
})]
|
|
230
230
|
})
|
|
231
231
|
})]
|
|
232
232
|
}),
|
|
233
|
-
/* @__PURE__ */
|
|
233
|
+
/* @__PURE__ */ y("div", {
|
|
234
234
|
className: "flex items-center gap-3 pt-4 border-t",
|
|
235
|
-
children: [/* @__PURE__ */
|
|
235
|
+
children: [/* @__PURE__ */ y("button", {
|
|
236
236
|
type: "submit",
|
|
237
237
|
disabled: G || !E.trim(),
|
|
238
238
|
className: t("inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium transition-colors", "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90", "disabled:opacity-50 disabled:cursor-not-allowed"),
|
|
239
|
-
children: [/* @__PURE__ */
|
|
240
|
-
}), /* @__PURE__ */
|
|
239
|
+
children: [/* @__PURE__ */ v(h, { size: 16 }), G ? T("devportal.creating", "Creating...") : T("devportal.createOAuthApp", "Create OAuth App")]
|
|
240
|
+
}), /* @__PURE__ */ y("button", {
|
|
241
241
|
type: "button",
|
|
242
242
|
onClick: () => q("/oauth"),
|
|
243
243
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken transition-colors",
|
|
244
|
-
children: [/* @__PURE__ */
|
|
244
|
+
children: [/* @__PURE__ */ v(_, { size: 16 }), T("devportal.cancel", "Cancel")]
|
|
245
245
|
})]
|
|
246
246
|
})
|
|
247
247
|
]
|
|
@@ -7,12 +7,12 @@ import { PermissionGuard as l } from "../components/PermissionGuard.js";
|
|
|
7
7
|
import "../components/index.js";
|
|
8
8
|
import "../hooks/index.js";
|
|
9
9
|
import { useState as u } from "react";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { Building2 as d, Info as f, X as p } from "lucide-react";
|
|
11
|
+
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
12
|
+
import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
13
13
|
//#region src/devportal/pages/CreateOrganizationPage.tsx
|
|
14
14
|
var v = () => {
|
|
15
|
-
let { navigate: v, basePath: y, currentUser: b } = e(), { t: x } =
|
|
15
|
+
let { navigate: v, basePath: y, currentUser: b } = e(), { t: x } = _(), S = (e, t) => {
|
|
16
16
|
let n = x(e);
|
|
17
17
|
return n === e ? t : n;
|
|
18
18
|
}, [C, w] = u({}), [T, { loading: E }] = r(), [D] = n(), [O] = i(), k = t(), [A, j] = u({
|
|
@@ -46,15 +46,15 @@ var v = () => {
|
|
|
46
46
|
let e = {};
|
|
47
47
|
return A.name.trim() ? A.name.length < 2 ? e.name = S("devportal.orgNameTooShort", "Name must be at least 2 characters") : A.name.length > 100 && (e.name = S("devportal.nameTooLong", "Name must be less than 100 characters")) : e.name = S("devportal.orgNameRequired", "Organization name is required"), A.slug.trim() ? /^[a-z0-9-]+$/.test(A.slug) || (e.slug = S("devportal.slugInvalid", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = S("devportal.slugRequired", "Slug is required"), A.contactEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(A.contactEmail) && (e.contactEmail = S("devportal.invalidEmailAddress", "Invalid email address")), A.supportEmail && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(A.supportEmail) && (e.supportEmail = S("devportal.invalidEmailAddress", "Invalid email address")), w(e), Object.keys(e).length === 0;
|
|
48
48
|
};
|
|
49
|
-
return /* @__PURE__ */
|
|
49
|
+
return /* @__PURE__ */ h(l, {
|
|
50
50
|
authOnly: !0,
|
|
51
|
-
children: /* @__PURE__ */
|
|
51
|
+
children: /* @__PURE__ */ h(a, {
|
|
52
52
|
title: S("devportal.createOrganization", "Create Organization"),
|
|
53
53
|
description: S("devportal.createOrganizationDescription", "Set up a developer organization to collaborate with your team"),
|
|
54
54
|
purpose: S("devportal.createOrganizationPurpose", "An organization is the shared owner of your apps, members, and revenue. Create one here so your team works under a single identity — pick a name and tier now; you can invite members and verify it afterwards."),
|
|
55
55
|
backLink: `${y}/organizations`,
|
|
56
56
|
backLabel: S("devportal.backToOrganizations", "Back to Organizations"),
|
|
57
|
-
children: /* @__PURE__ */
|
|
57
|
+
children: /* @__PURE__ */ g("form", {
|
|
58
58
|
onSubmit: async (e) => {
|
|
59
59
|
if (e.preventDefault(), I()) try {
|
|
60
60
|
let e = (await T({ variables: { input: {
|
|
@@ -88,13 +88,13 @@ var v = () => {
|
|
|
88
88
|
},
|
|
89
89
|
className: "space-y-8 max-w-3xl",
|
|
90
90
|
children: [
|
|
91
|
-
/* @__PURE__ */
|
|
91
|
+
/* @__PURE__ */ h(o, {
|
|
92
92
|
title: S("devportal.organizationDetails", "Organization Details"),
|
|
93
93
|
description: S("devportal.organizationDetailsDescription", "Basic information about your organization"),
|
|
94
|
-
children: /* @__PURE__ */
|
|
94
|
+
children: /* @__PURE__ */ g("div", {
|
|
95
95
|
className: "space-y-4",
|
|
96
96
|
children: [
|
|
97
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ h(s, {
|
|
98
98
|
label: S("devportal.organizationName", "Organization Name"),
|
|
99
99
|
value: A.name,
|
|
100
100
|
onChange: P,
|
|
@@ -103,7 +103,7 @@ var v = () => {
|
|
|
103
103
|
error: C.name,
|
|
104
104
|
hint: S("devportal.organizationNameHint", "Your organization's display name")
|
|
105
105
|
}),
|
|
106
|
-
/* @__PURE__ */
|
|
106
|
+
/* @__PURE__ */ h(s, {
|
|
107
107
|
label: S("devportal.slug", "Slug"),
|
|
108
108
|
value: A.slug,
|
|
109
109
|
onChange: (e) => F("slug", e.target.value.toLowerCase()),
|
|
@@ -112,30 +112,30 @@ var v = () => {
|
|
|
112
112
|
error: C.slug,
|
|
113
113
|
hint: S("devportal.slugHint", "URL-friendly identifier (auto-generated from name)")
|
|
114
114
|
}),
|
|
115
|
-
/* @__PURE__ */
|
|
115
|
+
/* @__PURE__ */ h(c, {
|
|
116
116
|
label: S("devportal.description", "Description"),
|
|
117
117
|
value: A.description,
|
|
118
118
|
onChange: (e) => F("description", e.target.value),
|
|
119
119
|
placeholder: S("devportal.orgDescriptionPlaceholder", "Tell us about your organization..."),
|
|
120
120
|
rows: 3
|
|
121
121
|
}),
|
|
122
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ h(s, {
|
|
123
123
|
label: S("devportal.websiteUrl", "Website URL"),
|
|
124
124
|
type: "url",
|
|
125
125
|
value: A.websiteUrl,
|
|
126
126
|
onChange: (e) => F("websiteUrl", e.target.value),
|
|
127
127
|
placeholder: "https://example.com"
|
|
128
128
|
}),
|
|
129
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ g("div", {
|
|
130
130
|
className: "grid gap-4 sm:grid-cols-2",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
131
|
+
children: [/* @__PURE__ */ h(s, {
|
|
132
132
|
label: S("devportal.contactEmail", "Contact Email"),
|
|
133
133
|
type: "email",
|
|
134
134
|
value: A.contactEmail,
|
|
135
135
|
onChange: (e) => F("contactEmail", e.target.value),
|
|
136
136
|
placeholder: "contact@example.com",
|
|
137
137
|
error: C.contactEmail
|
|
138
|
-
}), /* @__PURE__ */
|
|
138
|
+
}), /* @__PURE__ */ h(s, {
|
|
139
139
|
label: S("devportal.supportEmail", "Support Email"),
|
|
140
140
|
type: "email",
|
|
141
141
|
value: A.supportEmail,
|
|
@@ -147,37 +147,37 @@ var v = () => {
|
|
|
147
147
|
]
|
|
148
148
|
})
|
|
149
149
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ g("div", {
|
|
151
151
|
className: "rounded-lg border border-border-subtle bg-status-info-bg-subtle p-4 flex gap-3",
|
|
152
|
-
children: [/* @__PURE__ */
|
|
152
|
+
children: [/* @__PURE__ */ h(f, {
|
|
153
153
|
size: 20,
|
|
154
154
|
className: "text-accent-blue flex-shrink-0 mt-0.5"
|
|
155
|
-
}), /* @__PURE__ */
|
|
155
|
+
}), /* @__PURE__ */ g("div", {
|
|
156
156
|
className: "text-sm text-status-info-text",
|
|
157
|
-
children: [/* @__PURE__ */
|
|
157
|
+
children: [/* @__PURE__ */ h("p", {
|
|
158
158
|
className: "font-medium",
|
|
159
159
|
children: S("devportal.billingAutoSetup", "A billing account will be automatically set up")
|
|
160
|
-
}), /* @__PURE__ */
|
|
160
|
+
}), /* @__PURE__ */ h("p", {
|
|
161
161
|
className: "mt-1",
|
|
162
162
|
children: S("devportal.billingAutoSetupNote", "Revenue from app sales will be credited to it. You can complete legal and tax details for payouts later in Organization Settings.")
|
|
163
163
|
})]
|
|
164
164
|
})]
|
|
165
165
|
}),
|
|
166
|
-
/* @__PURE__ */
|
|
166
|
+
/* @__PURE__ */ g("div", {
|
|
167
167
|
className: "flex items-center justify-end gap-3 border-t pt-6",
|
|
168
|
-
children: [/* @__PURE__ */
|
|
168
|
+
children: [/* @__PURE__ */ g("button", {
|
|
169
169
|
type: "button",
|
|
170
170
|
onClick: () => {
|
|
171
171
|
M("/organizations");
|
|
172
172
|
},
|
|
173
173
|
disabled: E,
|
|
174
174
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken transition-colors disabled:opacity-50",
|
|
175
|
-
children: [/* @__PURE__ */
|
|
176
|
-
}), /* @__PURE__ */
|
|
175
|
+
children: [/* @__PURE__ */ h(p, { size: 16 }), S("devportal.cancel", "Cancel")]
|
|
176
|
+
}), /* @__PURE__ */ h("button", {
|
|
177
177
|
type: "submit",
|
|
178
178
|
disabled: E,
|
|
179
179
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50",
|
|
180
|
-
children: E ? /* @__PURE__ */
|
|
180
|
+
children: E ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), S("devportal.creating", "Creating...")] }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(d, { size: 16 }), S("devportal.createOrganization", "Create Organization")] })
|
|
181
181
|
})]
|
|
182
182
|
})
|
|
183
183
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWebhookPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/CreateWebhookPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAwD3C,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"CreateWebhookPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/CreateWebhookPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAwD3C,eAAO,MAAM,iBAAiB,EAAE,EAghB/B,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { useTr as t } from "../utils/i18n.js";
|
|
3
|
+
import { useDevportalEventBus as n } from "../events/index.js";
|
|
4
|
+
import { useCreateWebhookMutation as r, useGetApplicationQuery as i, useGetApplicationsQuery as a } from "../../generated/global-operations.js";
|
|
5
|
+
import { getErrorMessage as o } from "../hooks/useGraphQL.js";
|
|
6
|
+
import { PageLayout as s, PageSection as c } from "../components/PageLayout.js";
|
|
7
|
+
import { CheckboxField as l, InputField as u, TextareaField as d } from "../components/FormField.js";
|
|
8
|
+
import { Alert as f } from "../components/ConfirmDialog.js";
|
|
9
|
+
import { PermissionGuard as p } from "../components/PermissionGuard.js";
|
|
9
10
|
import "../components/index.js";
|
|
10
|
-
import { useDevportalPermission as
|
|
11
|
+
import { useDevportalPermission as m } from "../hooks/usePermission.js";
|
|
11
12
|
import "../hooks/index.js";
|
|
12
|
-
import { WEBHOOK_EVENTS as
|
|
13
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
14
|
-
import { useTr as g } from "../utils/i18n.js";
|
|
13
|
+
import { WEBHOOK_EVENTS as h } from "../types/index.js";
|
|
14
|
+
import { DEVPORTAL_PERMISSIONS as g } from "../constants/permissions.js";
|
|
15
15
|
import { useEffect as _, useMemo as v, useState as y } from "react";
|
|
16
16
|
import { Loader2 as b, Webhook as x } from "lucide-react";
|
|
17
17
|
import { useParams as S } from "react-router";
|
|
@@ -19,40 +19,40 @@ import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
|
19
19
|
import { ShowMore as T } from "@burdenoff/fe-libs/ui";
|
|
20
20
|
//#region src/devportal/pages/CreateWebhookPage.tsx
|
|
21
21
|
var E = {
|
|
22
|
-
Application:
|
|
23
|
-
Installation:
|
|
24
|
-
User:
|
|
25
|
-
Workspace:
|
|
26
|
-
Project:
|
|
27
|
-
Task:
|
|
28
|
-
Comment:
|
|
29
|
-
File:
|
|
30
|
-
Member:
|
|
22
|
+
Application: h.filter((e) => e.startsWith("application.")),
|
|
23
|
+
Installation: h.filter((e) => e.startsWith("installation.")),
|
|
24
|
+
User: h.filter((e) => e.startsWith("user.")),
|
|
25
|
+
Workspace: h.filter((e) => e.startsWith("workspace.")),
|
|
26
|
+
Project: h.filter((e) => e.startsWith("project.")),
|
|
27
|
+
Task: h.filter((e) => e.startsWith("task.")),
|
|
28
|
+
Comment: h.filter((e) => e.startsWith("comment.")),
|
|
29
|
+
File: h.filter((e) => e.startsWith("file.")),
|
|
30
|
+
Member: h.filter((e) => e.startsWith("member."))
|
|
31
31
|
}, D = () => {
|
|
32
|
-
let { appId:
|
|
33
|
-
applicationId:
|
|
32
|
+
let { appId: h } = S(), { navigate: D, basePath: O } = e(), [k, A] = y({
|
|
33
|
+
applicationId: h || "",
|
|
34
34
|
name: "",
|
|
35
35
|
description: "",
|
|
36
36
|
url: "",
|
|
37
37
|
events: [],
|
|
38
38
|
retryEnabled: !0,
|
|
39
39
|
maxRetries: 3
|
|
40
|
-
}), [j, M] = y({}), [N, P] = y(null), { data: F } =
|
|
41
|
-
variables: { id:
|
|
42
|
-
skip: !
|
|
40
|
+
}), [j, M] = y({}), [N, P] = y(null), { data: F } = i({
|
|
41
|
+
variables: { id: h ?? "" },
|
|
42
|
+
skip: !h,
|
|
43
43
|
fetchPolicy: "cache-first"
|
|
44
44
|
});
|
|
45
45
|
_(() => {
|
|
46
46
|
let e = F?.application?.name;
|
|
47
|
-
if (!
|
|
47
|
+
if (!h || !e) return;
|
|
48
48
|
let t = window.__breadcrumbRegistry;
|
|
49
|
-
return t?.register(
|
|
50
|
-
}, [
|
|
51
|
-
let { data: I, loading: L, error: R } =
|
|
49
|
+
return t?.register(h, e), () => t?.unregister(h);
|
|
50
|
+
}, [h, F?.application?.name]);
|
|
51
|
+
let { data: I, loading: L, error: R } = a({
|
|
52
52
|
variables: { limit: 100 },
|
|
53
|
-
skip: !!
|
|
53
|
+
skip: !!h,
|
|
54
54
|
fetchPolicy: "cache-and-network"
|
|
55
|
-
}), [z, { loading: B }] =
|
|
55
|
+
}), [z, { loading: B }] = r(), V = n(), H = t(), U = m(g.WEBHOOK_CREATE), W = v(() => I?.applications?.edges?.map((e) => e.node).map((e) => ({
|
|
56
56
|
id: e.id,
|
|
57
57
|
name: e.name,
|
|
58
58
|
slug: e.slug
|
|
@@ -80,9 +80,9 @@ var E = {
|
|
|
80
80
|
let e = {};
|
|
81
81
|
return k.applicationId || (e.applicationId = H("devportal.createWebhook.errors.appRequired", "Select an application")), k.name.trim() || (e.name = H("devportal.createWebhook.errors.nameRequired", "Name is required")), k.url.trim() ? /^https:\/\//i.test(k.url) || (e.url = H("devportal.createWebhook.errors.urlHttps", "Endpoint URL must use HTTPS")) : e.url = H("devportal.createWebhook.errors.urlRequired", "Endpoint URL is required"), k.events.length === 0 && (e.events = H("devportal.createWebhook.errors.eventsRequired", "Select at least one event")), k.retryEnabled && (k.maxRetries < 1 || k.maxRetries > 10) && (e.maxRetries = H("devportal.createWebhook.errors.retriesRange", "Retry count must be between 1 and 10")), M(e), Object.keys(e).length === 0;
|
|
82
82
|
};
|
|
83
|
-
return /* @__PURE__ */ C(
|
|
83
|
+
return /* @__PURE__ */ C(p, {
|
|
84
84
|
authOnly: !0,
|
|
85
|
-
children: /* @__PURE__ */ C(
|
|
85
|
+
children: /* @__PURE__ */ C(s, {
|
|
86
86
|
title: H("devportal.createWebhook.title", "Create Webhook"),
|
|
87
87
|
description: H("devportal.createWebhook.description", "Set up a real webhook endpoint to receive platform events through the public gateway"),
|
|
88
88
|
purpose: H("devportal.createWebhook.purpose", "Point a webhook at a URL you host so the platform pushes events (installs, payments, app updates) to your backend in real time. Choose which events to subscribe to; you will get a signing secret to verify that deliveries genuinely came from us."),
|
|
@@ -114,24 +114,24 @@ var E = {
|
|
|
114
114
|
},
|
|
115
115
|
className: "space-y-6",
|
|
116
116
|
children: [
|
|
117
|
-
/* @__PURE__ */ C(
|
|
117
|
+
/* @__PURE__ */ C(f, {
|
|
118
118
|
variant: "info",
|
|
119
119
|
children: H("devportal.createWebhook.info", "Webhook deliveries are signed and sent through the public global gateway. Use an HTTPS endpoint that accepts POST requests and returns a 2xx response for successful deliveries.")
|
|
120
120
|
}),
|
|
121
|
-
N && /* @__PURE__ */ C(
|
|
121
|
+
N && /* @__PURE__ */ C(f, {
|
|
122
122
|
variant: "error",
|
|
123
123
|
children: N
|
|
124
124
|
}),
|
|
125
|
-
R && !
|
|
125
|
+
R && !h && /* @__PURE__ */ C(f, {
|
|
126
126
|
variant: "error",
|
|
127
|
-
children:
|
|
127
|
+
children: o(R)
|
|
128
128
|
}),
|
|
129
|
-
/* @__PURE__ */ C(
|
|
129
|
+
/* @__PURE__ */ C(c, {
|
|
130
130
|
title: H("devportal.createWebhook.basicInfo", "Basic Information"),
|
|
131
131
|
children: /* @__PURE__ */ w("div", {
|
|
132
132
|
className: "space-y-4 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
133
133
|
children: [
|
|
134
|
-
!
|
|
134
|
+
!h && /* @__PURE__ */ w("label", {
|
|
135
135
|
className: "grid gap-2 text-sm font-medium",
|
|
136
136
|
children: [
|
|
137
137
|
/* @__PURE__ */ C("span", { children: H("devportal.createWebhook.application", "Application") }),
|
|
@@ -155,7 +155,7 @@ var E = {
|
|
|
155
155
|
})
|
|
156
156
|
]
|
|
157
157
|
}),
|
|
158
|
-
L && !
|
|
158
|
+
L && !h && /* @__PURE__ */ w("div", {
|
|
159
159
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
160
160
|
role: "status",
|
|
161
161
|
"aria-live": "polite",
|
|
@@ -175,7 +175,7 @@ var E = {
|
|
|
175
175
|
})
|
|
176
176
|
]
|
|
177
177
|
}),
|
|
178
|
-
/* @__PURE__ */ C(
|
|
178
|
+
/* @__PURE__ */ C(u, {
|
|
179
179
|
label: H("devportal.createWebhook.webhookName", "Webhook Name"),
|
|
180
180
|
value: k.name,
|
|
181
181
|
onChange: (e) => K("name", e.target.value),
|
|
@@ -183,19 +183,19 @@ var E = {
|
|
|
183
183
|
error: j.name,
|
|
184
184
|
required: !0
|
|
185
185
|
}),
|
|
186
|
-
/* @__PURE__ */ C(
|
|
186
|
+
/* @__PURE__ */ C(d, {
|
|
187
187
|
label: H("devportal.createWebhook.descriptionLabel", "Description"),
|
|
188
188
|
value: k.description,
|
|
189
189
|
onChange: (e) => K("description", e.target.value),
|
|
190
190
|
placeholder: H("devportal.createWebhook.descriptionPlaceholder", "What this webhook is used for"),
|
|
191
191
|
rows: 2
|
|
192
192
|
}),
|
|
193
|
-
/* @__PURE__ */ C(
|
|
193
|
+
/* @__PURE__ */ C(u, {
|
|
194
194
|
label: H("devportal.createWebhook.endpointUrl", "Endpoint URL"),
|
|
195
195
|
type: "url",
|
|
196
196
|
value: k.url,
|
|
197
197
|
onChange: (e) => K("url", e.target.value),
|
|
198
|
-
placeholder: "https://your-app.example.com/webhooks/burdenoff",
|
|
198
|
+
placeholder: H("devportal.createWebhook.endpointPlaceholder", "https://your-app.example.com/webhooks/burdenoff"),
|
|
199
199
|
hint: H("devportal.createWebhook.httpsOnly", "HTTPS only"),
|
|
200
200
|
error: j.url,
|
|
201
201
|
required: !0
|
|
@@ -203,7 +203,7 @@ var E = {
|
|
|
203
203
|
]
|
|
204
204
|
})
|
|
205
205
|
}),
|
|
206
|
-
/* @__PURE__ */ C(
|
|
206
|
+
/* @__PURE__ */ C(c, {
|
|
207
207
|
title: H("devportal.createWebhook.subscribedEvents", "Subscribed Events"),
|
|
208
208
|
children: /* @__PURE__ */ w("div", {
|
|
209
209
|
className: "rounded-card border border-border-seam bg-bg-surface p-4",
|
|
@@ -250,16 +250,16 @@ var E = {
|
|
|
250
250
|
})]
|
|
251
251
|
})
|
|
252
252
|
}),
|
|
253
|
-
/* @__PURE__ */ C(
|
|
253
|
+
/* @__PURE__ */ C(c, {
|
|
254
254
|
title: H("devportal.createWebhook.retrySettings", "Retry Settings"),
|
|
255
255
|
children: /* @__PURE__ */ w("div", {
|
|
256
256
|
className: "space-y-4 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
257
|
-
children: [/* @__PURE__ */ C(
|
|
257
|
+
children: [/* @__PURE__ */ C(l, {
|
|
258
258
|
label: H("devportal.createWebhook.enableRetries", "Enable retries"),
|
|
259
259
|
description: H("devportal.createWebhook.enableRetriesDesc", "Retry failed deliveries automatically"),
|
|
260
260
|
checked: k.retryEnabled,
|
|
261
261
|
onChange: (e) => K("retryEnabled", e.target.checked)
|
|
262
|
-
}), k.retryEnabled && /* @__PURE__ */ C(
|
|
262
|
+
}), k.retryEnabled && /* @__PURE__ */ C(u, {
|
|
263
263
|
label: H("devportal.createWebhook.maxRetries", "Maximum retries"),
|
|
264
264
|
type: "number",
|
|
265
265
|
value: k.maxRetries,
|