@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.
Files changed (67) hide show
  1. package/dist/auth/AuthRoutes.js +1 -1
  2. package/dist/auth/AuthRoutes.js.map +1 -1
  3. package/dist/auth/components/AuthLayout.js +14 -14
  4. package/dist/auth/components/AuthLayout.js.map +1 -1
  5. package/dist/auth/components/CaptchaV2.js +1 -4
  6. package/dist/auth/components/CaptchaV2.js.map +1 -1
  7. package/dist/auth/components/ConfirmActionDialog.js +3 -3
  8. package/dist/auth/components/ConfirmActionDialog.js.map +1 -1
  9. package/dist/auth/components/profile/UserProfileMenu.js +10 -6
  10. package/dist/auth/components/profile/UserProfileMenu.js.map +1 -1
  11. package/dist/auth/components/workspace/WorkspaceSelector.js +108 -98
  12. package/dist/auth/components/workspace/WorkspaceSelector.js.map +1 -1
  13. package/dist/auth/hooks/index.js +2 -2
  14. package/dist/auth/hooks/useContextSwitcherData.js +1 -1
  15. package/dist/auth/hooks/useContextSwitcherData.js.map +1 -1
  16. package/dist/auth/hooks/useMyWorkspaces.js +1 -1
  17. package/dist/auth/hooks/useMyWorkspaces.js.map +1 -1
  18. package/dist/auth/hooks/useWorkspaceToken.js +24 -24
  19. package/dist/auth/hooks/useWorkspaceToken.js.map +1 -1
  20. package/dist/auth/index.js +4 -4
  21. package/dist/auth/pages/AuditLogPage.js +10 -12
  22. package/dist/auth/pages/AuditLogPage.js.map +1 -1
  23. package/dist/auth/pages/EmailVerifyPage.js +30 -28
  24. package/dist/auth/pages/EmailVerifyPage.js.map +1 -1
  25. package/dist/auth/pages/LoginPage.js +23 -19
  26. package/dist/auth/pages/LoginPage.js.map +1 -1
  27. package/dist/auth/pages/MagicLinkPage.js +97 -98
  28. package/dist/auth/pages/MagicLinkPage.js.map +1 -1
  29. package/dist/auth/pages/MfaSetupPage.js +26 -21
  30. package/dist/auth/pages/MfaSetupPage.js.map +1 -1
  31. package/dist/auth/pages/MfaVerifyPage.js +22 -21
  32. package/dist/auth/pages/MfaVerifyPage.js.map +1 -1
  33. package/dist/auth/pages/OAuthCallbackPage.js +13 -7
  34. package/dist/auth/pages/OAuthCallbackPage.js.map +1 -1
  35. package/dist/auth/pages/PasswordResetPage.js +28 -22
  36. package/dist/auth/pages/PasswordResetPage.js.map +1 -1
  37. package/dist/auth/pages/ReactivatePage.js +19 -15
  38. package/dist/auth/pages/ReactivatePage.js.map +1 -1
  39. package/dist/auth/pages/RegisterPage.js +203 -194
  40. package/dist/auth/pages/RegisterPage.js.map +1 -1
  41. package/dist/auth/pages/SSOClearPage.js +1 -1
  42. package/dist/auth/pages/SSOClearPage.js.map +1 -1
  43. package/dist/auth/pages/SSODepositPage.js +1 -1
  44. package/dist/auth/pages/SSODepositPage.js.map +1 -1
  45. package/dist/auth/pages/SSORelayCallbackPage.js +1 -1
  46. package/dist/auth/pages/SSORelayCallbackPage.js.map +1 -1
  47. package/dist/auth/pages/SSORelayPage.js +40 -34
  48. package/dist/auth/pages/SSORelayPage.js.map +1 -1
  49. package/dist/auth/pages/SecurityPage.js +22 -22
  50. package/dist/auth/pages/SecurityPage.js.map +1 -1
  51. package/dist/auth/pages/SessionsPage.js +24 -28
  52. package/dist/auth/pages/SessionsPage.js.map +1 -1
  53. package/dist/auth/pages/SsoCallbackPage.js +27 -20
  54. package/dist/auth/pages/SsoCallbackPage.js.map +1 -1
  55. package/dist/auth/pages/SsoConfigPage.js +51 -28
  56. package/dist/auth/pages/SsoConfigPage.js.map +1 -1
  57. package/dist/auth/pages/SsoLoginPage.js +17 -14
  58. package/dist/auth/pages/SsoLoginPage.js.map +1 -1
  59. package/dist/auth/pages/UserDetailsPage.js +16 -17
  60. package/dist/auth/pages/UserDetailsPage.js.map +1 -1
  61. package/dist/auth/pages/UserProfilePage.js +38 -26
  62. package/dist/auth/pages/UserProfilePage.js.map +1 -1
  63. package/dist/auth/pages/UsersPage.js +56 -45
  64. package/dist/auth/pages/UsersPage.js.map +1 -1
  65. package/dist/index.js +11 -11
  66. package/dist/microfe-auth.css +1 -1
  67. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
- import { useSsoOperations as e } from "../hooks/useSsoOperations.js";
2
- import { useAuthPermissions as t } from "../hooks/useAuthPermissions.js";
3
- import "../hooks/index.js";
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 } = t(), 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 } = e(x ?? "burdenoff.com"), { t: A } = ne(), j = c((e, t) => {
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(r, { className: "w-8 h-8 mx-auto text-text-secondary animate-spin" }), /* @__PURE__ */ p("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: "w-5 h-5 text-text-secondary",
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(n, { className: "w-5 h-5 text-status-error-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ m("div", {
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: "w-5 h-5 text-status-success-text flex-shrink-0 mt-0.5",
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(r, { className: "w-8 h-8 text-text-link animate-spin" }), /* @__PURE__ */ p("span", {
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(r, { className: "w-5 h-5 animate-spin text-text-link" }) : /* @__PURE__ */ p("svg", {
357
- className: "w-5 h-5 text-text-tertiary",
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(r, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ p("svg", {
416
- className: "w-4 h-4",
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(r, { className: "w-4 h-4 animate-spin" }), j("auth.sso.saving", "Saving...")] }) : j("auth.sso.saveConfig", "Save Configuration")
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(r, { className: "w-4 h-4 animate-spin" }), j("auth.sso.deleting", "Deleting...")] }) : j("auth.sso.deleteConfig", "Delete SSO Configuration")
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: `w-2 h-2 rounded-full ${e.status ? "bg-status-success-text" : "bg-bg-sunken"}` }), /* @__PURE__ */ p("span", {
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: "w-5 h-5",
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: "w-4 h-4",
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: "w-4 h-4 rounded border-border-default text-text-link focus:ring-action-primary-bg"
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(r, { className: "w-4 h-4 animate-spin" }), j("auth.sso.registering", "Registering...")] }) : j("auth.sso.registerClientButton", "Register Client")
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: "w-12 h-12 mx-auto mb-3 text-text-muted",
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: "w-5 h-5",
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: "w-16 h-16 mx-auto mb-4 rounded-full bg-status-warning-bg-subtle flex items-center justify-center",
1210
- children: /* @__PURE__ */ p(n, { className: "w-8 h-8 text-status-warning-text" })
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: "w-16 h-16 mx-auto mb-4 rounded-full bg-status-error-bg-subtle flex items-center justify-center",
1233
- children: /* @__PURE__ */ p(n, { className: "w-8 h-8 text-status-error-text" })
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",