@pixerate/editor 0.34.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,6 +47,7 @@ reproduced at the end of this file. Paths are relative to each source repository
47
47
  - `crates/engine/src/components.rs` (instances rebuilt from their main keeping ids and overrides — `sync_instance`, `carry_overrides`, `path_map` matching, `variant_kept`, `diff_groups`, `sync_after_edit`, `rebuild_instances` ordering, `rebase_instance`, `unlink_layers`, `relink_copy`, component property chains, `default_variant`, `variant_props`, `variant_name`, `variant_options`, `find_variant`, `variant_conflicts`) → `packages/core/src/canvas/components.ts`
48
48
  - `crates/engine/src/cmd/component.rs` (create component, combine as variants, create / detach / swap instance, reset instance and overrides, push changes, restore main, set instance properties, add / edit / delete / bind component properties) → `packages/core/src/canvas/components.ts`, `packages/core/src/canvas/componentsController.ts`
49
49
  - `crates/engine/src/{components_tests.rs,components_behaviour_tests.rs,components_scale_tests.rs}` (test cases re-expressed) → `packages/core/tests/canvas-components.test.ts`, `packages/core/tests/canvas-components-controller.test.ts`
50
+ - `crates/engine/src/vectoredit/ops.rs` (`bend`: handles at the chord's thirds plus one shared offset so the segment passes through the pointer at `t`, `t` clamped to 0.05–0.95) → `bendSegment` in `packages/core/src/vector/pathEdit.ts`; its `delete_vertices` / `heal_handles` (a healed curve through the deleted point) were compared and not ported, as the least-error refit followed the old segments more closely
50
51
 
51
52
  ## filmcraft
52
53
 
@@ -124,6 +125,7 @@ GridCraft. Apache POI is © The Apache Software Foundation, licensed under the A
124
125
  - `crates/algo/src/selection.rs` (`SelectionMode` / `combine`, `magic_wand` / `wand_region` span fill and anti-aliasing, `color_range_samples`, `tone_range`, `hue_range`, `expand` / `contract` / `border`, anti-aliased `polygon`) → `packages/core/src/image-editor/selection/mask.ts`, `shapes.ts`, `wand.ts`, `modify.ts`
125
126
  - `crates/algo/src/selection/distance.rs` (Felzenszwalb–Huttenlocher `edt`) and `crates/algo/src/selection_blur.rs` (Smooth: box + threshold; Feather: Gaussian with σ = radius) → `packages/core/src/image-editor/selection/modify.ts`
126
127
  - `crates/algo/src/matting.rs` (`RefineParams`, `box_mean`, `guided_filter_color`, `edge_width`, `refine_buffer` band / smooth / feather / contrast / `shift_mask`) → `packages/core/src/image-editor/selection/refine.ts`, `modify.ts`
128
+ - `crates/paint/src/dynamics.rs` (`Smoother` pulled-string mode with `MAX_STRING_PX`, `string`, `finish` with catch-up on stroke end) → `LazyMouse` in `packages/core/src/vector/ink.ts`
127
129
  - `crates/engine/src/layer_mask_props_cmds.rs` and `crates/compose/src/masks.rs` (non-destructive mask density and feather) → `packages/core/src/image-editor/selection/layer-mask.ts`
128
130
  - Test cases from `crates/algo/src/selection.rs`, `crates/algo/src/selection_blur.rs`, `crates/algo/src/matting.rs` and `crates/algo/src/tests_selection_mix.rs`, re-expressed → `packages/core/tests/image-editor-selection.test.ts`, `packages/core/tests/image-editor-selection-controller.test.ts`
129
131
 
@@ -150,6 +152,10 @@ GridCraft. Apache POI is © The Apache Software Foundation, licensed under the A
150
152
  - `crates/effects/src/stroke/dash.rs` (exact dash plans: odd patterns doubled, offset into the pattern, restart per subpath, joining across the start of a closed subpath, zero-length dots, invalid / too-fine patterns drawn solid) → `packages/core/src/canvas/pathops/stroke.ts`
151
153
  - `crates/pathops/src/boolean.rs` (`try_merge` refit of tangent-continuous runs) → `mergeSmoothRuns` in `packages/core/src/canvas/pathops/stroke.ts`
152
154
  - Test cases from `crates/pathops/tests/ops.rs`, `tests/props.rs`, `tests/prop_pathops.rs`, `crates/pathops/src/offset.rs` and `crates/engine/src/tests_outlinestroke.rs`, re-expressed → `packages/core/tests/canvas-pathops.test.ts`
155
+ - `crates/pathops/src/edit.rs` (`remove_anchor` with `golden_min`: neighbours keep their handle directions and one cubic is fitted across the two segments with a golden-section search for where it passes the removed point; `smooth`; `remove_redundant_points` with `merge_pair`; `average`; `join` nearest endpoints first) → `packages/core/src/vector/pathEdit.ts`, `fitCubicWithTangents` in `packages/core/src/canvas/curveFit.ts`
156
+ - `crates/geom/src/path.rs` (`SubPath::cut_at`) → `cutSubpathAt` in `packages/core/src/vector/pathEdit.ts`; its `bend_segment` was not used
157
+ - `crates/tools/src/draw2/curvature.rs` (`curvature_move`) → `curvatureMoveAnchor` in `packages/core/src/vector/pathEdit.ts`
158
+ - `crates/engine/src/cmd/draw2.rs` (`knife`, `erase_region`, `erase_outline`, `cut_subpath`: which paths a stroke reaches, fills losing the stroke's area by a boolean difference, outlines cut into runs that keep the original curves and join across a closed path's start, one object per piece) → `packages/core/src/vector/pathCut.ts`; the fixed 0.05 pt knife slit and the 24-sample crossing search were replaced by gap-free chord splitting with exact crossings
153
159
  ---
154
160
 
155
161
  ## wordcraft
@@ -175,6 +181,7 @@ GridCraft. Apache POI is © The Apache Software Foundation, licensed under the A
175
181
  - `crates/docx/src/write/mod.rs` (package assembly: `[Content_Types].xml` defaults and overrides, part relationships with reused ids, `comments.xml` + `commentsExtended.xml` with `w15:paraIdParent` / `w15:done`, `annotation_author` and anonymous initials for removed personal information, `core_xml` without creator / last modified by, `styles_xml` / `style_xml` with `basedOn` / `next` / `link` / `uiPriority` / `qFormat`, lower-case built-in style names, `numbering_xml`), `crates/docx/src/write/story.rs` (`rev_open` / `rev_close`, `rev_tag` moves as `w:moveFrom` / `w:moveTo`, `move_ranges` with named move ranges, `w:delText` only for deletions that are not moves, `rpr_change` / `w:pPrChange` last in their properties, comment range start / end / reference runs, `w:p` with `w14:paraId` for comments, tables with `w:tblGrid`, `w:gridSpan`, `w:vMerge`, inline `wp:inline` pictures), `crates/docx/src/write/props.rs` (run property order), `crates/docx/src/package.rs` (relationship types), `crates/docx/src/xml.rs` (`esc`, XML 1.0 character filter, writer) and `crates/docx/src/units.rs` (twips / EMU conversion) → `packages/core/src/export/docx.ts`, `packages/core/src/export/xml.ts`, `packages/core/src/export/units.ts`
176
182
  - `crates/docx/src/read/mod.rs` (`read_comments`: comments keyed by the `w14:paraId` of their last paragraph, `commentEx` parents and `done`) and `crates/docx/src/read/story.rs` (tracked insertions, deletions and named move ranges) → `packages/core/src/import/docx.ts`
177
183
  - Test cases from `crates/docx/tests/privacy.rs` (`remove_personal_information_and_dates_on_save`: the two-commenter fixture, no names or initials in any part, "Author" / "A"), `crates/docx/tests/roundtrip.rs` and `crates/docx/tests/fixtures.rs` (comments, replies, tracked changes and moves surviving a save and reload), re-expressed → `packages/core/tests/docx-export.test.ts`
184
+ - `crates/engine/src/cmd/ink_shape.rs` (`recognise`, `ellipse_rms`, `snap_square`, `corners`, `turning`, `rdp`, `upright`, `MIN_SIZE`, `MAX_CORNERS`) → `recognizeInkShape` in `packages/core/src/vector/ink.ts`; its test cases re-expressed → `packages/core/tests/vector-path-edit.test.ts`
178
185
 
179
186
  ## MIT License
180
187