@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.
- package/CHANGELOG.md +41 -0
- package/api-report/elements-react-theme.api.json +33 -0
- package/api-report/elements-react-theme.api.md +5 -2
- package/api-report/elements-react.api.json +115 -107
- package/api-report/elements-react.api.md +27 -12
- package/dist/index.d.mts +87 -71
- package/dist/index.d.ts +87 -71
- package/dist/index.js +505 -437
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +507 -439
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +62 -2
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +3 -1
- package/dist/theme/default/index.d.ts +3 -1
- package/dist/theme/default/index.js +884 -757
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +837 -709
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +2 -2
- package/tailwind.config.ts +1 -1
- package/api-report/temp/elements-react-client.api.md +0 -22
- package/api-report/temp/elements-react-theme.api.md +0 -131
- package/api-report/temp/elements-react.api.md +0 -406
|
@@ -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 {
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
296
|
-
/* @__PURE__ */
|
|
297
|
-
/* @__PURE__ */
|
|
298
|
-
/* @__PURE__ */
|
|
299
|
-
/* @__PURE__ */
|
|
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 =
|
|
451
|
+
const context = useOryFlow3();
|
|
305
452
|
const { title, description } = useCardHeaderText(
|
|
306
453
|
context.flow.ui.nodes,
|
|
307
454
|
context
|
|
308
455
|
);
|
|
309
|
-
return /* @__PURE__ */
|
|
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
|
|
314
|
-
import { jsx as
|
|
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 =
|
|
463
|
+
const flow = useOryFlow4();
|
|
317
464
|
if (flow.config.logoUrl) {
|
|
318
|
-
return /* @__PURE__ */
|
|
465
|
+
return /* @__PURE__ */ jsx8("img", { src: flow.config.logoUrl, width: 100, height: 36, alt: "Logo" });
|
|
319
466
|
}
|
|
320
|
-
return /* @__PURE__ */
|
|
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
|
|
471
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
325
472
|
function DefaultCard({ children }) {
|
|
326
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
491
|
+
useOryFlow as useOryFlow5
|
|
344
492
|
} from "@ory/elements-react";
|
|
345
|
-
import { FlowType as
|
|
346
|
-
import { jsx as
|
|
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__ */
|
|
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 } =
|
|
514
|
+
const { flowType } = useOryFlow5();
|
|
367
515
|
if (!children || Array.isArray(children) && children.length === 0) {
|
|
368
516
|
return null;
|
|
369
517
|
}
|
|
370
|
-
return /* @__PURE__ */
|
|
518
|
+
return /* @__PURE__ */ jsx10(
|
|
371
519
|
"section",
|
|
372
520
|
{
|
|
373
521
|
className: cn(
|
|
374
|
-
flowType ===
|
|
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__ */
|
|
530
|
+
return /* @__PURE__ */ jsx10(
|
|
383
531
|
"span",
|
|
384
532
|
{
|
|
385
|
-
className: cn("text-sm
|
|
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
|
|
400
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
409
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
418
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
427
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
461
|
-
/* @__PURE__ */
|
|
462
|
-
/* @__PURE__ */
|
|
463
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
631
|
+
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
480
632
|
function Spinner({ className }) {
|
|
481
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
670
|
+
import { useOryFlow as useOryFlow6 } from "@ory/elements-react";
|
|
519
671
|
import { cva } from "class-variance-authority";
|
|
520
|
-
import { jsx as
|
|
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 } =
|
|
727
|
+
const { flowType } = useOryFlow6();
|
|
576
728
|
const {
|
|
577
729
|
formState: { isSubmitting },
|
|
578
730
|
setValue
|
|
579
|
-
} =
|
|
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 ===
|
|
582
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
872
|
+
import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
721
873
|
function CheckboxSVG() {
|
|
722
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
779
|
-
/* @__PURE__ */
|
|
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__ */
|
|
946
|
+
/* @__PURE__ */ jsx19(CheckboxSVG, {})
|
|
795
947
|
] }),
|
|
796
|
-
/* @__PURE__ */
|
|
797
|
-
/* @__PURE__ */
|
|
798
|
-
node.messages.map((message) => /* @__PURE__ */
|
|
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
|
-
...
|
|
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
|
|
966
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
815
967
|
function DefaultGroupContainer({ children }) {
|
|
816
|
-
return /* @__PURE__ */
|
|
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
|
|
972
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
821
973
|
function DefaultHorizontalDivider() {
|
|
822
|
-
return /* @__PURE__ */
|
|
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
|
|
978
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
827
979
|
function DefaultImage({ attributes }) {
|
|
828
|
-
return /* @__PURE__ */
|
|
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
|
|
984
|
+
import { FlowType as FlowType6, getNodeLabel as getNodeLabel3 } from "@ory/client-fetch";
|
|
833
985
|
import {
|
|
834
986
|
uiTextToFormattedMessage as uiTextToFormattedMessage5,
|
|
835
|
-
useOryFlow as
|
|
987
|
+
useOryFlow as useOryFlow7
|
|
836
988
|
} from "@ory/elements-react";
|
|
837
|
-
import { useFormContext as
|
|
989
|
+
import { useFormContext as useFormContext3 } from "react-hook-form";
|
|
838
990
|
import { useIntl as useIntl8 } from "react-intl";
|
|
839
|
-
import { jsx as
|
|
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 } =
|
|
847
|
-
const {
|
|
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 } =
|
|
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__ */
|
|
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 ===
|
|
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
|
|
1038
|
+
import { FlowType as FlowType7, getNodeLabel as getNodeLabel4 } from "@ory/client-fetch";
|
|
880
1039
|
import {
|
|
881
|
-
messageTestId as
|
|
1040
|
+
messageTestId as messageTestId3,
|
|
882
1041
|
uiTextToFormattedMessage as uiTextToFormattedMessage6,
|
|
883
|
-
|
|
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
|
|
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 {
|
|
1061
|
+
const { Message } = useComponents2();
|
|
1062
|
+
const { config, flowType, flow } = useOryFlow8();
|
|
1063
|
+
const { setValue } = useFormContext4();
|
|
896
1064
|
const isPassword = attributes.type === "password";
|
|
897
|
-
const
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
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
|
-
...
|
|
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 ===
|
|
911
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
1095
|
+
(resendNode == null ? void 0 : resendNode.attributes.node_type) === "input" && /* @__PURE__ */ jsx24(
|
|
923
1096
|
"button",
|
|
924
1097
|
{
|
|
925
1098
|
type: "submit",
|
|
926
|
-
name:
|
|
927
|
-
value:
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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
|
|
982
|
-
import { jsx as
|
|
983
|
-
var InputOTP =
|
|
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 =
|
|
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 =
|
|
999
|
-
const inputOTPContext =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1183
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1022
1184
|
var DefaultPinCodeInput = ({ attributes }) => {
|
|
1023
|
-
const { setValue, watch } =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1236
|
+
useOryFlow as useOryFlow9
|
|
1053
1237
|
} from "@ory/elements-react";
|
|
1054
1238
|
|
|
1055
1239
|
// src/theme/default/provider-logos/apple.svg
|
|
1056
|
-
import * as
|
|
1057
|
-
import { jsx as
|
|
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__ */
|
|
1061
|
-
/* @__PURE__ */
|
|
1062
|
-
/* @__PURE__ */
|
|
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
|
|
1069
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
1078
|
-
import { jsx as
|
|
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__ */
|
|
1082
|
-
/* @__PURE__ */
|
|
1083
|
-
/* @__PURE__ */
|
|
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
|
|
1090
|
-
import { jsx as
|
|
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__ */
|
|
1094
|
-
/* @__PURE__ */
|
|
1095
|
-
/* @__PURE__ */
|
|
1096
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1105
|
-
import { jsx as
|
|
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__ */
|
|
1109
|
-
/* @__PURE__ */
|
|
1110
|
-
/* @__PURE__ */
|
|
1111
|
-
/* @__PURE__ */
|
|
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
|
|
1118
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
1127
|
-
import { jsx as
|
|
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__ */
|
|
1131
|
-
/* @__PURE__ */
|
|
1132
|
-
/* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
/* @__PURE__ */
|
|
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
|
|
1141
|
-
import { jsx as
|
|
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__ */
|
|
1145
|
-
/* @__PURE__ */
|
|
1146
|
-
/* @__PURE__ */
|
|
1147
|
-
/* @__PURE__ */
|
|
1148
|
-
/* @__PURE__ */
|
|
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
|
|
1155
|
-
import { jsx as
|
|
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__ */
|
|
1159
|
-
/* @__PURE__ */
|
|
1160
|
-
/* @__PURE__ */
|
|
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
|
|
1167
|
-
import { jsx as
|
|
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__ */
|
|
1171
|
-
/* @__PURE__ */
|
|
1172
|
-
/* @__PURE__ */
|
|
1173
|
-
/* @__PURE__ */
|
|
1174
|
-
/* @__PURE__ */
|
|
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
|
|
1181
|
-
import { jsx as
|
|
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__ */
|
|
1185
|
-
/* @__PURE__ */
|
|
1186
|
-
/* @__PURE__ */
|
|
1187
|
-
/* @__PURE__ */
|
|
1188
|
-
/* @__PURE__ */
|
|
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
|
|
1195
|
-
import { jsx as
|
|
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__ */
|
|
1199
|
-
/* @__PURE__ */
|
|
1200
|
-
/* @__PURE__ */
|
|
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
|
|
1207
|
-
import { jsx as
|
|
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__ */
|
|
1211
|
-
/* @__PURE__ */
|
|
1212
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
-
} =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1285
|
-
showLabel && node.meta.label ? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1316
|
-
/* @__PURE__ */
|
|
1317
|
-
(_a = attributes.text.context.secrets) == null ? void 0 : _a.map((text, index) => /* @__PURE__ */
|
|
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/
|
|
1322
|
-
import
|
|
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/
|
|
1331
|
-
import {
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
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/
|
|
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
|
|
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,
|
|
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
|
|
1537
|
+
var logout_default = SvgLogout;
|
|
1385
1538
|
|
|
1386
|
-
// src/theme/default/assets/icons/
|
|
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__ */
|
|
1392
|
-
/* @__PURE__ */
|
|
1393
|
-
/* @__PURE__ */
|
|
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
|
|
1400
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1426
|
-
/* @__PURE__ */
|
|
1427
|
-
/* @__PURE__ */
|
|
1428
|
-
regnerateButton && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1905
|
+
revealButton && /* @__PURE__ */ jsx57(
|
|
1443
1906
|
"button",
|
|
1444
1907
|
{
|
|
1445
1908
|
...revealButton.attributes,
|
|
1446
1909
|
type: "submit",
|
|
1447
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1471
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1500
|
-
/* @__PURE__ */
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
/* @__PURE__ */
|
|
1504
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1523
|
-
/* @__PURE__ */
|
|
1524
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1534
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2008
|
+
/* @__PURE__ */ jsx59(
|
|
1555
2009
|
DefaultLabel,
|
|
1556
2010
|
{
|
|
1557
2011
|
attributes: props.totpInput.attributes,
|
|
1558
2012
|
node: props.totpInput,
|
|
1559
|
-
children: /* @__PURE__ */
|
|
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
|
-
] }
|
|
1624
|
-
})
|
|
1625
|
-
|
|
2022
|
+
] })
|
|
2023
|
+
] });
|
|
2024
|
+
}
|
|
1626
2025
|
}
|
|
1627
2026
|
|
|
1628
2027
|
// src/theme/default/assets/icons/key.svg
|
|
1629
|
-
import * as
|
|
1630
|
-
import { jsx as
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1646
|
-
/* @__PURE__ */
|
|
1647
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1671
|
-
/* @__PURE__ */
|
|
1672
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2077
|
+
return /* @__PURE__ */ jsxs36(
|
|
1732
2078
|
"div",
|
|
1733
2079
|
{
|
|
1734
2080
|
className: "flex justify-between gap-6",
|
|
1735
2081
|
children: [
|
|
1736
|
-
/* @__PURE__ */
|
|
1737
|
-
/* @__PURE__ */
|
|
1738
|
-
/* @__PURE__ */
|
|
1739
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1742
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
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: (
|
|
2008
|
-
Group: (
|
|
2009
|
-
OidcRoot: (
|
|
2010
|
-
RecoveryCodesSettings: (
|
|
2011
|
-
TotpSettings: (
|
|
2012
|
-
OidcSettings: (
|
|
2013
|
-
WebauthnSettings: (
|
|
2014
|
-
PasskeySettings: (
|
|
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: (
|
|
2018
|
-
Content: (
|
|
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: (
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
2260
|
+
flowType: FlowType11.Settings,
|
|
2134
2261
|
components,
|
|
2135
|
-
children: children != null ? children : /* @__PURE__ */ jsxs37(
|
|
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
|
|
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:
|
|
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,
|