Skip to content

[codex] Add visual sections and public Pages preview#1206

Draft
Tarek-g wants to merge 5 commits into
emdash-cms:mainfrom
Tarek-g:codex/public-sections-pages
Draft

[codex] Add visual sections and public Pages preview#1206
Tarek-g wants to merge 5 commits into
emdash-cms:mainfrom
Tarek-g:codex/public-sections-pages

Conversation

@Tarek-g
Copy link
Copy Markdown

@Tarek-g Tarek-g commented May 29, 2026

What does this PR do?

Publishes the current EmDash visual-authoring work as a draft public branch and adds a static Cloudflare Pages overview for public-service audiences.

This branch includes:

  • A richer visual section library across admin, blocks, and Astro renderers.
  • Reusable sections such as Feature List, Icon, Logo Cloud, Steps, FAQ, Video Embed, Pricing Table, CTA Banner, Card, Card Grid, Testimonial, Stats, Tabs, Accordion, and Banner.
  • Section previews, categories, registry coverage tests, and draft-from-intent support constrained by known schemas.
  • Builder/editor infrastructure for block selection, properties, drag/drop wrapping, Lexical persistence, and builder serialization.
  • Content autosave support and DI container wiring needed by the newer content flow.
  • public-site/, a static English overview explaining EmDash as open public-interest publishing infrastructure.
  • A Cloudflare Pages deployment for the static public overview: https://emdash-public.pages.dev

Implementation summary

  • Added a broader section/block vocabulary for editorial page building.
  • Added Astro renderers so structured section data can render on public pages.
  • Expanded the admin section picker with visual previews, thumbnails, category filtering, and accessible search labeling.
  • Added schema-constrained section draft generation from editor intent, including confidence handling and alternatives.
  • Added registry coverage tests so admin, blocks, and core renderer layers stay aligned when section types are added.
  • Added builder/editor groundwork for block selection, property panels, drag/drop wrappers, Lexical persistence, and builder-to/from-Lexical conversion.
  • Added content autosave endpoint support and DI container wiring used by the newer editing flow.
  • Fixed SectionPickerModal selector/accessibility test failures found during verification.

This is intentionally still a draft PR. The code includes feature work and should not be treated as ready for merge until the maintainers decide the right Discussion/review path.

Closes #

Type of change

  • Bug fix
  • Feature (requires maintainer-approved Discussion)
  • Refactor (no behavior change)
  • Translation
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • I have read CONTRIBUTING.md
  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm test passes (or targeted tests for my change)
  • pnpm format has been run
  • I have added/updated tests for my changes (if applicable)
  • User-visible strings in the admin UI are wrapped for translation (if applicable). Do not include messages.po changes except in translation PRs — a workflow extracts catalogs on merge to main.
  • I have added a changeset (if this PR changes a published package)
  • New features link to an approved Discussion: https://github.com/emdash-cms/emdash/discussions/...

AI-generated code disclosure

  • This PR includes AI-generated code — model/tool: AI-assisted development tools

Screenshots / test output

Cloudflare Pages public overview:

Validation run locally:

  • git diff --check
  • pnpm --filter @emdash-cms/blocks test — 154 passed
  • pnpm --filter @emdash-cms/admin test — 976 passed
  • pnpm --filter @emdash-cms/blocks typecheck
  • pnpm --filter @emdash-cms/admin typecheck
  • pnpm --filter @emdash-cms/blocks build
  • pnpm --filter @emdash-cms/admin build
  • pnpm --filter emdash build
  • pnpm --filter emdash typecheck after building blocks
  • ./node_modules/.bin/prettier --check README.md public-site/index.html public-site/styles.css .gitignore

Note: an early parallel pnpm --filter emdash typecheck failed because @emdash-cms/blocks/server had not been built yet. After @emdash-cms/blocks build, the same typecheck passed.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 29, 2026

⚠️ No Changeset found

Latest commit: fa2dfe6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions
Copy link
Copy Markdown
Contributor

Scope check

This PR changes 12,955 lines across 98 files. Large PRs are harder to review and more likely to be closed without review.

If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs.

See CONTRIBUTING.md for contribution guidelines.

@Tarek-g Tarek-g force-pushed the codex/public-sections-pages branch from db12bd3 to 6b46234 Compare May 29, 2026 08:45
@Tarek-g
Copy link
Copy Markdown
Author

Tarek-g commented May 29, 2026

I have read the CLA Document and I hereby sign the CLA

@github-actions
Copy link
Copy Markdown
Contributor

Overlapping PRs

This PR modifies files that are also changed by other open PRs:

This may cause merge conflicts or duplicated work. A maintainer will coordinate.

<article className="overflow-hidden rounded-lg border border-kumo-line bg-kumo-base">
{item.image && (
<img
src={item.image}
<p className="mt-2 text-sm leading-6 text-kumo-subtle">{item.description}</p>
)}
{item.ctaText && href && (
<a href={href} className="mt-4 inline-flex text-sm font-medium text-kumo-brand">
<figure className="space-y-3">
<div className="relative overflow-hidden rounded-lg border border-kumo-line bg-kumo-tint">
<iframe
src={embedUrl}
)}
<div className="mt-6 flex flex-wrap items-center justify-center gap-4">
<a
href={block.primaryAction.href}
</a>
{block.secondaryAction && (
<a
href={block.secondaryAction.href}
function LogoItem({ item }: { item: LogoCloudItem }) {
const content = (
<img
src={item.logoUrl}
</a>
{block.secondaryAction && (
<a
href={block.secondaryAction.href}
)}
<div className="mt-6 flex flex-wrap items-center justify-center gap-4">
<a
href={block.primaryAction.href}
<p className="mt-2 text-sm leading-6 text-kumo-subtle">{item.description}</p>
)}
{item.ctaText && href && (
<a href={href} className="mt-4 inline-flex text-sm font-medium text-kumo-brand">
<article className="overflow-hidden rounded-lg border border-kumo-line bg-kumo-base">
{item.image && (
<img
src={item.image}
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 29, 2026

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@1206

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@1206

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@1206

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@1206

emdash

npm i https://pkg.pr.new/emdash@1206

create-emdash

npm i https://pkg.pr.new/create-emdash@1206

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@1206

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@1206

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@1206

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@1206

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@1206

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@1206

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@1206

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@1206

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@1206

commit: fa2dfe6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants