mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-10-26 00:36:31 +02:00
css tweaks 3
This commit is contained in:
@@ -508,6 +508,9 @@ PLUGIN_ADMIN:
|
||||
SAFE_UPGRADE_UNKNOWN_SIZE: "unknown"
|
||||
SAFE_UPGRADE_WARNINGS: "Warnings"
|
||||
SAFE_UPGRADE_WARNINGS_HINT: "These items may require attention before continuing."
|
||||
SAFE_UPGRADE_WARNINGS_PSR_ITEM: "Potential psr/log conflict:"
|
||||
SAFE_UPGRADE_WARNINGS_MONOLOG_ITEM: "Potential Monolog conflict:"
|
||||
SAFE_UPGRADE_WARNINGS_MONOLOG_UNKNOWN: "Review the plugin for potential API changes."
|
||||
SAFE_UPGRADE_PENDING_UPDATES: "Pending plugin or theme updates"
|
||||
SAFE_UPGRADE_PENDING_INTRO: "Review the extensions that should be updated first."
|
||||
SAFE_UPGRADE_PENDING_HINT: "Update all plugins and themes before proceeding."
|
||||
@@ -520,9 +523,12 @@ PLUGIN_ADMIN:
|
||||
SAFE_UPGRADE_CONFLICTS_REQUIRES: "Requires psr/log %s"
|
||||
SAFE_UPGRADE_CONFLICTS_MONOLOG: "Potential Monolog API compatibility issues"
|
||||
SAFE_UPGRADE_CONFLICTS_HINT: "Choose how to handle conflicts before starting the upgrade."
|
||||
SAFE_UPGRADE_CONFLICTS_REFER_WARNINGS: "See the warnings above for the list of affected plugins."
|
||||
SAFE_UPGRADE_DECISION_PROMPT: "When conflicts are detected:"
|
||||
SAFE_UPGRADE_DECISION_DISABLE: "Disable conflicting plugins"
|
||||
SAFE_UPGRADE_DECISION_DISABLE_DESC: "Temporarily disable conflicting plugins during the upgrade."
|
||||
SAFE_UPGRADE_DECISION_CONTINUE: "Continue with plugins enabled"
|
||||
SAFE_UPGRADE_DECISION_CONTINUE_DESC: "Proceed with plugins enabled. This may require manual fixes."
|
||||
SAFE_UPGRADE_BLOCKERS_TITLE: "Action required before continuing"
|
||||
SAFE_UPGRADE_BLOCKERS_DESC: "Resolve the following items to enable the upgrade."
|
||||
SAFE_UPGRADE_START: "Start Safe Upgrade"
|
||||
|
||||
@@ -214,7 +214,27 @@ export default class SafeUpgrade {
|
||||
blockers.push(t('SAFE_UPGRADE_PENDING_HINT', 'Update all plugins and themes before proceeding.'));
|
||||
}
|
||||
|
||||
const warningsList = warnings.length ? `
|
||||
const psrWarningItems = Object.keys(psrConflicts).map((slug) => {
|
||||
const info = psrConflicts[slug] || {};
|
||||
const requires = info.requires || '*';
|
||||
|
||||
return `<li>${t('SAFE_UPGRADE_WARNINGS_PSR_ITEM', 'Potential psr/log conflict:')} <code>${slug}</code> — ${r('SAFE_UPGRADE_CONFLICTS_REQUIRES', requires, 'Requires psr/log %s')}</li>`;
|
||||
});
|
||||
|
||||
const monologWarningItems = Object.keys(monologConflicts).map((slug) => {
|
||||
const entries = Array.isArray(monologConflicts[slug]) ? monologConflicts[slug] : [];
|
||||
const details = entries.map((entry) => {
|
||||
const method = entry.method || '';
|
||||
const file = entry.file ? basename(entry.file) : '';
|
||||
return `<span>${method} ${file ? `<code>${file}</code>` : ''}</span>`;
|
||||
}).join(', ');
|
||||
|
||||
const description = details || t('SAFE_UPGRADE_WARNINGS_MONOLOG_UNKNOWN', 'Review the plugin for potential API changes.');
|
||||
|
||||
return `<li>${t('SAFE_UPGRADE_WARNINGS_MONOLOG_ITEM', 'Potential Monolog conflict:')} <code>${slug}</code> — ${description}</li>`;
|
||||
});
|
||||
|
||||
const warningsList = warnings.length || psrWarningItems.length || monologWarningItems.length ? `
|
||||
<section class="safe-upgrade-panel safe-upgrade-panel--alert safe-upgrade-alert">
|
||||
<header class="safe-upgrade-panel__header">
|
||||
<div class="safe-upgrade-panel__title-wrap">
|
||||
@@ -226,7 +246,11 @@ export default class SafeUpgrade {
|
||||
</div>
|
||||
</header>
|
||||
<div class="safe-upgrade-panel__body">
|
||||
<ul>${warnings.map((warning) => `<li>${warning}</li>`).join('')}</ul>
|
||||
<ul>
|
||||
${warnings.map((warning) => `<li>${warning}</li>`).join('')}
|
||||
${psrWarningItems.join('')}
|
||||
${monologWarningItems.join('')}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
` : '';
|
||||
@@ -269,13 +293,7 @@ export default class SafeUpgrade {
|
||||
${this.renderDecisionSelect('psr_log')}
|
||||
</header>
|
||||
<div class="safe-upgrade-panel__body">
|
||||
<ul>
|
||||
${Object.keys(psrConflicts).map((slug) => {
|
||||
const info = psrConflicts[slug] || {};
|
||||
const requires = info.requires || '*';
|
||||
return `<li><code>${slug}</code> — ${r('SAFE_UPGRADE_CONFLICTS_REQUIRES', requires, 'Requires psr/log %s')}</li>`;
|
||||
}).join('')}
|
||||
</ul>
|
||||
<p class="safe-upgrade-panel__hint">${t('SAFE_UPGRADE_CONFLICTS_REFER_WARNINGS', 'See the warnings above for the list of affected plugins.')}</p>
|
||||
</div>
|
||||
</section>
|
||||
` : '';
|
||||
@@ -293,18 +311,7 @@ export default class SafeUpgrade {
|
||||
${this.renderDecisionSelect('monolog')}
|
||||
</header>
|
||||
<div class="safe-upgrade-panel__body">
|
||||
<ul>
|
||||
${Object.keys(monologConflicts).map((slug) => {
|
||||
const entries = Array.isArray(monologConflicts[slug]) ? monologConflicts[slug] : [];
|
||||
const details = entries.map((entry) => {
|
||||
const method = entry.method || '';
|
||||
const file = entry.file ? basename(entry.file) : '';
|
||||
return `<span>${method} ${file ? `<code>${file}</code>` : ''}</span>`;
|
||||
}).join(', ');
|
||||
|
||||
return `<li><code>${slug}</code> — ${details}</li>`;
|
||||
}).join('')}
|
||||
</ul>
|
||||
<p class="safe-upgrade-panel__hint">${t('SAFE_UPGRADE_CONFLICTS_REFER_WARNINGS', 'See the warnings above for the list of affected plugins.')}</p>
|
||||
</div>
|
||||
</section>
|
||||
` : '';
|
||||
@@ -371,15 +378,33 @@ export default class SafeUpgrade {
|
||||
}
|
||||
|
||||
renderDecisionSelect(type) {
|
||||
const selectId = `safe-upgrade-decision-${type}`;
|
||||
const currentDecision = this.decisions[type] || 'disable';
|
||||
const name = `safe-upgrade-decision-${type}`;
|
||||
const ariaLabel = t('SAFE_UPGRADE_DECISION_PROMPT', 'When conflicts are detected:');
|
||||
const options = [
|
||||
{
|
||||
value: 'disable',
|
||||
label: t('SAFE_UPGRADE_DECISION_DISABLE', 'Disable conflicting plugins'),
|
||||
description: t('SAFE_UPGRADE_DECISION_DISABLE_DESC', 'Temporarily disable conflicting plugins during the upgrade.')
|
||||
},
|
||||
{
|
||||
value: 'continue',
|
||||
label: t('SAFE_UPGRADE_DECISION_CONTINUE', 'Continue with plugins enabled'),
|
||||
description: t('SAFE_UPGRADE_DECISION_CONTINUE_DESC', 'Proceed with plugins enabled. This may require manual fixes.')
|
||||
}
|
||||
];
|
||||
|
||||
return `
|
||||
<div class="safe-upgrade-panel__action safe-upgrade-decision">
|
||||
<label for="${selectId}">${t('SAFE_UPGRADE_DECISION_PROMPT', 'When conflicts are detected:')}</label>
|
||||
<select id="${selectId}" data-safe-upgrade-decision="${type}">
|
||||
<option value="disable">${t('SAFE_UPGRADE_DECISION_DISABLE', 'Disable conflicting plugins')}</option>
|
||||
<option value="continue">${t('SAFE_UPGRADE_DECISION_CONTINUE', 'Continue with plugins enabled')}</option>
|
||||
</select>
|
||||
<div class="safe-upgrade-panel__action safe-upgrade-decision" role="radiogroup" aria-label="${ariaLabel}">
|
||||
${options.map((option) => `
|
||||
<label class="safe-upgrade-decision-option">
|
||||
<input type="radio" name="${name}" value="${option.value}" ${currentDecision === option.value ? 'checked' : ''} data-safe-upgrade-decision="${type}">
|
||||
<span class="safe-upgrade-decision-option__content">
|
||||
<span class="safe-upgrade-decision-option__title">${option.label}</span>
|
||||
<span class="safe-upgrade-decision-option__description">${option.description}</span>
|
||||
</span>
|
||||
</label>
|
||||
`).join('')}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
2
themes/grav/css-compiled/template.css
vendored
2
themes/grav/css-compiled/template.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
52
themes/grav/js/admin.min.js
vendored
52
themes/grav/js/admin.min.js
vendored
@@ -4766,9 +4766,24 @@ var SafeUpgrade = /*#__PURE__*/function () {
|
||||
if (Object.keys(pending).length) {
|
||||
blockers.push(t('SAFE_UPGRADE_PENDING_HINT', 'Update all plugins and themes before proceeding.'));
|
||||
}
|
||||
var warningsList = warnings.length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--alert safe-upgrade-alert\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-exclamation-triangle\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_WARNINGS', 'Warnings'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_WARNINGS_HINT', 'These items may require attention before continuing.'), "</span>\n </div>\n </div>\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>").concat(warnings.map(function (warning) {
|
||||
var psrWarningItems = Object.keys(psrConflicts).map(function (slug) {
|
||||
var info = psrConflicts[slug] || {};
|
||||
var requires = info.requires || '*';
|
||||
return "<li>".concat(t('SAFE_UPGRADE_WARNINGS_PSR_ITEM', 'Potential psr/log conflict:'), " <code>").concat(slug, "</code> — ").concat(r('SAFE_UPGRADE_CONFLICTS_REQUIRES', requires, 'Requires psr/log %s'), "</li>");
|
||||
});
|
||||
var monologWarningItems = Object.keys(monologConflicts).map(function (slug) {
|
||||
var entries = Array.isArray(monologConflicts[slug]) ? monologConflicts[slug] : [];
|
||||
var details = entries.map(function (entry) {
|
||||
var method = entry.method || '';
|
||||
var file = entry.file ? basename(entry.file) : '';
|
||||
return "<span>".concat(method, " ").concat(file ? "<code>".concat(file, "</code>") : '', "</span>");
|
||||
}).join(', ');
|
||||
var description = details || t('SAFE_UPGRADE_WARNINGS_MONOLOG_UNKNOWN', 'Review the plugin for potential API changes.');
|
||||
return "<li>".concat(t('SAFE_UPGRADE_WARNINGS_MONOLOG_ITEM', 'Potential Monolog conflict:'), " <code>").concat(slug, "</code> — ").concat(description, "</li>");
|
||||
});
|
||||
var warningsList = warnings.length || psrWarningItems.length || monologWarningItems.length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--alert safe-upgrade-alert\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-exclamation-triangle\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_WARNINGS', 'Warnings'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_WARNINGS_HINT', 'These items may require attention before continuing.'), "</span>\n </div>\n </div>\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>\n ").concat(warnings.map(function (warning) {
|
||||
return "<li>".concat(warning, "</li>");
|
||||
}).join(''), "</ul>\n </div>\n </section>\n ") : '';
|
||||
}).join(''), "\n ").concat(psrWarningItems.join(''), "\n ").concat(monologWarningItems.join(''), "\n </ul>\n </div>\n </section>\n ") : '';
|
||||
var pendingList = Object.keys(pending).length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--info safe-upgrade-pending\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-sync\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_PENDING_UPDATES', 'Pending plugin or theme updates'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_PENDING_INTRO', 'Review the extensions that should be updated first.'), "</span>\n </div>\n </div>\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>\n ").concat(Object.keys(pending).map(function (slug) {
|
||||
var item = pending[slug] || {};
|
||||
var type = item.type || 'plugin';
|
||||
@@ -4776,20 +4791,8 @@ var SafeUpgrade = /*#__PURE__*/function () {
|
||||
var next = item.available || t('SAFE_UPGRADE_UNKNOWN_VERSION', 'unknown');
|
||||
return "<li><code>".concat(slug, "</code> (").concat(type, ") ").concat(current, " → ").concat(next, "</li>");
|
||||
}).join(''), "\n </ul>\n </div>\n </section>\n ") : '';
|
||||
var psrList = Object.keys(psrConflicts).length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--conflict safe-upgrade-conflict\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-code-branch\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_CONFLICTS_PSR', 'Potential psr/log compatibility issues'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_CONFLICTS_HINT', 'Choose how to handle conflicts before starting the upgrade.'), "</span>\n </div>\n </div>\n ").concat(this.renderDecisionSelect('psr_log'), "\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>\n ").concat(Object.keys(psrConflicts).map(function (slug) {
|
||||
var info = psrConflicts[slug] || {};
|
||||
var requires = info.requires || '*';
|
||||
return "<li><code>".concat(slug, "</code> — ").concat(r('SAFE_UPGRADE_CONFLICTS_REQUIRES', requires, 'Requires psr/log %s'), "</li>");
|
||||
}).join(''), "\n </ul>\n </div>\n </section>\n ") : '';
|
||||
var monologList = Object.keys(monologConflicts).length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--conflict safe-upgrade-conflict\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-wave-square\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_CONFLICTS_MONOLOG', 'Potential Monolog API compatibility issues'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_CONFLICTS_HINT', 'Choose how to handle conflicts before starting the upgrade.'), "</span>\n </div>\n </div>\n ").concat(this.renderDecisionSelect('monolog'), "\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>\n ").concat(Object.keys(monologConflicts).map(function (slug) {
|
||||
var entries = Array.isArray(monologConflicts[slug]) ? monologConflicts[slug] : [];
|
||||
var details = entries.map(function (entry) {
|
||||
var method = entry.method || '';
|
||||
var file = entry.file ? basename(entry.file) : '';
|
||||
return "<span>".concat(method, " ").concat(file ? "<code>".concat(file, "</code>") : '', "</span>");
|
||||
}).join(', ');
|
||||
return "<li><code>".concat(slug, "</code> — ").concat(details, "</li>");
|
||||
}).join(''), "\n </ul>\n </div>\n </section>\n ") : '';
|
||||
var psrList = Object.keys(psrConflicts).length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--conflict safe-upgrade-conflict\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-code-branch\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_CONFLICTS_PSR', 'Potential psr/log compatibility issues'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_CONFLICTS_HINT', 'Choose how to handle conflicts before starting the upgrade.'), "</span>\n </div>\n </div>\n ").concat(this.renderDecisionSelect('psr_log'), "\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <p class=\"safe-upgrade-panel__hint\">").concat(t('SAFE_UPGRADE_CONFLICTS_REFER_WARNINGS', 'See the warnings above for the list of affected plugins.'), "</p>\n </div>\n </section>\n ") : '';
|
||||
var monologList = Object.keys(monologConflicts).length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--conflict safe-upgrade-conflict\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-wave-square\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_CONFLICTS_MONOLOG', 'Potential Monolog API compatibility issues'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_CONFLICTS_HINT', 'Choose how to handle conflicts before starting the upgrade.'), "</span>\n </div>\n </div>\n ").concat(this.renderDecisionSelect('monolog'), "\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <p class=\"safe-upgrade-panel__hint\">").concat(t('SAFE_UPGRADE_CONFLICTS_REFER_WARNINGS', 'See the warnings above for the list of affected plugins.'), "</p>\n </div>\n </section>\n ") : '';
|
||||
var blockersList = blockers.length ? "\n <section class=\"safe-upgrade-panel safe-upgrade-panel--blocker safe-upgrade-blockers\">\n <header class=\"safe-upgrade-panel__header\">\n <div class=\"safe-upgrade-panel__title-wrap\">\n <span class=\"safe-upgrade-panel__icon fa fa-ban\" aria-hidden=\"true\"></span>\n <div>\n <strong class=\"safe-upgrade-panel__title\">".concat(t('SAFE_UPGRADE_BLOCKERS_TITLE', 'Action required before continuing'), "</strong>\n <span class=\"safe-upgrade-panel__subtitle\">").concat(t('SAFE_UPGRADE_BLOCKERS_DESC', 'Resolve the following items to enable the upgrade.'), "</span>\n </div>\n </div>\n </header>\n <div class=\"safe-upgrade-panel__body\">\n <ul>").concat(blockers.map(function (item) {
|
||||
return "<li>".concat(item, "</li>");
|
||||
}).join(''), "</ul>\n </div>\n </section>\n ") : '';
|
||||
@@ -4810,8 +4813,21 @@ var SafeUpgrade = /*#__PURE__*/function () {
|
||||
}, {
|
||||
key: "renderDecisionSelect",
|
||||
value: function renderDecisionSelect(type) {
|
||||
var selectId = "safe-upgrade-decision-".concat(type);
|
||||
return "\n <div class=\"safe-upgrade-panel__action safe-upgrade-decision\">\n <label for=\"".concat(selectId, "\">").concat(t('SAFE_UPGRADE_DECISION_PROMPT', 'When conflicts are detected:'), "</label>\n <select id=\"").concat(selectId, "\" data-safe-upgrade-decision=\"").concat(type, "\">\n <option value=\"disable\">").concat(t('SAFE_UPGRADE_DECISION_DISABLE', 'Disable conflicting plugins'), "</option>\n <option value=\"continue\">").concat(t('SAFE_UPGRADE_DECISION_CONTINUE', 'Continue with plugins enabled'), "</option>\n </select>\n </div>\n ");
|
||||
var currentDecision = this.decisions[type] || 'disable';
|
||||
var name = "safe-upgrade-decision-".concat(type);
|
||||
var ariaLabel = t('SAFE_UPGRADE_DECISION_PROMPT', 'When conflicts are detected:');
|
||||
var options = [{
|
||||
value: 'disable',
|
||||
label: t('SAFE_UPGRADE_DECISION_DISABLE', 'Disable conflicting plugins'),
|
||||
description: t('SAFE_UPGRADE_DECISION_DISABLE_DESC', 'Temporarily disable conflicting plugins during the upgrade.')
|
||||
}, {
|
||||
value: 'continue',
|
||||
label: t('SAFE_UPGRADE_DECISION_CONTINUE', 'Continue with plugins enabled'),
|
||||
description: t('SAFE_UPGRADE_DECISION_CONTINUE_DESC', 'Proceed with plugins enabled. This may require manual fixes.')
|
||||
}];
|
||||
return "\n <div class=\"safe-upgrade-panel__action safe-upgrade-decision\" role=\"radiogroup\" aria-label=\"".concat(ariaLabel, "\">\n ").concat(options.map(function (option) {
|
||||
return "\n <label class=\"safe-upgrade-decision-option\">\n <input type=\"radio\" name=\"".concat(name, "\" value=\"").concat(option.value, "\" ").concat(currentDecision === option.value ? 'checked' : '', " data-safe-upgrade-decision=\"").concat(type, "\">\n <span class=\"safe-upgrade-decision-option__content\">\n <span class=\"safe-upgrade-decision-option__title\">").concat(option.label, "</span>\n <span class=\"safe-upgrade-decision-option__description\">").concat(option.description, "</span>\n </span>\n </label>\n ");
|
||||
}).join(''), "\n </div>\n ");
|
||||
}
|
||||
}, {
|
||||
key: "updateStartButtonState",
|
||||
|
||||
@@ -840,27 +840,24 @@ body.sidebar-quickopen #admin-main {
|
||||
gap: 0.35rem;
|
||||
color: #2f3b48;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 0.9rem;
|
||||
color: rgba(47, 59, 72, 0.85);
|
||||
}
|
||||
}
|
||||
|
||||
&__action {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 0.3rem;
|
||||
min-width: 200px;
|
||||
flex: 1 1 200px;
|
||||
gap: 0.75rem;
|
||||
min-width: 100%;
|
||||
flex: 1 1 100%;
|
||||
width: 100%;
|
||||
|
||||
label {
|
||||
margin: 0;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: rgba(47, 59, 72, 0.85);
|
||||
}
|
||||
|
||||
select {
|
||||
width: 100%;
|
||||
}
|
||||
max-width: 100%;
|
||||
margin-left: 0;
|
||||
padding-top: 0.25rem;
|
||||
}
|
||||
|
||||
&--alert {
|
||||
@@ -884,6 +881,55 @@ body.sidebar-quickopen #admin-main {
|
||||
}
|
||||
}
|
||||
|
||||
.safe-upgrade-decision {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.65rem;
|
||||
width: 100%;
|
||||
|
||||
.safe-upgrade-decision-option {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.65rem;
|
||||
padding: 0.65rem 0.75rem;
|
||||
border: 1px solid rgba(20, 42, 68, 0.2);
|
||||
border-radius: 6px;
|
||||
background: rgba(255, 255, 255, 0.92);
|
||||
transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover,
|
||||
&:focus-within {
|
||||
border-color: var(--safe-upgrade-accent);
|
||||
background: #ffffff;
|
||||
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
input {
|
||||
margin-top: 0.2rem;
|
||||
flex-shrink: 0;
|
||||
accent-color: var(--safe-upgrade-accent);
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.2rem;
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__title {
|
||||
font-weight: 600;
|
||||
font-size: 0.95rem;
|
||||
color: #13243b;
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__description {
|
||||
font-size: 0.85rem;
|
||||
color: rgba(47, 59, 72, 0.75);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.safe-upgrade-loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -99,27 +99,24 @@
|
||||
gap: 0.35rem;
|
||||
color: #2f3b48;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 0.9rem;
|
||||
color: rgba(47, 59, 72, 0.85);
|
||||
}
|
||||
}
|
||||
|
||||
&__action {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 0.3rem;
|
||||
min-width: 200px;
|
||||
flex: 1 1 200px;
|
||||
gap: 0.75rem;
|
||||
min-width: 100%;
|
||||
flex: 1 1 100%;
|
||||
width: 100%;
|
||||
|
||||
label {
|
||||
margin: 0;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: rgba(47, 59, 72, 0.85);
|
||||
}
|
||||
|
||||
select {
|
||||
width: 100%;
|
||||
}
|
||||
max-width: 100%;
|
||||
margin-left: 0;
|
||||
padding-top: 0.25rem;
|
||||
}
|
||||
|
||||
&--alert {
|
||||
@@ -143,6 +140,55 @@
|
||||
}
|
||||
}
|
||||
|
||||
.safe-upgrade-decision {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.65rem;
|
||||
width: 100%;
|
||||
|
||||
.safe-upgrade-decision-option {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.65rem;
|
||||
padding: 0.65rem 0.75rem;
|
||||
border: 1px solid rgba(20, 42, 68, 0.2);
|
||||
border-radius: 6px;
|
||||
background: rgba(255, 255, 255, 0.92);
|
||||
transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover,
|
||||
&:focus-within {
|
||||
border-color: var(--safe-upgrade-accent);
|
||||
background: #ffffff;
|
||||
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
input {
|
||||
margin-top: 0.2rem;
|
||||
flex-shrink: 0;
|
||||
accent-color: var(--safe-upgrade-accent);
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.2rem;
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__title {
|
||||
font-weight: 600;
|
||||
font-size: 0.95rem;
|
||||
color: #13243b;
|
||||
}
|
||||
|
||||
.safe-upgrade-decision-option__description {
|
||||
font-size: 0.85rem;
|
||||
color: rgba(47, 59, 72, 0.75);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.safe-upgrade-actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
||||
Reference in New Issue
Block a user