@orion-studios/payload-studio 0.6.0-beta.1 → 0.6.0-beta.10

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,4 +1,4 @@
1
- export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioSection, S as StudioGlobalLink, f as StudioSection, g as StudioSectionCard, h as StudioSectionComponent, j as StudioSectionRole, k as StudioSectionView, l as configureAdmin, m as createHeaderNavItemsField, n as createSocialMediaConnectionsField, o as createSocialMediaGlobal, p as createThemePreferenceField, s as socialMediaConnectionsField, t as themePreferenceField, w as withTooltips } from '../index-D_b24Gef.mjs';
1
+ export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-Bm2SaC3r.mjs';
2
2
  export { b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, a as SocialMediaPlatform, h as SocialMediaProfileData, i as SocialMediaProfilesData } from '../socialMedia-C05Iy-SV.mjs';
3
3
  import 'payload';
4
4
  import '../sitePreviewTypes-BkHCWxNW.mjs';
@@ -1,4 +1,4 @@
1
- export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioSection, S as StudioGlobalLink, f as StudioSection, g as StudioSectionCard, h as StudioSectionComponent, j as StudioSectionRole, k as StudioSectionView, l as configureAdmin, m as createHeaderNavItemsField, n as createSocialMediaConnectionsField, o as createSocialMediaGlobal, p as createThemePreferenceField, s as socialMediaConnectionsField, t as themePreferenceField, w as withTooltips } from '../index-BMitiKK8.js';
1
+ export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-CkT_eyhK.js';
2
2
  export { b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, a as SocialMediaPlatform, h as SocialMediaProfileData, i as SocialMediaProfilesData } from '../socialMedia-C05Iy-SV.js';
3
3
  import 'payload';
4
4
  import '../sitePreviewTypes-BkHCWxNW.js';
@@ -216,7 +216,8 @@ function configureAdmin(config) {
216
216
  brandSecondary = "#8b5cf6",
217
217
  defaultTheme = "brand-light",
218
218
  logoUrl,
219
- allowThemePreference = false
219
+ allowThemePreference = false,
220
+ userSessionDurationSeconds = 60 * 60 * 24
220
221
  } = config;
221
222
  const studioEnabled = config.studio?.enabled ?? true;
222
223
  const formsEnabled = config.studio?.forms?.enabled ?? false;
@@ -502,6 +503,12 @@ function configureAdmin(config) {
502
503
  }
503
504
  }
504
505
  ],
506
+ afterLogin: [
507
+ {
508
+ exportName: "AdminLoginPasswordToggle",
509
+ path: clientPath
510
+ }
511
+ ],
505
512
  ...allowThemePreference ? {
506
513
  afterNavLinks: [
507
514
  {
@@ -528,8 +535,17 @@ function configureAdmin(config) {
528
535
  const hasThemePreference = existingFields.some(
529
536
  (field) => typeof field === "object" && field !== null && "name" in field && field.name === "themePreference"
530
537
  );
538
+ const normalizedAuth = usersCollection.auth === true ? {
539
+ tokenExpiration: userSessionDurationSeconds,
540
+ useSessions: true
541
+ } : usersCollection.auth && typeof usersCollection.auth === "object" ? {
542
+ ...usersCollection.auth,
543
+ tokenExpiration: usersCollection.auth.tokenExpiration ?? userSessionDurationSeconds,
544
+ useSessions: usersCollection.auth.useSessions ?? true
545
+ } : usersCollection.auth;
531
546
  const nextCollection = {
532
547
  ...usersCollection,
548
+ auth: normalizedAuth,
533
549
  fields: !allowThemePreference || hasThemePreference ? existingFields : [...existingFields, createThemePreferenceField(defaultTheme)]
534
550
  };
535
551
  return attachStudioBackBreadcrumbToCollection(nextCollection);
@@ -7,7 +7,7 @@ import {
7
7
  socialMediaConnectionsField,
8
8
  themePreferenceField,
9
9
  withTooltips
10
- } from "../chunk-Q2HGC67S.mjs";
10
+ } from "../chunk-WLOPFFN2.mjs";
11
11
  import "../chunk-W2UOCJDX.mjs";
12
12
  import {
13
13
  SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM,
@@ -360,6 +360,368 @@
360
360
  margin-top: 0.25rem;
361
361
  }
362
362
 
363
+ .orion-dashboard-layout {
364
+ align-items: start;
365
+ display: grid;
366
+ gap: 1rem;
367
+ grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.95fr);
368
+ width: 100%;
369
+ }
370
+
371
+ .orion-dashboard-panel {
372
+ background:
373
+ radial-gradient(circle at top right, color-mix(in srgb, var(--orion-admin-accent) 8%, transparent), transparent 38%),
374
+ linear-gradient(
375
+ 180deg,
376
+ color-mix(in srgb, var(--orion-admin-card-bg) 96%, white),
377
+ color-mix(in srgb, var(--orion-admin-main-bg) 98%, var(--orion-admin-card-bg))
378
+ );
379
+ border: 1px solid var(--orion-admin-card-border);
380
+ border-radius: calc(var(--orion-admin-radius-lg) - 4px);
381
+ box-shadow: var(--orion-admin-shadow-card);
382
+ display: grid;
383
+ gap: 1rem;
384
+ min-width: 0;
385
+ overflow: hidden;
386
+ padding: 1.15rem;
387
+ position: relative;
388
+ }
389
+
390
+ .orion-dashboard-panel::before {
391
+ background: linear-gradient(90deg, color-mix(in srgb, var(--orion-admin-accent) 26%, transparent), transparent 72%);
392
+ content: '';
393
+ height: 1px;
394
+ inset: 0 auto auto 0;
395
+ position: absolute;
396
+ width: 100%;
397
+ }
398
+
399
+ .orion-dashboard-panel--activity,
400
+ .orion-dashboard-panel--snapshot {
401
+ min-height: 100%;
402
+ }
403
+
404
+ .orion-dashboard-panel-header {
405
+ align-items: start;
406
+ display: flex;
407
+ gap: 0.8rem;
408
+ justify-content: space-between;
409
+ }
410
+
411
+ .orion-dashboard-panel-header h2 {
412
+ color: var(--orion-admin-text);
413
+ font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
414
+ font-size: 1.12rem;
415
+ line-height: 1.2;
416
+ margin: 0.25rem 0 0;
417
+ }
418
+
419
+ .orion-dashboard-panel-kicker,
420
+ .orion-dashboard-snapshot-kicker {
421
+ color: color-mix(in srgb, var(--orion-admin-muted) 92%, var(--orion-admin-accent));
422
+ display: inline-flex;
423
+ font-size: 0.72rem;
424
+ font-weight: 800;
425
+ letter-spacing: 0.16em;
426
+ text-transform: uppercase;
427
+ }
428
+
429
+ .orion-dashboard-panel-meta {
430
+ background: color-mix(in srgb, var(--orion-admin-accent) 10%, transparent);
431
+ border: 1px solid color-mix(in srgb, var(--orion-admin-accent) 18%, transparent);
432
+ border-radius: var(--orion-admin-radius-pill);
433
+ color: var(--orion-admin-accent);
434
+ font-size: 0.78rem;
435
+ font-weight: 700;
436
+ padding: 0.35rem 0.7rem;
437
+ white-space: nowrap;
438
+ }
439
+
440
+ .orion-dashboard-attention-list,
441
+ .orion-dashboard-action-list,
442
+ .orion-dashboard-activity-list {
443
+ display: grid;
444
+ gap: 0.7rem;
445
+ }
446
+
447
+ .orion-dashboard-attention-item,
448
+ .orion-dashboard-action,
449
+ .orion-dashboard-activity-item {
450
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 82%, white);
451
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 84%, transparent);
452
+ border-radius: var(--orion-admin-radius-md);
453
+ color: inherit;
454
+ min-width: 0;
455
+ text-decoration: none;
456
+ }
457
+
458
+ .orion-dashboard-attention-item {
459
+ align-items: center;
460
+ display: flex;
461
+ gap: 1rem;
462
+ justify-content: space-between;
463
+ padding: 0.9rem 1rem;
464
+ }
465
+
466
+ .orion-dashboard-attention-item strong {
467
+ font-size: 0.94rem;
468
+ line-height: 1.4;
469
+ }
470
+
471
+ .orion-dashboard-attention-item span {
472
+ color: var(--orion-admin-accent);
473
+ font-size: 0.84rem;
474
+ font-weight: 800;
475
+ white-space: nowrap;
476
+ }
477
+
478
+ .orion-dashboard-attention-item.is-accent {
479
+ background: color-mix(in srgb, var(--orion-admin-accent-subtle) 56%, var(--orion-admin-card-bg));
480
+ border-color: color-mix(in srgb, var(--orion-admin-accent) 22%, transparent);
481
+ }
482
+
483
+ .orion-dashboard-attention-item.is-muted {
484
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 92%, var(--orion-admin-main-bg));
485
+ }
486
+
487
+ .orion-dashboard-action-list {
488
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
489
+ }
490
+
491
+ .orion-dashboard-action {
492
+ display: grid;
493
+ gap: 0.35rem;
494
+ padding: 0.95rem 1rem;
495
+ transition:
496
+ border-color 0.18s ease,
497
+ box-shadow 0.18s ease,
498
+ transform 0.18s ease;
499
+ }
500
+
501
+ .orion-dashboard-action strong {
502
+ color: var(--orion-admin-text);
503
+ font-size: 0.96rem;
504
+ }
505
+
506
+ .orion-dashboard-action span {
507
+ color: var(--orion-admin-muted);
508
+ font-size: 0.88rem;
509
+ line-height: 1.45;
510
+ }
511
+
512
+ .orion-dashboard-action:hover,
513
+ .orion-dashboard-activity-item:hover,
514
+ .orion-dashboard-workspace-pill:hover,
515
+ .orion-dashboard-attention-item:hover {
516
+ border-color: color-mix(in srgb, var(--orion-admin-accent) 22%, transparent);
517
+ box-shadow: 0 14px 28px color-mix(in srgb, var(--orion-admin-accent) 10%, transparent);
518
+ transform: translateY(-1px);
519
+ }
520
+
521
+ .orion-dashboard-action.is-soft {
522
+ background: color-mix(in srgb, var(--orion-admin-accent-subtle) 54%, var(--orion-admin-card-bg));
523
+ }
524
+
525
+ .orion-dashboard-action.is-ghost {
526
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 78%, white);
527
+ }
528
+
529
+ .orion-dashboard-workspace-strip {
530
+ border-top: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 72%, transparent);
531
+ display: grid;
532
+ gap: 0.75rem;
533
+ padding-top: 0.95rem;
534
+ }
535
+
536
+ .orion-dashboard-workspace-label {
537
+ color: var(--orion-admin-muted);
538
+ font-size: 0.8rem;
539
+ font-weight: 700;
540
+ text-transform: uppercase;
541
+ }
542
+
543
+ .orion-dashboard-workspace-pills {
544
+ display: flex;
545
+ flex-wrap: wrap;
546
+ gap: 0.55rem;
547
+ }
548
+
549
+ .orion-dashboard-workspace-pill {
550
+ background: color-mix(in srgb, var(--orion-admin-main-bg) 82%, white);
551
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 74%, transparent);
552
+ border-radius: var(--orion-admin-radius-pill);
553
+ color: var(--orion-admin-text);
554
+ font-size: 0.84rem;
555
+ font-weight: 700;
556
+ padding: 0.45rem 0.8rem;
557
+ text-decoration: none;
558
+ transition:
559
+ border-color 0.18s ease,
560
+ box-shadow 0.18s ease,
561
+ transform 0.18s ease;
562
+ }
563
+
564
+ .orion-dashboard-activity-list {
565
+ align-content: start;
566
+ }
567
+
568
+ .orion-dashboard-activity-item {
569
+ align-items: center;
570
+ display: grid;
571
+ gap: 0.9rem;
572
+ grid-template-columns: minmax(0, 1fr) auto;
573
+ padding: 0.95rem 1rem;
574
+ }
575
+
576
+ .orion-dashboard-activity-item.is-page {
577
+ border-left: 3px solid color-mix(in srgb, var(--orion-admin-accent) 72%, transparent);
578
+ }
579
+
580
+ .orion-dashboard-activity-item.is-submission {
581
+ border-left: 3px solid color-mix(in srgb, var(--brand-secondary, var(--orion-admin-accent)) 68%, transparent);
582
+ }
583
+
584
+ .orion-dashboard-activity-item.is-media {
585
+ border-left: 3px solid color-mix(in srgb, var(--orion-admin-muted) 46%, transparent);
586
+ }
587
+
588
+ .orion-dashboard-activity-copy {
589
+ min-width: 0;
590
+ }
591
+
592
+ .orion-dashboard-activity-topline {
593
+ align-items: center;
594
+ display: flex;
595
+ gap: 0.75rem;
596
+ justify-content: space-between;
597
+ }
598
+
599
+ .orion-dashboard-activity-topline strong {
600
+ font-size: 0.95rem;
601
+ }
602
+
603
+ .orion-dashboard-activity-topline span,
604
+ .orion-dashboard-activity-copy p {
605
+ color: var(--orion-admin-muted);
606
+ font-size: 0.84rem;
607
+ }
608
+
609
+ .orion-dashboard-activity-copy p {
610
+ margin: 0.25rem 0 0;
611
+ }
612
+
613
+ .orion-dashboard-activity-pill {
614
+ align-self: start;
615
+ background: color-mix(in srgb, var(--orion-admin-accent) 10%, transparent);
616
+ border: 1px solid color-mix(in srgb, var(--orion-admin-accent) 18%, transparent);
617
+ border-radius: var(--orion-admin-radius-pill);
618
+ color: var(--orion-admin-accent);
619
+ font-size: 0.78rem;
620
+ font-weight: 800;
621
+ padding: 0.35rem 0.65rem;
622
+ text-transform: capitalize;
623
+ }
624
+
625
+ .orion-dashboard-snapshot-grid {
626
+ display: grid;
627
+ gap: 0.8rem;
628
+ grid-template-columns: repeat(2, minmax(0, 1fr));
629
+ }
630
+
631
+ .orion-dashboard-snapshot-card,
632
+ .orion-dashboard-extension-panel,
633
+ .orion-dashboard-extension-fallback {
634
+ background:
635
+ linear-gradient(
636
+ 180deg,
637
+ color-mix(in srgb, var(--orion-admin-card-bg) 96%, white),
638
+ color-mix(in srgb, var(--orion-admin-main-bg) 98%, var(--orion-admin-card-bg))
639
+ );
640
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 84%, transparent);
641
+ border-radius: var(--orion-admin-radius-md);
642
+ min-width: 0;
643
+ padding: 0.95rem 1rem;
644
+ }
645
+
646
+ .orion-dashboard-snapshot-card strong {
647
+ color: var(--orion-admin-text);
648
+ display: block;
649
+ font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
650
+ font-size: clamp(1.45rem, 2vw, 2rem);
651
+ line-height: 1;
652
+ margin-top: 0.45rem;
653
+ }
654
+
655
+ .orion-dashboard-snapshot-card p,
656
+ .orion-dashboard-extension-fallback p {
657
+ color: var(--orion-admin-muted);
658
+ font-size: 0.86rem;
659
+ line-height: 1.45;
660
+ margin: 0.45rem 0 0;
661
+ }
662
+
663
+ .orion-dashboard-extension-panel.is-full {
664
+ grid-column: 1 / -1;
665
+ }
666
+
667
+ .orion-dashboard-extension-fallback strong {
668
+ display: block;
669
+ font-size: 1rem;
670
+ margin-top: 0.35rem;
671
+ }
672
+
673
+ .orion-dashboard-empty-state,
674
+ .orion-dashboard-inline-note {
675
+ background: color-mix(in srgb, var(--orion-admin-main-bg) 66%, white);
676
+ border: 1px dashed color-mix(in srgb, var(--orion-admin-card-border) 72%, transparent);
677
+ border-radius: var(--orion-admin-radius-md);
678
+ color: var(--orion-admin-muted);
679
+ font-size: 0.9rem;
680
+ padding: 1rem;
681
+ }
682
+
683
+ .orion-dashboard-empty-state strong {
684
+ color: var(--orion-admin-text);
685
+ display: block;
686
+ font-size: 0.98rem;
687
+ margin-bottom: 0.35rem;
688
+ }
689
+
690
+ @media (max-width: 1320px) {
691
+ .orion-dashboard-layout {
692
+ grid-template-columns: minmax(0, 1fr);
693
+ }
694
+
695
+ .orion-dashboard-panel {
696
+ min-height: 0;
697
+ }
698
+ }
699
+
700
+ @media (max-width: 820px) {
701
+ .orion-dashboard-snapshot-grid,
702
+ .orion-dashboard-action-list {
703
+ grid-template-columns: minmax(0, 1fr);
704
+ }
705
+
706
+ .orion-dashboard-panel-header,
707
+ .orion-dashboard-activity-item,
708
+ .orion-dashboard-attention-item,
709
+ .orion-dashboard-activity-topline {
710
+ grid-template-columns: none;
711
+ }
712
+
713
+ .orion-dashboard-panel-header,
714
+ .orion-dashboard-activity-topline {
715
+ flex-direction: column;
716
+ align-items: flex-start;
717
+ }
718
+
719
+ .orion-dashboard-attention-item,
720
+ .orion-dashboard-activity-item {
721
+ align-items: flex-start;
722
+ }
723
+ }
724
+
363
725
  .orion-admin-list {
364
726
  display: grid;
365
727
  gap: 0.65rem;
@@ -600,7 +962,8 @@
600
962
  .orion-admin-login-intro {
601
963
  color: var(--orion-admin-login-hero-text);
602
964
  display: grid;
603
- gap: 1.15rem;
965
+ align-content: end;
966
+ gap: 0.95rem;
604
967
  padding: clamp(1.6rem, 4vw, 2.75rem) clamp(2rem, 4vw, 3rem) clamp(2.2rem, 5vw, 3.25rem);
605
968
  }
606
969
 
@@ -622,45 +985,29 @@
622
985
  .orion-admin-login-intro h1 {
623
986
  color: var(--orion-admin-login-hero-text);
624
987
  font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
625
- font-size: clamp(2.4rem, 3.8vw, 3.6rem);
626
- letter-spacing: -0.05em;
627
- line-height: 0.98;
988
+ font-size: clamp(2.35rem, 3.4vw, 3.25rem);
989
+ letter-spacing: -0.045em;
990
+ line-height: 1;
628
991
  margin: 0;
629
- max-width: 10ch;
992
+ max-width: 11ch;
630
993
  }
631
994
 
632
995
  .orion-admin-login-intro > p {
633
996
  color: var(--orion-admin-login-hero-muted);
634
- font-size: 1.02rem;
635
- line-height: 1.75;
997
+ font-size: 0.98rem;
998
+ line-height: 1.7;
636
999
  margin: 0;
637
- max-width: 34rem;
638
- }
639
-
640
- .orion-admin-login-note-grid {
641
- display: grid;
642
- gap: 0.85rem;
643
- margin-top: 0.35rem;
644
- }
645
-
646
- .orion-admin-login-note {
647
- background: color-mix(in srgb, var(--orion-admin-login-hero-text) 8%, transparent);
648
- border: 1px solid color-mix(in srgb, var(--orion-admin-login-hero-text) 12%, transparent);
649
- border-radius: var(--orion-admin-radius-md);
650
- display: grid;
651
- gap: 0.3rem;
652
- padding: 1rem 1.05rem;
653
- }
654
-
655
- .orion-admin-login-note strong {
656
- color: var(--orion-admin-login-hero-text);
657
- font-size: 0.96rem;
1000
+ max-width: 28rem;
658
1001
  }
659
1002
 
660
- .orion-admin-login-note span {
1003
+ .orion-admin-login-caption {
1004
+ border-top: 1px solid color-mix(in srgb, var(--orion-admin-login-hero-text) 14%, transparent);
661
1005
  color: var(--orion-admin-login-hero-muted);
662
1006
  font-size: 0.9rem;
1007
+ font-weight: 600;
663
1008
  line-height: 1.55;
1009
+ margin-top: 0.2rem !important;
1010
+ padding-top: 1rem;
664
1011
  }
665
1012
 
666
1013
  .template-minimal.login .login__form {
@@ -680,8 +1027,8 @@
680
1027
 
681
1028
  .template-minimal.login .login__form::before {
682
1029
  color: var(--brand-secondary);
683
- content: 'Welcome back';
684
- font-size: 0.76rem;
1030
+ content: 'Sign in';
1031
+ font-size: 0.78rem;
685
1032
  font-weight: 800;
686
1033
  letter-spacing: 0.18em;
687
1034
  margin-bottom: -0.1rem;
@@ -689,20 +1036,24 @@
689
1036
  }
690
1037
 
691
1038
  .template-minimal.login .login__form::after {
692
- color: var(--orion-admin-login-panel-text);
693
- content: 'Sign in to continue into your studio workspace.';
694
- font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
695
- font-size: clamp(1.6rem, 2.3vw, 2.15rem);
696
- letter-spacing: -0.035em;
697
- line-height: 1.1;
698
- margin-bottom: 0.35rem;
1039
+ content: none;
699
1040
  }
700
1041
 
701
1042
  .template-minimal.login .login__form__inputWrap {
1043
+ display: grid;
702
1044
  gap: 1rem;
703
1045
  margin-bottom: 0;
704
1046
  }
705
1047
 
1048
+ .template-minimal.login .login__form__inputWrap::before {
1049
+ color: var(--orion-admin-login-panel-muted);
1050
+ content: 'Use the email and password for your admin account.';
1051
+ display: block;
1052
+ font-size: 0.96rem;
1053
+ line-height: 1.55;
1054
+ margin-bottom: 0.15rem;
1055
+ }
1056
+
706
1057
  .template-minimal.login .login__form .field-type {
707
1058
  display: grid;
708
1059
  gap: 0.42rem;
@@ -725,6 +1076,10 @@
725
1076
  display: grid;
726
1077
  }
727
1078
 
1079
+ .template-minimal.login .login__form .field-type.password .field-type__wrap > div {
1080
+ position: relative;
1081
+ }
1082
+
728
1083
  .template-minimal.login .login__form input {
729
1084
  background: var(--orion-admin-input-bg);
730
1085
  border: 1px solid var(--orion-admin-input-border);
@@ -742,6 +1097,61 @@
742
1097
  transform 0.18s ease;
743
1098
  }
744
1099
 
1100
+ .template-minimal.login .login__form .field-type.password input {
1101
+ padding-right: 4rem;
1102
+ }
1103
+
1104
+ .orion-admin-password-toggle-slot {
1105
+ align-items: center;
1106
+ display: flex;
1107
+ inset: 0.5rem 0.7rem 0.5rem auto;
1108
+ position: absolute;
1109
+ z-index: 2;
1110
+ }
1111
+
1112
+ .orion-admin-password-toggle {
1113
+ align-items: center;
1114
+ appearance: none;
1115
+ background: color-mix(in srgb, var(--orion-admin-input-bg) 92%, white);
1116
+ border: 1px solid color-mix(in srgb, var(--orion-admin-input-border) 82%, var(--brand-secondary) 18%);
1117
+ border-radius: var(--orion-admin-radius-pill);
1118
+ box-shadow:
1119
+ inset 0 1px 0 rgba(255, 255, 255, 0.7),
1120
+ 0 8px 18px rgba(62, 42, 24, 0.08);
1121
+ color: color-mix(in srgb, var(--orion-admin-login-panel-text) 86%, var(--brand-secondary) 14%);
1122
+ cursor: pointer;
1123
+ display: inline-flex;
1124
+ height: 40px;
1125
+ justify-content: center;
1126
+ padding: 0;
1127
+ transition:
1128
+ background 0.18s ease,
1129
+ border-color 0.18s ease,
1130
+ box-shadow 0.18s ease,
1131
+ color 0.18s ease,
1132
+ transform 0.18s ease;
1133
+ width: 40px;
1134
+ }
1135
+
1136
+ .orion-admin-password-toggle:hover {
1137
+ border-color: color-mix(in srgb, var(--brand-secondary) 34%, transparent);
1138
+ color: var(--orion-admin-accent);
1139
+ transform: translateY(-1px);
1140
+ }
1141
+
1142
+ .orion-admin-password-toggle[data-visible='true'] {
1143
+ background: color-mix(in srgb, var(--orion-admin-accent-soft) 72%, white);
1144
+ border-color: color-mix(in srgb, var(--orion-admin-accent) 28%, transparent);
1145
+ color: var(--orion-admin-accent);
1146
+ }
1147
+
1148
+ .orion-admin-password-toggle:focus-visible {
1149
+ box-shadow:
1150
+ 0 0 0 4px color-mix(in srgb, var(--orion-admin-accent) 12%, white),
1151
+ 0 14px 30px color-mix(in srgb, var(--orion-admin-accent) 18%, transparent);
1152
+ outline: none;
1153
+ }
1154
+
745
1155
  .template-minimal.login .login__form input::placeholder {
746
1156
  color: var(--orion-admin-input-placeholder);
747
1157
  }
@@ -187,7 +187,8 @@ function configureAdmin(config) {
187
187
  brandSecondary = "#8b5cf6",
188
188
  defaultTheme = "brand-light",
189
189
  logoUrl,
190
- allowThemePreference = false
190
+ allowThemePreference = false,
191
+ userSessionDurationSeconds = 60 * 60 * 24
191
192
  } = config;
192
193
  const studioEnabled = config.studio?.enabled ?? true;
193
194
  const formsEnabled = config.studio?.forms?.enabled ?? false;
@@ -473,6 +474,12 @@ function configureAdmin(config) {
473
474
  }
474
475
  }
475
476
  ],
477
+ afterLogin: [
478
+ {
479
+ exportName: "AdminLoginPasswordToggle",
480
+ path: clientPath
481
+ }
482
+ ],
476
483
  ...allowThemePreference ? {
477
484
  afterNavLinks: [
478
485
  {
@@ -499,8 +506,17 @@ function configureAdmin(config) {
499
506
  const hasThemePreference = existingFields.some(
500
507
  (field) => typeof field === "object" && field !== null && "name" in field && field.name === "themePreference"
501
508
  );
509
+ const normalizedAuth = usersCollection.auth === true ? {
510
+ tokenExpiration: userSessionDurationSeconds,
511
+ useSessions: true
512
+ } : usersCollection.auth && typeof usersCollection.auth === "object" ? {
513
+ ...usersCollection.auth,
514
+ tokenExpiration: usersCollection.auth.tokenExpiration ?? userSessionDurationSeconds,
515
+ useSessions: usersCollection.auth.useSessions ?? true
516
+ } : usersCollection.auth;
502
517
  const nextCollection = {
503
518
  ...usersCollection,
519
+ auth: normalizedAuth,
504
520
  fields: !allowThemePreference || hasThemePreference ? existingFields : [...existingFields, createThemePreferenceField(defaultTheme)]
505
521
  };
506
522
  return attachStudioBackBreadcrumbToCollection(nextCollection);