Skip to content

feat(editor): stabilize Editor for Stacks 3 - #519

Open
dancormier wants to merge 36 commits into
mainfrom
STACKS-889/stabilize-editor
Open

dancormier wants to merge 36 commits into
mainfrom
STACKS-889/stabilize-editor

Conversation

@dancormier

@dancormier dancormier commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR prepares Stacks Editor 1.0 as the stable, Stacks 3-compatible release while preserving the maintained Editor 0.15.x line. It reconciles the beta work with current main, removes beta branding and V2-only markup, and adds release and package-consumer safeguards before publication.

Changes

  • reconcile the complete Editor beta history with current main
  • preserve the 0.15.4 dropdown-focus fix and current dependency updates
  • require stable Stacks Classic ^3.0.0 while retaining stable Icons V6
  • replace removed .s-block-link usage with accessible Stacks V3 menu markup
  • restore the established toolbar layout, mode toggle, prose sizing, and link popovers under Stacks 3
  • remove beta branding and the obsolete link-preview demonstration
  • configure stable releases exclusively from main
  • add CODEOWNERS, ESM/CommonJS package-consumer checks, release safeguards, and rendered-site coverage
  • upgrade Playwright for Node 26 support and limit workflow token permissions
  • verify with 1,093 unit tests, 228 Playwright tests across three browsers, packed-consumer validation, release checks, lint, and independent review

Jira

Release plan

This PR leaves the repository at 1.0.0-beta.5 in Changesets exit mode. The current prerelease state is expected to produce Editor 1.0.0 with Classic ^3.0.0 and Icons ^6.2.0; verify the exact output in the generated release PR.

Merging this PR creates a separately reviewable stable release PR. It does not publish the package. The generated stable changelog will require review before release.

Accessibility

Editor dropdowns now use the documented s-menu structure and native Settings controls retain their list, checkbox, and link semantics. Browser coverage verifies the rendered structure across Chromium, Firefox, and WebKit.

Verification

All automated GitHub checks pass on the current head; reviewers do not need to repeat the standard install, build, lint, unit, or browser-test commands.

Code review

  • Confirm package.json requires stable Stacks Classic ^3.0.0 and stable Icons V6, with no beta dependency ranges.
  • Confirm .github/workflows/main.yml releases only from main, applies least-privilege workflow permissions, and gates release automation on lint, unit, browser, package-consumer, and release-configuration jobs.
  • Confirm scripts/package-artifact.test.mjs packs and installs the actual tarball, checks every public export, type-checks public imports, and renders separate ESM and CommonJS browser consumers.
  • Confirm the toolbar uses Stacks no-wrap and overflow utilities, dropdown actions use square corners, and the mode switcher retains its group styling and keyboard focus ring.
  • Confirm the documentation site no longer registers or renders the obsolete example link-preview provider. Public link-preview APIs and their unit coverage remain intact.
  • Check the current v0 branch separately: its release workflow must remain restricted to stable 0.15.x versions published under legacy-v0 without replacing npm latest.

Deploy preview

Use the Netlify deploy preview:

  1. Confirm the page title and heading say Stacks Editor, without beta branding. Open Settings and confirm the displayed package version starts with 1..
  2. At desktop width, confirm the toolbar stays on one row. Narrow the viewport to approximately 420px and confirm the toolbar scrolls horizontally instead of wrapping; the Rich Text/Markdown mode group should remain outlined and on the same row.
  3. Confirm the Editor body copy uses the established 15px size and the same typeface as the surrounding page.
  4. Open the Heading menu. Its individual actions should have square corners. Using only the keyboard, open the menu, move focus to a heading item, activate it, and confirm the heading is applied without losing focus unexpectedly.
  5. In the Links section, activate the inline link. Confirm the edit and remove actions are clear icon buttons with compact spacing. Verify Edit opens the populated link form and Remove removes the link while preserving its text.
  6. Confirm the Links section contains ordinary inline/reference links and no example link-preview card or leftover preview text.
  7. Repeat the toolbar, mode-toggle, and Heading-menu checks in light, dark, high-contrast, and dark high-contrast themes.

Known follow-up: selected toolbar-item contrast is tracked separately in STACKS-925 and is not part of this release PR.

Changeset

The complete prerelease changeset history is preserved. A final patch changeset records the stable Classic dependency, Stacks 3 presentation fixes, obsolete demo removal, and release preparation.

giamir and others added 30 commits August 22, 2025 11:42
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore(refactor) - refactor main.yml (#481)

* refactor main.yaml

* change empty string to null

* update name

* refactor: update condition

* test change

* update name

* create changeset
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore(new-release) (beta)

* Trigger pipeline

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@changeset-bot

changeset-bot Bot commented Aug 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 4c31b99

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@stackoverflow/stacks-editor Major

Not sure what this means? Click here to learn what changesets are.

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

@netlify

netlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploy Preview for stacks-editor ready!

Name Link
🔨 Latest commit 4c31b99
🔍 Latest deploy log https://app.netlify.com/projects/stacks-editor/deploys/6aa972392ba14400096a237e
😎 Deploy Preview https://deploy-preview-519--stacks-editor.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread .github/workflows/main.yml Fixed
@dancormier
dancormier marked this pull request as ready for review August 26, 2026 21:11
@asblanco
asblanco requested a review from a team August 28, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants