@burdenoff/microfe-auth 2026.527.1 → 2026.527.3
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/auth/AuthRoutes.js +1 -1
- package/dist/auth/AuthRoutes.js.map +1 -1
- package/dist/auth/components/AuthLayout.js +14 -14
- package/dist/auth/components/AuthLayout.js.map +1 -1
- package/dist/auth/components/CaptchaV2.js +1 -4
- package/dist/auth/components/CaptchaV2.js.map +1 -1
- package/dist/auth/components/ConfirmActionDialog.js +3 -3
- package/dist/auth/components/ConfirmActionDialog.js.map +1 -1
- package/dist/auth/components/profile/UserProfileMenu.js +10 -6
- package/dist/auth/components/profile/UserProfileMenu.js.map +1 -1
- package/dist/auth/components/workspace/WorkspaceSelector.js +108 -98
- package/dist/auth/components/workspace/WorkspaceSelector.js.map +1 -1
- package/dist/auth/hooks/index.js +2 -2
- package/dist/auth/hooks/useContextSwitcherData.js +1 -1
- package/dist/auth/hooks/useContextSwitcherData.js.map +1 -1
- package/dist/auth/hooks/useMyWorkspaces.js +1 -1
- package/dist/auth/hooks/useMyWorkspaces.js.map +1 -1
- package/dist/auth/hooks/useWorkspaceToken.js +24 -24
- package/dist/auth/hooks/useWorkspaceToken.js.map +1 -1
- package/dist/auth/index.js +4 -4
- package/dist/auth/pages/AuditLogPage.js +10 -12
- package/dist/auth/pages/AuditLogPage.js.map +1 -1
- package/dist/auth/pages/EmailVerifyPage.js +30 -28
- package/dist/auth/pages/EmailVerifyPage.js.map +1 -1
- package/dist/auth/pages/LoginPage.js +23 -19
- package/dist/auth/pages/LoginPage.js.map +1 -1
- package/dist/auth/pages/MagicLinkPage.js +97 -98
- package/dist/auth/pages/MagicLinkPage.js.map +1 -1
- package/dist/auth/pages/MfaSetupPage.js +26 -21
- package/dist/auth/pages/MfaSetupPage.js.map +1 -1
- package/dist/auth/pages/MfaVerifyPage.js +22 -21
- package/dist/auth/pages/MfaVerifyPage.js.map +1 -1
- package/dist/auth/pages/OAuthCallbackPage.js +13 -7
- package/dist/auth/pages/OAuthCallbackPage.js.map +1 -1
- package/dist/auth/pages/PasswordResetPage.js +28 -22
- package/dist/auth/pages/PasswordResetPage.js.map +1 -1
- package/dist/auth/pages/ReactivatePage.js +19 -15
- package/dist/auth/pages/ReactivatePage.js.map +1 -1
- package/dist/auth/pages/RegisterPage.js +203 -194
- package/dist/auth/pages/RegisterPage.js.map +1 -1
- package/dist/auth/pages/SSOClearPage.js +1 -1
- package/dist/auth/pages/SSOClearPage.js.map +1 -1
- package/dist/auth/pages/SSODepositPage.js +1 -1
- package/dist/auth/pages/SSODepositPage.js.map +1 -1
- package/dist/auth/pages/SSORelayCallbackPage.js +1 -1
- package/dist/auth/pages/SSORelayCallbackPage.js.map +1 -1
- package/dist/auth/pages/SSORelayPage.js +40 -34
- package/dist/auth/pages/SSORelayPage.js.map +1 -1
- package/dist/auth/pages/SecurityPage.js +22 -22
- package/dist/auth/pages/SecurityPage.js.map +1 -1
- package/dist/auth/pages/SessionsPage.js +24 -28
- package/dist/auth/pages/SessionsPage.js.map +1 -1
- package/dist/auth/pages/SsoCallbackPage.js +27 -20
- package/dist/auth/pages/SsoCallbackPage.js.map +1 -1
- package/dist/auth/pages/SsoConfigPage.js +51 -28
- package/dist/auth/pages/SsoConfigPage.js.map +1 -1
- package/dist/auth/pages/SsoLoginPage.js +17 -14
- package/dist/auth/pages/SsoLoginPage.js.map +1 -1
- package/dist/auth/pages/UserDetailsPage.js +16 -17
- package/dist/auth/pages/UserDetailsPage.js.map +1 -1
- package/dist/auth/pages/UserProfilePage.js +38 -26
- package/dist/auth/pages/UserProfilePage.js.map +1 -1
- package/dist/auth/pages/UsersPage.js +56 -45
- package/dist/auth/pages/UsersPage.js.map +1 -1
- package/dist/index.js +11 -11
- package/dist/microfe-auth.css +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import "../hooks/
|
|
4
|
-
import { AlertIcon as n, SpinnerIcon as r } from "../components/AuthIcons.js";
|
|
1
|
+
import { AlertIcon as e, SpinnerIcon as t } from "../components/AuthIcons.js";
|
|
2
|
+
import { useSsoOperations as n } from "../hooks/useSsoOperations.js";
|
|
3
|
+
import { useAuthPermissions as r } from "../hooks/useAuthPermissions.js";
|
|
5
4
|
import { ConfirmActionDialog as i } from "../components/ConfirmActionDialog.js";
|
|
6
5
|
import { nativeCopyText as a, nativeImpact as o, nativeNotify as s } from "../../utils/nativeBridge.js";
|
|
7
6
|
import { useCallback as c, useEffect as l, useRef as ee, useState as u } from "react";
|
|
@@ -47,7 +46,7 @@ function g(e) {
|
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
50
|
-
let _ = te(), [v] = d(), { canManageSsoConfig: y, isLoading: ie } =
|
|
49
|
+
let _ = te(), [v] = d(), { canManageSsoConfig: y, isLoading: ie } = r(), ae = re("workspace.auth.enterprise-sso"), oe = a || ae?.value === !0, b = ee(null), x = v.get("tenant"), S = v.get("org"), C = v.get("workspace"), { ssoConfig: w, oidcConfig: T, isLoading: E, isSaving: D, isDeleting: O, saveSsoConfig: k, deleteSsoConfig: se } = n(x ?? "burdenoff.com"), { t: A } = ne(), j = c((e, t) => {
|
|
51
50
|
let n = A(e);
|
|
52
51
|
return n === e ? t : n;
|
|
53
52
|
}, [A]), [M, ce] = u("saml"), [N, P] = u(!1), [le, F] = u(!1), [I, L] = u(null), [R, z] = u(null), [B, V] = u(""), [H, U] = u(!1), [W, G] = u(!1), [K, q] = u({
|
|
@@ -74,7 +73,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
74
73
|
className: "max-w-5xl mx-auto p-6",
|
|
75
74
|
children: /* @__PURE__ */ m("div", {
|
|
76
75
|
className: "text-center py-16",
|
|
77
|
-
children: [/* @__PURE__ */ p(
|
|
76
|
+
children: [/* @__PURE__ */ p(t, { className: "size-8 mx-auto text-text-secondary animate-spin" }), /* @__PURE__ */ p("p", {
|
|
78
77
|
className: "mt-4 text-text-secondary",
|
|
79
78
|
children: j("auth.sso.loadingPermissions", "Loading permissions...")
|
|
80
79
|
})]
|
|
@@ -110,11 +109,12 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
110
109
|
children: [/* @__PURE__ */ m("div", {
|
|
111
110
|
className: "flex items-center gap-4",
|
|
112
111
|
children: [/* @__PURE__ */ p("button", {
|
|
112
|
+
type: "button",
|
|
113
113
|
onClick: () => _("/auth/security"),
|
|
114
114
|
"aria-label": j("auth.sso.backToSecurity", "Back to Security"),
|
|
115
115
|
className: "p-2 rounded-lg hover:bg-bg-sunken transition-colors",
|
|
116
116
|
children: /* @__PURE__ */ p("svg", {
|
|
117
|
-
className: "
|
|
117
|
+
className: "size-5 text-text-secondary",
|
|
118
118
|
fill: "none",
|
|
119
119
|
viewBox: "0 0 24 24",
|
|
120
120
|
stroke: "currentColor",
|
|
@@ -139,6 +139,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
139
139
|
className: `px-3 py-1 rounded-full text-sm font-medium ${Q.enabled ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-secondary"}`,
|
|
140
140
|
children: Q.enabled ? j("auth.sso.enabled", "Enabled") : j("auth.sso.disabled", "Disabled")
|
|
141
141
|
}), /* @__PURE__ */ p("button", {
|
|
142
|
+
type: "button",
|
|
142
143
|
onClick: async () => {
|
|
143
144
|
L(null);
|
|
144
145
|
try {
|
|
@@ -202,12 +203,13 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
202
203
|
}),
|
|
203
204
|
I && /* @__PURE__ */ m("div", {
|
|
204
205
|
className: "mb-6 flex items-start gap-3 p-4 rounded-xl bg-status-error-bg-subtle border border-status-error-border",
|
|
205
|
-
children: [/* @__PURE__ */ p(
|
|
206
|
+
children: [/* @__PURE__ */ p(e, { className: "size-5 text-status-error-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ m("div", {
|
|
206
207
|
className: "flex-1",
|
|
207
208
|
children: [/* @__PURE__ */ p("p", {
|
|
208
209
|
className: "text-sm text-status-error-text",
|
|
209
210
|
children: I
|
|
210
211
|
}), /* @__PURE__ */ p("button", {
|
|
212
|
+
type: "button",
|
|
211
213
|
onClick: () => L(null),
|
|
212
214
|
className: "mt-2 text-sm text-status-error-text hover:underline",
|
|
213
215
|
children: j("auth.sso.dismiss", "Dismiss")
|
|
@@ -217,7 +219,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
217
219
|
R && /* @__PURE__ */ m("div", {
|
|
218
220
|
className: "mb-6 flex items-start gap-3 p-4 rounded-xl bg-status-success-bg-subtle border border-status-success-border",
|
|
219
221
|
children: [/* @__PURE__ */ p("svg", {
|
|
220
|
-
className: "
|
|
222
|
+
className: "size-5 text-status-success-text flex-shrink-0 mt-0.5",
|
|
221
223
|
fill: "currentColor",
|
|
222
224
|
viewBox: "0 0 20 20",
|
|
223
225
|
children: /* @__PURE__ */ p("path", {
|
|
@@ -231,6 +233,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
231
233
|
className: "text-sm text-status-success-text",
|
|
232
234
|
children: R
|
|
233
235
|
}), /* @__PURE__ */ p("button", {
|
|
236
|
+
type: "button",
|
|
234
237
|
onClick: () => z(null),
|
|
235
238
|
className: "mt-2 text-sm text-status-success-text hover:underline",
|
|
236
239
|
children: j("auth.sso.dismiss", "Dismiss")
|
|
@@ -263,6 +266,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
263
266
|
icon: "🧪"
|
|
264
267
|
}
|
|
265
268
|
].map((e) => /* @__PURE__ */ m("button", {
|
|
269
|
+
type: "button",
|
|
266
270
|
onClick: () => ce(e.id),
|
|
267
271
|
className: `pb-3 text-sm font-medium transition-colors relative ${M === e.id ? "text-text-link" : "text-text-secondary hover:text-text-primary"}`,
|
|
268
272
|
children: [/* @__PURE__ */ m("span", {
|
|
@@ -274,7 +278,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
274
278
|
}),
|
|
275
279
|
E && /* @__PURE__ */ m("div", {
|
|
276
280
|
className: "flex items-center justify-center py-12",
|
|
277
|
-
children: [/* @__PURE__ */ p(
|
|
281
|
+
children: [/* @__PURE__ */ p(t, { className: "size-8 text-text-link animate-spin" }), /* @__PURE__ */ p("span", {
|
|
278
282
|
className: "ml-3 text-text-secondary",
|
|
279
283
|
children: j("auth.sso.loadingConfig", "Loading configuration...")
|
|
280
284
|
})]
|
|
@@ -348,13 +352,14 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
348
352
|
}
|
|
349
353
|
},
|
|
350
354
|
className: "hidden",
|
|
351
|
-
id: "metadata-file"
|
|
355
|
+
id: "metadata-file",
|
|
356
|
+
"aria-label": j("auth.sso.uploadFile", "Upload Metadata File")
|
|
352
357
|
}),
|
|
353
358
|
/* @__PURE__ */ m("label", {
|
|
354
359
|
htmlFor: "metadata-file",
|
|
355
360
|
className: "flex items-center justify-center gap-2 w-full px-4 py-3 border-2 border-dashed border-border-default rounded-xl cursor-pointer hover:border-action-primary-bg transition-colors",
|
|
356
|
-
children: [H ? /* @__PURE__ */ p(
|
|
357
|
-
className: "
|
|
361
|
+
children: [H ? /* @__PURE__ */ p(t, { className: "size-5 animate-spin text-text-link" }) : /* @__PURE__ */ p("svg", {
|
|
362
|
+
className: "size-5 text-text-tertiary",
|
|
358
363
|
fill: "none",
|
|
359
364
|
viewBox: "0 0 24 24",
|
|
360
365
|
stroke: "currentColor",
|
|
@@ -412,8 +417,8 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
412
417
|
},
|
|
413
418
|
disabled: H || !B,
|
|
414
419
|
className: "px-4 py-2.5 rounded-xl bg-action-primary-bg text-white font-medium hover:bg-action-primary-bg-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center gap-2",
|
|
415
|
-
children: [H ? /* @__PURE__ */ p(
|
|
416
|
-
className: "
|
|
420
|
+
children: [H ? /* @__PURE__ */ p(t, { className: "size-4 animate-spin" }) : /* @__PURE__ */ p("svg", {
|
|
421
|
+
className: "size-4",
|
|
417
422
|
fill: "none",
|
|
418
423
|
viewBox: "0 0 24 24",
|
|
419
424
|
stroke: "currentColor",
|
|
@@ -452,6 +457,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
452
457
|
className: "flex-1 px-3 py-2 rounded-lg bg-bg-sunken text-sm text-text-primary font-mono",
|
|
453
458
|
children: [window.location.origin, "/auth/saml/metadata"]
|
|
454
459
|
}), /* @__PURE__ */ p("button", {
|
|
460
|
+
type: "button",
|
|
455
461
|
onClick: () => void h(`${window.location.origin}/auth/saml/metadata`),
|
|
456
462
|
className: "px-3 py-2 rounded-lg border border-border-default text-text-secondary hover:bg-bg-sunken",
|
|
457
463
|
children: j("auth.sso.copy", "Copy")
|
|
@@ -465,6 +471,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
465
471
|
className: "flex-1 px-3 py-2 rounded-lg bg-bg-sunken text-sm text-text-primary font-mono",
|
|
466
472
|
children: [window.location.origin, "/auth/sso/callback"]
|
|
467
473
|
}), /* @__PURE__ */ p("button", {
|
|
474
|
+
type: "button",
|
|
468
475
|
onClick: () => void h(`${window.location.origin}/auth/sso/callback`),
|
|
469
476
|
className: "px-3 py-2 rounded-lg border border-border-default text-text-secondary hover:bg-bg-sunken",
|
|
470
477
|
children: j("auth.sso.copy", "Copy")
|
|
@@ -516,6 +523,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
516
523
|
/* @__PURE__ */ p("input", {
|
|
517
524
|
id: "sso-entity-id",
|
|
518
525
|
type: "url",
|
|
526
|
+
"aria-label": j("auth.sso.idpEntityId", "IdP Entity ID"),
|
|
519
527
|
value: Q.entityId,
|
|
520
528
|
onChange: (e) => $({
|
|
521
529
|
...Q,
|
|
@@ -551,6 +559,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
551
559
|
/* @__PURE__ */ p("input", {
|
|
552
560
|
id: "sso-sso-url",
|
|
553
561
|
type: "url",
|
|
562
|
+
"aria-label": j("auth.sso.ssoUrl", "SSO URL"),
|
|
554
563
|
value: Q.ssoUrl,
|
|
555
564
|
onChange: (e) => $({
|
|
556
565
|
...Q,
|
|
@@ -578,6 +587,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
578
587
|
/* @__PURE__ */ p("input", {
|
|
579
588
|
id: "sso-slo-url",
|
|
580
589
|
type: "url",
|
|
590
|
+
"aria-label": j("auth.sso.sloUrl", "Single Logout (SLO) URL"),
|
|
581
591
|
value: Q.sloUrl,
|
|
582
592
|
onChange: (e) => $({
|
|
583
593
|
...Q,
|
|
@@ -610,6 +620,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
610
620
|
}),
|
|
611
621
|
/* @__PURE__ */ p("textarea", {
|
|
612
622
|
id: "sso-certificate",
|
|
623
|
+
"aria-label": j("auth.sso.certificate", "X.509 Certificate"),
|
|
613
624
|
value: Q.certificate,
|
|
614
625
|
onChange: (e) => $({
|
|
615
626
|
...Q,
|
|
@@ -637,7 +648,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
637
648
|
type: "submit",
|
|
638
649
|
disabled: D,
|
|
639
650
|
className: "auth-primary-button flex items-center gap-2 px-6 py-3 font-medium",
|
|
640
|
-
children: D ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(
|
|
651
|
+
children: D ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(t, { className: "size-4 animate-spin" }), j("auth.sso.saving", "Saving...")] }) : j("auth.sso.saveConfig", "Save Configuration")
|
|
641
652
|
}), N && /* @__PURE__ */ p("button", {
|
|
642
653
|
type: "button",
|
|
643
654
|
onClick: () => {
|
|
@@ -667,10 +678,11 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
667
678
|
children: j("auth.sso.dangerZoneDesc", "Deleting the SSO configuration will prevent users from signing in with their enterprise credentials. This action cannot be undone.")
|
|
668
679
|
}),
|
|
669
680
|
/* @__PURE__ */ p("button", {
|
|
681
|
+
type: "button",
|
|
670
682
|
onClick: () => F(!0),
|
|
671
683
|
disabled: O,
|
|
672
684
|
className: "px-4 py-2 rounded-lg bg-status-error-bg text-white font-medium hover:bg-status-error-bg-hover disabled:opacity-50 transition-colors flex items-center gap-2",
|
|
673
|
-
children: O ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(
|
|
685
|
+
children: O ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(t, { className: "size-4 animate-spin" }), j("auth.sso.deleting", "Deleting...")] }) : j("auth.sso.deleteConfig", "Delete SSO Configuration")
|
|
674
686
|
})
|
|
675
687
|
]
|
|
676
688
|
})
|
|
@@ -706,6 +718,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
706
718
|
className: "flex-1 px-3 py-2 rounded-lg bg-bg-sunken text-sm text-text-primary font-mono break-all",
|
|
707
719
|
children: T?.issuer ? `${T.issuer}/.well-known/openid-configuration` : "Discovery endpoint unavailable until OIDC is configured"
|
|
708
720
|
}), /* @__PURE__ */ p("button", {
|
|
721
|
+
type: "button",
|
|
709
722
|
onClick: () => {
|
|
710
723
|
let e = T?.issuer ? `${T.issuer}/.well-known/openid-configuration` : "";
|
|
711
724
|
e && h(e);
|
|
@@ -791,7 +804,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
791
804
|
}
|
|
792
805
|
].map((e) => /* @__PURE__ */ m("div", {
|
|
793
806
|
className: "flex items-center gap-2",
|
|
794
|
-
children: [/* @__PURE__ */ p("span", { className: `
|
|
807
|
+
children: [/* @__PURE__ */ p("span", { className: `size-2 rounded-full ${e.status ? "bg-status-success-text" : "bg-bg-sunken"}` }), /* @__PURE__ */ p("span", {
|
|
795
808
|
className: "text-sm text-text-primary",
|
|
796
809
|
children: e.name
|
|
797
810
|
})]
|
|
@@ -824,10 +837,12 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
824
837
|
className: "text-sm text-status-success-text mt-1",
|
|
825
838
|
children: j("auth.sso.clientCreatedDesc", "Save these credentials securely. The client secret will not be shown again.")
|
|
826
839
|
})] }), /* @__PURE__ */ p("button", {
|
|
840
|
+
type: "button",
|
|
827
841
|
onClick: () => Z(null),
|
|
842
|
+
"aria-label": j("auth.sso.dismissClientCredentials", "Dismiss"),
|
|
828
843
|
className: "text-status-success-text hover:text-status-success-text",
|
|
829
844
|
children: /* @__PURE__ */ p("svg", {
|
|
830
|
-
className: "
|
|
845
|
+
className: "size-5",
|
|
831
846
|
fill: "none",
|
|
832
847
|
viewBox: "0 0 24 24",
|
|
833
848
|
stroke: "currentColor",
|
|
@@ -851,6 +866,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
851
866
|
className: "flex-1 px-3 py-2 rounded-lg bg-bg-surface text-sm font-mono border border-status-success-border",
|
|
852
867
|
children: X.client_id
|
|
853
868
|
}), /* @__PURE__ */ p("button", {
|
|
869
|
+
type: "button",
|
|
854
870
|
onClick: () => void h(X.client_id),
|
|
855
871
|
className: "px-3 py-2 rounded-lg bg-status-success-bg text-white text-sm hover:bg-status-success-bg",
|
|
856
872
|
children: j("auth.sso.copy", "Copy")
|
|
@@ -865,6 +881,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
865
881
|
className: "flex-1 px-3 py-2 rounded-lg bg-bg-surface text-sm font-mono border border-status-success-border",
|
|
866
882
|
children: X.client_secret
|
|
867
883
|
}), /* @__PURE__ */ p("button", {
|
|
884
|
+
type: "button",
|
|
868
885
|
onClick: () => void h(X.client_secret || ""),
|
|
869
886
|
className: "px-3 py-2 rounded-lg bg-status-success-bg text-white text-sm hover:bg-status-success-bg",
|
|
870
887
|
children: j("auth.sso.copy", "Copy")
|
|
@@ -888,10 +905,11 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
888
905
|
className: "text-lg font-medium text-text-primary",
|
|
889
906
|
children: j("auth.sso.registerClient", "Register New Client")
|
|
890
907
|
}), !W && /* @__PURE__ */ m("button", {
|
|
908
|
+
type: "button",
|
|
891
909
|
onClick: () => G(!0),
|
|
892
910
|
className: "px-4 py-2 rounded-lg bg-action-primary-bg text-white font-medium hover:bg-action-primary-bg-hover transition-colors flex items-center gap-2",
|
|
893
911
|
children: [/* @__PURE__ */ p("svg", {
|
|
894
|
-
className: "
|
|
912
|
+
className: "size-4",
|
|
895
913
|
fill: "none",
|
|
896
914
|
viewBox: "0 0 24 24",
|
|
897
915
|
stroke: "currentColor",
|
|
@@ -921,6 +939,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
921
939
|
}), /* @__PURE__ */ p("input", {
|
|
922
940
|
id: "oidc-client-name",
|
|
923
941
|
type: "text",
|
|
942
|
+
"aria-label": j("auth.sso.oidcClientName", "Client Name"),
|
|
924
943
|
value: K.client_name,
|
|
925
944
|
onChange: (e) => q({
|
|
926
945
|
...K,
|
|
@@ -947,6 +966,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
947
966
|
/* @__PURE__ */ p("input", {
|
|
948
967
|
id: "oidc-redirect-uris",
|
|
949
968
|
type: "text",
|
|
969
|
+
"aria-label": j("auth.sso.oidcRedirectUris", "Redirect URIs"),
|
|
950
970
|
value: K.redirect_uris,
|
|
951
971
|
onChange: (e) => q({
|
|
952
972
|
...K,
|
|
@@ -976,6 +996,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
976
996
|
className: "flex items-center gap-2 cursor-pointer",
|
|
977
997
|
children: [/* @__PURE__ */ p("input", {
|
|
978
998
|
type: "checkbox",
|
|
999
|
+
"aria-label": e,
|
|
979
1000
|
checked: K.grant_types.includes(e),
|
|
980
1001
|
onChange: (t) => {
|
|
981
1002
|
t.target.checked ? q({
|
|
@@ -986,7 +1007,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
986
1007
|
grant_types: K.grant_types.filter((t) => t !== e)
|
|
987
1008
|
});
|
|
988
1009
|
},
|
|
989
|
-
className: "
|
|
1010
|
+
className: "size-4 rounded border-border-default text-text-link focus:ring-action-primary-bg"
|
|
990
1011
|
}), /* @__PURE__ */ p("span", {
|
|
991
1012
|
className: "text-sm text-text-primary",
|
|
992
1013
|
children: e.replace(/_/g, " ")
|
|
@@ -1023,6 +1044,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1023
1044
|
/* @__PURE__ */ m("div", {
|
|
1024
1045
|
className: "flex items-center gap-3 pt-2",
|
|
1025
1046
|
children: [/* @__PURE__ */ p("button", {
|
|
1047
|
+
type: "button",
|
|
1026
1048
|
onClick: async () => {
|
|
1027
1049
|
if (!K.client_name || !K.redirect_uris) {
|
|
1028
1050
|
L(j("auth.sso.clientRequired", "Client name and redirect URI are required"));
|
|
@@ -1061,8 +1083,9 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1061
1083
|
},
|
|
1062
1084
|
disabled: J,
|
|
1063
1085
|
className: "auth-primary-button flex items-center gap-2 px-6 py-3 font-medium",
|
|
1064
|
-
children: J ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(
|
|
1086
|
+
children: J ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(t, { className: "size-4 animate-spin" }), j("auth.sso.registering", "Registering...")] }) : j("auth.sso.registerClientButton", "Register Client")
|
|
1065
1087
|
}), /* @__PURE__ */ p("button", {
|
|
1088
|
+
type: "button",
|
|
1066
1089
|
onClick: () => {
|
|
1067
1090
|
G(!1), q({
|
|
1068
1091
|
client_name: "",
|
|
@@ -1079,7 +1102,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1079
1102
|
}) : /* @__PURE__ */ m("div", {
|
|
1080
1103
|
className: "text-center py-8 text-text-secondary",
|
|
1081
1104
|
children: [/* @__PURE__ */ p("svg", {
|
|
1082
|
-
className: "
|
|
1105
|
+
className: "size-12 mx-auto mb-3 text-text-muted",
|
|
1083
1106
|
fill: "none",
|
|
1084
1107
|
viewBox: "0 0 24 24",
|
|
1085
1108
|
stroke: "currentColor",
|
|
@@ -1170,7 +1193,7 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1170
1193
|
href: `${window.location.origin}/auth/sso/login`,
|
|
1171
1194
|
className: "inline-flex items-center gap-2 px-6 py-3 rounded-xl bg-status-success-bg text-white font-medium shadow-sm hover:opacity-90 transition-all duration-200",
|
|
1172
1195
|
children: [/* @__PURE__ */ p("svg", {
|
|
1173
|
-
className: "
|
|
1196
|
+
className: "size-5",
|
|
1174
1197
|
fill: "none",
|
|
1175
1198
|
viewBox: "0 0 24 24",
|
|
1176
1199
|
stroke: "currentColor",
|
|
@@ -1206,8 +1229,8 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1206
1229
|
className: "text-center py-16 border-2 border-dashed border-border-subtle rounded-xl",
|
|
1207
1230
|
children: [
|
|
1208
1231
|
/* @__PURE__ */ p("div", {
|
|
1209
|
-
className: "
|
|
1210
|
-
children: /* @__PURE__ */ p(
|
|
1232
|
+
className: "size-16 mx-auto mb-4 rounded-full bg-status-warning-bg-subtle flex items-center justify-center",
|
|
1233
|
+
children: /* @__PURE__ */ p(e, { className: "size-8 text-status-warning-text" })
|
|
1211
1234
|
}),
|
|
1212
1235
|
/* @__PURE__ */ p("h2", {
|
|
1213
1236
|
className: "text-xl font-semibold text-text-primary mb-2",
|
|
@@ -1229,8 +1252,8 @@ function _({ bypassEnterprisePlanGate: a = !1 }) {
|
|
|
1229
1252
|
className: "text-center py-16 border-2 border-dashed border-border-subtle rounded-xl",
|
|
1230
1253
|
children: [
|
|
1231
1254
|
/* @__PURE__ */ p("div", {
|
|
1232
|
-
className: "
|
|
1233
|
-
children: /* @__PURE__ */ p(
|
|
1255
|
+
className: "size-16 mx-auto mb-4 rounded-full bg-status-error-bg-subtle flex items-center justify-center",
|
|
1256
|
+
children: /* @__PURE__ */ p(e, { className: "size-8 text-status-error-text" })
|
|
1234
1257
|
}),
|
|
1235
1258
|
/* @__PURE__ */ p("h2", {
|
|
1236
1259
|
className: "text-xl font-semibold text-text-primary mb-2",
|