@uniai-fe/uds-templates 0.1.41 → 0.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.
- package/dist/styles.css +181 -76
- package/package.json +8 -8
- package/src/auth/common/auth-code/index.tsx +13 -0
- package/src/auth/common/auth-code/markup/Email.tsx +54 -0
- package/src/auth/common/auth-code/markup/InputCode.tsx +127 -0
- package/src/auth/common/auth-code/markup/Phone.tsx +53 -0
- package/src/auth/common/auth-code/styles/index.scss +3 -0
- package/src/auth/common/auth-code/types/index.ts +111 -0
- package/src/auth/common/complete/Template.tsx +1 -1
- package/src/auth/common/container/index.tsx +1 -1
- package/src/auth/common/container/types.ts +53 -0
- package/src/auth/common/find/hooks/useFindAccountForm.ts +28 -42
- package/src/auth/common/find/markup/CodeStep.tsx +121 -115
- package/src/auth/common/find/markup/FieldBase.tsx +63 -0
- package/src/auth/common/find/markup/InfoStep.tsx +67 -54
- package/src/auth/common/find/styles/email.scss +11 -11
- package/src/auth/common/find/styles/layout.scss +1 -1
- package/src/auth/common/find/types/forms.ts +56 -22
- package/src/auth/common/find/types/index.ts +2 -121
- package/src/auth/common/find/types/props.ts +499 -0
- package/src/auth/common/password/{constants.ts → data/vaildation.ts} +4 -1
- package/src/auth/common/password/hooks/useCheckPassword.ts +35 -102
- package/src/auth/common/password/index.tsx +8 -0
- package/src/auth/common/password/markup/CheckIcon.tsx +9 -0
- package/src/auth/common/password/markup/FieldBase.tsx +63 -0
- package/src/auth/common/password/markup/PasswordHelper.tsx +45 -0
- package/src/auth/common/password/markup/SetPassword.tsx +147 -0
- package/src/auth/common/password/styles/set-password.scss +63 -0
- package/src/auth/common/password/types/hook.ts +58 -0
- package/src/auth/common/password/types/index.ts +3 -0
- package/src/auth/common/password/types/props.ts +101 -0
- package/src/auth/common/password/{types.ts → types/validation.ts} +0 -53
- package/src/auth/find-id/index.ts +2 -0
- package/src/auth/find-id/markup/Provider.tsx +29 -0
- package/src/auth/find-id/markup/StepComplete.tsx +8 -13
- package/src/auth/find-id/markup/StepIdentify.tsx +18 -23
- package/src/auth/find-id/markup/StepVerifyCode.tsx +18 -22
- package/src/auth/find-id/types/index.ts +1 -65
- package/src/auth/find-id/types/props.ts +218 -0
- package/src/auth/find-password/index.ts +3 -5
- package/src/auth/find-password/markup/Provider.tsx +44 -0
- package/src/auth/find-password/markup/StepComplete.tsx +5 -7
- package/src/auth/find-password/markup/StepIdentify.tsx +20 -22
- package/src/auth/find-password/markup/StepResetPassword.tsx +58 -88
- package/src/auth/find-password/markup/StepVerifyCode.tsx +18 -22
- package/src/auth/index.tsx +6 -5
- package/src/auth/login/hooks/useAuthLoginForm.ts +35 -36
- package/src/auth/login/markup/Container.tsx +7 -0
- package/src/auth/login/markup/FormField.tsx +71 -79
- package/src/auth/login/markup/Password.tsx +89 -0
- package/src/auth/login/markup/UserId.tsx +89 -0
- package/src/auth/login/styles/login.scss +10 -8
- package/src/auth/login/types/hooks.ts +30 -16
- package/src/auth/login/types/props.ts +262 -61
- package/src/auth/signup/hooks/useSignupAccountForm.ts +15 -7
- package/src/auth/signup/hooks/useSignupUserInfoForm.ts +4 -5
- package/src/auth/signup/hooks/useSignupVerificationForm.ts +7 -5
- package/src/auth/signup/index.ts +3 -0
- package/src/auth/signup/markup/AccountForm.tsx +95 -62
- package/src/auth/signup/markup/Provider.tsx +33 -0
- package/src/auth/signup/markup/UserInfoForm.tsx +99 -47
- package/src/auth/signup/markup/VerificationForm.tsx +95 -78
- package/src/auth/signup/styles/signup.scss +25 -23
- package/src/auth/signup/types/hooks.ts +106 -11
- package/src/auth/signup/types/props.ts +345 -23
- package/src/cctv/components/video/Template.tsx +6 -3
- package/src/modal/core/components/Container.tsx +22 -4
- package/src/modal/core/components/FooterButtons.tsx +56 -97
- package/src/modal/core/components/FooterPositionButton.tsx +69 -0
- package/src/modal/core/components/FooterPositionGroup.tsx +29 -0
- package/src/modal/core/components/Provider.tsx +3 -0
- package/src/modal/core/components/Root.tsx +27 -23
- package/src/modal/core/hooks/useModal.ts +2 -13
- package/src/modal/styles/base.scss +13 -13
- package/src/modal/styles/container.scss +148 -40
- package/src/modal/templates/Alert.tsx +11 -0
- package/src/modal/templates/Dialog.tsx +50 -37
- package/src/modal/templates/components/DialogBody.tsx +20 -0
- package/src/modal/templates/components/DialogHeader.tsx +65 -0
- package/src/modal/types/components.ts +166 -0
- package/src/modal/types/footer.ts +112 -0
- package/src/modal/types/hooks.ts +49 -0
- package/src/modal/types/index.ts +13 -0
- package/src/modal/types/options.ts +11 -0
- package/src/modal/types/state.ts +86 -0
- package/src/modal/types/templates.ts +157 -1
- package/src/page-frame/desktop/components/header/util/setting/Button.tsx +77 -20
- package/src/page-frame/desktop/data/setting.ts +17 -0
- package/src/page-frame/desktop/index.tsx +1 -0
- package/src/page-frame/desktop/styles/variables.scss +1 -1
- package/src/page-frame/desktop/types/index.ts +10 -1
- package/src/page-frame/desktop/types/setting.ts +39 -0
- package/src/page-frame/mobile/components/header/Header.tsx +6 -6
- package/src/page-frame/types/index.ts +4 -9
- package/src/auth/common/find/utils/composeFieldProps.ts +0 -45
- package/src/auth/common/password/markup/PasswordSetField.tsx +0 -252
- package/src/auth/common/password/styles/password-set-field.scss +0 -48
- package/src/auth/common/password/utils/composePasswordFieldProps.ts +0 -44
- package/src/auth/signup/utils/composeFieldProps.ts +0 -50
package/dist/styles.css
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--uds-page-nav-logo-height: var(--uds-page-header-height, 7.2rem);
|
|
14
14
|
--uds-page-nav-list-padding-horizontal: 0rem;
|
|
15
15
|
--uds-page-nav-list-padding-vertical: var(--spacing-padding-9, 2.4rem);
|
|
16
|
-
--uds-page-nav-item-height: var(--theme-size-
|
|
16
|
+
--uds-page-nav-item-height: var(--theme-size-medium-2, 4.8rem);
|
|
17
17
|
--uds-page-nav-item-gap: var(--spacing-gap-6, 1.6rem);
|
|
18
18
|
--uds-page-nav-item-color-default: var(--color-label-standard);
|
|
19
19
|
--uds-page-nav-item-color-active: var(--color-primary-default);
|
|
@@ -38,25 +38,25 @@
|
|
|
38
38
|
);
|
|
39
39
|
--modal-overlay-bg: rgba(5, 6, 12, 0.55);
|
|
40
40
|
--modal-panel-width: 360px;
|
|
41
|
-
--modal-panel-max-width: calc(100vw - var(--spacing-padding-10
|
|
42
|
-
--modal-panel-max-height: calc(100vh - var(--spacing-padding-10
|
|
41
|
+
--modal-panel-max-width: calc(100vw - var(--spacing-padding-10) * 2);
|
|
42
|
+
--modal-panel-max-height: calc(100vh - var(--spacing-padding-10) * 2);
|
|
43
43
|
--modal-panel-bg: var(--color-surface-static-white);
|
|
44
44
|
--modal-panel-radius: var(--theme-radius-large-1);
|
|
45
45
|
--modal-panel-shadow: 0px 18px 40px rgba(8, 11, 30, 0.18);
|
|
46
|
-
--modal-border-color: var(--color-border-standard-cool-gray
|
|
46
|
+
--modal-border-color: var(--color-border-standard-cool-gray);
|
|
47
47
|
--modal-footer-border-color: var(--modal-border-color);
|
|
48
48
|
--modal-stack-index: 0;
|
|
49
|
-
--modal-alert-body-color: var(--color-label-
|
|
50
|
-
--modal-alert-body-font-size: var(--font-body-
|
|
51
|
-
--modal-dialog-title-color: var(--color-label-strong
|
|
52
|
-
--modal-dialog-title-font-size: var(--font-heading-
|
|
49
|
+
--modal-alert-body-color: var(--color-label-standard);
|
|
50
|
+
--modal-alert-body-font-size: var(--font-body-medium-size);
|
|
51
|
+
--modal-dialog-title-color: var(--color-label-strong);
|
|
52
|
+
--modal-dialog-title-font-size: var(--font-heading-small-size);
|
|
53
53
|
--modal-dialog-title-line-height: var(
|
|
54
|
-
--font-heading-
|
|
55
|
-
|
|
54
|
+
--font-heading-small-line-height,
|
|
55
|
+
1.4em
|
|
56
56
|
);
|
|
57
|
-
--modal-dialog-title-weight: var(--font-heading-
|
|
58
|
-
--modal-dialog-body-color: var(--color-label-
|
|
59
|
-
--modal-dialog-body-font-size: var(--font-body-
|
|
57
|
+
--modal-dialog-title-weight: var(--font-heading-small-weight);
|
|
58
|
+
--modal-dialog-body-color: var(--color-label-standard);
|
|
59
|
+
--modal-dialog-body-font-size: var(--font-body-medium-size);
|
|
60
60
|
--auth-container-max-width: 335px;
|
|
61
61
|
--auth-container-gap: var(--spacing-padding-7, 28px);
|
|
62
62
|
--auth-container-padding-inline: var(--spacing-padding-6, 24px);
|
|
@@ -456,7 +456,7 @@
|
|
|
456
456
|
.uds-modal-root {
|
|
457
457
|
position: fixed;
|
|
458
458
|
inset: 0;
|
|
459
|
-
z-index: calc(
|
|
459
|
+
z-index: calc(1000 + var(--modal-stack-index, 0));
|
|
460
460
|
display: flex;
|
|
461
461
|
align-items: center;
|
|
462
462
|
justify-content: center;
|
|
@@ -522,23 +522,67 @@
|
|
|
522
522
|
|
|
523
523
|
.uds-modal-footer-buttons {
|
|
524
524
|
display: flex;
|
|
525
|
+
flex-wrap: wrap;
|
|
525
526
|
width: 100%;
|
|
526
|
-
gap: var(--spacing-gap-4, 16px);
|
|
527
527
|
padding: var(--spacing-padding-6, 16px);
|
|
528
|
+
gap: var(--spacing-gap-4, 16px);
|
|
529
|
+
align-items: stretch;
|
|
530
|
+
row-gap: var(--spacing-gap-4, 16px);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.uds-modal-footer-group {
|
|
534
|
+
display: flex;
|
|
535
|
+
flex: 1 1 0;
|
|
536
|
+
flex-wrap: nowrap;
|
|
537
|
+
gap: var(--spacing-gap-4, 16px);
|
|
528
538
|
align-items: stretch;
|
|
529
539
|
}
|
|
530
|
-
.uds-modal-footer-
|
|
540
|
+
.uds-modal-footer-group[data-position=left] {
|
|
541
|
+
justify-content: flex-start;
|
|
542
|
+
}
|
|
543
|
+
.uds-modal-footer-group[data-position=center] {
|
|
544
|
+
justify-content: center;
|
|
545
|
+
}
|
|
546
|
+
.uds-modal-footer-group[data-position=right] {
|
|
547
|
+
justify-content: flex-end;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
.uds-modal-footer-center {
|
|
551
|
+
display: flex;
|
|
552
|
+
flex-wrap: wrap;
|
|
553
|
+
justify-content: center;
|
|
554
|
+
gap: var(--spacing-gap-4, 16px);
|
|
531
555
|
width: 100%;
|
|
532
556
|
}
|
|
533
|
-
|
|
534
|
-
|
|
557
|
+
|
|
558
|
+
.uds-modal-footer-button[data-width=full] {
|
|
559
|
+
flex: 1 1 100%;
|
|
560
|
+
max-width: 100%;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
.uds-modal-footer-button[data-width=fill] {
|
|
564
|
+
flex: 1 1 0%;
|
|
565
|
+
min-width: 0;
|
|
535
566
|
}
|
|
567
|
+
|
|
568
|
+
.uds-modal-footer-button[data-width=auto] {
|
|
569
|
+
flex: 0 1 auto;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
.uds-modal-footer-button[data-width=fit] {
|
|
573
|
+
flex: 0 0 auto;
|
|
574
|
+
}
|
|
575
|
+
|
|
536
576
|
.uds-modal-footer-buttons[data-appearance=text] {
|
|
537
577
|
padding: 0;
|
|
538
578
|
gap: 0;
|
|
539
579
|
min-height: var(--notice-dialog-action-height, 56px);
|
|
540
580
|
border-top: 1px solid var(--modal-footer-border-color, var(--color-border-standard-cool-gray, #e4e5e7));
|
|
541
581
|
}
|
|
582
|
+
.uds-modal-footer-buttons[data-appearance=text] .uds-modal-footer-group {
|
|
583
|
+
flex-wrap: nowrap;
|
|
584
|
+
gap: 0;
|
|
585
|
+
}
|
|
542
586
|
.uds-modal-footer-buttons[data-appearance=text] .uds-modal-footer-button {
|
|
543
587
|
border-radius: 0;
|
|
544
588
|
}
|
|
@@ -559,14 +603,10 @@
|
|
|
559
603
|
.uds-modal-alert-message {
|
|
560
604
|
padding: var(--spacing-padding-10, 32px) var(--spacing-padding-8, 24px);
|
|
561
605
|
text-align: center;
|
|
562
|
-
color: var(--modal-alert-body-color);
|
|
563
606
|
word-break: keep-all;
|
|
607
|
+
color: var(--modal-alert-body-color);
|
|
564
608
|
}
|
|
565
|
-
.uds-modal-alert-message
|
|
566
|
-
.uds-modal-alert-message > span,
|
|
567
|
-
.uds-modal-alert-message > strong,
|
|
568
|
-
.uds-modal-alert-message > em {
|
|
569
|
-
margin: 0;
|
|
609
|
+
.uds-modal-alert-message :where(p, span, strong, em) {
|
|
570
610
|
font-size: var(--modal-alert-body-font-size);
|
|
571
611
|
line-height: 1.5em;
|
|
572
612
|
font-weight: var(--font-body-small-weight, 400);
|
|
@@ -583,10 +623,49 @@
|
|
|
583
623
|
}
|
|
584
624
|
|
|
585
625
|
.uds-modal-dialog-header-content {
|
|
586
|
-
padding: var(--spacing-padding-
|
|
626
|
+
padding: var(--spacing-padding-9) var(--spacing-padding-6) 0;
|
|
587
627
|
text-align: center;
|
|
628
|
+
display: flex;
|
|
629
|
+
flex-direction: column;
|
|
630
|
+
gap: var(--spacing-gap-2, 8px);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
.uds-modal-dialog-header-row {
|
|
634
|
+
display: flex;
|
|
635
|
+
align-items: center;
|
|
636
|
+
justify-content: center;
|
|
637
|
+
gap: var(--spacing-gap-3, 12px);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
.uds-modal-dialog-header-row-split {
|
|
641
|
+
justify-content: space-between;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
.uds-modal-dialog-header-leading {
|
|
645
|
+
display: inline-flex;
|
|
646
|
+
align-items: center;
|
|
647
|
+
gap: var(--spacing-gap-2, 8px);
|
|
648
|
+
justify-content: center;
|
|
588
649
|
}
|
|
589
|
-
|
|
650
|
+
|
|
651
|
+
.uds-modal-dialog-header-leading-content {
|
|
652
|
+
display: inline-flex;
|
|
653
|
+
align-items: center;
|
|
654
|
+
gap: var(--spacing-gap-1, 4px);
|
|
655
|
+
}
|
|
656
|
+
.uds-modal-dialog-header-leading-content :where(p, span, strong, em) {
|
|
657
|
+
color: var(--modal-dialog-title-color);
|
|
658
|
+
font-size: var(--modal-dialog-body-font-size);
|
|
659
|
+
line-height: 1.4em;
|
|
660
|
+
font-weight: var(--modal-dialog-title-weight);
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
.uds-modal-dialog-header-title {
|
|
664
|
+
display: flex;
|
|
665
|
+
justify-content: center;
|
|
666
|
+
text-align: center;
|
|
667
|
+
}
|
|
668
|
+
.uds-modal-dialog-header-title > :where(h1, h2, h3, h4, h5, h6, p, span, strong, em) {
|
|
590
669
|
margin: 0;
|
|
591
670
|
color: var(--modal-dialog-title-color);
|
|
592
671
|
font-size: var(--modal-dialog-title-font-size);
|
|
@@ -594,17 +673,41 @@
|
|
|
594
673
|
font-weight: var(--modal-dialog-title-weight);
|
|
595
674
|
}
|
|
596
675
|
|
|
676
|
+
.uds-modal-dialog-header-trailing {
|
|
677
|
+
display: inline-flex;
|
|
678
|
+
align-items: center;
|
|
679
|
+
gap: var(--spacing-gap-2, 8px);
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
.uds-modal-dialog-header-description {
|
|
683
|
+
margin: 0;
|
|
684
|
+
text-align: inherit;
|
|
685
|
+
}
|
|
686
|
+
.uds-modal-dialog-header-description > :where(p, span, strong, em) {
|
|
687
|
+
margin: 0;
|
|
688
|
+
color: var(--modal-dialog-body-color);
|
|
689
|
+
font-size: var(--modal-dialog-body-font-size);
|
|
690
|
+
line-height: 1.5em;
|
|
691
|
+
font-weight: var(--font-body-small-weight, 400);
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.uds-modal-dialog-header[data-layout=split] .uds-modal-dialog-header-content,
|
|
695
|
+
.uds-modal-dialog-header[data-has-right=true] .uds-modal-dialog-header-content {
|
|
696
|
+
text-align: left;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.uds-modal-dialog-header[data-layout=split] .uds-modal-dialog-header-leading,
|
|
700
|
+
.uds-modal-dialog-header[data-has-right=true] .uds-modal-dialog-header-leading {
|
|
701
|
+
justify-content: flex-start;
|
|
702
|
+
}
|
|
703
|
+
|
|
597
704
|
.uds-modal-dialog-body-content {
|
|
598
|
-
padding: var(--spacing-padding-7, 20px) var(--spacing-padding-6, 16px);
|
|
705
|
+
padding: var(--modal-dialog-body-padding, var(--spacing-padding-7, 20px) var(--spacing-padding-6, 16px));
|
|
599
706
|
text-align: center;
|
|
600
|
-
color: var(--modal-dialog-body-color);
|
|
601
707
|
word-break: keep-all;
|
|
708
|
+
color: var(--modal-dialog-body-color);
|
|
602
709
|
}
|
|
603
|
-
.uds-modal-dialog-body-content
|
|
604
|
-
.uds-modal-dialog-body-content > span,
|
|
605
|
-
.uds-modal-dialog-body-content > strong,
|
|
606
|
-
.uds-modal-dialog-body-content > em {
|
|
607
|
-
margin: 0;
|
|
710
|
+
.uds-modal-dialog-body-content :where(p, span, strong, em) {
|
|
608
711
|
font-size: var(--modal-dialog-body-font-size);
|
|
609
712
|
line-height: 1.5em;
|
|
610
713
|
font-weight: var(--font-body-small-weight, 400);
|
|
@@ -717,21 +820,21 @@
|
|
|
717
820
|
.auth-login-form {
|
|
718
821
|
display: flex;
|
|
719
822
|
flex-direction: column;
|
|
720
|
-
gap: var(--spacing-padding-7
|
|
721
|
-
margin-top: var(--spacing-padding-10
|
|
823
|
+
gap: var(--spacing-padding-7);
|
|
824
|
+
margin-top: var(--spacing-padding-10);
|
|
722
825
|
}
|
|
723
826
|
|
|
724
827
|
.auth-login-fields {
|
|
725
828
|
display: flex;
|
|
726
829
|
flex-direction: column;
|
|
727
|
-
gap: var(--spacing-padding-5
|
|
830
|
+
gap: var(--spacing-padding-5);
|
|
728
831
|
}
|
|
729
832
|
|
|
730
833
|
.auth-login-util-container {
|
|
731
834
|
margin-top: 80px;
|
|
732
835
|
display: flex;
|
|
733
836
|
flex-direction: column;
|
|
734
|
-
gap: var(--spacing-padding-6
|
|
837
|
+
gap: var(--spacing-padding-6);
|
|
735
838
|
}
|
|
736
839
|
|
|
737
840
|
.auth-login-find-account {
|
|
@@ -743,14 +846,16 @@
|
|
|
743
846
|
}
|
|
744
847
|
|
|
745
848
|
.auth-login-find-account-button {
|
|
746
|
-
color: var(--color-label-standard);
|
|
747
849
|
font-size: 13px;
|
|
748
850
|
line-height: 1em;
|
|
749
851
|
font-weight: 400;
|
|
750
|
-
padding-inline: var(--spacing-padding-1
|
|
852
|
+
padding-inline: var(--spacing-padding-1);
|
|
751
853
|
}
|
|
752
854
|
.auth-login-find-account-button:hover {
|
|
753
|
-
color: var(--color-primary-
|
|
855
|
+
color: var(--color-primary-standard);
|
|
856
|
+
}
|
|
857
|
+
.auth-login-find-account-button span {
|
|
858
|
+
color: var(--color-label-standard);
|
|
754
859
|
}
|
|
755
860
|
|
|
756
861
|
.auth-login-signup {
|
|
@@ -760,7 +865,6 @@
|
|
|
760
865
|
|
|
761
866
|
.auth-login-signup-button {
|
|
762
867
|
text-decoration: none;
|
|
763
|
-
min-width: 160px;
|
|
764
868
|
justify-content: center;
|
|
765
869
|
/* 버튼 토큰 네이밍 개편 반영 */
|
|
766
870
|
--button-default-font-label-medium-size: var(--font-caption-medium-size);
|
|
@@ -782,20 +886,20 @@
|
|
|
782
886
|
gap: var(--spacing-padding-5, 20px);
|
|
783
887
|
}
|
|
784
888
|
|
|
785
|
-
.auth-find-account-form
|
|
889
|
+
.auth-find-account-form-code .auth-find-account-fields {
|
|
786
890
|
margin-bottom: var(--spacing-padding-4, 16px);
|
|
787
891
|
}
|
|
788
892
|
|
|
789
893
|
.auth-find-account-email-block {
|
|
790
894
|
display: flex;
|
|
791
895
|
flex-direction: column;
|
|
792
|
-
gap: var(--spacing-padding-3
|
|
793
|
-
margin-bottom: var(--spacing-padding-7
|
|
896
|
+
gap: var(--spacing-padding-3);
|
|
897
|
+
margin-bottom: var(--spacing-padding-7);
|
|
794
898
|
}
|
|
795
899
|
|
|
796
900
|
.auth-find-account-email-label {
|
|
797
901
|
color: var(--color-label-standard, var(--primitive-coolgray-20, #3d3f43));
|
|
798
|
-
font-size: var(--font-label-small-size
|
|
902
|
+
font-size: var(--font-label-small-size);
|
|
799
903
|
line-height: 1.5;
|
|
800
904
|
margin: 0;
|
|
801
905
|
}
|
|
@@ -805,19 +909,19 @@
|
|
|
805
909
|
align-items: center;
|
|
806
910
|
justify-content: space-between;
|
|
807
911
|
border-bottom: 1px solid var(--color-border-standard, var(--primitive-coolgray-90, #e4e5e7));
|
|
808
|
-
min-height: var(--spacing-padding-14
|
|
809
|
-
padding-bottom: var(--spacing-padding-2
|
|
912
|
+
min-height: var(--spacing-padding-14);
|
|
913
|
+
padding-bottom: var(--spacing-padding-2);
|
|
810
914
|
}
|
|
811
915
|
|
|
812
916
|
.auth-find-account-email-value {
|
|
813
|
-
font-size: var(--font-body-large-size
|
|
917
|
+
font-size: var(--font-body-large-size);
|
|
814
918
|
color: var(--color-label-strong, var(--primitive-coolgray-10, #18191b));
|
|
815
919
|
line-height: 1.5;
|
|
816
920
|
word-break: break-word;
|
|
817
921
|
}
|
|
818
922
|
|
|
819
923
|
.auth-find-account-email-helper {
|
|
820
|
-
font-size: var(--font-caption-medium-size
|
|
924
|
+
font-size: var(--font-caption-medium-size);
|
|
821
925
|
color: var(--color-label-alternative, var(--primitive-coolgray-50, #afb1b6));
|
|
822
926
|
margin: 0;
|
|
823
927
|
}
|
|
@@ -826,17 +930,17 @@
|
|
|
826
930
|
display: flex;
|
|
827
931
|
align-items: center;
|
|
828
932
|
justify-content: space-between;
|
|
829
|
-
gap: var(--spacing-padding-4
|
|
933
|
+
gap: var(--spacing-padding-4);
|
|
830
934
|
}
|
|
831
935
|
|
|
832
936
|
.auth-find-account-timer-text {
|
|
833
|
-
font-size: var(--font-caption-medium-size
|
|
834
|
-
color: var(--color-primary-
|
|
937
|
+
font-size: var(--font-caption-medium-size);
|
|
938
|
+
color: var(--color-primary-standard);
|
|
835
939
|
}
|
|
836
940
|
|
|
837
941
|
.auth-find-account-timer-helper,
|
|
838
942
|
.auth-find-account-helper {
|
|
839
|
-
font-size: var(--font-caption-medium-size
|
|
943
|
+
font-size: var(--font-caption-medium-size);
|
|
840
944
|
color: var(--color-label-neutral, var(--primitive-coolgray-40, #797e86));
|
|
841
945
|
margin: 0;
|
|
842
946
|
}
|
|
@@ -957,52 +1061,53 @@
|
|
|
957
1061
|
.auth-signup-form {
|
|
958
1062
|
display: flex;
|
|
959
1063
|
flex-direction: column;
|
|
960
|
-
gap: var(--spacing-padding-8
|
|
961
|
-
margin-top: var(--spacing-padding-9
|
|
1064
|
+
gap: var(--spacing-padding-8);
|
|
1065
|
+
margin-top: var(--spacing-padding-9);
|
|
962
1066
|
}
|
|
963
1067
|
|
|
964
1068
|
.auth-signup-fields {
|
|
965
1069
|
display: flex;
|
|
966
1070
|
flex-direction: column;
|
|
967
|
-
gap: var(--spacing-padding-5
|
|
1071
|
+
gap: var(--spacing-padding-5);
|
|
968
1072
|
}
|
|
969
1073
|
|
|
970
1074
|
.auth-signup-verification {
|
|
971
1075
|
display: flex;
|
|
972
1076
|
flex-direction: column;
|
|
973
|
-
gap: var(--spacing-padding-9
|
|
1077
|
+
gap: var(--spacing-padding-9);
|
|
974
1078
|
}
|
|
975
1079
|
|
|
976
1080
|
.auth-signup-agreements {
|
|
977
1081
|
display: flex;
|
|
978
1082
|
flex-direction: column;
|
|
979
|
-
gap: var(--spacing-padding-4
|
|
980
|
-
background: var(--color-background-subtle);
|
|
981
|
-
border-radius: var(--shape-rounded-3, 16px);
|
|
982
|
-
padding: var(--spacing-padding-5, 20px);
|
|
1083
|
+
gap: var(--spacing-padding-4);
|
|
983
1084
|
}
|
|
984
1085
|
|
|
985
1086
|
.auth-signup-agreement-all {
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
1087
|
+
height: var(--theme-size-medium-3);
|
|
1088
|
+
display: flex;
|
|
1089
|
+
align-items: center;
|
|
1090
|
+
background: var(--color-bg-alternative-cool-gray, #f2f2f3);
|
|
1091
|
+
border-radius: var(--theme-radius-large-2, 16px);
|
|
1092
|
+
border-radius: var(--theme-radius-medium-3, 8px);
|
|
1093
|
+
padding: 0 var(--spacing-padding-5);
|
|
989
1094
|
}
|
|
990
1095
|
|
|
991
1096
|
.auth-signup-agreements-list {
|
|
992
1097
|
width: 100%;
|
|
993
|
-
background: var(--color-common-100
|
|
994
|
-
border-radius: var(--
|
|
995
|
-
padding: var(--spacing-padding-
|
|
1098
|
+
background: var(--color-common-100);
|
|
1099
|
+
border-radius: var(--theme-radius-medium-3, 8px);
|
|
1100
|
+
padding: var(--spacing-padding-3);
|
|
996
1101
|
display: flex;
|
|
997
1102
|
flex-direction: column;
|
|
998
|
-
gap: var(--spacing-padding-3
|
|
1103
|
+
gap: var(--spacing-padding-3);
|
|
999
1104
|
}
|
|
1000
1105
|
|
|
1001
1106
|
.auth-signup-agreement-row {
|
|
1002
1107
|
display: flex;
|
|
1003
1108
|
align-items: center;
|
|
1004
1109
|
justify-content: space-between;
|
|
1005
|
-
gap: var(--spacing-padding-3
|
|
1110
|
+
gap: var(--spacing-padding-3);
|
|
1006
1111
|
}
|
|
1007
1112
|
|
|
1008
1113
|
.auth-signup-agreement-toggle {
|
|
@@ -1012,7 +1117,7 @@
|
|
|
1012
1117
|
margin: 0;
|
|
1013
1118
|
display: flex;
|
|
1014
1119
|
align-items: center;
|
|
1015
|
-
gap: var(--spacing-padding-3
|
|
1120
|
+
gap: var(--spacing-padding-3);
|
|
1016
1121
|
cursor: pointer;
|
|
1017
1122
|
flex: 1;
|
|
1018
1123
|
text-align: left;
|
|
@@ -1023,7 +1128,7 @@
|
|
|
1023
1128
|
.auth-signup-agreement-icon {
|
|
1024
1129
|
width: 20px;
|
|
1025
1130
|
height: 20px;
|
|
1026
|
-
color: var(--color-label-assistive
|
|
1131
|
+
color: var(--color-label-assistive);
|
|
1027
1132
|
flex-shrink: 0;
|
|
1028
1133
|
}
|
|
1029
1134
|
.auth-signup-agreement-icon svg {
|
|
@@ -1042,7 +1147,7 @@
|
|
|
1042
1147
|
|
|
1043
1148
|
.auth-signup-agreement-label {
|
|
1044
1149
|
display: inline-flex;
|
|
1045
|
-
gap: var(--spacing-padding-1
|
|
1150
|
+
gap: var(--spacing-padding-1);
|
|
1046
1151
|
align-items: baseline;
|
|
1047
1152
|
flex-wrap: nowrap;
|
|
1048
1153
|
}
|
|
@@ -1066,7 +1171,7 @@
|
|
|
1066
1171
|
font-size: 13px;
|
|
1067
1172
|
color: var(--color-label-assistive);
|
|
1068
1173
|
margin: 0;
|
|
1069
|
-
padding-left: calc(20px + var(--spacing-padding-3
|
|
1174
|
+
padding-left: calc(20px + var(--spacing-padding-3));
|
|
1070
1175
|
}
|
|
1071
1176
|
|
|
1072
1177
|
.auth-signup-agreement-detail {
|
|
@@ -1099,7 +1204,7 @@
|
|
|
1099
1204
|
.auth-signup-complete {
|
|
1100
1205
|
display: flex;
|
|
1101
1206
|
flex-direction: column;
|
|
1102
|
-
gap: var(--spacing-padding-7
|
|
1207
|
+
gap: var(--spacing-padding-7);
|
|
1103
1208
|
text-align: center;
|
|
1104
1209
|
}
|
|
1105
1210
|
|
|
@@ -1116,14 +1221,14 @@
|
|
|
1116
1221
|
}
|
|
1117
1222
|
|
|
1118
1223
|
.auth-signup-complete-description {
|
|
1119
|
-
margin: var(--spacing-padding-2
|
|
1224
|
+
margin: var(--spacing-padding-2) 0 0;
|
|
1120
1225
|
color: var(--color-label-assistive);
|
|
1121
1226
|
}
|
|
1122
1227
|
|
|
1123
1228
|
.auth-signup-complete-actions {
|
|
1124
1229
|
display: flex;
|
|
1125
1230
|
flex-direction: column;
|
|
1126
|
-
gap: var(--spacing-padding-4
|
|
1231
|
+
gap: var(--spacing-padding-4);
|
|
1127
1232
|
}
|
|
1128
1233
|
|
|
1129
1234
|
.auth-signup-agreement-drawer-body p {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniai-fe/uds-templates",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "UNIAI Design System; UI Templates Package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"publishConfig": {
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
|
-
"packageManager": "pnpm@10.28.
|
|
15
|
+
"packageManager": "pnpm@10.28.2",
|
|
16
16
|
"engines": {
|
|
17
17
|
"node": ">=24",
|
|
18
18
|
"pnpm": ">=10"
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@svgr/webpack": "^8.1.0",
|
|
70
|
-
"@tanstack/react-query": "^5.90.
|
|
70
|
+
"@tanstack/react-query": "^5.90.20",
|
|
71
71
|
"@types/node": "^24.10.2",
|
|
72
|
-
"@types/react": "^19.2.
|
|
72
|
+
"@types/react": "^19.2.11",
|
|
73
73
|
"@types/react-dom": "^19.2.3",
|
|
74
74
|
"@uniai-fe/eslint-config": "workspace:*",
|
|
75
75
|
"@uniai-fe/next-devkit": "workspace:*",
|
|
@@ -82,11 +82,11 @@
|
|
|
82
82
|
"@uniai-fe/util-next": "workspace:*",
|
|
83
83
|
"@uniai-fe/util-rtc": "workspace:*",
|
|
84
84
|
"eslint": "^9.39.2",
|
|
85
|
-
"jotai": "^2.
|
|
85
|
+
"jotai": "^2.17.1",
|
|
86
86
|
"next": "^15.5.11",
|
|
87
|
-
"prettier": "^3.
|
|
88
|
-
"react-hook-form": "^7.71.
|
|
89
|
-
"sass": "^1.97.
|
|
87
|
+
"prettier": "^3.8.1",
|
|
88
|
+
"react-hook-form": "^7.71.1",
|
|
89
|
+
"sass": "^1.97.3",
|
|
90
90
|
"typescript": "~5.9.3"
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import AuthCodeEmailTemplate from "./markup/Email";
|
|
2
|
+
import AuthCodePhoneTemplate from "./markup/Phone";
|
|
3
|
+
import AuthCodeTemplateInputCode from "./markup/InputCode";
|
|
4
|
+
|
|
5
|
+
import "./styles/index.scss";
|
|
6
|
+
|
|
7
|
+
export const AuthCodeTemplate = {
|
|
8
|
+
InputCode: AuthCodeTemplateInputCode,
|
|
9
|
+
Email: AuthCodeEmailTemplate,
|
|
10
|
+
Phone: AuthCodePhoneTemplate,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export * from "./types";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { Form, Input } from "@uniai-fe/uds-primitives";
|
|
5
|
+
import AuthCodeTemplateInputCode from "./InputCode";
|
|
6
|
+
import type { AuthEmailAuthCodeTemplateProps } from "../types";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 이메일 + 인증코드 Form.Field 템플릿 조합.
|
|
10
|
+
* @component
|
|
11
|
+
* @param {AuthEmailAuthCodeTemplateProps} props
|
|
12
|
+
* @property {AuthFormFieldTemplateProps} [props.templateProps] 이메일 필드 Template 옵션
|
|
13
|
+
* @property {EmailInputProps} props.inputProps 이메일 입력 props
|
|
14
|
+
* @property {AuthCodeFieldSectionProps} [props.code] 인증코드 섹션 옵션
|
|
15
|
+
*/
|
|
16
|
+
export default function AuthCodeEmailTemplate({
|
|
17
|
+
templateProps,
|
|
18
|
+
inputProps,
|
|
19
|
+
code,
|
|
20
|
+
}: AuthEmailAuthCodeTemplateProps) {
|
|
21
|
+
const resolvedCode = code ?? undefined;
|
|
22
|
+
const showCodeSection =
|
|
23
|
+
Boolean(resolvedCode?.inputProps) && (resolvedCode?.visible ?? true);
|
|
24
|
+
const primaryTemplateProps = {
|
|
25
|
+
...templateProps,
|
|
26
|
+
className: clsx("auth-email-auth-code", templateProps?.className),
|
|
27
|
+
};
|
|
28
|
+
const resolvedInputProps = {
|
|
29
|
+
...inputProps,
|
|
30
|
+
requestButtonLabel:
|
|
31
|
+
inputProps?.requestButtonLabel ??
|
|
32
|
+
(showCodeSection ? "인증코드 재요청" : "인증코드 요청"),
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const resolvedCodeSection =
|
|
36
|
+
showCodeSection && resolvedCode
|
|
37
|
+
? {
|
|
38
|
+
...resolvedCode,
|
|
39
|
+
countdownText: resolvedCode.countdownText ?? "05:00",
|
|
40
|
+
countdownActionLabel: resolvedCode.countdownActionLabel ?? "시간연장",
|
|
41
|
+
}
|
|
42
|
+
: undefined;
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<>
|
|
46
|
+
<Form.Field.Template {...primaryTemplateProps}>
|
|
47
|
+
<Input.Text.Email {...resolvedInputProps} />
|
|
48
|
+
</Form.Field.Template>
|
|
49
|
+
{resolvedCodeSection ? (
|
|
50
|
+
<AuthCodeTemplateInputCode {...resolvedCodeSection} />
|
|
51
|
+
) : null}
|
|
52
|
+
</>
|
|
53
|
+
);
|
|
54
|
+
}
|