strapi-plugin-firebase-authentication 1.2.0 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const designSystem = require("@strapi/design-system");
4
+ const m = require("react");
5
+ const api = require("./api-BPWH3Tkt.js");
6
6
  const admin = require("@strapi/strapi/admin");
7
- const api = require("./api-DYP-1kdx.js");
8
7
  const reactRouterDom = require("react-router-dom");
9
8
  function SettingsPage() {
10
9
  const { toggleNotification } = admin.useNotification();
11
- const [firebaseJsonValue, setFirebaseJsonValue] = React.useState(null);
12
- const [firebaseJsonValueInput, setFirebaseJsonValueInput] = React.useState("");
13
- const [firebaseWebApiKey, setFirebaseWebApiKey] = React.useState("");
14
- const [showOptionalSettings, setShowOptionalSettings] = React.useState(false);
15
- const [passwordRequirementsRegex, setPasswordRequirementsRegex] = React.useState("^.{6,}$");
16
- const [passwordRequirementsMessage, setPasswordRequirementsMessage] = React.useState(
10
+ const [firebaseJsonValue, setFirebaseJsonValue] = m.useState(null);
11
+ const [firebaseJsonValueInput, setFirebaseJsonValueInput] = m.useState("");
12
+ const [firebaseWebApiKey, setFirebaseWebApiKey] = m.useState("");
13
+ const [showOptionalSettings, setShowOptionalSettings] = m.useState(false);
14
+ const [passwordRequirementsRegex, setPasswordRequirementsRegex] = m.useState("^.{6,}$");
15
+ const [passwordRequirementsMessage, setPasswordRequirementsMessage] = m.useState(
17
16
  "Password must be at least 6 characters long"
18
17
  );
19
- const [passwordResetUrl, setPasswordResetUrl] = React.useState("http://localhost:3000/reset-password");
20
- const [passwordResetEmailSubject, setPasswordResetEmailSubject] = React.useState("Reset Your Password");
21
- const [enableMagicLink, setEnableMagicLink] = React.useState(false);
22
- const [magicLinkUrl, setMagicLinkUrl] = React.useState("http://localhost:1338/verify-magic-link.html");
23
- const [magicLinkEmailSubject, setMagicLinkEmailSubject] = React.useState("Sign in to Your Application");
24
- const [magicLinkExpiryHours, setMagicLinkExpiryHours] = React.useState(1);
25
- const [emailVerificationUrl, setEmailVerificationUrl] = React.useState(
18
+ const [passwordResetUrl, setPasswordResetUrl] = m.useState("http://localhost:3000/reset-password");
19
+ const [passwordResetEmailSubject, setPasswordResetEmailSubject] = m.useState("Reset Your Password");
20
+ const [enableMagicLink, setEnableMagicLink] = m.useState(false);
21
+ const [magicLinkUrl, setMagicLinkUrl] = m.useState("http://localhost:1338/verify-magic-link.html");
22
+ const [magicLinkEmailSubject, setMagicLinkEmailSubject] = m.useState("Sign in to Your Application");
23
+ const [magicLinkExpiryHours, setMagicLinkExpiryHours] = m.useState(1);
24
+ const [emailVerificationUrl, setEmailVerificationUrl] = m.useState(
26
25
  "http://localhost:3000/verify-email"
27
26
  );
28
- const [emailVerificationEmailSubject, setEmailVerificationEmailSubject] = React.useState("Verify Your Email");
29
- const [loading, setLoading] = React.useState(true);
30
- const [showEditModal, setShowEditModal] = React.useState(false);
31
- const [editWebApiKey, setEditWebApiKey] = React.useState("");
27
+ const [emailVerificationEmailSubject, setEmailVerificationEmailSubject] = m.useState("Verify Your Email");
28
+ const [loading, setLoading] = m.useState(true);
29
+ const [showEditModal, setShowEditModal] = m.useState(false);
30
+ const [editWebApiKey, setEditWebApiKey] = m.useState("");
32
31
  reactRouterDom.useNavigate();
33
32
  const handleRetrieveFirebaseJsonConfig = () => {
34
33
  setLoading(true);
@@ -61,7 +60,7 @@ function SettingsPage() {
61
60
  setFirebaseJsonValueInput("");
62
61
  });
63
62
  };
64
- React.useEffect(() => {
63
+ m.useEffect(() => {
65
64
  handleRetrieveFirebaseJsonConfig();
66
65
  }, []);
67
66
  const handleDeleteFirebaseJsonConfig = async () => {
@@ -330,11 +329,11 @@ function SettingsPage() {
330
329
  }
331
330
  };
332
331
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
333
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { style: { padding: 32 }, direction: "column", alignItems: "flex-start", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { style: { width: "100%" }, children: [
334
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 6, padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", children: [
335
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Firebase Authentication" }),
332
+ /* @__PURE__ */ jsxRuntime.jsx(api.T, { style: { padding: 32 }, direction: "column", alignItems: "flex-start", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(api.R, { style: { width: "100%" }, children: [
333
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 6, padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", children: [
334
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Firebase Authentication" }),
336
335
  /* @__PURE__ */ jsxRuntime.jsx(
337
- designSystem.Typography,
336
+ api.E,
338
337
  {
339
338
  variant: "omega",
340
339
  textColor: "neutral600",
@@ -344,9 +343,9 @@ function SettingsPage() {
344
343
  ),
345
344
  (() => {
346
345
  return !firebaseJsonValue || !firebaseJsonValue.firebaseConfigJson ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
347
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
346
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { children: [
348
347
  /* @__PURE__ */ jsxRuntime.jsx(
349
- designSystem.Typography,
348
+ api.E,
350
349
  {
351
350
  variant: "omega",
352
351
  fontWeight: "bold",
@@ -355,7 +354,7 @@ function SettingsPage() {
355
354
  }
356
355
  ),
357
356
  /* @__PURE__ */ jsxRuntime.jsx(
358
- designSystem.JSONInput,
357
+ api.Jm,
359
358
  {
360
359
  value: firebaseJsonValueInput,
361
360
  height: 400,
@@ -365,9 +364,9 @@ function SettingsPage() {
365
364
  }
366
365
  )
367
366
  ] }),
368
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 4, children: [
367
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 4, children: [
369
368
  /* @__PURE__ */ jsxRuntime.jsxs(
370
- designSystem.Button,
369
+ api.Nn,
371
370
  {
372
371
  variant: "tertiary",
373
372
  onClick: () => setShowOptionalSettings(!showOptionalSettings),
@@ -378,11 +377,11 @@ function SettingsPage() {
378
377
  ]
379
378
  }
380
379
  ),
381
- showOptionalSettings && /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 3, background: "neutral100", borderRadius: "4px", children: [
382
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", marginBottom: 3, children: "The Web API Key is only needed if you want to use the emailLogin endpoint. Most users should authenticate with Firebase Client SDK instead." }),
383
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 3, children: [
380
+ showOptionalSettings && /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 3, background: "neutral100", borderRadius: "4px", children: [
381
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", marginBottom: 3, children: "The Web API Key is only needed if you want to use the emailLogin endpoint. Most users should authenticate with Firebase Client SDK instead." }),
382
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 3, children: [
384
383
  /* @__PURE__ */ jsxRuntime.jsx(
385
- designSystem.Typography,
384
+ api.E,
386
385
  {
387
386
  variant: "omega",
388
387
  fontWeight: "bold",
@@ -391,7 +390,7 @@ function SettingsPage() {
391
390
  }
392
391
  ),
393
392
  /* @__PURE__ */ jsxRuntime.jsx(
394
- designSystem.TextInput,
393
+ api.G0,
395
394
  {
396
395
  name: "firebaseWebApiKey",
397
396
  value: firebaseWebApiKey,
@@ -401,10 +400,10 @@ function SettingsPage() {
401
400
  }
402
401
  )
403
402
  ] }),
404
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 3, padding: 2, background: "primary100", borderRadius: "4px", children: [
405
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", children: "📍 Where to find your Web API Key:" }),
403
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 3, padding: 2, background: "primary100", borderRadius: "4px", children: [
404
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", children: "📍 Where to find your Web API Key:" }),
406
405
  /* @__PURE__ */ jsxRuntime.jsxs("ol", { style: { marginLeft: 20, marginTop: 8 }, children: [
407
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
406
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
408
407
  "Go to",
409
408
  " ",
410
409
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -417,25 +416,25 @@ function SettingsPage() {
417
416
  }
418
417
  )
419
418
  ] }) }),
420
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", children: "Select your project" }) }),
421
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
419
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", children: "Select your project" }) }),
420
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
422
421
  "Click the gear icon → ",
423
422
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Project Settings" })
424
423
  ] }) }),
425
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
424
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
426
425
  "In the ",
427
426
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "General" }),
428
427
  " tab, scroll down to ",
429
428
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Your apps" })
430
429
  ] }) }),
431
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
430
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
432
431
  "Find ",
433
432
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Web API Key" }),
434
433
  " (looks like: AIzaSyB3Xd...)"
435
434
  ] }) })
436
435
  ] })
437
436
  ] }),
438
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginTop: 3, padding: 2, background: "warning100", borderRadius: "4px", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", textColor: "warning700", children: [
437
+ /* @__PURE__ */ jsxRuntime.jsx(api.R, { marginTop: 3, padding: 2, background: "warning100", borderRadius: "4px", children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", textColor: "warning700", children: [
439
438
  "⚠️ ",
440
439
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Recommendation:" }),
441
440
  " Instead of using emailLogin endpoint, authenticate users on the client side using Firebase SDK and exchange the ID token. This is more secure and doesn't require the Web API Key configuration."
@@ -443,7 +442,7 @@ function SettingsPage() {
443
442
  ] })
444
443
  ] }),
445
444
  /* @__PURE__ */ jsxRuntime.jsx(
446
- designSystem.Flex,
445
+ api.T,
447
446
  {
448
447
  style: {
449
448
  marginTop: 24,
@@ -451,7 +450,7 @@ function SettingsPage() {
451
450
  },
452
451
  justifyContent: "flex-end",
453
452
  children: /* @__PURE__ */ jsxRuntime.jsx(
454
- designSystem.Button,
453
+ api.Nn,
455
454
  {
456
455
  size: "L",
457
456
  onClick: handleFirebaseJsonSubmit,
@@ -461,14 +460,14 @@ function SettingsPage() {
461
460
  )
462
461
  }
463
462
  ),
464
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 6, paddingTop: 4, style: { borderTop: "1px solid #eaeaef" }, children: [
465
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", marginBottom: 3, children: "How to setup Firebase Service Account JSON:" }),
466
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 3, background: "warning100", borderRadius: "4px", marginBottom: 4, children: [
467
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", textColor: "warning700", children: "⚠️ Security Warning" }),
468
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "warning700", marginTop: 1, children: "The Service Account JSON contains sensitive credentials with full admin access to your Firebase project. Never commit this file to version control or share it publicly." })
463
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 6, paddingTop: 4, style: { borderTop: "1px solid #eaeaef" }, children: [
464
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "beta", marginBottom: 3, children: "How to setup Firebase Service Account JSON:" }),
465
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 3, background: "warning100", borderRadius: "4px", marginBottom: 4, children: [
466
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", textColor: "warning700", children: "⚠️ Security Warning" }),
467
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", textColor: "warning700", marginTop: 1, children: "The Service Account JSON contains sensitive credentials with full admin access to your Firebase project. Never commit this file to version control or share it publicly." })
469
468
  ] }),
470
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginLeft: 4, children: /* @__PURE__ */ jsxRuntime.jsxs("ol", { style: { listStyle: "decimal", paddingLeft: "20px" }, children: [
471
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
469
+ /* @__PURE__ */ jsxRuntime.jsx(api.R, { marginLeft: 4, children: /* @__PURE__ */ jsxRuntime.jsxs("ol", { style: { listStyle: "decimal", paddingLeft: "20px" }, children: [
470
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
472
471
  "Go to the",
473
472
  " ",
474
473
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -483,40 +482,40 @@ function SettingsPage() {
483
482
  " ",
484
483
  "in your Firebase Console (Project Settings → Service Accounts)"
485
484
  ] }) }),
486
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
485
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
487
486
  "Click the ",
488
487
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: '"Generate New Private Key"' }),
489
488
  " button"
490
489
  ] }) }),
491
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
490
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
492
491
  "Confirm by clicking ",
493
492
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: '"Generate Key"' }),
494
493
  " in the confirmation dialog"
495
494
  ] }) }),
496
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
495
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
497
496
  "A JSON file will be downloaded (e.g.,",
498
497
  " ",
499
498
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "your-project-firebase-adminsdk-xxxxx.json" }),
500
499
  ")"
501
500
  ] }) }),
502
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
501
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
503
502
  "Open the downloaded JSON file, copy its ",
504
503
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "entire contents" }),
505
504
  ', and paste it in the "Firebase Service Account JSON" field above'
506
505
  ] }) }),
507
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
506
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
508
507
  "Click ",
509
508
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Submit" }),
510
509
  " to save your configuration"
511
510
  ] }) }),
512
- /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
511
+ /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { children: [
513
512
  /* @__PURE__ */ jsxRuntime.jsx("em", { children: "(Optional)" }),
514
513
  ' If you need email/password authentication, expand "Optional: Email/Password Authentication" and add your Web API Key'
515
514
  ] }) })
516
515
  ] }) }),
517
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 4, padding: 3, background: "neutral100", borderRadius: "4px", children: [
518
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", children: "📝 Note: Service Account JSON vs Web App Config" }),
519
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", marginTop: 2, children: [
516
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 4, padding: 3, background: "neutral100", borderRadius: "4px", children: [
517
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", children: "📝 Note: Service Account JSON vs Web App Config" }),
518
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", marginTop: 2, children: [
520
519
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Service Account JSON" }),
521
520
  " (what you need here): Contains",
522
521
  " ",
@@ -527,7 +526,7 @@ function SettingsPage() {
527
526
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Service Accounts tab" }),
528
527
  "."
529
528
  ] }),
530
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", marginTop: 2, children: [
529
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", marginTop: 2, children: [
531
530
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Web App Config" }),
532
531
  " (NOT what you need): Contains ",
533
532
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "apiKey" }),
@@ -538,16 +537,16 @@ function SettingsPage() {
538
537
  ] })
539
538
  ] })
540
539
  ] })
541
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, background: "neutral0", children: [
542
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 4, children: [
543
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", fontWeight: "bold", style: { marginBottom: "8px" }, children: "Service Account Configuration" }),
544
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", textColor: "neutral600", component: "span", children: [
540
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 4, background: "neutral0", children: [
541
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 4, children: [
542
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "delta", fontWeight: "bold", style: { marginBottom: "8px" }, children: "Service Account Configuration" }),
543
+ /* @__PURE__ */ jsxRuntime.jsx(api.R, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "pi", textColor: "neutral600", component: "span", children: [
545
544
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Required" }),
546
545
  " - Enables Firebase Admin SDK for server-side authentication"
547
546
  ] }) }),
548
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", justifyContent: "space-between", children: [
549
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
550
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", textColor: "neutral600", children: [
547
+ /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", justifyContent: "space-between", children: [
548
+ /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", children: [
549
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", textColor: "neutral600", children: [
551
550
  "Project:",
552
551
  " ",
553
552
  firebaseJsonValue?.firebaseConfigJson && (() => {
@@ -559,32 +558,32 @@ function SettingsPage() {
559
558
  }
560
559
  })()
561
560
  ] }),
562
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { backgroundColor: "success200", textColor: "success700", size: "S", children: "✓ CONFIGURED" })
561
+ /* @__PURE__ */ jsxRuntime.jsx(api.Is, { backgroundColor: "success200", textColor: "success700", size: "S", children: "✓ CONFIGURED" })
563
562
  ] }),
564
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "danger-light", size: "S", onClick: handleDeleteFirebaseJsonConfig, children: "Delete Config" })
563
+ /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { variant: "danger-light", size: "S", onClick: handleDeleteFirebaseJsonConfig, children: "Delete Config" })
565
564
  ] })
566
565
  ] }),
567
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingTop: 4, style: { borderTop: "1px solid #eaeaef" }, children: [
568
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", fontWeight: "bold", style: { marginBottom: "8px" }, children: "Web API Key Configuration" }),
569
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", textColor: "neutral600", component: "span", children: [
566
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { paddingTop: 4, style: { borderTop: "1px solid #eaeaef" }, children: [
567
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "delta", fontWeight: "bold", style: { marginBottom: "8px" }, children: "Web API Key Configuration" }),
568
+ /* @__PURE__ */ jsxRuntime.jsx(api.R, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "pi", textColor: "neutral600", component: "span", children: [
570
569
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Optional" }),
571
570
  " - Only needed for email/password login via emailLogin endpoint"
572
571
  ] }) }),
573
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", justifyContent: "space-between", children: [
574
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
575
- firebaseWebApiKey?.trim() && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "neutral600", children: `${firebaseWebApiKey.substring(0, 10)}...` }),
576
- firebaseWebApiKey?.trim() ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { backgroundColor: "success200", textColor: "success700", size: "S", children: "✓ CONFIGURED" }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { backgroundColor: "neutral200", textColor: "neutral700", size: "S", children: "NOT SET" })
572
+ /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", justifyContent: "space-between", children: [
573
+ /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", children: [
574
+ firebaseWebApiKey?.trim() && /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", textColor: "neutral600", children: `${firebaseWebApiKey.substring(0, 10)}...` }),
575
+ firebaseWebApiKey?.trim() ? /* @__PURE__ */ jsxRuntime.jsx(api.Is, { backgroundColor: "success200", textColor: "success700", size: "S", children: "✓ CONFIGURED" }) : /* @__PURE__ */ jsxRuntime.jsx(api.Is, { backgroundColor: "neutral200", textColor: "neutral700", size: "S", children: "NOT SET" })
577
576
  ] }),
578
- firebaseWebApiKey?.trim() ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "danger-light", size: "S", onClick: handleRemoveWebApiKey, children: "Delete Config" }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "secondary", size: "S", onClick: handleAddWebApiKey, children: "+ Add Web API Key" })
577
+ firebaseWebApiKey?.trim() ? /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { variant: "danger-light", size: "S", onClick: handleRemoveWebApiKey, children: "Delete Config" }) : /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { variant: "secondary", size: "S", onClick: handleAddWebApiKey, children: "+ Add Web API Key" })
579
578
  ] })
580
579
  ] })
581
580
  ] }) });
582
581
  })()
583
582
  ] }),
584
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
585
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Password Reset Settings" }),
583
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
584
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Password Reset Settings" }),
586
585
  /* @__PURE__ */ jsxRuntime.jsx(
587
- designSystem.Typography,
586
+ api.E,
588
587
  {
589
588
  variant: "omega",
590
589
  textColor: "neutral600",
@@ -592,10 +591,10 @@ function SettingsPage() {
592
591
  children: "Configure password requirements and email settings for password reset functionality"
593
592
  }
594
593
  ),
595
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
596
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Requirements (Regex)" }),
594
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
595
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Requirements (Regex)" }),
597
596
  /* @__PURE__ */ jsxRuntime.jsx(
598
- designSystem.TextInput,
597
+ api.G0,
599
598
  {
600
599
  name: "passwordRequirementsRegex",
601
600
  value: passwordRequirementsRegex,
@@ -605,10 +604,10 @@ function SettingsPage() {
605
604
  }
606
605
  )
607
606
  ] }),
608
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
609
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Requirements Message" }),
607
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
608
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Requirements Message" }),
610
609
  /* @__PURE__ */ jsxRuntime.jsx(
611
- designSystem.Textarea,
610
+ api.M1,
612
611
  {
613
612
  name: "passwordRequirementsMessage",
614
613
  value: passwordRequirementsMessage,
@@ -618,9 +617,9 @@ function SettingsPage() {
618
617
  }
619
618
  )
620
619
  ] }),
621
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 4, padding: 3, background: "neutral100", borderRadius: "4px", children: [
620
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 4, padding: 3, background: "neutral100", borderRadius: "4px", children: [
622
621
  /* @__PURE__ */ jsxRuntime.jsx(
623
- designSystem.Typography,
622
+ api.E,
624
623
  {
625
624
  variant: "omega",
626
625
  fontWeight: "bold",
@@ -628,33 +627,33 @@ function SettingsPage() {
628
627
  children: "Common Password Patterns:"
629
628
  }
630
629
  ),
631
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginLeft: 2, children: [
632
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
630
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginLeft: 2, children: [
631
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
633
632
  "• ",
634
633
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "^.{6,}$" }),
635
634
  " - Minimum 6 characters (simple)"
636
635
  ] }),
637
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
636
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
638
637
  "• ",
639
638
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "^.{8,}$" }),
640
639
  " - Minimum 8 characters"
641
640
  ] }),
642
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
641
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
643
642
  "• ",
644
643
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$" }),
645
644
  " - At least 8 chars with letters and numbers"
646
645
  ] }),
647
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block" }, children: [
646
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block" }, children: [
648
647
  "• ",
649
648
  /* @__PURE__ */ jsxRuntime.jsx("code", { children: "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$" }),
650
649
  " - Complex (upper, lower, number, special)"
651
650
  ] })
652
651
  ] })
653
652
  ] }),
654
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
655
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Reset URL *" }),
653
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
654
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Password Reset URL *" }),
656
655
  /* @__PURE__ */ jsxRuntime.jsx(
657
- designSystem.TextInput,
656
+ api.G0,
658
657
  {
659
658
  name: "passwordResetUrl",
660
659
  value: passwordResetUrl,
@@ -665,10 +664,10 @@ function SettingsPage() {
665
664
  }
666
665
  )
667
666
  ] }),
668
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
669
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Reset Email Subject" }),
667
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
668
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Reset Email Subject" }),
670
669
  /* @__PURE__ */ jsxRuntime.jsx(
671
- designSystem.TextInput,
670
+ api.G0,
672
671
  {
673
672
  name: "passwordResetEmailSubject",
674
673
  value: passwordResetEmailSubject,
@@ -679,21 +678,21 @@ function SettingsPage() {
679
678
  )
680
679
  ] }),
681
680
  /* @__PURE__ */ jsxRuntime.jsx(
682
- designSystem.Flex,
681
+ api.T,
683
682
  {
684
683
  style: {
685
684
  marginTop: 24,
686
685
  width: "100%"
687
686
  },
688
687
  justifyContent: "flex-end",
689
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { size: "L", variant: "secondary", onClick: handleSavePasswordSettings, children: "Save Password Settings" })
688
+ children: /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { size: "L", variant: "secondary", onClick: handleSavePasswordSettings, children: "Save Password Settings" })
690
689
  }
691
690
  )
692
691
  ] }),
693
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
694
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Email Verification" }),
692
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
693
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Email Verification" }),
695
694
  /* @__PURE__ */ jsxRuntime.jsx(
696
- designSystem.Typography,
695
+ api.E,
697
696
  {
698
697
  variant: "omega",
699
698
  textColor: "neutral600",
@@ -701,10 +700,10 @@ function SettingsPage() {
701
700
  children: "Configure email verification settings for new user registration"
702
701
  }
703
702
  ),
704
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
705
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Email Verification URL *" }),
703
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
704
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Email Verification URL *" }),
706
705
  /* @__PURE__ */ jsxRuntime.jsx(
707
- designSystem.TextInput,
706
+ api.G0,
708
707
  {
709
708
  name: "emailVerificationUrl",
710
709
  value: emailVerificationUrl,
@@ -715,10 +714,10 @@ function SettingsPage() {
715
714
  }
716
715
  )
717
716
  ] }),
718
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
719
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Verification Email Subject" }),
717
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
718
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", style: { display: "block", marginBottom: "8px" }, children: "Verification Email Subject" }),
720
719
  /* @__PURE__ */ jsxRuntime.jsx(
721
- designSystem.TextInput,
720
+ api.G0,
722
721
  {
723
722
  name: "emailVerificationEmailSubject",
724
723
  value: emailVerificationEmailSubject,
@@ -729,7 +728,7 @@ function SettingsPage() {
729
728
  )
730
729
  ] }),
731
730
  /* @__PURE__ */ jsxRuntime.jsx(
732
- designSystem.Flex,
731
+ api.T,
733
732
  {
734
733
  style: {
735
734
  marginTop: 24,
@@ -737,7 +736,7 @@ function SettingsPage() {
737
736
  },
738
737
  justifyContent: "flex-end",
739
738
  children: /* @__PURE__ */ jsxRuntime.jsx(
740
- designSystem.Button,
739
+ api.Nn,
741
740
  {
742
741
  size: "L",
743
742
  variant: "secondary",
@@ -749,10 +748,10 @@ function SettingsPage() {
749
748
  }
750
749
  )
751
750
  ] }),
752
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
753
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Magic Link Authentication" }),
751
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 4, background: "neutral0", borderRadius: "4px", shadow: "filterShadow", marginBottom: 6, children: [
752
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "alpha", as: "h2", style: { display: "block", marginBottom: "8px" }, children: "Magic Link Authentication" }),
754
753
  /* @__PURE__ */ jsxRuntime.jsx(
755
- designSystem.Typography,
754
+ api.E,
756
755
  {
757
756
  variant: "omega",
758
757
  textColor: "neutral600",
@@ -760,9 +759,9 @@ function SettingsPage() {
760
759
  children: "Configure passwordless authentication via email magic links"
761
760
  }
762
761
  ),
763
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
762
+ /* @__PURE__ */ jsxRuntime.jsx(api.R, { marginBottom: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(api.T, { alignItems: "center", gap: 2, children: [
764
763
  /* @__PURE__ */ jsxRuntime.jsx(
765
- designSystem.Toggle,
764
+ api.D1,
766
765
  {
767
766
  name: "enableMagicLink",
768
767
  label: "Enable Magic Link Authentication",
@@ -772,7 +771,7 @@ function SettingsPage() {
772
771
  }
773
772
  ),
774
773
  /* @__PURE__ */ jsxRuntime.jsx(
775
- designSystem.Typography,
774
+ api.E,
776
775
  {
777
776
  variant: "pi",
778
777
  fontWeight: "bold",
@@ -782,9 +781,9 @@ function SettingsPage() {
782
781
  )
783
782
  ] }) }),
784
783
  enableMagicLink && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
785
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
784
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
786
785
  /* @__PURE__ */ jsxRuntime.jsx(
787
- designSystem.Typography,
786
+ api.E,
788
787
  {
789
788
  variant: "omega",
790
789
  fontWeight: "bold",
@@ -793,7 +792,7 @@ function SettingsPage() {
793
792
  }
794
793
  ),
795
794
  /* @__PURE__ */ jsxRuntime.jsx(
796
- designSystem.TextInput,
795
+ api.G0,
797
796
  {
798
797
  name: "magicLinkUrl",
799
798
  value: magicLinkUrl,
@@ -804,9 +803,9 @@ function SettingsPage() {
804
803
  }
805
804
  )
806
805
  ] }),
807
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
806
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
808
807
  /* @__PURE__ */ jsxRuntime.jsx(
809
- designSystem.Typography,
808
+ api.E,
810
809
  {
811
810
  variant: "omega",
812
811
  fontWeight: "bold",
@@ -815,7 +814,7 @@ function SettingsPage() {
815
814
  }
816
815
  ),
817
816
  /* @__PURE__ */ jsxRuntime.jsx(
818
- designSystem.TextInput,
817
+ api.G0,
819
818
  {
820
819
  name: "magicLinkEmailSubject",
821
820
  value: magicLinkEmailSubject,
@@ -825,9 +824,9 @@ function SettingsPage() {
825
824
  }
826
825
  )
827
826
  ] }),
828
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginBottom: 3, children: [
827
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginBottom: 3, children: [
829
828
  /* @__PURE__ */ jsxRuntime.jsx(
830
- designSystem.Typography,
829
+ api.E,
831
830
  {
832
831
  variant: "omega",
833
832
  fontWeight: "bold",
@@ -836,7 +835,7 @@ function SettingsPage() {
836
835
  }
837
836
  ),
838
837
  /* @__PURE__ */ jsxRuntime.jsx(
839
- designSystem.NumberInput,
838
+ api.i1,
840
839
  {
841
840
  name: "magicLinkExpiryHours",
842
841
  value: magicLinkExpiryHours,
@@ -847,9 +846,9 @@ function SettingsPage() {
847
846
  }
848
847
  )
849
848
  ] }),
850
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 4, padding: 3, background: "primary100", borderRadius: "4px", children: [
849
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 4, padding: 3, background: "primary100", borderRadius: "4px", children: [
851
850
  /* @__PURE__ */ jsxRuntime.jsx(
852
- designSystem.Typography,
851
+ api.E,
853
852
  {
854
853
  variant: "omega",
855
854
  fontWeight: "bold",
@@ -857,32 +856,32 @@ function SettingsPage() {
857
856
  children: "Setup Requirements:"
858
857
  }
859
858
  ),
860
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginLeft: 2, children: [
861
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
859
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginLeft: 2, children: [
860
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
862
861
  "1. ",
863
862
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Firebase Console:" }),
864
863
  ' Enable "Email link (passwordless sign-in)" in Authentication → Sign-in method'
865
864
  ] }),
866
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
865
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
867
866
  "2. ",
868
867
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Authorized Domains:" }),
869
868
  " Add your domain to Firebase authorized domains list"
870
869
  ] }),
871
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
870
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
872
871
  "3. ",
873
872
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Verification Page:" }),
874
873
  " Deploy the client-side verification handler at the URL above"
875
874
  ] }),
876
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
875
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block", marginBottom: "8px" }, children: [
877
876
  "4. ",
878
877
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Email Service:" }),
879
878
  " Configure Strapi Email plugin or custom email hook"
880
879
  ] })
881
880
  ] })
882
881
  ] }),
883
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 3, padding: 3, background: "neutral100", borderRadius: "4px", children: [
882
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 3, padding: 3, background: "neutral100", borderRadius: "4px", children: [
884
883
  /* @__PURE__ */ jsxRuntime.jsx(
885
- designSystem.Typography,
884
+ api.E,
886
885
  {
887
886
  variant: "omega",
888
887
  fontWeight: "bold",
@@ -890,34 +889,34 @@ function SettingsPage() {
890
889
  children: "🧪 Testing:"
891
890
  }
892
891
  ),
893
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", style: { display: "block" }, children: [
892
+ /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", style: { display: "block" }, children: [
894
893
  "Test page available at:",
895
894
  " ",
896
895
  /* @__PURE__ */ jsxRuntime.jsx("a", { href: "/test-magic-link.html", target: "_blank", rel: "noreferrer", children: "/test-magic-link.html" })
897
896
  ] }),
898
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", style: { display: "block", marginTop: "4px" }, children: "In development mode, magic links are logged to the server console." })
897
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", style: { display: "block", marginTop: "4px" }, children: "In development mode, magic links are logged to the server console." })
899
898
  ] })
900
899
  ] }),
901
900
  /* @__PURE__ */ jsxRuntime.jsx(
902
- designSystem.Flex,
901
+ api.T,
903
902
  {
904
903
  style: {
905
904
  marginTop: 24,
906
905
  width: "100%"
907
906
  },
908
907
  justifyContent: "flex-end",
909
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { size: "L", variant: "secondary", onClick: handleSaveMagicLinkSettings, disabled: loading, children: "Save Magic Link Settings" })
908
+ children: /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { size: "L", variant: "secondary", onClick: handleSaveMagicLinkSettings, disabled: loading, children: "Save Magic Link Settings" })
910
909
  }
911
910
  )
912
911
  ] })
913
912
  ] }) }),
914
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open: showEditModal, onOpenChange: (open) => !open && setShowEditModal(false), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
915
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: "Add Firebase Web API Key" }) }),
916
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, children: [
917
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", marginBottom: 2, children: "Add your Firebase Web API Key to enable the emailLogin endpoint. This is optional and only needed if you want to authenticate users with email/password directly through your backend." }),
918
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 3, children: [
913
+ /* @__PURE__ */ jsxRuntime.jsx(api.t1.Root, { open: showEditModal, onOpenChange: (open) => !open && setShowEditModal(false), children: /* @__PURE__ */ jsxRuntime.jsxs(api.t1.Content, { children: [
914
+ /* @__PURE__ */ jsxRuntime.jsx(api.t1.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(api.t1.Title, { children: "Add Firebase Web API Key" }) }),
915
+ /* @__PURE__ */ jsxRuntime.jsx(api.t1.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.R, { padding: 4, children: [
916
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", marginBottom: 2, children: "Add your Firebase Web API Key to enable the emailLogin endpoint. This is optional and only needed if you want to authenticate users with email/password directly through your backend." }),
917
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 3, children: [
919
918
  /* @__PURE__ */ jsxRuntime.jsx(
920
- designSystem.Typography,
919
+ api.E,
921
920
  {
922
921
  variant: "omega",
923
922
  fontWeight: "bold",
@@ -926,7 +925,7 @@ function SettingsPage() {
926
925
  }
927
926
  ),
928
927
  /* @__PURE__ */ jsxRuntime.jsx(
929
- designSystem.TextInput,
928
+ api.G0,
930
929
  {
931
930
  name: "editWebApiKey",
932
931
  value: editWebApiKey,
@@ -936,26 +935,26 @@ function SettingsPage() {
936
935
  }
937
936
  )
938
937
  ] }),
939
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { marginTop: 3, padding: 2, background: "primary100", borderRadius: "4px", children: [
940
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "bold", children: "📍 Where to find your Web API Key:" }),
938
+ /* @__PURE__ */ jsxRuntime.jsxs(api.R, { marginTop: 3, padding: 2, background: "primary100", borderRadius: "4px", children: [
939
+ /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "bold", children: "📍 Where to find your Web API Key:" }),
941
940
  /* @__PURE__ */ jsxRuntime.jsxs("ol", { style: { marginLeft: 20, marginTop: 8 }, children: [
942
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
941
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
943
942
  "Go to",
944
943
  " ",
945
944
  /* @__PURE__ */ jsxRuntime.jsx("a", { href: "https://console.firebase.google.com", target: "_blank", rel: "noreferrer", children: "Firebase Console" })
946
945
  ] }) }),
947
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", children: "Select your project" }) }),
948
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
946
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", children: "Select your project" }) }),
947
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
949
948
  "Click the gear icon ⚙️ → ",
950
949
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Project Settings" })
951
950
  ] }) }),
952
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
951
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
953
952
  "In the ",
954
953
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "General" }),
955
954
  " tab, scroll down to ",
956
955
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Your apps" })
957
956
  ] }) }),
958
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "omega", children: [
957
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "omega", children: [
959
958
  "Find ",
960
959
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Web API Key" }),
961
960
  " (looks like: AIzaSyB3Xd...)"
@@ -963,9 +962,9 @@ function SettingsPage() {
963
962
  ] })
964
963
  ] })
965
964
  ] }) }),
966
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Footer, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "flex-end", gap: 2, children: [
967
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: () => setShowEditModal(false), children: "Cancel" }),
968
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "default", onClick: handleSaveEditConfiguration, children: "Add API Key" })
965
+ /* @__PURE__ */ jsxRuntime.jsx(api.t1.Footer, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.T, { justifyContent: "flex-end", gap: 2, children: [
966
+ /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { variant: "tertiary", onClick: () => setShowEditModal(false), children: "Cancel" }),
967
+ /* @__PURE__ */ jsxRuntime.jsx(api.Nn, { variant: "default", onClick: handleSaveEditConfiguration, children: "Add API Key" })
969
968
  ] }) })
970
969
  ] }) })
971
970
  ] });