add admin page editor with block reordering and management

Stage 6 of the page builder: admin UI at /admin/pages for managing
page layouts. Page list shows all 14 pages grouped by category.
Editor supports reorder (up/down), add, remove, duplicate, save,
and reset to defaults. DirtyGuard JS hook warns on unsaved changes.
ARIA live regions announce block operations for screen readers.

Also: regenerate admin icons (81 rules via mix task with @layer
wrapping), add gen_smtp dep for SMTP email adapter, add :key to
page renderer block loop for correct LiveView diffing.

1309 tests, 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-02-26 21:15:01 +00:00
parent 21f57e39e2
commit 660fda928f
12 changed files with 1397 additions and 6 deletions

View File

@@ -43,7 +43,11 @@ defmodule Mix.Tasks.GenerateAdminIcons do
content = """
/* Generated by mix generate_admin_icons — do not edit by hand */
@layer admin {
#{Enum.join(css_rules, "\n\n")}
} /* @layer admin */
"""
File.mkdir_p!(Path.dirname(@output_path))