@ory/elements-react 1.0.0-next.14 → 1.0.0-next.16

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.
@@ -40,9 +40,10 @@ function DefaultCardContent({ children }) {
40
40
 
41
41
  // src/theme/default/components/card/footer.tsx
42
42
  import { FlowType } from "@ory/client-fetch";
43
- import { useIntl } from "react-intl";
44
43
  import { useOryFlow } from "@ory/elements-react";
45
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
44
+ import { useFormContext } from "react-hook-form";
45
+ import { useIntl } from "react-intl";
46
+ import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
46
47
  function DefaultCardFooter() {
47
48
  const { flowType } = useOryFlow();
48
49
  switch (flowType) {
@@ -65,9 +66,9 @@ function getReturnToQueryParam() {
65
66
  }
66
67
  }
67
68
  function LoginCardFooter() {
68
- const { config } = useOryFlow();
69
+ const { config, formState } = useOryFlow();
69
70
  const intl = useIntl();
70
- if (!config.project.registration_enabled) {
71
+ if (!config.project.registration_enabled || formState.current !== "provide_identifier") {
71
72
  return null;
72
73
  }
73
74
  let registrationLink = `${config.sdk.url}/self-service/registration/browser`;
@@ -94,15 +95,42 @@ function LoginCardFooter() {
94
95
  )
95
96
  ] });
96
97
  }
98
+ function findScreenSelectionButton(nodes) {
99
+ return nodes.find(
100
+ (node) => node.attributes.node_type === "input" && node.attributes.type === "submit" && node.attributes.name === "screen"
101
+ );
102
+ }
97
103
  function RegistrationCardFooter() {
98
104
  const intl = useIntl();
99
- const { config } = useOryFlow();
105
+ const { config, flow, formState } = useOryFlow();
106
+ const { setValue } = useFormContext();
107
+ if (formState.current === "select_method") {
108
+ return null;
109
+ }
110
+ const screenSelectionNode = findScreenSelectionButton(flow.ui.nodes);
111
+ function handleScreenSelection() {
112
+ setValue("method", "profile");
113
+ if (screenSelectionNode) {
114
+ setValue("screen", "credential-selection");
115
+ }
116
+ }
100
117
  let loginLink = `${config.sdk.url}/self-service/login/browser`;
101
118
  const returnTo = getReturnToQueryParam();
102
119
  if (returnTo) {
103
120
  loginLink += `?return_to=${returnTo}`;
104
121
  }
105
- return /* @__PURE__ */ jsxs4("span", { className: "text-sm font-normal antialiased leading-normal", children: [
122
+ return /* @__PURE__ */ jsx4("span", { className: "text-sm font-normal antialiased leading-normal", children: formState.current === "method_active" ? /* @__PURE__ */ jsx4(Fragment, { children: screenSelectionNode && /* @__PURE__ */ jsx4(
123
+ "button",
124
+ {
125
+ className: "font-medium text-links-link-default",
126
+ type: "submit",
127
+ onClick: handleScreenSelection,
128
+ children: intl.formatMessage({
129
+ id: "card.footer.select-another-method",
130
+ defaultMessage: "Select another method"
131
+ })
132
+ }
133
+ ) }) : /* @__PURE__ */ jsxs4(Fragment, { children: [
106
134
  intl.formatMessage({
107
135
  id: "registration.login-label",
108
136
  defaultMessage: "Already have an account?"
@@ -119,7 +147,7 @@ function RegistrationCardFooter() {
119
147
  })
120
148
  }
121
149
  )
122
- ] });
150
+ ] }) });
123
151
  }
124
152
  function RecoveryCardFooter() {
125
153
  return null;
@@ -129,7 +157,7 @@ function VerificationCardFooter() {
129
157
  }
130
158
 
131
159
  // src/theme/default/components/card/header.tsx
132
- import { useComponents, useOryFlow as useOryFlow2 } from "@ory/elements-react";
160
+ import { useComponents, useOryFlow as useOryFlow3 } from "@ory/elements-react";
133
161
 
134
162
  // src/theme/default/utils/constructCardHeader.ts
135
163
  import { FlowType as FlowType2, isUiNodeInputAttributes } from "@ory/client-fetch";
@@ -149,6 +177,18 @@ function useCardHeaderText(nodes, opts) {
149
177
  const intl = useIntl2();
150
178
  switch (opts.flowType) {
151
179
  case FlowType2.Recovery:
180
+ if (nodes.find(
181
+ (node) => "name" in node.attributes && node.attributes.name === "code"
182
+ )) {
183
+ return {
184
+ title: intl.formatMessage({
185
+ id: "recovery.title"
186
+ }),
187
+ description: intl.formatMessage({
188
+ id: "identities.messages.1060003"
189
+ })
190
+ };
191
+ }
152
192
  return {
153
193
  title: intl.formatMessage({
154
194
  id: "recovery.title"
@@ -167,6 +207,18 @@ function useCardHeaderText(nodes, opts) {
167
207
  })
168
208
  };
169
209
  case FlowType2.Verification:
210
+ if (nodes.find(
211
+ (node) => "name" in node.attributes && node.attributes.name === "code"
212
+ )) {
213
+ return {
214
+ title: intl.formatMessage({
215
+ id: "verification.title"
216
+ }),
217
+ description: intl.formatMessage({
218
+ id: "identities.messages.1080003"
219
+ })
220
+ };
221
+ }
170
222
  return {
171
223
  title: intl.formatMessage({
172
224
  id: "verification.title"
@@ -288,44 +340,139 @@ function useCardHeaderText(nodes, opts) {
288
340
  };
289
341
  }
290
342
 
343
+ // src/theme/default/components/card/current-identifier-button.tsx
344
+ import { FlowType as FlowType3 } from "@ory/client-fetch";
345
+ import { useOryFlow as useOryFlow2 } from "@ory/elements-react";
346
+
347
+ // src/theme/default/assets/icons/arrow-left.svg
348
+ import * as React3 from "react";
349
+ import { jsx as jsx5 } from "react/jsx-runtime";
350
+ var SvgArrowLeft = (props) => {
351
+ var _a, _b;
352
+ return /* @__PURE__ */ jsx5("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__ */ jsx5("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M5 12.325h14m-14 0 6 6m-6-6 6-6" }) });
353
+ };
354
+ var arrow_left_default = SvgArrowLeft;
355
+
356
+ // src/theme/default/utils/attributes.ts
357
+ function omit(obj, keys) {
358
+ const ret = { ...obj };
359
+ for (const key of keys) {
360
+ delete ret[key];
361
+ }
362
+ return ret;
363
+ }
364
+
365
+ // src/theme/default/components/card/current-identifier-button.tsx
366
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
367
+ function DefaultCurrentIdentifierButton() {
368
+ const {
369
+ flow: { ui },
370
+ flowType,
371
+ config,
372
+ formState
373
+ } = useOryFlow2();
374
+ if (formState.current === "provide_identifier") {
375
+ return null;
376
+ }
377
+ const nodeBackButton = getBackButtonNode(flowType, ui.nodes);
378
+ if ((nodeBackButton == null ? void 0 : nodeBackButton.attributes.node_type) !== "input" || !nodeBackButton.attributes.value) {
379
+ return null;
380
+ }
381
+ const initFlowUrl = `${config.sdk.url}/self-service/${flowType}/browser`;
382
+ const attributes = omit(nodeBackButton.attributes, [
383
+ "autocomplete",
384
+ "node_type"
385
+ ]);
386
+ return /* @__PURE__ */ jsxs5(
387
+ "a",
388
+ {
389
+ className: "cursor-pointer py-[5px] px-3 rounded-full border border-button-identifier-border-default bg-button-identifier-bg-default hover:border-button-identifier-border-hover hover:bg-button-identifier-bg-hover transition-colors inline-flex gap-1 items-center self-start max-w-full",
390
+ ...attributes,
391
+ href: initFlowUrl,
392
+ title: `Adjust ${nodeBackButton == null ? void 0 : nodeBackButton.attributes.value}`,
393
+ children: [
394
+ /* @__PURE__ */ jsx6(
395
+ arrow_left_default,
396
+ {
397
+ size: 16,
398
+ className: "text-button-identifier-fg-subtle shrink-0"
399
+ }
400
+ ),
401
+ /* @__PURE__ */ jsx6("span", { className: "text-sm font-medium text-button-identifier-fg-default text-ellipsis overflow-hidden text-nowrap", children: nodeBackButton == null ? void 0 : nodeBackButton.attributes.value })
402
+ ]
403
+ }
404
+ );
405
+ }
406
+ function getBackButtonNode(flowType, nodes) {
407
+ let nodeBackButton;
408
+ switch (flowType) {
409
+ case FlowType3.Login:
410
+ nodeBackButton = nodes.find(
411
+ (node) => "name" in node.attributes && node.attributes.name === "identifier" && ["default", "identifier_first"].includes(node.group)
412
+ );
413
+ break;
414
+ case FlowType3.Registration:
415
+ nodeBackButton = guessRegistrationBackButton(nodes);
416
+ break;
417
+ case FlowType3.Recovery:
418
+ case FlowType3.Verification:
419
+ nodeBackButton = nodes.find(
420
+ (n) => "name" in n.attributes && n.attributes.name === "email"
421
+ );
422
+ break;
423
+ }
424
+ return nodeBackButton;
425
+ }
426
+ var backButtonCandiates = [
427
+ "traits.email",
428
+ "traits.username",
429
+ "traits.phone_number"
430
+ ];
431
+ function guessRegistrationBackButton(uiNodes) {
432
+ return uiNodes.find(
433
+ (node) => "name" in node.attributes && backButtonCandiates.includes(node.attributes.name) && node.group === "default"
434
+ );
435
+ }
436
+
291
437
  // src/theme/default/components/card/header.tsx
292
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
438
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
293
439
  function InnerCardHeader({ title, text }) {
294
440
  const { Card } = useComponents();
295
- return /* @__PURE__ */ jsxs5("header", { className: "flex flex-col gap-8 antialiased", children: [
296
- /* @__PURE__ */ jsx5(Card.Logo, {}),
297
- /* @__PURE__ */ jsxs5("div", { children: [
298
- /* @__PURE__ */ jsx5("h2", { className: "font-semibold text-lg text-dialog-fg-default leading-normal", children: title }),
299
- /* @__PURE__ */ jsx5("p", { className: "text-sm leading-normal text-dialog-fg-subtle", children: text })
441
+ return /* @__PURE__ */ jsxs6("header", { className: "flex flex-col gap-8 antialiased", children: [
442
+ /* @__PURE__ */ jsx7(Card.Logo, {}),
443
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-2", children: [
444
+ /* @__PURE__ */ jsx7("h2", { className: "font-semibold text-lg text-dialog-fg-default leading-normal", children: title }),
445
+ /* @__PURE__ */ jsx7("p", { className: "text-sm leading-normal text-dialog-fg-subtle", children: text }),
446
+ /* @__PURE__ */ jsx7(DefaultCurrentIdentifierButton, {})
300
447
  ] })
301
448
  ] });
302
449
  }
303
450
  function DefaultCardHeader() {
304
- const context = useOryFlow2();
451
+ const context = useOryFlow3();
305
452
  const { title, description } = useCardHeaderText(
306
453
  context.flow.ui.nodes,
307
454
  context
308
455
  );
309
- return /* @__PURE__ */ jsx5(InnerCardHeader, { title, text: description });
456
+ return /* @__PURE__ */ jsx7(InnerCardHeader, { title, text: description });
310
457
  }
311
458
 
312
459
  // src/theme/default/components/card/logo.tsx
313
- import { useOryFlow as useOryFlow3 } from "@ory/elements-react";
314
- import { jsx as jsx6 } from "react/jsx-runtime";
460
+ import { useOryFlow as useOryFlow4 } from "@ory/elements-react";
461
+ import { jsx as jsx8 } from "react/jsx-runtime";
315
462
  function DefaultCardLogo() {
316
- const flow = useOryFlow3();
463
+ const flow = useOryFlow4();
317
464
  if (flow.config.logoUrl) {
318
- return /* @__PURE__ */ jsx6("img", { src: flow.config.logoUrl, width: 100, height: 36, alt: "Logo" });
465
+ return /* @__PURE__ */ jsx8("img", { src: flow.config.logoUrl, width: 100, height: 36, alt: "Logo" });
319
466
  }
320
- return /* @__PURE__ */ jsx6("h1", { className: "text-xl font-semibold leading-normal text-dialog-fg-default", children: flow.config.name });
467
+ return /* @__PURE__ */ jsx8("h1", { className: "text-xl font-semibold leading-normal text-dialog-fg-default", children: flow.config.name });
321
468
  }
322
469
 
323
470
  // src/theme/default/components/card/index.tsx
324
- import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
471
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
325
472
  function DefaultCard({ 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: [
473
+ return /* @__PURE__ */ jsx9("div", { className: "flex-1 flex-col flex justify-center items-center font-sans", children: /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 max-w-sm md:max-w-[480px] md:w-[480px] gap-8 bg-dialog-bg-default px-8 md:px-12 py-12 md:py-14 relative rounded-border-radius-cards border border-dialog-border-default", children: [
327
474
  children,
328
- /* @__PURE__ */ jsx7(Badge, {})
475
+ /* @__PURE__ */ jsx9(Badge, {})
329
476
  ] }) });
330
477
  }
331
478
 
@@ -339,18 +486,19 @@ function cn(...inputs) {
339
486
  // src/theme/default/components/form/index.tsx
340
487
  import { useIntl as useIntl3 } from "react-intl";
341
488
  import {
489
+ messageTestId,
342
490
  uiTextToFormattedMessage,
343
- useOryFlow as useOryFlow4
491
+ useOryFlow as useOryFlow5
344
492
  } from "@ory/elements-react";
345
- import { FlowType as FlowType3 } from "@ory/client-fetch";
346
- import { jsx as jsx8 } from "react/jsx-runtime";
493
+ import { FlowType as FlowType4 } from "@ory/client-fetch";
494
+ import { jsx as jsx10 } from "react/jsx-runtime";
347
495
  function DefaultFormContainer({
348
496
  children,
349
497
  onSubmit,
350
498
  action,
351
499
  method
352
500
  }) {
353
- return /* @__PURE__ */ jsx8(
501
+ return /* @__PURE__ */ jsx10(
354
502
  "form",
355
503
  {
356
504
  onSubmit,
@@ -363,15 +511,15 @@ function DefaultFormContainer({
363
511
  );
364
512
  }
365
513
  function DefaultMessageContainer({ children }) {
366
- const { flowType } = useOryFlow4();
514
+ const { flowType } = useOryFlow5();
367
515
  if (!children || Array.isArray(children) && children.length === 0) {
368
516
  return null;
369
517
  }
370
- return /* @__PURE__ */ jsx8(
518
+ return /* @__PURE__ */ jsx10(
371
519
  "section",
372
520
  {
373
521
  className: cn(
374
- flowType === FlowType3.Settings ? "text-center" : "text-left"
522
+ flowType === FlowType4.Settings ? "text-center" : "text-left"
375
523
  ),
376
524
  children
377
525
  }
@@ -379,14 +527,15 @@ function DefaultMessageContainer({ children }) {
379
527
  }
380
528
  function DefaultMessage({ message }) {
381
529
  const intl = useIntl3();
382
- return /* @__PURE__ */ jsx8(
530
+ return /* @__PURE__ */ jsx10(
383
531
  "span",
384
532
  {
385
- className: cn("text-sm mt-1 leading-normal", {
533
+ className: cn("text-sm leading-normal", {
386
534
  "text-forms-fg-error": message.type === "error",
387
535
  "text-forms-fg-default": message.type === "info",
388
536
  "text-forms-fg-success": message.type === "success"
389
537
  }),
538
+ ...messageTestId(message),
390
539
  children: uiTextToFormattedMessage(message, intl)
391
540
  }
392
541
  );
@@ -396,38 +545,38 @@ function DefaultMessage({ message }) {
396
545
  import { useIntl as useIntl4 } from "react-intl";
397
546
 
398
547
  // src/theme/default/assets/icons/code.svg
399
- import * as React3 from "react";
400
- import { jsx as jsx9 } from "react/jsx-runtime";
548
+ import * as React4 from "react";
549
+ import { jsx as jsx11 } from "react/jsx-runtime";
401
550
  var SvgCode = (props) => {
402
551
  var _a, _b;
403
- return /* @__PURE__ */ jsx9("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 15 13", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx9("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12" }) });
552
+ return /* @__PURE__ */ jsx11("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 15 13", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx11("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12" }) });
404
553
  };
405
554
  var code_default = SvgCode;
406
555
 
407
556
  // src/theme/default/assets/icons/passkey.svg
408
- import * as React4 from "react";
409
- import { jsx as jsx10 } from "react/jsx-runtime";
557
+ import * as React5 from "react";
558
+ import { jsx as jsx12 } from "react/jsx-runtime";
410
559
  var SvgPasskey = (props) => {
411
560
  var _a, _b;
412
- return /* @__PURE__ */ jsx10("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 13 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx10("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633" }) });
561
+ return /* @__PURE__ */ jsx12("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 13 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx12("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633" }) });
413
562
  };
414
563
  var passkey_default = SvgPasskey;
415
564
 
416
565
  // src/theme/default/assets/icons/password.svg
417
- import * as React5 from "react";
418
- import { jsx as jsx11 } from "react/jsx-runtime";
566
+ import * as React6 from "react";
567
+ import { jsx as jsx13 } from "react/jsx-runtime";
419
568
  var SvgPassword = (props) => {
420
569
  var _a, _b;
421
- return /* @__PURE__ */ jsx11("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 4", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx11("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667" }) });
570
+ return /* @__PURE__ */ jsx13("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 4", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx13("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667" }) });
422
571
  };
423
572
  var password_default = SvgPassword;
424
573
 
425
574
  // src/theme/default/assets/icons/webauthn.svg
426
- import * as React6 from "react";
427
- import { jsx as jsx12 } from "react/jsx-runtime";
575
+ import * as React7 from "react";
576
+ import { jsx as jsx14 } from "react/jsx-runtime";
428
577
  var SvgWebauthn = (props) => {
429
578
  var _a, _b;
430
- return /* @__PURE__ */ jsx12("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx12("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0" }) });
579
+ return /* @__PURE__ */ jsx14("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 14 14", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx14("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0" }) });
431
580
  };
432
581
  var webauthn_default = SvgWebauthn;
433
582
 
@@ -437,7 +586,7 @@ function isGroupImmediateSubmit(group) {
437
586
  }
438
587
 
439
588
  // src/theme/default/components/card/auth-methods.tsx
440
- import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
589
+ import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
441
590
  var iconsMap = {
442
591
  code: code_default,
443
592
  passkey: passkey_default,
@@ -450,17 +599,20 @@ function DefaultAuthMethodListItem({
450
599
  }) {
451
600
  const intl = useIntl4();
452
601
  const Icon = iconsMap[group] || null;
453
- return /* @__PURE__ */ jsx13("div", { className: "w-full hover:bg-forms-bg-hover px-2 py-1 rounded", children: /* @__PURE__ */ jsxs7(
602
+ return /* @__PURE__ */ jsx15("div", { className: "w-full hover:bg-forms-bg-hover px-2 py-1 rounded", children: /* @__PURE__ */ jsxs8(
454
603
  "button",
455
604
  {
456
605
  className: "flex text-left py-2 gap-3 cursor-pointer",
457
606
  onClick,
458
607
  type: isGroupImmediateSubmit(group) ? "submit" : "button",
608
+ id: `auth-method-list-item-${group}`,
609
+ "data-testid": "auth-method-list-item",
610
+ "aria-label": `Authenticate with ${group}`,
459
611
  children: [
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" }) }),
461
- /* @__PURE__ */ jsxs7("div", { className: "flex-1 text-sm leading-normal", children: [
462
- /* @__PURE__ */ jsx13("div", { className: "text-forms-fg-default text-sm", children: intl.formatMessage({ id: `two-step.${group}.title` }) }),
463
- /* @__PURE__ */ jsx13("div", { className: "text-forms-fg-mute text-sm", children: intl.formatMessage({ id: `two-step.${group}.description` }) })
612
+ /* @__PURE__ */ jsx15("div", { className: "flex-none w-4 h-4 mt-[2px]", children: Icon && /* @__PURE__ */ jsx15(Icon, { size: 20, className: "text-forms-fg-default" }) }),
613
+ /* @__PURE__ */ jsxs8("div", { className: "flex-1 text-sm leading-normal", children: [
614
+ /* @__PURE__ */ jsx15("div", { className: "text-forms-fg-default text-sm", children: intl.formatMessage({ id: `two-step.${group}.title` }) }),
615
+ /* @__PURE__ */ jsx15("div", { className: "text-forms-fg-mute text-sm", children: intl.formatMessage({ id: `two-step.${group}.description` }) })
464
616
  ] })
465
617
  ]
466
618
  }
@@ -468,17 +620,17 @@ function DefaultAuthMethodListItem({
468
620
  }
469
621
 
470
622
  // src/theme/default/components/form/button.tsx
471
- import { FlowType as FlowType4, getNodeLabel } from "@ory/client-fetch";
623
+ import { FlowType as FlowType5, getNodeLabel } from "@ory/client-fetch";
472
624
  import {
473
625
  uiTextToFormattedMessage as uiTextToFormattedMessage2
474
626
  } from "@ory/elements-react";
475
- import { useFormContext } from "react-hook-form";
627
+ import { useFormContext as useFormContext2 } from "react-hook-form";
476
628
  import { useIntl as useIntl5 } from "react-intl";
477
629
 
478
630
  // src/theme/default/components/form/spinner.tsx
479
- import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
631
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
480
632
  function Spinner({ className }) {
481
- return /* @__PURE__ */ jsxs8(
633
+ return /* @__PURE__ */ jsxs9(
482
634
  "svg",
483
635
  {
484
636
  "aria-hidden": "true",
@@ -491,7 +643,7 @@ function Spinner({ className }) {
491
643
  fill: "none",
492
644
  xmlns: "http://www.w3.org/2000/svg",
493
645
  children: [
494
- /* @__PURE__ */ jsx14("g", { clipPath: "url(#clip0_2572_1748)", children: /* @__PURE__ */ jsx14(
646
+ /* @__PURE__ */ jsx16("g", { clipPath: "url(#clip0_2572_1748)", children: /* @__PURE__ */ jsx16(
495
647
  "path",
496
648
  {
497
649
  d: "M23.364 10.6362C22.1053 9.37751 20.5016 8.52034 18.7558 8.17307C17.01 7.82581 15.2004 8.00404 13.5559 8.68523C11.9113 9.36641 10.5057 10.52 9.51678 12C8.52784 13.4801 8 15.2201 8 17.0001C8 18.7802 8.52784 20.5202 9.51678 22.0003C10.5057 23.4803 11.9113 24.6339 13.5559 25.3151C15.2004 25.9962 17.01 26.1745 18.7558 25.8272C20.5016 25.4799 22.1053 24.6228 23.364 23.3641",
@@ -500,7 +652,7 @@ function Spinner({ className }) {
500
652
  strokeLinejoin: "round"
501
653
  }
502
654
  ) }),
503
- /* @__PURE__ */ jsx14("defs", { children: /* @__PURE__ */ jsx14("clipPath", { id: "clip0_2572_1748", children: /* @__PURE__ */ jsx14(
655
+ /* @__PURE__ */ jsx16("defs", { children: /* @__PURE__ */ jsx16("clipPath", { id: "clip0_2572_1748", children: /* @__PURE__ */ jsx16(
504
656
  "rect",
505
657
  {
506
658
  width: "24",
@@ -515,9 +667,9 @@ function Spinner({ className }) {
515
667
  }
516
668
 
517
669
  // src/theme/default/components/form/button.tsx
518
- import { useOryFlow as useOryFlow5 } from "@ory/elements-react";
670
+ import { useOryFlow as useOryFlow6 } from "@ory/elements-react";
519
671
  import { cva } from "class-variance-authority";
520
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
672
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
521
673
  var buttonStyles = cva(
522
674
  [
523
675
  "ring-1 relative overflow-hidden ring-inset rounded text-sm leading-none flex gap-3 justify-center",
@@ -572,14 +724,14 @@ var DefaultButton = ({
572
724
  } = attributes;
573
725
  const intl = useIntl5();
574
726
  const label = getNodeLabel(node);
575
- const { flowType } = useOryFlow5();
727
+ const { flowType } = useOryFlow6();
576
728
  const {
577
729
  formState: { isSubmitting },
578
730
  setValue
579
- } = useFormContext();
731
+ } = useFormContext2();
580
732
  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";
582
- return /* @__PURE__ */ jsxs9(
733
+ const isSmall = flowType === FlowType5.Settings && attributes.name !== "webauthn_register_trigger";
734
+ return /* @__PURE__ */ jsxs10(
583
735
  "button",
584
736
  {
585
737
  ...rest,
@@ -602,7 +754,7 @@ var DefaultButton = ({
602
754
  disabled: (_a = rest.disabled) != null ? _a : true,
603
755
  "data-loading": isSubmitting,
604
756
  children: [
605
- isSubmitting ? /* @__PURE__ */ jsx15(Spinner, {}) : null,
757
+ isSubmitting ? /* @__PURE__ */ jsx17(Spinner, {}) : null,
606
758
  label ? uiTextToFormattedMessage2(label, intl) : ""
607
759
  ]
608
760
  }
@@ -613,7 +765,7 @@ DefaultButton.displayName = "DefaultButton";
613
765
  // src/theme/default/components/form/checkbox.tsx
614
766
  import { getNodeLabel as getNodeLabel2 } from "@ory/client-fetch";
615
767
  import {
616
- messageTestId,
768
+ messageTestId as messageTestId2,
617
769
  uiTextToFormattedMessage as uiTextToFormattedMessage4
618
770
  } from "@ory/elements-react";
619
771
  import { useState } from "react";
@@ -672,7 +824,7 @@ var uiTextToFormattedMessage3 = ({ id, context = {}, text }, intl) => {
672
824
  };
673
825
 
674
826
  // src/theme/default/components/ui/checkbox-label.tsx
675
- import { Fragment, jsx as jsx16 } from "react/jsx-runtime";
827
+ import { Fragment as Fragment2, jsx as jsx18 } from "react/jsx-runtime";
676
828
  var linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
677
829
  function computeLabelElements(labelText) {
678
830
  const elements = [];
@@ -688,7 +840,7 @@ function computeLabelElements(labelText) {
688
840
  elements.push(labelText.slice(lastIndex, matchStart));
689
841
  }
690
842
  elements.push(
691
- /* @__PURE__ */ jsx16(
843
+ /* @__PURE__ */ jsx18(
692
844
  "a",
693
845
  {
694
846
  href: url,
@@ -713,13 +865,13 @@ function CheckboxLabel({ label }) {
713
865
  return null;
714
866
  }
715
867
  const labelText = uiTextToFormattedMessage3(label, intl);
716
- return /* @__PURE__ */ jsx16(Fragment, { children: computeLabelElements(labelText) });
868
+ return /* @__PURE__ */ jsx18(Fragment2, { children: computeLabelElements(labelText) });
717
869
  }
718
870
 
719
871
  // src/theme/default/components/form/checkbox.tsx
720
- import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
872
+ import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
721
873
  function CheckboxSVG() {
722
- return /* @__PURE__ */ jsxs10(
874
+ return /* @__PURE__ */ jsxs11(
723
875
  "svg",
724
876
  {
725
877
  className: "absolute w-4 h-4 hidden peer-checked:block",
@@ -729,14 +881,14 @@ function CheckboxSVG() {
729
881
  viewBox: "0 0 16 16",
730
882
  fill: "none",
731
883
  children: [
732
- /* @__PURE__ */ jsx17(
884
+ /* @__PURE__ */ jsx19(
733
885
  "path",
734
886
  {
735
887
  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",
736
888
  fill: "#0F172A"
737
889
  }
738
890
  ),
739
- /* @__PURE__ */ jsx17(
891
+ /* @__PURE__ */ jsx19(
740
892
  "path",
741
893
  {
742
894
  fillRule: "evenodd",
@@ -767,7 +919,7 @@ var DefaultCheckbox = ({
767
919
  const label = getNodeLabel2(node);
768
920
  const [checked, setChecked] = useState(Boolean(value));
769
921
  const { register } = useForm();
770
- return /* @__PURE__ */ jsxs10(
922
+ return /* @__PURE__ */ jsxs11(
771
923
  "div",
772
924
  {
773
925
  className: "flex antialiased gap-3 self-stretch item-start",
@@ -775,8 +927,8 @@ var DefaultCheckbox = ({
775
927
  setChecked(!checked);
776
928
  },
777
929
  children: [
778
- /* @__PURE__ */ jsxs10("div", { className: "flex h-5 items-center", children: [
779
- /* @__PURE__ */ jsx17(
930
+ /* @__PURE__ */ jsxs11("div", { className: "flex h-5 items-center", children: [
931
+ /* @__PURE__ */ jsx19(
780
932
  "input",
781
933
  {
782
934
  ...attributes,
@@ -791,15 +943,15 @@ var DefaultCheckbox = ({
791
943
  ...register(name, { value })
792
944
  }
793
945
  ),
794
- /* @__PURE__ */ jsx17(CheckboxSVG, {})
946
+ /* @__PURE__ */ jsx19(CheckboxSVG, {})
795
947
  ] }),
796
- /* @__PURE__ */ jsxs10("div", { className: "text-sm items-center", children: [
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(
948
+ /* @__PURE__ */ jsxs11("div", { className: "text-sm items-center", children: [
949
+ /* @__PURE__ */ jsx19("label", { className: "text-sm font-normal leading-normal text-forms-fg-default", children: /* @__PURE__ */ jsx19(CheckboxLabel, { label }) }),
950
+ node.messages.map((message) => /* @__PURE__ */ jsx19(
799
951
  "span",
800
952
  {
801
953
  className: "text-sm text-red-900 mt-1",
802
- ...messageTestId(message),
954
+ ...messageTestId2(message),
803
955
  children: uiTextToFormattedMessage4(message, intl)
804
956
  },
805
957
  message.id
@@ -811,42 +963,49 @@ var DefaultCheckbox = ({
811
963
  };
812
964
 
813
965
  // src/theme/default/components/form/group-container.tsx
814
- import { jsx as jsx18 } from "react/jsx-runtime";
966
+ import { jsx as jsx20 } from "react/jsx-runtime";
815
967
  function DefaultGroupContainer({ children }) {
816
- return /* @__PURE__ */ jsx18("div", { className: "grid grid-cols-1 gap-6", children });
968
+ return /* @__PURE__ */ jsx20("div", { className: "grid grid-cols-1 gap-6", children });
817
969
  }
818
970
 
819
971
  // src/theme/default/components/form/horizontal-divider.tsx
820
- import { jsx as jsx19 } from "react/jsx-runtime";
972
+ import { jsx as jsx21 } from "react/jsx-runtime";
821
973
  function DefaultHorizontalDivider() {
822
- return /* @__PURE__ */ jsx19("hr", { className: "border-dialog-border-default" });
974
+ return /* @__PURE__ */ jsx21("hr", { className: "border-dialog-border-default" });
823
975
  }
824
976
 
825
977
  // src/theme/default/components/form/image.tsx
826
- import { jsx as jsx20 } from "react/jsx-runtime";
978
+ import { jsx as jsx22 } from "react/jsx-runtime";
827
979
  function DefaultImage({ attributes }) {
828
- return /* @__PURE__ */ jsx20("figure", { children: /* @__PURE__ */ jsx20("img", { ...attributes }) });
980
+ return /* @__PURE__ */ jsx22("figure", { children: /* @__PURE__ */ jsx22("img", { ...attributes }) });
829
981
  }
830
982
 
831
983
  // src/theme/default/components/form/input.tsx
832
- import { FlowType as FlowType5, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
984
+ import { FlowType as FlowType6, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
833
985
  import {
834
986
  uiTextToFormattedMessage as uiTextToFormattedMessage5,
835
- useOryFlow as useOryFlow6
987
+ useOryFlow as useOryFlow7
836
988
  } from "@ory/elements-react";
837
- import { useFormContext as useFormContext2 } from "react-hook-form";
989
+ import { useFormContext as useFormContext3 } from "react-hook-form";
838
990
  import { useIntl as useIntl8 } from "react-intl";
839
- import { jsx as jsx21 } from "react/jsx-runtime";
991
+ import { jsx as jsx23 } from "react/jsx-runtime";
840
992
  var DefaultInput = ({
841
993
  node,
842
994
  attributes,
843
995
  onClick
844
996
  }) => {
845
997
  const label = getNodeLabel3(node);
846
- const { register } = useFormContext2();
847
- const { value, autocomplete, name, maxlength, ...rest } = attributes;
998
+ const { register } = useFormContext3();
999
+ const {
1000
+ value,
1001
+ autocomplete,
1002
+ name,
1003
+ maxlength,
1004
+ node_type: _,
1005
+ ...rest
1006
+ } = attributes;
848
1007
  const intl = useIntl8();
849
- const { flowType } = useOryFlow6();
1008
+ const { flowType } = useOryFlow7();
850
1009
  const formattedLabel = label ? intl.formatMessage(
851
1010
  {
852
1011
  id: "input.placeholder",
@@ -856,7 +1015,7 @@ var DefaultInput = ({
856
1015
  placeholder: uiTextToFormattedMessage5(label, intl)
857
1016
  }
858
1017
  ) : "";
859
- return /* @__PURE__ */ jsx21(
1018
+ return /* @__PURE__ */ jsx23(
860
1019
  "input",
861
1020
  {
862
1021
  ...rest,
@@ -868,7 +1027,7 @@ var DefaultInput = ({
868
1027
  "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
1028
  "px-3 py-2.5",
870
1029
  // 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"
1030
+ flowType === FlowType6.Settings ? "max-w-[488px]" : "md:px-4 md:py-4"
872
1031
  ),
873
1032
  ...register(name, { value })
874
1033
  }
@@ -876,14 +1035,21 @@ var DefaultInput = ({
876
1035
  };
877
1036
 
878
1037
  // src/theme/default/components/form/label.tsx
879
- import { FlowType as FlowType6, getNodeLabel as getNodeLabel4 } from "@ory/client-fetch";
1038
+ import { FlowType as FlowType7, getNodeLabel as getNodeLabel4 } from "@ory/client-fetch";
880
1039
  import {
881
- messageTestId as messageTestId2,
1040
+ messageTestId as messageTestId3,
882
1041
  uiTextToFormattedMessage as uiTextToFormattedMessage6,
883
- useOryFlow as useOryFlow7
1042
+ useComponents as useComponents2,
1043
+ useOryFlow as useOryFlow8
884
1044
  } from "@ory/elements-react";
1045
+ import { useFormContext as useFormContext4 } from "react-hook-form";
885
1046
  import { useIntl as useIntl9 } from "react-intl";
886
- import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
1047
+ import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
1048
+ function findResendNode(nodes) {
1049
+ return nodes.find(
1050
+ (n) => "name" in n.attributes && (n.attributes.name === "email" && n.attributes.type === "submit" || n.attributes.name === "resend")
1051
+ );
1052
+ }
887
1053
  function DefaultLabel({
888
1054
  node,
889
1055
  children,
@@ -892,23 +1058,30 @@ function DefaultLabel({
892
1058
  }) {
893
1059
  const intl = useIntl9();
894
1060
  const label = getNodeLabel4(node);
895
- const { config, flowType } = useOryFlow7();
1061
+ const { Message } = useComponents2();
1062
+ const { config, flowType, flow } = useOryFlow8();
1063
+ const { setValue } = useFormContext4();
896
1064
  const isPassword = attributes.type === "password";
897
- const isCode = attributes.name === "code";
898
- return /* @__PURE__ */ jsxs11("span", { className: "flex flex-col antialiased gap-1", children: [
899
- label && /* @__PURE__ */ jsxs11("span", { className: "inline-flex justify-between", children: [
900
- /* @__PURE__ */ jsx22(
1065
+ const resendNode = findResendNode(flow.ui.nodes);
1066
+ const handleResend = () => {
1067
+ if ((resendNode == null ? void 0 : resendNode.attributes) && "name" in resendNode.attributes) {
1068
+ setValue(resendNode.attributes.name, resendNode.attributes.value);
1069
+ }
1070
+ };
1071
+ return /* @__PURE__ */ jsxs12("div", { className: "flex flex-col antialiased gap-1", children: [
1072
+ label && /* @__PURE__ */ jsxs12("span", { className: "inline-flex justify-between", children: [
1073
+ /* @__PURE__ */ jsx24(
901
1074
  "label",
902
1075
  {
903
- ...messageTestId2(label),
1076
+ ...messageTestId3(label),
904
1077
  className: "text-sm font-medium leading-normal",
905
1078
  htmlFor: attributes.name,
906
1079
  ...rest,
907
1080
  children: uiTextToFormattedMessage6(label, intl)
908
1081
  }
909
1082
  ),
910
- isPassword && config.project.recovery_enabled && flowType === FlowType6.Login && // TODO: make it possible to override with a custom component
911
- /* @__PURE__ */ jsx22(
1083
+ isPassword && config.project.recovery_enabled && flowType === FlowType7.Login && // TODO: make it possible to override with a custom component
1084
+ /* @__PURE__ */ jsx24(
912
1085
  "a",
913
1086
  {
914
1087
  href: config.project.recovery_ui_url,
@@ -919,31 +1092,20 @@ function DefaultLabel({
919
1092
  })
920
1093
  }
921
1094
  ),
922
- isCode && /* @__PURE__ */ jsx22(
1095
+ (resendNode == null ? void 0 : resendNode.attributes.node_type) === "input" && /* @__PURE__ */ jsx24(
923
1096
  "button",
924
1097
  {
925
1098
  type: "submit",
926
- name: "method",
927
- value: "code",
1099
+ name: resendNode.attributes.name,
1100
+ value: resendNode.attributes.value,
1101
+ onClick: handleResend,
928
1102
  className: "text-links-link-default hover:underline hover:text-link-hover transition-colors text-sm font-medium cursor-pointer",
929
1103
  children: intl.formatMessage({ id: "identities.messages.1070008" })
930
1104
  }
931
1105
  )
932
1106
  ] }),
933
1107
  children,
934
- node.messages.map((message) => /* @__PURE__ */ jsx22(
935
- "span",
936
- {
937
- className: cn("text-sm leading-normal", {
938
- "text-forms-fg-error": message.type === "error",
939
- "text-forms-fg-default": message.type === "info",
940
- "text-forms-fg-success": message.type === "success"
941
- }),
942
- ...messageTestId2(message),
943
- children: uiTextToFormattedMessage6(message, intl)
944
- },
945
- message.id
946
- ))
1108
+ node.messages.map((message) => /* @__PURE__ */ jsx24(Message.Content, { message }, message.id))
947
1109
  ] });
948
1110
  }
949
1111
 
@@ -954,11 +1116,11 @@ import {
954
1116
  } from "@ory/elements-react";
955
1117
  import { forwardRef } from "react";
956
1118
  import { useIntl as useIntl10 } from "react-intl";
957
- import { jsx as jsx23 } from "react/jsx-runtime";
1119
+ import { jsx as jsx25 } from "react/jsx-runtime";
958
1120
  var DefaultLinkButton = forwardRef(({ attributes, node }, ref) => {
959
1121
  const intl = useIntl10();
960
1122
  const label = getNodeLabel5(node);
961
- return /* @__PURE__ */ jsx23(
1123
+ return /* @__PURE__ */ jsx25(
962
1124
  "a",
963
1125
  {
964
1126
  ...attributes,
@@ -974,13 +1136,13 @@ var DefaultLinkButton = forwardRef(({ attributes, node }, ref) => {
974
1136
  DefaultLinkButton.displayName = "DefaultLinkButton";
975
1137
 
976
1138
  // src/theme/default/components/form/pin-code-input.tsx
977
- import { useFormContext as useFormContext3 } from "react-hook-form";
1139
+ import { useFormContext as useFormContext5 } from "react-hook-form";
978
1140
 
979
1141
  // src/theme/default/components/form/shadcn/otp-input.tsx
980
1142
  import { OTPInput, OTPInputContext } from "input-otp";
981
- import * as React7 from "react";
982
- import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
983
- var InputOTP = React7.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx24(
1143
+ import * as React8 from "react";
1144
+ import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
1145
+ var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx26(
984
1146
  OTPInput,
985
1147
  {
986
1148
  ref,
@@ -993,12 +1155,12 @@ var InputOTP = React7.forwardRef(({ className, containerClassName, ...props }, r
993
1155
  }
994
1156
  ));
995
1157
  InputOTP.displayName = "InputOTP";
996
- var InputOTPGroup = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24("div", { ref, className: cn("flex items-center", className), ...props }));
1158
+ var InputOTPGroup = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { ref, className: cn("flex items-center", className), ...props }));
997
1159
  InputOTPGroup.displayName = "InputOTPGroup";
998
- var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
999
- const inputOTPContext = React7.useContext(OTPInputContext);
1160
+ var InputOTPSlot = React8.forwardRef(({ index, className, ...props }, ref) => {
1161
+ const inputOTPContext = React8.useContext(OTPInputContext);
1000
1162
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1001
- return /* @__PURE__ */ jsxs12(
1163
+ return /* @__PURE__ */ jsxs13(
1002
1164
  "div",
1003
1165
  {
1004
1166
  ref,
@@ -1010,7 +1172,7 @@ var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
1010
1172
  ...props,
1011
1173
  children: [
1012
1174
  char,
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" }) })
1175
+ hasFakeCaret && /* @__PURE__ */ jsx26("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx26("div", { className: "h-4 w-px animate-caret-blink bg-branding-bg-default duration-750" }) })
1014
1176
  ]
1015
1177
  }
1016
1178
  );
@@ -1018,23 +1180,23 @@ var InputOTPSlot = React7.forwardRef(({ index, className, ...props }, ref) => {
1018
1180
  InputOTPSlot.displayName = "InputOTPSlot";
1019
1181
 
1020
1182
  // src/theme/default/components/form/pin-code-input.tsx
1021
- import { jsx as jsx25 } from "react/jsx-runtime";
1183
+ import { jsx as jsx27 } from "react/jsx-runtime";
1022
1184
  var DefaultPinCodeInput = ({ attributes }) => {
1023
- const { setValue, watch } = useFormContext3();
1185
+ const { setValue, watch } = useFormContext5();
1024
1186
  const { maxlength, name } = attributes;
1025
1187
  const elements = maxlength != null ? maxlength : 6;
1026
1188
  const handleInputChange = (v) => {
1027
1189
  setValue(name, v);
1028
1190
  };
1029
1191
  const value = watch(name);
1030
- return /* @__PURE__ */ jsx25(
1192
+ return /* @__PURE__ */ jsx27(
1031
1193
  InputOTP,
1032
1194
  {
1033
1195
  maxLength: maxlength != null ? maxlength : 6,
1034
1196
  onChange: handleInputChange,
1035
1197
  name,
1036
1198
  value,
1037
- children: /* @__PURE__ */ jsx25(InputOTPGroup, { className: "w-full space-x-2 justify-between", children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx25(
1199
+ children: /* @__PURE__ */ jsx27(InputOTPGroup, { className: "w-full space-x-2 justify-between", children: [...Array(elements)].map((_, index) => /* @__PURE__ */ jsx27(
1038
1200
  InputOTPSlot,
1039
1201
  {
1040
1202
  index,
@@ -1046,170 +1208,192 @@ var DefaultPinCodeInput = ({ attributes }) => {
1046
1208
  );
1047
1209
  };
1048
1210
 
1211
+ // src/theme/default/components/form/section.tsx
1212
+ import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
1213
+ var DefaultFormSection = ({ children }) => {
1214
+ return /* @__PURE__ */ jsx28("div", { className: "flex flex-col w-80 md:w-[712px] lg:w-[802px] xl:w-[896px]", children });
1215
+ };
1216
+ var DefaultFormSectionContent = ({
1217
+ title,
1218
+ description,
1219
+ children
1220
+ }) => {
1221
+ return /* @__PURE__ */ jsxs14("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: [
1222
+ /* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-2", children: [
1223
+ /* @__PURE__ */ jsx28("h3", { className: "font-medium text-dialog-fg-default", children: title }),
1224
+ /* @__PURE__ */ jsx28("span", { className: "text-sm text-dialog-fg-subtle", children: description })
1225
+ ] }),
1226
+ children
1227
+ ] });
1228
+ };
1229
+ var DefaultFormSectionFooter = ({ children }) => {
1230
+ return /* @__PURE__ */ jsx28("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 });
1231
+ };
1232
+
1049
1233
  // src/theme/default/components/form/social.tsx
1050
1234
  import {
1051
1235
  uiTextToFormattedMessage as uiTextToFormattedMessage8,
1052
- useOryFlow as useOryFlow8
1236
+ useOryFlow as useOryFlow9
1053
1237
  } from "@ory/elements-react";
1054
1238
 
1055
1239
  // src/theme/default/provider-logos/apple.svg
1056
- import * as React8 from "react";
1057
- import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
1240
+ import * as React9 from "react";
1241
+ import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
1058
1242
  var SvgApple = (props) => {
1059
1243
  var _a, _b;
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: [
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" })
1244
+ return /* @__PURE__ */ jsxs15("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
1245
+ /* @__PURE__ */ jsx29("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" }),
1246
+ /* @__PURE__ */ jsx29("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" })
1063
1247
  ] });
1064
1248
  };
1065
1249
  var apple_default = SvgApple;
1066
1250
 
1067
1251
  // src/theme/default/provider-logos/auth0.svg
1068
- import * as React9 from "react";
1069
- import { jsx as jsx27 } from "react/jsx-runtime";
1252
+ import * as React10 from "react";
1253
+ import { jsx as jsx30 } from "react/jsx-runtime";
1070
1254
  var SvgAuth0 = (props) => {
1071
1255
  var _a, _b;
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" }) });
1256
+ return /* @__PURE__ */ jsx30("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__ */ jsx30("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" }) });
1073
1257
  };
1074
1258
  var auth0_default = SvgAuth0;
1075
1259
 
1076
1260
  // src/theme/default/provider-logos/discord.svg
1077
- import * as React10 from "react";
1078
- import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
1261
+ import * as React11 from "react";
1262
+ import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
1079
1263
  var SvgDiscord = (props) => {
1080
1264
  var _a, _b;
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: [
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" })
1265
+ return /* @__PURE__ */ jsxs16("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: [
1266
+ /* @__PURE__ */ jsx31("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" }),
1267
+ /* @__PURE__ */ jsx31("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" })
1084
1268
  ] });
1085
1269
  };
1086
1270
  var discord_default = SvgDiscord;
1087
1271
 
1088
1272
  // src/theme/default/provider-logos/facebook.svg
1089
- import * as React11 from "react";
1090
- import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
1273
+ import * as React12 from "react";
1274
+ import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
1091
1275
  var SvgFacebook = (props) => {
1092
1276
  var _a, _b;
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: [
1094
- /* @__PURE__ */ jsxs15("g", { clipPath: "url(#facebook_svg__a)", children: [
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" })
1277
+ 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: [
1278
+ /* @__PURE__ */ jsxs17("g", { clipPath: "url(#facebook_svg__a)", children: [
1279
+ /* @__PURE__ */ jsx32("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" }),
1280
+ /* @__PURE__ */ jsx32("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" })
1097
1281
  ] }),
1098
- /* @__PURE__ */ jsx29("defs", { children: /* @__PURE__ */ jsx29("clipPath", { id: "facebook_svg__a", children: /* @__PURE__ */ jsx29("rect", { fill: "#fff" }) }) })
1282
+ /* @__PURE__ */ jsx32("defs", { children: /* @__PURE__ */ jsx32("clipPath", { id: "facebook_svg__a", children: /* @__PURE__ */ jsx32("rect", { fill: "#fff" }) }) })
1099
1283
  ] });
1100
1284
  };
1101
1285
  var facebook_default = SvgFacebook;
1102
1286
 
1103
1287
  // src/theme/default/provider-logos/generic.svg
1104
- import * as React12 from "react";
1105
- import { jsx as jsx30, jsxs as jsxs16 } from "react/jsx-runtime";
1288
+ import * as React13 from "react";
1289
+ import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
1106
1290
  var SvgGeneric = (props) => {
1107
1291
  var _a, _b;
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: [
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" })
1292
+ return /* @__PURE__ */ jsxs18("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: [
1293
+ /* @__PURE__ */ jsx33("path", { stroke: "none", d: "M0 0h24v24H0z" }),
1294
+ /* @__PURE__ */ jsx33("path", { d: "M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0" }),
1295
+ /* @__PURE__ */ jsx33("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" })
1112
1296
  ] });
1113
1297
  };
1114
1298
  var generic_default = SvgGeneric;
1115
1299
 
1116
1300
  // src/theme/default/provider-logos/github.svg
1117
- import * as React13 from "react";
1118
- import { jsx as jsx31 } from "react/jsx-runtime";
1301
+ import * as React14 from "react";
1302
+ import { jsx as jsx34 } from "react/jsx-runtime";
1119
1303
  var SvgGithub = (props) => {
1120
1304
  var _a, _b;
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" }) });
1305
+ return /* @__PURE__ */ jsx34("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__ */ jsx34("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" }) });
1122
1306
  };
1123
1307
  var github_default = SvgGithub;
1124
1308
 
1125
1309
  // src/theme/default/provider-logos/gitlab.svg
1126
- import * as React14 from "react";
1127
- import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
1310
+ import * as React15 from "react";
1311
+ import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
1128
1312
  var SvgGitlab = (props) => {
1129
1313
  var _a, _b;
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: [
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" })
1314
+ return /* @__PURE__ */ jsxs19("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: [
1315
+ /* @__PURE__ */ jsx35("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" }),
1316
+ /* @__PURE__ */ jsx35("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" }),
1317
+ /* @__PURE__ */ jsx35("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" }),
1318
+ /* @__PURE__ */ jsx35("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" })
1135
1319
  ] });
1136
1320
  };
1137
1321
  var gitlab_default = SvgGitlab;
1138
1322
 
1139
1323
  // src/theme/default/provider-logos/google.svg
1140
- import * as React15 from "react";
1141
- import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
1324
+ import * as React16 from "react";
1325
+ import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
1142
1326
  var SvgGoogle = (props) => {
1143
1327
  var _a, _b;
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: [
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" })
1328
+ return /* @__PURE__ */ jsxs20("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: [
1329
+ /* @__PURE__ */ jsx36("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" }),
1330
+ /* @__PURE__ */ jsx36("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" }),
1331
+ /* @__PURE__ */ jsx36("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" }),
1332
+ /* @__PURE__ */ jsx36("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" })
1149
1333
  ] });
1150
1334
  };
1151
1335
  var google_default = SvgGoogle;
1152
1336
 
1153
1337
  // src/theme/default/provider-logos/linkedin.svg
1154
- import * as React16 from "react";
1155
- import { jsx as jsx34, jsxs as jsxs19 } from "react/jsx-runtime";
1338
+ import * as React17 from "react";
1339
+ import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
1156
1340
  var SvgLinkedin = (props) => {
1157
1341
  var _a, _b;
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: [
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" })
1342
+ 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: [
1343
+ /* @__PURE__ */ jsx37("rect", { x: 2, y: 2, fill: "#1275B1", rx: 14 }),
1344
+ /* @__PURE__ */ jsx37("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" })
1161
1345
  ] });
1162
1346
  };
1163
1347
  var linkedin_default = SvgLinkedin;
1164
1348
 
1165
1349
  // src/theme/default/provider-logos/microsoft.svg
1166
- import * as React17 from "react";
1167
- import { jsx as jsx35, jsxs as jsxs20 } from "react/jsx-runtime";
1350
+ import * as React18 from "react";
1351
+ import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
1168
1352
  var SvgMicrosoft = (props) => {
1169
1353
  var _a, _b;
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: [
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" })
1354
+ return /* @__PURE__ */ jsxs22("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: [
1355
+ /* @__PURE__ */ jsx38("path", { fill: "#F35325", d: "M1 1h10v10H1z" }),
1356
+ /* @__PURE__ */ jsx38("path", { fill: "#81BC06", d: "M12 1h10v10H12z" }),
1357
+ /* @__PURE__ */ jsx38("path", { fill: "#05A6F0", d: "M1 12h10v10H1z" }),
1358
+ /* @__PURE__ */ jsx38("path", { fill: "#FFBA08", d: "M12 12h10v10H12z" })
1175
1359
  ] });
1176
1360
  };
1177
1361
  var microsoft_default = SvgMicrosoft;
1178
1362
 
1179
1363
  // src/theme/default/provider-logos/slack.svg
1180
- import * as React18 from "react";
1181
- import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
1364
+ import * as React19 from "react";
1365
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
1182
1366
  var SvgSlack = (props) => {
1183
1367
  var _a, _b;
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: [
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" })
1368
+ 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: [
1369
+ /* @__PURE__ */ jsx39("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" }),
1370
+ /* @__PURE__ */ jsx39("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" }),
1371
+ /* @__PURE__ */ jsx39("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" }),
1372
+ /* @__PURE__ */ jsx39("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" })
1189
1373
  ] });
1190
1374
  };
1191
1375
  var slack_default = SvgSlack;
1192
1376
 
1193
1377
  // src/theme/default/provider-logos/spotify.svg
1194
- import * as React19 from "react";
1195
- import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
1378
+ import * as React20 from "react";
1379
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
1196
1380
  var SvgSpotify = (props) => {
1197
1381
  var _a, _b;
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: [
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" })
1382
+ return /* @__PURE__ */ jsxs24("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: [
1383
+ /* @__PURE__ */ jsx40("circle", { cx: 16, cy: 16, r: 14, fill: "#1ED760" }),
1384
+ /* @__PURE__ */ jsx40("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" })
1201
1385
  ] });
1202
1386
  };
1203
1387
  var spotify_default = SvgSpotify;
1204
1388
 
1205
1389
  // src/theme/default/provider-logos/yandex.svg
1206
- import * as React20 from "react";
1207
- import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
1390
+ import * as React21 from "react";
1391
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
1208
1392
  var SvgYandex = (props) => {
1209
1393
  var _a, _b;
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: [
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" })
1394
+ return /* @__PURE__ */ jsxs25("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: [
1395
+ /* @__PURE__ */ jsx41("circle", { cx: 16, cy: 16, r: 14, fill: "#fff" }),
1396
+ /* @__PURE__ */ jsx41("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" })
1213
1397
  ] });
1214
1398
  };
1215
1399
  var yandex_default = SvgYandex;
@@ -1234,7 +1418,7 @@ var provider_logos_default = logos;
1234
1418
 
1235
1419
  // src/theme/default/components/form/social.tsx
1236
1420
  import { useIntl as useIntl11 } from "react-intl";
1237
- import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
1421
+ import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
1238
1422
  function extractProvider(context) {
1239
1423
  if (context && typeof context === "object" && "provider" in context && typeof context.provider === "string") {
1240
1424
  return context.provider;
@@ -1256,13 +1440,13 @@ function DefaultButtonSocial({
1256
1440
  } = attributes;
1257
1441
  const {
1258
1442
  flow: { ui }
1259
- } = useOryFlow8();
1443
+ } = useOryFlow9();
1260
1444
  const intl = useIntl11();
1261
1445
  const oidcNodeCount = (_a = ui.nodes.filter((node2) => node2.group === "oidc").length) != null ? _a : 0;
1262
1446
  const Logo = provider_logos_default[attributes.value];
1263
1447
  const showLabel = _showLabel != null ? _showLabel : oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0;
1264
1448
  const provider = (_c = extractProvider((_b = node.meta.label) == null ? void 0 : _b.context)) != null ? _c : "";
1265
- return /* @__PURE__ */ jsxs24(
1449
+ return /* @__PURE__ */ jsxs26(
1266
1450
  "button",
1267
1451
  {
1268
1452
  className: cn(
@@ -1275,14 +1459,14 @@ function DefaultButtonSocial({
1275
1459
  ...props,
1276
1460
  onClick,
1277
1461
  children: [
1278
- /* @__PURE__ */ jsx39("span", { className: "w-5 h-5", children: Logo ? /* @__PURE__ */ jsx39(
1462
+ /* @__PURE__ */ jsx42("span", { className: "w-5 h-5", children: Logo ? /* @__PURE__ */ jsx42(
1279
1463
  Logo,
1280
1464
  {
1281
1465
  size: 20,
1282
1466
  className: "object-fill w-full h-full"
1283
1467
  }
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
1468
+ ) : /* @__PURE__ */ jsx42("span", { className: "rounded-full aspect-square border flex items-center justify-center text-xs", children: provider.slice(0, 2) }) }),
1469
+ showLabel && node.meta.label ? /* @__PURE__ */ jsx42("span", { className: "text-sm text-left leading-none font-medium text-forms-fg-default flex-grow", children: uiTextToFormattedMessage8(node.meta.label, intl) }) : null
1286
1470
  ]
1287
1471
  }
1288
1472
  );
@@ -1291,7 +1475,7 @@ function DefaultSocialButtonContainer({
1291
1475
  children,
1292
1476
  nodes
1293
1477
  }) {
1294
- return /* @__PURE__ */ jsx39(
1478
+ return /* @__PURE__ */ jsx42(
1295
1479
  "div",
1296
1480
  {
1297
1481
  className: cn("grid gap-3", {
@@ -1308,104 +1492,383 @@ function DefaultSocialButtonContainer({
1308
1492
  // src/theme/default/components/form/text.tsx
1309
1493
  import { uiTextToFormattedMessage as uiTextToFormattedMessage9 } from "@ory/elements-react";
1310
1494
  import { useIntl as useIntl12 } from "react-intl";
1311
- import { Fragment as Fragment2, jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
1495
+ import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
1312
1496
  function DefaultText({ node, attributes }) {
1313
1497
  var _a;
1314
1498
  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))
1499
+ return /* @__PURE__ */ jsxs27(Fragment3, { children: [
1500
+ /* @__PURE__ */ jsx43("p", { "data-testid": `node/text/${attributes.id}/label`, children: node.meta.label ? uiTextToFormattedMessage9(node.meta.label, intl) : "" }),
1501
+ (_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */ jsx43("pre", { "data-testid": `node/text/lookup_secret_codes/text`, children: /* @__PURE__ */ jsx43("code", { children: text ? uiTextToFormattedMessage9(text, intl) : "" }) }, index))
1318
1502
  ] });
1319
1503
  }
1320
1504
 
1321
- // src/theme/default/assets/icons/arrow-left.svg
1322
- import * as React21 from "react";
1323
- import { jsx as jsx41 } from "react/jsx-runtime";
1324
- var SvgArrowLeft = (props) => {
1325
- var _a, _b;
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" }) });
1327
- };
1328
- var arrow_left_default = SvgArrowLeft;
1505
+ // src/theme/default/components/generic/page-header.tsx
1506
+ import { useComponents as useComponents3 } from "@ory/elements-react";
1329
1507
 
1330
- // src/theme/default/components/card/current-identifier-button.tsx
1331
- import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
1332
- function DefaultCurrentIdentifierButton({
1333
- attributes,
1334
- onClick,
1335
- type,
1336
- href
1337
- }) {
1338
- const Element = onClick ? "button" : "a";
1339
- return /* @__PURE__ */ jsx42("div", { children: /* @__PURE__ */ jsxs26(
1340
- Element,
1341
- {
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",
1343
- onClick,
1344
- ...attributes,
1345
- href,
1346
- type,
1347
- children: [
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 })
1350
- ]
1508
+ // src/theme/default/components/ui/user-menu.tsx
1509
+ import { DropdownMenuLabel as DropdownMenuLabel2 } from "@radix-ui/react-dropdown-menu";
1510
+ import { useCallback, useEffect, useState as useState2 } from "react";
1511
+ import { useOryFlow as useOryFlow10 } from "@ory/elements-react";
1512
+
1513
+ // src/util/client.ts
1514
+ import {
1515
+ Configuration,
1516
+ FrontendApi
1517
+ } from "@ory/client-fetch";
1518
+ function frontendClient(sdkUrl, opts = {}) {
1519
+ const config = new Configuration({
1520
+ ...opts,
1521
+ basePath: sdkUrl,
1522
+ headers: {
1523
+ Accept: "application/json",
1524
+ ...opts.headers
1351
1525
  }
1352
- ) });
1526
+ });
1527
+ return new FrontendApi(config);
1353
1528
  }
1354
1529
 
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
1530
+ // src/theme/default/assets/icons/logout.svg
1378
1531
  import * as React22 from "react";
1379
1532
  import { jsx as jsx44 } from "react/jsx-runtime";
1380
- var SvgDownload = (props) => {
1533
+ var SvgLogout = (props) => {
1381
1534
  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" }) });
1535
+ return /* @__PURE__ */ jsx44("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx44("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 5.334V4A1.333 1.333 0 0 0 8 2.667H3.333A1.333 1.333 0 0 0 2 4v8a1.333 1.333 0 0 0 1.333 1.334H8A1.333 1.333 0 0 0 9.333 12v-1.333M4.667 8H14m0 0-2-2m2 2-2 2" }) });
1383
1536
  };
1384
- var download_default = SvgDownload;
1537
+ var logout_default = SvgLogout;
1385
1538
 
1386
- // src/theme/default/assets/icons/eye.svg
1539
+ // src/theme/default/assets/icons/settings.svg
1387
1540
  import * as React23 from "react";
1388
1541
  import { jsx as jsx45, jsxs as jsxs28 } from "react/jsx-runtime";
1542
+ var SvgSettings = (props) => {
1543
+ var _a, _b;
1544
+ return /* @__PURE__ */ jsx45("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsxs28("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", children: [
1545
+ /* @__PURE__ */ jsx45("path", { d: "M6.883 2.878c.284-1.17 1.95-1.17 2.234 0a1.15 1.15 0 0 0 1.715.71c1.029-.626 2.207.551 1.58 1.58a1.148 1.148 0 0 0 .71 1.715c1.17.284 1.17 1.95 0 2.234a1.15 1.15 0 0 0-.71 1.715c.626 1.029-.551 2.207-1.58 1.58a1.148 1.148 0 0 0-1.715.71c-.284 1.17-1.95 1.17-2.234 0a1.15 1.15 0 0 0-1.715-.71c-1.029.626-2.207-.551-1.58-1.58a1.15 1.15 0 0 0-.71-1.715c-1.17-.284-1.17-1.95 0-2.234a1.15 1.15 0 0 0 .71-1.715c-.626-1.029.551-2.207 1.58-1.58.667.405 1.531.047 1.715-.71" }),
1546
+ /* @__PURE__ */ jsx45("path", { d: "M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0" })
1547
+ ] }) });
1548
+ };
1549
+ var settings_default = SvgSettings;
1550
+
1551
+ // src/theme/default/utils/user.ts
1552
+ var getUserInitials = (session) => {
1553
+ var _a, _b;
1554
+ const avatar = "";
1555
+ let primary = "";
1556
+ let secondary = "";
1557
+ if (!((_a = session == null ? void 0 : session.identity) == null ? void 0 : _a.traits)) {
1558
+ return {
1559
+ primary,
1560
+ secondary,
1561
+ avatar
1562
+ };
1563
+ }
1564
+ const traits = (_b = session.identity) == null ? void 0 : _b.traits;
1565
+ if (traits.email) {
1566
+ secondary = traits.email;
1567
+ }
1568
+ if (traits.name) {
1569
+ if (typeof traits.name === "string") {
1570
+ primary = traits.name;
1571
+ }
1572
+ if (traits.name.first && traits.name.last) {
1573
+ primary = traits.name.first + " " + traits.name.last;
1574
+ }
1575
+ }
1576
+ if (primary === "") {
1577
+ primary = secondary;
1578
+ secondary = "";
1579
+ }
1580
+ return {
1581
+ primary,
1582
+ secondary,
1583
+ avatar
1584
+ };
1585
+ };
1586
+
1587
+ // src/theme/default/components/ui/dropdown-menu.tsx
1588
+ import { forwardRef as forwardRef3 } from "react";
1589
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1590
+ import { jsx as jsx46 } from "react/jsx-runtime";
1591
+ var DropdownMenu = DropdownMenuPrimitive.Root;
1592
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1593
+ var DropdownMenuContent = forwardRef3(({ className, sideOffset = 16, ...props }, ref) => /* @__PURE__ */ jsx46(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx46(
1594
+ DropdownMenuPrimitive.Content,
1595
+ {
1596
+ ref,
1597
+ sideOffset,
1598
+ align: "end",
1599
+ className: cn(
1600
+ "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",
1601
+ "border border-dialog-border-default bg-dialog-bg-default rounded-border-radius-cards",
1602
+ className
1603
+ ),
1604
+ ...props
1605
+ }
1606
+ ) }));
1607
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1608
+ var DropdownMenuItem = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx46(
1609
+ DropdownMenuPrimitive.Item,
1610
+ {
1611
+ ref,
1612
+ className: cn(
1613
+ "relative flex cursor-pointer select-none items-center outline-none transition-colors data-[disabled]:pointer-events-none",
1614
+ "px-8 py-3 lg:py-4.5 text-sm gap-6",
1615
+ "first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover data-[disabled]:border-button-secondary-border-disabled",
1616
+ "text-button-secondary-fg-default bg-button-secondary-bg-default",
1617
+ "hover:text-button-secondary-fg-hover hover:bg-button-secondary-bg-hover",
1618
+ "data-[disabled]:text-button-secondary-fg-disabled data-[disabled]:bg-button-secondary-bg-disabled",
1619
+ inset && "pl-8",
1620
+ className
1621
+ ),
1622
+ ...props
1623
+ }
1624
+ ));
1625
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1626
+ var DropdownMenuLabel = forwardRef3(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx46(
1627
+ DropdownMenuPrimitive.Label,
1628
+ {
1629
+ ref,
1630
+ className: cn(
1631
+ "px-2 py-1.5 text-sm font-semibold",
1632
+ inset && "pl-8",
1633
+ className
1634
+ ),
1635
+ ...props
1636
+ }
1637
+ ));
1638
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1639
+
1640
+ // src/theme/default/components/ui/user-avater.tsx
1641
+ import { forwardRef as forwardRef4 } from "react";
1642
+
1643
+ // src/theme/default/assets/icons/user.svg
1644
+ import * as React24 from "react";
1645
+ import { jsx as jsx47 } from "react/jsx-runtime";
1646
+ var SvgUser = (props) => {
1647
+ var _a, _b;
1648
+ return /* @__PURE__ */ jsx47("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx47("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2M8 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0" }) });
1649
+ };
1650
+ var user_default = SvgUser;
1651
+
1652
+ // src/theme/default/components/ui/user-avater.tsx
1653
+ import { jsx as jsx48 } from "react/jsx-runtime";
1654
+ var UserAvatar = forwardRef4(
1655
+ ({ initials, ...rest }, ref) => {
1656
+ return /* @__PURE__ */ jsx48(
1657
+ "button",
1658
+ {
1659
+ ref,
1660
+ 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",
1661
+ ...rest,
1662
+ children: /* @__PURE__ */ jsx48("div", { className: "relative size-full flex items-center justify-center", children: initials.avatar ? /* @__PURE__ */ jsx48(
1663
+ "img",
1664
+ {
1665
+ src: initials.avatar,
1666
+ alt: initials.primary,
1667
+ className: "w-full object-contain"
1668
+ }
1669
+ ) : /* @__PURE__ */ jsx48(user_default, { size: 24, className: "text-button-primary-fg-default" }) })
1670
+ }
1671
+ );
1672
+ }
1673
+ );
1674
+ UserAvatar.displayName = "UserAvatar";
1675
+
1676
+ // src/theme/default/components/ui/user-menu.tsx
1677
+ import { jsx as jsx49, jsxs as jsxs29 } from "react/jsx-runtime";
1678
+ var UserMenu = ({ session }) => {
1679
+ const { config } = useOryFlow10();
1680
+ const initials = getUserInitials(session);
1681
+ const [logoutFlow, setLogoutFlow] = useState2();
1682
+ const fetchLogoutFlow = useCallback(async () => {
1683
+ const flow = await frontendClient(config.sdk.url).createBrowserLogoutFlow();
1684
+ setLogoutFlow(flow);
1685
+ }, [config.sdk.url]);
1686
+ useEffect(() => {
1687
+ void fetchLogoutFlow();
1688
+ }, [fetchLogoutFlow]);
1689
+ return /* @__PURE__ */ jsxs29(DropdownMenu, { children: [
1690
+ /* @__PURE__ */ jsx49(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx49(UserAvatar, { initials }) }),
1691
+ /* @__PURE__ */ jsxs29(DropdownMenuContent, { children: [
1692
+ /* @__PURE__ */ jsxs29(DropdownMenuLabel2, { className: "px-5 py-4.5 flex gap-3", children: [
1693
+ /* @__PURE__ */ jsx49(UserAvatar, { disabled: true, initials }),
1694
+ /* @__PURE__ */ jsxs29("div", { className: "flex flex-col text-sm leading-tight justify-center", children: [
1695
+ /* @__PURE__ */ jsx49("div", { className: "text-dialog-fg-default", children: initials.primary }),
1696
+ initials.secondary && /* @__PURE__ */ jsx49("div", { className: "text-dialog-fg-mute", children: initials.secondary })
1697
+ ] })
1698
+ ] }),
1699
+ /* @__PURE__ */ jsx49(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs29("a", { href: "/settings", children: [
1700
+ /* @__PURE__ */ jsx49(settings_default, { size: 16 }),
1701
+ " User settings"
1702
+ ] }) }),
1703
+ /* @__PURE__ */ jsx49(DropdownMenuItem, { asChild: true, disabled: !(logoutFlow == null ? void 0 : logoutFlow.logout_url), children: /* @__PURE__ */ jsxs29("a", { href: logoutFlow == null ? void 0 : logoutFlow.logout_url, children: [
1704
+ /* @__PURE__ */ jsx49(logout_default, { size: 16 }),
1705
+ " Logout"
1706
+ ] }) })
1707
+ ] })
1708
+ ] });
1709
+ };
1710
+
1711
+ // src/theme/default/components/generic/page-header.tsx
1712
+ import { useSession } from "@ory/elements-react/client";
1713
+ import { jsx as jsx50, jsxs as jsxs30 } from "react/jsx-runtime";
1714
+ var DefaultPageHeader = (_props) => {
1715
+ const { Card } = useComponents3();
1716
+ const { session } = useSession();
1717
+ return /* @__PURE__ */ jsx50("div", { className: "flex max-w-[896px] flex-col w-full gap-3 mt-16", children: /* @__PURE__ */ jsx50("div", { className: "flex flex-col gap-12", children: /* @__PURE__ */ jsxs30("div", { className: "flex gap-2 max-h-10 justify-between flex-1", children: [
1718
+ /* @__PURE__ */ jsx50("div", { className: "h-10 flex-1 relative", children: /* @__PURE__ */ jsx50(Card.Logo, {}) }),
1719
+ /* @__PURE__ */ jsx50(UserMenu, { session })
1720
+ ] }) }) });
1721
+ };
1722
+
1723
+ // src/theme/default/assets/icons/trash.svg
1724
+ import * as React25 from "react";
1725
+ import { jsx as jsx51 } from "react/jsx-runtime";
1726
+ var SvgTrash = (props) => {
1727
+ var _a, _b;
1728
+ return /* @__PURE__ */ jsx51("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx51("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 7h16m-10 4v6m4-6v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" }) });
1729
+ };
1730
+ var trash_default = SvgTrash;
1731
+
1732
+ // src/theme/default/components/settings/settings-oidc.tsx
1733
+ import { useFormContext as useFormContext6 } from "react-hook-form";
1734
+ import { jsx as jsx52, jsxs as jsxs31 } from "react/jsx-runtime";
1735
+ function DefaultSettingsOidc({
1736
+ linkButtons,
1737
+ unlinkButtons
1738
+ }) {
1739
+ const hasLinkButtons = linkButtons.length > 0;
1740
+ const hasUnlinkButtons = unlinkButtons.length > 0;
1741
+ const { setValue } = useFormContext6();
1742
+ return /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-8", children: [
1743
+ hasLinkButtons && /* @__PURE__ */ jsx52("div", { className: "flex gap-3 items-start [&>button]:w-[79px]", children: linkButtons.map((button) => {
1744
+ const attrs = button.attributes;
1745
+ return /* @__PURE__ */ jsx52(
1746
+ DefaultButtonSocial,
1747
+ {
1748
+ showLabel: false,
1749
+ node: button,
1750
+ attributes: attrs,
1751
+ onClick: () => {
1752
+ setValue("link", attrs.value);
1753
+ setValue("method", "oidc");
1754
+ }
1755
+ },
1756
+ attrs.value
1757
+ );
1758
+ }) }),
1759
+ hasUnlinkButtons && hasLinkButtons ? /* @__PURE__ */ jsx52(DefaultHorizontalDivider, {}) : null,
1760
+ unlinkButtons.map((button) => {
1761
+ var _a, _b;
1762
+ const attrs = button.attributes;
1763
+ const provider = (_b = extractProvider((_a = button.meta.label) == null ? void 0 : _a.context)) != null ? _b : "";
1764
+ const Logo = attrs.value in provider_logos_default ? provider_logos_default[attrs.value] : provider_logos_default.generic;
1765
+ return /* @__PURE__ */ jsxs31("div", { className: "flex justify-between", children: [
1766
+ /* @__PURE__ */ jsxs31("div", { className: "flex gap-6 items-center", children: [
1767
+ /* @__PURE__ */ jsx52(Logo, { size: 32 }),
1768
+ /* @__PURE__ */ jsx52("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: provider })
1769
+ ] }),
1770
+ /* @__PURE__ */ jsx52(
1771
+ "button",
1772
+ {
1773
+ ...attrs,
1774
+ type: "submit",
1775
+ onClick: () => {
1776
+ setValue("unlink", attrs.value);
1777
+ setValue("method", "oidc");
1778
+ },
1779
+ children: /* @__PURE__ */ jsx52(trash_default, { className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover" })
1780
+ }
1781
+ )
1782
+ ] }, attrs.value);
1783
+ })
1784
+ ] });
1785
+ }
1786
+
1787
+ // src/theme/default/components/settings/settings-passkey.tsx
1788
+ import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
1789
+ function DefaultSettingsPasskey({
1790
+ triggerButton,
1791
+ removeButtons
1792
+ }) {
1793
+ const hasRemoveButtons = removeButtons.length > 0;
1794
+ return /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-8", children: [
1795
+ /* @__PURE__ */ jsx53("div", { className: "flex gap-3 items-end max-w-[60%]", children: triggerButton ? /* @__PURE__ */ jsx53(
1796
+ DefaultButton,
1797
+ {
1798
+ node: triggerButton,
1799
+ attributes: triggerButton.attributes,
1800
+ onClick: triggerButton.onClick
1801
+ }
1802
+ ) : null }),
1803
+ hasRemoveButtons ? /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-8", children: [
1804
+ /* @__PURE__ */ jsx53(DefaultHorizontalDivider, {}),
1805
+ /* @__PURE__ */ jsx53("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1806
+ var _a, _b;
1807
+ const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
1808
+ const addedAt = "added_at" in context ? context.added_at : null;
1809
+ const diaplyName = "display_name" in context ? context.display_name : null;
1810
+ const keyId = "value" in node.attributes ? node.attributes.value : null;
1811
+ return /* @__PURE__ */ jsxs32(
1812
+ "div",
1813
+ {
1814
+ className: "flex justify-between gap-6",
1815
+ children: [
1816
+ /* @__PURE__ */ jsx53(passkey_default, { size: 32, className: "text-dialog-fg-default" }),
1817
+ /* @__PURE__ */ jsxs32("div", { className: "flex-1 flex-col", children: [
1818
+ /* @__PURE__ */ jsx53("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
1819
+ /* @__PURE__ */ jsx53("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
1820
+ ] }),
1821
+ addedAt && /* @__PURE__ */ jsx53("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
1822
+ /* @__PURE__ */ jsx53(
1823
+ "button",
1824
+ {
1825
+ ...node.attributes,
1826
+ type: "submit",
1827
+ className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
1828
+ children: /* @__PURE__ */ jsx53(trash_default, { size: 20 })
1829
+ }
1830
+ )
1831
+ ]
1832
+ },
1833
+ `webauthn-remove-button-${i}`
1834
+ );
1835
+ }) })
1836
+ ] }) : null
1837
+ ] });
1838
+ }
1839
+
1840
+ // src/theme/default/assets/icons/download.svg
1841
+ import * as React26 from "react";
1842
+ import { jsx as jsx54 } from "react/jsx-runtime";
1843
+ var SvgDownload = (props) => {
1844
+ var _a, _b;
1845
+ return /* @__PURE__ */ jsx54("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx54("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5m0 0 5-5m-5 5V4" }) });
1846
+ };
1847
+ var download_default = SvgDownload;
1848
+
1849
+ // src/theme/default/assets/icons/eye.svg
1850
+ import * as React27 from "react";
1851
+ import { jsx as jsx55, jsxs as jsxs33 } from "react/jsx-runtime";
1389
1852
  var SvgEye = (props) => {
1390
1853
  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" })
1854
+ return /* @__PURE__ */ jsx55("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsxs33("g", { strokeLinecap: "round", strokeLinejoin: "round", children: [
1855
+ /* @__PURE__ */ jsx55("path", { stroke: "currentColor", d: "M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0" }),
1856
+ /* @__PURE__ */ jsx55("path", { stroke: "#64748B", d: "M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6" })
1394
1857
  ] }) });
1395
1858
  };
1396
1859
  var eye_default = SvgEye;
1397
1860
 
1398
1861
  // src/theme/default/assets/icons/refresh.svg
1399
- import * as React24 from "react";
1400
- import { jsx as jsx46 } from "react/jsx-runtime";
1862
+ import * as React28 from "react";
1863
+ import { jsx as jsx56 } from "react/jsx-runtime";
1401
1864
  var SvgRefresh = (props) => {
1402
1865
  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" }) });
1866
+ return /* @__PURE__ */ jsx56("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx56("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4" }) });
1404
1867
  };
1405
1868
  var refresh_default = SvgRefresh;
1406
1869
 
1407
1870
  // src/theme/default/components/settings/settings-recovery-codes.tsx
1408
- import { jsx as jsx47, jsxs as jsxs29 } from "react/jsx-runtime";
1871
+ import { jsx as jsx57, jsxs as jsxs34 } from "react/jsx-runtime";
1409
1872
  function DefaultSettingsRecoveryCodes({
1410
1873
  codes,
1411
1874
  regnerateButton,
@@ -1422,15 +1885,15 @@ function DefaultSettingsRecoveryCodes({
1422
1885
  element.click();
1423
1886
  };
1424
1887
  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(
1888
+ return /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-8", children: [
1889
+ /* @__PURE__ */ jsx57(DefaultHorizontalDivider, {}),
1890
+ /* @__PURE__ */ jsxs34("div", { className: "flex justify-end gap-4", children: [
1891
+ regnerateButton && /* @__PURE__ */ jsx57(
1429
1892
  "button",
1430
1893
  {
1431
1894
  ...regnerateButton.attributes,
1432
1895
  type: "submit",
1433
- children: /* @__PURE__ */ jsx47(
1896
+ children: /* @__PURE__ */ jsx57(
1434
1897
  refresh_default,
1435
1898
  {
1436
1899
  size: 24,
@@ -1439,12 +1902,12 @@ function DefaultSettingsRecoveryCodes({
1439
1902
  )
1440
1903
  }
1441
1904
  ),
1442
- revealButton && /* @__PURE__ */ jsx47(
1905
+ revealButton && /* @__PURE__ */ jsx57(
1443
1906
  "button",
1444
1907
  {
1445
1908
  ...revealButton.attributes,
1446
1909
  type: "submit",
1447
- children: /* @__PURE__ */ jsx47(
1910
+ children: /* @__PURE__ */ jsx57(
1448
1911
  eye_default,
1449
1912
  {
1450
1913
  size: 24,
@@ -1453,7 +1916,7 @@ function DefaultSettingsRecoveryCodes({
1453
1916
  )
1454
1917
  }
1455
1918
  ),
1456
- hasCodes ? /* @__PURE__ */ jsx47(
1919
+ hasCodes ? /* @__PURE__ */ jsx57(
1457
1920
  download_default,
1458
1921
  {
1459
1922
  size: 24,
@@ -1462,30 +1925,21 @@ function DefaultSettingsRecoveryCodes({
1462
1925
  }
1463
1926
  ) : null
1464
1927
  ] }),
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
1928
+ hasCodes ? /* @__PURE__ */ jsx57("div", { className: "rounded-border-radius-cards bg-bg-default ring-1 ring-dialog-border-default p-6", children: /* @__PURE__ */ jsx57("div", { className: "grid grid-cols-6 gap-4 flex-wrap text-dialog-fg-default text-sm", children: codes.map((code) => /* @__PURE__ */ jsx57("p", { children: code }, code)) }) }) : null
1466
1929
  ] });
1467
1930
  }
1468
1931
 
1469
1932
  // src/theme/default/assets/icons/qrcode.svg
1470
- import * as React25 from "react";
1471
- import { jsx as jsx48 } from "react/jsx-runtime";
1933
+ import * as React29 from "react";
1934
+ import { jsx as jsx58 } from "react/jsx-runtime";
1472
1935
  var SvgQrcode = (props) => {
1473
1936
  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" }) });
1937
+ return /* @__PURE__ */ jsx58("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: /* @__PURE__ */ jsx58("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M9.333 22.667v.013m0-13.346v.013m13.333-.013v.013m0 9.32h-4v4m8-4v.013m-8 7.987h4m0-4h4v4m-21.333-20a1.333 1.333 0 0 1 1.333-1.333H12a1.333 1.333 0 0 1 1.333 1.333V12A1.334 1.334 0 0 1 12 13.334H6.666A1.334 1.334 0 0 1 5.333 12zm13.333 0A1.333 1.333 0 0 1 20 5.334h5.333a1.333 1.333 0 0 1 1.333 1.333V12a1.333 1.333 0 0 1-1.333 1.334H20A1.333 1.333 0 0 1 18.666 12zM5.333 20a1.333 1.333 0 0 1 1.333-1.333H12A1.333 1.333 0 0 1 13.333 20v5.334A1.333 1.333 0 0 1 12 26.667H6.666a1.333 1.333 0 0 1-1.333-1.334z" }) });
1475
1938
  };
1476
1939
  var qrcode_default = SvgQrcode;
1477
1940
 
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
1941
  // src/theme/default/components/settings/settings-top.tsx
1488
- import { jsx as jsx50, jsxs as jsxs30 } from "react/jsx-runtime";
1942
+ import { jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
1489
1943
  function DefaultSettingsTotp(props) {
1490
1944
  var _a;
1491
1945
  if ("totpUnlink" in props && props.totpUnlink) {
@@ -1496,17 +1950,17 @@ function DefaultSettingsTotp(props) {
1496
1950
  node_type: _ignoredNodeType,
1497
1951
  ...buttonAttrs
1498
1952
  } = (_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(
1953
+ return /* @__PURE__ */ jsxs35("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
1954
+ /* @__PURE__ */ jsx59("div", { className: "col-span-full", children: /* @__PURE__ */ jsx59(DefaultHorizontalDivider, {}) }),
1955
+ /* @__PURE__ */ jsxs35("div", { className: "flex gap-6 items-center col-span-full", children: [
1956
+ /* @__PURE__ */ jsx59("div", { className: "size-8 aspect-square ", children: /* @__PURE__ */ jsx59(qrcode_default, { size: 32 }) }),
1957
+ /* @__PURE__ */ jsx59("div", { className: "flex flex-col mr-auto", children: /* @__PURE__ */ jsx59("p", { className: "text-dialog-fg-subtle text-sm font-medium", children: "Authenticator app" }) }),
1958
+ /* @__PURE__ */ jsx59(
1505
1959
  "button",
1506
1960
  {
1507
1961
  type: type === "button" ? "button" : "submit",
1508
1962
  ...buttonAttrs,
1509
- children: /* @__PURE__ */ jsx50(
1963
+ children: /* @__PURE__ */ jsx59(
1510
1964
  trash_default,
1511
1965
  {
1512
1966
  size: 24,
@@ -1519,9 +1973,9 @@ function DefaultSettingsTotp(props) {
1519
1973
  ] });
1520
1974
  }
1521
1975
  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(
1976
+ return /* @__PURE__ */ jsxs35("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
1977
+ /* @__PURE__ */ jsx59("div", { className: "col-span-full", children: /* @__PURE__ */ jsx59(DefaultHorizontalDivider, {}) }),
1978
+ /* @__PURE__ */ jsx59("div", { className: "bg-dialog-bg-subtle p-8 rounded-xl flex justify-center", children: /* @__PURE__ */ jsx59("div", { className: "h-44 aspect-square bg-[white] rounded", children: /* @__PURE__ */ jsx59("div", { className: "mix-blend-multiply -m-3 antialiased", children: /* @__PURE__ */ jsx59(
1525
1979
  DefaultImage,
1526
1980
  {
1527
1981
  node: props.totpImage,
@@ -1530,13 +1984,13 @@ function DefaultSettingsTotp(props) {
1530
1984
  }
1531
1985
  }
1532
1986
  ) }) }) }),
1533
- /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-6", children: [
1534
- /* @__PURE__ */ jsx50(
1987
+ /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-6", children: [
1988
+ /* @__PURE__ */ jsx59(
1535
1989
  DefaultLabel,
1536
1990
  {
1537
1991
  node: props.totpSecret,
1538
1992
  attributes: props.totpSecret.attributes,
1539
- children: /* @__PURE__ */ jsx50(
1993
+ children: /* @__PURE__ */ jsx59(
1540
1994
  DefaultInput,
1541
1995
  {
1542
1996
  node: props.totpSecret,
@@ -1551,105 +2005,50 @@ function DefaultSettingsTotp(props) {
1551
2005
  )
1552
2006
  }
1553
2007
  ),
1554
- /* @__PURE__ */ jsx50(
2008
+ /* @__PURE__ */ jsx59(
1555
2009
  DefaultLabel,
1556
2010
  {
1557
2011
  attributes: props.totpInput.attributes,
1558
2012
  node: props.totpInput,
1559
- children: /* @__PURE__ */ jsx50(
2013
+ children: /* @__PURE__ */ jsx59(
1560
2014
  DefaultInput,
1561
- {
1562
- node: props.totpInput,
1563
- attributes: props.totpInput.attributes
1564
- }
1565
- )
1566
- }
1567
- )
1568
- ] })
1569
- ] });
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" })
2015
+ {
2016
+ node: props.totpInput,
2017
+ attributes: props.totpInput.attributes
2018
+ }
2019
+ )
1621
2020
  }
1622
2021
  )
1623
- ] }, attrs.value);
1624
- })
1625
- ] });
2022
+ ] })
2023
+ ] });
2024
+ }
1626
2025
  }
1627
2026
 
1628
2027
  // src/theme/default/assets/icons/key.svg
1629
- import * as React27 from "react";
1630
- import { jsx as jsx52 } from "react/jsx-runtime";
2028
+ import * as React30 from "react";
2029
+ import { jsx as jsx60 } from "react/jsx-runtime";
1631
2030
  var SvgKey = (props) => {
1632
2031
  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" }) });
2032
+ return /* @__PURE__ */ jsx60("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 32 32", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, ...props, children: /* @__PURE__ */ jsx60("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M20 12h.013m2.06-6.876 4.803 4.803a3.836 3.836 0 0 1 0 5.425l-3.524 3.524a3.835 3.835 0 0 1-5.425 0l-.402-.401-8.744 8.744a2.67 2.67 0 0 1-1.652.77L6.896 28H5.333a1.334 1.334 0 0 1-1.324-1.177L4 26.667v-1.563c0-.626.22-1.232.623-1.712l.158-.173.552-.552H8V20h2.667v-2.667l2.858-2.858-.401-.402a3.835 3.835 0 0 1 0-5.425l3.524-3.524a3.835 3.835 0 0 1 5.425 0" }) });
1634
2033
  };
1635
2034
  var key_default = SvgKey;
1636
2035
 
1637
2036
  // src/theme/default/components/settings/settings-webauthn.tsx
1638
- import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
2037
+ import { jsx as jsx61, jsxs as jsxs36 } from "react/jsx-runtime";
1639
2038
  function DefaultSettingsWebauthn({
1640
2039
  nameInput,
1641
2040
  triggerButton,
1642
2041
  removeButtons
1643
2042
  }) {
1644
2043
  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(
2044
+ return /* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-8", children: [
2045
+ /* @__PURE__ */ jsxs36("div", { className: "flex gap-3 items-end max-w-[60%]", children: [
2046
+ /* @__PURE__ */ jsx61("div", { className: "flex-1", children: /* @__PURE__ */ jsx61(
1648
2047
  DefaultLabel,
1649
2048
  {
1650
2049
  node: nameInput,
1651
2050
  attributes: nameInput.attributes,
1652
- children: /* @__PURE__ */ jsx53(
2051
+ children: /* @__PURE__ */ jsx61(
1653
2052
  DefaultInput,
1654
2053
  {
1655
2054
  node: nameInput,
@@ -1658,7 +2057,7 @@ function DefaultSettingsWebauthn({
1658
2057
  )
1659
2058
  }
1660
2059
  ) }),
1661
- triggerButton ? /* @__PURE__ */ jsx53(
2060
+ triggerButton ? /* @__PURE__ */ jsx61(
1662
2061
  DefaultButton,
1663
2062
  {
1664
2063
  node: triggerButton,
@@ -1667,85 +2066,32 @@ function DefaultSettingsWebauthn({
1667
2066
  }
1668
2067
  ) : null
1669
2068
  ] }),
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) => {
2069
+ hasRemoveButtons ? /* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-8", children: [
2070
+ /* @__PURE__ */ jsx61(DefaultHorizontalDivider, {}),
2071
+ /* @__PURE__ */ jsx61("div", { className: "flex flex-col gap-2", children: removeButtons.map((node, i) => {
1726
2072
  var _a, _b;
1727
2073
  const context = (_b = (_a = node.meta.label) == null ? void 0 : _a.context) != null ? _b : {};
1728
2074
  const addedAt = "added_at" in context ? context.added_at : null;
1729
2075
  const diaplyName = "display_name" in context ? context.display_name : null;
1730
2076
  const keyId = "value" in node.attributes ? node.attributes.value : null;
1731
- return /* @__PURE__ */ jsxs33(
2077
+ return /* @__PURE__ */ jsxs36(
1732
2078
  "div",
1733
2079
  {
1734
2080
  className: "flex justify-between gap-6",
1735
2081
  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 })
2082
+ /* @__PURE__ */ jsx61(key_default, { size: 32, className: "text-dialog-fg-default" }),
2083
+ /* @__PURE__ */ jsxs36("div", { className: "flex-1 flex-col", children: [
2084
+ /* @__PURE__ */ jsx61("p", { className: "text-sm font-medium text-dialog-fg-subtle", children: diaplyName }),
2085
+ /* @__PURE__ */ jsx61("span", { className: "text-sm text-dialog-fg-mute", children: keyId })
1740
2086
  ] }),
1741
- addedAt && /* @__PURE__ */ jsx54("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
1742
- /* @__PURE__ */ jsx54(
2087
+ addedAt && /* @__PURE__ */ jsx61("p", { className: "text-sm self-center text-dialog-fg-mute", children: new Date(addedAt).toLocaleDateString() }),
2088
+ /* @__PURE__ */ jsx61(
1743
2089
  "button",
1744
2090
  {
1745
2091
  ...node.attributes,
1746
2092
  type: "submit",
1747
2093
  className: "cursor-pointer text-links-link-mute-default hover:text-links-link-mute-hover",
1748
- children: /* @__PURE__ */ jsx54(trash_default, { size: 20 })
2094
+ children: /* @__PURE__ */ jsx61(trash_default, { size: 20 })
1749
2095
  }
1750
2096
  )
1751
2097
  ]
@@ -1757,227 +2103,9 @@ function DefaultSettingsPasskey({
1757
2103
  ] });
1758
2104
  }
1759
2105
 
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
2106
  // src/theme/default/components/default-components.tsx
1979
2107
  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;
2108
+ 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;
1981
2109
  return {
1982
2110
  Card: {
1983
2111
  Root: (_b = (_a = overrides == null ? void 0 : overrides.Card) == null ? void 0 : _a.Root) != null ? _b : DefaultCard,
@@ -1994,31 +2122,30 @@ function getOryComponents(overrides) {
1994
2122
  Node: {
1995
2123
  Button: (_v = (_u = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _u.Button) != null ? _v : DefaultButton,
1996
2124
  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
2125
+ Input: (_z = (_y = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _y.Input) != null ? _z : DefaultInput,
2126
+ CodeInput: (_B = (_A = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _A.CodeInput) != null ? _B : DefaultPinCodeInput,
2127
+ Image: (_D = (_C = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _C.Image) != null ? _D : DefaultImage,
2128
+ Label: (_F = (_E = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _E.Label) != null ? _F : DefaultLabel,
2129
+ Checkbox: (_H = (_G = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _G.Checkbox) != null ? _H : DefaultCheckbox,
2130
+ Text: (_J = (_I = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _I.Text) != null ? _J : DefaultText,
2131
+ Anchor: (_L = (_K = overrides == null ? void 0 : overrides.Node) == null ? void 0 : _K.Anchor) != null ? _L : DefaultLinkButton
2005
2132
  },
2006
2133
  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
2134
+ Root: (_N = (_M = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _M.Root) != null ? _N : DefaultFormContainer,
2135
+ Group: (_P = (_O = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _O.Group) != null ? _P : DefaultGroupContainer,
2136
+ OidcRoot: (_R = (_Q = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _Q.OidcRoot) != null ? _R : DefaultSocialButtonContainer,
2137
+ RecoveryCodesSettings: (_T = (_S = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _S.RecoveryCodesSettings) != null ? _T : DefaultSettingsRecoveryCodes,
2138
+ TotpSettings: (_V = (_U = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _U.TotpSettings) != null ? _V : DefaultSettingsTotp,
2139
+ OidcSettings: (_X = (_W = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _W.OidcSettings) != null ? _X : DefaultSettingsOidc,
2140
+ WebauthnSettings: (_Z = (_Y = overrides == null ? void 0 : overrides.Form) == null ? void 0 : _Y.WebauthnSettings) != null ? _Z : DefaultSettingsWebauthn,
2141
+ PasskeySettings: (_$ = (__ = overrides == null ? void 0 : overrides.Form) == null ? void 0 : __.PasskeySettings) != null ? _$ : DefaultSettingsPasskey
2015
2142
  },
2016
2143
  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
2144
+ Root: (_ba = (_aa = overrides == null ? void 0 : overrides.Message) == null ? void 0 : _aa.Root) != null ? _ba : DefaultMessageContainer,
2145
+ Content: (_da = (_ca = overrides == null ? void 0 : overrides.Message) == null ? void 0 : _ca.Content) != null ? _da : DefaultMessage
2019
2146
  },
2020
2147
  Page: {
2021
- Header: (_ha = (_ga = overrides == null ? void 0 : overrides.Page) == null ? void 0 : _ga.Header) != null ? _ha : DefaultPageHeader
2148
+ Header: (_fa = (_ea = overrides == null ? void 0 : overrides.Page) == null ? void 0 : _ea.Header) != null ? _fa : DefaultPageHeader
2022
2149
  }
2023
2150
  };
2024
2151
  }
@@ -2033,7 +2160,7 @@ function Error({
2033
2160
  }
2034
2161
 
2035
2162
  // src/theme/default/flows/login.tsx
2036
- import { FlowType as FlowType7 } from "@ory/client-fetch";
2163
+ import { FlowType as FlowType8 } from "@ory/client-fetch";
2037
2164
  import {
2038
2165
  OryProvider,
2039
2166
  OryTwoStepCard
@@ -2051,7 +2178,7 @@ function Login({
2051
2178
  {
2052
2179
  config,
2053
2180
  flow,
2054
- flowType: FlowType7.Login,
2181
+ flowType: FlowType8.Login,
2055
2182
  components,
2056
2183
  children: children != null ? children : /* @__PURE__ */ jsx63(OryTwoStepCard, {})
2057
2184
  }
@@ -2059,7 +2186,7 @@ function Login({
2059
2186
  }
2060
2187
 
2061
2188
  // src/theme/default/flows/recovery.tsx
2062
- import { FlowType as FlowType8 } from "@ory/client-fetch";
2189
+ import { FlowType as FlowType9 } from "@ory/client-fetch";
2063
2190
  import {
2064
2191
  OryProvider as OryProvider2,
2065
2192
  OryTwoStepCard as OryTwoStepCard2
@@ -2077,7 +2204,7 @@ function Recovery({
2077
2204
  {
2078
2205
  config,
2079
2206
  flow,
2080
- flowType: FlowType8.Recovery,
2207
+ flowType: FlowType9.Recovery,
2081
2208
  components,
2082
2209
  children: children != null ? children : /* @__PURE__ */ jsx64(OryTwoStepCard2, {})
2083
2210
  }
@@ -2085,7 +2212,7 @@ function Recovery({
2085
2212
  }
2086
2213
 
2087
2214
  // src/theme/default/flows/registration.tsx
2088
- import { FlowType as FlowType9 } from "@ory/client-fetch";
2215
+ import { FlowType as FlowType10 } from "@ory/client-fetch";
2089
2216
  import {
2090
2217
  OryProvider as OryProvider3,
2091
2218
  OryTwoStepCard as OryTwoStepCard3
@@ -2103,7 +2230,7 @@ function Registration({
2103
2230
  {
2104
2231
  config,
2105
2232
  flow,
2106
- flowType: FlowType9.Registration,
2233
+ flowType: FlowType10.Registration,
2107
2234
  components,
2108
2235
  children: children != null ? children : /* @__PURE__ */ jsx65(OryTwoStepCard3, {})
2109
2236
  }
@@ -2111,13 +2238,13 @@ function Registration({
2111
2238
  }
2112
2239
 
2113
2240
  // src/theme/default/flows/settings.tsx
2114
- import { FlowType as FlowType10 } from "@ory/client-fetch";
2241
+ import { FlowType as FlowType11 } from "@ory/client-fetch";
2115
2242
  import {
2116
2243
  HeadlessPageHeader,
2117
2244
  OryProvider as OryProvider4,
2118
2245
  OrySettingsCard
2119
2246
  } from "@ory/elements-react";
2120
- import { Fragment as Fragment3, jsx as jsx66, jsxs as jsxs37 } from "react/jsx-runtime";
2247
+ import { Fragment as Fragment4, jsx as jsx66, jsxs as jsxs37 } from "react/jsx-runtime";
2121
2248
  function Settings({
2122
2249
  flow,
2123
2250
  config,
@@ -2130,9 +2257,9 @@ function Settings({
2130
2257
  {
2131
2258
  config,
2132
2259
  flow,
2133
- flowType: FlowType10.Settings,
2260
+ flowType: FlowType11.Settings,
2134
2261
  components,
2135
- children: children != null ? children : /* @__PURE__ */ jsxs37(Fragment3, { children: [
2262
+ children: children != null ? children : /* @__PURE__ */ jsxs37(Fragment4, { children: [
2136
2263
  /* @__PURE__ */ jsx66(HeadlessPageHeader, {}),
2137
2264
  /* @__PURE__ */ jsx66(OrySettingsCard, {})
2138
2265
  ] })
@@ -2141,7 +2268,7 @@ function Settings({
2141
2268
  }
2142
2269
 
2143
2270
  // src/theme/default/flows/verification.tsx
2144
- import { FlowType as FlowType11 } from "@ory/client-fetch";
2271
+ import { FlowType as FlowType12 } from "@ory/client-fetch";
2145
2272
  import {
2146
2273
  OryProvider as OryProvider5,
2147
2274
  OryTwoStepCard as OryTwoStepCard4
@@ -2159,7 +2286,7 @@ function Verification({
2159
2286
  {
2160
2287
  config,
2161
2288
  flow,
2162
- flowType: FlowType11.Verification,
2289
+ flowType: FlowType12.Verification,
2163
2290
  components,
2164
2291
  children: children != null ? children : /* @__PURE__ */ jsx67(OryTwoStepCard4, {})
2165
2292
  }
@@ -2171,6 +2298,7 @@ export {
2171
2298
  DefaultCardFooter,
2172
2299
  DefaultCardHeader,
2173
2300
  DefaultCardLogo,
2301
+ DefaultCurrentIdentifierButton,
2174
2302
  DefaultFormContainer,
2175
2303
  DefaultMessage,
2176
2304
  DefaultMessageContainer,