We're using chai-string as it provides the `equalIgnoreSpaces`
assertion which we use in our SVG tests.
However, that package does not seem to be maintained, and lists chai v4
as its peer dependency. We've moved on to chai v5 and this is causes
issues in one of our github workflows as dependencies cannot be
resolved.
So, I've extracted the assertion we need, and dropped the dependency.
- Added:
- core:
- Added the `Path.combine()` method
- The `Path.join()` method is now variadic
- The `Path.length()` now takes an parameter to include move operations in the length calculation
- lumina:
- Initial release
- lumira:
- Initial release
- plugin-annotations:
- The `title` macro now takes a `notes` and `classes.notes` as its config, allowing you to add notes
- The `classes.cutlist` config is removed from the title plugin, cutlist info is now included as notes
- plugin-i18n:
- This plugin now supports translation of nested arrays of strings, giving you more flexibility to concatenate translated parts of strings
- react-components:
- This Pattern component now supports translation of nested arrays of strings, giving you more flexibility to concatenate translated parts of strings
- sandy:
- Added a new *panels* option
- tristan:
- Inital release
- Deprecated:
- core:
- Calling `Path.join` with a second parameter to indicate that the resulting paths most be closed is now deprecated and will be removed in FreeSewing v4.
- Fixed:
- brian:
- Take biceps ease into account when calculating armhole depth
- carlton:
- Fixed a stray seam allowance path on the collar
- charlie:
- The back pocket welt (4) and front pocket facing (8) incorrectly indicated to cut 2 instead of 4 in the cutlist. Fixes#5791
- hugo:
- Fix issue that crashed the design when complete is off. Fixes#6006
- Base pocket opening on pocket height, rather than width of the garment. Fixes#6004
- Removed:
- plugin-annotations:
- The `classes.cutlist` config is removed from the title plugin, cutlist info is now included as notes
Shout-out to @woutervdub and @benjamesben for their many contributotions
to this v3.2 release 🙏
The discussion in #5976 is whether `Path.join()` should use a line
segment to close any gaps in the path caused by move operations, or by
differences in the end and start points of paths being joined.
The answer is yes, that is the intended behaviour, but people who read
_join_ might expect differently.
So I have made a few changes to clarify this:
- The new `Path.combine()` method combines multiple path instances into
a single instance without making any changes to the drawing operations
- Since `Path.combine()` is variadic, I have also updated `Path.join()`
to be variadic too, since that is more consistent.
- The old way of calling `Path.join(path, bool)` is deprecated and will
log a warning. Calling `Path.join()` this way will be removed in v4.
- Related to this change is how `Path.length()` should behave when there
are gaps in the path. Currently, it skips those. So I've added a
parameter that when set to `true` will include them.
- Added documentation for `Path.combine()`
- Updated documentation for `Path.join()`
- Updated documentation for `Path.length()`
Note that the tests for Lumina are failing, but that's not related to
the chai upgrade, rather it seems these tests fail because of issues in
the design that we'll tackle later (it's a brand new design yet to be
released).
This started out as a fix for #5753 after I felt the approach in #5760
was not the best way to handle this.
The problem lies in the way the cutlist data is added to the pattern by
the title plugin. The whole cutlist thing was added by a less
experienced contributor, and they were a little too focussed on what
they were trying to accomplish, rather than keeping an eye on the big
picture.
In this case, a bunch of points get added to the part to anchor all of
the text for the cutlist. This causes problems when inheriting parts
because points are added per material, and now we don't know what
materials were used and how to remove these points.
I appreciate @woutervdub effort to resolve this in #5760 but as I
mentioned above, I don't love the approach.
Rather than finding a clever way to remove these points, I am of the
opinion that they should never have been added in the first place.
Specifically, all we are doing is adding one or more lines of text. The
idea that you need multiple points for this is an incorrect assumption,
and therein lies the root of this problem.
So, this refactor adds support to the title macro for 'notes'. These
notes will be added below the title. The cutlist info is now just
prepended to the notes. So it stops being something 'special' (which it
never should have been) and instead just behaves like other text that is
placed on the part by the title macro.
The only flanking measure required to make this happen was to add
support for nested arrays in handling text.
This way, you can pass a nested array to concatenate strings in such a
way that each part will still be individually translated.
And as all text in FreeSewing, to force a linebreak, you just use "\n"
as The Dark Lord intended.
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Added IDs to dimension macros that missed them, causing them to not be shown
- Keep seam allowance out of the binding length calculation
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Corrected part mixup in translation of flag message
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Fixed wrong use of options in a value method. Fixes
- Remove names from old plugins from list option
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- The skirt and curved waistband are now constructed with the ringsector macro
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Replaced all instances of 'seperate' with 'separate' in option names
- Initial release
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Changed defaults to have more rise in the back
- Increase default rise
- Decrease default vertical stretch
- Decreased default back waist dip
- Increased default front waist dip
- Allowed lower values on back exposure, causing back to flare out
- Fix issue with back part when bulge is on and expand is off
- Pocket opening was not drawn on the facing and pocket pieces. Fixes
- Improve placement of the front welt. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Initial release
- Added support for notes in flags
- Removing macros did not always remove the cutlist data in the store. Fixes
- First release of the plugin providing the default packing implementation
- First release of the plugin facilitating drafting a ring sector
- Allow plugins to provide their own packing implementation
- Added named export `cbqc` which exports the constant to approximate a circle with Cubic Bézier curves
- Core will now set `activeMacro` in the store, keeping track of the running macro - Added the `generateMacroIds`, `getMacroIds`, and `removeMacroNodes` store methods
- Fix order in mergeOptions method so user settings take precendence over defaults
- Fix upward snap for snapped percentage option when snap is a simple number
- The conditional loading of plugins had a bug causing them to never be loaded
- Make Path.split() more robust when handling edge-case. Fixes
- Prevent utils.circlesIntersect() from running sqrt on a negative number. Fixes
- Removed unwanted debug output