merge page settings into Page tab and remove Settings tab
All checks were successful
deploy / deploy (push) Successful in 3m37s

Custom page settings (title, slug, meta, published, navigation) now
appear as a collapsible section at the top of the Page tab. The
separate Settings tab has been fully removed.

- Add page_settings_section component to page_renderer.ex
- Remove dead :settings case from editor_panel_content
- Delete settings_editor.ex component entirely
- Remove SettingsEditor import from shop_components.ex
- Add .page-settings-* CSS styles
- Clean up old .settings-* CSS styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-28 23:54:04 +00:00
parent 242fed0501
commit dd7146cb41
6 changed files with 267 additions and 439 deletions

View File

@@ -2440,6 +2440,99 @@
}
}
/* Page settings section (inline in Page tab for custom pages) */
.page-settings-details {
margin-bottom: 0.75rem;
border: 1px solid var(--admin-border);
border-radius: var(--admin-radius);
background: var(--admin-bg-alt);
}
.page-settings-summary {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.625rem 0.75rem;
cursor: pointer;
user-select: none;
font-size: 0.8125rem;
font-weight: 500;
color: var(--admin-text-secondary);
&:hover {
color: var(--admin-text-primary);
}
& .page-settings-chevron {
margin-left: auto;
transition: transform 0.15s ease;
}
}
.page-settings-details[open] .page-settings-chevron {
transform: rotate(180deg);
}
.page-settings-form {
display: flex;
flex-direction: column;
gap: 0.75rem;
padding: 0 0.75rem 0.75rem;
}
.page-settings-field {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.page-settings-label {
font-size: 0.75rem;
font-weight: 500;
color: var(--admin-text-secondary);
}
.page-settings-slug-input {
display: flex;
align-items: center;
gap: 0;
}
.page-settings-slug-prefix {
padding: 0.375rem 0.5rem;
background: var(--admin-bg);
border: 1px solid var(--admin-border);
border-right: none;
border-radius: var(--admin-radius) 0 0 var(--admin-radius);
font-size: 0.875rem;
color: var(--admin-text-tertiary);
}
.page-settings-slug-input .admin-input {
border-radius: 0 var(--admin-radius) var(--admin-radius) 0;
}
.page-settings-checks {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.page-settings-nav-options {
display: flex;
gap: 0.75rem;
padding-left: 1.5rem;
}
.page-settings-field-inline {
flex: 1;
}
.page-settings-field-sm {
width: 5rem;
}
/* Block list in editor */
.block-list {
@@ -5133,72 +5226,6 @@
/* Last group in a customise section (no border, tighter margin than theme-group) */
.theme-group-flush { margin-bottom: 1rem; }
/* ── Settings editor (on-site editor Settings tab) ── */
.settings-editor-form {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.settings-slug-preview {
display: flex;
align-items: center;
gap: 0.25rem;
}
.settings-slug-preview .admin-input {
flex: 1;
}
.settings-nav-options {
padding-left: 1rem;
border-left: 2px solid var(--admin-border);
}
.settings-nav-row {
display: flex;
gap: 0.75rem;
}
.settings-nav-field {
flex: 1;
}
.settings-nav-field-sm {
flex: 0 0 5rem;
}
.settings-actions {
display: flex;
align-items: center;
gap: 0.75rem;
padding-top: 0.5rem;
}
.settings-save-indicator {
display: flex;
align-items: center;
gap: 0.25rem;
font-size: 0.875rem;
color: var(--admin-success);
}
.settings-save-error {
color: var(--admin-error);
}
.settings-admin-link {
padding-top: 0.5rem;
border-top: 1px solid var(--admin-border);
}
.settings-info-view {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
/* ── Content width containers ── */
.admin-content-narrow { max-width: 32rem; }