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/reactgainsEditor.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.ImageFrameToolButtondraws Canva-style shaped image slots. @docmosaic/core(1.1.0) - newFrameSectiontype, optionalSectionBase.parentFrameId/ImageSection.maskShape, and the helpersresolveFrameParent+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.PageThumbnailreplaces itsdragHandlers/dropIndicatorsprops with a singleonMovePage(fromIndex, toIndex)callback. The bundledEditor.Pagesis updated automatically - only code mountingEditor.PageThumbnaildirectly 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-accent → bg-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
useDocumentStatehook for BYO-UI consumers. - Framework-agnostic
@docmosaic/corewith 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.