DocMosaicdocs

Changelog

Release history for @docmosaic/react and @docmosaic/core.

The packages follow semver. Breaking changes ship in majors; new primitives ship in minors; bug fixes ship in patches.

2.0.0 · core 1.1.0

Ships together: the breaking @docmosaic/react token migration (major), the responsive / touch editor (a major, with one breaking primitive-prop change), and the additive Frames feature (minor in both packages).

Frames (additive, both packages - existing documents and APIs are unchanged):

  • Container frames - a new FrameSection (type: 'frame') box that owns child sections. @docmosaic/react gains Editor.FrameToolButton (draw-to-size), drag-to-adopt, move-with-children, and a delete/duplicate cascade. Frames draw behind their children.
  • Placeholder frames - ImageSection.maskShape ('rect' | 'circle' | 'line') clips an image to a shape; Editor.ImageFrameToolButton draws Canva-style shaped image slots.
  • @docmosaic/core (1.1.0) - new FrameSection type, optional SectionBase.parentFrameId / ImageSection.maskShape, and the helpers resolveFrameParent + orderSectionsForRender (the shared back-to-front render sort).

Responsive / touch editor (@docmosaic/react):

  • Below 1024px the editor renders a touch-first shell - a compact top bar, a full-bleed canvas, a horizontally-scrollable tool strip, and Pages / Layers / Edit / Doc panels surfaced as slide-up bottom sheets. The page-size, orientation, preview, and print controls move into the "Doc" sheet. The desktop three-pane app-shell is unchanged.
  • Canvas gains pinch-to-zoom and two-finger pan; section drag, resize, and crop use pointer events with finger-sized hit targets. Drag-and-drop runs through react-dnd's MultiBackend (HTML5 on desktop, auto-transitioning to touch), so layer and page reorder work by finger. Every touch path is gated on multi-pointer / isPrimary, so the desktop mouse experience is unchanged.
  • Section floating toolbars clamp horizontally so they stay on-screen for sections near a narrow viewport's edge.
  • Breaking: Editor.PageThumbnail replaces its dragHandlers / dropIndicators props with a single onMovePage(fromIndex, toIndex) callback. The bundled Editor.Pages is updated automatically - only code mounting Editor.PageThumbnail directly needs to migrate. See the v2.0 migration guide.

Breaking token migration (@docmosaic/react): removes the legacy editor-* Tailwind color classes from the primitives and deletes the --editor-color-* CSS aliases from both bundled themes. Everything now reads the shadcn-aligned semantic surface directly (bg-editor-accentbg-primary, var(--editor-color-success)var(--accent)). The structural tokens (rounded-editor-section, shadow-editor-section, --editor-radius-section, --editor-shadow-section) are kept. One accepted visual change under the minimal-light theme: the page-thumbnail hover ring shifts from green-600 to the theme accent. See the v2.0 migration guide for the full class/variable mapping and codemods.

1.0.0

First stable release. Removes the deprecated Editor.* aliases (Inspector, PageBackgroundPicker, EstimatedSize, ProgressOverlay, AddSectionButton, PageList, PageThumb) and the bundled minimal-dark.css theme - the brand theme's built-in .dark scope replaces it. See the v1.0 migration guide for renames and codemods.

0.1.0

Initial public preview.

  • Compound Editor.* namespace with ~40 primitives (Root, Canvas, Section, Toolbar, Properties, Preview, Pages, LayerList, Ruler, Guides, Minimap, KeybindingHelp, ContextMenu, Toaster, and more).
  • Headless useDocumentState hook for BYO-UI consumers.
  • Framework-agnostic @docmosaic/core with reducer + history.
  • Theming surface - shadcn-aligned semantic tokens, dark-mode scope, four bundled themes (DocMosaic, Minimal Light, Minimal Dark, plus the convenience bundle).
  • Storybook with 100+ stories at storybook.docmosaic.com.
  • PDF byte-diff fixtures gating the generation pipeline (image, text, shapes, drawing, cropped).

For a full per-PR changelog, see the repository on GitHub.