Add e-payment UI, checkout payment result, and legacy migrate domain lookup.

Wire Mellat settings in business dashboard, customer bank return page with payment details, and super-admin migrate modal domain confirmation.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-13 09:51:22 +03:30
co-authored by Cursor
parent a11f9643bb
commit cc94b929e0
54 changed files with 6415 additions and 96 deletions
@@ -258,6 +258,100 @@
color: var(--primary);
}
.videoEmbedRow {
grid-column: span 12;
display: grid;
grid-template-columns: minmax(148px, 180px) minmax(0, 1fr);
gap: 16px;
align-items: start;
}
.providerPanel {
display: flex;
flex-direction: column;
gap: 4px;
}
.providerLabel {
font-size: 12px;
font-weight: 500;
color: var(--text-secondary);
}
.providerRadioGroup {
display: flex;
flex-direction: column;
gap: 8px;
}
.providerRadioOption {
display: flex;
align-items: center;
gap: 8px;
min-height: var(--field-height);
padding: var(--field-padding-y) var(--field-padding-x);
font-size: var(--field-font-size);
line-height: 1.4;
color: var(--text-primary);
background-color: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(148, 163, 184, 0.35);
border-radius: var(--radius-sm);
cursor: pointer;
transition: border-color 0.2s, box-shadow 0.2s;
}
.providerRadioOption:has(input:checked) {
border-color: var(--primary);
box-shadow: 0 0 0 3px rgba(var(--primary-rgb) / 0.12);
}
.providerRadioOption:has(input:disabled) {
opacity: 0.6;
cursor: not-allowed;
}
.providerRadioOption input {
width: 16px;
height: 16px;
margin: 0;
accent-color: var(--primary);
flex-shrink: 0;
}
.embedPanel {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.embedPanel label {
font-size: 12px;
font-weight: 500;
color: var(--text-secondary);
}
.embedPanel textarea {
width: 100%;
min-height: calc(var(--field-height) * 2 + 24px);
padding: var(--field-padding-y) var(--field-padding-x);
font-size: var(--field-font-size);
line-height: 1.4;
color: var(--text-primary);
background-color: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(148, 163, 184, 0.35);
border-radius: var(--radius-sm);
transition: border-color 0.2s, box-shadow 0.2s;
outline: none;
resize: vertical;
box-sizing: border-box;
}
.embedPanel textarea:focus {
border-color: var(--primary);
box-shadow: 0 0 0 3px rgba(var(--primary-rgb) / 0.12);
}
@media (max-width: 768px) {
.form {
padding: 20px 16px;
@@ -287,6 +381,10 @@
grid-template-columns: 1fr;
}
.videoEmbedRow {
grid-template-columns: 1fr;
}
.fieldFull,
.fieldHalf,
.fieldCategory,