@ory/elements-react 1.0.0-next.11 → 1.0.0-next.13

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 (47) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/api-report/elements-react-client.api.json +228 -0
  3. package/api-report/elements-react-client.api.md +22 -0
  4. package/api-report/elements-react-theme.api.json +47 -24
  5. package/api-report/elements-react-theme.api.md +6 -5
  6. package/api-report/elements-react.api.json +710 -86
  7. package/api-report/elements-react.api.md +86 -11
  8. package/api-report/temp/elements-react-client.api.md +22 -0
  9. package/api-report/temp/elements-react-theme.api.md +6 -5
  10. package/api-report/temp/elements-react.api.md +86 -11
  11. package/config/api-extractor-client.json +463 -0
  12. package/dist/client/frontendClient.d.mts +5 -0
  13. package/dist/client/frontendClient.d.ts +5 -0
  14. package/dist/client/frontendClient.js +40 -0
  15. package/dist/client/frontendClient.js.map +1 -0
  16. package/dist/client/frontendClient.mjs +19 -0
  17. package/dist/client/frontendClient.mjs.map +1 -0
  18. package/dist/client/index.d.mts +3 -0
  19. package/dist/client/index.d.ts +3 -0
  20. package/dist/client/index.js +29 -0
  21. package/dist/client/index.js.map +1 -0
  22. package/dist/client/index.mjs +5 -0
  23. package/dist/client/index.mjs.map +1 -0
  24. package/dist/client/useSession.d.mts +41 -0
  25. package/dist/client/useSession.d.ts +41 -0
  26. package/dist/client/useSession.js +79 -0
  27. package/dist/client/useSession.js.map +1 -0
  28. package/dist/client/useSession.mjs +54 -0
  29. package/dist/client/useSession.mjs.map +1 -0
  30. package/dist/index.d.mts +97 -21
  31. package/dist/index.d.ts +97 -21
  32. package/dist/index.js +718 -5691
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.mjs +712 -5687
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/theme/default/index.css +295 -29
  37. package/dist/theme/default/index.css.map +1 -1
  38. package/dist/theme/default/index.d.mts +3 -3
  39. package/dist/theme/default/index.d.ts +3 -3
  40. package/dist/theme/default/index.js +1058 -292
  41. package/dist/theme/default/index.js.map +1 -1
  42. package/dist/theme/default/index.mjs +1030 -256
  43. package/dist/theme/default/index.mjs.map +1 -1
  44. package/jest.config.ts +4 -3
  45. package/package.json +17 -8
  46. package/tailwind.config.ts +6 -1
  47. package/tsconfig.json +5 -5
@@ -317,19 +317,13 @@ function DefaultCardLogo() {
317
317
  if (flow.config.logoUrl) {
318
318
  return /* @__PURE__ */ jsx6("img", { src: flow.config.logoUrl, width: 100, height: 36, alt: "Logo" });
319
319
  }
320
- return /* @__PURE__ */ jsx6(
321
- "h1",
322
- {
323
- className: "text-xl font-semibold leading-normal text-dialog-fg-default",
324
- children: flow.config.name
325
- }
326
- );
320
+ return /* @__PURE__ */ jsx6("h1", { className: "text-xl font-semibold leading-normal text-dialog-fg-default", children: flow.config.name });
327
321
  }
328
322
 
329
323
  // src/theme/default/components/card/index.tsx
330
324
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
331
325
  function DefaultCard({ children }) {
332
- return /* @__PURE__ */ jsx7("div", { className: "font-sans", children: /* @__PURE__ */ jsxs6("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: [
326
+ return /* @__PURE__ */ jsx7("div", { className: "flex-1 flex-col flex justify-center items-center font-sans", children: /* @__PURE__ */ jsxs6("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: [
333
327
  children,
334
328
  /* @__PURE__ */ jsx7(Badge, {})
335
329
  ] }) });
@@ -344,7 +338,11 @@ function cn(...inputs) {
344
338
 
345
339
  // src/theme/default/components/form/index.tsx
346
340
  import { useIntl as useIntl3 } from "react-intl";
347
- import { uiTextToFormattedMessage } from "@ory/elements-react";
341
+ import {
342
+ uiTextToFormattedMessage,
343
+ useOryFlow as useOryFlow4
344
+ } from "@ory/elements-react";
345
+ import { FlowType as FlowType3 } from "@ory/client-fetch";
348
346
  import { jsx as jsx8 } from "react/jsx-runtime";
349
347
  function DefaultFormContainer({
350
348
  children,
@@ -365,10 +363,19 @@ function DefaultFormContainer({
365
363
  );
366
364
  }
367
365
  function DefaultMessageContainer({ children }) {
366
+ const { flowType } = useOryFlow4();
368
367
  if (!children || Array.isArray(children) && children.length === 0) {
369
368
  return null;
370
369
  }
371
- return /* @__PURE__ */ jsx8("section", { className: "text-left", children });
370
+ return /* @__PURE__ */ jsx8(
371
+ "section",
372
+ {
373
+ className: cn(
374
+ flowType === FlowType3.Settings ? "text-center" : "text-left"
375
+ ),
376
+ children
377
+ }
378
+ );
372
379
  }
373
380
  function DefaultMessage({ message }) {
374
381
  const intl = useIntl3();
@@ -424,6 +431,11 @@ var SvgWebauthn = (props) => {
424
431
  };
425
432
  var webauthn_default = SvgWebauthn;
426
433
 
434
+ // src/theme/default/utils/form.ts
435
+ function isGroupImmediateSubmit(group) {
436
+ return group === "code";
437
+ }
438
+
427
439
  // src/theme/default/components/card/auth-methods.tsx
428
440
  import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
429
441
  var iconsMap = {
@@ -441,8 +453,9 @@ function DefaultAuthMethodListItem({
441
453
  return /* @__PURE__ */ jsx13("div", { className: "w-full hover:bg-forms-bg-hover px-2 py-1 rounded", children: /* @__PURE__ */ jsxs7(
442
454
  "button",
443
455
  {
444
- className: "flex text-left py-2 gap-3 cursor-pointer ",
456
+ className: "flex text-left py-2 gap-3 cursor-pointer",
445
457
  onClick,
458
+ type: isGroupImmediateSubmit(group) ? "submit" : "button",
446
459
  children: [
447
460
  /* @__PURE__ */ jsx13("div", { className: "flex-none w-4 h-4 mt-[2px]", children: Icon && /* @__PURE__ */ jsx13(Icon, { size: 20, className: "text-forms-fg-default" }) }),
448
461
  /* @__PURE__ */ jsxs7("div", { className: "flex-1 text-sm leading-normal", children: [
@@ -455,7 +468,7 @@ function DefaultAuthMethodListItem({
455
468
  }
456
469
 
457
470
  // src/theme/default/components/form/button.tsx
458
- import { getNodeLabel } from "@ory/client-fetch";
471
+ import { FlowType as FlowType4, getNodeLabel } from "@ory/client-fetch";
459
472
  import {
460
473
  uiTextToFormattedMessage as uiTextToFormattedMessage2
461
474
  } from "@ory/elements-react";
@@ -471,7 +484,7 @@ function Spinner({ className }) {
471
484
  "aria-hidden": "true",
472
485
  role: "status",
473
486
  className: cn(
474
- "absolute inset-0 mx-auto my-auto w-8 h-8 text-branding-fg-default animate-spin text-button-primary-fg-default",
487
+ "absolute pointer-events-none inset-0 mx-auto my-auto w-8 h-8 animate-spin",
475
488
  className
476
489
  ),
477
490
  viewBox: "0 0 34 34",
@@ -502,12 +515,50 @@ function Spinner({ className }) {
502
515
  }
503
516
 
504
517
  // src/theme/default/components/form/button.tsx
518
+ import { useOryFlow as useOryFlow5 } from "@ory/elements-react";
519
+ import { cva } from "class-variance-authority";
505
520
  import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
521
+ var buttonStyles = cva(
522
+ [
523
+ "ring-1 relative overflow-hidden ring-inset rounded text-sm leading-none flex gap-3 justify-center",
524
+ "disabled:cursor-not-allowed loading:before:pointer-events-none loading:cursor-wait",
525
+ "transition-colors ease-linear duration-100"
526
+ ],
527
+ {
528
+ variants: {
529
+ intent: {
530
+ primary: [
531
+ "bg-button-primary-bg-default text-button-primary-fg-default ring-button-primary-border-default",
532
+ "hover:bg-button-primary-bg-hover hover:text-button-primary-fg-hover hover:ring-button-primary-border-hover",
533
+ "disabled:bg-button-primary-bg-disabled disabled:text-button-primary-fg-disabled disabled:ring-button-primary-border-disabled",
534
+ "loading:bg-button-primary-bg-default loading:text-button-primary-fg-default loading:ring-button-primary-border-default",
535
+ "loading:before:absolute loading:before:content-[''] loading:before:inset-0 loading:before:bg-button-primary-bg-default loading:before:opacity-80"
536
+ ],
537
+ secondary: [
538
+ "bg-button-secondary-bg-default text-button-secondary-fg-default ring-button-secondary-border-default",
539
+ "hover:bg-button-secondary-bg-hover hover:text-button-secondary-fg-hover hover:ring-button-secondary-border-hover",
540
+ "disabled:bg-button-secondary-bg-disabled disabled:text-button-secondary-fg-disabled disabled:ring-button-secondary-border-disabled",
541
+ "loading:bg-button-secondary-bg-default loading:text-button-secondary-fg-default loading:ring-button-secondary-border-default",
542
+ "loading:before:absolute loading:before:content-[''] loading:before:inset-0 loading:before:bg-button-secondary-bg-default loading:before:opacity-80"
543
+ ]
544
+ },
545
+ size: {
546
+ default: ["px-4 py-3"],
547
+ large: ["px-4 py-4.5 max-md:py-3"]
548
+ },
549
+ defaultVariants: {
550
+ intent: "primary",
551
+ size: "default"
552
+ }
553
+ }
554
+ }
555
+ );
506
556
  var DefaultButton = ({
507
557
  attributes,
508
558
  node,
509
559
  onClick
510
560
  }) => {
561
+ var _a;
511
562
  const {
512
563
  type,
513
564
  name,
@@ -521,11 +572,13 @@ var DefaultButton = ({
521
572
  } = attributes;
522
573
  const intl = useIntl5();
523
574
  const label = getNodeLabel(node);
575
+ const { flowType } = useOryFlow5();
524
576
  const {
525
577
  formState: { isSubmitting },
526
578
  setValue
527
579
  } = useFormContext();
528
- const isPrimary = attributes.name === "method" || attributes.name.includes("passkey") || attributes.name.includes("webauthn");
580
+ const isPrimary = attributes.name === "method" || attributes.name.includes("passkey") || attributes.name.includes("webauthn") || attributes.name.includes("lookup_secret");
581
+ const isSmall = flowType === FlowType4.Settings && attributes.name !== "webauthn_register_trigger";
529
582
  return /* @__PURE__ */ jsxs9(
530
583
  "button",
531
584
  {
@@ -537,38 +590,20 @@ var DefaultButton = ({
537
590
  setValue(name, value);
538
591
  },
539
592
  onClick: (e) => {
540
- if (onClick) {
541
- onClick(e);
542
- }
593
+ onClick == null ? void 0 : onClick(e);
543
594
  if (type !== "button") {
544
595
  setValue(name, value);
545
596
  }
546
597
  },
547
- className: cn(
548
- "antialiased rounded-border-radius-buttons border border-transparent gap-3 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-3 md:py-4.5 text-sm leading-none font-medium",
549
- {
550
- "cursor-not-allowed": isSubmitting,
551
- "bg-button-primary-bg-hover": isSubmitting,
552
- "bg-button-primary-bg-default hover:bg-button-primary-bg-hover text-button-primary-fg-default hover:text-button-primary-fg-hover": isPrimary,
553
- "bg-button-secondary-bg-default hover:bg-button-secondary-bg-hover text-button-secondary-fg-default hover:text-button-secondary-fg-hover border-button-secondary-border-default": !isPrimary
554
- },
555
- {}
556
- ),
598
+ className: buttonStyles({
599
+ intent: isPrimary ? "primary" : "secondary",
600
+ size: isSmall ? "default" : "large"
601
+ }),
602
+ disabled: (_a = rest.disabled) != null ? _a : true,
603
+ "data-loading": isSubmitting,
557
604
  children: [
558
605
  isSubmitting ? /* @__PURE__ */ jsx15(Spinner, {}) : null,
559
- /* @__PURE__ */ jsx15(
560
- "span",
561
- {
562
- className: cn(
563
- "transition-colors ease-linear duration-100 leading-none text-button-primary-fg-default/20",
564
- {
565
- "text-button-primary-fg-default opacity-20 transition-opacity": isSubmitting && isPrimary,
566
- "text-button-secondary-fg-default/20": isSubmitting && !isPrimary
567
- }
568
- ),
569
- children: label ? uiTextToFormattedMessage2(label, intl) : ""
570
- }
571
- )
606
+ label ? uiTextToFormattedMessage2(label, intl) : ""
572
607
  ]
573
608
  }
574
609
  );
@@ -579,12 +614,110 @@ DefaultButton.displayName = "DefaultButton";
579
614
  import { getNodeLabel as getNodeLabel2 } from "@ory/client-fetch";
580
615
  import {
581
616
  messageTestId,
582
- uiTextToFormattedMessage as uiTextToFormattedMessage3
617
+ uiTextToFormattedMessage as uiTextToFormattedMessage4
583
618
  } from "@ory/elements-react";
584
619
  import { useState } from "react";
585
620
  import { useForm } from "react-hook-form";
621
+ import { useIntl as useIntl7 } from "react-intl";
622
+
623
+ // src/theme/default/components/ui/checkbox-label.tsx
586
624
  import { useIntl as useIntl6 } from "react-intl";
587
- import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
625
+
626
+ // src/util/i18n/index.ts
627
+ var uiTextToFormattedMessage3 = ({ id, context = {}, text }, intl) => {
628
+ const contextInjectedMessage = Object.entries(context).reduce(
629
+ (accumulator, [key, value]) => {
630
+ if (Array.isArray(value)) {
631
+ return {
632
+ ...accumulator,
633
+ [key]: value,
634
+ [key + "_list"]: intl.formatList(value)
635
+ };
636
+ } else if (key.endsWith("_unix")) {
637
+ if (typeof value === "number") {
638
+ return {
639
+ ...accumulator,
640
+ [key]: intl.formatDate(new Date(value * 1e3)),
641
+ [key + "_since"]: intl.formatDateTimeRange(
642
+ new Date(value),
643
+ /* @__PURE__ */ new Date()
644
+ ),
645
+ [key + "_since_minutes"]: Math.abs(
646
+ (value - (/* @__PURE__ */ new Date()).getTime() / 1e3) / 60
647
+ ).toFixed(2),
648
+ [key + "_until"]: intl.formatDateTimeRange(
649
+ /* @__PURE__ */ new Date(),
650
+ new Date(value)
651
+ ),
652
+ [key + "_until_minutes"]: Math.abs(
653
+ ((/* @__PURE__ */ new Date()).getTime() / 1e3 - value) / 60
654
+ ).toFixed(2)
655
+ };
656
+ }
657
+ }
658
+ return {
659
+ ...accumulator,
660
+ [key]: value
661
+ };
662
+ },
663
+ {}
664
+ );
665
+ return intl.formatMessage(
666
+ {
667
+ id: `identities.messages.${id}`,
668
+ defaultMessage: text
669
+ },
670
+ contextInjectedMessage
671
+ );
672
+ };
673
+
674
+ // src/theme/default/components/ui/checkbox-label.tsx
675
+ import { Fragment, jsx as jsx16 } from "react/jsx-runtime";
676
+ var linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
677
+ function computeLabelElements(labelText) {
678
+ const elements = [];
679
+ let lastIndex = 0;
680
+ for (const match of labelText.matchAll(linkRegex)) {
681
+ const linkText = match[1];
682
+ const url = match[2];
683
+ const matchStart = match.index;
684
+ if (typeof matchStart === "undefined") {
685
+ continue;
686
+ }
687
+ if (matchStart > lastIndex) {
688
+ elements.push(labelText.slice(lastIndex, matchStart));
689
+ }
690
+ elements.push(
691
+ /* @__PURE__ */ jsx16(
692
+ "a",
693
+ {
694
+ href: url,
695
+ target: "_blank",
696
+ rel: "noopener noreferrer",
697
+ className: "text-links-link-default hover:text-links-link-hover hover:underline",
698
+ children: linkText
699
+ },
700
+ matchStart
701
+ )
702
+ );
703
+ lastIndex = matchStart + match[0].length;
704
+ }
705
+ if (lastIndex < labelText.length) {
706
+ elements.push(labelText.slice(lastIndex));
707
+ }
708
+ return elements;
709
+ }
710
+ function CheckboxLabel({ label }) {
711
+ const intl = useIntl6();
712
+ if (!label) {
713
+ return null;
714
+ }
715
+ const labelText = uiTextToFormattedMessage3(label, intl);
716
+ return /* @__PURE__ */ jsx16(Fragment, { children: computeLabelElements(labelText) });
717
+ }
718
+
719
+ // src/theme/default/components/form/checkbox.tsx
720
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
588
721
  function CheckboxSVG() {
589
722
  return /* @__PURE__ */ jsxs10(
590
723
  "svg",
@@ -596,14 +729,14 @@ function CheckboxSVG() {
596
729
  viewBox: "0 0 16 16",
597
730
  fill: "none",
598
731
  children: [
599
- /* @__PURE__ */ jsx16(
732
+ /* @__PURE__ */ jsx17(
600
733
  "path",
601
734
  {
602
735
  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",
603
736
  fill: "#0F172A"
604
737
  }
605
738
  ),
606
- /* @__PURE__ */ jsx16(
739
+ /* @__PURE__ */ jsx17(
607
740
  "path",
608
741
  {
609
742
  fillRule: "evenodd",
@@ -626,10 +759,11 @@ var DefaultCheckbox = ({
626
759
  // Button does not support these attributes, so we skip them
627
760
  autocomplete: _autocomplete,
628
761
  onclick: _onclick,
762
+ maxlength: _max,
629
763
  // End of skipped attributes
630
764
  ...attributes
631
765
  } = initialAttributes;
632
- const intl = useIntl6();
766
+ const intl = useIntl7();
633
767
  const label = getNodeLabel2(node);
634
768
  const [checked, setChecked] = useState(Boolean(value));
635
769
  const { register } = useForm();
@@ -642,7 +776,7 @@ var DefaultCheckbox = ({
642
776
  },
643
777
  children: [
644
778
  /* @__PURE__ */ jsxs10("div", { className: "flex h-5 items-center", children: [
645
- /* @__PURE__ */ jsx16(
779
+ /* @__PURE__ */ jsx17(
646
780
  "input",
647
781
  {
648
782
  ...attributes,
@@ -657,16 +791,16 @@ var DefaultCheckbox = ({
657
791
  ...register(name, { value })
658
792
  }
659
793
  ),
660
- /* @__PURE__ */ jsx16(CheckboxSVG, {})
794
+ /* @__PURE__ */ jsx17(CheckboxSVG, {})
661
795
  ] }),
662
796
  /* @__PURE__ */ jsxs10("div", { className: "text-sm items-center", children: [
663
- /* @__PURE__ */ jsx16("label", { className: "text-sm font-normal leading-normal text-forms-fg-default", children: label && uiTextToFormattedMessage3(label, intl) }),
664
- node.messages.map((message) => /* @__PURE__ */ jsx16(
797
+ /* @__PURE__ */ jsx17("label", { className: "text-sm font-normal leading-normal text-forms-fg-default", children: /* @__PURE__ */ jsx17(CheckboxLabel, { label }) }),
798
+ node.messages.map((message) => /* @__PURE__ */ jsx17(
665
799
  "span",
666
800
  {
667
801
  className: "text-sm text-red-900 mt-1",
668
802
  ...messageTestId(message),
669
- children: uiTextToFormattedMessage3(message, intl)
803
+ children: uiTextToFormattedMessage4(message, intl)
670
804
  },
671
805
  message.id
672
806
  ))
@@ -677,31 +811,32 @@ var DefaultCheckbox = ({
677
811
  };
678
812
 
679
813
  // src/theme/default/components/form/group-container.tsx
680
- import { jsx as jsx17 } from "react/jsx-runtime";
814
+ import { jsx as jsx18 } from "react/jsx-runtime";
681
815
  function DefaultGroupContainer({ children }) {
682
- return /* @__PURE__ */ jsx17("div", { className: "grid grid-cols-1 gap-6", children });
816
+ return /* @__PURE__ */ jsx18("div", { className: "grid grid-cols-1 gap-6", children });
683
817
  }
684
818
 
685
819
  // src/theme/default/components/form/horizontal-divider.tsx
686
- import { jsx as jsx18 } from "react/jsx-runtime";
820
+ import { jsx as jsx19 } from "react/jsx-runtime";
687
821
  function DefaultHorizontalDivider() {
688
- return /* @__PURE__ */ jsx18("hr", { className: "border-dialog-border-default" });
822
+ return /* @__PURE__ */ jsx19("hr", { className: "border-dialog-border-default" });
689
823
  }
690
824
 
691
825
  // src/theme/default/components/form/image.tsx
692
- import { jsx as jsx19 } from "react/jsx-runtime";
826
+ import { jsx as jsx20 } from "react/jsx-runtime";
693
827
  function DefaultImage({ attributes }) {
694
- return /* @__PURE__ */ jsx19("figure", { children: /* @__PURE__ */ jsx19("img", { ...attributes }) });
828
+ return /* @__PURE__ */ jsx20("figure", { children: /* @__PURE__ */ jsx20("img", { ...attributes }) });
695
829
  }
696
830
 
697
831
  // src/theme/default/components/form/input.tsx
698
- import { getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
832
+ import { FlowType as FlowType5, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
699
833
  import {
700
- uiTextToFormattedMessage as uiTextToFormattedMessage4
834
+ uiTextToFormattedMessage as uiTextToFormattedMessage5,
835
+ useOryFlow as useOryFlow6
701
836
  } from "@ory/elements-react";
702
837
  import { useFormContext as useFormContext2 } from "react-hook-form";
703
- import { useIntl as useIntl7 } from "react-intl";
704
- import { jsx as jsx20 } from "react/jsx-runtime";
838
+ import { useIntl as useIntl8 } from "react-intl";
839
+ import { jsx as jsx21 } from "react/jsx-runtime";
705
840
  var DefaultInput = ({
706
841
  node,
707
842
  attributes,
@@ -710,17 +845,18 @@ var DefaultInput = ({
710
845
  const label = getNodeLabel3(node);
711
846
  const { register } = useFormContext2();
712
847
  const { value, autocomplete, name, maxlength, ...rest } = attributes;
713
- const intl = useIntl7();
848
+ const intl = useIntl8();
849
+ const { flowType } = useOryFlow6();
714
850
  const formattedLabel = label ? intl.formatMessage(
715
851
  {
716
852
  id: "input.placeholder",
717
853
  defaultMessage: "Enter your {placeholder}"
718
854
  },
719
855
  {
720
- placeholder: uiTextToFormattedMessage4(label, intl)
856
+ placeholder: uiTextToFormattedMessage5(label, intl)
721
857
  }
722
858
  ) : "";
723
- return /* @__PURE__ */ jsx20(
859
+ return /* @__PURE__ */ jsx21(
724
860
  "input",
725
861
  {
726
862
  ...rest,
@@ -728,46 +864,51 @@ var DefaultInput = ({
728
864
  maxLength: maxlength,
729
865
  autoComplete: autocomplete,
730
866
  placeholder: formattedLabel,
731
- className: "antialiased bg-forms-bg-default rounded-border-radius-forms border px-3 py-2.5 md:px-4 md:py-4 border-forms-border-default leading-tight hover:border-forms-border-hover transition-colors text-sm",
867
+ className: cn(
868
+ "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",
869
+ "px-3 py-2.5",
870
+ // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.
871
+ flowType === FlowType5.Settings ? "max-w-[488px]" : "md:px-4 md:py-4"
872
+ ),
732
873
  ...register(name, { value })
733
874
  }
734
875
  );
735
876
  };
736
877
 
737
878
  // src/theme/default/components/form/label.tsx
738
- import { FlowType as FlowType3, getNodeLabel as getNodeLabel4 } from "@ory/client-fetch";
879
+ import { FlowType as FlowType6, getNodeLabel as getNodeLabel4 } from "@ory/client-fetch";
739
880
  import {
740
881
  messageTestId as messageTestId2,
741
- uiTextToFormattedMessage as uiTextToFormattedMessage5,
742
- useOryFlow as useOryFlow4
882
+ uiTextToFormattedMessage as uiTextToFormattedMessage6,
883
+ useOryFlow as useOryFlow7
743
884
  } from "@ory/elements-react";
744
- import { useIntl as useIntl8 } from "react-intl";
745
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
885
+ import { useIntl as useIntl9 } from "react-intl";
886
+ import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
746
887
  function DefaultLabel({
747
888
  node,
748
889
  children,
749
890
  attributes,
750
891
  ...rest
751
892
  }) {
752
- const intl = useIntl8();
893
+ const intl = useIntl9();
753
894
  const label = getNodeLabel4(node);
754
- const { config, flowType } = useOryFlow4();
895
+ const { config, flowType } = useOryFlow7();
755
896
  const isPassword = attributes.type === "password";
756
897
  const isCode = attributes.name === "code";
757
898
  return /* @__PURE__ */ jsxs11("span", { className: "flex flex-col antialiased gap-1", children: [
758
899
  label && /* @__PURE__ */ jsxs11("span", { className: "inline-flex justify-between", children: [
759
- /* @__PURE__ */ jsx21(
900
+ /* @__PURE__ */ jsx22(
760
901
  "label",
761
902
  {
762
903
  ...messageTestId2(label),
763
904
  className: "text-sm font-medium leading-normal",
764
905
  htmlFor: attributes.name,
765
906
  ...rest,
766
- children: uiTextToFormattedMessage5(label, intl)
907
+ children: uiTextToFormattedMessage6(label, intl)
767
908
  }
768
909
  ),
769
- isPassword && config.project.recovery_enabled && flowType === FlowType3.Login && // TODO: make it possible to override with a custom component
770
- /* @__PURE__ */ jsx21(
910
+ isPassword && config.project.recovery_enabled && flowType === FlowType6.Login && // TODO: make it possible to override with a custom component
911
+ /* @__PURE__ */ jsx22(
771
912
  "a",
772
913
  {
773
914
  href: config.project.recovery_ui_url,
@@ -778,17 +919,19 @@ function DefaultLabel({
778
919
  })
779
920
  }
780
921
  ),
781
- isCode && /* @__PURE__ */ jsx21(
782
- "input",
922
+ isCode && /* @__PURE__ */ jsx22(
923
+ "button",
783
924
  {
784
925
  type: "submit",
785
- value: "Resend Code",
786
- className: "text-links-link-default hover:underline hover:text-link-hover transition-colors text-sm font-medium cursor-pointer"
926
+ name: "method",
927
+ value: "code",
928
+ className: "text-links-link-default hover:underline hover:text-link-hover transition-colors text-sm font-medium cursor-pointer",
929
+ children: intl.formatMessage({ id: "identities.messages.1070008" })
787
930
  }
788
931
  )
789
932
  ] }),
790
933
  children,
791
- node.messages.map((message) => /* @__PURE__ */ jsx21(
934
+ node.messages.map((message) => /* @__PURE__ */ jsx22(
792
935
  "span",
793
936
  {
794
937
  className: cn("text-sm leading-normal", {
@@ -797,7 +940,7 @@ function DefaultLabel({
797
940
  "text-forms-fg-success": message.type === "success"
798
941
  }),
799
942
  ...messageTestId2(message),
800
- children: uiTextToFormattedMessage5(message, intl)
943
+ children: uiTextToFormattedMessage6(message, intl)
801
944
  },
802
945
  message.id
803
946
  ))
@@ -807,24 +950,24 @@ function DefaultLabel({
807
950
  // src/theme/default/components/form/link-button.tsx
808
951
  import { getNodeLabel as getNodeLabel5 } from "@ory/client-fetch";
809
952
  import {
810
- uiTextToFormattedMessage as uiTextToFormattedMessage6
953
+ uiTextToFormattedMessage as uiTextToFormattedMessage7
811
954
  } from "@ory/elements-react";
812
955
  import { forwardRef } from "react";
813
- import { useIntl as useIntl9 } from "react-intl";
814
- import { jsx as jsx22 } from "react/jsx-runtime";
956
+ import { useIntl as useIntl10 } from "react-intl";
957
+ import { jsx as jsx23 } from "react/jsx-runtime";
815
958
  var DefaultLinkButton = forwardRef(({ attributes, node }, ref) => {
816
- const intl = useIntl9();
959
+ const intl = useIntl10();
817
960
  const label = getNodeLabel5(node);
818
- return /* @__PURE__ */ jsx22(
961
+ return /* @__PURE__ */ jsx23(
819
962
  "a",
820
963
  {
821
964
  ...attributes,
822
965
  ref,
823
- title: label ? uiTextToFormattedMessage6(label, intl) : "",
966
+ title: label ? uiTextToFormattedMessage7(label, intl) : "",
824
967
  className: cn(
825
968
  "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"
826
969
  ),
827
- children: label ? uiTextToFormattedMessage6(label, intl) : ""
970
+ children: label ? uiTextToFormattedMessage7(label, intl) : ""
828
971
  }
829
972
  );
830
973
  });
@@ -836,8 +979,8 @@ import { useFormContext as useFormContext3 } from "react-hook-form";
836
979
  // src/theme/default/components/form/shadcn/otp-input.tsx
837
980
  import { OTPInput, OTPInputContext } from "input-otp";
838
981
  import * as React7 from "react";
839
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
840
- var InputOTP = React7.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx23(
982
+ import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
983
+ var InputOTP = React7.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx24(
841
984
  OTPInput,
842
985
  {
843
986
  ref,
@@ -850,7 +993,7 @@ var InputOTP = React7.forwardRef(({ className, containerClassName, ...props }, r
850
993
  }
851
994
  ));
852
995
  InputOTP.displayName = "InputOTP";
853
- var InputOTPGroup = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23("div", { ref, className: cn("flex items-center", className), ...props }));
996
+ var InputOTPGroup = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24("div", { ref, className: cn("flex items-center", className), ...props }));
854
997
  InputOTPGroup.displayName = "InputOTPGroup";
855
998
  var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
856
999
  const inputOTPContext = React7.useContext(OTPInputContext);
@@ -867,7 +1010,7 @@ var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
867
1010
  ...props,
868
1011
  children: [
869
1012
  char,
870
- hasFakeCaret && /* @__PURE__ */ jsx23("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx23("div", { className: "h-4 w-px animate-caret-blink bg-branding-bg-default duration-750" }) })
1013
+ hasFakeCaret && /* @__PURE__ */ jsx24("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx24("div", { className: "h-4 w-px animate-caret-blink bg-branding-bg-default duration-750" }) })
871
1014
  ]
872
1015
  }
873
1016
  );
@@ -875,7 +1018,7 @@ var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
875
1018
  InputOTPSlot.displayName = "InputOTPSlot";
876
1019
 
877
1020
  // src/theme/default/components/form/pin-code-input.tsx
878
- import { jsx as jsx24 } from "react/jsx-runtime";
1021
+ import { jsx as jsx25 } from "react/jsx-runtime";
879
1022
  var DefaultPinCodeInput = ({ attributes }) => {
880
1023
  const { setValue, watch } = useFormContext3();
881
1024
  const { maxlength, name } = attributes;
@@ -884,195 +1027,189 @@ var DefaultPinCodeInput = ({ attributes }) => {
884
1027
  setValue(name, v);
885
1028
  };
886
1029
  const value = watch(name);
887
- return /* @__PURE__ */ jsx24(
888
- "div",
1030
+ return /* @__PURE__ */ jsx25(
1031
+ InputOTP,
889
1032
  {
890
- className: `grid grid-flow-col grid-cols-${maxlength} gap-3 auto-cols-fr rtl:space-x-reverse`,
891
- children: /* @__PURE__ */ jsx24(
892
- InputOTP,
1033
+ maxLength: maxlength != null ? maxlength : 6,
1034
+ onChange: handleInputChange,
1035
+ name,
1036
+ value,
1037
+ children: /* @__PURE__ */ jsx25(InputOTPGroup, { className: "w-full space-x-2 justify-between", children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx25(
1038
+ InputOTPSlot,
893
1039
  {
894
- maxLength: maxlength != null ? maxlength : 6,
895
- onChange: handleInputChange,
896
- name,
897
- value,
898
- children: /* @__PURE__ */ jsx24(InputOTPGroup, { className: "w-full space-x-2 justify-between", children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx24(
899
- InputOTPSlot,
900
- {
901
- index,
902
- 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"
903
- },
904
- index
905
- )) })
906
- }
907
- )
1040
+ index,
1041
+ 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"
1042
+ },
1043
+ index
1044
+ )) })
908
1045
  }
909
1046
  );
910
1047
  };
911
1048
 
912
1049
  // src/theme/default/components/form/social.tsx
913
1050
  import {
914
- uiTextToFormattedMessage as uiTextToFormattedMessage7,
915
- useOryFlow as useOryFlow5
1051
+ uiTextToFormattedMessage as uiTextToFormattedMessage8,
1052
+ useOryFlow as useOryFlow8
916
1053
  } from "@ory/elements-react";
917
1054
 
918
1055
  // src/theme/default/provider-logos/apple.svg
919
1056
  import * as React8 from "react";
920
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
1057
+ import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
921
1058
  var SvgApple = (props) => {
922
1059
  var _a, _b;
923
1060
  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: [
924
- /* @__PURE__ */ jsx25("path", { fill: "#283544", d: "M30 16c0 7.728-6.265 14-14 14S2 23.728 2 16C2 8.265 8.265 2 16 2s14 6.265 14 14" }),
925
- /* @__PURE__ */ jsx25("path", { fill: "#fff", d: "M22.562 12.457c-.076.045-1.895.986-1.895 3.07.086 2.38 2.295 3.213 2.333 3.213-.038.045-.334 1.136-1.21 2.28-.694.986-1.466 1.98-2.637 1.98-1.114 0-1.514-.657-2.8-.657-1.381 0-1.772.657-2.829.657-1.171 0-2-1.047-2.733-2.023-.952-1.278-1.761-3.284-1.79-5.21-.02-1.02.19-2.023.724-2.875.752-1.19 2.095-1.997 3.561-2.023 1.124-.036 2.124.719 2.81.719.657 0 1.885-.72 3.275-.72.6.001 2.2.17 3.191 1.59m-6.561-1.792c-.2-.932.352-1.864.866-2.458.657-.72 1.695-1.207 2.59-1.207a3.33 3.33 0 0 1-.952 2.511c-.58.72-1.58 1.26-2.504 1.154" })
1061
+ /* @__PURE__ */ jsx26("path", { fill: "#283544", d: "M30 16c0 7.728-6.265 14-14 14S2 23.728 2 16C2 8.265 8.265 2 16 2s14 6.265 14 14" }),
1062
+ /* @__PURE__ */ jsx26("path", { fill: "#fff", d: "M22.562 12.457c-.076.045-1.895.986-1.895 3.07.086 2.38 2.295 3.213 2.333 3.213-.038.045-.334 1.136-1.21 2.28-.694.986-1.466 1.98-2.637 1.98-1.114 0-1.514-.657-2.8-.657-1.381 0-1.772.657-2.829.657-1.171 0-2-1.047-2.733-2.023-.952-1.278-1.761-3.284-1.79-5.21-.02-1.02.19-2.023.724-2.875.752-1.19 2.095-1.997 3.561-2.023 1.124-.036 2.124.719 2.81.719.657 0 1.885-.72 3.275-.72.6.001 2.2.17 3.191 1.59m-6.561-1.792c-.2-.932.352-1.864.866-2.458.657-.72 1.695-1.207 2.59-1.207a3.33 3.33 0 0 1-.952 2.511c-.58.72-1.58 1.26-2.504 1.154" })
926
1063
  ] });
927
1064
  };
928
1065
  var apple_default = SvgApple;
929
1066
 
930
1067
  // src/theme/default/provider-logos/auth0.svg
931
1068
  import * as React9 from "react";
932
- import { jsx as jsx26 } from "react/jsx-runtime";
1069
+ import { jsx as jsx27 } from "react/jsx-runtime";
933
1070
  var SvgAuth0 = (props) => {
934
1071
  var _a, _b;
935
- return /* @__PURE__ */ jsx26("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__ */ jsx26("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" }) });
1072
+ return /* @__PURE__ */ jsx27("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__ */ jsx27("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" }) });
936
1073
  };
937
1074
  var auth0_default = SvgAuth0;
938
1075
 
939
1076
  // src/theme/default/provider-logos/discord.svg
940
1077
  import * as React10 from "react";
941
- import { jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
1078
+ import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
942
1079
  var SvgDiscord = (props) => {
943
1080
  var _a, _b;
944
1081
  return /* @__PURE__ */ jsxs14("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: [
945
- /* @__PURE__ */ jsx27("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" }),
946
- /* @__PURE__ */ jsx27("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" })
1082
+ /* @__PURE__ */ jsx28("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" }),
1083
+ /* @__PURE__ */ jsx28("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" })
947
1084
  ] });
948
1085
  };
949
1086
  var discord_default = SvgDiscord;
950
1087
 
951
1088
  // src/theme/default/provider-logos/facebook.svg
952
1089
  import * as React11 from "react";
953
- import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
1090
+ import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
954
1091
  var SvgFacebook = (props) => {
955
1092
  var _a, _b;
956
1093
  return /* @__PURE__ */ jsxs15("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: [
957
1094
  /* @__PURE__ */ jsxs15("g", { clipPath: "url(#facebook_svg__a)", children: [
958
- /* @__PURE__ */ jsx28("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" }),
959
- /* @__PURE__ */ jsx28("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" })
1095
+ /* @__PURE__ */ jsx29("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" }),
1096
+ /* @__PURE__ */ jsx29("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" })
960
1097
  ] }),
961
- /* @__PURE__ */ jsx28("defs", { children: /* @__PURE__ */ jsx28("clipPath", { id: "facebook_svg__a", children: /* @__PURE__ */ jsx28("rect", { fill: "#fff" }) }) })
1098
+ /* @__PURE__ */ jsx29("defs", { children: /* @__PURE__ */ jsx29("clipPath", { id: "facebook_svg__a", children: /* @__PURE__ */ jsx29("rect", { fill: "#fff" }) }) })
962
1099
  ] });
963
1100
  };
964
1101
  var facebook_default = SvgFacebook;
965
1102
 
966
1103
  // src/theme/default/provider-logos/generic.svg
967
1104
  import * as React12 from "react";
968
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
1105
+ import { jsx as jsx30, jsxs as jsxs16 } from "react/jsx-runtime";
969
1106
  var SvgGeneric = (props) => {
970
1107
  var _a, _b;
971
1108
  return /* @__PURE__ */ jsxs16("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: [
972
- /* @__PURE__ */ jsx29("path", { stroke: "none", d: "M0 0h24v24H0z" }),
973
- /* @__PURE__ */ jsx29("path", { d: "M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0" }),
974
- /* @__PURE__ */ jsx29("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" })
1109
+ /* @__PURE__ */ jsx30("path", { stroke: "none", d: "M0 0h24v24H0z" }),
1110
+ /* @__PURE__ */ jsx30("path", { d: "M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0" }),
1111
+ /* @__PURE__ */ jsx30("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" })
975
1112
  ] });
976
1113
  };
977
1114
  var generic_default = SvgGeneric;
978
1115
 
979
1116
  // src/theme/default/provider-logos/github.svg
980
1117
  import * as React13 from "react";
981
- import { jsx as jsx30 } from "react/jsx-runtime";
1118
+ import { jsx as jsx31 } from "react/jsx-runtime";
982
1119
  var SvgGithub = (props) => {
983
1120
  var _a, _b;
984
- return /* @__PURE__ */ jsx30("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__ */ jsx30("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" }) });
1121
+ return /* @__PURE__ */ jsx31("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__ */ jsx31("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" }) });
985
1122
  };
986
1123
  var github_default = SvgGithub;
987
1124
 
988
1125
  // src/theme/default/provider-logos/gitlab.svg
989
1126
  import * as React14 from "react";
990
- import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
1127
+ import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
991
1128
  var SvgGitlab = (props) => {
992
1129
  var _a, _b;
993
1130
  return /* @__PURE__ */ jsxs17("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: [
994
- /* @__PURE__ */ jsx31("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" }),
995
- /* @__PURE__ */ jsx31("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" }),
996
- /* @__PURE__ */ jsx31("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" }),
997
- /* @__PURE__ */ jsx31("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" })
1131
+ /* @__PURE__ */ jsx32("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" }),
1132
+ /* @__PURE__ */ jsx32("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" }),
1133
+ /* @__PURE__ */ jsx32("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" }),
1134
+ /* @__PURE__ */ jsx32("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" })
998
1135
  ] });
999
1136
  };
1000
1137
  var gitlab_default = SvgGitlab;
1001
1138
 
1002
1139
  // src/theme/default/provider-logos/google.svg
1003
1140
  import * as React15 from "react";
1004
- import { jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
1141
+ import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
1005
1142
  var SvgGoogle = (props) => {
1006
1143
  var _a, _b;
1007
1144
  return /* @__PURE__ */ jsxs18("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: [
1008
- /* @__PURE__ */ jsx32("path", { fill: "#4285F4", d: "M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82" }),
1009
- /* @__PURE__ */ jsx32("path", { fill: "#34A853", d: "M12.255 24c3.24 0 5.95-1.08 7.93-2.91l-3.86-3c-1.08.72-2.45 1.16-4.07 1.16-3.13 0-5.78-2.11-6.73-4.96h-3.98v3.09C3.515 21.3 7.565 24 12.255 24" }),
1010
- /* @__PURE__ */ jsx32("path", { fill: "#FBBC05", d: "M5.525 14.29c-.25-.72-.38-1.49-.38-2.29s.14-1.57.38-2.29V6.62h-3.98a11.86 11.86 0 0 0 0 10.76z" }),
1011
- /* @__PURE__ */ jsx32("path", { fill: "#EA4335", d: "M12.255 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C18.205 1.19 15.495 0 12.255 0c-4.69 0-8.74 2.7-10.71 6.62l3.98 3.09c.95-2.85 3.6-4.96 6.73-4.96" })
1145
+ /* @__PURE__ */ jsx33("path", { fill: "#4285F4", d: "M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82" }),
1146
+ /* @__PURE__ */ jsx33("path", { fill: "#34A853", d: "M12.255 24c3.24 0 5.95-1.08 7.93-2.91l-3.86-3c-1.08.72-2.45 1.16-4.07 1.16-3.13 0-5.78-2.11-6.73-4.96h-3.98v3.09C3.515 21.3 7.565 24 12.255 24" }),
1147
+ /* @__PURE__ */ jsx33("path", { fill: "#FBBC05", d: "M5.525 14.29c-.25-.72-.38-1.49-.38-2.29s.14-1.57.38-2.29V6.62h-3.98a11.86 11.86 0 0 0 0 10.76z" }),
1148
+ /* @__PURE__ */ jsx33("path", { fill: "#EA4335", d: "M12.255 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C18.205 1.19 15.495 0 12.255 0c-4.69 0-8.74 2.7-10.71 6.62l3.98 3.09c.95-2.85 3.6-4.96 6.73-4.96" })
1012
1149
  ] });
1013
1150
  };
1014
1151
  var google_default = SvgGoogle;
1015
1152
 
1016
1153
  // src/theme/default/provider-logos/linkedin.svg
1017
1154
  import * as React16 from "react";
1018
- import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
1155
+ import { jsx as jsx34, jsxs as jsxs19 } from "react/jsx-runtime";
1019
1156
  var SvgLinkedin = (props) => {
1020
1157
  var _a, _b;
1021
1158
  return /* @__PURE__ */ jsxs19("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: [
1022
- /* @__PURE__ */ jsx33("rect", { x: 2, y: 2, fill: "#1275B1", rx: 14 }),
1023
- /* @__PURE__ */ jsx33("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" })
1159
+ /* @__PURE__ */ jsx34("rect", { x: 2, y: 2, fill: "#1275B1", rx: 14 }),
1160
+ /* @__PURE__ */ jsx34("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" })
1024
1161
  ] });
1025
1162
  };
1026
1163
  var linkedin_default = SvgLinkedin;
1027
1164
 
1028
1165
  // src/theme/default/provider-logos/microsoft.svg
1029
1166
  import * as React17 from "react";
1030
- import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
1167
+ import { jsx as jsx35, jsxs as jsxs20 } from "react/jsx-runtime";
1031
1168
  var SvgMicrosoft = (props) => {
1032
1169
  var _a, _b;
1033
1170
  return /* @__PURE__ */ jsxs20("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: [
1034
- /* @__PURE__ */ jsx34("path", { fill: "#F35325", d: "M1 1h10v10H1z" }),
1035
- /* @__PURE__ */ jsx34("path", { fill: "#81BC06", d: "M12 1h10v10H12z" }),
1036
- /* @__PURE__ */ jsx34("path", { fill: "#05A6F0", d: "M1 12h10v10H1z" }),
1037
- /* @__PURE__ */ jsx34("path", { fill: "#FFBA08", d: "M12 12h10v10H12z" })
1171
+ /* @__PURE__ */ jsx35("path", { fill: "#F35325", d: "M1 1h10v10H1z" }),
1172
+ /* @__PURE__ */ jsx35("path", { fill: "#81BC06", d: "M12 1h10v10H12z" }),
1173
+ /* @__PURE__ */ jsx35("path", { fill: "#05A6F0", d: "M1 12h10v10H1z" }),
1174
+ /* @__PURE__ */ jsx35("path", { fill: "#FFBA08", d: "M12 12h10v10H12z" })
1038
1175
  ] });
1039
1176
  };
1040
1177
  var microsoft_default = SvgMicrosoft;
1041
1178
 
1042
1179
  // src/theme/default/provider-logos/slack.svg
1043
1180
  import * as React18 from "react";
1044
- import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
1181
+ import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
1045
1182
  var SvgSlack = (props) => {
1046
1183
  var _a, _b;
1047
1184
  return /* @__PURE__ */ jsxs21("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: [
1048
- /* @__PURE__ */ jsx35("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" }),
1049
- /* @__PURE__ */ jsx35("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" }),
1050
- /* @__PURE__ */ jsx35("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" }),
1051
- /* @__PURE__ */ jsx35("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" })
1185
+ /* @__PURE__ */ jsx36("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" }),
1186
+ /* @__PURE__ */ jsx36("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" }),
1187
+ /* @__PURE__ */ jsx36("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" }),
1188
+ /* @__PURE__ */ jsx36("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" })
1052
1189
  ] });
1053
1190
  };
1054
1191
  var slack_default = SvgSlack;
1055
1192
 
1056
1193
  // src/theme/default/provider-logos/spotify.svg
1057
1194
  import * as React19 from "react";
1058
- import { jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
1195
+ import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
1059
1196
  var SvgSpotify = (props) => {
1060
1197
  var _a, _b;
1061
1198
  return /* @__PURE__ */ jsxs22("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: [
1062
- /* @__PURE__ */ jsx36("circle", { cx: 16, cy: 16, r: 14, fill: "#1ED760" }),
1063
- /* @__PURE__ */ jsx36("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" })
1199
+ /* @__PURE__ */ jsx37("circle", { cx: 16, cy: 16, r: 14, fill: "#1ED760" }),
1200
+ /* @__PURE__ */ jsx37("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" })
1064
1201
  ] });
1065
1202
  };
1066
1203
  var spotify_default = SvgSpotify;
1067
1204
 
1068
1205
  // src/theme/default/provider-logos/yandex.svg
1069
1206
  import * as React20 from "react";
1070
- import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
1207
+ import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
1071
1208
  var SvgYandex = (props) => {
1072
1209
  var _a, _b;
1073
1210
  return /* @__PURE__ */ jsxs23("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: [
1074
- /* @__PURE__ */ jsx37("circle", { cx: 16, cy: 16, r: 14, fill: "#fff" }),
1075
- /* @__PURE__ */ jsx37("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" })
1211
+ /* @__PURE__ */ jsx38("circle", { cx: 16, cy: 16, r: 14, fill: "#fff" }),
1212
+ /* @__PURE__ */ jsx38("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" })
1076
1213
  ] });
1077
1214
  };
1078
1215
  var yandex_default = SvgYandex;
@@ -1096,8 +1233,8 @@ var logos = {
1096
1233
  var provider_logos_default = logos;
1097
1234
 
1098
1235
  // src/theme/default/components/form/social.tsx
1099
- import { useIntl as useIntl10 } from "react-intl";
1100
- import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
1236
+ import { useIntl as useIntl11 } from "react-intl";
1237
+ import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
1101
1238
  function extractProvider(context) {
1102
1239
  if (context && typeof context === "object" && "provider" in context && typeof context.provider === "string") {
1103
1240
  return context.provider;
@@ -1107,7 +1244,8 @@ function extractProvider(context) {
1107
1244
  function DefaultButtonSocial({
1108
1245
  attributes,
1109
1246
  node,
1110
- onClick
1247
+ onClick,
1248
+ showLabel: _showLabel
1111
1249
  }) {
1112
1250
  var _a, _b, _c;
1113
1251
  const {
@@ -1118,11 +1256,11 @@ function DefaultButtonSocial({
1118
1256
  } = attributes;
1119
1257
  const {
1120
1258
  flow: { ui }
1121
- } = useOryFlow5();
1122
- const intl = useIntl10();
1259
+ } = useOryFlow8();
1260
+ const intl = useIntl11();
1123
1261
  const oidcNodeCount = (_a = ui.nodes.filter((node2) => node2.group === "oidc").length) != null ? _a : 0;
1124
1262
  const Logo = provider_logos_default[attributes.value];
1125
- const showLabel = oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0;
1263
+ const showLabel = _showLabel != null ? _showLabel : oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0;
1126
1264
  const provider = (_c = extractProvider((_b = node.meta.label) == null ? void 0 : _b.context)) != null ? _c : "";
1127
1265
  return /* @__PURE__ */ jsxs24(
1128
1266
  "button",
@@ -1137,14 +1275,14 @@ function DefaultButtonSocial({
1137
1275
  ...props,
1138
1276
  onClick,
1139
1277
  children: [
1140
- /* @__PURE__ */ jsx38("span", { className: "w-5 h-5", children: Logo ? /* @__PURE__ */ jsx38(
1278
+ /* @__PURE__ */ jsx39("span", { className: "w-5 h-5", children: Logo ? /* @__PURE__ */ jsx39(
1141
1279
  Logo,
1142
1280
  {
1143
1281
  size: 20,
1144
1282
  className: "object-fill w-full h-full"
1145
1283
  }
1146
- ) : /* @__PURE__ */ jsx38("span", { className: "rounded-full aspect-square border flex items-center justify-center text-xs", children: provider.slice(0, 2) }) }),
1147
- showLabel && node.meta.label ? /* @__PURE__ */ jsx38("span", { className: "text-sm text-left leading-none font-medium text-forms-fg-default flex-grow", children: uiTextToFormattedMessage7(node.meta.label, intl) }) : null
1284
+ ) : /* @__PURE__ */ jsx39("span", { className: "rounded-full aspect-square border flex items-center justify-center text-xs", children: provider.slice(0, 2) }) }),
1285
+ showLabel && node.meta.label ? /* @__PURE__ */ jsx39("span", { className: "text-sm text-left leading-none font-medium text-forms-fg-default flex-grow", children: uiTextToFormattedMessage8(node.meta.label, intl) }) : null
1148
1286
  ]
1149
1287
  }
1150
1288
  );
@@ -1153,7 +1291,7 @@ function DefaultSocialButtonContainer({
1153
1291
  children,
1154
1292
  nodes
1155
1293
  }) {
1156
- return /* @__PURE__ */ jsx38(
1294
+ return /* @__PURE__ */ jsx39(
1157
1295
  "div",
1158
1296
  {
1159
1297
  className: cn("grid gap-3", {
@@ -1168,29 +1306,29 @@ function DefaultSocialButtonContainer({
1168
1306
  }
1169
1307
 
1170
1308
  // src/theme/default/components/form/text.tsx
1171
- import { uiTextToFormattedMessage as uiTextToFormattedMessage8 } from "@ory/elements-react";
1172
- import { useIntl as useIntl11 } from "react-intl";
1173
- import { Fragment, jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
1309
+ import { uiTextToFormattedMessage as uiTextToFormattedMessage9 } from "@ory/elements-react";
1310
+ import { useIntl as useIntl12 } from "react-intl";
1311
+ import { Fragment as Fragment2, jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
1174
1312
  function DefaultText({ node, attributes }) {
1175
1313
  var _a;
1176
- const intl = useIntl11();
1177
- return /* @__PURE__ */ jsxs25(Fragment, { children: [
1178
- /* @__PURE__ */ jsx39("p", { "data-testid": `node/text/${attributes.id}/label`, children: node.meta.label ? uiTextToFormattedMessage8(node.meta.label, intl) : "" }),
1179
- (_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */ jsx39("pre", { "data-testid": `node/text/lookup_secret_codes/text`, children: /* @__PURE__ */ jsx39("code", { children: text ? uiTextToFormattedMessage8(text, intl) : "" }) }, index))
1314
+ const intl = useIntl12();
1315
+ return /* @__PURE__ */ jsxs25(Fragment2, { children: [
1316
+ /* @__PURE__ */ jsx40("p", { "data-testid": `node/text/${attributes.id}/label`, children: node.meta.label ? uiTextToFormattedMessage9(node.meta.label, intl) : "" }),
1317
+ (_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */ jsx40("pre", { "data-testid": `node/text/lookup_secret_codes/text`, children: /* @__PURE__ */ jsx40("code", { children: text ? uiTextToFormattedMessage9(text, intl) : "" }) }, index))
1180
1318
  ] });
1181
1319
  }
1182
1320
 
1183
1321
  // src/theme/default/assets/icons/arrow-left.svg
1184
1322
  import * as React21 from "react";
1185
- import { jsx as jsx40 } from "react/jsx-runtime";
1323
+ import { jsx as jsx41 } from "react/jsx-runtime";
1186
1324
  var SvgArrowLeft = (props) => {
1187
1325
  var _a, _b;
1188
- return /* @__PURE__ */ jsx40("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 25", 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__ */ jsx40("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M5 12.325h14m-14 0 6 6m-6-6 6-6" }) });
1326
+ return /* @__PURE__ */ jsx41("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 25", 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__ */ jsx41("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M5 12.325h14m-14 0 6 6m-6-6 6-6" }) });
1189
1327
  };
1190
1328
  var arrow_left_default = SvgArrowLeft;
1191
1329
 
1192
1330
  // src/theme/default/components/card/current-identifier-button.tsx
1193
- import { jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
1331
+ import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
1194
1332
  function DefaultCurrentIdentifierButton({
1195
1333
  attributes,
1196
1334
  onClick,
@@ -1198,7 +1336,7 @@ function DefaultCurrentIdentifierButton({
1198
1336
  href
1199
1337
  }) {
1200
1338
  const Element = onClick ? "button" : "a";
1201
- return /* @__PURE__ */ jsx41("div", { children: /* @__PURE__ */ jsxs26(
1339
+ return /* @__PURE__ */ jsx42("div", { children: /* @__PURE__ */ jsxs26(
1202
1340
  Element,
1203
1341
  {
1204
1342
  className: "cursor-pointer py-1.5 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",
@@ -1207,187 +1345,823 @@ function DefaultCurrentIdentifierButton({
1207
1345
  href,
1208
1346
  type,
1209
1347
  children: [
1210
- /* @__PURE__ */ jsx41(arrow_left_default, { size: 16, className: "text-button-identifier-fg-subtle" }),
1211
- /* @__PURE__ */ jsx41("span", { className: "text-sm font-medium leading-none text-button-identifier-fg-default", children: attributes.value })
1348
+ /* @__PURE__ */ jsx42(arrow_left_default, { size: 16, className: "text-button-identifier-fg-subtle" }),
1349
+ /* @__PURE__ */ jsx42("span", { className: "text-sm font-medium leading-none text-button-identifier-fg-default", children: attributes.value })
1212
1350
  ]
1213
1351
  }
1214
1352
  ) });
1215
1353
  }
1216
1354
 
1217
- // src/theme/default/components/default-components.tsx
1218
- var OryDefaultComponents = {
1219
- Card: {
1220
- Root: DefaultCard,
1221
- Footer: DefaultCardFooter,
1222
- Header: DefaultCardHeader,
1223
- Content: DefaultCardContent,
1224
- Logo: DefaultCardLogo,
1225
- Divider: DefaultHorizontalDivider,
1226
- AuthMethodListItem: DefaultAuthMethodListItem
1227
- },
1228
- Node: {
1229
- Button: DefaultButton,
1230
- OidcButton: DefaultButtonSocial,
1231
- CurrentIdentifierButton: DefaultCurrentIdentifierButton,
1232
- Input: DefaultInput,
1233
- CodeInput: DefaultPinCodeInput,
1234
- Image: DefaultImage,
1235
- Label: DefaultLabel,
1236
- Checkbox: DefaultCheckbox,
1237
- Text: DefaultText,
1238
- Anchor: DefaultLinkButton
1239
- },
1240
- Form: {
1241
- Root: DefaultFormContainer,
1242
- Group: DefaultGroupContainer,
1243
- OidcRoot: DefaultSocialButtonContainer
1244
- },
1245
- Message: {
1246
- Root: DefaultMessageContainer,
1247
- Content: DefaultMessage
1355
+ // src/theme/default/components/form/section.tsx
1356
+ import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
1357
+ var DefaultFormSection = ({ children }) => {
1358
+ return /* @__PURE__ */ jsx43("div", { className: "flex flex-col w-80 md:w-[712px] lg:w-[802px] xl:w-[896px]", children });
1359
+ };
1360
+ var DefaultFormSectionContent = ({
1361
+ title,
1362
+ description,
1363
+ children
1364
+ }) => {
1365
+ return /* @__PURE__ */ jsxs27("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: [
1366
+ /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-2", children: [
1367
+ /* @__PURE__ */ jsx43("h3", { className: "font-medium text-dialog-fg-default", children: title }),
1368
+ /* @__PURE__ */ jsx43("span", { className: "text-sm text-dialog-fg-subtle", children: description })
1369
+ ] }),
1370
+ children
1371
+ ] });
1372
+ };
1373
+ var DefaultFormSectionFooter = ({ children }) => {
1374
+ return /* @__PURE__ */ jsx43("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 });
1375
+ };
1376
+
1377
+ // src/theme/default/assets/icons/download.svg
1378
+ import * as React22 from "react";
1379
+ import { jsx as jsx44 } from "react/jsx-runtime";
1380
+ var SvgDownload = (props) => {
1381
+ var _a, _b;
1382
+ return /* @__PURE__ */ jsx44("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__ */ jsx44("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" }) });
1383
+ };
1384
+ var download_default = SvgDownload;
1385
+
1386
+ // src/theme/default/assets/icons/eye.svg
1387
+ import * as React23 from "react";
1388
+ import { jsx as jsx45, jsxs as jsxs28 } from "react/jsx-runtime";
1389
+ var SvgEye = (props) => {
1390
+ var _a, _b;
1391
+ return /* @__PURE__ */ jsx45("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__ */ jsxs28("g", { strokeLinecap: "round", strokeLinejoin: "round", children: [
1392
+ /* @__PURE__ */ jsx45("path", { stroke: "currentColor", d: "M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0" }),
1393
+ /* @__PURE__ */ jsx45("path", { stroke: "#64748B", d: "M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6" })
1394
+ ] }) });
1395
+ };
1396
+ var eye_default = SvgEye;
1397
+
1398
+ // src/theme/default/assets/icons/refresh.svg
1399
+ import * as React24 from "react";
1400
+ import { jsx as jsx46 } from "react/jsx-runtime";
1401
+ var SvgRefresh = (props) => {
1402
+ var _a, _b;
1403
+ return /* @__PURE__ */ jsx46("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__ */ jsx46("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" }) });
1404
+ };
1405
+ var refresh_default = SvgRefresh;
1406
+
1407
+ // src/theme/default/components/settings/settings-recovery-codes.tsx
1408
+ import { jsx as jsx47, jsxs as jsxs29 } from "react/jsx-runtime";
1409
+ function DefaultSettingsRecoveryCodes({
1410
+ codes,
1411
+ regnerateButton,
1412
+ revealButton
1413
+ }) {
1414
+ const onDownload = () => {
1415
+ const element = document.createElement("a");
1416
+ const file = new Blob([codes.join("\n")], {
1417
+ type: "text/plain"
1418
+ });
1419
+ element.href = URL.createObjectURL(file);
1420
+ element.download = "recovery-codes.txt";
1421
+ document.body.appendChild(element);
1422
+ element.click();
1423
+ };
1424
+ const hasCodes = codes.length >= 1;
1425
+ return /* @__PURE__ */ jsxs29("div", { className: "flex flex-col gap-8", children: [
1426
+ /* @__PURE__ */ jsx47(DefaultHorizontalDivider, {}),
1427
+ /* @__PURE__ */ jsxs29("div", { className: "flex justify-end gap-4", children: [
1428
+ regnerateButton && /* @__PURE__ */ jsx47(
1429
+ "button",
1430
+ {
1431
+ ...regnerateButton.attributes,
1432
+ type: "submit",
1433
+ children: /* @__PURE__ */ jsx47(
1434
+ refresh_default,
1435
+ {
1436
+ size: 24,
1437
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1438
+ }
1439
+ )
1440
+ }
1441
+ ),
1442
+ revealButton && /* @__PURE__ */ jsx47(
1443
+ "button",
1444
+ {
1445
+ ...revealButton.attributes,
1446
+ type: "submit",
1447
+ children: /* @__PURE__ */ jsx47(
1448
+ eye_default,
1449
+ {
1450
+ size: 24,
1451
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1452
+ }
1453
+ )
1454
+ }
1455
+ ),
1456
+ hasCodes ? /* @__PURE__ */ jsx47(
1457
+ download_default,
1458
+ {
1459
+ size: 24,
1460
+ onClick: onDownload,
1461
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover"
1462
+ }
1463
+ ) : null
1464
+ ] }),
1465
+ hasCodes ? /* @__PURE__ */ jsx47("div", { className: "rounded-border-radius-cards bg-bg-default ring-1 ring-dialog-border-default p-6", children: /* @__PURE__ */ jsx47("div", { className: "grid grid-cols-6 gap-4 flex-wrap text-dialog-fg-default text-sm", children: codes.map((code) => /* @__PURE__ */ jsx47("p", { children: code }, code)) }) }) : null
1466
+ ] });
1467
+ }
1468
+
1469
+ // src/theme/default/assets/icons/qrcode.svg
1470
+ import * as React25 from "react";
1471
+ import { jsx as jsx48 } from "react/jsx-runtime";
1472
+ var SvgQrcode = (props) => {
1473
+ var _a, _b;
1474
+ return /* @__PURE__ */ jsx48("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__ */ jsx48("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" }) });
1475
+ };
1476
+ var qrcode_default = SvgQrcode;
1477
+
1478
+ // src/theme/default/assets/icons/trash.svg
1479
+ import * as React26 from "react";
1480
+ import { jsx as jsx49 } from "react/jsx-runtime";
1481
+ var SvgTrash = (props) => {
1482
+ var _a, _b;
1483
+ return /* @__PURE__ */ jsx49("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__ */ jsx49("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" }) });
1484
+ };
1485
+ var trash_default = SvgTrash;
1486
+
1487
+ // src/theme/default/components/settings/settings-top.tsx
1488
+ import { jsx as jsx50, jsxs as jsxs30 } from "react/jsx-runtime";
1489
+ function DefaultSettingsTotp(props) {
1490
+ var _a;
1491
+ if ("totpUnlink" in props && props.totpUnlink) {
1492
+ const {
1493
+ type,
1494
+ autocomplete: _ignoredAutocomplete,
1495
+ label: _ignoredLabel,
1496
+ node_type: _ignoredNodeType,
1497
+ ...buttonAttrs
1498
+ } = (_a = props.totpUnlink) == null ? void 0 : _a.attributes;
1499
+ return /* @__PURE__ */ jsxs30("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
1500
+ /* @__PURE__ */ jsx50("div", { className: "col-span-full", children: /* @__PURE__ */ jsx50(DefaultHorizontalDivider, {}) }),
1501
+ /* @__PURE__ */ jsxs30("div", { className: "flex gap-6 items-center col-span-full", children: [
1502
+ /* @__PURE__ */ jsx50("div", { className: "size-8 aspect-square ", children: /* @__PURE__ */ jsx50(qrcode_default, { size: 32 }) }),
1503
+ /* @__PURE__ */ jsx50("div", { className: "flex flex-col mr-auto", children: /* @__PURE__ */ jsx50("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: "Authenticator app" }) }),
1504
+ /* @__PURE__ */ jsx50(
1505
+ "button",
1506
+ {
1507
+ type: type === "button" ? "button" : "submit",
1508
+ ...buttonAttrs,
1509
+ children: /* @__PURE__ */ jsx50(
1510
+ trash_default,
1511
+ {
1512
+ size: 24,
1513
+ className: "text-links-link-mute-default hover:text-links-link-mute-hover"
1514
+ }
1515
+ )
1516
+ }
1517
+ )
1518
+ ] })
1519
+ ] });
1520
+ }
1521
+ if ("totpSecret" in props) {
1522
+ return /* @__PURE__ */ jsxs30("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
1523
+ /* @__PURE__ */ jsx50("div", { className: "col-span-full", children: /* @__PURE__ */ jsx50(DefaultHorizontalDivider, {}) }),
1524
+ /* @__PURE__ */ jsx50("div", { className: "bg-dialog-bg-subtle p-8 rounded-xl flex justify-center", children: /* @__PURE__ */ jsx50("div", { className: "h-44 aspect-square bg-[white] rounded", children: /* @__PURE__ */ jsx50("div", { className: "mix-blend-multiply -m-3 antialiased", children: /* @__PURE__ */ jsx50(
1525
+ DefaultImage,
1526
+ {
1527
+ node: props.totpImage,
1528
+ attributes: {
1529
+ ...props.totpImage.attributes
1530
+ }
1531
+ }
1532
+ ) }) }) }),
1533
+ /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-6", children: [
1534
+ /* @__PURE__ */ jsx50(
1535
+ DefaultLabel,
1536
+ {
1537
+ node: props.totpSecret,
1538
+ attributes: props.totpSecret.attributes,
1539
+ children: /* @__PURE__ */ jsx50(
1540
+ DefaultInput,
1541
+ {
1542
+ node: props.totpSecret,
1543
+ attributes: {
1544
+ disabled: true,
1545
+ name: "totp_secret_key",
1546
+ node_type: "input",
1547
+ type: "text",
1548
+ value: props.totpSecret.attributes.text.text
1549
+ }
1550
+ }
1551
+ )
1552
+ }
1553
+ ),
1554
+ /* @__PURE__ */ jsx50(
1555
+ DefaultLabel,
1556
+ {
1557
+ attributes: props.totpInput.attributes,
1558
+ node: props.totpInput,
1559
+ children: /* @__PURE__ */ jsx50(
1560
+ DefaultInput,
1561
+ {
1562
+ node: props.totpInput,
1563
+ attributes: props.totpInput.attributes
1564
+ }
1565
+ )
1566
+ }
1567
+ )
1568
+ ] })
1569
+ ] });
1248
1570
  }
1571
+ }
1572
+
1573
+ // src/theme/default/components/settings/settings-oidc.tsx
1574
+ import { useFormContext as useFormContext4 } from "react-hook-form";
1575
+ import { jsx as jsx51, jsxs as jsxs31 } from "react/jsx-runtime";
1576
+ function DefaultSettingsOidc({
1577
+ linkButtons,
1578
+ unlinkButtons
1579
+ }) {
1580
+ const hasLinkButtons = linkButtons.length > 0;
1581
+ const hasUnlinkButtons = unlinkButtons.length > 0;
1582
+ const { setValue } = useFormContext4();
1583
+ return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-8", children: [
1584
+ hasLinkButtons && /* @__PURE__ */ jsx51("div", { className: "flex gap-3 items-start [&>button]:w-[79px]", children: linkButtons.map((button) => {
1585
+ const attrs = button.attributes;
1586
+ return /* @__PURE__ */ jsx51(
1587
+ DefaultButtonSocial,
1588
+ {
1589
+ showLabel: false,
1590
+ node: button,
1591
+ attributes: attrs,
1592
+ onClick: () => {
1593
+ setValue("link", attrs.value);
1594
+ setValue("method", "oidc");
1595
+ }
1596
+ },
1597
+ attrs.value
1598
+ );
1599
+ }) }),
1600
+ hasUnlinkButtons && hasLinkButtons ? /* @__PURE__ */ jsx51(DefaultHorizontalDivider, {}) : null,
1601
+ unlinkButtons.map((button) => {
1602
+ var _a, _b;
1603
+ const attrs = button.attributes;
1604
+ const provider = (_b = extractProvider((_a = button.meta.label) == null ? void 0 : _a.context)) != null ? _b : "";
1605
+ const Logo = attrs.value in provider_logos_default ? provider_logos_default[attrs.value] : provider_logos_default.generic;
1606
+ return /* @__PURE__ */ jsxs31("div", { className: "flex justify-between", children: [
1607
+ /* @__PURE__ */ jsxs31("div", { className: "flex gap-6 items-center", children: [
1608
+ /* @__PURE__ */ jsx51(Logo, { size: 32 }),
1609
+ /* @__PURE__ */ jsx51("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: provider })
1610
+ ] }),
1611
+ /* @__PURE__ */ jsx51(
1612
+ "button",
1613
+ {
1614
+ ...attrs,
1615
+ type: "submit",
1616
+ onClick: () => {
1617
+ setValue("unlink", attrs.value);
1618
+ setValue("method", "oidc");
1619
+ },
1620
+ children: /* @__PURE__ */ jsx51(trash_default, { className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover" })
1621
+ }
1622
+ )
1623
+ ] }, attrs.value);
1624
+ })
1625
+ ] });
1626
+ }
1627
+
1628
+ // src/theme/default/assets/icons/key.svg
1629
+ import * as React27 from "react";
1630
+ import { jsx as jsx52 } from "react/jsx-runtime";
1631
+ var SvgKey = (props) => {
1632
+ var _a, _b;
1633
+ return /* @__PURE__ */ jsx52("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__ */ jsx52("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" }) });
1249
1634
  };
1635
+ var key_default = SvgKey;
1636
+
1637
+ // src/theme/default/components/settings/settings-webauthn.tsx
1638
+ import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
1639
+ function DefaultSettingsWebauthn({
1640
+ nameInput,
1641
+ triggerButton,
1642
+ removeButtons
1643
+ }) {
1644
+ const hasRemoveButtons = removeButtons.length > 0;
1645
+ return /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-8", children: [
1646
+ /* @__PURE__ */ jsxs32("div", { className: "flex gap-3 items-end max-w-[60%]", children: [
1647
+ /* @__PURE__ */ jsx53("div", { className: "flex-1", children: /* @__PURE__ */ jsx53(
1648
+ DefaultLabel,
1649
+ {
1650
+ node: nameInput,
1651
+ attributes: nameInput.attributes,
1652
+ children: /* @__PURE__ */ jsx53(
1653
+ DefaultInput,
1654
+ {
1655
+ node: nameInput,
1656
+ attributes: nameInput.attributes
1657
+ }
1658
+ )
1659
+ }
1660
+ ) }),
1661
+ triggerButton ? /* @__PURE__ */ jsx53(
1662
+ DefaultButton,
1663
+ {
1664
+ node: triggerButton,
1665
+ attributes: triggerButton.attributes,
1666
+ onClick: triggerButton.onClick
1667
+ }
1668
+ ) : null
1669
+ ] }),
1670
+ hasRemoveButtons ? /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-8", children: [
1671
+ /* @__PURE__ */ jsx53(DefaultHorizontalDivider, {}),
1672
+ /* @__PURE__ */ jsx53("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1673
+ var _a, _b;
1674
+ const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
1675
+ const addedAt = "added_at" in context ? context.added_at : null;
1676
+ const diaplyName = "display_name" in context ? context.display_name : null;
1677
+ const keyId = "value" in node.attributes ? node.attributes.value : null;
1678
+ return /* @__PURE__ */ jsxs32(
1679
+ "div",
1680
+ {
1681
+ className: "flex justify-between gap-6",
1682
+ children: [
1683
+ /* @__PURE__ */ jsx53(key_default, { size: 32, className: "text-dialog-fg-default" }),
1684
+ /* @__PURE__ */ jsxs32("div", { className: "flex-1 flex-col", children: [
1685
+ /* @__PURE__ */ jsx53("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
1686
+ /* @__PURE__ */ jsx53("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
1687
+ ] }),
1688
+ addedAt && /* @__PURE__ */ jsx53("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
1689
+ /* @__PURE__ */ jsx53(
1690
+ "button",
1691
+ {
1692
+ ...node.attributes,
1693
+ type: "submit",
1694
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
1695
+ children: /* @__PURE__ */ jsx53(trash_default, { size: 20 })
1696
+ }
1697
+ )
1698
+ ]
1699
+ },
1700
+ `webauthn-remove-button-${i}`
1701
+ );
1702
+ }) })
1703
+ ] }) : null
1704
+ ] });
1705
+ }
1706
+
1707
+ // src/theme/default/components/settings/settings-passkey.tsx
1708
+ import { jsx as jsx54, jsxs as jsxs33 } from "react/jsx-runtime";
1709
+ function DefaultSettingsPasskey({
1710
+ triggerButton,
1711
+ removeButtons
1712
+ }) {
1713
+ const hasRemoveButtons = removeButtons.length > 0;
1714
+ return /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-8", children: [
1715
+ /* @__PURE__ */ jsx54("div", { className: "flex gap-3 items-end max-w-[60%]", children: triggerButton ? /* @__PURE__ */ jsx54(
1716
+ DefaultButton,
1717
+ {
1718
+ node: triggerButton,
1719
+ attributes: triggerButton.attributes,
1720
+ onClick: triggerButton.onClick
1721
+ }
1722
+ ) : null }),
1723
+ hasRemoveButtons ? /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-8", children: [
1724
+ /* @__PURE__ */ jsx54(DefaultHorizontalDivider, {}),
1725
+ /* @__PURE__ */ jsx54("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1726
+ var _a, _b;
1727
+ const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
1728
+ const addedAt = "added_at" in context ? context.added_at : null;
1729
+ const diaplyName = "display_name" in context ? context.display_name : null;
1730
+ const keyId = "value" in node.attributes ? node.attributes.value : null;
1731
+ return /* @__PURE__ */ jsxs33(
1732
+ "div",
1733
+ {
1734
+ className: "flex justify-between gap-6",
1735
+ children: [
1736
+ /* @__PURE__ */ jsx54(passkey_default, { size: 32, className: "text-dialog-fg-default" }),
1737
+ /* @__PURE__ */ jsxs33("div", { className: "flex-1 flex-col", children: [
1738
+ /* @__PURE__ */ jsx54("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
1739
+ /* @__PURE__ */ jsx54("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
1740
+ ] }),
1741
+ addedAt && /* @__PURE__ */ jsx54("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
1742
+ /* @__PURE__ */ jsx54(
1743
+ "button",
1744
+ {
1745
+ ...node.attributes,
1746
+ type: "submit",
1747
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
1748
+ children: /* @__PURE__ */ jsx54(trash_default, { size: 20 })
1749
+ }
1750
+ )
1751
+ ]
1752
+ },
1753
+ `webauthn-remove-button-${i}`
1754
+ );
1755
+ }) })
1756
+ ] }) : null
1757
+ ] });
1758
+ }
1759
+
1760
+ // src/theme/default/components/generic/page-header.tsx
1761
+ import { useComponents as useComponents2 } from "@ory/elements-react";
1762
+
1763
+ // src/theme/default/components/ui/user-menu.tsx
1764
+ import { DropdownMenuLabel as DropdownMenuLabel2 } from "@radix-ui/react-dropdown-menu";
1765
+ import { useCallback, useEffect, useState as useState2 } from "react";
1766
+ import { useOryFlow as useOryFlow9 } from "@ory/elements-react";
1767
+
1768
+ // src/util/client.ts
1769
+ import {
1770
+ Configuration,
1771
+ FrontendApi
1772
+ } from "@ory/client-fetch";
1773
+ function frontendClient(sdkUrl, opts = {}) {
1774
+ const config = new Configuration({
1775
+ ...opts,
1776
+ basePath: sdkUrl,
1777
+ headers: {
1778
+ Accept: "application/json",
1779
+ ...opts.headers
1780
+ }
1781
+ });
1782
+ return new FrontendApi(config);
1783
+ }
1784
+
1785
+ // src/theme/default/assets/icons/logout.svg
1786
+ import * as React28 from "react";
1787
+ import { jsx as jsx55 } from "react/jsx-runtime";
1788
+ var SvgLogout = (props) => {
1789
+ var _a, _b;
1790
+ return /* @__PURE__ */ jsx55("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__ */ jsx55("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" }) });
1791
+ };
1792
+ var logout_default = SvgLogout;
1793
+
1794
+ // src/theme/default/assets/icons/settings.svg
1795
+ import * as React29 from "react";
1796
+ import { jsx as jsx56, jsxs as jsxs34 } from "react/jsx-runtime";
1797
+ var SvgSettings = (props) => {
1798
+ var _a, _b;
1799
+ return /* @__PURE__ */ jsx56("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__ */ jsxs34("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", children: [
1800
+ /* @__PURE__ */ jsx56("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" }),
1801
+ /* @__PURE__ */ jsx56("path", { d: "M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0" })
1802
+ ] }) });
1803
+ };
1804
+ var settings_default = SvgSettings;
1805
+
1806
+ // src/theme/default/utils/user.ts
1807
+ var getUserInitials = (session) => {
1808
+ var _a, _b;
1809
+ const avatar = "";
1810
+ let primary = "";
1811
+ let secondary = "";
1812
+ if (!((_a = session == null ? void 0 : session.identity) == null ? void 0 : _a.traits)) {
1813
+ return {
1814
+ primary,
1815
+ secondary,
1816
+ avatar
1817
+ };
1818
+ }
1819
+ const traits = (_b = session.identity) == null ? void 0 : _b.traits;
1820
+ if (traits.email) {
1821
+ secondary = traits.email;
1822
+ }
1823
+ if (traits.name) {
1824
+ if (typeof traits.name === "string") {
1825
+ primary = traits.name;
1826
+ }
1827
+ if (traits.name.first && traits.name.last) {
1828
+ primary = traits.name.first + " " + traits.name.last;
1829
+ }
1830
+ }
1831
+ if (primary === "") {
1832
+ primary = secondary;
1833
+ secondary = "";
1834
+ }
1835
+ return {
1836
+ primary,
1837
+ secondary,
1838
+ avatar
1839
+ };
1840
+ };
1841
+
1842
+ // src/theme/default/components/ui/dropdown-menu.tsx
1843
+ import { forwardRef as forwardRef3 } from "react";
1844
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1845
+ import { jsx as jsx57 } from "react/jsx-runtime";
1846
+ var DropdownMenu = DropdownMenuPrimitive.Root;
1847
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1848
+ var DropdownMenuContent = forwardRef3(({ className, sideOffset = 16, ...props }, ref) => /* @__PURE__ */ jsx57(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx57(
1849
+ DropdownMenuPrimitive.Content,
1850
+ {
1851
+ ref,
1852
+ sideOffset,
1853
+ align: "end",
1854
+ className: cn(
1855
+ "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",
1856
+ "border border-dialog-border-default bg-dialog-bg-default rounded-border-radius-cards",
1857
+ className
1858
+ ),
1859
+ ...props
1860
+ }
1861
+ ) }));
1862
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1863
+ var DropdownMenuItem = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx57(
1864
+ DropdownMenuPrimitive.Item,
1865
+ {
1866
+ ref,
1867
+ className: cn(
1868
+ "relative flex cursor-pointer select-none items-center outline-none transition-colors data-[disabled]:pointer-events-none",
1869
+ "px-8 py-3 lg:py-4.5 text-sm gap-6",
1870
+ "first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover data-[disabled]:border-button-secondary-border-disabled",
1871
+ "text-button-secondary-fg-default bg-button-secondary-bg-default",
1872
+ "hover:text-button-secondary-fg-hover hover:bg-button-secondary-bg-hover",
1873
+ "data-[disabled]:text-button-secondary-fg-disabled data-[disabled]:bg-button-secondary-bg-disabled",
1874
+ inset && "pl-8",
1875
+ className
1876
+ ),
1877
+ ...props
1878
+ }
1879
+ ));
1880
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1881
+ var DropdownMenuLabel = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx57(
1882
+ DropdownMenuPrimitive.Label,
1883
+ {
1884
+ ref,
1885
+ className: cn(
1886
+ "px-2 py-1.5 text-sm font-semibold",
1887
+ inset && "pl-8",
1888
+ className
1889
+ ),
1890
+ ...props
1891
+ }
1892
+ ));
1893
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1894
+
1895
+ // src/theme/default/components/ui/user-avater.tsx
1896
+ import { forwardRef as forwardRef4 } from "react";
1897
+
1898
+ // src/theme/default/assets/icons/user.svg
1899
+ import * as React30 from "react";
1900
+ import { jsx as jsx58 } from "react/jsx-runtime";
1901
+ var SvgUser = (props) => {
1902
+ var _a, _b;
1903
+ return /* @__PURE__ */ jsx58("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__ */ jsx58("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" }) });
1904
+ };
1905
+ var user_default = SvgUser;
1906
+
1907
+ // src/theme/default/components/ui/user-avater.tsx
1908
+ import { jsx as jsx59 } from "react/jsx-runtime";
1909
+ var UserAvatar = forwardRef4(
1910
+ ({ initials, ...rest }, ref) => {
1911
+ return /* @__PURE__ */ jsx59(
1912
+ "button",
1913
+ {
1914
+ ref,
1915
+ 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",
1916
+ ...rest,
1917
+ children: /* @__PURE__ */ jsx59("div", { className: "relative size-full flex items-center justify-center", children: initials.avatar ? /* @__PURE__ */ jsx59(
1918
+ "img",
1919
+ {
1920
+ src: initials.avatar,
1921
+ alt: initials.primary,
1922
+ className: "w-full object-contain"
1923
+ }
1924
+ ) : /* @__PURE__ */ jsx59(user_default, { size: 24, className: "text-button-primary-fg-default" }) })
1925
+ }
1926
+ );
1927
+ }
1928
+ );
1929
+ UserAvatar.displayName = "UserAvatar";
1930
+
1931
+ // src/theme/default/components/ui/user-menu.tsx
1932
+ import { jsx as jsx60, jsxs as jsxs35 } from "react/jsx-runtime";
1933
+ var UserMenu = ({ session }) => {
1934
+ const { config } = useOryFlow9();
1935
+ const initials = getUserInitials(session);
1936
+ const [logoutFlow, setLogoutFlow] = useState2();
1937
+ const fetchLogoutFlow = useCallback(async () => {
1938
+ const flow = await frontendClient(config.sdk.url).createBrowserLogoutFlow();
1939
+ setLogoutFlow(flow);
1940
+ }, [config.sdk.url]);
1941
+ useEffect(() => {
1942
+ void fetchLogoutFlow();
1943
+ }, [fetchLogoutFlow]);
1944
+ return /* @__PURE__ */ jsxs35(DropdownMenu, { children: [
1945
+ /* @__PURE__ */ jsx60(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx60(UserAvatar, { initials }) }),
1946
+ /* @__PURE__ */ jsxs35(DropdownMenuContent, { children: [
1947
+ /* @__PURE__ */ jsxs35(DropdownMenuLabel2, { className: "px-5 py-4.5 flex gap-3", children: [
1948
+ /* @__PURE__ */ jsx60(UserAvatar, { disabled: true, initials }),
1949
+ /* @__PURE__ */ jsxs35("div", { className: "flex flex-col text-sm leading-tight justify-center", children: [
1950
+ /* @__PURE__ */ jsx60("div", { className: "text-dialog-fg-default", children: initials.primary }),
1951
+ initials.secondary && /* @__PURE__ */ jsx60("div", { className: "text-dialog-fg-mute", children: initials.secondary })
1952
+ ] })
1953
+ ] }),
1954
+ /* @__PURE__ */ jsx60(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs35("a", { href: "/settings", children: [
1955
+ /* @__PURE__ */ jsx60(settings_default, { size: 16 }),
1956
+ " User settings"
1957
+ ] }) }),
1958
+ /* @__PURE__ */ jsx60(DropdownMenuItem, { asChild: true, disabled: !(logoutFlow == null ? void 0 : logoutFlow.logout_url), children: /* @__PURE__ */ jsxs35("a", { href: logoutFlow == null ? void 0 : logoutFlow.logout_url, children: [
1959
+ /* @__PURE__ */ jsx60(logout_default, { size: 16 }),
1960
+ " Logout"
1961
+ ] }) })
1962
+ ] })
1963
+ ] });
1964
+ };
1965
+
1966
+ // src/theme/default/components/generic/page-header.tsx
1967
+ import { useSession } from "@ory/elements-react/client";
1968
+ import { jsx as jsx61, jsxs as jsxs36 } from "react/jsx-runtime";
1969
+ var DefaultPageHeader = (_props) => {
1970
+ const { Card } = useComponents2();
1971
+ const { session } = useSession();
1972
+ return /* @__PURE__ */ jsx61("div", { className: "flex max-w-[896px] flex-col w-full gap-3 mt-16", children: /* @__PURE__ */ jsx61("div", { className: "flex flex-col gap-12", children: /* @__PURE__ */ jsxs36("div", { className: "flex gap-2 max-h-10 justify-between flex-1", children: [
1973
+ /* @__PURE__ */ jsx61("div", { className: "h-10 flex-1 relative", children: /* @__PURE__ */ jsx61(Card.Logo, {}) }),
1974
+ /* @__PURE__ */ jsx61(UserMenu, { session })
1975
+ ] }) }) });
1976
+ };
1977
+
1978
+ // src/theme/default/components/default-components.tsx
1979
+ function getOryComponents(overrides) {
1980
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha;
1981
+ return {
1982
+ Card: {
1983
+ Root: (_b = (_a = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _a.Root) != null ? _b : DefaultCard,
1984
+ Footer: (_d = (_c = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _c.Footer) != null ? _d : DefaultCardFooter,
1985
+ Header: (_f = (_e = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _e.Header) != null ? _f : DefaultCardHeader,
1986
+ Content: (_h = (_g = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _g.Content) != null ? _h : DefaultCardContent,
1987
+ Logo: (_j = (_i = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _i.Logo) != null ? _j : DefaultCardLogo,
1988
+ Divider: (_l = (_k = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _k.Divider) != null ? _l : DefaultHorizontalDivider,
1989
+ AuthMethodListItem: (_n = (_m = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _m.AuthMethodListItem) != null ? _n : DefaultAuthMethodListItem,
1990
+ SettingsSection: (_p = (_o = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _o.SettingsSection) != null ? _p : DefaultFormSection,
1991
+ SettingsSectionContent: (_r = (_q = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _q.SettingsSectionContent) != null ? _r : DefaultFormSectionContent,
1992
+ SettingsSectionFooter: (_t = (_s = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _s.SettingsSectionFooter) != null ? _t : DefaultFormSectionFooter
1993
+ },
1994
+ Node: {
1995
+ Button: (_v = (_u = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _u.Button) != null ? _v : DefaultButton,
1996
+ OidcButton: (_x = (_w = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _w.OidcButton) != null ? _x : DefaultButtonSocial,
1997
+ CurrentIdentifierButton: (_z = (_y = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _y.CurrentIdentifierButton) != null ? _z : DefaultCurrentIdentifierButton,
1998
+ Input: (_B = (_A = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _A.Input) != null ? _B : DefaultInput,
1999
+ CodeInput: (_D = (_C = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _C.CodeInput) != null ? _D : DefaultPinCodeInput,
2000
+ Image: (_F = (_E = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _E.Image) != null ? _F : DefaultImage,
2001
+ Label: (_H = (_G = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _G.Label) != null ? _H : DefaultLabel,
2002
+ Checkbox: (_J = (_I = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _I.Checkbox) != null ? _J : DefaultCheckbox,
2003
+ Text: (_L = (_K = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _K.Text) != null ? _L : DefaultText,
2004
+ Anchor: (_N = (_M = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _M.Anchor) != null ? _N : DefaultLinkButton
2005
+ },
2006
+ Form: {
2007
+ Root: (_P = (_O = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _O.Root) != null ? _P : DefaultFormContainer,
2008
+ Group: (_R = (_Q = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _Q.Group) != null ? _R : DefaultGroupContainer,
2009
+ OidcRoot: (_T = (_S = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _S.OidcRoot) != null ? _T : DefaultSocialButtonContainer,
2010
+ RecoveryCodesSettings: (_V = (_U = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _U.RecoveryCodesSettings) != null ? _V : DefaultSettingsRecoveryCodes,
2011
+ TotpSettings: (_X = (_W = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _W.TotpSettings) != null ? _X : DefaultSettingsTotp,
2012
+ OidcSettings: (_Z = (_Y = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _Y.OidcSettings) != null ? _Z : DefaultSettingsOidc,
2013
+ WebauthnSettings: (_$ = (__ = overrides == null ? void 0 : overrides.Form) == null ? void 0 : __.WebauthnSettings) != null ? _$ : DefaultSettingsWebauthn,
2014
+ PasskeySettings: (_ba = (_aa = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _aa.PasskeySettings) != null ? _ba : DefaultSettingsPasskey
2015
+ },
2016
+ Message: {
2017
+ Root: (_da = (_ca = overrides == null ? void 0 : overrides.Message) == null ? void 0 : _ca.Root) != null ? _da : DefaultMessageContainer,
2018
+ Content: (_fa = (_ea = overrides == null ? void 0 : overrides.Message) == null ? void 0 : _ea.Content) != null ? _fa : DefaultMessage
2019
+ },
2020
+ Page: {
2021
+ Header: (_ha = (_ga = overrides == null ? void 0 : overrides.Page) == null ? void 0 : _ga.Header) != null ? _ha : DefaultPageHeader
2022
+ }
2023
+ };
2024
+ }
1250
2025
 
1251
2026
  // src/theme/default/flows/error.tsx
1252
- import { jsx as jsx42 } from "react/jsx-runtime";
2027
+ import { jsx as jsx62 } from "react/jsx-runtime";
1253
2028
  function Error({
1254
2029
  error,
1255
2030
  children
1256
2031
  }) {
1257
- return /* @__PURE__ */ jsx42("div", { children: JSON.stringify(error) || children });
2032
+ return /* @__PURE__ */ jsx62("div", { children: JSON.stringify(error) || children });
1258
2033
  }
1259
2034
 
1260
2035
  // src/theme/default/flows/login.tsx
1261
- import { FlowType as FlowType4 } from "@ory/client-fetch";
2036
+ import { FlowType as FlowType7 } from "@ory/client-fetch";
1262
2037
  import {
1263
2038
  OryProvider,
1264
2039
  OryTwoStepCard
1265
2040
  } from "@ory/elements-react";
1266
- import merge from "lodash.merge";
1267
- import { jsx as jsx43 } from "react/jsx-runtime";
2041
+ import { jsx as jsx63 } from "react/jsx-runtime";
1268
2042
  function Login({
1269
2043
  flow,
1270
2044
  config,
1271
2045
  children,
1272
2046
  components: flowOverrideComponents
1273
2047
  }) {
1274
- const components = flowOverrideComponents ? merge({}, OryDefaultComponents, flowOverrideComponents) : OryDefaultComponents;
1275
- return /* @__PURE__ */ jsx43(
2048
+ const components = getOryComponents(flowOverrideComponents);
2049
+ return /* @__PURE__ */ jsx63(
1276
2050
  OryProvider,
1277
2051
  {
1278
2052
  config,
1279
2053
  flow,
1280
- flowType: FlowType4.Login,
2054
+ flowType: FlowType7.Login,
1281
2055
  components,
1282
- children: children != null ? children : /* @__PURE__ */ jsx43(OryTwoStepCard, {})
2056
+ children: children != null ? children : /* @__PURE__ */ jsx63(OryTwoStepCard, {})
1283
2057
  }
1284
2058
  );
1285
2059
  }
1286
2060
 
1287
2061
  // src/theme/default/flows/recovery.tsx
1288
- import { FlowType as FlowType5 } from "@ory/client-fetch";
2062
+ import { FlowType as FlowType8 } from "@ory/client-fetch";
1289
2063
  import {
1290
2064
  OryProvider as OryProvider2,
1291
2065
  OryTwoStepCard as OryTwoStepCard2
1292
2066
  } from "@ory/elements-react";
1293
- import merge2 from "lodash.merge";
1294
- import { jsx as jsx44 } from "react/jsx-runtime";
2067
+ import { jsx as jsx64 } from "react/jsx-runtime";
1295
2068
  function Recovery({
1296
2069
  flow,
1297
2070
  config,
1298
2071
  children,
1299
2072
  components: flowOverrideComponents
1300
2073
  }) {
1301
- const components = flowOverrideComponents ? merge2({}, OryDefaultComponents, flowOverrideComponents) : OryDefaultComponents;
1302
- return /* @__PURE__ */ jsx44(
2074
+ const components = getOryComponents(flowOverrideComponents);
2075
+ return /* @__PURE__ */ jsx64(
1303
2076
  OryProvider2,
1304
2077
  {
1305
2078
  config,
1306
2079
  flow,
1307
- flowType: FlowType5.Recovery,
2080
+ flowType: FlowType8.Recovery,
1308
2081
  components,
1309
- children: children != null ? children : /* @__PURE__ */ jsx44(OryTwoStepCard2, {})
2082
+ children: children != null ? children : /* @__PURE__ */ jsx64(OryTwoStepCard2, {})
1310
2083
  }
1311
2084
  );
1312
2085
  }
1313
2086
 
1314
2087
  // src/theme/default/flows/registration.tsx
1315
- import { FlowType as FlowType6 } from "@ory/client-fetch";
2088
+ import { FlowType as FlowType9 } from "@ory/client-fetch";
1316
2089
  import {
1317
2090
  OryProvider as OryProvider3,
1318
2091
  OryTwoStepCard as OryTwoStepCard3
1319
2092
  } from "@ory/elements-react";
1320
- import merge3 from "lodash.merge";
1321
- import { jsx as jsx45 } from "react/jsx-runtime";
2093
+ import { jsx as jsx65 } from "react/jsx-runtime";
1322
2094
  function Registration({
1323
2095
  flow,
1324
2096
  children,
1325
2097
  components: flowOverrideComponents,
1326
2098
  config
1327
2099
  }) {
1328
- const components = flowOverrideComponents ? merge3({}, OryDefaultComponents, flowOverrideComponents) : OryDefaultComponents;
1329
- return /* @__PURE__ */ jsx45(
2100
+ const components = getOryComponents(flowOverrideComponents);
2101
+ return /* @__PURE__ */ jsx65(
1330
2102
  OryProvider3,
1331
2103
  {
1332
2104
  config,
1333
2105
  flow,
1334
- flowType: FlowType6.Registration,
2106
+ flowType: FlowType9.Registration,
1335
2107
  components,
1336
- children: children != null ? children : /* @__PURE__ */ jsx45(OryTwoStepCard3, {})
2108
+ children: children != null ? children : /* @__PURE__ */ jsx65(OryTwoStepCard3, {})
1337
2109
  }
1338
2110
  );
1339
2111
  }
1340
2112
 
1341
2113
  // src/theme/default/flows/settings.tsx
1342
- import { FlowType as FlowType7 } from "@ory/client-fetch";
2114
+ import { FlowType as FlowType10 } from "@ory/client-fetch";
1343
2115
  import {
2116
+ HeadlessPageHeader,
1344
2117
  OryProvider as OryProvider4,
1345
- OryTwoStepCard as OryTwoStepCard4
2118
+ OrySettingsCard
1346
2119
  } from "@ory/elements-react";
1347
- import merge4 from "lodash.merge";
1348
- import { jsx as jsx46 } from "react/jsx-runtime";
2120
+ import { Fragment as Fragment3, jsx as jsx66, jsxs as jsxs37 } from "react/jsx-runtime";
1349
2121
  function Settings({
1350
2122
  flow,
1351
2123
  config,
1352
2124
  children,
1353
2125
  components: flowOverrideComponents
1354
2126
  }) {
1355
- const components = flowOverrideComponents ? merge4({}, OryDefaultComponents, flowOverrideComponents) : OryDefaultComponents;
1356
- return /* @__PURE__ */ jsx46(
2127
+ const components = getOryComponents(flowOverrideComponents);
2128
+ return /* @__PURE__ */ jsx66(
1357
2129
  OryProvider4,
1358
2130
  {
1359
2131
  config,
1360
2132
  flow,
1361
- flowType: FlowType7.Settings,
2133
+ flowType: FlowType10.Settings,
1362
2134
  components,
1363
- children: children != null ? children : /* @__PURE__ */ jsx46(OryTwoStepCard4, {})
2135
+ children: children != null ? children : /* @__PURE__ */ jsxs37(Fragment3, { children: [
2136
+ /* @__PURE__ */ jsx66(HeadlessPageHeader, {}),
2137
+ /* @__PURE__ */ jsx66(OrySettingsCard, {})
2138
+ ] })
1364
2139
  }
1365
2140
  );
1366
2141
  }
1367
2142
 
1368
2143
  // src/theme/default/flows/verification.tsx
1369
- import { FlowType as FlowType8 } from "@ory/client-fetch";
2144
+ import { FlowType as FlowType11 } from "@ory/client-fetch";
1370
2145
  import {
1371
2146
  OryProvider as OryProvider5,
1372
- OryTwoStepCard as OryTwoStepCard5
2147
+ OryTwoStepCard as OryTwoStepCard4
1373
2148
  } from "@ory/elements-react";
1374
- import merge5 from "lodash.merge";
1375
- import { jsx as jsx47 } from "react/jsx-runtime";
2149
+ import { jsx as jsx67 } from "react/jsx-runtime";
1376
2150
  function Verification({
1377
2151
  flow,
1378
2152
  config,
1379
2153
  children,
1380
2154
  components: flowOverrideComponents
1381
2155
  }) {
1382
- const components = flowOverrideComponents ? merge5({}, OryDefaultComponents, flowOverrideComponents) : OryDefaultComponents;
1383
- return /* @__PURE__ */ jsx47(
2156
+ const components = getOryComponents(flowOverrideComponents);
2157
+ return /* @__PURE__ */ jsx67(
1384
2158
  OryProvider5,
1385
2159
  {
1386
2160
  config,
1387
2161
  flow,
1388
- flowType: FlowType8.Verification,
2162
+ flowType: FlowType11.Verification,
1389
2163
  components,
1390
- children: children != null ? children : /* @__PURE__ */ jsx47(OryTwoStepCard5, {})
2164
+ children: children != null ? children : /* @__PURE__ */ jsx67(OryTwoStepCard4, {})
1391
2165
  }
1392
2166
  );
1393
2167
  }
@@ -1402,10 +2176,10 @@ export {
1402
2176
  DefaultMessageContainer,
1403
2177
  Error,
1404
2178
  Login,
1405
- OryDefaultComponents,
1406
2179
  Recovery,
1407
2180
  Registration,
1408
2181
  Settings,
1409
- Verification
2182
+ Verification,
2183
+ getOryComponents
1410
2184
  };
1411
2185
  //# sourceMappingURL=index.mjs.map