diff --git a/CHANGELOG.md b/CHANGELOG.md index 40875823d03..7463a705bbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,16 @@ - Added measurements for dolls & giants to Workbench measurments selector - Added sampling for dolls & giants to Workbench tests +### core + +#### Added + + - Added support for snapped percentage options See https://github.com/freesewing/freesewing/discussions/1331 + +#### Changed + + - Pattern.on() is now chainable as it returns the Pattern object + ### hortensia #### Changed @@ -88,6 +98,17 @@ - Changed the `boxPleatWidth` option type from `mm` to `pct` - Changed the `boxPleatFold` option type from `mm` to `pct` +#### Fixed + + - Support drafting of non-human measurements (dolls & giants) Closes [#1318](https://github.com/freesewing/freesewing/issues/1318) + - Fix issue with armhole introduced with the S3 options in Brian Closes + +### snapseries + +#### Added + + - Initial release of `@freesewing/snapseries` wich holds commonly used series of snap values for percentage options + ### theo #### Changed diff --git a/config/changelog.yaml b/config/changelog.yaml index a44dd0a5301..c752bc4a840 100644 --- a/config/changelog.yaml +++ b/config/changelog.yaml @@ -1,5 +1,13 @@ unreleased: + Added: + core: + - Added support for snapped percentage options + See https://github.com/freesewing/freesewing/discussions/1331 + snapseries: + - Initial release of `@freesewing/snapseries` wich holds + commonly used series of snap values for percentage options + Changed: charlie: - Changed the `waistbandWidth` option type from `mm` to `pct` diff --git a/config/descriptions.yaml b/config/descriptions.yaml index 9e7d026bf77..92666573e64 100644 --- a/config/descriptions.yaml +++ b/config/descriptions.yaml @@ -65,6 +65,7 @@ sandy: 'A FreeSewing pattern for a circle skirt' shin: 'A FreeSewing pattern for swim trunks' simon: 'A FreeSewing pattern for a button down shirt' simone: 'A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)' +snapseries: 'A FreeSewing package for common values for snapped percentage options' strapi: "Freesewing's Strapi instance" sven: 'A FreeSewing pattern for a straightforward sweater' tamiko: 'A FreeSewing pattern for a zero-waste top' diff --git a/config/exceptions.yaml b/config/exceptions.yaml index b17b296683a..f72f3051b0b 100644 --- a/config/exceptions.yaml +++ b/config/exceptions.yaml @@ -19,6 +19,7 @@ namedExports: - models - pattern-info - mui-theme + - snapseries packageJson: benjamin: author: woutervdub (https://github.com/woutervdub) diff --git a/packages/snapseries/CHANGELOG.md b/packages/snapseries/CHANGELOG.md new file mode 100644 index 00000000000..58f45b77271 --- /dev/null +++ b/packages/snapseries/CHANGELOG.md @@ -0,0 +1,15 @@ +# Change log for: @freesewing/snapseries + + +## unreleased (NaN-NaN-NaN) + +### Added + + - Initial release of `@freesewing/snapseries` wich holds commonly used series of snap values for percentage options + + +This is the **initial release**, and the start of this change log. + +> Prior to version 2, FreeSewing was not a JavaScript project. +> As such, that history is out of scope for this change log. + diff --git a/packages/snapseries/README.md b/packages/snapseries/README.md new file mode 100644 index 00000000000..02ba26079de --- /dev/null +++ b/packages/snapseries/README.md @@ -0,0 +1,118 @@ +![FreeSewing](https://static.freesewing.org/banner.png) +

@freesewing/snapseries on NPM + License: MIT + Code quality on DeepScan + Open issues tagged pkg:snapseries + Project board +

Follow @freesewing_org on Twitter + Chat with us on Discord + Become a FreeSewing Patron + Follow @freesewing_org on Twitter +

+ +# @freesewing/snapseries + +A FreeSewing package for common values for snapped percentage options + + + +## What am I looking at? 🤔 + +This repository is our *monorepo* +holding [all our NPM packages](https://freesewing.dev/reference/packages/). + +This folder holds: @freesewing/snapseries + +## About FreeSewing 💀 + +Where the world of makers and developers collide, that's where you'll find FreeSewing. + +If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate +our sewing patterns adapted to your measurements. + +If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). +Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox +for parametric design of sewing patterns. But we also provide a range +of [plugins](https://freesewing.dev/reference/plugins/) that further extend the +functionality of the platform. + +If you have NodeJS installed, you can try it right now by running: + +```bash +npx create-freesewing-pattern +``` + +Or, consult our getting started guides +for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), +[MacOS](https://freesewing.dev/tutorials/getting-started-mac/), +or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). + +We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that +walks you through your first parametric design, +and [a friendly community](https://freesewing.org/community/where/) with +people who can help you when you get stuck. + +## Support FreeSewing: Become a patron 🥰 + +FreeSewing is an open source project run by a community, +and financially supported by our patrons. + +If you feel what we do is worthwhile, and you can spend a few coind without +hardship, then you should [join us and become a patron](https://freesewing.org/community/join). + +## Links 👩‍💻 + + - 💻 Makers website: [freesewing.org](https://freesewing.org) + - 💻 Developers website: [freesewing.dev](https://freesewing.dev) + - 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) + - ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) + - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) + - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) + +## License: MIT 🤓 + +© [Joost De Cock](https://github.com/joostdecock). +See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details. + +## Where to get help 🤯 + +Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions, +share your feedback, or just hang out. + +If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new). diff --git a/packages/snapseries/package.json b/packages/snapseries/package.json new file mode 100644 index 00000000000..004187360ad --- /dev/null +++ b/packages/snapseries/package.json @@ -0,0 +1,55 @@ +{ + "name": "@freesewing/snapseries", + "version": "2.18.0", + "description": "A FreeSewing package for common values for snapped percentage options", + "author": "Joost De Cock (https://github.com/joostdecock)", + "homepage": "https://freesewing.org/", + "repository": "github:freesewing/freesewing", + "license": "MIT", + "bugs": { + "url": "https://github.com/freesewing/freesewing/issues" + }, + "funding": { + "type": "individual", + "url": "https://freesewing.org/patrons/join" + }, + "keywords": [ + "freesewing", + "design", + "diy", + "fashion", + "made to measure", + "parametric design", + "sewing" + ], + "main": "dist/index.js", + "module": "dist/index.mjs", + "scripts": { + "clean": "rimraf dist", + "build": "rollup -c", + "test": "echo \"snapseries: No tests configured. Perhaps you'd like to do this?\" && exit 0", + "pubtest": "npm publish --registry http://localhost:6662", + "pubforce": "npm publish", + "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", + "start": "rollup -c -w" + }, + "peerDependencies": {}, + "dependencies": {}, + "devDependencies": {}, + "files": [ + "dist/*", + "README.md", + "package.json" + ], + "publishConfig": { + "access": "public", + "tag": "latest" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6" + }, + "rollup": { + "exports": "named" + } +} diff --git a/packages/snapseries/rollup.config.js b/packages/snapseries/rollup.config.js new file mode 100644 index 00000000000..83bc5ef0eec --- /dev/null +++ b/packages/snapseries/rollup.config.js @@ -0,0 +1,29 @@ +import resolve from '@rollup/plugin-node-resolve' +import commonjs from '@rollup/plugin-commonjs' +import json from '@rollup/plugin-json' +import peerDepsExternal from 'rollup-plugin-peer-deps-external' +import { name, version, description, author, license, main, module, rollup } from './package.json' + +const banner = `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */` +const output = [ + { + banner, + file: main, + format: 'cjs', + sourcemap: true, + exports: rollup.exports, + }, +] +if (typeof module !== 'undefined') + output.push({ + banner, + file: module, + format: 'es', + sourcemap: true, + }) + +export default { + input: 'src/index.js', + output, + plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()], +} diff --git a/packages/snapseries/src/index.js b/packages/snapseries/src/index.js new file mode 100644 index 00000000000..e353d7005b2 --- /dev/null +++ b/packages/snapseries/src/index.js @@ -0,0 +1,5 @@ +// Common width for elastics +export const elastics = { + metric: [3.5, 5, 10, 12, 20, 25, 30, 40, 50, 60, 80, 100, 120], + imperial: [3.175, 6.35, 9.525, 12.7, 15.24, 19.05, 25.4, 30.48, 50.8, 76.2, 88.9, 101.6, 127], +}