@ory/elements-react 1.0.0-next.17 → 1.0.0-next.19

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 (61) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/api-report/elements-react-client.api.json +144 -16
  3. package/api-report/elements-react-client.api.md +19 -8
  4. package/api-report/elements-react-theme.api.json +47 -0
  5. package/api-report/elements-react-theme.api.md +5 -2
  6. package/api-report/elements-react.api.json +85 -23
  7. package/api-report/elements-react.api.md +37 -16
  8. package/api-report/temp/elements-react-client.api.md +19 -8
  9. package/api-report/temp/elements-react-theme.api.md +5 -2
  10. package/api-report/temp/elements-react.api.md +37 -16
  11. package/dist/client/config.d.mts +21 -0
  12. package/dist/client/config.d.ts +21 -0
  13. package/dist/client/config.js +77 -0
  14. package/dist/client/config.js.map +1 -0
  15. package/dist/client/config.mjs +51 -0
  16. package/dist/client/config.mjs.map +1 -0
  17. package/dist/client/frontendClient.d.mts +3 -1
  18. package/dist/client/frontendClient.d.ts +3 -1
  19. package/dist/client/frontendClient.js +14 -2
  20. package/dist/client/frontendClient.js.map +1 -1
  21. package/dist/client/frontendClient.mjs +14 -2
  22. package/dist/client/frontendClient.mjs.map +1 -1
  23. package/dist/client/index.d.mts +3 -1
  24. package/dist/client/index.d.ts +3 -1
  25. package/dist/client/index.js +4 -0
  26. package/dist/client/index.js.map +1 -1
  27. package/dist/client/index.mjs +5 -0
  28. package/dist/client/index.mjs.map +1 -1
  29. package/dist/client/session-provider.d.mts +62 -0
  30. package/dist/client/session-provider.d.ts +62 -0
  31. package/dist/client/session-provider.js +96 -0
  32. package/dist/client/session-provider.js.map +1 -0
  33. package/dist/client/session-provider.mjs +71 -0
  34. package/dist/client/session-provider.mjs.map +1 -0
  35. package/dist/client/useSession.d.mts +22 -31
  36. package/dist/client/useSession.d.ts +22 -31
  37. package/dist/client/useSession.js +7 -49
  38. package/dist/client/useSession.js.map +1 -1
  39. package/dist/client/useSession.mjs +8 -49
  40. package/dist/client/useSession.mjs.map +1 -1
  41. package/dist/index.d.mts +36 -19
  42. package/dist/index.d.ts +36 -19
  43. package/dist/index.js +583 -402
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.mjs +586 -405
  46. package/dist/index.mjs.map +1 -1
  47. package/dist/theme/default/index.css +393 -259
  48. package/dist/theme/default/index.css.map +1 -1
  49. package/dist/theme/default/index.d.mts +4 -2
  50. package/dist/theme/default/index.d.ts +4 -2
  51. package/dist/theme/default/index.js +728 -588
  52. package/dist/theme/default/index.js.map +1 -1
  53. package/dist/theme/default/index.mjs +665 -526
  54. package/dist/theme/default/index.mjs.map +1 -1
  55. package/jest.config.ts +1 -1
  56. package/package.json +2 -1
  57. package/postcss.config.ts +1 -0
  58. package/tailwind.config.ts +14 -13
  59. package/tsconfig.json +4 -3
  60. package/variables-processed.json +385 -187
  61. package/.eslintrc.js +0 -63
@@ -6,8 +6,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  var SvgOryBadgeHorizontal = (props) => {
7
7
  var _a, _b;
8
8
  return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: [
9
- /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M18.007 8h-1.71l2.007-3.996L16.296 0h1.711l1.145 2.301L20.327 0H22z" }),
10
- /* @__PURE__ */ jsx("path", { fill: "#fff", fillRule: "evenodd", d: "M12.902 4.86a2.47 2.47 0 0 0 1.796-2.365v-.038C14.687 1.097 13.592 0 12.245 0H9.037v1.44l1.208 1.985H9.04V8h1.51V4.949h.633L13.04 8h1.775zm-.876-1.431h.223c.52 0 .943-.427.943-.953a.95.95 0 0 0-.943-.952h-1.39zM4 0a4 4 0 1 0-.001 7.999A4 4 0 0 0 4 0M1.524 4a2.476 2.476 0 1 0 4.952 0 2.476 2.476 0 0 0-4.952 0", clipRule: "evenodd" })
9
+ /* @__PURE__ */ jsx("path", { fill: "#0F172A", d: "M18.007 8h-1.71l2.007-3.996L16.296 0h1.711l1.145 2.301L20.327 0H22z" }),
10
+ /* @__PURE__ */ jsx("path", { fill: "#0F172A", fillRule: "evenodd", d: "M12.902 4.86a2.47 2.47 0 0 0 1.796-2.365v-.038C14.687 1.097 13.592 0 12.245 0H9.037v1.44l1.208 1.985H9.04V8h1.51V4.949h.633L13.04 8h1.775zm-.876-1.431h.223c.52 0 .943-.427.943-.953a.95.95 0 0 0-.943-.952h-1.39zM4 0a4 4 0 1 0-.001 7.999A4 4 0 0 0 4 0M1.524 4a2.476 2.476 0 1 0 4.952 0 2.476 2.476 0 0 0-4.952 0", clipRule: "evenodd" })
11
11
  ] });
12
12
  };
13
13
  var ory_badge_horizontal_default = SvgOryBadgeHorizontal;
@@ -18,8 +18,8 @@ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
18
18
  var SvgOryBadgeVertical = (props) => {
19
19
  var _a, _b;
20
20
  return /* @__PURE__ */ jsxs2("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: [
21
- /* @__PURE__ */ jsx2("path", { fill: "#fff", d: "M8 3.993v1.71L4.004 3.697 0 5.704V3.993l2.301-1.145L0 1.673V0z" }),
22
- /* @__PURE__ */ jsx2("path", { fill: "#fff", fillRule: "evenodd", d: "M4.86 9.099a2.47 2.47 0 0 0-2.365-1.797h-.038C1.097 7.313 0 8.408 0 9.755v3.208h1.44l1.985-1.208v1.204H8v-1.51H4.949v-.633L8 8.96V7.185zm-1.431.875v-.223a.95.95 0 0 0-.953-.943.95.95 0 0 0-.952.943v1.39zM0 18a4 4 0 1 0 8 0 4 4 0 0 0-8 0m4 2.476a2.476 2.476 0 1 0 0-4.952 2.476 2.476 0 0 0 0 4.952", clipRule: "evenodd" })
21
+ /* @__PURE__ */ jsx2("path", { fill: "#0F172A", d: "M8 3.993v1.71L4.004 3.697 0 5.704V3.993l2.301-1.145L0 1.673V0z" }),
22
+ /* @__PURE__ */ jsx2("path", { fill: "#0F172A", fillRule: "evenodd", d: "M4.86 9.099a2.47 2.47 0 0 0-2.365-1.797h-.038C1.097 7.313 0 8.408 0 9.755v3.208h1.44l1.985-1.208v1.204H8v-1.51H4.949v-.633L8 8.96V7.185zm-1.431.875v-.223a.95.95 0 0 0-.953-.943.95.95 0 0 0-.952.943v1.39zM0 18a4 4 0 1 0 8 0 4 4 0 0 0-8 0m4 2.476a2.476 2.476 0 1 0 0-4.952 2.476 2.476 0 0 0 0 4.952", clipRule: "evenodd" })
23
23
  ] });
24
24
  };
25
25
  var ory_badge_vertical_default = SvgOryBadgeVertical;
@@ -27,9 +27,9 @@ var ory_badge_vertical_default = SvgOryBadgeVertical;
27
27
  // src/theme/default/components/card/badge.tsx
28
28
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
29
29
  function Badge() {
30
- return /* @__PURE__ */ jsxs3("div", { className: "font-bold bg-branding-bg-default absolute max-md:rounded-b-md p-2 max-md:bottom-0 max-md:translate-y-full max-md:left-8 md:right-0 md:translate-x-full md:top-8 md:rounded-r-md", children: [
31
- /* @__PURE__ */ jsx3(ory_badge_horizontal_default, { width: 22, height: 8, className: "md:hidden" }),
32
- /* @__PURE__ */ jsx3(ory_badge_vertical_default, { width: 8, height: 22, className: "max-md:hidden" })
30
+ return /* @__PURE__ */ jsxs3("div", { className: "absolute bg-ory-background-default p-2 font-bold max-sm:bottom-0 max-sm:left-8 max-sm:translate-y-full max-sm:rounded-b-md sm:right-0 sm:top-8 sm:translate-x-full sm:rounded-r-lg border-ory-border-default border max-sm:py-[7px] sm:pl-[7px]", children: [
31
+ /* @__PURE__ */ jsx3(ory_badge_horizontal_default, { width: 22, height: 8, className: "sm:hidden" }),
32
+ /* @__PURE__ */ jsx3(ory_badge_vertical_default, { width: 8, height: 22, className: "max-sm:hidden" })
33
33
  ] });
34
34
  }
35
35
 
@@ -76,7 +76,7 @@ function LoginCardFooter() {
76
76
  if (returnTo) {
77
77
  registrationLink += `?return_to=${returnTo}`;
78
78
  }
79
- return /* @__PURE__ */ jsxs4("span", { className: "text-sm font-normal antialiased leading-normal", children: [
79
+ return /* @__PURE__ */ jsxs4("span", { className: "font-normal leading-normal antialiased text-interface-foreground-default-primary", children: [
80
80
  intl.formatMessage({
81
81
  id: "login.registration-label",
82
82
  defaultMessage: "No account?"
@@ -85,7 +85,7 @@ function LoginCardFooter() {
85
85
  /* @__PURE__ */ jsx4(
86
86
  "a",
87
87
  {
88
- className: "text-links-link-default hover:underline hover:text-link-hover transition-colors",
88
+ className: "text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline",
89
89
  href: registrationLink,
90
90
  children: intl.formatMessage({
91
91
  id: "login.registration-button",
@@ -119,10 +119,10 @@ function RegistrationCardFooter() {
119
119
  if (returnTo) {
120
120
  loginLink += `?return_to=${returnTo}`;
121
121
  }
122
- return /* @__PURE__ */ jsx4("span", { className: "text-sm font-normal antialiased leading-normal", children: formState.current === "method_active" ? /* @__PURE__ */ jsx4(Fragment, { children: screenSelectionNode && /* @__PURE__ */ jsx4(
122
+ return /* @__PURE__ */ jsx4("span", { className: "font-normal leading-normal antialiased", children: formState.current === "method_active" ? /* @__PURE__ */ jsx4(Fragment, { children: screenSelectionNode && /* @__PURE__ */ jsx4(
123
123
  "button",
124
124
  {
125
- className: "font-medium text-links-link-default",
125
+ className: "font-medium text-button-link-brand-brand hover:text-button-link-brand-brand-hover",
126
126
  type: "submit",
127
127
  onClick: handleScreenSelection,
128
128
  children: intl.formatMessage({
@@ -139,7 +139,7 @@ function RegistrationCardFooter() {
139
139
  /* @__PURE__ */ jsx4(
140
140
  "a",
141
141
  {
142
- className: "text-links-link-default hover:underline hover:text-link-hover transition-colors",
142
+ className: "text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline",
143
143
  href: loginLink,
144
144
  children: intl.formatMessage({
145
145
  id: "registration.login-button",
@@ -405,23 +405,24 @@ function DefaultCurrentIdentifierButton() {
405
405
  "autocomplete",
406
406
  "node_type"
407
407
  ]);
408
- return /* @__PURE__ */ jsxs5(
408
+ return /* @__PURE__ */ jsx6(
409
409
  "a",
410
410
  {
411
- className: "cursor-pointer py-[5px] px-3 rounded-full border border-button-identifier-border-default bg-button-identifier-bg-default hover:border-button-identifier-border-hover hover:bg-button-identifier-bg-hover transition-colors inline-flex gap-1 items-center self-start max-w-full",
411
+ className: "group inline-flex max-w-full cursor-pointer items-center gap-1 self-start rounded-full border px-[11px] py-[5px] transition-colors border-button-identifier-border-border-default bg-button-identifier-background-default hover:border-button-identifier-border-border-hover hover:bg-button-identifier-background-hover",
412
412
  ...attributes,
413
413
  href: initFlowUrl,
414
414
  title: `Adjust ${nodeBackButton == null ? void 0 : nodeBackButton.attributes.value}`,
415
- children: [
415
+ children: /* @__PURE__ */ jsxs5("span", { className: "inline-flex min-h-5 items-center gap-2 overflow-hidden text-ellipsis", children: [
416
416
  /* @__PURE__ */ jsx6(
417
417
  arrow_left_default,
418
418
  {
419
419
  size: 16,
420
- className: "text-button-identifier-fg-subtle shrink-0"
420
+ stroke: "1",
421
+ className: "shrink-0 text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover"
421
422
  }
422
423
  ),
423
- /* @__PURE__ */ jsx6("span", { className: "text-sm font-medium text-button-identifier-fg-default text-ellipsis overflow-hidden text-nowrap", children: nodeBackButton == null ? void 0 : nodeBackButton.attributes.value })
424
- ]
424
+ /* @__PURE__ */ jsx6("span", { className: "overflow-hidden text-ellipsis text-nowrap text-sm font-medium text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover", children: nodeBackButton == null ? void 0 : nodeBackButton.attributes.value })
425
+ ] })
425
426
  }
426
427
  );
427
428
  }
@@ -463,8 +464,8 @@ function InnerCardHeader({ title, text }) {
463
464
  return /* @__PURE__ */ jsxs6("header", { className: "flex flex-col gap-8 antialiased", children: [
464
465
  /* @__PURE__ */ jsx7(Card.Logo, {}),
465
466
  /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-2", children: [
466
- /* @__PURE__ */ jsx7("h2", { className: "font-semibold text-lg text-dialog-fg-default leading-normal", children: title }),
467
- /* @__PURE__ */ jsx7("p", { className: "text-sm leading-normal text-dialog-fg-subtle", children: text }),
467
+ /* @__PURE__ */ jsx7("h2", { className: "text-lg font-semibold leading-normal text-interface-foreground-default-primary", children: title }),
468
+ /* @__PURE__ */ jsx7("p", { className: "leading-normal text-interface-foreground-default-secondary", children: text }),
468
469
  /* @__PURE__ */ jsx7(DefaultCurrentIdentifierButton, {})
469
470
  ] })
470
471
  ] });
@@ -483,15 +484,21 @@ function DefaultCardLogo() {
483
484
  if (flow.config.logoUrl) {
484
485
  return /* @__PURE__ */ jsx8("img", { src: flow.config.logoUrl, width: 100, height: 36, alt: "Logo" });
485
486
  }
486
- return /* @__PURE__ */ jsx8("h1", { className: "text-xl font-semibold leading-normal text-dialog-fg-default", children: flow.config.name });
487
+ return /* @__PURE__ */ jsx8("h1", { className: "text-xl font-semibold leading-normal text-interface-foreground-default-primary", children: flow.config.name });
488
+ }
489
+
490
+ // src/theme/default/components/card/layout.tsx
491
+ import { jsx as jsx9 } from "react/jsx-runtime";
492
+ function DefaultCardLayout({ children }) {
493
+ return /* @__PURE__ */ jsx9("main", { className: "p-4 pb-8 flex items-center justify-center flex-col gap-8 min-h-screen", children });
487
494
  }
488
495
 
489
496
  // src/theme/default/components/card/index.tsx
490
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
497
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
491
498
  function DefaultCard({ children }) {
492
- return /* @__PURE__ */ jsx9("div", { className: "flex-1 flex-col flex justify-center items-center font-sans", children: /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 max-w-sm md:max-w-[480px] md:w-[480px] gap-8 bg-dialog-bg-default px-8 md:px-12 py-12 md:py-14 relative rounded-border-radius-cards border border-dialog-border-default", children: [
499
+ return /* @__PURE__ */ jsx10("div", { className: "flex flex-1 sm:items-center justify-center font-sans items-start w-full sm:w-[480px] sm:max-w-[480px]", children: /* @__PURE__ */ jsxs7("div", { className: "relative grid grid-cols-1 gap-8 sm:rounded-cards sm:border border-form-border-default bg-form-background-default px-8 py-12 sm:px-12 sm:py-14 border-b w-full", children: [
493
500
  children,
494
- /* @__PURE__ */ jsx9(Badge, {})
501
+ /* @__PURE__ */ jsx10(Badge, {})
495
502
  ] }) });
496
503
  }
497
504
 
@@ -519,159 +526,160 @@ import {
519
526
 
520
527
  // src/theme/default/provider-logos/apple.svg
521
528
  import * as React4 from "react";
522
- import { jsx as jsx10 } from "react/jsx-runtime";
529
+ import { jsx as jsx11 } from "react/jsx-runtime";
523
530
  var SvgApple = (props) => {
524
531
  var _a, _b;
525
- return /* @__PURE__ */ jsx10("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx10("path", { fill: "#283544", d: "M27.734 11.55c-.134.078-3.317 1.724-3.317 5.374.15 4.162 4.017 5.621 4.083 5.621-.066.078-.584 1.988-2.116 3.991C25.167 28.261 23.817 30 21.767 30c-1.95 0-2.65-1.15-4.9-1.15-2.416 0-3.1 1.15-4.95 1.15-2.05 0-3.5-1.832-4.782-3.541-1.667-2.236-3.083-5.746-3.133-9.116-.034-1.786.334-3.54 1.266-5.032 1.317-2.081 3.667-3.494 6.233-3.54 1.966-.063 3.716 1.257 4.916 1.257 1.15 0 3.3-1.258 5.733-1.258 1.05.001 3.85.296 5.584 2.78M16.25 8.414c-.35-1.631.616-3.262 1.516-4.302C18.917 2.854 20.734 2 22.3 2c.1 1.63-.534 3.23-1.666 4.395-1.017 1.258-2.767 2.205-4.383 2.019" }) });
532
+ return /* @__PURE__ */ jsx11("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx11("path", { fill: "#283544", d: "M27.734 11.55c-.134.078-3.317 1.724-3.317 5.374.15 4.162 4.017 5.621 4.083 5.621-.066.078-.584 1.988-2.116 3.991C25.167 28.261 23.817 30 21.767 30c-1.95 0-2.65-1.15-4.9-1.15-2.416 0-3.1 1.15-4.95 1.15-2.05 0-3.5-1.832-4.782-3.541-1.667-2.236-3.083-5.746-3.133-9.116-.034-1.786.334-3.54 1.266-5.032 1.317-2.081 3.667-3.494 6.233-3.54 1.966-.063 3.716 1.257 4.916 1.257 1.15 0 3.3-1.258 5.733-1.258 1.05.001 3.85.296 5.584 2.78M16.25 8.414c-.35-1.631.616-3.262 1.516-4.302C18.917 2.854 20.734 2 22.3 2c.1 1.63-.534 3.23-1.666 4.395-1.017 1.258-2.767 2.205-4.383 2.019" }) });
526
533
  };
527
534
  var apple_default = SvgApple;
528
535
 
529
536
  // src/theme/default/provider-logos/auth0.svg
530
537
  import * as React5 from "react";
531
- import { jsx as jsx11 } from "react/jsx-runtime";
538
+ import { jsx as jsx12 } from "react/jsx-runtime";
532
539
  var SvgAuth0 = (props) => {
533
540
  var _a, _b;
534
- return /* @__PURE__ */ jsx11("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 64 64", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx11("path", { fill: "#eb5424", d: "M49.012 51.774 42.514 32l17.008-12.22h-21.02L32.005 0h21.032l6.506 19.78c3.767 11.468-.118 24.52-10.53 31.993zm-34.023 0L31.998 64l17.015-12.226-17.008-12.22zm-10.516-32c-3.976 12.1.64 24.917 10.5 32.007v-.007L21.482 32 4.474 19.774l21.025.007L31.998 0H10.972z" }) });
541
+ return /* @__PURE__ */ jsx12("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 64 64", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx12("path", { fill: "#eb5424", d: "M49.012 51.774 42.514 32l17.008-12.22h-21.02L32.005 0h21.032l6.506 19.78c3.767 11.468-.118 24.52-10.53 31.993zm-34.023 0L31.998 64l17.015-12.226-17.008-12.22zm-10.516-32c-3.976 12.1.64 24.917 10.5 32.007v-.007L21.482 32 4.474 19.774l21.025.007L31.998 0H10.972z" }) });
535
542
  };
536
543
  var auth0_default = SvgAuth0;
537
544
 
538
545
  // src/theme/default/provider-logos/discord.svg
539
546
  import * as React6 from "react";
540
- import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
547
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
541
548
  var SvgDiscord = (props) => {
542
549
  var _a, _b;
543
550
  return /* @__PURE__ */ jsxs8("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
544
- /* @__PURE__ */ jsx12("path", { d: "M2 11.6c0-3.36 0-5.04.654-6.324a6 6 0 0 1 2.622-2.622C6.56 2 8.24 2 11.6 2h8.8c3.36 0 5.04 0 6.324.654a6 6 0 0 1 2.622 2.622C30 6.56 30 8.24 30 11.6v8.8c0 3.36 0 5.04-.654 6.324a6 6 0 0 1-2.622 2.622C25.44 30 23.76 30 20.4 30h-8.8c-3.36 0-5.04 0-6.324-.654a6 6 0 0 1-2.622-2.622C2 25.44 2 23.76 2 20.4z" }),
545
- /* @__PURE__ */ jsx12("path", { fill: "#5865F2", d: "M23.636 9.34A18.8 18.8 0 0 0 19.097 8c-.195.332-.424.779-.581 1.134a17.7 17.7 0 0 0-5.03 0A12 12 0 0 0 12.897 8a18.7 18.7 0 0 0-4.542 1.343c-2.872 4.078-3.65 8.055-3.262 11.975a18.6 18.6 0 0 0 5.567 2.68c.448-.58.848-1.195 1.192-1.844a12 12 0 0 1-1.877-.859 9 9 0 0 0 .46-.342c3.62 1.59 7.553 1.59 11.13 0q.225.178.46.342c-.595.337-1.225.626-1.88.86q.516.974 1.191 1.845a18.6 18.6 0 0 0 5.57-2.682c.457-4.544-.78-8.484-3.27-11.978m-11.29 9.567c-1.087 0-1.978-.953-1.978-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116.002 1.16-.872 2.113-1.978 2.113m7.308 0c-1.086 0-1.977-.953-1.977-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116 0 1.16-.872 2.113-1.978 2.113" })
551
+ /* @__PURE__ */ jsx13("path", { d: "M2 11.6c0-3.36 0-5.04.654-6.324a6 6 0 0 1 2.622-2.622C6.56 2 8.24 2 11.6 2h8.8c3.36 0 5.04 0 6.324.654a6 6 0 0 1 2.622 2.622C30 6.56 30 8.24 30 11.6v8.8c0 3.36 0 5.04-.654 6.324a6 6 0 0 1-2.622 2.622C25.44 30 23.76 30 20.4 30h-8.8c-3.36 0-5.04 0-6.324-.654a6 6 0 0 1-2.622-2.622C2 25.44 2 23.76 2 20.4z" }),
552
+ /* @__PURE__ */ jsx13("path", { fill: "#5865F2", d: "M23.636 9.34A18.8 18.8 0 0 0 19.097 8c-.195.332-.424.779-.581 1.134a17.7 17.7 0 0 0-5.03 0A12 12 0 0 0 12.897 8a18.7 18.7 0 0 0-4.542 1.343c-2.872 4.078-3.65 8.055-3.262 11.975a18.6 18.6 0 0 0 5.567 2.68c.448-.58.848-1.195 1.192-1.844a12 12 0 0 1-1.877-.859 9 9 0 0 0 .46-.342c3.62 1.59 7.553 1.59 11.13 0q.225.178.46.342c-.595.337-1.225.626-1.88.86q.516.974 1.191 1.845a18.6 18.6 0 0 0 5.57-2.682c.457-4.544-.78-8.484-3.27-11.978m-11.29 9.567c-1.087 0-1.978-.953-1.978-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116.002 1.16-.872 2.113-1.978 2.113m7.308 0c-1.086 0-1.977-.953-1.977-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116 0 1.16-.872 2.113-1.978 2.113" })
546
553
  ] });
547
554
  };
548
555
  var discord_default = SvgDiscord;
549
556
 
550
557
  // src/theme/default/provider-logos/facebook.svg
551
558
  import * as React7 from "react";
552
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
559
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
553
560
  var SvgFacebook = (props) => {
554
561
  var _a, _b;
555
- return /* @__PURE__ */ jsxs9("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
556
- /* @__PURE__ */ jsxs9("g", { clipPath: "url(#facebook_svg__a)", children: [
557
- /* @__PURE__ */ jsx13("path", { fill: "#1877F2", d: "M24 12c0-6.627-5.373-12-12-12C5.372 0 0 5.374 0 12c0 5.99 4.388 10.954 10.125 11.854V15.47H7.078V12h3.047V9.357c0-3.008 1.791-4.669 4.532-4.669 1.313 0 2.686.234 2.686.234v2.953H15.83c-1.49 0-1.955.925-1.955 1.874V12h3.328l-.532 3.469h-2.796v8.385c5.736-.9 10.124-5.864 10.124-11.854" }),
558
- /* @__PURE__ */ jsx13("path", { fill: "#fff", d: "M16.67 15.469 17.204 12h-3.328V9.75c0-.95.465-1.875 1.955-1.875h1.513V4.922s-1.373-.234-2.686-.234c-2.74 0-4.532 1.661-4.532 4.669V12H7.078v3.469h3.047v8.385a12.1 12.1 0 0 0 3.75 0V15.47z" })
559
- ] }),
560
- /* @__PURE__ */ jsx13("defs", { children: /* @__PURE__ */ jsx13("clipPath", { id: "facebook_svg__a", children: /* @__PURE__ */ jsx13("rect", { fill: "#fff" }) }) })
562
+ return /* @__PURE__ */ jsxs9("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
563
+ /* @__PURE__ */ jsx14("circle", { cx: 16, cy: 16, r: 14, fill: "url(#facebook_svg__a)" }),
564
+ /* @__PURE__ */ jsx14("path", { fill: "#fff", d: "m21.214 20.282.622-3.952h-3.89v-2.563c0-1.081.542-2.136 2.284-2.136H22V8.267S20.395 8 18.86 8c-3.205 0-5.298 1.893-5.298 5.318v3.012H10v3.952h3.562v9.552q1.073.165 2.191.166 1.12 0 2.192-.166v-9.552z" }),
565
+ /* @__PURE__ */ jsx14("defs", { children: /* @__PURE__ */ jsxs9("linearGradient", { id: "facebook_svg__a", x1: 16, x2: 16, y1: 2, y2: 29.917, gradientUnits: "userSpaceOnUse", children: [
566
+ /* @__PURE__ */ jsx14("stop", { stopColor: "#18ACFE" }),
567
+ /* @__PURE__ */ jsx14("stop", { offset: 1, stopColor: "#0163E0" })
568
+ ] }) })
561
569
  ] });
562
570
  };
563
571
  var facebook_default = SvgFacebook;
564
572
 
565
573
  // src/theme/default/provider-logos/generic.svg
566
574
  import * as React8 from "react";
567
- import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
575
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
568
576
  var SvgGeneric = (props) => {
569
577
  var _a, _b;
570
578
  return /* @__PURE__ */ jsxs10("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, className: "generic_svg__icon generic_svg__icon-tabler generic_svg__icon-tabler-brand-oauth", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
571
- /* @__PURE__ */ jsx14("path", { stroke: "none", d: "M0 0h24v24H0z" }),
572
- /* @__PURE__ */ jsx14("path", { d: "M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0" }),
573
- /* @__PURE__ */ jsx14("path", { d: "M12.556 6c.65 0 1.235.373 1.508.947l2.839 7.848a1.646 1.646 0 0 1-1.01 2.108 1.673 1.673 0 0 1-2.068-.851L13.365 15h-2.73l-.398.905A1.67 1.67 0 0 1 8.26 16.95l-.153-.047a1.647 1.647 0 0 1-1.056-1.956l2.824-7.852a1.66 1.66 0 0 1 1.409-1.087z" })
579
+ /* @__PURE__ */ jsx15("path", { stroke: "none", d: "M0 0h24v24H0z" }),
580
+ /* @__PURE__ */ jsx15("path", { d: "M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0" }),
581
+ /* @__PURE__ */ jsx15("path", { d: "M12.556 6c.65 0 1.235.373 1.508.947l2.839 7.848a1.646 1.646 0 0 1-1.01 2.108 1.673 1.673 0 0 1-2.068-.851L13.365 15h-2.73l-.398.905A1.67 1.67 0 0 1 8.26 16.95l-.153-.047a1.647 1.647 0 0 1-1.056-1.956l2.824-7.852a1.66 1.66 0 0 1 1.409-1.087z" })
574
582
  ] });
575
583
  };
576
584
  var generic_default = SvgGeneric;
577
585
 
578
586
  // src/theme/default/provider-logos/github.svg
579
587
  import * as React9 from "react";
580
- import { jsx as jsx15 } from "react/jsx-runtime";
588
+ import { jsx as jsx16 } from "react/jsx-runtime";
581
589
  var SvgGithub = (props) => {
582
590
  var _a, _b;
583
- return /* @__PURE__ */ jsx15("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx15("path", { d: "M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12" }) });
591
+ return /* @__PURE__ */ jsx16("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx16("path", { d: "M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12" }) });
584
592
  };
585
593
  var github_default = SvgGithub;
586
594
 
587
595
  // src/theme/default/provider-logos/gitlab.svg
588
596
  import * as React10 from "react";
589
- import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
597
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
590
598
  var SvgGitlab = (props) => {
591
599
  var _a, _b;
592
600
  return /* @__PURE__ */ jsxs11("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
593
- /* @__PURE__ */ jsx16("path", { fill: "#E24329", d: "m22.708 10.691-.031-.072-3.015-7.167a.74.74 0 0 0-.31-.34.87.87 0 0 0-.923.045.73.73 0 0 0-.268.37L16.125 9.2H7.881L5.845 3.527a.72.72 0 0 0-.268-.371.87.87 0 0 0-.923-.045.74.74 0 0 0-.31.34l-3.021 7.164-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132 2.272 1.567 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.567 4.62-3.151.012-.009c.968-.666 1.671-1.6 2.006-2.661a4.67 4.67 0 0 0-.15-3.226" }),
594
- /* @__PURE__ */ jsx16("path", { fill: "#FC6D26", d: "m22.708 10.691-.031-.072a10.7 10.7 0 0 0-4.055 1.66L12 16.839l4.218 2.904 4.621-3.152.012-.008c.969-.666 1.674-1.601 2.008-2.664a4.67 4.67 0 0 0-.15-3.228" }),
595
- /* @__PURE__ */ jsx16("path", { fill: "#FCA326", d: "m7.781 19.743 2.273 1.566 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.566S14.255 18.389 12 16.839c-2.255 1.55-4.219 2.904-4.219 2.904" }),
596
- /* @__PURE__ */ jsx16("path", { fill: "#FC6D26", d: "M5.376 12.279a10.7 10.7 0 0 0-4.053-1.664l-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132L12 16.836z" })
601
+ /* @__PURE__ */ jsx17("path", { fill: "#E24329", d: "m22.708 10.691-.031-.072-3.015-7.167a.74.74 0 0 0-.31-.34.87.87 0 0 0-.923.045.73.73 0 0 0-.268.37L16.125 9.2H7.881L5.845 3.527a.72.72 0 0 0-.268-.371.87.87 0 0 0-.923-.045.74.74 0 0 0-.31.34l-3.021 7.164-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132 2.272 1.567 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.567 4.62-3.151.012-.009c.968-.666 1.671-1.6 2.006-2.661a4.67 4.67 0 0 0-.15-3.226" }),
602
+ /* @__PURE__ */ jsx17("path", { fill: "#FC6D26", d: "m22.708 10.691-.031-.072a10.7 10.7 0 0 0-4.055 1.66L12 16.839l4.218 2.904 4.621-3.152.012-.008c.969-.666 1.674-1.601 2.008-2.664a4.67 4.67 0 0 0-.15-3.228" }),
603
+ /* @__PURE__ */ jsx17("path", { fill: "#FCA326", d: "m7.781 19.743 2.273 1.566 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.566S14.255 18.389 12 16.839c-2.255 1.55-4.219 2.904-4.219 2.904" }),
604
+ /* @__PURE__ */ jsx17("path", { fill: "#FC6D26", d: "M5.376 12.279a10.7 10.7 0 0 0-4.053-1.664l-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132L12 16.836z" })
597
605
  ] });
598
606
  };
599
607
  var gitlab_default = SvgGitlab;
600
608
 
601
609
  // src/theme/default/provider-logos/google.svg
602
610
  import * as React11 from "react";
603
- import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
611
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
604
612
  var SvgGoogle = (props) => {
605
613
  var _a, _b;
606
614
  return /* @__PURE__ */ jsxs12("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
607
- /* @__PURE__ */ jsx17("path", { fill: "#4285F4", d: "M30.001 16.31c0-1.15-.095-1.99-.301-2.861H16.287v5.195h7.873c-.159 1.291-1.016 3.236-2.92 4.542l-.027.174 4.24 3.22.294.029c2.699-2.443 4.254-6.036 4.254-10.298" }),
608
- /* @__PURE__ */ jsx17("path", { fill: "#34A853", d: "M16.286 30c3.857 0 7.095-1.244 9.46-3.391l-4.507-3.423c-1.207.825-2.826 1.4-4.953 1.4A8.58 8.58 0 0 1 8.16 18.77l-.167.014-4.41 3.344-.058.157C5.874 26.858 10.7 30 16.286 30" }),
609
- /* @__PURE__ */ jsx17("path", { fill: "#FBBC05", d: "M8.16 18.769a8.5 8.5 0 0 1-.476-2.77c0-.964.174-1.897.46-2.768l-.008-.185-4.465-3.399-.146.068A13.8 13.8 0 0 0 2.001 16c0 2.256.556 4.387 1.524 6.284z" }),
610
- /* @__PURE__ */ jsx17("path", { fill: "#EB4335", d: "M16.286 7.413c2.683 0 4.492 1.136 5.524 2.085l4.032-3.858C23.366 3.384 20.143 2 16.286 2 10.7 2 5.874 5.142 3.524 9.715l4.62 3.516c1.158-3.375 4.365-5.818 8.142-5.818" })
615
+ /* @__PURE__ */ jsx18("path", { fill: "#4285F4", d: "M30.001 16.31c0-1.15-.095-1.99-.301-2.861H16.287v5.195h7.873c-.159 1.291-1.016 3.236-2.92 4.542l-.027.174 4.24 3.22.294.029c2.699-2.443 4.254-6.036 4.254-10.298" }),
616
+ /* @__PURE__ */ jsx18("path", { fill: "#34A853", d: "M16.286 30c3.857 0 7.095-1.244 9.46-3.391l-4.507-3.423c-1.207.825-2.826 1.4-4.953 1.4A8.58 8.58 0 0 1 8.16 18.77l-.167.014-4.41 3.344-.058.157C5.874 26.858 10.7 30 16.286 30" }),
617
+ /* @__PURE__ */ jsx18("path", { fill: "#FBBC05", d: "M8.16 18.769a8.5 8.5 0 0 1-.476-2.77c0-.964.174-1.897.46-2.768l-.008-.185-4.465-3.399-.146.068A13.8 13.8 0 0 0 2.001 16c0 2.256.556 4.387 1.524 6.284z" }),
618
+ /* @__PURE__ */ jsx18("path", { fill: "#EB4335", d: "M16.286 7.413c2.683 0 4.492 1.136 5.524 2.085l4.032-3.858C23.366 3.384 20.143 2 16.286 2 10.7 2 5.874 5.142 3.524 9.715l4.62 3.516c1.158-3.375 4.365-5.818 8.142-5.818" })
611
619
  ] });
612
620
  };
613
621
  var google_default = SvgGoogle;
614
622
 
615
623
  // src/theme/default/provider-logos/linkedin.svg
616
624
  import * as React12 from "react";
617
- import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
625
+ import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
618
626
  var SvgLinkedin = (props) => {
619
627
  var _a, _b;
620
628
  return /* @__PURE__ */ jsxs13("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
621
- /* @__PURE__ */ jsx18("rect", { x: 2, y: 2, fill: "#1275B1", rx: 14 }),
622
- /* @__PURE__ */ jsx18("path", { fill: "#fff", d: "M12.619 9.692c0 .935-.81 1.692-1.81 1.692C9.81 11.384 9 10.627 9 9.692S9.81 8 10.81 8c.999 0 1.809.758 1.809 1.692M9.247 12.628h3.093V22H9.247zM17.32 12.628h-3.093V22h3.093v-4.795c0-1.107.378-2.22 1.886-2.22 1.705 0 1.695 1.45 1.687 2.572-.01 1.467.014 2.965.014 4.443H24v-4.946c-.026-3.159-.85-4.614-3.557-4.614-1.608 0-2.604.73-3.123 1.39z" })
629
+ /* @__PURE__ */ jsx19("rect", { x: 2, y: 2, fill: "#1275B1", rx: 14 }),
630
+ /* @__PURE__ */ jsx19("path", { fill: "#fff", d: "M12.619 9.692c0 .935-.81 1.692-1.81 1.692C9.81 11.384 9 10.627 9 9.692S9.81 8 10.81 8c.999 0 1.809.758 1.809 1.692M9.247 12.628h3.093V22H9.247zM17.32 12.628h-3.093V22h3.093v-4.795c0-1.107.378-2.22 1.886-2.22 1.705 0 1.695 1.45 1.687 2.572-.01 1.467.014 2.965.014 4.443H24v-4.946c-.026-3.159-.85-4.614-3.557-4.614-1.608 0-2.604.73-3.123 1.39z" })
623
631
  ] });
624
632
  };
625
633
  var linkedin_default = SvgLinkedin;
626
634
 
627
635
  // src/theme/default/provider-logos/microsoft.svg
628
636
  import * as React13 from "react";
629
- import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
637
+ import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
630
638
  var SvgMicrosoft = (props) => {
631
639
  var _a, _b;
632
640
  return /* @__PURE__ */ jsxs14("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 23 23", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
633
- /* @__PURE__ */ jsx19("path", { fill: "#F35325", d: "M1 1h10v10H1z" }),
634
- /* @__PURE__ */ jsx19("path", { fill: "#81BC06", d: "M12 1h10v10H12z" }),
635
- /* @__PURE__ */ jsx19("path", { fill: "#05A6F0", d: "M1 12h10v10H1z" }),
636
- /* @__PURE__ */ jsx19("path", { fill: "#FFBA08", d: "M12 12h10v10H12z" })
641
+ /* @__PURE__ */ jsx20("path", { fill: "#F35325", d: "M1 1h10v10H1z" }),
642
+ /* @__PURE__ */ jsx20("path", { fill: "#81BC06", d: "M12 1h10v10H12z" }),
643
+ /* @__PURE__ */ jsx20("path", { fill: "#05A6F0", d: "M1 12h10v10H1z" }),
644
+ /* @__PURE__ */ jsx20("path", { fill: "#FFBA08", d: "M12 12h10v10H12z" })
637
645
  ] });
638
646
  };
639
647
  var microsoft_default = SvgMicrosoft;
640
648
 
641
649
  // src/theme/default/provider-logos/slack.svg
642
650
  import * as React14 from "react";
643
- import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
651
+ import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
644
652
  var SvgSlack = (props) => {
645
653
  var _a, _b;
646
654
  return /* @__PURE__ */ jsxs15("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
647
- /* @__PURE__ */ jsx20("path", { fill: "#2EB67D", d: "M26.5 15a2.5 2.5 0 1 0-2.5-2.5V15zm-7 0a2.5 2.5 0 0 0 2.5-2.5v-7a2.5 2.5 0 0 0-5 0v7a2.5 2.5 0 0 0 2.5 2.5" }),
648
- /* @__PURE__ */ jsx20("path", { fill: "#E01E5A", d: "M5.5 17A2.5 2.5 0 1 0 8 19.5V17zm7 0a2.5 2.5 0 0 0-2.5 2.5v7a2.5 2.5 0 0 0 5 0v-7a2.5 2.5 0 0 0-2.5-2.5" }),
649
- /* @__PURE__ */ jsx20("path", { fill: "#ECB22E", d: "M17 26.5a2.5 2.5 0 1 0 2.5-2.5H17zm0-7a2.5 2.5 0 0 0 2.5 2.5h7a2.5 2.5 0 0 0 0-5h-7a2.5 2.5 0 0 0-2.5 2.5" }),
650
- /* @__PURE__ */ jsx20("path", { fill: "#36C5F0", d: "M15 5.5A2.5 2.5 0 1 0 12.5 8H15zm0 7a2.5 2.5 0 0 0-2.5-2.5h-7a2.5 2.5 0 0 0 0 5h7a2.5 2.5 0 0 0 2.5-2.5" })
655
+ /* @__PURE__ */ jsx21("path", { fill: "#2EB67D", d: "M26.5 15a2.5 2.5 0 1 0-2.5-2.5V15zm-7 0a2.5 2.5 0 0 0 2.5-2.5v-7a2.5 2.5 0 0 0-5 0v7a2.5 2.5 0 0 0 2.5 2.5" }),
656
+ /* @__PURE__ */ jsx21("path", { fill: "#E01E5A", d: "M5.5 17A2.5 2.5 0 1 0 8 19.5V17zm7 0a2.5 2.5 0 0 0-2.5 2.5v7a2.5 2.5 0 0 0 5 0v-7a2.5 2.5 0 0 0-2.5-2.5" }),
657
+ /* @__PURE__ */ jsx21("path", { fill: "#ECB22E", d: "M17 26.5a2.5 2.5 0 1 0 2.5-2.5H17zm0-7a2.5 2.5 0 0 0 2.5 2.5h7a2.5 2.5 0 0 0 0-5h-7a2.5 2.5 0 0 0-2.5 2.5" }),
658
+ /* @__PURE__ */ jsx21("path", { fill: "#36C5F0", d: "M15 5.5A2.5 2.5 0 1 0 12.5 8H15zm0 7a2.5 2.5 0 0 0-2.5-2.5h-7a2.5 2.5 0 0 0 0 5h7a2.5 2.5 0 0 0 2.5-2.5" })
651
659
  ] });
652
660
  };
653
661
  var slack_default = SvgSlack;
654
662
 
655
663
  // src/theme/default/provider-logos/spotify.svg
656
664
  import * as React15 from "react";
657
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
665
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
658
666
  var SvgSpotify = (props) => {
659
667
  var _a, _b;
660
668
  return /* @__PURE__ */ jsxs16("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
661
- /* @__PURE__ */ jsx21("circle", { cx: 16, cy: 16, r: 14, fill: "#1ED760" }),
662
- /* @__PURE__ */ jsx21("path", { fill: "#fff", d: "M22.364 21.623c-.239.38-.75.486-1.148.258-3.141-1.822-7.08-2.232-11.736-1.23-.446.091-.893-.167-.988-.592a.786.786 0 0 1 .621-.94c5.087-1.11 9.456-.639 12.964 1.41a.77.77 0 0 1 .287 1.094m1.627-3.461c-.303.47-.941.607-1.435.334-3.588-2.11-9.058-2.718-13.299-1.488-.558.152-1.132-.137-1.292-.653-.16-.531.144-1.078.702-1.23 4.848-1.396 10.875-.728 15.005 1.686.462.273.622.88.319 1.35m.143-3.613c-4.305-2.43-11.4-2.657-15.515-1.473-.654.197-1.355-.152-1.563-.79-.207-.622.176-1.29.83-1.487 4.72-1.366 12.565-1.093 17.508 1.7.59.334.781 1.063.43 1.625-.334.576-1.1.774-1.69.425" })
669
+ /* @__PURE__ */ jsx22("circle", { cx: 16, cy: 16, r: 14, fill: "#1ED760" }),
670
+ /* @__PURE__ */ jsx22("path", { fill: "#fff", d: "M22.364 21.623c-.239.38-.75.486-1.148.258-3.141-1.822-7.08-2.232-11.736-1.23-.446.091-.893-.167-.988-.592a.786.786 0 0 1 .621-.94c5.087-1.11 9.456-.639 12.964 1.41a.77.77 0 0 1 .287 1.094m1.627-3.461c-.303.47-.941.607-1.435.334-3.588-2.11-9.058-2.718-13.299-1.488-.558.152-1.132-.137-1.292-.653-.16-.531.144-1.078.702-1.23 4.848-1.396 10.875-.728 15.005 1.686.462.273.622.88.319 1.35m.143-3.613c-4.305-2.43-11.4-2.657-15.515-1.473-.654.197-1.355-.152-1.563-.79-.207-.622.176-1.29.83-1.487 4.72-1.366 12.565-1.093 17.508 1.7.59.334.781 1.063.43 1.625-.334.576-1.1.774-1.69.425" })
663
671
  ] });
664
672
  };
665
673
  var spotify_default = SvgSpotify;
666
674
 
667
675
  // src/theme/default/provider-logos/yandex.svg
668
676
  import * as React16 from "react";
669
- import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
677
+ import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
670
678
  var SvgYandex = (props) => {
671
679
  var _a, _b;
672
680
  return /* @__PURE__ */ jsxs17("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
673
- /* @__PURE__ */ jsx22("circle", { cx: 16, cy: 16, r: 14, fill: "#fff" }),
674
- /* @__PURE__ */ jsx22("path", { fill: "#FC3F1D", d: "M21 25h-3.143V9.435h-1.402c-2.572 0-3.922 1.294-3.922 3.211 0 2.175.935 3.185 2.857 4.48l1.584 1.063L12.403 25H9l4.104-6.086c-2.363-1.684-3.688-3.316-3.688-6.087C9.416 9.357 11.83 7 16.429 7H21z" })
681
+ /* @__PURE__ */ jsx23("circle", { cx: 16, cy: 16, r: 14, fill: "#fff" }),
682
+ /* @__PURE__ */ jsx23("path", { fill: "#FC3F1D", d: "M21 25h-3.143V9.435h-1.402c-2.572 0-3.922 1.294-3.922 3.211 0 2.175.935 3.185 2.857 4.48l1.584 1.063L12.403 25H9l4.104-6.086c-2.363-1.684-3.688-3.316-3.688-6.087C9.416 9.357 11.83 7 16.429 7H21z" })
675
683
  ] });
676
684
  };
677
685
  var yandex_default = SvgYandex;
@@ -696,7 +704,49 @@ var provider_logos_default = logos;
696
704
 
697
705
  // src/theme/default/components/form/social.tsx
698
706
  import { useIntl as useIntl3 } from "react-intl";
699
- import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
707
+ import { useFormContext as useFormContext2 } from "react-hook-form";
708
+
709
+ // src/theme/default/components/form/spinner.tsx
710
+ import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
711
+ function Spinner({ className }) {
712
+ return /* @__PURE__ */ jsxs18(
713
+ "svg",
714
+ {
715
+ "aria-hidden": "true",
716
+ role: "status",
717
+ className: cn(
718
+ "absolute pointer-events-none inset-0 m-auto size-8 animate-spin",
719
+ className
720
+ ),
721
+ viewBox: "0 0 34 34",
722
+ fill: "none",
723
+ xmlns: "http://www.w3.org/2000/svg",
724
+ children: [
725
+ /* @__PURE__ */ jsx24("g", { clipPath: "url(#clip0_2572_1748)", children: /* @__PURE__ */ jsx24(
726
+ "path",
727
+ {
728
+ d: "M23.364 10.6362C22.1053 9.37751 20.5016 8.52034 18.7558 8.17307C17.01 7.82581 15.2004 8.00404 13.5559 8.68523C11.9113 9.36641 10.5057 10.52 9.51678 12C8.52784 13.4801 8 15.2201 8 17.0001C8 18.7802 8.52784 20.5202 9.51678 22.0003C10.5057 23.4803 11.9113 24.6339 13.5559 25.3151C15.2004 25.9962 17.01 26.1745 18.7558 25.8272C20.5016 25.4799 22.1053 24.6228 23.364 23.3641",
729
+ stroke: "currentColor",
730
+ strokeLinecap: "round",
731
+ strokeLinejoin: "round"
732
+ }
733
+ ) }),
734
+ /* @__PURE__ */ jsx24("defs", { children: /* @__PURE__ */ jsx24("clipPath", { id: "clip0_2572_1748", children: /* @__PURE__ */ jsx24(
735
+ "rect",
736
+ {
737
+ width: "24",
738
+ height: "24",
739
+ fill: "currentColor",
740
+ transform: "translate(17 0.029541) rotate(45)"
741
+ }
742
+ ) }) })
743
+ ]
744
+ }
745
+ );
746
+ }
747
+
748
+ // src/theme/default/components/form/social.tsx
749
+ import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
700
750
  function extractProvider(context) {
701
751
  if (context && typeof context === "object" && "provider" in context && typeof context.provider === "string") {
702
752
  return context.provider;
@@ -722,40 +772,36 @@ function DefaultButtonSocial({
722
772
  flow: { ui }
723
773
  } = useOryFlow5();
724
774
  const intl = useIntl3();
775
+ const {
776
+ formState: { isSubmitting }
777
+ } = useFormContext2();
725
778
  const oidcNodeCount = (_a = ui.nodes.filter((node2) => node2.group === "oidc").length) != null ? _a : 0;
726
779
  const Logo = logos2[attributes.value];
727
780
  const showLabel = _showLabel != null ? _showLabel : oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0;
728
781
  const provider = (_c = extractProvider((_b = node.meta.label) == null ? void 0 : _b.context)) != null ? _c : "";
729
- return /* @__PURE__ */ jsxs18(
782
+ return /* @__PURE__ */ jsxs19(
730
783
  "button",
731
784
  {
732
- className: cn(
733
- "gap-3 ring-1 ring-forms-border-default bg-button-secondary-bg-default hover:bg-button-secondary-bg-hover transition-colors rounded flex items-center justify-center py-2.5 px-4 md:py-4",
734
- { "py-2.5": showLabel }
735
- ),
785
+ className: "gap-3 border border-button-social-border-default bg-button-social-background-default hover:bg-button-social-background-hover transition-colors rounded flex items-center justify-center px-4 py-[13px] disabled:bg-button-social-background-disabled disabled:border-button-social-border-disabled disabled:text-button-social-foreground-disabled hover:text-button-social-foreground-disabled",
736
786
  value: attributes.value,
737
787
  type: "submit",
738
788
  name: "provider",
739
789
  ...props,
740
790
  onClick,
791
+ disabled: isSubmitting,
741
792
  children: [
742
- /* @__PURE__ */ jsx23("span", { className: "w-5 h-5", children: Logo ? /* @__PURE__ */ jsx23(
743
- Logo,
744
- {
745
- size: 20
746
- }
747
- ) : /* @__PURE__ */ jsx23("span", { className: "rounded-full aspect-square border flex items-center justify-center text-xs", children: provider.slice(0, 2) }) }),
748
- showLabel && node.meta.label ? /* @__PURE__ */ jsx23("span", { className: "text-sm text-left leading-none font-medium text-forms-fg-default flex-grow", children: uiTextToFormattedMessage(node.meta.label, intl) }) : null
793
+ /* @__PURE__ */ jsx25("span", { className: "size-5 relative", children: !isSubmitting ? Logo ? /* @__PURE__ */ jsx25(Logo, { size: 20 }) : /* @__PURE__ */ jsx25("span", { className: "flex aspect-square items-center justify-center rounded-full border text-xs", children: provider.slice(0, 2) }) : /* @__PURE__ */ jsx25(Spinner, { className: "size-5" }) }),
794
+ showLabel && node.meta.label ? /* @__PURE__ */ jsx25("span", { className: "grow text-left font-medium leading-none text-button-social-foreground-default", children: uiTextToFormattedMessage(node.meta.label, intl) }) : null
749
795
  ]
750
796
  }
751
797
  );
752
798
  }
753
- DefaultButtonSocial.WithLogos = (logos2) => (props) => /* @__PURE__ */ jsx23(DefaultButtonSocial, { ...props, logos: logos2 });
799
+ DefaultButtonSocial.WithLogos = (logos2) => (props) => /* @__PURE__ */ jsx25(DefaultButtonSocial, { ...props, logos: logos2 });
754
800
  function DefaultSocialButtonContainer({
755
801
  children,
756
802
  nodes
757
803
  }) {
758
- return /* @__PURE__ */ jsx23(
804
+ return /* @__PURE__ */ jsx25(
759
805
  "div",
760
806
  {
761
807
  className: cn("grid gap-3", {
@@ -770,14 +816,14 @@ function DefaultSocialButtonContainer({
770
816
  }
771
817
 
772
818
  // src/theme/default/components/form/index.tsx
773
- import { jsx as jsx24 } from "react/jsx-runtime";
819
+ import { jsx as jsx26 } from "react/jsx-runtime";
774
820
  function DefaultFormContainer({
775
821
  children,
776
822
  onSubmit,
777
823
  action,
778
824
  method
779
825
  }) {
780
- return /* @__PURE__ */ jsx24(
826
+ return /* @__PURE__ */ jsx26(
781
827
  "form",
782
828
  {
783
829
  onSubmit,
@@ -794,7 +840,7 @@ function DefaultMessageContainer({ children }) {
794
840
  if (!children || Array.isArray(children) && children.length === 0) {
795
841
  return null;
796
842
  }
797
- return /* @__PURE__ */ jsx24(
843
+ return /* @__PURE__ */ jsx26(
798
844
  "section",
799
845
  {
800
846
  className: cn(
@@ -806,14 +852,15 @@ function DefaultMessageContainer({ children }) {
806
852
  }
807
853
  function DefaultMessage({ message }) {
808
854
  const intl = useIntl4();
809
- return /* @__PURE__ */ jsx24(
855
+ return /* @__PURE__ */ jsx26(
810
856
  "span",
811
857
  {
812
- className: cn("text-sm leading-normal", {
813
- "text-forms-fg-error": message.type === "error",
814
- "text-forms-fg-default": message.type === "info",
815
- "text-forms-fg-success": message.type === "success"
816
- }),
858
+ className: cn(
859
+ "leading-normal",
860
+ message.type === "error" && "text-interface-foreground-validation-danger",
861
+ message.type === "info" && "text-interface-foreground-default-secondary",
862
+ message.type === "success" && "text-interface-foreground-validation-success"
863
+ ),
817
864
  ...messageTestId(message),
818
865
  children: uiTextToFormattedMessage2(message, intl)
819
866
  }
@@ -825,37 +872,37 @@ import { useIntl as useIntl5 } from "react-intl";
825
872
 
826
873
  // src/theme/default/assets/icons/code.svg
827
874
  import * as React17 from "react";
828
- import { jsx as jsx25 } from "react/jsx-runtime";
875
+ import { jsx as jsx27 } from "react/jsx-runtime";
829
876
  var SvgCode = (props) => {
830
877
  var _a, _b;
831
- return /* @__PURE__ */ jsx25("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 15 13", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx25("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12" }) });
878
+ return /* @__PURE__ */ jsx27("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 15 13", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx27("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12" }) });
832
879
  };
833
880
  var code_default = SvgCode;
834
881
 
835
882
  // src/theme/default/assets/icons/passkey.svg
836
883
  import * as React18 from "react";
837
- import { jsx as jsx26 } from "react/jsx-runtime";
884
+ import { jsx as jsx28 } from "react/jsx-runtime";
838
885
  var SvgPasskey = (props) => {
839
886
  var _a, _b;
840
- return /* @__PURE__ */ jsx26("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 13 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx26("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633" }) });
887
+ return /* @__PURE__ */ jsx28("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 13 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx28("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633" }) });
841
888
  };
842
889
  var passkey_default = SvgPasskey;
843
890
 
844
891
  // src/theme/default/assets/icons/password.svg
845
892
  import * as React19 from "react";
846
- import { jsx as jsx27 } from "react/jsx-runtime";
893
+ import { jsx as jsx29 } from "react/jsx-runtime";
847
894
  var SvgPassword = (props) => {
848
895
  var _a, _b;
849
- return /* @__PURE__ */ jsx27("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 4", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx27("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667" }) });
896
+ return /* @__PURE__ */ jsx29("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 4", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx29("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667" }) });
850
897
  };
851
898
  var password_default = SvgPassword;
852
899
 
853
900
  // src/theme/default/assets/icons/webauthn.svg
854
901
  import * as React20 from "react";
855
- import { jsx as jsx28 } from "react/jsx-runtime";
902
+ import { jsx as jsx30 } from "react/jsx-runtime";
856
903
  var SvgWebauthn = (props) => {
857
904
  var _a, _b;
858
- return /* @__PURE__ */ jsx28("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx28("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0" }) });
905
+ return /* @__PURE__ */ jsx30("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx30("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0" }) });
859
906
  };
860
907
  var webauthn_default = SvgWebauthn;
861
908
 
@@ -865,7 +912,7 @@ function isGroupImmediateSubmit(group) {
865
912
  }
866
913
 
867
914
  // src/theme/default/components/card/auth-methods.tsx
868
- import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
915
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
869
916
  var iconsMap = {
870
917
  code: code_default,
871
918
  passkey: passkey_default,
@@ -878,20 +925,26 @@ function DefaultAuthMethodListItem({
878
925
  }) {
879
926
  const intl = useIntl5();
880
927
  const Icon = iconsMap[group] || null;
881
- return /* @__PURE__ */ jsx29("div", { className: "w-full hover:bg-forms-bg-hover px-2 py-1 rounded", children: /* @__PURE__ */ jsxs19(
928
+ return /* @__PURE__ */ jsx31("div", { className: "w-full rounded px-2 py-1 hover:bg-interface-background-default-primary-hover", children: /* @__PURE__ */ jsxs20(
882
929
  "button",
883
930
  {
884
- className: "flex text-left py-2 gap-3 cursor-pointer",
931
+ className: "flex cursor-pointer gap-3 py-2 text-left items-start",
885
932
  onClick,
886
933
  type: isGroupImmediateSubmit(group) ? "submit" : "button",
887
934
  id: `auth-method-list-item-${group}`,
888
935
  "data-testid": "auth-method-list-item",
889
936
  "aria-label": `Authenticate with ${group}`,
890
937
  children: [
891
- /* @__PURE__ */ jsx29("div", { className: "flex-none w-4 h-4 mt-[2px]", children: Icon && /* @__PURE__ */ jsx29(Icon, { size: 20, className: "text-forms-fg-default" }) }),
892
- /* @__PURE__ */ jsxs19("div", { className: "flex-1 text-sm leading-normal", children: [
893
- /* @__PURE__ */ jsx29("div", { className: "text-forms-fg-default text-sm", children: intl.formatMessage({ id: `two-step.${group}.title` }) }),
894
- /* @__PURE__ */ jsx29("div", { className: "text-forms-fg-mute text-sm", children: intl.formatMessage({ id: `two-step.${group}.description` }) })
938
+ /* @__PURE__ */ jsx31("span", { className: "mt-1", children: Icon && /* @__PURE__ */ jsx31(
939
+ Icon,
940
+ {
941
+ size: 16,
942
+ className: "text-interface-foreground-brand-primary"
943
+ }
944
+ ) }),
945
+ /* @__PURE__ */ jsxs20("span", { className: "flex-1 leading-normal inline-flex flex-col", children: [
946
+ /* @__PURE__ */ jsx31("span", { className: "text-interface-foreground-default-primary", children: intl.formatMessage({ id: `two-step.${group}.title` }) }),
947
+ /* @__PURE__ */ jsx31("span", { className: "text-interface-foreground-default-secondary", children: intl.formatMessage({ id: `two-step.${group}.description` }) })
895
948
  ] })
896
949
  ]
897
950
  }
@@ -899,87 +952,42 @@ function DefaultAuthMethodListItem({
899
952
  }
900
953
 
901
954
  // src/theme/default/components/form/button.tsx
902
- import { FlowType as FlowType5, getNodeLabel } from "@ory/client-fetch";
955
+ import { getNodeLabel } from "@ory/client-fetch";
903
956
  import {
904
957
  uiTextToFormattedMessage as uiTextToFormattedMessage3
905
958
  } from "@ory/elements-react";
906
- import { useFormContext as useFormContext2 } from "react-hook-form";
907
- import { useIntl as useIntl6 } from "react-intl";
908
-
909
- // src/theme/default/components/form/spinner.tsx
910
- import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
911
- function Spinner({ className }) {
912
- return /* @__PURE__ */ jsxs20(
913
- "svg",
914
- {
915
- "aria-hidden": "true",
916
- role: "status",
917
- className: cn(
918
- "absolute pointer-events-none inset-0 mx-auto my-auto w-8 h-8 animate-spin",
919
- className
920
- ),
921
- viewBox: "0 0 34 34",
922
- fill: "none",
923
- xmlns: "http://www.w3.org/2000/svg",
924
- children: [
925
- /* @__PURE__ */ jsx30("g", { clipPath: "url(#clip0_2572_1748)", children: /* @__PURE__ */ jsx30(
926
- "path",
927
- {
928
- d: "M23.364 10.6362C22.1053 9.37751 20.5016 8.52034 18.7558 8.17307C17.01 7.82581 15.2004 8.00404 13.5559 8.68523C11.9113 9.36641 10.5057 10.52 9.51678 12C8.52784 13.4801 8 15.2201 8 17.0001C8 18.7802 8.52784 20.5202 9.51678 22.0003C10.5057 23.4803 11.9113 24.6339 13.5559 25.3151C15.2004 25.9962 17.01 26.1745 18.7558 25.8272C20.5016 25.4799 22.1053 24.6228 23.364 23.3641",
929
- stroke: "currentColor",
930
- strokeLinecap: "round",
931
- strokeLinejoin: "round"
932
- }
933
- ) }),
934
- /* @__PURE__ */ jsx30("defs", { children: /* @__PURE__ */ jsx30("clipPath", { id: "clip0_2572_1748", children: /* @__PURE__ */ jsx30(
935
- "rect",
936
- {
937
- width: "24",
938
- height: "24",
939
- fill: "currentColor",
940
- transform: "translate(17 0.029541) rotate(45)"
941
- }
942
- ) }) })
943
- ]
944
- }
945
- );
946
- }
947
-
948
- // src/theme/default/components/form/button.tsx
949
- import { useOryFlow as useOryFlow7 } from "@ory/elements-react";
950
959
  import { cva } from "class-variance-authority";
951
- import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
960
+ import { useFormContext as useFormContext3 } from "react-hook-form";
961
+ import { useIntl as useIntl6 } from "react-intl";
962
+ import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
952
963
  var buttonStyles = cva(
953
964
  [
954
- "ring-1 relative overflow-hidden ring-inset rounded text-sm leading-none flex gap-3 justify-center",
955
- "disabled:cursor-not-allowed loading:before:pointer-events-none loading:cursor-wait",
956
- "transition-colors ease-linear duration-100"
965
+ "relative flex justify-center gap-3 overflow-hidden rounded leading-none ring-1 ring-inset font-medium",
966
+ "disabled:cursor-not-allowed loading:cursor-wait loading:before:pointer-events-none",
967
+ "transition-colors duration-100 ease-linear",
968
+ "p-4 max-w-[488px]"
957
969
  ],
958
970
  {
959
971
  variants: {
960
972
  intent: {
961
973
  primary: [
962
- "bg-button-primary-bg-default text-button-primary-fg-default ring-button-primary-border-default",
963
- "hover:bg-button-primary-bg-hover hover:text-button-primary-fg-hover hover:ring-button-primary-border-hover",
964
- "disabled:bg-button-primary-bg-disabled disabled:text-button-primary-fg-disabled disabled:ring-button-primary-border-disabled",
965
- "loading:bg-button-primary-bg-default loading:text-button-primary-fg-default loading:ring-button-primary-border-default",
966
- "loading:before:absolute loading:before:content-[''] loading:before:inset-0 loading:before:bg-button-primary-bg-default loading:before:opacity-80"
974
+ "bg-button-primary-background-default text-button-primary-foreground-default ring-button-primary-border-default",
975
+ "hover:bg-button-primary-background-hover hover:text-button-primary-foreground-hover hover:ring-button-primary-border-hover",
976
+ "disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled",
977
+ "loading:bg-button-primary-background-default loading:text-button-primary-foreground-default loading:ring-button-primary-border-default",
978
+ "loading:before:absolute loading:before:inset-0 loading:before:bg-button-primary-background-default loading:before:opacity-80 loading:before:content-['']",
979
+ "disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled"
967
980
  ],
968
981
  secondary: [
969
- "bg-button-secondary-bg-default text-button-secondary-fg-default ring-button-secondary-border-default",
970
- "hover:bg-button-secondary-bg-hover hover:text-button-secondary-fg-hover hover:ring-button-secondary-border-hover",
971
- "disabled:bg-button-secondary-bg-disabled disabled:text-button-secondary-fg-disabled disabled:ring-button-secondary-border-disabled",
972
- "loading:bg-button-secondary-bg-default loading:text-button-secondary-fg-default loading:ring-button-secondary-border-default",
973
- "loading:before:absolute loading:before:content-[''] loading:before:inset-0 loading:before:bg-button-secondary-bg-default loading:before:opacity-80"
982
+ "bg-button-secondary-background-default text-button-secondary-foreground-default ring-button-secondary-border-default",
983
+ "hover:bg-button-secondary-background-hover hover:text-button-secondary-foreground-hover hover:ring-button-secondary-border-hover",
984
+ "disabled:bg-button-secondary-background-disabled disabled:text-button-secondary-foreground-disabled disabled:ring-button-secondary-border-disabled",
985
+ "loading:bg-button-secondary-background-default loading:text-button-secondary-foreground-default loading:ring-button-secondary-border-default",
986
+ "loading:before:absolute loading:before:inset-0 loading:before:bg-button-secondary-background-default loading:before:opacity-80 loading:before:content-['']"
974
987
  ]
975
988
  },
976
- size: {
977
- default: ["px-4 py-3"],
978
- large: ["px-4 py-4.5 max-md:py-3"]
979
- },
980
989
  defaultVariants: {
981
- intent: "primary",
982
- size: "default"
990
+ intent: "primary"
983
991
  }
984
992
  }
985
993
  }
@@ -1003,13 +1011,11 @@ var DefaultButton = ({
1003
1011
  } = attributes;
1004
1012
  const intl = useIntl6();
1005
1013
  const label = getNodeLabel(node);
1006
- const { flowType } = useOryFlow7();
1007
1014
  const {
1008
1015
  formState: { isSubmitting },
1009
1016
  setValue
1010
- } = useFormContext2();
1017
+ } = useFormContext3();
1011
1018
  const isPrimary = attributes.name === "method" || attributes.name.includes("passkey") || attributes.name.includes("webauthn") || attributes.name.includes("lookup_secret");
1012
- const isSmall = flowType === FlowType5.Settings && attributes.name !== "webauthn_register_trigger";
1013
1019
  return /* @__PURE__ */ jsxs21(
1014
1020
  "button",
1015
1021
  {
@@ -1027,14 +1033,13 @@ var DefaultButton = ({
1027
1033
  }
1028
1034
  },
1029
1035
  className: buttonStyles({
1030
- intent: isPrimary ? "primary" : "secondary",
1031
- size: isSmall ? "default" : "large"
1036
+ intent: isPrimary ? "primary" : "secondary"
1032
1037
  }),
1033
1038
  disabled: (_a = rest.disabled) != null ? _a : true,
1034
1039
  "data-loading": isSubmitting,
1035
1040
  children: [
1036
- isSubmitting ? /* @__PURE__ */ jsx31(Spinner, {}) : null,
1037
- label ? uiTextToFormattedMessage3(label, intl) : ""
1041
+ isSubmitting ? /* @__PURE__ */ jsx32(Spinner, {}) : null,
1042
+ label ? /* @__PURE__ */ jsx32("span", { children: uiTextToFormattedMessage3(label, intl) }) : ""
1038
1043
  ]
1039
1044
  }
1040
1045
  );
@@ -1047,7 +1052,6 @@ import {
1047
1052
  messageTestId as messageTestId2,
1048
1053
  uiTextToFormattedMessage as uiTextToFormattedMessage5
1049
1054
  } from "@ory/elements-react";
1050
- import { useState } from "react";
1051
1055
  import { useForm } from "react-hook-form";
1052
1056
  import { useIntl as useIntl8 } from "react-intl";
1053
1057
 
@@ -1103,7 +1107,7 @@ var uiTextToFormattedMessage4 = ({ id, context = {}, text }, intl) => {
1103
1107
  };
1104
1108
 
1105
1109
  // src/theme/default/components/ui/checkbox-label.tsx
1106
- import { Fragment as Fragment2, jsx as jsx32 } from "react/jsx-runtime";
1110
+ import { Fragment as Fragment2, jsx as jsx33 } from "react/jsx-runtime";
1107
1111
  var linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
1108
1112
  function computeLabelElements(labelText) {
1109
1113
  const elements = [];
@@ -1119,13 +1123,13 @@ function computeLabelElements(labelText) {
1119
1123
  elements.push(labelText.slice(lastIndex, matchStart));
1120
1124
  }
1121
1125
  elements.push(
1122
- /* @__PURE__ */ jsx32(
1126
+ /* @__PURE__ */ jsx33(
1123
1127
  "a",
1124
1128
  {
1125
1129
  href: url,
1126
1130
  target: "_blank",
1127
1131
  rel: "noopener noreferrer",
1128
- className: "text-links-link-default hover:text-links-link-hover hover:underline",
1132
+ className: "text-button-link-brand-brand hover:text-button-link-brand-brand-hover underline",
1129
1133
  children: linkText
1130
1134
  },
1131
1135
  matchStart
@@ -1144,39 +1148,29 @@ function CheckboxLabel({ label }) {
1144
1148
  return null;
1145
1149
  }
1146
1150
  const labelText = uiTextToFormattedMessage4(label, intl);
1147
- return /* @__PURE__ */ jsx32(Fragment2, { children: computeLabelElements(labelText) });
1151
+ return /* @__PURE__ */ jsx33(Fragment2, { children: computeLabelElements(labelText) });
1148
1152
  }
1149
1153
 
1150
1154
  // src/theme/default/components/form/checkbox.tsx
1151
- import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
1155
+ import { jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
1152
1156
  function CheckboxSVG() {
1153
- return /* @__PURE__ */ jsxs22(
1157
+ return /* @__PURE__ */ jsx34(
1154
1158
  "svg",
1155
1159
  {
1156
- className: "absolute w-4 h-4 hidden peer-checked:block",
1160
+ className: "absolute hidden size-4 peer-checked:block fill-checkbox-foreground-checked",
1157
1161
  xmlns: "http://www.w3.org/2000/svg",
1158
1162
  width: "16",
1159
1163
  height: "16",
1160
1164
  viewBox: "0 0 16 16",
1161
1165
  fill: "none",
1162
- children: [
1163
- /* @__PURE__ */ jsx33(
1164
- "path",
1165
- {
1166
- d: "M0 4C0 1.79086 1.79086 0 4 0H12C14.2091 0 16 1.79086 16 4V12C16 14.2091 14.2091 16 12 16H4C1.79086 16 0 14.2091 0 12V4Z",
1167
- fill: "#0F172A"
1168
- }
1169
- ),
1170
- /* @__PURE__ */ jsx33(
1171
- "path",
1172
- {
1173
- fillRule: "evenodd",
1174
- clipRule: "evenodd",
1175
- d: "M11.6464 5.14645C11.8417 4.95118 12.1583 4.95118 12.3536 5.14645C12.5338 5.32669 12.5477 5.6103 12.3951 5.80645L12.3536 5.85355L7.35355 10.8536C7.17331 11.0338 6.8897 11.0477 6.69355 10.8951L6.64645 10.8536L4.14645 8.35355C3.95118 8.15829 3.95118 7.84171 4.14645 7.64645C4.32669 7.4662 4.6103 7.45234 4.80645 7.60485L4.85355 7.64645L7 9.7925L11.6464 5.14645Z",
1176
- fill: "white"
1177
- }
1178
- )
1179
- ]
1166
+ children: /* @__PURE__ */ jsx34(
1167
+ "path",
1168
+ {
1169
+ fillRule: "evenodd",
1170
+ clipRule: "evenodd",
1171
+ d: "M11.6464 5.14645C11.8417 4.95118 12.1583 4.95118 12.3536 5.14645C12.5338 5.32669 12.5477 5.6103 12.3951 5.80645L12.3536 5.85355L7.35355 10.8536C7.17331 11.0338 6.8897 11.0477 6.69355 10.8951L6.64645 10.8536L4.14645 8.35355C3.95118 8.15829 3.95118 7.84171 4.14645 7.64645C4.32669 7.4662 4.6103 7.45234 4.80645 7.60485L4.85355 7.64645L7 9.7925L11.6464 5.14645Z"
1172
+ }
1173
+ )
1180
1174
  }
1181
1175
  );
1182
1176
  }
@@ -1196,85 +1190,78 @@ var DefaultCheckbox = ({
1196
1190
  } = initialAttributes;
1197
1191
  const intl = useIntl8();
1198
1192
  const label = getNodeLabel2(node);
1199
- const [checked, setChecked] = useState(Boolean(value));
1200
1193
  const { register } = useForm();
1201
- return /* @__PURE__ */ jsxs22(
1202
- "div",
1203
- {
1204
- className: "flex antialiased gap-3 self-stretch item-start",
1205
- onClick: () => {
1206
- setChecked(!checked);
1207
- },
1208
- children: [
1209
- /* @__PURE__ */ jsxs22("div", { className: "flex h-5 items-center", children: [
1210
- /* @__PURE__ */ jsx33(
1211
- "input",
1212
- {
1213
- ...attributes,
1214
- checked,
1215
- value: 1,
1216
- type: "checkbox",
1217
- className: cn(
1218
- "peer w-4 h-4 border appearance-none rounded-border-radius-buttons",
1219
- !checked && "bg-forms-checkbox-bg-default border-forms-checkbox-border-default",
1220
- checked && "bg-forms-checkbox-bg-checked border-forms-checkbox-border-checked"
1221
- ),
1222
- ...register(name, { value })
1223
- }
1194
+ const hasError = node.messages.some((m) => m.type === "error");
1195
+ return /* @__PURE__ */ jsxs22("label", { className: "flex items-start gap-3 self-stretch antialiased", children: [
1196
+ /* @__PURE__ */ jsxs22("span", { className: "flex h-5 items-center", children: [
1197
+ /* @__PURE__ */ jsx34(
1198
+ "input",
1199
+ {
1200
+ ...attributes,
1201
+ value: 1,
1202
+ defaultChecked: Boolean(value),
1203
+ type: "checkbox",
1204
+ className: cn(
1205
+ "peer size-4 border appearance-none rounded-forms bg-checkbox-background-default border-checkbox-border-checkbox-border-default checked:bg-checkbox-background-checked checked:border-checkbox-border-checkbox-border-checked",
1206
+ hasError && "border-interface-border-validation-danger"
1224
1207
  ),
1225
- /* @__PURE__ */ jsx33(CheckboxSVG, {})
1226
- ] }),
1227
- /* @__PURE__ */ jsxs22("div", { className: "text-sm items-center", children: [
1228
- /* @__PURE__ */ jsx33("label", { className: "text-sm font-normal leading-normal text-forms-fg-default", children: /* @__PURE__ */ jsx33(CheckboxLabel, { label }) }),
1229
- node.messages.map((message) => /* @__PURE__ */ jsx33(
1230
- "span",
1231
- {
1232
- className: "text-sm text-red-900 mt-1",
1233
- ...messageTestId2(message),
1234
- children: uiTextToFormattedMessage5(message, intl)
1235
- },
1236
- message.id
1237
- ))
1238
- ] })
1239
- ]
1240
- }
1241
- );
1208
+ ...register(name, { value })
1209
+ }
1210
+ ),
1211
+ /* @__PURE__ */ jsx34(CheckboxSVG, {})
1212
+ ] }),
1213
+ /* @__PURE__ */ jsxs22("span", { className: "flex flex-col", children: [
1214
+ /* @__PURE__ */ jsx34("span", { className: "font-normal leading-tight text-interface-foreground-default-primary", children: /* @__PURE__ */ jsx34(CheckboxLabel, { label }) }),
1215
+ node.messages.map((message) => /* @__PURE__ */ jsx34(
1216
+ "span",
1217
+ {
1218
+ className: cn(
1219
+ "mt-1",
1220
+ message.type === "error" ? "text-interface-foreground-validation-danger" : "text-interface-foreground-default-secondary"
1221
+ ),
1222
+ ...messageTestId2(message),
1223
+ children: uiTextToFormattedMessage5(message, intl)
1224
+ },
1225
+ message.id
1226
+ ))
1227
+ ] })
1228
+ ] });
1242
1229
  };
1243
1230
 
1244
1231
  // src/theme/default/components/form/group-container.tsx
1245
- import { jsx as jsx34 } from "react/jsx-runtime";
1232
+ import { jsx as jsx35 } from "react/jsx-runtime";
1246
1233
  function DefaultGroupContainer({ children }) {
1247
- return /* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 gap-6", children });
1234
+ return /* @__PURE__ */ jsx35("div", { className: "grid grid-cols-1 gap-8", children });
1248
1235
  }
1249
1236
 
1250
1237
  // src/theme/default/components/form/horizontal-divider.tsx
1251
- import { jsx as jsx35 } from "react/jsx-runtime";
1238
+ import { jsx as jsx36 } from "react/jsx-runtime";
1252
1239
  function DefaultHorizontalDivider() {
1253
- return /* @__PURE__ */ jsx35("hr", { className: "border-dialog-border-default" });
1240
+ return /* @__PURE__ */ jsx36("hr", { className: "border-interface-border-default-primary" });
1254
1241
  }
1255
1242
 
1256
1243
  // src/theme/default/components/form/image.tsx
1257
- import { jsx as jsx36 } from "react/jsx-runtime";
1244
+ import { jsx as jsx37 } from "react/jsx-runtime";
1258
1245
  function DefaultImage({ attributes }) {
1259
- return /* @__PURE__ */ jsx36("figure", { children: /* @__PURE__ */ jsx36("img", { ...attributes }) });
1246
+ return /* @__PURE__ */ jsx37("figure", { children: /* @__PURE__ */ jsx37("img", { ...attributes }) });
1260
1247
  }
1261
1248
 
1262
1249
  // src/theme/default/components/form/input.tsx
1263
- import { FlowType as FlowType6, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
1250
+ import { FlowType as FlowType5, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
1264
1251
  import {
1265
1252
  uiTextToFormattedMessage as uiTextToFormattedMessage6,
1266
- useOryFlow as useOryFlow8
1253
+ useOryFlow as useOryFlow7
1267
1254
  } from "@ory/elements-react";
1268
- import { useFormContext as useFormContext3 } from "react-hook-form";
1255
+ import { useFormContext as useFormContext4 } from "react-hook-form";
1269
1256
  import { useIntl as useIntl9 } from "react-intl";
1270
- import { jsx as jsx37 } from "react/jsx-runtime";
1257
+ import { jsx as jsx38 } from "react/jsx-runtime";
1271
1258
  var DefaultInput = ({
1272
1259
  node,
1273
1260
  attributes,
1274
1261
  onClick
1275
1262
  }) => {
1276
1263
  const label = getNodeLabel3(node);
1277
- const { register } = useFormContext3();
1264
+ const { register } = useFormContext4();
1278
1265
  const {
1279
1266
  value,
1280
1267
  autocomplete,
@@ -1284,7 +1271,7 @@ var DefaultInput = ({
1284
1271
  ...rest
1285
1272
  } = attributes;
1286
1273
  const intl = useIntl9();
1287
- const { flowType } = useOryFlow8();
1274
+ const { flowType } = useOryFlow7();
1288
1275
  const formattedLabel = label ? intl.formatMessage(
1289
1276
  {
1290
1277
  id: "input.placeholder",
@@ -1294,7 +1281,7 @@ var DefaultInput = ({
1294
1281
  placeholder: uiTextToFormattedMessage6(label, intl)
1295
1282
  }
1296
1283
  ) : "";
1297
- return /* @__PURE__ */ jsx37(
1284
+ return /* @__PURE__ */ jsx38(
1298
1285
  "input",
1299
1286
  {
1300
1287
  ...rest,
@@ -1303,10 +1290,14 @@ var DefaultInput = ({
1303
1290
  autoComplete: autocomplete,
1304
1291
  placeholder: formattedLabel,
1305
1292
  className: cn(
1306
- "antialiased disabled:text-forms-fg-disabled disabled:bg-forms-bg-disabled bg-forms-bg-default rounded-border-radius-forms border border-forms-border-default leading-tight hover:border-forms-border-hover transition-colors text-sm",
1307
- "px-3 py-2.5",
1293
+ "antialiased rounded-forms border leading-tight transition-colors placeholder:h-[20px] placeholder:text-input-foreground-tertiary focus-visible:outline-none focus:ring-0",
1294
+ "bg-input-background-default border-input-border-default text-input-foreground-primary",
1295
+ "disabled:bg-input-background-disabled disabled:border-input-border-disabled disabled:text-input-foreground-disabled",
1296
+ "focus:border-input-border-focus focus-visible:border-input-border-focus",
1297
+ "hover:bg-input-background-hover hover:border-input-border-hover",
1298
+ "px-4 py-[13px]",
1308
1299
  // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.
1309
- flowType === FlowType6.Settings ? "max-w-[488px]" : "md:px-4 md:py-4"
1300
+ flowType === FlowType5.Settings && "max-w-[488px]"
1310
1301
  ),
1311
1302
  ...register(name, { value })
1312
1303
  }
@@ -1315,7 +1306,7 @@ var DefaultInput = ({
1315
1306
 
1316
1307
  // src/theme/default/components/form/label.tsx
1317
1308
  import {
1318
- FlowType as FlowType7,
1309
+ FlowType as FlowType6,
1319
1310
  getNodeLabel as getNodeLabel4,
1320
1311
  instanceOfUiText
1321
1312
  } from "@ory/client-fetch";
@@ -1323,11 +1314,11 @@ import {
1323
1314
  messageTestId as messageTestId3,
1324
1315
  uiTextToFormattedMessage as uiTextToFormattedMessage7,
1325
1316
  useComponents as useComponents2,
1326
- useOryFlow as useOryFlow9
1317
+ useOryFlow as useOryFlow8
1327
1318
  } from "@ory/elements-react";
1328
- import { useFormContext as useFormContext4 } from "react-hook-form";
1319
+ import { useFormContext as useFormContext5 } from "react-hook-form";
1329
1320
  import { useIntl as useIntl10 } from "react-intl";
1330
- import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
1321
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
1331
1322
  function findResendNode(nodes) {
1332
1323
  return nodes.find(
1333
1324
  (n) => "name" in n.attributes && (n.attributes.name === "email" && n.attributes.type === "submit" || n.attributes.name === "resend")
@@ -1342,8 +1333,8 @@ function DefaultLabel({
1342
1333
  const intl = useIntl10();
1343
1334
  const label = getNodeLabel4(node);
1344
1335
  const { Message } = useComponents2();
1345
- const { config, flowType, flow } = useOryFlow9();
1346
- const { setValue, formState } = useFormContext4();
1336
+ const { config, flowType, flow } = useOryFlow8();
1337
+ const { setValue, formState } = useFormContext5();
1347
1338
  const isPassword = attributes.type === "password";
1348
1339
  const resendNode = findResendNode(flow.ui.nodes);
1349
1340
  const handleResend = () => {
@@ -1352,45 +1343,45 @@ function DefaultLabel({
1352
1343
  }
1353
1344
  };
1354
1345
  const fieldError = formState.errors[attributes.name];
1355
- return /* @__PURE__ */ jsxs23("div", { className: "flex flex-col antialiased gap-1", children: [
1346
+ return /* @__PURE__ */ jsxs23("div", { className: "flex flex-col gap-1 antialiased", children: [
1356
1347
  label && /* @__PURE__ */ jsxs23("span", { className: "inline-flex justify-between", children: [
1357
- /* @__PURE__ */ jsx38(
1348
+ /* @__PURE__ */ jsx39(
1358
1349
  "label",
1359
1350
  {
1360
1351
  ...messageTestId3(label),
1361
- className: "text-sm font-medium leading-normal",
1352
+ className: "leading-normal text-input-foreground-primary",
1362
1353
  htmlFor: attributes.name,
1363
1354
  ...rest,
1364
1355
  children: uiTextToFormattedMessage7(label, intl)
1365
1356
  }
1366
1357
  ),
1367
- isPassword && config.project.recovery_enabled && flowType === FlowType7.Login && // TODO: make it possible to override with a custom component
1368
- /* @__PURE__ */ jsx38(
1358
+ isPassword && config.project.recovery_enabled && flowType === FlowType6.Login && // TODO: make it possible to override with a custom component
1359
+ /* @__PURE__ */ jsx39(
1369
1360
  "a",
1370
1361
  {
1371
1362
  href: config.project.recovery_ui_url,
1372
- className: "text-links-link-default hover:underline hover:text-link-hover transition-colors text-sm font-medium",
1363
+ className: "text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline",
1373
1364
  children: intl.formatMessage({
1374
1365
  id: "forms.label.forgot-password",
1375
1366
  defaultMessage: "Forgot password?"
1376
1367
  })
1377
1368
  }
1378
1369
  ),
1379
- (resendNode == null ? void 0 : resendNode.attributes.node_type) === "input" && /* @__PURE__ */ jsx38(
1370
+ (resendNode == null ? void 0 : resendNode.attributes.node_type) === "input" && /* @__PURE__ */ jsx39(
1380
1371
  "button",
1381
1372
  {
1382
1373
  type: "submit",
1383
1374
  name: resendNode.attributes.name,
1384
1375
  value: resendNode.attributes.value,
1385
1376
  onClick: handleResend,
1386
- className: "text-links-link-default hover:underline hover:text-link-hover transition-colors text-sm font-medium cursor-pointer",
1377
+ className: "cursor-pointer text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline",
1387
1378
  children: intl.formatMessage({ id: "identities.messages.1070008" })
1388
1379
  }
1389
1380
  )
1390
1381
  ] }),
1391
1382
  children,
1392
- node.messages.map((message) => /* @__PURE__ */ jsx38(Message.Content, { message }, message.id)),
1393
- fieldError && instanceOfUiText(fieldError) && /* @__PURE__ */ jsx38(Message.Content, { message: fieldError })
1383
+ node.messages.map((message) => /* @__PURE__ */ jsx39(Message.Content, { message }, message.id)),
1384
+ fieldError && instanceOfUiText(fieldError) && /* @__PURE__ */ jsx39(Message.Content, { message: fieldError })
1394
1385
  ] });
1395
1386
  }
1396
1387
 
@@ -1401,18 +1392,18 @@ import {
1401
1392
  } from "@ory/elements-react";
1402
1393
  import { forwardRef } from "react";
1403
1394
  import { useIntl as useIntl11 } from "react-intl";
1404
- import { jsx as jsx39 } from "react/jsx-runtime";
1395
+ import { jsx as jsx40 } from "react/jsx-runtime";
1405
1396
  var DefaultLinkButton = forwardRef(({ attributes, node }, ref) => {
1406
1397
  const intl = useIntl11();
1407
1398
  const label = getNodeLabel5(node);
1408
- return /* @__PURE__ */ jsx39(
1399
+ return /* @__PURE__ */ jsx40(
1409
1400
  "a",
1410
1401
  {
1411
1402
  ...attributes,
1412
1403
  ref,
1413
1404
  title: label ? uiTextToFormattedMessage8(label, intl) : "",
1414
1405
  className: cn(
1415
- "antialiased rounded cursor-pointer text-center border border-transparent gap-3 leading-none bg-button-primary-bg-default hover:bg-button-primary-bg-hover transition-colors text-button-primary-fg-default hover:text-button-primary-fg-hover px-4 py-4.5 text-sm font-medium"
1406
+ "antialiased rounded cursor-pointer text-center border gap-3 leading-none bg-button-primary-background-default hover:bg-button-primary-background-hover transition-colors text-button-primary-foreground-default hover:text-button-primary-foreground-hover p-4 font-medium"
1416
1407
  ),
1417
1408
  children: label ? uiTextToFormattedMessage8(label, intl) : ""
1418
1409
  }
@@ -1421,13 +1412,13 @@ var DefaultLinkButton = forwardRef(({ attributes, node }, ref) => {
1421
1412
  DefaultLinkButton.displayName = "DefaultLinkButton";
1422
1413
 
1423
1414
  // src/theme/default/components/form/pin-code-input.tsx
1424
- import { useFormContext as useFormContext5 } from "react-hook-form";
1415
+ import { useFormContext as useFormContext6 } from "react-hook-form";
1425
1416
 
1426
1417
  // src/theme/default/components/form/shadcn/otp-input.tsx
1427
1418
  import { OTPInput, OTPInputContext } from "input-otp";
1428
1419
  import * as React21 from "react";
1429
- import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
1430
- var InputOTP = React21.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx40(
1420
+ import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
1421
+ var InputOTP = React21.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx41(
1431
1422
  OTPInput,
1432
1423
  {
1433
1424
  ref,
@@ -1440,7 +1431,7 @@ var InputOTP = React21.forwardRef(({ className, containerClassName, ...props },
1440
1431
  }
1441
1432
  ));
1442
1433
  InputOTP.displayName = "InputOTP";
1443
- var InputOTPGroup = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40("div", { ref, className: cn("flex items-center", className), ...props }));
1434
+ var InputOTPGroup = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41("div", { ref, className: cn("flex items-center", className), ...props }));
1444
1435
  InputOTPGroup.displayName = "InputOTPGroup";
1445
1436
  var InputOTPSlot = React21.forwardRef(({ index, className, ...props }, ref) => {
1446
1437
  const inputOTPContext = React21.useContext(OTPInputContext);
@@ -1450,14 +1441,15 @@ var InputOTPSlot = React21.forwardRef(({ index, className, ...props }, ref) => {
1450
1441
  {
1451
1442
  ref,
1452
1443
  className: cn(
1453
- "relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all",
1454
- isActive && "z-10 ring-2 ring-ring ring-offset-background",
1444
+ "rounded-forms border border-solid bg-input-background-default py-[15px] text-center focus-visible:outline-none w-full",
1445
+ "relative flex items-center justify-center transition-all leading-none",
1446
+ isActive ? "border-input-border-focus" : "border-input-border-default",
1455
1447
  className
1456
1448
  ),
1457
1449
  ...props,
1458
1450
  children: [
1459
- char,
1460
- hasFakeCaret && /* @__PURE__ */ jsx40("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx40("div", { className: "h-4 w-px animate-caret-blink bg-branding-bg-default duration-750" }) })
1451
+ /* @__PURE__ */ jsx41("span", { className: "inline-block size-4", children: char }),
1452
+ hasFakeCaret && /* @__PURE__ */ jsx41("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx41("div", { className: "h-4 w-px animate-caret-blink bg-interface-background-brand-primary duration-700" }) })
1461
1453
  ]
1462
1454
  }
1463
1455
  );
@@ -1465,66 +1457,97 @@ var InputOTPSlot = React21.forwardRef(({ index, className, ...props }, ref) => {
1465
1457
  InputOTPSlot.displayName = "InputOTPSlot";
1466
1458
 
1467
1459
  // src/theme/default/components/form/pin-code-input.tsx
1468
- import { jsx as jsx41 } from "react/jsx-runtime";
1460
+ import { useOryFlow as useOryFlow9 } from "@ory/elements-react";
1461
+ import { FlowType as FlowType7 } from "@ory/client-fetch";
1462
+ import { jsx as jsx42 } from "react/jsx-runtime";
1469
1463
  var DefaultPinCodeInput = ({ attributes }) => {
1470
- const { setValue, watch } = useFormContext5();
1464
+ const { setValue, watch } = useFormContext6();
1471
1465
  const { maxlength, name } = attributes;
1472
1466
  const elements = maxlength != null ? maxlength : 6;
1467
+ const { flowType } = useOryFlow9();
1473
1468
  const handleInputChange = (v) => {
1474
1469
  setValue(name, v);
1475
1470
  };
1476
1471
  const value = watch(name);
1477
- return /* @__PURE__ */ jsx41(
1472
+ return /* @__PURE__ */ jsx42(
1478
1473
  InputOTP,
1479
1474
  {
1480
1475
  maxLength: maxlength != null ? maxlength : 6,
1481
1476
  onChange: handleInputChange,
1482
1477
  name,
1483
1478
  value,
1484
- children: /* @__PURE__ */ jsx41(InputOTPGroup, { className: "w-full space-x-2 justify-between", children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx41(
1485
- InputOTPSlot,
1479
+ children: /* @__PURE__ */ jsx42(
1480
+ InputOTPGroup,
1486
1481
  {
1487
- index,
1488
- className: "text-center px-1.5 py-2.5 h-10 w-11 md:w-14 md:h-12 border border-radius border-solid rounded-border-radius-forms border-forms-border-default bg-forms-bg-default"
1489
- },
1490
- index
1491
- )) })
1482
+ className: cn(
1483
+ "w-full flex gap-2 justify-stretch",
1484
+ // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.
1485
+ flowType === FlowType7.Settings && "max-w-[488px]"
1486
+ ),
1487
+ children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx42(InputOTPSlot, { index }, index))
1488
+ }
1489
+ )
1492
1490
  }
1493
1491
  );
1494
1492
  };
1495
1493
 
1496
1494
  // src/theme/default/components/form/section.tsx
1497
- import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
1498
- var DefaultFormSection = ({ children }) => {
1499
- return /* @__PURE__ */ jsx42("div", { className: "flex flex-col w-80 md:w-[712px] lg:w-[802px] xl:w-[896px]", children });
1495
+ import { jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
1496
+ var DefaultFormSection = ({
1497
+ children,
1498
+ nodes: _nodes,
1499
+ ...rest
1500
+ }) => {
1501
+ return /* @__PURE__ */ jsx43(
1502
+ "form",
1503
+ {
1504
+ className: "flex w-full max-w-screen-sm flex-col md:max-w-[712px] lg:max-w-[802px] xl:max-w-[896px] px-4",
1505
+ ...rest,
1506
+ children
1507
+ }
1508
+ );
1500
1509
  };
1501
1510
  var DefaultFormSectionContent = ({
1502
1511
  title,
1503
1512
  description,
1504
1513
  children
1505
1514
  }) => {
1506
- return /* @__PURE__ */ jsxs25("div", { className: "border rounded-t-xl border-b-0 border-dialog-border-default bg-forms-bg-default px-6 py-8 flex flex-col gap-8", children: [
1515
+ return /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-8 rounded-t-xl border border-b-0 border-interface-border-default-primary bg-interface-background-default-primary px-6 py-8", children: [
1507
1516
  /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-2", children: [
1508
- /* @__PURE__ */ jsx42("h3", { className: "font-medium text-dialog-fg-default", children: title }),
1509
- /* @__PURE__ */ jsx42("span", { className: "text-sm text-dialog-fg-subtle", children: description })
1517
+ /* @__PURE__ */ jsx43("h3", { className: "font-medium text-interface-foreground-default-primary", children: title }),
1518
+ /* @__PURE__ */ jsx43("span", { className: "text-interface-foreground-default-secondary", children: description })
1510
1519
  ] }),
1511
1520
  children
1512
1521
  ] });
1513
1522
  };
1514
- var DefaultFormSectionFooter = ({ children }) => {
1515
- return /* @__PURE__ */ jsx42("div", { className: "rounded-b-xl gap-2 flex justify-end px-6 py-4 bg-dialog-bg-subtle border border-dialog-border-default text-sm text-dialog-fg-mute items-center [&>span]:mr-auto min-h-[72px]", children });
1523
+ var DefaultFormSectionFooter = ({
1524
+ children,
1525
+ text
1526
+ }) => {
1527
+ return /* @__PURE__ */ jsxs25(
1528
+ "div",
1529
+ {
1530
+ className: cn(
1531
+ "flex min-h-[72px] items-center justify-between gap-2 rounded-b-xl border border-interface-border-default-primary bg-interface-background-default-secondary px-6 py-4 text-interface-foreground-default-tertiary"
1532
+ ),
1533
+ children: [
1534
+ /* @__PURE__ */ jsx43("span", { children: text }),
1535
+ children
1536
+ ]
1537
+ }
1538
+ );
1516
1539
  };
1517
1540
 
1518
1541
  // src/theme/default/components/form/text.tsx
1519
1542
  import { uiTextToFormattedMessage as uiTextToFormattedMessage9 } from "@ory/elements-react";
1520
1543
  import { useIntl as useIntl12 } from "react-intl";
1521
- import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
1544
+ import { Fragment as Fragment3, jsx as jsx44, jsxs as jsxs26 } from "react/jsx-runtime";
1522
1545
  function DefaultText({ node, attributes }) {
1523
1546
  var _a;
1524
1547
  const intl = useIntl12();
1525
1548
  return /* @__PURE__ */ jsxs26(Fragment3, { children: [
1526
- /* @__PURE__ */ jsx43("p", { "data-testid": `node/text/${attributes.id}/label`, children: node.meta.label ? uiTextToFormattedMessage9(node.meta.label, intl) : "" }),
1527
- (_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */ jsx43("pre", { "data-testid": `node/text/lookup_secret_codes/text`, children: /* @__PURE__ */ jsx43("code", { children: text ? uiTextToFormattedMessage9(text, intl) : "" }) }, index))
1549
+ /* @__PURE__ */ jsx44("p", { "data-testid": `node/text/${attributes.id}/label`, children: node.meta.label ? uiTextToFormattedMessage9(node.meta.label, intl) : "" }),
1550
+ (_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */ jsx44("pre", { "data-testid": `node/text/lookup_secret_codes/text`, children: /* @__PURE__ */ jsx44("code", { children: text ? uiTextToFormattedMessage9(text, intl) : "" }) }, index))
1528
1551
  ] });
1529
1552
  }
1530
1553
 
@@ -1533,7 +1556,7 @@ import { useComponents as useComponents3 } from "@ory/elements-react";
1533
1556
 
1534
1557
  // src/theme/default/components/ui/user-menu.tsx
1535
1558
  import { DropdownMenuLabel as DropdownMenuLabel2 } from "@radix-ui/react-dropdown-menu";
1536
- import { useCallback, useEffect, useState as useState2 } from "react";
1559
+ import { useCallback, useEffect, useState } from "react";
1537
1560
  import { useOryFlow as useOryFlow10 } from "@ory/elements-react";
1538
1561
 
1539
1562
  // src/util/client.ts
@@ -1555,32 +1578,35 @@ function frontendClient(sdkUrl, opts = {}) {
1555
1578
 
1556
1579
  // src/theme/default/assets/icons/logout.svg
1557
1580
  import * as React22 from "react";
1558
- import { jsx as jsx44 } from "react/jsx-runtime";
1581
+ import { jsx as jsx45 } from "react/jsx-runtime";
1559
1582
  var SvgLogout = (props) => {
1560
1583
  var _a, _b;
1561
- return /* @__PURE__ */ jsx44("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx44("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 5.334V4A1.333 1.333 0 0 0 8 2.667H3.333A1.333 1.333 0 0 0 2 4v8a1.333 1.333 0 0 0 1.333 1.334H8A1.333 1.333 0 0 0 9.333 12v-1.333M4.667 8H14m0 0-2-2m2 2-2 2" }) });
1584
+ return /* @__PURE__ */ jsx45("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx45("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 5.334V4A1.333 1.333 0 0 0 8 2.667H3.333A1.333 1.333 0 0 0 2 4v8a1.333 1.333 0 0 0 1.333 1.334H8A1.333 1.333 0 0 0 9.333 12v-1.333M4.667 8H14m0 0-2-2m2 2-2 2" }) });
1562
1585
  };
1563
1586
  var logout_default = SvgLogout;
1564
1587
 
1565
1588
  // src/theme/default/assets/icons/settings.svg
1566
1589
  import * as React23 from "react";
1567
- import { jsx as jsx45, jsxs as jsxs27 } from "react/jsx-runtime";
1590
+ import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
1568
1591
  var SvgSettings = (props) => {
1569
1592
  var _a, _b;
1570
- return /* @__PURE__ */ jsx45("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsxs27("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", children: [
1571
- /* @__PURE__ */ jsx45("path", { d: "M6.883 2.878c.284-1.17 1.95-1.17 2.234 0a1.15 1.15 0 0 0 1.715.71c1.029-.626 2.207.551 1.58 1.58a1.148 1.148 0 0 0 .71 1.715c1.17.284 1.17 1.95 0 2.234a1.15 1.15 0 0 0-.71 1.715c.626 1.029-.551 2.207-1.58 1.58a1.148 1.148 0 0 0-1.715.71c-.284 1.17-1.95 1.17-2.234 0a1.15 1.15 0 0 0-1.715-.71c-1.029.626-2.207-.551-1.58-1.58a1.15 1.15 0 0 0-.71-1.715c-1.17-.284-1.17-1.95 0-2.234a1.15 1.15 0 0 0 .71-1.715c-.626-1.029.551-2.207 1.58-1.58.667.405 1.531.047 1.715-.71" }),
1572
- /* @__PURE__ */ jsx45("path", { d: "M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0" })
1593
+ return /* @__PURE__ */ jsx46("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsxs27("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", children: [
1594
+ /* @__PURE__ */ jsx46("path", { d: "M6.883 2.878c.284-1.17 1.95-1.17 2.234 0a1.15 1.15 0 0 0 1.715.71c1.029-.626 2.207.551 1.58 1.58a1.148 1.148 0 0 0 .71 1.715c1.17.284 1.17 1.95 0 2.234a1.15 1.15 0 0 0-.71 1.715c.626 1.029-.551 2.207-1.58 1.58a1.148 1.148 0 0 0-1.715.71c-.284 1.17-1.95 1.17-2.234 0a1.15 1.15 0 0 0-1.715-.71c-1.029.626-2.207-.551-1.58-1.58a1.15 1.15 0 0 0-.71-1.715c-1.17-.284-1.17-1.95 0-2.234a1.15 1.15 0 0 0 .71-1.715c-.626-1.029.551-2.207 1.58-1.58.667.405 1.531.047 1.715-.71" }),
1595
+ /* @__PURE__ */ jsx46("path", { d: "M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0" })
1573
1596
  ] }) });
1574
1597
  };
1575
1598
  var settings_default = SvgSettings;
1576
1599
 
1577
1600
  // src/theme/default/utils/user.ts
1601
+ function isTraitsIndexable(traits) {
1602
+ return typeof traits === "object" && traits !== null;
1603
+ }
1578
1604
  var getUserInitials = (session) => {
1579
1605
  var _a, _b;
1580
1606
  const avatar = "";
1581
1607
  let primary = "";
1582
1608
  let secondary = "";
1583
- if (!((_a = session == null ? void 0 : session.identity) == null ? void 0 : _a.traits)) {
1609
+ if (!((_a = session == null ? void 0 : session.identity) == null ? void 0 : _a.traits) || !isTraitsIndexable(session.identity.traits)) {
1584
1610
  return {
1585
1611
  primary,
1586
1612
  secondary,
@@ -1588,14 +1614,14 @@ var getUserInitials = (session) => {
1588
1614
  };
1589
1615
  }
1590
1616
  const traits = (_b = session.identity) == null ? void 0 : _b.traits;
1591
- if (traits.email) {
1617
+ if (traits.email && typeof traits.email === "string") {
1592
1618
  secondary = traits.email;
1593
1619
  }
1594
1620
  if (traits.name) {
1595
1621
  if (typeof traits.name === "string") {
1596
1622
  primary = traits.name;
1597
1623
  }
1598
- if (traits.name.first && traits.name.last) {
1624
+ if (typeof traits.name === "object" && traits.name && traits.name.first && traits.name.last) {
1599
1625
  primary = traits.name.first + " " + traits.name.last;
1600
1626
  }
1601
1627
  }
@@ -1613,10 +1639,10 @@ var getUserInitials = (session) => {
1613
1639
  // src/theme/default/components/ui/dropdown-menu.tsx
1614
1640
  import { forwardRef as forwardRef3 } from "react";
1615
1641
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1616
- import { jsx as jsx46 } from "react/jsx-runtime";
1642
+ import { jsx as jsx47 } from "react/jsx-runtime";
1617
1643
  var DropdownMenu = DropdownMenuPrimitive.Root;
1618
1644
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1619
- var DropdownMenuContent = forwardRef3(({ className, sideOffset = 16, ...props }, ref) => /* @__PURE__ */ jsx46(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx46(
1645
+ var DropdownMenuContent = forwardRef3(({ className, sideOffset = 16, ...props }, ref) => /* @__PURE__ */ jsx47(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx47(
1620
1646
  DropdownMenuPrimitive.Content,
1621
1647
  {
1622
1648
  ref,
@@ -1624,24 +1650,24 @@ var DropdownMenuContent = forwardRef3(({ className, sideOffset = 16, ...props },
1624
1650
  align: "end",
1625
1651
  className: cn(
1626
1652
  "z-50 min-w-[19rem] overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1627
- "border border-dialog-border-default bg-dialog-bg-default rounded-border-radius-cards",
1653
+ "border border-interface-border-default-primary bg-interface-background-default-primary rounded-cards",
1628
1654
  className
1629
1655
  ),
1630
1656
  ...props
1631
1657
  }
1632
1658
  ) }));
1633
1659
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1634
- var DropdownMenuItem = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx46(
1660
+ var DropdownMenuItem = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(
1635
1661
  DropdownMenuPrimitive.Item,
1636
1662
  {
1637
1663
  ref,
1638
1664
  className: cn(
1639
1665
  "relative flex cursor-pointer select-none items-center outline-none transition-colors data-[disabled]:pointer-events-none",
1640
1666
  "px-8 py-3 lg:py-4.5 text-sm gap-6",
1641
- "first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover data-[disabled]:border-button-secondary-border-disabled",
1642
- "text-button-secondary-fg-default bg-button-secondary-bg-default",
1643
- "hover:text-button-secondary-fg-hover hover:bg-button-secondary-bg-hover",
1644
- "data-[disabled]:text-button-secondary-fg-disabled data-[disabled]:bg-button-secondary-bg-disabled",
1667
+ "first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover",
1668
+ "text-button-secondary-foreground-default bg-button-secondary-background-default",
1669
+ "hover:text-button-secondary-foreground-hover hover:bg-button-secondary-background-hover",
1670
+ "data-[disabled]:text-button-secondary-foreground-disabled data-[disabled]:bg-button-secondary-background-disabled",
1645
1671
  inset && "pl-8",
1646
1672
  className
1647
1673
  ),
@@ -1649,7 +1675,7 @@ var DropdownMenuItem = forwardRef3(({ className, inset, ...props }, ref) => /* @
1649
1675
  }
1650
1676
  ));
1651
1677
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1652
- var DropdownMenuLabel = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx46(
1678
+ var DropdownMenuLabel = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(
1653
1679
  DropdownMenuPrimitive.Label,
1654
1680
  {
1655
1681
  ref,
@@ -1668,31 +1694,37 @@ import { forwardRef as forwardRef4 } from "react";
1668
1694
 
1669
1695
  // src/theme/default/assets/icons/user.svg
1670
1696
  import * as React24 from "react";
1671
- import { jsx as jsx47 } from "react/jsx-runtime";
1697
+ import { jsx as jsx48 } from "react/jsx-runtime";
1672
1698
  var SvgUser = (props) => {
1673
1699
  var _a, _b;
1674
- return /* @__PURE__ */ jsx47("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx47("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2M8 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0" }) });
1700
+ return /* @__PURE__ */ jsx48("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx48("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2M8 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0" }) });
1675
1701
  };
1676
1702
  var user_default = SvgUser;
1677
1703
 
1678
1704
  // src/theme/default/components/ui/user-avater.tsx
1679
- import { jsx as jsx48 } from "react/jsx-runtime";
1705
+ import { jsx as jsx49 } from "react/jsx-runtime";
1680
1706
  var UserAvatar = forwardRef4(
1681
1707
  ({ initials, ...rest }, ref) => {
1682
- return /* @__PURE__ */ jsx48(
1708
+ return /* @__PURE__ */ jsx49(
1683
1709
  "button",
1684
1710
  {
1685
1711
  ref,
1686
- className: "size-10 relative flex overflow-hidden items-center justify-center rounded-full bg-button-primary-bg-default disabled:hover:bg-button-primary-bg-default hover:bg-button-primary-bg-hover",
1712
+ className: "relative flex size-10 items-center justify-center overflow-hidden rounded-full bg-button-primary-background-default hover:bg-button-primary-background-hover",
1687
1713
  ...rest,
1688
- children: /* @__PURE__ */ jsx48("div", { className: "relative size-full flex items-center justify-center", children: initials.avatar ? /* @__PURE__ */ jsx48(
1714
+ children: /* @__PURE__ */ jsx49("div", { className: "relative flex size-full items-center justify-center", children: initials.avatar ? /* @__PURE__ */ jsx49(
1689
1715
  "img",
1690
1716
  {
1691
1717
  src: initials.avatar,
1692
1718
  alt: initials.primary,
1693
1719
  className: "w-full object-contain"
1694
1720
  }
1695
- ) : /* @__PURE__ */ jsx48(user_default, { size: 24, className: "text-button-primary-fg-default" }) })
1721
+ ) : /* @__PURE__ */ jsx49(
1722
+ user_default,
1723
+ {
1724
+ size: 24,
1725
+ className: "text-button-primary-foreground-default"
1726
+ }
1727
+ ) })
1696
1728
  }
1697
1729
  );
1698
1730
  }
@@ -1700,11 +1732,11 @@ var UserAvatar = forwardRef4(
1700
1732
  UserAvatar.displayName = "UserAvatar";
1701
1733
 
1702
1734
  // src/theme/default/components/ui/user-menu.tsx
1703
- import { jsx as jsx49, jsxs as jsxs28 } from "react/jsx-runtime";
1735
+ import { jsx as jsx50, jsxs as jsxs28 } from "react/jsx-runtime";
1704
1736
  var UserMenu = ({ session }) => {
1705
1737
  const { config } = useOryFlow10();
1706
1738
  const initials = getUserInitials(session);
1707
- const [logoutFlow, setLogoutFlow] = useState2();
1739
+ const [logoutFlow, setLogoutFlow] = useState();
1708
1740
  const fetchLogoutFlow = useCallback(async () => {
1709
1741
  const flow = await frontendClient(config.sdk.url).createBrowserLogoutFlow();
1710
1742
  setLogoutFlow(flow);
@@ -1713,21 +1745,21 @@ var UserMenu = ({ session }) => {
1713
1745
  void fetchLogoutFlow();
1714
1746
  }, [fetchLogoutFlow]);
1715
1747
  return /* @__PURE__ */ jsxs28(DropdownMenu, { children: [
1716
- /* @__PURE__ */ jsx49(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx49(UserAvatar, { initials }) }),
1748
+ /* @__PURE__ */ jsx50(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx50(UserAvatar, { initials }) }),
1717
1749
  /* @__PURE__ */ jsxs28(DropdownMenuContent, { children: [
1718
- /* @__PURE__ */ jsxs28(DropdownMenuLabel2, { className: "px-5 py-4.5 flex gap-3", children: [
1719
- /* @__PURE__ */ jsx49(UserAvatar, { disabled: true, initials }),
1720
- /* @__PURE__ */ jsxs28("div", { className: "flex flex-col text-sm leading-tight justify-center", children: [
1721
- /* @__PURE__ */ jsx49("div", { className: "text-dialog-fg-default", children: initials.primary }),
1722
- initials.secondary && /* @__PURE__ */ jsx49("div", { className: "text-dialog-fg-mute", children: initials.secondary })
1750
+ /* @__PURE__ */ jsxs28(DropdownMenuLabel2, { className: "flex gap-3 px-5 py-4.5", children: [
1751
+ /* @__PURE__ */ jsx50(UserAvatar, { disabled: true, initials }),
1752
+ /* @__PURE__ */ jsxs28("div", { className: "flex flex-col justify-center text-sm leading-tight", children: [
1753
+ /* @__PURE__ */ jsx50("div", { className: "text-interface-foreground-default-primary leading-tight font-medium", children: initials.primary }),
1754
+ initials.secondary && /* @__PURE__ */ jsx50("div", { className: "text-interface-foreground-default-tertiary leading-tight", children: initials.secondary })
1723
1755
  ] })
1724
1756
  ] }),
1725
- /* @__PURE__ */ jsx49(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs28("a", { href: "/settings", children: [
1726
- /* @__PURE__ */ jsx49(settings_default, { size: 16 }),
1757
+ /* @__PURE__ */ jsx50(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs28("a", { href: "/settings", children: [
1758
+ /* @__PURE__ */ jsx50(settings_default, { size: 16 }),
1727
1759
  " User settings"
1728
1760
  ] }) }),
1729
- /* @__PURE__ */ jsx49(DropdownMenuItem, { asChild: true, disabled: !(logoutFlow == null ? void 0 : logoutFlow.logout_url), children: /* @__PURE__ */ jsxs28("a", { href: logoutFlow == null ? void 0 : logoutFlow.logout_url, children: [
1730
- /* @__PURE__ */ jsx49(logout_default, { size: 16 }),
1761
+ /* @__PURE__ */ jsx50(DropdownMenuItem, { asChild: true, disabled: !(logoutFlow == null ? void 0 : logoutFlow.logout_url), children: /* @__PURE__ */ jsxs28("a", { href: logoutFlow == null ? void 0 : logoutFlow.logout_url, children: [
1762
+ /* @__PURE__ */ jsx50(logout_default, { size: 16 }),
1731
1763
  " Logout"
1732
1764
  ] }) })
1733
1765
  ] })
@@ -1736,73 +1768,78 @@ var UserMenu = ({ session }) => {
1736
1768
 
1737
1769
  // src/theme/default/components/generic/page-header.tsx
1738
1770
  import { useSession } from "@ory/elements-react/client";
1739
- import { jsx as jsx50, jsxs as jsxs29 } from "react/jsx-runtime";
1771
+ import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
1740
1772
  var DefaultPageHeader = (_props) => {
1741
1773
  const { Card } = useComponents3();
1742
1774
  const { session } = useSession();
1743
- return /* @__PURE__ */ jsx50("div", { className: "flex max-w-[896px] flex-col w-full gap-3 mt-16", children: /* @__PURE__ */ jsx50("div", { className: "flex flex-col gap-12", children: /* @__PURE__ */ jsxs29("div", { className: "flex gap-2 max-h-10 justify-between flex-1", children: [
1744
- /* @__PURE__ */ jsx50("div", { className: "h-10 flex-1 relative", children: /* @__PURE__ */ jsx50(Card.Logo, {}) }),
1745
- /* @__PURE__ */ jsx50(UserMenu, { session })
1775
+ return /* @__PURE__ */ jsx51("div", { className: "mt-16 flex w-full max-w-[896px] flex-col gap-3", children: /* @__PURE__ */ jsx51("div", { className: "flex flex-col gap-12", children: /* @__PURE__ */ jsxs29("div", { className: "flex max-h-10 flex-1 justify-between gap-2", children: [
1776
+ /* @__PURE__ */ jsx51("div", { className: "relative h-10 flex-1", children: /* @__PURE__ */ jsx51(Card.Logo, {}) }),
1777
+ /* @__PURE__ */ jsx51(UserMenu, { session })
1746
1778
  ] }) }) });
1747
1779
  };
1748
1780
 
1749
1781
  // src/theme/default/assets/icons/trash.svg
1750
1782
  import * as React25 from "react";
1751
- import { jsx as jsx51 } from "react/jsx-runtime";
1783
+ import { jsx as jsx52 } from "react/jsx-runtime";
1752
1784
  var SvgTrash = (props) => {
1753
1785
  var _a, _b;
1754
- return /* @__PURE__ */ jsx51("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx51("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 7h16m-10 4v6m4-6v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" }) });
1786
+ return /* @__PURE__ */ jsx52("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx52("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 7h16m-10 4v6m4-6v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" }) });
1755
1787
  };
1756
1788
  var trash_default = SvgTrash;
1757
1789
 
1758
1790
  // src/theme/default/components/settings/settings-oidc.tsx
1759
- import { useFormContext as useFormContext6 } from "react-hook-form";
1760
- import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
1791
+ import { useFormContext as useFormContext7 } from "react-hook-form";
1792
+ import { jsx as jsx53, jsxs as jsxs30 } from "react/jsx-runtime";
1761
1793
  function DefaultSettingsOidc({
1762
1794
  linkButtons,
1763
1795
  unlinkButtons
1764
1796
  }) {
1765
1797
  const hasLinkButtons = linkButtons.length > 0;
1766
1798
  const hasUnlinkButtons = unlinkButtons.length > 0;
1767
- const { setValue } = useFormContext6();
1799
+ const {
1800
+ formState: { isSubmitting }
1801
+ } = useFormContext7();
1768
1802
  return /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-8", children: [
1769
- hasLinkButtons && /* @__PURE__ */ jsx52("div", { className: "flex gap-3 items-start [&>button]:w-[79px]", children: linkButtons.map((button) => {
1803
+ hasLinkButtons && /* @__PURE__ */ jsx53("div", { className: "grid items-start gap-3 grid-cols-1 sm:grid-cols-2 md:grid-cols-3", children: linkButtons.map((button) => {
1770
1804
  const attrs = button.attributes;
1771
- return /* @__PURE__ */ jsx52(
1805
+ return /* @__PURE__ */ jsx53(
1772
1806
  DefaultButtonSocial,
1773
1807
  {
1774
- showLabel: false,
1808
+ showLabel: true,
1775
1809
  node: button,
1776
1810
  attributes: attrs,
1777
- onClick: () => {
1778
- setValue("link", attrs.value);
1779
- setValue("method", "oidc");
1780
- }
1811
+ onClick: button.onClick
1781
1812
  },
1782
1813
  attrs.value
1783
1814
  );
1784
1815
  }) }),
1785
- hasUnlinkButtons && hasLinkButtons ? /* @__PURE__ */ jsx52(DefaultHorizontalDivider, {}) : null,
1816
+ hasUnlinkButtons && hasLinkButtons ? /* @__PURE__ */ jsx53(DefaultHorizontalDivider, {}) : null,
1786
1817
  unlinkButtons.map((button) => {
1787
1818
  var _a, _b;
1788
1819
  const attrs = button.attributes;
1789
1820
  const provider = (_b = extractProvider((_a = button.meta.label) == null ? void 0 : _a.context)) != null ? _b : "";
1790
1821
  const Logo = attrs.value in provider_logos_default ? provider_logos_default[attrs.value] : provider_logos_default.generic;
1791
1822
  return /* @__PURE__ */ jsxs30("div", { className: "flex justify-between", children: [
1792
- /* @__PURE__ */ jsxs30("div", { className: "flex gap-6 items-center", children: [
1793
- /* @__PURE__ */ jsx52(Logo, { size: 32 }),
1794
- /* @__PURE__ */ jsx52("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: provider })
1823
+ /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-6", children: [
1824
+ /* @__PURE__ */ jsx53(Logo, { size: 32 }),
1825
+ /* @__PURE__ */ jsx53("p", { className: "text-sm font-medium text-interface-foreground-default-secondary", children: provider })
1795
1826
  ] }),
1796
- /* @__PURE__ */ jsx52(
1827
+ /* @__PURE__ */ jsx53(
1797
1828
  "button",
1798
1829
  {
1799
1830
  ...attrs,
1800
1831
  type: "submit",
1801
- onClick: () => {
1802
- setValue("unlink", attrs.value);
1803
- setValue("method", "oidc");
1804
- },
1805
- children: /* @__PURE__ */ jsx52(trash_default, { className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover" })
1832
+ onClick: button.onClick,
1833
+ disabled: isSubmitting,
1834
+ className: "relative",
1835
+ title: `Unlink ${provider}`,
1836
+ children: isSubmitting ? /* @__PURE__ */ jsx53(Spinner, { className: "relative" }) : /* @__PURE__ */ jsx53(
1837
+ trash_default,
1838
+ {
1839
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover",
1840
+ size: 24
1841
+ }
1842
+ )
1806
1843
  }
1807
1844
  )
1808
1845
  ] }, attrs.value);
@@ -1811,52 +1848,78 @@ function DefaultSettingsOidc({
1811
1848
  }
1812
1849
 
1813
1850
  // src/theme/default/components/settings/settings-passkey.tsx
1814
- import { jsx as jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
1851
+ import { useComponents as useComponents4 } from "@ory/elements-react";
1852
+ import { useFormContext as useFormContext8 } from "react-hook-form";
1853
+ import { jsx as jsx54, jsxs as jsxs31 } from "react/jsx-runtime";
1815
1854
  function DefaultSettingsPasskey({
1816
1855
  triggerButton,
1817
1856
  removeButtons
1818
1857
  }) {
1858
+ const {
1859
+ formState: { isSubmitting }
1860
+ } = useFormContext8();
1861
+ const { Node } = useComponents4();
1819
1862
  const hasRemoveButtons = removeButtons.length > 0;
1820
1863
  return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-8", children: [
1821
- /* @__PURE__ */ jsx53("div", { className: "flex gap-3 items-end max-w-[60%]", children: triggerButton ? /* @__PURE__ */ jsx53(
1822
- DefaultButton,
1864
+ /* @__PURE__ */ jsx54("div", { className: "flex max-w-[60%] items-end gap-3", children: triggerButton && /* @__PURE__ */ jsx54(
1865
+ Node.Button,
1823
1866
  {
1824
1867
  node: triggerButton,
1825
1868
  attributes: triggerButton.attributes,
1826
1869
  onClick: triggerButton.onClick
1827
1870
  }
1828
- ) : null }),
1871
+ ) }),
1829
1872
  hasRemoveButtons ? /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-8", children: [
1830
- /* @__PURE__ */ jsx53(DefaultHorizontalDivider, {}),
1831
- /* @__PURE__ */ jsx53("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1873
+ /* @__PURE__ */ jsx54(DefaultHorizontalDivider, {}),
1874
+ /* @__PURE__ */ jsx54("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1832
1875
  var _a, _b;
1833
1876
  const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
1834
1877
  const addedAt = "added_at" in context ? context.added_at : null;
1835
- const diaplyName = "display_name" in context ? context.display_name : null;
1878
+ const displayName = "display_name" in context ? context.display_name : null;
1836
1879
  const keyId = "value" in node.attributes ? node.attributes.value : null;
1837
1880
  return /* @__PURE__ */ jsxs31(
1838
1881
  "div",
1839
1882
  {
1840
- className: "flex justify-between gap-6",
1883
+ className: "flex justify-between gap-6 md:items-center",
1841
1884
  children: [
1842
- /* @__PURE__ */ jsx53(passkey_default, { size: 32, className: "text-dialog-fg-default" }),
1843
- /* @__PURE__ */ jsxs31("div", { className: "flex-1 flex-col", children: [
1844
- /* @__PURE__ */ jsx53("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
1845
- /* @__PURE__ */ jsx53("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
1885
+ /* @__PURE__ */ jsxs31("div", { className: "flex gap-2 items-center flex-1", children: [
1886
+ /* @__PURE__ */ jsx54(
1887
+ passkey_default,
1888
+ {
1889
+ size: 32,
1890
+ className: "text-interface-foreground-default-primary"
1891
+ }
1892
+ ),
1893
+ /* @__PURE__ */ jsxs31("div", { className: "flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4", children: [
1894
+ /* @__PURE__ */ jsxs31("div", { className: "flex-1 flex-col", children: [
1895
+ /* @__PURE__ */ jsx54("p", { className: "text-sm font-medium text-interface-foreground-default-secondary", children: displayName }),
1896
+ /* @__PURE__ */ jsx54("span", { className: "text-sm text-interface-foreground-default-tertiary hidden sm:block", children: keyId })
1897
+ ] }),
1898
+ addedAt && /* @__PURE__ */ jsx54("p", { className: "text-sm text-interface-foreground-default-tertiary", children: new Intl.DateTimeFormat(void 0, {
1899
+ dateStyle: "long"
1900
+ }).format(new Date(addedAt)) })
1901
+ ] })
1846
1902
  ] }),
1847
- addedAt && /* @__PURE__ */ jsx53("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
1848
- /* @__PURE__ */ jsx53(
1903
+ /* @__PURE__ */ jsx54(
1849
1904
  "button",
1850
1905
  {
1851
1906
  ...node.attributes,
1852
1907
  type: "submit",
1853
- className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
1854
- children: /* @__PURE__ */ jsx53(trash_default, { size: 20 })
1908
+ onClick: node.onClick,
1909
+ disabled: isSubmitting,
1910
+ className: "relative",
1911
+ children: isSubmitting ? /* @__PURE__ */ jsx54(Spinner, { className: "relative" }) : /* @__PURE__ */ jsx54(
1912
+ trash_default,
1913
+ {
1914
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover",
1915
+ size: 24
1916
+ }
1917
+ )
1855
1918
  }
1856
1919
  )
1857
1920
  ]
1858
1921
  },
1859
- `webauthn-remove-button-${i}`
1922
+ `passkey-remove-button-${i}`
1860
1923
  );
1861
1924
  }) })
1862
1925
  ] }) : null
@@ -1865,41 +1928,47 @@ function DefaultSettingsPasskey({
1865
1928
 
1866
1929
  // src/theme/default/assets/icons/download.svg
1867
1930
  import * as React26 from "react";
1868
- import { jsx as jsx54 } from "react/jsx-runtime";
1931
+ import { jsx as jsx55 } from "react/jsx-runtime";
1869
1932
  var SvgDownload = (props) => {
1870
1933
  var _a, _b;
1871
- return /* @__PURE__ */ jsx54("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx54("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5m0 0 5-5m-5 5V4" }) });
1934
+ return /* @__PURE__ */ jsx55("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx55("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5m0 0 5-5m-5 5V4" }) });
1872
1935
  };
1873
1936
  var download_default = SvgDownload;
1874
1937
 
1875
1938
  // src/theme/default/assets/icons/eye.svg
1876
1939
  import * as React27 from "react";
1877
- import { jsx as jsx55, jsxs as jsxs32 } from "react/jsx-runtime";
1940
+ import { jsx as jsx56, jsxs as jsxs32 } from "react/jsx-runtime";
1878
1941
  var SvgEye = (props) => {
1879
1942
  var _a, _b;
1880
- return /* @__PURE__ */ jsx55("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsxs32("g", { strokeLinecap: "round", strokeLinejoin: "round", children: [
1881
- /* @__PURE__ */ jsx55("path", { stroke: "currentColor", d: "M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0" }),
1882
- /* @__PURE__ */ jsx55("path", { stroke: "#64748B", d: "M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6" })
1943
+ return /* @__PURE__ */ jsx56("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsxs32("g", { strokeLinecap: "round", strokeLinejoin: "round", children: [
1944
+ /* @__PURE__ */ jsx56("path", { stroke: "currentColor", d: "M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0" }),
1945
+ /* @__PURE__ */ jsx56("path", { stroke: "#64748B", d: "M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6" })
1883
1946
  ] }) });
1884
1947
  };
1885
1948
  var eye_default = SvgEye;
1886
1949
 
1887
1950
  // src/theme/default/assets/icons/refresh.svg
1888
1951
  import * as React28 from "react";
1889
- import { jsx as jsx56 } from "react/jsx-runtime";
1952
+ import { jsx as jsx57 } from "react/jsx-runtime";
1890
1953
  var SvgRefresh = (props) => {
1891
1954
  var _a, _b;
1892
- return /* @__PURE__ */ jsx56("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx56("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4" }) });
1955
+ return /* @__PURE__ */ jsx57("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx57("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4" }) });
1893
1956
  };
1894
1957
  var refresh_default = SvgRefresh;
1895
1958
 
1896
1959
  // src/theme/default/components/settings/settings-recovery-codes.tsx
1897
- import { jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
1960
+ import { useFormContext as useFormContext9 } from "react-hook-form";
1961
+ import { Fragment as Fragment4, jsx as jsx58, jsxs as jsxs33 } from "react/jsx-runtime";
1898
1962
  function DefaultSettingsRecoveryCodes({
1899
1963
  codes,
1900
1964
  regnerateButton,
1901
- revealButton
1965
+ revealButton,
1966
+ onRegenerate,
1967
+ onReveal
1902
1968
  }) {
1969
+ const {
1970
+ formState: { isSubmitting }
1971
+ } = useFormContext9();
1903
1972
  const onDownload = () => {
1904
1973
  const element = document.createElement("a");
1905
1974
  const file = new Blob([codes.join("\n")], {
@@ -1912,85 +1981,126 @@ function DefaultSettingsRecoveryCodes({
1912
1981
  };
1913
1982
  const hasCodes = codes.length >= 1;
1914
1983
  return /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-8", children: [
1915
- /* @__PURE__ */ jsx57(DefaultHorizontalDivider, {}),
1916
- /* @__PURE__ */ jsxs33("div", { className: "flex justify-end gap-4", children: [
1917
- regnerateButton && /* @__PURE__ */ jsx57(
1918
- "button",
1919
- {
1920
- ...regnerateButton.attributes,
1921
- type: "submit",
1922
- children: /* @__PURE__ */ jsx57(
1923
- refresh_default,
1924
- {
1925
- size: 24,
1926
- className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1927
- }
1928
- )
1929
- }
1930
- ),
1931
- revealButton && /* @__PURE__ */ jsx57(
1932
- "button",
1933
- {
1934
- ...revealButton.attributes,
1935
- type: "submit",
1936
- children: /* @__PURE__ */ jsx57(
1937
- eye_default,
1938
- {
1939
- size: 24,
1940
- className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1941
- }
1942
- )
1943
- }
1944
- ),
1945
- hasCodes ? /* @__PURE__ */ jsx57(
1946
- download_default,
1947
- {
1948
- size: 24,
1949
- onClick: onDownload,
1950
- className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1951
- }
1952
- ) : null
1984
+ codes.length > 0 && /* @__PURE__ */ jsx58(DefaultHorizontalDivider, {}),
1985
+ /* @__PURE__ */ jsxs33("div", { className: "flex gap-4 justify-between", children: [
1986
+ /* @__PURE__ */ jsx58("span", { className: "text-interface-foreground-default-tertiary", children: revealButton && "Reveal recovery codes" }),
1987
+ /* @__PURE__ */ jsxs33("div", { className: "flex gap-2", children: [
1988
+ regnerateButton && codes.length > 0 && /* @__PURE__ */ jsx58(
1989
+ "button",
1990
+ {
1991
+ ...regnerateButton.attributes,
1992
+ type: "submit",
1993
+ className: "ml-auto",
1994
+ onClick: onRegenerate,
1995
+ disabled: isSubmitting,
1996
+ "data-loading": isSubmitting,
1997
+ children: /* @__PURE__ */ jsx58(
1998
+ refresh_default,
1999
+ {
2000
+ size: 24,
2001
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover"
2002
+ }
2003
+ )
2004
+ }
2005
+ ),
2006
+ revealButton && /* @__PURE__ */ jsx58(Fragment4, { children: /* @__PURE__ */ jsx58(
2007
+ "button",
2008
+ {
2009
+ ...revealButton.attributes,
2010
+ type: "submit",
2011
+ className: "ml-auto",
2012
+ onClick: onReveal,
2013
+ title: "Reveal recovery codes",
2014
+ children: /* @__PURE__ */ jsx58(
2015
+ eye_default,
2016
+ {
2017
+ size: 24,
2018
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover"
2019
+ }
2020
+ )
2021
+ }
2022
+ ) }),
2023
+ hasCodes && /* @__PURE__ */ jsx58(
2024
+ "button",
2025
+ {
2026
+ onClick: onDownload,
2027
+ type: "button",
2028
+ className: "ml-auto",
2029
+ "data-testid": "recovery-codes-download-button",
2030
+ title: "Download recovery codes",
2031
+ children: /* @__PURE__ */ jsx58(
2032
+ download_default,
2033
+ {
2034
+ size: 24,
2035
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover"
2036
+ }
2037
+ )
2038
+ }
2039
+ )
2040
+ ] })
1953
2041
  ] }),
1954
- hasCodes ? /* @__PURE__ */ jsx57("div", { className: "rounded-border-radius-cards bg-bg-default ring-1 ring-dialog-border-default p-6", children: /* @__PURE__ */ jsx57("div", { className: "grid grid-cols-6 gap-4 flex-wrap text-dialog-fg-default text-sm", children: codes.map((code) => /* @__PURE__ */ jsx57("p", { children: code }, code)) }) }) : null
2042
+ hasCodes ? /* @__PURE__ */ jsx58("div", { className: "rounded-general p-6 bg-interface-background-default-secondary border-interface-border-default-primary", children: /* @__PURE__ */ jsx58(
2043
+ "div",
2044
+ {
2045
+ className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 flex-wrap gap-4 text-sm text-interface-foreground-default-primary",
2046
+ "data-testid": "recovery-codes-codes",
2047
+ children: codes.map((code) => /* @__PURE__ */ jsx58("p", { children: code }, code))
2048
+ }
2049
+ ) }) : null
1955
2050
  ] });
1956
2051
  }
1957
2052
 
2053
+ // src/theme/default/components/settings/settings-totp.tsx
2054
+ import { useComponents as useComponents5 } from "@ory/elements-react";
2055
+
1958
2056
  // src/theme/default/assets/icons/qrcode.svg
1959
2057
  import * as React29 from "react";
1960
- import { jsx as jsx58 } from "react/jsx-runtime";
2058
+ import { jsx as jsx59 } from "react/jsx-runtime";
1961
2059
  var SvgQrcode = (props) => {
1962
2060
  var _a, _b;
1963
- return /* @__PURE__ */ jsx58("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx58("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 22.667v.013m0-13.346v.013m13.333-.013v.013m0 9.32h-4v4m8-4v.013m-8 7.987h4m0-4h4v4m-21.333-20a1.333 1.333 0 0 1 1.333-1.333H12a1.333 1.333 0 0 1 1.333 1.333V12A1.334 1.334 0 0 1 12 13.334H6.666A1.334 1.334 0 0 1 5.333 12zm13.333 0A1.333 1.333 0 0 1 20 5.334h5.333a1.333 1.333 0 0 1 1.333 1.333V12a1.333 1.333 0 0 1-1.333 1.334H20A1.333 1.333 0 0 1 18.666 12zM5.333 20a1.333 1.333 0 0 1 1.333-1.333H12A1.333 1.333 0 0 1 13.333 20v5.334A1.333 1.333 0 0 1 12 26.667H6.666a1.333 1.333 0 0 1-1.333-1.334z" }) });
2061
+ return /* @__PURE__ */ jsx59("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx59("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 22.667v.013m0-13.346v.013m13.333-.013v.013m0 9.32h-4v4m8-4v.013m-8 7.987h4m0-4h4v4m-21.333-20a1.333 1.333 0 0 1 1.333-1.333H12a1.333 1.333 0 0 1 1.333 1.333V12A1.334 1.334 0 0 1 12 13.334H6.666A1.334 1.334 0 0 1 5.333 12zm13.333 0A1.333 1.333 0 0 1 20 5.334h5.333a1.333 1.333 0 0 1 1.333 1.333V12a1.333 1.333 0 0 1-1.333 1.334H20A1.333 1.333 0 0 1 18.666 12zM5.333 20a1.333 1.333 0 0 1 1.333-1.333H12A1.333 1.333 0 0 1 13.333 20v5.334A1.333 1.333 0 0 1 12 26.667H6.666a1.333 1.333 0 0 1-1.333-1.334z" }) });
1964
2062
  };
1965
2063
  var qrcode_default = SvgQrcode;
1966
2064
 
1967
- // src/theme/default/components/settings/settings-top.tsx
1968
- import { jsx as jsx59, jsxs as jsxs34 } from "react/jsx-runtime";
1969
- function DefaultSettingsTotp(props) {
1970
- var _a;
1971
- if ("totpUnlink" in props && props.totpUnlink) {
2065
+ // src/theme/default/components/settings/settings-totp.tsx
2066
+ import { useFormContext as useFormContext10 } from "react-hook-form";
2067
+ import { jsx as jsx60, jsxs as jsxs34 } from "react/jsx-runtime";
2068
+ function DefaultSettingsTotp({
2069
+ totpImage,
2070
+ totpInput,
2071
+ totpSecret,
2072
+ totpUnlink,
2073
+ onUnlink
2074
+ }) {
2075
+ const { Node, Card } = useComponents5();
2076
+ const {
2077
+ formState: { isSubmitting }
2078
+ } = useFormContext10();
2079
+ if (totpUnlink) {
1972
2080
  const {
1973
2081
  type,
1974
2082
  autocomplete: _ignoredAutocomplete,
1975
2083
  label: _ignoredLabel,
1976
2084
  node_type: _ignoredNodeType,
1977
2085
  ...buttonAttrs
1978
- } = (_a = props.totpUnlink) == null ? void 0 : _a.attributes;
1979
- return /* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
1980
- /* @__PURE__ */ jsx59("div", { className: "col-span-full", children: /* @__PURE__ */ jsx59(DefaultHorizontalDivider, {}) }),
1981
- /* @__PURE__ */ jsxs34("div", { className: "flex gap-6 items-center col-span-full", children: [
1982
- /* @__PURE__ */ jsx59("div", { className: "size-8 aspect-square ", children: /* @__PURE__ */ jsx59(qrcode_default, { size: 32 }) }),
1983
- /* @__PURE__ */ jsx59("div", { className: "flex flex-col mr-auto", children: /* @__PURE__ */ jsx59("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: "Authenticator app" }) }),
1984
- /* @__PURE__ */ jsx59(
2086
+ } = totpUnlink.attributes;
2087
+ return /* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2", children: [
2088
+ /* @__PURE__ */ jsx60("div", { className: "col-span-full", children: /* @__PURE__ */ jsx60(Card.Divider, {}) }),
2089
+ /* @__PURE__ */ jsxs34("div", { className: "col-span-full flex items-center gap-6", children: [
2090
+ /* @__PURE__ */ jsx60("div", { className: "aspect-square size-8 ", children: /* @__PURE__ */ jsx60(qrcode_default, { size: 32 }) }),
2091
+ /* @__PURE__ */ jsx60("div", { className: "mr-auto flex flex-col", children: /* @__PURE__ */ jsx60("p", { className: "text-sm font-medium text-interface-foreground-default-primary", children: "Authenticator app" }) }),
2092
+ /* @__PURE__ */ jsx60(
1985
2093
  "button",
1986
2094
  {
1987
2095
  type: type === "button" ? "button" : "submit",
1988
2096
  ...buttonAttrs,
1989
- children: /* @__PURE__ */ jsx59(
2097
+ onClick: onUnlink,
2098
+ disabled: isSubmitting,
2099
+ children: isSubmitting ? /* @__PURE__ */ jsx60(Spinner, { className: "relative" }) : /* @__PURE__ */ jsx60(
1990
2100
  trash_default,
1991
2101
  {
1992
- size: 24,
1993
- className: "text-links-link-mute-default hover:text-links-link-mute-hover"
2102
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover",
2103
+ size: 24
1994
2104
  }
1995
2105
  )
1996
2106
  }
@@ -1998,49 +2108,49 @@ function DefaultSettingsTotp(props) {
1998
2108
  ] })
1999
2109
  ] });
2000
2110
  }
2001
- if ("totpSecret" in props) {
2002
- return /* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
2003
- /* @__PURE__ */ jsx59("div", { className: "col-span-full", children: /* @__PURE__ */ jsx59(DefaultHorizontalDivider, {}) }),
2004
- /* @__PURE__ */ jsx59("div", { className: "bg-dialog-bg-subtle p-8 rounded-xl flex justify-center", children: /* @__PURE__ */ jsx59("div", { className: "h-44 aspect-square bg-[white] rounded", children: /* @__PURE__ */ jsx59("div", { className: "mix-blend-multiply -m-3 antialiased", children: /* @__PURE__ */ jsx59(
2005
- DefaultImage,
2111
+ if (totpImage && totpSecret && totpInput) {
2112
+ return /* @__PURE__ */ jsxs34("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2", children: [
2113
+ /* @__PURE__ */ jsx60("div", { className: "col-span-full", children: /* @__PURE__ */ jsx60(DefaultHorizontalDivider, {}) }),
2114
+ /* @__PURE__ */ jsx60("div", { className: "flex justify-center rounded-cards bg-interface-background-default-secondary p-8", children: /* @__PURE__ */ jsx60("div", { className: "aspect-square h-44 rounded bg-[white]", children: /* @__PURE__ */ jsx60("div", { className: "-m-3 antialiased mix-blend-multiply", children: /* @__PURE__ */ jsx60(
2115
+ Node.Image,
2006
2116
  {
2007
- node: props.totpImage,
2117
+ node: totpImage,
2008
2118
  attributes: {
2009
- ...props.totpImage.attributes
2119
+ ...totpImage.attributes
2010
2120
  }
2011
2121
  }
2012
2122
  ) }) }) }),
2013
2123
  /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-6", children: [
2014
- /* @__PURE__ */ jsx59(
2015
- DefaultLabel,
2124
+ /* @__PURE__ */ jsx60(
2125
+ Node.Label,
2016
2126
  {
2017
- node: props.totpSecret,
2018
- attributes: props.totpSecret.attributes,
2019
- children: /* @__PURE__ */ jsx59(
2020
- DefaultInput,
2127
+ node: totpSecret,
2128
+ attributes: totpSecret.attributes,
2129
+ children: /* @__PURE__ */ jsx60(
2130
+ Node.Input,
2021
2131
  {
2022
- node: props.totpSecret,
2132
+ node: totpSecret,
2023
2133
  attributes: {
2024
2134
  disabled: true,
2025
2135
  name: "totp_secret_key",
2026
2136
  node_type: "input",
2027
2137
  type: "text",
2028
- value: props.totpSecret.attributes.text.text
2138
+ value: totpSecret.attributes.text.text
2029
2139
  }
2030
2140
  }
2031
2141
  )
2032
2142
  }
2033
2143
  ),
2034
- /* @__PURE__ */ jsx59(
2035
- DefaultLabel,
2144
+ /* @__PURE__ */ jsx60(
2145
+ Node.Label,
2036
2146
  {
2037
- attributes: props.totpInput.attributes,
2038
- node: props.totpInput,
2039
- children: /* @__PURE__ */ jsx59(
2040
- DefaultInput,
2147
+ attributes: totpInput.attributes,
2148
+ node: totpInput,
2149
+ children: /* @__PURE__ */ jsx60(
2150
+ Node.CodeInput,
2041
2151
  {
2042
- node: props.totpInput,
2043
- attributes: props.totpInput.attributes
2152
+ node: totpInput,
2153
+ attributes: totpInput.attributes
2044
2154
  }
2045
2155
  )
2046
2156
  }
@@ -2050,32 +2160,40 @@ function DefaultSettingsTotp(props) {
2050
2160
  }
2051
2161
  }
2052
2162
 
2163
+ // src/theme/default/components/settings/settings-webauthn.tsx
2164
+ import { useComponents as useComponents6 } from "@ory/elements-react";
2165
+
2053
2166
  // src/theme/default/assets/icons/key.svg
2054
2167
  import * as React30 from "react";
2055
- import { jsx as jsx60 } from "react/jsx-runtime";
2168
+ import { jsx as jsx61 } from "react/jsx-runtime";
2056
2169
  var SvgKey = (props) => {
2057
2170
  var _a, _b;
2058
- return /* @__PURE__ */ jsx60("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx60("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 12h.013m2.06-6.876 4.803 4.803a3.836 3.836 0 0 1 0 5.425l-3.524 3.524a3.835 3.835 0 0 1-5.425 0l-.402-.401-8.744 8.744a2.67 2.67 0 0 1-1.652.77L6.896 28H5.333a1.334 1.334 0 0 1-1.324-1.177L4 26.667v-1.563c0-.626.22-1.232.623-1.712l.158-.173.552-.552H8V20h2.667v-2.667l2.858-2.858-.401-.402a3.835 3.835 0 0 1 0-5.425l3.524-3.524a3.835 3.835 0 0 1 5.425 0" }) });
2171
+ return /* @__PURE__ */ jsx61("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx61("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 12h.013m2.06-6.876 4.803 4.803a3.836 3.836 0 0 1 0 5.425l-3.524 3.524a3.835 3.835 0 0 1-5.425 0l-.402-.401-8.744 8.744a2.67 2.67 0 0 1-1.652.77L6.896 28H5.333a1.334 1.334 0 0 1-1.324-1.177L4 26.667v-1.563c0-.626.22-1.232.623-1.712l.158-.173.552-.552H8V20h2.667v-2.667l2.858-2.858-.401-.402a3.835 3.835 0 0 1 0-5.425l3.524-3.524a3.835 3.835 0 0 1 5.425 0" }) });
2059
2172
  };
2060
2173
  var key_default = SvgKey;
2061
2174
 
2062
2175
  // src/theme/default/components/settings/settings-webauthn.tsx
2063
- import { jsx as jsx61, jsxs as jsxs35 } from "react/jsx-runtime";
2176
+ import { useFormContext as useFormContext11 } from "react-hook-form";
2177
+ import { jsx as jsx62, jsxs as jsxs35 } from "react/jsx-runtime";
2064
2178
  function DefaultSettingsWebauthn({
2065
2179
  nameInput,
2066
2180
  triggerButton,
2067
2181
  removeButtons
2068
2182
  }) {
2183
+ const {
2184
+ formState: { isSubmitting }
2185
+ } = useFormContext11();
2186
+ const { Node, Card } = useComponents6();
2069
2187
  const hasRemoveButtons = removeButtons.length > 0;
2070
2188
  return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-8", children: [
2071
- /* @__PURE__ */ jsxs35("div", { className: "flex gap-3 items-end max-w-[60%]", children: [
2072
- /* @__PURE__ */ jsx61("div", { className: "flex-1", children: /* @__PURE__ */ jsx61(
2073
- DefaultLabel,
2189
+ /* @__PURE__ */ jsxs35("div", { className: "flex md:max-w-96 sm:items-end gap-3 flex-col sm:flex-row", children: [
2190
+ /* @__PURE__ */ jsx62("div", { className: "flex-1", children: /* @__PURE__ */ jsx62(
2191
+ Node.Label,
2074
2192
  {
2075
2193
  node: nameInput,
2076
2194
  attributes: nameInput.attributes,
2077
- children: /* @__PURE__ */ jsx61(
2078
- DefaultInput,
2195
+ children: /* @__PURE__ */ jsx62(
2196
+ Node.Input,
2079
2197
  {
2080
2198
  node: nameInput,
2081
2199
  attributes: nameInput.attributes
@@ -2083,8 +2201,8 @@ function DefaultSettingsWebauthn({
2083
2201
  )
2084
2202
  }
2085
2203
  ) }),
2086
- triggerButton ? /* @__PURE__ */ jsx61(
2087
- DefaultButton,
2204
+ triggerButton ? /* @__PURE__ */ jsx62(
2205
+ Node.Button,
2088
2206
  {
2089
2207
  node: triggerButton,
2090
2208
  attributes: triggerButton.attributes,
@@ -2093,31 +2211,51 @@ function DefaultSettingsWebauthn({
2093
2211
  ) : null
2094
2212
  ] }),
2095
2213
  hasRemoveButtons ? /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-8", children: [
2096
- /* @__PURE__ */ jsx61(DefaultHorizontalDivider, {}),
2097
- /* @__PURE__ */ jsx61("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
2214
+ /* @__PURE__ */ jsx62(Card.Divider, {}),
2215
+ /* @__PURE__ */ jsx62("div", { className: "flex flex-col gap-4", children: removeButtons.map((node, i) => {
2098
2216
  var _a, _b;
2099
2217
  const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
2100
2218
  const addedAt = "added_at" in context ? context.added_at : null;
2101
- const diaplyName = "display_name" in context ? context.display_name : null;
2219
+ const displayName = "display_name" in context ? context.display_name : null;
2102
2220
  const keyId = "value" in node.attributes ? node.attributes.value : null;
2103
2221
  return /* @__PURE__ */ jsxs35(
2104
2222
  "div",
2105
2223
  {
2106
- className: "flex justify-between gap-6",
2224
+ className: "flex justify-between gap-6 md:items-center",
2107
2225
  children: [
2108
- /* @__PURE__ */ jsx61(key_default, { size: 32, className: "text-dialog-fg-default" }),
2109
- /* @__PURE__ */ jsxs35("div", { className: "flex-1 flex-col", children: [
2110
- /* @__PURE__ */ jsx61("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
2111
- /* @__PURE__ */ jsx61("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
2226
+ /* @__PURE__ */ jsxs35("div", { className: "flex gap-2 items-center flex-1", children: [
2227
+ /* @__PURE__ */ jsx62(
2228
+ key_default,
2229
+ {
2230
+ size: 32,
2231
+ className: "text-interface-foreground-default-primary"
2232
+ }
2233
+ ),
2234
+ /* @__PURE__ */ jsxs35("div", { className: "flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4", children: [
2235
+ /* @__PURE__ */ jsxs35("div", { className: "flex-1 flex-col", children: [
2236
+ /* @__PURE__ */ jsx62("p", { className: "text-sm font-medium text-interface-foreground-default-secondary", children: displayName }),
2237
+ /* @__PURE__ */ jsx62("span", { className: "text-sm text-interface-foreground-default-tertiary hidden sm:block", children: keyId })
2238
+ ] }),
2239
+ addedAt && /* @__PURE__ */ jsx62("p", { className: "text-sm text-interface-foreground-default-tertiary", children: new Intl.DateTimeFormat(void 0, {
2240
+ dateStyle: "long"
2241
+ }).format(new Date(addedAt)) })
2242
+ ] })
2112
2243
  ] }),
2113
- addedAt && /* @__PURE__ */ jsx61("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
2114
- /* @__PURE__ */ jsx61(
2244
+ /* @__PURE__ */ jsx62(
2115
2245
  "button",
2116
2246
  {
2117
2247
  ...node.attributes,
2118
2248
  type: "submit",
2119
- className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
2120
- children: /* @__PURE__ */ jsx61(trash_default, { size: 20 })
2249
+ onClick: node.onClick,
2250
+ disabled: isSubmitting,
2251
+ className: "relative",
2252
+ children: isSubmitting ? /* @__PURE__ */ jsx62(Spinner, { className: "relative" }) : /* @__PURE__ */ jsx62(
2253
+ trash_default,
2254
+ {
2255
+ className: "text-button-link-default-secondary hover:text-button-link-default-secondary-hover",
2256
+ size: 24
2257
+ }
2258
+ )
2121
2259
  }
2122
2260
  )
2123
2261
  ]
@@ -2177,12 +2315,12 @@ function getOryComponents(overrides) {
2177
2315
  }
2178
2316
 
2179
2317
  // src/theme/default/flows/error.tsx
2180
- import { jsx as jsx62 } from "react/jsx-runtime";
2318
+ import { jsx as jsx63 } from "react/jsx-runtime";
2181
2319
  function Error({
2182
2320
  error,
2183
2321
  children
2184
2322
  }) {
2185
- return /* @__PURE__ */ jsx62("div", { children: JSON.stringify(error) || children });
2323
+ return /* @__PURE__ */ jsx63("div", { children: JSON.stringify(error) || children });
2186
2324
  }
2187
2325
 
2188
2326
  // src/theme/default/flows/login.tsx
@@ -2191,7 +2329,7 @@ import {
2191
2329
  OryProvider,
2192
2330
  OryTwoStepCard
2193
2331
  } from "@ory/elements-react";
2194
- import { jsx as jsx63 } from "react/jsx-runtime";
2332
+ import { jsx as jsx64 } from "react/jsx-runtime";
2195
2333
  function Login({
2196
2334
  flow,
2197
2335
  config,
@@ -2199,14 +2337,14 @@ function Login({
2199
2337
  components: flowOverrideComponents
2200
2338
  }) {
2201
2339
  const components = getOryComponents(flowOverrideComponents);
2202
- return /* @__PURE__ */ jsx63(
2340
+ return /* @__PURE__ */ jsx64(
2203
2341
  OryProvider,
2204
2342
  {
2205
2343
  config,
2206
2344
  flow,
2207
2345
  flowType: FlowType8.Login,
2208
2346
  components,
2209
- children: children != null ? children : /* @__PURE__ */ jsx63(OryTwoStepCard, {})
2347
+ children: children != null ? children : /* @__PURE__ */ jsx64(OryTwoStepCard, {})
2210
2348
  }
2211
2349
  );
2212
2350
  }
@@ -2217,7 +2355,7 @@ import {
2217
2355
  OryProvider as OryProvider2,
2218
2356
  OryTwoStepCard as OryTwoStepCard2
2219
2357
  } from "@ory/elements-react";
2220
- import { jsx as jsx64 } from "react/jsx-runtime";
2358
+ import { jsx as jsx65 } from "react/jsx-runtime";
2221
2359
  function Recovery({
2222
2360
  flow,
2223
2361
  config,
@@ -2225,14 +2363,14 @@ function Recovery({
2225
2363
  components: flowOverrideComponents
2226
2364
  }) {
2227
2365
  const components = getOryComponents(flowOverrideComponents);
2228
- return /* @__PURE__ */ jsx64(
2366
+ return /* @__PURE__ */ jsx65(
2229
2367
  OryProvider2,
2230
2368
  {
2231
2369
  config,
2232
2370
  flow,
2233
2371
  flowType: FlowType9.Recovery,
2234
2372
  components,
2235
- children: children != null ? children : /* @__PURE__ */ jsx64(OryTwoStepCard2, {})
2373
+ children: children != null ? children : /* @__PURE__ */ jsx65(OryTwoStepCard2, {})
2236
2374
  }
2237
2375
  );
2238
2376
  }
@@ -2243,7 +2381,7 @@ import {
2243
2381
  OryProvider as OryProvider3,
2244
2382
  OryTwoStepCard as OryTwoStepCard3
2245
2383
  } from "@ory/elements-react";
2246
- import { jsx as jsx65 } from "react/jsx-runtime";
2384
+ import { jsx as jsx66 } from "react/jsx-runtime";
2247
2385
  function Registration({
2248
2386
  flow,
2249
2387
  children,
@@ -2251,14 +2389,14 @@ function Registration({
2251
2389
  config
2252
2390
  }) {
2253
2391
  const components = getOryComponents(flowOverrideComponents);
2254
- return /* @__PURE__ */ jsx65(
2392
+ return /* @__PURE__ */ jsx66(
2255
2393
  OryProvider3,
2256
2394
  {
2257
2395
  config,
2258
2396
  flow,
2259
2397
  flowType: FlowType10.Registration,
2260
2398
  components,
2261
- children: children != null ? children : /* @__PURE__ */ jsx65(OryTwoStepCard3, {})
2399
+ children: children != null ? children : /* @__PURE__ */ jsx66(OryTwoStepCard3, {})
2262
2400
  }
2263
2401
  );
2264
2402
  }
@@ -2270,7 +2408,7 @@ import {
2270
2408
  OryProvider as OryProvider4,
2271
2409
  OrySettingsCard
2272
2410
  } from "@ory/elements-react";
2273
- import { Fragment as Fragment4, jsx as jsx66, jsxs as jsxs36 } from "react/jsx-runtime";
2411
+ import { Fragment as Fragment5, jsx as jsx67, jsxs as jsxs36 } from "react/jsx-runtime";
2274
2412
  function Settings({
2275
2413
  flow,
2276
2414
  config,
@@ -2278,16 +2416,16 @@ function Settings({
2278
2416
  components: flowOverrideComponents
2279
2417
  }) {
2280
2418
  const components = getOryComponents(flowOverrideComponents);
2281
- return /* @__PURE__ */ jsx66(
2419
+ return /* @__PURE__ */ jsx67(
2282
2420
  OryProvider4,
2283
2421
  {
2284
2422
  config,
2285
2423
  flow,
2286
2424
  flowType: FlowType11.Settings,
2287
2425
  components,
2288
- children: children != null ? children : /* @__PURE__ */ jsxs36(Fragment4, { children: [
2289
- /* @__PURE__ */ jsx66(HeadlessPageHeader, {}),
2290
- /* @__PURE__ */ jsx66(OrySettingsCard, {})
2426
+ children: children != null ? children : /* @__PURE__ */ jsxs36(Fragment5, { children: [
2427
+ /* @__PURE__ */ jsx67(HeadlessPageHeader, {}),
2428
+ /* @__PURE__ */ jsx67(OrySettingsCard, {})
2291
2429
  ] })
2292
2430
  }
2293
2431
  );
@@ -2299,7 +2437,7 @@ import {
2299
2437
  OryProvider as OryProvider5,
2300
2438
  OryTwoStepCard as OryTwoStepCard4
2301
2439
  } from "@ory/elements-react";
2302
- import { jsx as jsx67 } from "react/jsx-runtime";
2440
+ import { jsx as jsx68 } from "react/jsx-runtime";
2303
2441
  function Verification({
2304
2442
  flow,
2305
2443
  config,
@@ -2307,14 +2445,14 @@ function Verification({
2307
2445
  components: flowOverrideComponents
2308
2446
  }) {
2309
2447
  const components = getOryComponents(flowOverrideComponents);
2310
- return /* @__PURE__ */ jsx67(
2448
+ return /* @__PURE__ */ jsx68(
2311
2449
  OryProvider5,
2312
2450
  {
2313
2451
  config,
2314
2452
  flow,
2315
2453
  flowType: FlowType12.Verification,
2316
2454
  components,
2317
- children: children != null ? children : /* @__PURE__ */ jsx67(OryTwoStepCard4, {})
2455
+ children: children != null ? children : /* @__PURE__ */ jsx68(OryTwoStepCard4, {})
2318
2456
  }
2319
2457
  );
2320
2458
  }
@@ -2324,6 +2462,7 @@ export {
2324
2462
  DefaultCardContent,
2325
2463
  DefaultCardFooter,
2326
2464
  DefaultCardHeader,
2465
+ DefaultCardLayout,
2327
2466
  DefaultCardLogo,
2328
2467
  DefaultCurrentIdentifierButton,
2329
2468
  DefaultFormContainer,