feat: edit client — save per tab, DOB re-KYC alert, audit logs, KYC improvements
- Edit button per tab with Save & Next confirmation dialog - DOB change triggers re-KYC alert, resets PAN verification, auto-fills remarks - Mobile/email changes logged as audit notes via client notes API - Redesigned confirmation dialog with icon + title, type-based theming - KYC re-edit flow: remarks mandatory for VERIFIED records, re-edit API command - Load existing photo & signature in edit KYC, immediate upload on change - Populate all KYC fields (document, AML, form60/15) from API on edit - Non-individual PAN verification uses same flow as individual - Fix table overflow when sidebar panel is open - Add fr unit to stylelint allowed-list Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
b890d24bb7
commit
79e455c4ed
@@ -17,7 +17,7 @@
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
margin: 0 0 16px 0;
|
||||
margin: 0 0 16px;
|
||||
|
||||
.section-icon {
|
||||
color: var(--md-sys-color-primary, #1074b9);
|
||||
@@ -119,7 +119,7 @@
|
||||
&.active {
|
||||
border-color: #1353a0;
|
||||
background: #eff6ff;
|
||||
box-shadow: 0 0 0 2px rgba(19, 83, 160, 0.12);
|
||||
box-shadow: 0 0 0 2px rgb(19 83 160 / 12%);
|
||||
}
|
||||
|
||||
&__dot {
|
||||
@@ -128,9 +128,17 @@
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
|
||||
&.green { background: #10b981; }
|
||||
&.amber { background: #f59e0b; }
|
||||
&.red { background: #ef4444; }
|
||||
&.green {
|
||||
background: #10b981;
|
||||
}
|
||||
|
||||
&.amber {
|
||||
background: #f59e0b;
|
||||
}
|
||||
|
||||
&.red {
|
||||
background: #ef4444;
|
||||
}
|
||||
}
|
||||
|
||||
&__info {
|
||||
@@ -186,7 +194,9 @@
|
||||
color: #065f46;
|
||||
border: 1px solid #a7f3d0;
|
||||
|
||||
.kyc-expiry-alert__icon { color: #10b981; }
|
||||
.kyc-expiry-alert__icon {
|
||||
color: #10b981;
|
||||
}
|
||||
}
|
||||
|
||||
&--medium {
|
||||
@@ -194,7 +204,9 @@
|
||||
color: #92400e;
|
||||
border: 1px solid #fde68a;
|
||||
|
||||
.kyc-expiry-alert__icon { color: #f59e0b; }
|
||||
.kyc-expiry-alert__icon {
|
||||
color: #f59e0b;
|
||||
}
|
||||
}
|
||||
|
||||
&--high {
|
||||
@@ -202,11 +214,13 @@
|
||||
color: #991b1b;
|
||||
border: 1px solid #fecaca;
|
||||
|
||||
.kyc-expiry-alert__icon { color: #ef4444; }
|
||||
.kyc-expiry-alert__icon {
|
||||
color: #ef4444;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
.kyc-expiry-cards {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
@@ -451,7 +465,7 @@
|
||||
border: 1px solid #e0e7ff;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
box-shadow: 0 2px 8px rgba(99, 102, 241, 0.08);
|
||||
box-shadow: 0 2px 8px rgb(99 102 241 / 8%);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
@@ -475,7 +489,11 @@
|
||||
color: #fff;
|
||||
flex-shrink: 0;
|
||||
|
||||
mat-icon { font-size: 16px; width: 16px; height: 16px; }
|
||||
mat-icon {
|
||||
font-size: 16px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.otp-card__header-text {
|
||||
@@ -536,7 +554,7 @@
|
||||
&:focus {
|
||||
border-color: #1074b9;
|
||||
background: #fff;
|
||||
box-shadow: 0 0 0 2px rgba(16, 116, 185, 0.12);
|
||||
box-shadow: 0 0 0 2px rgb(16 116 185 / 12%);
|
||||
}
|
||||
|
||||
&.filled {
|
||||
@@ -652,8 +670,10 @@
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.otp-digits { gap: 6px; }
|
||||
@media (width <= 480px) {
|
||||
.otp-digits {
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.otp-digit-box {
|
||||
width: 40px;
|
||||
@@ -662,8 +682,13 @@
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.otp-card__header { padding: 12px 14px; }
|
||||
.otp-card__body { padding: 20px 14px; }
|
||||
.otp-card__header {
|
||||
padding: 12px 14px;
|
||||
}
|
||||
|
||||
.otp-card__body {
|
||||
padding: 20px 14px;
|
||||
}
|
||||
}
|
||||
|
||||
/* PAN-Aadhaar Link Status (read-only) */
|
||||
@@ -683,22 +708,40 @@
|
||||
&.linked {
|
||||
border-color: #a7f3d0;
|
||||
background: #ecfdf5;
|
||||
.pan-link-value { color: #059669; }
|
||||
.pan-link-icon { color: #059669; }
|
||||
|
||||
.pan-link-value {
|
||||
color: #059669;
|
||||
}
|
||||
|
||||
.pan-link-icon {
|
||||
color: #059669;
|
||||
}
|
||||
}
|
||||
|
||||
&.not-linked {
|
||||
border-color: #fecaca;
|
||||
background: #fef2f2;
|
||||
.pan-link-value { color: #dc2626; }
|
||||
.pan-link-icon { color: #dc2626; }
|
||||
|
||||
.pan-link-value {
|
||||
color: #dc2626;
|
||||
}
|
||||
|
||||
.pan-link-icon {
|
||||
color: #dc2626;
|
||||
}
|
||||
}
|
||||
|
||||
&.exempt {
|
||||
border-color: #bfdbfe;
|
||||
background: #eff6ff;
|
||||
.pan-link-value { color: #2563eb; }
|
||||
.pan-link-icon { color: #2563eb; }
|
||||
|
||||
.pan-link-value {
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
.pan-link-icon {
|
||||
color: #2563eb;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1037,7 +1080,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
.form-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
@@ -1073,7 +1116,7 @@
|
||||
|
||||
&__sub {
|
||||
font-size: 11px;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
color: rgb(255 255 255 / 50%);
|
||||
margin: 2px 0 0;
|
||||
}
|
||||
}
|
||||
@@ -1092,9 +1135,20 @@
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
|
||||
&.risk-low { background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2); }
|
||||
&.risk-medium { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2); }
|
||||
&.risk-high { background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2); }
|
||||
&.risk-low {
|
||||
background: #22c55e;
|
||||
box-shadow: 0 0 0 3px rgb(34 197 94 / 20%);
|
||||
}
|
||||
|
||||
&.risk-medium {
|
||||
background: #f59e0b;
|
||||
box-shadow: 0 0 0 3px rgb(245 158 11 / 20%);
|
||||
}
|
||||
|
||||
&.risk-high {
|
||||
background: #ef4444;
|
||||
box-shadow: 0 0 0 3px rgb(239 68 68 / 20%);
|
||||
}
|
||||
}
|
||||
|
||||
.risk-hint {
|
||||
@@ -1133,3 +1187,30 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* ─── Re-edit Info Alert ─── */
|
||||
.kyc-reedit-alert {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 10px;
|
||||
padding: 12px 16px;
|
||||
margin-top: 8px;
|
||||
background: #eff6ff;
|
||||
border: 1px solid #93c5fd;
|
||||
border-radius: 8px;
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
color: #1e40af;
|
||||
|
||||
&__icon {
|
||||
color: #3b82f6;
|
||||
font-size: 20px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-top: 1px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user