Update SettingsPage.tsx metadata in manifest.json with new mtime and ast_hash
This commit is contained in:
@@ -693,3 +693,98 @@ table.t tbody tr:last-child td { border-bottom: none; }
|
||||
@media (hover: none) {
|
||||
.srv-section-actions { opacity: 1; }
|
||||
}
|
||||
|
||||
/* ═══ صفحه تنظیمات (Settings redesign) ═══════════════════════════ */
|
||||
.settings-layout {
|
||||
display: grid; grid-template-columns: 250px minmax(0, 1fr);
|
||||
gap: var(--gap); align-items: start;
|
||||
}
|
||||
|
||||
/* نوار ناوبری کناری (Sticky) */
|
||||
.settings-nav { position: sticky; top: var(--gap); display: flex; flex-direction: column; gap: 12px; }
|
||||
.settings-search {
|
||||
display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px;
|
||||
background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-sm);
|
||||
color: var(--text-3); transition: .15s;
|
||||
}
|
||||
.settings-search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px var(--ring); color: var(--primary); }
|
||||
.settings-search input {
|
||||
border: none; outline: none; background: none; flex: 1; min-width: 0;
|
||||
color: var(--text); font-family: inherit; font-size: 13.5px;
|
||||
}
|
||||
.settings-nav-list { display: flex; flex-direction: column; gap: 3px; }
|
||||
.settings-nav-item {
|
||||
display: flex; align-items: center; gap: 10px; width: 100%; text-align: right;
|
||||
padding: 9px 12px; border-radius: var(--r-sm); border: 1px solid transparent;
|
||||
background: none; color: var(--text-2); font-family: inherit; font-size: 13.5px; font-weight: 600;
|
||||
cursor: pointer; transition: .14s;
|
||||
}
|
||||
.settings-nav-item:hover { background: var(--surface-2); color: var(--text); }
|
||||
.settings-nav-item.active { background: var(--primary-soft); color: var(--primary-700); border-color: transparent; }
|
||||
.settings-nav-item svg { width: 17px; height: 17px; flex-shrink: 0; }
|
||||
.settings-nav-item .dot { width: 7px; height: 7px; border-radius: 50%; margin-inline-start: auto; flex-shrink: 0; }
|
||||
.settings-nav-empty { padding: 14px 12px; font-size: 12.5px; color: var(--text-3); text-align: center; }
|
||||
|
||||
/* هدر بخش */
|
||||
.settings-sec-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
|
||||
.settings-sec-head .ico { width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0; display: grid; place-items: center; }
|
||||
.settings-sec-head h2 { font-size: 16.5px; font-weight: 800; color: var(--text); letter-spacing: -.2px; }
|
||||
.settings-sec-head p { font-size: 12.5px; color: var(--text-3); margin-top: 3px; line-height: 1.6; }
|
||||
|
||||
/* گروه فیلدها */
|
||||
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
|
||||
.settings-grid.one { grid-template-columns: 1fr; }
|
||||
.field-block { display: flex; flex-direction: column; }
|
||||
.field-block.span2 { grid-column: 1 / -1; }
|
||||
.field-block > label { font-size: 13px; font-weight: 600; color: var(--text-2); margin-bottom: 6px; display: flex; align-items: center; gap: 5px; }
|
||||
.field-block .req { color: var(--danger); font-weight: 700; }
|
||||
.field-block .opt { color: var(--text-3); font-weight: 500; font-size: 11.5px; }
|
||||
.field-hint { font-size: 11.5px; color: var(--text-3); margin-top: 6px; line-height: 1.65; }
|
||||
.field-err { font-size: 12px; color: var(--danger); margin-top: 5px; }
|
||||
.input-suffix { display: flex; align-items: center; gap: 8px; }
|
||||
.input-suffix .suf { font-size: 13px; color: var(--text-3); white-space: nowrap; }
|
||||
|
||||
/* ردیف سوییچ (Toggle row) */
|
||||
.toggle-row {
|
||||
display: flex; align-items: center; justify-content: space-between; gap: 14px;
|
||||
padding: 13px 16px; border-radius: var(--r-sm);
|
||||
border: 1px solid var(--border); background: var(--surface-2); transition: .15s;
|
||||
}
|
||||
.toggle-row + .toggle-row { margin-top: 10px; }
|
||||
.toggle-row.on { border-color: color-mix(in oklch, var(--primary) 40%, var(--border)); background: var(--primary-soft); }
|
||||
.toggle-row.warn.on { border-color: var(--warning); background: var(--warning-bg); }
|
||||
.toggle-row .tr-title { font-size: 13.5px; font-weight: 600; color: var(--text); }
|
||||
.toggle-row .tr-desc { font-size: 12px; color: var(--text-3); margin-top: 3px; line-height: 1.6; }
|
||||
.toggle-sub { margin-top: 12px; padding-inline-start: 4px; max-width: 320px; }
|
||||
|
||||
/* کارت درگاه پرداخت */
|
||||
.gw-card { border: 1px solid var(--border); border-radius: var(--r); padding: 16px; transition: .15s; }
|
||||
.gw-card + .gw-card { margin-top: 14px; }
|
||||
.gw-card.off { opacity: .6; }
|
||||
.gw-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
|
||||
.gw-name { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--text); }
|
||||
.gw-name .dot { width: 9px; height: 9px; border-radius: 50%; }
|
||||
.gw-state { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; }
|
||||
|
||||
/* نوار ذخیره چسبان (Sticky save bar) */
|
||||
.save-bar {
|
||||
position: sticky; bottom: 16px; z-index: 20; margin-top: 4px;
|
||||
display: flex; align-items: center; justify-content: space-between; gap: 12px;
|
||||
padding: 12px 16px 12px 20px; border-radius: var(--r);
|
||||
background: var(--surface); border: 1px solid var(--border-2);
|
||||
box-shadow: var(--shadow-lg); animation: pop .22s var(--ease);
|
||||
}
|
||||
.save-bar .sb-msg { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--text-2); }
|
||||
.save-bar .sb-actions { display: flex; gap: 10px; }
|
||||
.save-bar.ok { border-color: color-mix(in oklch, var(--success) 45%, var(--border)); }
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.settings-layout { grid-template-columns: 1fr; }
|
||||
.settings-nav { position: static; }
|
||||
.settings-nav-list { flex-direction: row; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
|
||||
.settings-nav-item { flex-shrink: 0; width: auto; }
|
||||
.settings-nav-item .dot { display: none; }
|
||||
}
|
||||
@media (max-width: 560px) {
|
||||
.settings-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user