1
0
Fork 0

Merge branch 'develop' into charlie

This commit is contained in:
Joost De Cock 2021-03-09 17:43:06 +01:00
commit 42e825c8e3
587 changed files with 10563 additions and 3575 deletions

View file

@ -11,6 +11,6 @@ assignees: ''
- Permission: - Permission:
- [ ] I am the original author, and hereby grant permission to repost this content - [ ] I am the original author, and hereby grant permission to repost this content
- [ ] I am not the original author, please ask permission from them - [ ] I am not the original author, please ask permission from them
- Username: Please enter the FreeSewing username of the orignal author (if you know it) - Credit: Please enter the FreeSewing, Instagram, Twitter, or other username of the original author (if you know it and they want to be credited)
Looking to tackle this issue? We have [a how-to that shows how to add a showcase to the site]( https://freesewing.dev/editors/showcase/). Looking to tackle this issue? We have [a how-to that shows how to add a showcase to the site](https://freesewing.dev/editors/howtos/showcase/).

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/aaron && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/aaron && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/albert && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/albert && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/bella && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/bella && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/benjamin && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/benjamin && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/bent && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/bent && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/breanna && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/breanna && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/brian && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/brian && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/bruce && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/bruce && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/carlita && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/bent@^2.12.1 @freesewing/carlton@^2.12.1 @freesewing/plugin-bust@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/carlita && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/bent@^2.14.0 @freesewing/carlton@^2.14.0 @freesewing/plugin-bust@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/carlton && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/bent@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/carlton && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/bent@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/cathrin && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/cathrin && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

32
.github/workflows/tests.cornelius.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Unit tests - Cornelius
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: cd packages/cornelius && npm install
env:
CI: true
- name: Install peer & test dependencies
run: "cd packages/cornelius && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env:
CI: true
- name: Build pattern
run: cd packages/cornelius && npm run build
- name: Run pattern unit tests
run: cd packages/cornelius && npm run testci

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/diana && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/diana && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/examples && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/examples && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/florence && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/florence && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/florent && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/florent && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/holmes && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/plugin-bust@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/holmes && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/plugin-bust@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/hortensia && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/hortensia && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/huey && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/huey && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/hugo && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/hugo && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/jaeger && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/bent@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/jaeger && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/bent@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/legend && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/legend && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/paco && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/titan@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/paco && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/titan@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/penelope && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/penelope && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/rendertest && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/rendertest && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/sandy && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/sandy && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/shin && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/shin && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/simon && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/plugin-flip@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/simon && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/plugin-flip@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/simone && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/simon@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/plugin-flip@^2.12.1 @freesewing/plugin-bust@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/simone && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/simon@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/plugin-flip@^2.14.0 @freesewing/plugin-bust@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/sven && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/sven && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/tamiko && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/tamiko && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/teagan && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/plugin-bust@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/teagan && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/plugin-bust@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/theo && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/theo && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/titan && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/titan && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/trayvon && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/trayvon && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/tutorial && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/tutorial && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/wahid && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/brian@^2.12.1 @freesewing/plugin-buttons@^2.12.1 @freesewing/plugin-round@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/wahid && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/brian@^2.14.0 @freesewing/plugin-buttons@^2.14.0 @freesewing/plugin-round@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -23,7 +23,7 @@ jobs:
env: env:
CI: true CI: true
- name: Install peer & test dependencies - name: Install peer & test dependencies
run: "cd packages/waralee && npm install @freesewing/core@^2.12.1 @freesewing/plugin-bundle@^2.12.1 @freesewing/models@2.12.1 @freesewing/pattern-info@2.12.1 mocha chai" run: "cd packages/waralee && npm install @freesewing/core@^2.14.0 @freesewing/plugin-bundle@^2.14.0 @freesewing/models@2.14.0 @freesewing/pattern-info@2.14.0 mocha chai"
env: env:
CI: true CI: true
- name: Build pattern - name: Build pattern

View file

@ -1,6 +1,175 @@
# Change log for: FreeSewing (global) # Change log for: FreeSewing (global)
## 2.14.0 (2021-03-07)
### components
#### Added
- Added Bella linedrawing
- Added Cornelius linedrawing
### cornelius
#### Added
- Cornelius is a FreeSewing pattern for cycling breeches
### hugo
#### Fixed
- Replaced grainline indicator on pocket with cut-on-fold indicator
### i18n
#### Added
- Added translations for Cornelius
## 2.13.2 (2021-02-21)
### bella
#### Fixed
- Fixed issue with out-of-order execution
### create-freesewing-pattern
#### Fixed
- Updated chat link from gitter to discord
### paco
#### Fixed
- Only add paperless dimensions for pockets if we drafted pockets
### pattern-info
#### Fixed
- Make pattern list alphabetic
### penelope
#### Fixed
- Fixed issue in shape part
### simone
#### Fixed
- Fixed type in bustsidecode finder code
### titan
#### Fixed
- Always ensure point waistIn is created in back part
## 2.13.1 (2021-02-14)
### hortensia
#### Fixed
- Fix incorrectly named part
### simon
#### Fixed
- Added missing sleeve notch on yoke
### utils
#### Added
- Pass pattern handle to tiler
## 2.13.0 (2021-02-13)
### bella
#### Fixed
- Verify whether back dart passes armhole depth
### breanna
#### Fixed
- Try harder to find the intersection point for the scyedart
- Define missing y variable in paperless branch
### bruce
#### Fixed
- Added notches to facilitate seam matching
### components
#### Added
- Linedrawing for hortensia
#### Fixed
- Check point attributes are present before using them
### hortensia
#### Added
- Initial release of Hortensia, a handbag pattern
### hugo
#### Fixed
- Fix style of the seam allowance paths
- Fix sleeve dependencies
### i18n
#### Added
- Translation for Hortensia
### simone
#### Fixed
- Force bust dart intersection if not found initially
### theo
#### Fixed
- Check for intersection returning an array
### titan
#### Fixed
- Always balance the waist
### wahid
#### Fixed
- Make sure roudEnd and roundStart points are always available
## 2.12.1 (2021-01-27) ## 2.12.1 (2021-01-27)
### create-freesewing-pattern ### create-freesewing-pattern

View file

@ -1,24 +1,18 @@
##### Next contributor call: Saturday 23 January ##### Next contributor call: Saturday 6 March
Note that the next contributor call is on Saturday the 23rd of January. Note that the next contributor call is on Saturday the 6th of March.
For details and timing (including different time zones) For details and timing (including different time zones)
check [issue #744](https://github.com/freesewing/freesewing/issues/774). check [issue #878](https://github.com/freesewing/freesewing/issues/878).
##### New FreeSewing sub-Reddit and Facebook group ##### Project board: Our overall todo list
Some news from the communtity team: Did you know we have a project board that list all of our issues?
It's a great place to see what we're working on, or what you could help with.
- Redittors: Head over to [r/freesewing](redditors) for a subreddit by the FreeSewing community. Go to [todo.freesewing.org](https://todo.freesewing.org/) to get there.
- Facebook people: This [FreeSewing Facebook group](https://www.facebook.com/groups/627769821272714/) is for you.
Less new but still relevant: We're also on
[Discord](https://discord.freesewing.org),
[Instagram](https://instagram.com/freesewing_org),
[Twitter](https://twitter.com/freesewing_org),
and [Github](https://github.com/freesewing),
but you knew that, right?
##### Updated developer documentation ##### Updated developer documentation
@ -29,18 +23,3 @@ on [freesewing.org](https://freesewing.org/), our website for makers.
If you find anything lacking or broken, please don't hesitate If you find anything lacking or broken, please don't hesitate
to [create an issue](https://github.com/freesewing/freesewing/issues/new). to [create an issue](https://github.com/freesewing/freesewing/issues/new).
##### Contributor calls
Recently, we started organizing contributor calls.
Anybody with an interest in FreeSewing is welcome to join.
All calls can be joined via [meet.freesewing.org](https://meet.freesewing.org/).
Notes and todos are [available on Github](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Afscc).
##### Weve moved to Discord
Weve moved our chat rooms from to Discord.
Our legacy chat on Gitter is deprecated.
You can join us at [discord.freesewing.org](https://discord.freesewing.org)

View file

@ -1,3 +1,20 @@
##### Subscribe to our newsletter (yes, we have one now)
We have decided to start a newsletter, so you should subscribe to it.
- If you have an account on the site, head over to [/account/settings/newsletter](https://freesewing.org/account/settings/newsletter/).
- If not, you can still subscribe at [/community/newsletter/](https://freesewing.org/community/newsletter/).
##### Next contributor call on 20 March
The next contributor call is on [20 March 2021](https://github.com/freesewing/freesewing/issues/912).
All calls can be joined via [meet.freesewing.org](https://meet.freesewing.org/).
Notes and todos are [available on Github](https://todo.freesewing.org/).
##### COVID-19 face mask pattern ##### COVID-19 face mask pattern
Keep those mask on people, and make sure to make your own so we can Keep those mask on people, and make sure to make your own so we can
@ -9,27 +26,3 @@ Our [face mask pattern](/blog/facemask-frenzy) is recommended by
[Make Magazine](https://makezine.com/projects/sew-your-own-face-mask-from-scratch/), [Make Magazine](https://makezine.com/projects/sew-your-own-face-mask-from-scratch/),
and countless of others. and countless of others.
##### New FreeSewing sub-Reddit and Facebook group
Some news from the communtity team:
- Redittors: Head over to [r/freesewing](redditors) for a subreddit by the FreeSewing community.
- Facebook people: This [FreeSewing Facebook group](https://www.facebook.com/groups/627769821272714/) is for you.
Less new but still relevant: We're also on
[Discord](https://discord.freesewing.org),
[Instagram](https://instagram.com/freesewing_org),
[Twitter](https://twitter.com/freesewing_org),
and [Github](https://github.com/freesewing),
but you knew that, right?
##### No contributor call until 2021
The contributor call of 26 December is cancelled because of the holiday season.
The next contributor call is on 9 January 2021
All calls can be joined via [meet.freesewing.org](https://meet.freesewing.org/).
Notes and todos are [available on Github](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Afscc).

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/core" href="https://www.npmjs.com/package/@freesewing/core"
title="@freesewing/core on NPM" title="@freesewing/core on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:aaron" title="Open issues tagged pkg:aaron"
><img src="https://img.shields.io/github/issues/freesewing/freesewing.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing.svg?label=Issues"
alt="Open issues"/> alt="Open issues"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Todo list/board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -43,7 +48,7 @@
## What am I looking at? 🤔 ## What am I looking at? 🤔
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing). This repository is our *monorepo* holding [all our NPM packages](https://freesewing.dev/reference/packages/).
## Getting started ⚡ ## Getting started ⚡
@ -60,36 +65,45 @@ yarn kickstart
Where the world of makers and developers collide, that's where you'll find FreeSewing. Where the world of makers and developers collide, that's where you'll find FreeSewing.
Our [core library](https://freesewing.dev/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list
of [plugins](https://freesewing.dev/plugins) and getting started is as simple as:
```bash
npm init freesewing-pattern
```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good
entrypoint to our documentation, but you'll find a lot more there, including
our [API reference](https://freesewing.dev/reference/),
as well as [our tutorial](https://freesewing.dev/tutorials/pattern-design/),
and [best practices](https://freesewing.dev/guides/best-practices/).
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.org) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
@ -100,7 +114,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯 ## Where to get help 🤯
Our [chatrooms on Discord](https://chat.freesewing.org) are the best place to ask questions, Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out. 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). If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).

View file

@ -15,6 +15,10 @@ _all:
link: 'https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3A{{name}}' link: 'https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3A{{name}}'
img: 'https://img.shields.io/github/issues/freesewing/freesewing/pkg:{{name}}.svg?label=Issues' img: 'https://img.shields.io/github/issues/freesewing/freesewing/pkg:{{name}}.svg?label=Issues'
alt: 'Open issues tagged pkg:{{name}}' alt: 'Open issues tagged pkg:{{name}}'
todo:
link: 'https://todo.freesewing.org/'
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15'
alt: 'Project board'
_social: _social:
twitter: twitter:
link: 'https://twitter.com/freesewing_org' link: 'https://twitter.com/freesewing_org'

View file

@ -1,3 +1,83 @@
2.14.0:
date: 2021-03-07
Added:
cornelius:
- Cornelius is a FreeSewing pattern for cycling breeches
components:
- Added Bella linedrawing
- Added Cornelius linedrawing
i18n:
- Added translations for Cornelius
Fixed:
hugo:
- Replaced grainline indicator on pocket with cut-on-fold indicator
2.13.2:
date: 2021-02-21
Fixed:
bella:
- Fixed issue with out-of-order execution
create-freesewing-pattern:
- Updated chat link from gitter to discord
paco:
- Only add paperless dimensions for pockets if we drafted pockets
pattern-info:
- Make pattern list alphabetic
penelope:
- Fixed issue in shape part
simone:
- Fixed type in bustsidecode finder code
titan:
- Always ensure point waistIn is created in back part
2.13.1:
date: 2021-02-14
Added:
utils:
- Pass pattern handle to tiler
Fixed:
hortensia:
- Fix incorrectly named part
simon:
- Added missing sleeve notch on yoke
2.13.0:
date: 2021-02-13
Added:
components:
- Linedrawing for hortensia
hortensia:
- Initial release of Hortensia, a handbag pattern
i18n:
- Translation for Hortensia
Fixed:
bella:
- Verify whether back dart passes armhole depth
breanna:
- Try harder to find the intersection point for the scyedart
- Define missing y variable in paperless branch
bruce:
- Added notches to facilitate seam matching
components:
- Check point attributes are present before using them
hugo:
- Fix style of the seam allowance paths
- Fix sleeve dependencies
simone:
- Force bust dart intersection if not found initially
theo:
- Check for intersection returning an array
titan:
- Always balance the waist
wahid:
- Make sure roudEnd and roundStart points are always available
2.12.1: 2.12.1:
date: 2021-01-27 date: 2021-01-27
Added: Added:

View file

@ -1,24 +1,24 @@
_types: _types:
pattern: pattern:
peer: peer:
'@freesewing/core': '^{{version}}' '@freesewing/core': &freesewing '^{{version}}'
'@freesewing/plugin-bundle': '^{{version}}' '@freesewing/plugin-bundle': *freesewing
dev: dev:
'react': '^16.13.1' 'react': &react '^16.13.1'
'react-dom': '^16.13.1' 'react-dom': &react-dom '^16.13.1'
'@babel/plugin-proposal-class-properties': '^7.10.4' '@babel/plugin-proposal-class-properties': '^7.10.4'
'babel-eslint': '^10.1.0' 'babel-eslint': '^10.1.0'
'eslint': '^7.6.0' 'eslint': '^7.6.0'
'babel-jest': '^26.2.2' 'babel-jest': '^26.2.2'
'jest': '26.2.2' 'jest': '26.2.2'
'@freesewing/components': '^{{version}}' '@freesewing/components': *freesewing
'@freesewing/css-theme': '^{{version}}' '@freesewing/css-theme': *freesewing
'@freesewing/i18n': '^{{version}}' '@freesewing/i18n': *freesewing
'@freesewing/mui-theme': '^{{version}}' '@freesewing/mui-theme': *freesewing
'@freesewing/plugin-bust': '^{{version}}' '@freesewing/plugin-bust': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
'@freesewing/plugin-flip': '^{{version}}' '@freesewing/plugin-flip': *freesewing
'@freesewing/utils': '^{{version}}' '@freesewing/utils': *freesewing
'@svgr/rollup': '^2.4.1' '@svgr/rollup': '^2.4.1'
'cross-env': '^7.0.2' 'cross-env': '^7.0.2'
'react-scripts': '^3.4.1' 'react-scripts': '^3.4.1'
@ -30,11 +30,11 @@ _types:
'@rollup/plugin-json': '^4.1.0' '@rollup/plugin-json': '^4.1.0'
'@rollup/plugin-node-resolve': '^8.4.0' '@rollup/plugin-node-resolve': '^8.4.0'
'rollup-plugin-peer-deps-external': '^2.2.3' 'rollup-plugin-peer-deps-external': '^2.2.3'
'@material-ui/core': '^4.11.0' '@material-ui/core': &matui-core '^4.11.0'
'@material-ui/icons': '4.9.1' '@material-ui/icons': &matui-icons '4.9.1'
'@material-ui/lab': '^v4.0.0-alpha.56' '@material-ui/lab': &matui-lab '^v4.0.0-alpha.56'
'axios': '0.21.1' 'axios': &axios '0.21.1'
'react-intl': '^5.4.5' 'react-intl': &react-intl '^5.4.5'
'prop-types': '^15.7.2' 'prop-types': '^15.7.2'
'mocha': '^8.1.0' 'mocha': '^8.1.0'
'chai': '^4.2.0' 'chai': '^4.2.0'
@ -42,63 +42,63 @@ _types:
'@babel/register': '^7.10.5' '@babel/register': '^7.10.5'
plugin: plugin:
peer: peer:
'@freesewing/core': '^{{version}}' '@freesewing/core': *freesewing
aaron: aaron:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
bent: bent:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
breanna: breanna:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
carlita: carlita:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/bent': '^{{version}}' '@freesewing/bent': *freesewing
'@freesewing/carlton': '^{{version}}' '@freesewing/carlton': *freesewing
'@freesewing/plugin-bust': '^{{version}}' '@freesewing/plugin-bust': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
carlton: carlton:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/bent': '^{{version}}' '@freesewing/bent': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
css-theme: css-theme:
_: _:
'open-color': '^1.7.0' 'open-color': '^1.7.0'
"@fontsource/permanent-marker": "^4.1.0" '@fontsource/permanent-marker': &permanent-marker 'latest'
"@fontsource/roboto-mono": "^4.1.0" '@fontsource/roboto-mono': &roboto-mono 'latest'
"@fontsource/ubuntu": "^4.1.0" '@fontsource/ubuntu': &ubuntu 'latest'
components: components:
peer: peer:
'axios': '^0.21.1' 'axios': *axios
'react': '^17.0.1' 'react': *react
'@freesewing/pattern-info': '^{{version}}' '@freesewing/pattern-info': *freesewing
'@freesewing/mui-theme': '^{{version}}' '@freesewing/mui-theme': *freesewing
'@freesewing/css-theme': '^{{version}}' '@freesewing/css-theme': *freesewing
'@freesewing/plugin-theme': '^{{version}}' '@freesewing/plugin-theme': *freesewing
'@freesewing/core': '^{{version}}' '@freesewing/core': *freesewing
'@freesewing/models': '^{{version}}' '@freesewing/models': *freesewing
'@freesewing/examples': '^{{version}}' '@freesewing/examples': *freesewing
'@freesewing/rendertest': '^{{version}}' '@freesewing/rendertest': *freesewing
'@freesewing/tutorial': '^{{version}}' '@freesewing/tutorial': *freesewing
"@fontsource/permanent-marker": "latest" '@fontsource/permanent-marker': *permanent-marker
"@fontsource/roboto-mono": "latest" '@fontsource/roboto-mono': *roboto-mono
"@fontsource/ubuntu": "latest" '@fontsource/ubuntu': *ubuntu
'@freesewing/i18n': '^{{version}}' '@freesewing/i18n': *freesewing
'@freesewing/utils': '^{{version}}' '@freesewing/utils': *freesewing
'react-intl': '^5.10.9' 'react-intl': *react-intl
'@material-ui/core': '^4.11.2' '@material-ui/core': *matui-core
'@material-ui/icons': '4.11.2' '@material-ui/icons': *matui-icons
'@material-ui/lab': '^v4.0.0-alpha.57' '@material-ui/lab': *matui-lab
'prismjs': '^1.22.0' 'prismjs': '^1.22.0'
'react-markdown': '^5.0.3' 'react-markdown': '^5.0.3'
'file-saver': '^2.0.5' 'file-saver': '^2.0.5'
'yaml': '^1.10.0' 'yaml': '^1.10.0'
core: core:
_: _:
'bezier-js': '^3.0.1' 'bezier-js': '^4.0.3'
'bin-pack': '^1.0.2' 'bin-pack': '^1.0.2'
'hooks': '^0.3.2' 'hooks': '^0.3.2'
create-freesewing-pattern: create-freesewing-pattern:
@ -109,68 +109,68 @@ create-freesewing-pattern:
'cp-file': '^9.0.0' 'cp-file': '^9.0.0'
'execa': '^4.0.3' 'execa': '^4.0.3'
'git-config-path': '^2.0.0' 'git-config-path': '^2.0.0'
'github-username': '^5.0.1' 'github-username': '^6.0.0'
'globby': '^11.0.1' 'globby': '^11.0.1'
'handlebars': '^4.7.6' 'handlebars': '^4.7.6'
'inquirer': '^7.3.3' 'inquirer': '^7.3.3'
'make-dir': '^3.1.0' 'make-dir': '^3.1.0'
'normalize-path': '^3.0.0' 'normalize-path': '^3.0.0'
'ora': '^4.0.5' 'ora': '^5.3.0'
'p-each-series': '^2.1.0' 'p-each-series': '^2.1.0'
'parse-git-config': '^3.0.0' 'parse-git-config': '^3.0.0'
'validate-npm-package-name': '^3.0.0' 'validate-npm-package-name': '^3.0.0'
'which': '^2.0.2' 'which': '^2.0.2'
'@freesewing/i18n': '^{{version}}' '@freesewing/i18n': *freesewing
'@freesewing/pattern-info': '^{{version}}' '@freesewing/pattern-info': *freesewing
diana: diana:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
gatsby-remark-jargon: gatsby-remark-jargon:
_: _:
'remark-jargon': '^{{version}}' 'remark-jargon': *freesewing
holmes: holmes:
_: _:
'@freesewing/plugin-gore': '^{{version}}' '@freesewing/plugin-gore': *freesewing
peer: peer:
'@freesewing/plugin-bust': '^{{version}}' '@freesewing/plugin-bust': *freesewing
huey: huey:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
hugo: hugo:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
i18n: i18n:
peer: peer:
'@freesewing/pattern-info': '^{{version}}' '@freesewing/pattern-info': *freesewing
jaeger: jaeger:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/bent': '^{{version}}' '@freesewing/bent': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
models: models:
peer: peer:
'@freesewing/utils': '^{{version}}' '@freesewing/utils': *freesewing
mui-theme: mui-theme:
peer: peer:
'@material-ui/core': '^4.11.0' '@material-ui/core': *matui-core
'react': '^16.13.1' 'react': *react
'react-dom': '^16.13.1' 'react-dom': *react-dom
legend: legend:
peer: peer:
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
paco: paco:
peer: peer:
'@freesewing/titan': '^{{version}}' '@freesewing/titan': *freesewing
plugin-bundle: plugin-bundle:
_: _:
'@freesewing/plugin-cutonfold': '^{{version}}' '@freesewing/plugin-cutonfold': *freesewing
'@freesewing/plugin-dimension': '^{{version}}' '@freesewing/plugin-dimension': *freesewing
'@freesewing/plugin-grainline': '^{{version}}' '@freesewing/plugin-grainline': *freesewing
'@freesewing/plugin-logo': '^{{version}}' '@freesewing/plugin-logo': *freesewing
'@freesewing/plugin-title': '^{{version}}' '@freesewing/plugin-title': *freesewing
'@freesewing/plugin-scalebox': '^{{version}}' '@freesewing/plugin-scalebox': *freesewing
'@freesewing/plugin-round': '^{{version}}' '@freesewing/plugin-round': *freesewing
'@freesewing/plugin-sprinkle': '^{{version}}' '@freesewing/plugin-sprinkle': *freesewing
remark-jargon: remark-jargon:
_: _:
'unist-util-visit': '^2.0.3' 'unist-util-visit': '^2.0.3'
@ -179,29 +179,29 @@ remark-jargon:
'remark-html': '^12.0.0' 'remark-html': '^12.0.0'
simon: simon:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
'@freesewing/plugin-flip': '^{{version}}' '@freesewing/plugin-flip': *freesewing
simone: simone:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/simon': '^{{version}}' '@freesewing/simon': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
'@freesewing/plugin-flip': '^{{version}}' '@freesewing/plugin-flip': *freesewing
'@freesewing/plugin-bust': '^{{version}}' '@freesewing/plugin-bust': *freesewing
sven: sven:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
teagan: teagan:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/plugin-bust': '^{{version}}' '@freesewing/plugin-bust': *freesewing
utils: utils:
peer: peer:
'tlds': '^1.207.0' 'tlds': '^1.207.0'
'axios': '^0.19.2' 'axios': *axios
wahid: wahid:
peer: peer:
'@freesewing/brian': '^{{version}}' '@freesewing/brian': *freesewing
'@freesewing/plugin-buttons': '^{{version}}' '@freesewing/plugin-buttons': *freesewing
'@freesewing/plugin-round': '^{{version}}' '@freesewing/plugin-round': *freesewing

View file

@ -12,6 +12,7 @@ cathrin: 'A FreeSewing pattern for a underbust corset / waist trainer'
charlie: 'A FreeSewing pattern for chino trousers' charlie: 'A FreeSewing pattern for chino trousers'
components: 'A collection of React components for FreeSewing web UIs' components: 'A collection of React components for FreeSewing web UIs'
core: 'A library for creating made-to-measure sewing patterns' core: 'A library for creating made-to-measure sewing patterns'
cornelius: 'A FreeSewing pattern for cycling breeches, based on the Keystone drafting system'
create-freesewing-pattern: 'Initializer package for FreeSewing patterns: npm init FreeSewing-pattern' create-freesewing-pattern: 'Initializer package for FreeSewing patterns: npm init FreeSewing-pattern'
css-theme: 'A CSS theme for FreeSewing web UIs' css-theme: 'A CSS theme for FreeSewing web UIs'
diana: 'A FreeSewing pattern for a top with a draped neck' diana: 'A FreeSewing pattern for a top with a draped neck'

View file

@ -1,49 +1,62 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
{{{badges}}} {{{badges}}}
## What am I looking at? 🤔 # {{{fullname}}}
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **{{{fullname}}}**
{{description}} {{description}}
{{{info}}} {{{info}}}
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: {{{fullname}}}
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -1,23 +1,16 @@
{ {
"version": "2.12.1", "version": "2.14.0",
"npmClient": "yarn", "npmClient": "yarn",
"command": { "command": {
"publish": { "publish": {
"ignoreChanges": [ "ignoreChanges": ["ignored-file", "*.md"],
"ignored-file",
"*.md"
],
"message": "release: Publish %s" "message": "release: Publish %s"
}, },
"bootstrap": { "bootstrap": {
"ignore": "component-*", "ignore": "component-*",
"npmClientArgs": [ "npmClientArgs": ["--no-package-lock"]
"--no-package-lock"
]
} }
}, },
"packages": [ "packages": ["packages/*"],
"packages/*"
],
"useWorkspaces": true "useWorkspaces": true
} }

View file

@ -20,7 +20,7 @@
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"jsonlint": "yarn --silent jsonlint:files | xargs -n1 jsonlint -q -c && echo \"jsonlint: no lint errors\"", "jsonlint": "yarn --silent jsonlint:files | xargs -n1 jsonlint -q -c && echo \"jsonlint: no lint errors\"",
"jsonlint:files": "find . -name \"*.json\" | grep -v -f .eslintignore", "jsonlint:files": "find . -name \"*.json\" | grep -v -f .eslintignore",
"prettier": "npx prettier --write 'packages/**/src/*.js'", "prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*'",
"reconfigure": "npx babel-node scripts/reconfigure.js", "reconfigure": "npx babel-node scripts/reconfigure.js",
"dxf": "npx babel-node scripts/export-dxf.js", "dxf": "npx babel-node scripts/export-dxf.js",
"prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && lerna run build", "prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && lerna run build",
@ -63,7 +63,7 @@
"ava": "^3.11.0", "ava": "^3.11.0",
"axios": "0.21.1", "axios": "0.21.1",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"bezier-js": "^3.0.1", "bezier-js": "^4.0.3",
"chai": "^4.2.0", "chai": "^4.2.0",
"chai-string": "^1.5.0", "chai-string": "^1.5.0",
"chalk": "^4.1.0", "chalk": "^4.1.0",
@ -71,7 +71,7 @@
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"deep-freeze": "^0.0.1", "deep-freeze": "^0.0.1",
"eslint": "^7.6.0", "eslint": "^7.6.0",
"eslint-config-prettier": "^6.11.0", "eslint-config-prettier": "^7.2.0",
"eslint-config-standard": "^15.0.1", "eslint-config-standard": "^15.0.1",
"eslint-config-standard-react": "^10.0.0", "eslint-config-standard-react": "^10.0.0",
"eslint-plugin-import": "^2.22.0", "eslint-plugin-import": "^2.22.0",
@ -79,17 +79,17 @@
"eslint-plugin-prettier": "^3.1.4", "eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-promise": "^4.0.0", "eslint-plugin-promise": "^4.0.0",
"eslint-plugin-react": "^7.20.5", "eslint-plugin-react": "^7.20.5",
"eslint-plugin-standard": "^4.0.1", "eslint-plugin-standard": "^5.0.0",
"esm": "^3.2.25", "esm": "^3.2.25",
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"fs-extra": "^9.0.1", "fs-extra": "^9.0.1",
"husky": "^4.2.5", "husky": "^4.2.5",
"js-yaml": "^3.14.0", "js-yaml": "^4.0.0",
"jsonlint": "^1.6.3", "jsonlint": "^1.6.3",
"lerna": "^3.22.1", "lerna": "^3.22.1",
"mocha": "^8.1.0", "mocha": "^8.1.0",
"mustache": "^4.0.1", "mustache": "^4.0.1",
"node-sass": "^4.14.1", "node-sass": "^5.0.0",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"open-color": "^1.7.0", "open-color": "^1.7.0",
"prettier": "^2.0.5", "prettier": "^2.0.5",
@ -109,7 +109,7 @@
"rollup-plugin-sass": "^1.2.2", "rollup-plugin-sass": "^1.2.2",
"rollup-plugin-terser": "^7.0.0", "rollup-plugin-terser": "^7.0.0",
"rollup-plugin-yaml": "^2.0.0", "rollup-plugin-yaml": "^2.0.0",
"standard": "^15.0.0", "standard": "^16.0.3",
"tlds": "^1.207.0", "tlds": "^1.207.0",
"typeface-raleway": "^1.1.13", "typeface-raleway": "^1.1.13",
"typeface-roboto-condensed": "^1.1.13", "typeface-roboto-condensed": "^1.1.13",

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/aaron" href="https://www.npmjs.com/package/@freesewing/aaron"
title="@freesewing/aaron on NPM" title="@freesewing/aaron on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:aaron" title="Open issues tagged pkg:aaron"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:aaron.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:aaron.svg?label=Issues"
alt="Open issues tagged pkg:aaron"/> alt="Open issues tagged pkg:aaron"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/aaron
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/aaron**
A FreeSewing pattern for a A-shirt or tank top A FreeSewing pattern for a A-shirt or tank top
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/aaron
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/aaron", "name": "@freesewing/aaron",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a A-shirt or tank top", "description": "A FreeSewing pattern for a A-shirt or tank top",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,9 +34,9 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1", "@freesewing/plugin-bundle": "^2.14.0",
"@freesewing/brian": "^2.12.1" "@freesewing/brian": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -47,14 +47,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -14,7 +14,7 @@ Pattern.prototype.draftBase = function(part) {
// Getting the base part from Brian // Getting the base part from Brian
return new Brian(this.settings).draftBase(part) return new Brian(this.settings).draftBase(part)
} }
Pattern.prototype.draftFront = part => draftFront(part) Pattern.prototype.draftFront = (part) => draftFront(part)
Pattern.prototype.draftBack = part => draftBack(part) Pattern.prototype.draftBack = (part) => draftBack(part)
export default Pattern export default Pattern

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/albert" href="https://www.npmjs.com/package/@freesewing/albert"
title="@freesewing/albert on NPM" title="@freesewing/albert on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:albert" title="Open issues tagged pkg:albert"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:albert.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:albert.svg?label=Issues"
alt="Open issues tagged pkg:albert"/> alt="Open issues tagged pkg:albert"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/albert
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/albert**
A FreeSewing pattern for an apron A FreeSewing pattern for an apron
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/albert
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/albert", "name": "@freesewing/albert",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for an apron", "description": "A FreeSewing pattern for an apron",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,8 +34,8 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1" "@freesewing/plugin-bundle": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -46,14 +46,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -1,6 +1,18 @@
# Change log for: @freesewing/bella # Change log for: @freesewing/bella
## 2.13.2 (2021-02-21)
### Fixed
- Fixed issue with out-of-order execution
## 2.13.0 (2021-02-13)
### Fixed
- Verify whether back dart passes armhole depth
## 2.12.0 (2021-01-19) ## 2.12.0 (2021-01-19)
### Added ### Added

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/bella" href="https://www.npmjs.com/package/@freesewing/bella"
title="@freesewing/bella on NPM" title="@freesewing/bella on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:bella" title="Open issues tagged pkg:bella"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bella.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bella.svg?label=Issues"
alt="Open issues tagged pkg:bella"/> alt="Open issues tagged pkg:bella"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/bella
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/bella**
A FreeSewing pattern for a womenswear bodice block A FreeSewing pattern for a womenswear bodice block
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/bella
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -10,30 +10,16 @@ export default {
difficulty: 3, difficulty: 3,
tags: ['block', 'top', 'basics'], tags: ['block', 'top', 'basics'],
optionGroups: { optionGroups: {
fit: [ fit: ['chestEase', 'waistEase', 'bustSpanEase'],
'chestEase', darts: ['backDartHeight', 'bustDartLength', 'waistDartLength', 'bustDartCurve'],
'waistEase',
'bustSpanEase'
],
darts: [
'backDartHeight',
'bustDartLength',
'waistDartLength',
'bustDartCurve'
],
armhole: [ armhole: [
'armholeDepth', 'armholeDepth',
'backArmholeSlant', 'backArmholeSlant',
'backArmholeCurvature', 'backArmholeCurvature',
'frontArmholePitchDepth', 'frontArmholePitchDepth',
'backArmholePitchDepth', 'backArmholePitchDepth'
], ],
advanced: [ advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth']
'backNeckCutout',
'backHemSlope',
'frontShoulderWidth',
'highBustWidth',
]
}, },
measurements: [ measurements: [
'highBust', 'highBust',
@ -89,6 +75,6 @@ export default {
highBustWidth: { pct: 86, max: 92, min: 80 }, highBustWidth: { pct: 86, max: 92, min: 80 },
bustDartLength: { pct: 90, min: 75, max: 100 }, bustDartLength: { pct: 90, min: 75, max: 100 },
waistDartLength: { pct: 90, min: 75, max: 95 }, waistDartLength: { pct: 90, min: 75, max: 95 },
bustDartCurve: { pct: 100, min: 0, max: 100 }, bustDartCurve: { pct: 100, min: 0, max: 100 }
} }
} }

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -0,0 +1,235 @@
div.layout-wrapper {
width: 100%;
margin: 0;
padding: 0;
background-color: red;
background: #f8f9fa;
background: linear-gradient(90deg, #f1f3f5 0%, #f1f3f5 25%, #f8f9fa 26%, #f8f9fa 100%); }
div.layout-wrapper div.layout {
display: flex;
max-width: 1600px;
margin: auto;
padding: 0;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
background-color: #f8f9fa;
min-height: calc(100vh - 64px); }
div.layout-wrapper div.layout > aside {
width: 33%;
background: #f1f3f5;
border-right: 2px solid #dee2e6; }
div.layout-wrapper div.layout > section {
margin: 0;
padding: 1rem; }
div.layout-wrapper div.layout > section > div.content {
max-width: 66ch;
min-width: 340px; }
div.layout-wrapper div.layout > section > div.content.wide {
max-width: 100%;
margin: auto; }
.theme-wrapper.dark header {
background-color: #1a1d21; }
.theme-wrapper.dark div.layout-wrapper {
background: #f8f9fa;
background: linear-gradient(90deg, #1a1d21 0%, #1a1d21 25%, #212529 26%, #212529 100%); }
.theme-wrapper.dark div.layout-wrapper div.layout {
background-color: #212529; }
.theme-wrapper.dark div.layout-wrapper div.layout > aside {
background-color: #1a1d21;
border-right: 2px solid #343a40; }
header a svg {
color: #ced4da; }
header a:first-of-type svg {
color: #f8f9fa; }
header a:hover svg {
color: #b197fc; }
header a span,
header button span {
color: #ced4da; }
header a span svg,
header button span svg {
color: #dee2e6; }
header a:hover span,
header button:hover span {
color: #f8f9fa; }
header a:hover span svg,
header button:hover span svg {
color: #b197fc; }
header a,
header button {
padding: 0 1vw !important; }
/* monitor */
@media (min-width: 1200px) {
div.layout > section {
width: 63%; } }
/* slate */
@media (max-width: 1199px) and (min-width: 960px) {
div.layout > aside {
width: 298px; }
div.layout > section {
width: calc(100% - 300px - 4rem);
max-width: none;
margin: 0 1rem 0 3rem; } }
/* tablet */
@media (max-width: 959px) {
div.layout > aside {
width: 218px; }
div.layout > section {
width: calc(100% - 220px - 4rem);
max-width: none;
margin: 0;
padding: 0 2rem; }
div.layout > section div.content {
min-width: inherit; } }
/* mobile */
@media (max-width: 599px) {
div.layout > aside {
display: none; }
div.layout > section {
width: calc(100%);
margin: 0 auto;
padding: 0 1.5rem;
max-width: none; } }
div.gatsby-highlight {
margin-bottom: 1rem; }
@media (max-width: 599px) {
#mobile-menu {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
padding: 0 0 1rem;
max-width: 600px;
z-index: -10;
transition: opacity 0.25s ease 0s;
opacity: 0;
overflow: scroll; }
#mobile-menu > ul,
#mobile-menu > div {
transform: translate(0px, 10px);
transition: transform 0.25s ease 0s; }
.theme-wrapper.show-menu #mobile-menu {
opacity: 1;
z-index: 10; }
.theme-wrapper.show-menu #mobile-menu > div {
transform: translate(0px, 0px); } }
.theme-wrapper.light div.draft-ui-menu,
.theme-wrapper.light div.menu {
background: #f1f3f5; }
.theme-wrapper.dark div.draft-ui-menu,
.theme-wrapper.dark div.menu {
background: #343a40; }
.theme-wrapper.show-menu div.menu {
opacity: 1;
z-index: 10; }
.theme-wrapper.show-menu div.menu > div {
transform: translate(0px, 0px); }
div.spaced-buttons > button {
margin: 0 0.5rem 0.5rem 0; }
div.spaced > * {
margin: 0 0.5rem 0.5rem 0; }
ul#pre-main-menu {
margin: 0;
padding: 0; }
.boldish {
font-weight: 500; }
.freesewing.draft {
padding: 1rem; }
li.action {
clear: both; }
li.action span.MuiSwitch-root {
float: right; }
.theme-wrapper.light ul#draft-config li.action.toggle.off,
.theme-wrapper.dark ul#draft-config li.action.toggle.off {
color: #868e96; }
.theme-wrapper.light ul#draft-config li.action.toggle.off > span svg,
.theme-wrapper.dark ul#draft-config li.action.toggle.off > span svg {
color: #868e96; }
footer {
background-color: #1a1d21;
color: #adb5bd;
padding: 3rem 0 6rem; }
footer a {
color: #dee2e6 !important;
font-weight: 400; }
footer a:hover {
color: #d0bfff !important; }
footer div.cols {
display: flex;
flex-direction: row;
justify-content: space-between;
max-width: 1600px;
margin: auto;
padding: 0 1.5rem; }
footer div.cols > div {
min-width: 150px;
max-width: calc(20% - 4rem);
padding: 0 2rem 0 0;
width: 100%; }
footer ul {
text-align: left;
font-size: 1.1rem;
margin: 0;
padding: 0;
width: 100%; }
footer ul li:first-of-type {
padding: 0.35rem 0.75rem; }
footer ul li {
display: block; }
footer ul li a:hover {
text-decoration: none !important; }
footer ul li.heading {
font-weight: bold;
border-bottom: 3px solid #adb5bd;
margin-bottom: 0.5rem; }
/* XL screens */
@media (min-width: 1200px) {
footer div.cols > div:last-of-type {
min-width: 350px; } }
/* SM screens */
@media (min-width: 600px) and (max-width: 959px) {
footer div.cols {
flex-wrap: wrap; }
footer div.cols > div {
width: calc(30% - 4rem);
padding: 0 1rem; } }
/* XS screens */
@media (max-width: 599px) {
footer div.cols {
display: block; }
footer div.cols > div {
margin: 2rem auto 0;
max-width: calc(100% - 4rem); }
footer div.cols > div:first-of-type {
margin-top: 0; } }

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/bella", "name": "@freesewing/bella",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a womenswear bodice block", "description": "A FreeSewing pattern for a womenswear bodice block",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,8 +34,8 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1" "@freesewing/plugin-bundle": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -46,14 +46,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -60,13 +60,15 @@ export default function (part) {
// Find out location of the armhole // Find out location of the armhole
let armholeDepth = measurements.hpsToWaistBack * options.armholeDepth + points.shoulder.y let armholeDepth = measurements.hpsToWaistBack * options.armholeDepth + points.shoulder.y
points.cbNeckCp2 = new Point(0, armholeDepth) points.cbNeckCp2 = new Point(0, armholeDepth)
points.dartLeftArmhole = utils.curveIntersectsY( // Does dart pass armhole depth?
let dartArmholeDepth = utils.curveIntersectsY(
points.dartBottomLeft, points.dartBottomLeft,
points.dartLeftCp, points.dartLeftCp,
points.dartTip, points.dartTip,
points.dartTip, points.dartTip,
armholeDepth armholeDepth
) )
let extra = 0
points.cbArmhole = utils.curveIntersectsY( points.cbArmhole = utils.curveIntersectsY(
points.cbNeck, points.cbNeck,
points.cbNeckCp2, points.cbNeckCp2,
@ -74,7 +76,10 @@ export default function (part) {
points.waistCenter, points.waistCenter,
armholeDepth armholeDepth
) )
let extra = points.dartLeftArmhole.dx(points.dartTip) * 2 + points.cbArmhole.x if (dartArmholeDepth) {
points.dartLeftArmhole = dartArmholeDepth
extra = points.dartLeftArmhole.dx(points.dartTip) * 2 + points.cbArmhole.x
}
points.armhole = new Point( points.armhole = new Point(
(measurements.underbust / 4) * (1 + options.chestEase) + extra, (measurements.underbust / 4) * (1 + options.chestEase) + extra,
armholeDepth armholeDepth

View file

@ -11,7 +11,7 @@ export default function (part) {
paperless, paperless,
macro, macro,
utils, utils,
measurements, measurements
} = part.shorthand() } = part.shorthand()
// Get to work // Get to work
@ -43,7 +43,10 @@ export default function (part) {
) )
// Bust point // Bust point
points.bust = new Point(measurements.bustSpan * 0.5 * (1 + options.bustSpanEase), measurements.hpsToBust) points.bust = new Point(
measurements.bustSpan * 0.5 * (1 + options.bustSpanEase),
measurements.hpsToBust
)
// Construct armhole // Construct armhole
points.armholeCp2 = points.armhole.shift(180, 40) points.armholeCp2 = points.armhole.shift(180, 40)
@ -112,15 +115,22 @@ export default function (part) {
) )
points.bustDartBottom = points.bustDartTop.rotate(angle * -1, points.bust) points.bustDartBottom = points.bustDartTop.rotate(angle * -1, points.bust)
points.bustDartMiddle = points.bustDartTop.shiftFractionTowards(points.bustDartBottom, 0.5) points.bustDartMiddle = points.bustDartTop.shiftFractionTowards(points.bustDartBottom, 0.5)
points.bustDartTip = points.bustDartMiddle.shiftFractionTowards(points.bust, options.bustDartLength) points.bustDartTip = points.bustDartMiddle.shiftFractionTowards(
points.bust,
options.bustDartLength
)
points.bustDartEdge = utils.beamsIntersect( points.bustDartEdge = utils.beamsIntersect(
points.bust, points.bust,
points.bustDartMiddle, points.bustDartMiddle,
points.armhole, points.armhole,
points.bustDartTop points.bustDartTop
) )
points.bustDartCpTop = points.bust.shiftFractionTowards(points.bustDartTop, 0.666).rotate(5 * options.bustDartCurve, points.bust) points.bustDartCpTop = points.bust
points.bustDartCpBottom = points.bust.shiftFractionTowards(points.bustDartBottom, 0.666).rotate(-5 * options.bustDartCurve, points.bust) .shiftFractionTowards(points.bustDartTop, 0.666)
.rotate(5 * options.bustDartCurve, points.bust)
points.bustDartCpBottom = points.bust
.shiftFractionTowards(points.bustDartBottom, 0.666)
.rotate(-5 * options.bustDartCurve, points.bust)
// Side seam length // Side seam length
let aboveDart = points.armhole.dist(points.bustDartTop) let aboveDart = points.armhole.dist(points.bustDartTop)
@ -142,10 +152,7 @@ export default function (part) {
points.bust, points.bust,
options.waistDartLength options.waistDartLength
) )
points.waistDartLeftCp = points.waistDartLeft.shift( points.waistDartLeftCp = points.waistDartLeft.shift(90, points.waistDartHem.dist(points.bust) / 2)
90,
points.waistDartHem.dist(points.bust) / 2
)
points.waistDartRightCp = points.waistDartRight.shift( points.waistDartRightCp = points.waistDartRight.shift(
90, 90,
points.waistDartHem.dist(points.bust) / 2 points.waistDartHem.dist(points.bust) / 2
@ -205,122 +212,113 @@ export default function (part) {
}) })
macro('sprinkle', { macro('sprinkle', {
snippet: 'notch', snippet: 'notch',
on: [ on: ['bust', 'armholePitch', 'cfBust']
'bust',
'armholePitch',
'cfBust',
]
}) })
if (sa) { if (sa) {
paths.sa = paths.saBase paths.sa = paths.saBase.offset(sa).line(points.cfNeck).attr('class', 'fabric sa')
.offset(sa) paths.sa = paths.sa.move(points.cfHem).line(paths.sa.start())
.line(points.cfNeck)
.attr('class', 'fabric sa')
paths.sa = paths.sa
.move(points.cfHem)
.line(paths.sa.start())
} }
if (paperless) { if (paperless) {
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartTip, to: points.waistDartTip,
x: 0 - 15, x: 0 - 15
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.bust, to: points.bust,
x: 0 - 30, x: 0 - 30
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.cfNeck, to: points.cfNeck,
x: 0 - 45, x: 0 - 45
}) })
macro('vd', { macro('vd', {
from: points.cfHem, from: points.cfHem,
to: points.hps, to: points.hps,
x: 0 - 60, x: 0 - 60
}) })
macro('hd', { macro('hd', {
from: points.cfBust, from: points.cfBust,
to: points.bust, to: points.bust,
y: points.bust.y - 15, y: points.bust.y - 15
}) })
macro('hd', { macro('hd', {
from: points.cfBust, from: points.cfBust,
to: points.bustDartTip, to: points.bustDartTip,
y: points.bust.y - 30, y: points.bust.y - 30
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartLeft, to: points.waistDartLeft,
y: points.cfHem.y + sa + 15, y: points.cfHem.y + sa + 15
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.waistDartRight, to: points.waistDartRight,
y: points.cfHem.y + sa + 30, y: points.cfHem.y + sa + 30
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.sideHem, to: points.sideHem,
y: points.cfHem.y + sa + 45, y: points.cfHem.y + sa + 45
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.bustDartBottom, to: points.bustDartBottom,
y: points.cfHem.y + sa + 60, y: points.cfHem.y + sa + 60
}) })
macro('hd', { macro('hd', {
from: points.cfHem, from: points.cfHem,
to: points.bustDartTop, to: points.bustDartTop,
y: points.cfHem.y + sa + 75, y: points.cfHem.y + sa + 75
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.bustDartBottom, to: points.bustDartBottom,
x: points.bustDartTop.x + sa + 15, x: points.bustDartTop.x + sa + 15
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.bustDartTop, to: points.bustDartTop,
x: points.bustDartTop.x + sa + 30, x: points.bustDartTop.x + sa + 30
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.armhole, to: points.armhole,
x: points.bustDartTop.x + sa + 45, x: points.bustDartTop.x + sa + 45
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.armholePitch, to: points.armholePitch,
x: points.bustDartTop.x + sa + 60, x: points.bustDartTop.x + sa + 60
}) })
macro('vd', { macro('vd', {
from: points.sideHem, from: points.sideHem,
to: points.shoulder, to: points.shoulder,
x: points.bustDartTop.x + sa + 75, x: points.bustDartTop.x + sa + 75
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.hps, to: points.hps,
y: points.hps.y - sa - 15, y: points.hps.y - sa - 15
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armholePitch, to: points.armholePitch,
y: points.hps.y - sa - 30, y: points.hps.y - sa - 30
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.shoulder, to: points.shoulder,
y: points.hps.y - sa - 45, y: points.hps.y - sa - 45
}) })
macro('hd', { macro('hd', {
from: points.cfNeck, from: points.cfNeck,
to: points.armhole, to: points.armhole,
y: points.hps.y - sa - 60, y: points.hps.y - sa - 60
}) })
} }
} }

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/benjamin" href="https://www.npmjs.com/package/@freesewing/benjamin"
title="@freesewing/benjamin on NPM" title="@freesewing/benjamin on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:benjamin" title="Open issues tagged pkg:benjamin"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:benjamin.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:benjamin.svg?label=Issues"
alt="Open issues tagged pkg:benjamin"/> alt="Open issues tagged pkg:benjamin"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/benjamin
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/benjamin**
A FreeSewing pattern for a bow tie A FreeSewing pattern for a bow tie
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/benjamin
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/benjamin", "name": "@freesewing/benjamin",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a bow tie", "description": "A FreeSewing pattern for a bow tie",
"author": "woutervdub (https://github.com/woutervdub)", "author": "woutervdub (https://github.com/woutervdub)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,8 +34,8 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1" "@freesewing/plugin-bundle": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -46,14 +46,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -30,10 +30,7 @@ export default function(part) {
}) })
} }
if (sa) { if (sa) {
paths.sa = paths.seam paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa').setRender(true)
.offset(sa)
.attr('class', 'fabric sa')
.setRender(true)
} }
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,

View file

@ -46,10 +46,7 @@ export default function(part) {
}) })
} }
if (sa) { if (sa) {
paths.sa = paths.seam paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa').setRender(true)
.offset(sa)
.attr('class', 'fabric sa')
.setRender(true)
} }
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,

View file

@ -46,10 +46,7 @@ export default function(part) {
}) })
} }
if (sa) { if (sa) {
paths.sa = paths.seam paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa').setRender(true)
.offset(sa)
.attr('class', 'fabric sa')
.setRender(true)
} }
macro('title', { macro('title', {
at: points.titleAnchor, at: points.titleAnchor,

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/bent" href="https://www.npmjs.com/package/@freesewing/bent"
title="@freesewing/bent on NPM" title="@freesewing/bent on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:bent" title="Open issues tagged pkg:bent"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bent.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bent.svg?label=Issues"
alt="Open issues tagged pkg:bent"/> alt="Open issues tagged pkg:bent"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/bent
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/bent**
A FreeSewing pattern for a menswear body block with a two-part sleeve A FreeSewing pattern for a menswear body block with a two-part sleeve
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/bent
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/bent", "name": "@freesewing/bent",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve", "description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,9 +34,9 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1", "@freesewing/plugin-bundle": "^2.14.0",
"@freesewing/brian": "^2.12.1" "@freesewing/brian": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -47,14 +47,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -10,7 +10,7 @@ export default function(part) {
// Complete? // Complete?
if (complete) { if (complete) {
macro('scalebox', { at: points.elbowCenter, }) macro('scalebox', { at: points.elbowCenter })
snippets.logo = new Snippet('logo', points.elbowCenter.shift(90, 50)) snippets.logo = new Snippet('logo', points.elbowCenter.shift(90, 50))
macro('title', { macro('title', {
at: points.armCenter, at: points.armCenter,

View file

@ -1,6 +1,13 @@
# Change log for: @freesewing/breanna # Change log for: @freesewing/breanna
## 2.13.0 (2021-02-13)
### Fixed
- Try harder to find the intersection point for the scyedart
- Define missing y variable in paperless branch
## 2.7.0 (2020-07-12) ## 2.7.0 (2020-07-12)
### Changed ### Changed

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/breanna" href="https://www.npmjs.com/package/@freesewing/breanna"
title="@freesewing/breanna on NPM" title="@freesewing/breanna on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:breanna" title="Open issues tagged pkg:breanna"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:breanna.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:breanna.svg?label=Issues"
alt="Open issues tagged pkg:breanna"/> alt="Open issues tagged pkg:breanna"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/breanna
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/breanna**
A FreeSewing pattern for a basic body block for womenswear A FreeSewing pattern for a basic body block for womenswear
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/breanna
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -0,0 +1,235 @@
div.layout-wrapper {
width: 100%;
margin: 0;
padding: 0;
background-color: red;
background: #f8f9fa;
background: linear-gradient(90deg, #f1f3f5 0%, #f1f3f5 25%, #f8f9fa 26%, #f8f9fa 100%); }
div.layout-wrapper div.layout {
display: flex;
max-width: 1600px;
margin: auto;
padding: 0;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
background-color: #f8f9fa;
min-height: calc(100vh - 64px); }
div.layout-wrapper div.layout > aside {
width: 33%;
background: #f1f3f5;
border-right: 2px solid #dee2e6; }
div.layout-wrapper div.layout > section {
margin: 0;
padding: 1rem; }
div.layout-wrapper div.layout > section > div.content {
max-width: 66ch;
min-width: 340px; }
div.layout-wrapper div.layout > section > div.content.wide {
max-width: 100%;
margin: auto; }
.theme-wrapper.dark header {
background-color: #1a1d21; }
.theme-wrapper.dark div.layout-wrapper {
background: #f8f9fa;
background: linear-gradient(90deg, #1a1d21 0%, #1a1d21 25%, #212529 26%, #212529 100%); }
.theme-wrapper.dark div.layout-wrapper div.layout {
background-color: #212529; }
.theme-wrapper.dark div.layout-wrapper div.layout > aside {
background-color: #1a1d21;
border-right: 2px solid #343a40; }
header a svg {
color: #ced4da; }
header a:first-of-type svg {
color: #f8f9fa; }
header a:hover svg {
color: #b197fc; }
header a span,
header button span {
color: #ced4da; }
header a span svg,
header button span svg {
color: #dee2e6; }
header a:hover span,
header button:hover span {
color: #f8f9fa; }
header a:hover span svg,
header button:hover span svg {
color: #b197fc; }
header a,
header button {
padding: 0 1vw !important; }
/* monitor */
@media (min-width: 1200px) {
div.layout > section {
width: 63%; } }
/* slate */
@media (max-width: 1199px) and (min-width: 960px) {
div.layout > aside {
width: 298px; }
div.layout > section {
width: calc(100% - 300px - 4rem);
max-width: none;
margin: 0 1rem 0 3rem; } }
/* tablet */
@media (max-width: 959px) {
div.layout > aside {
width: 218px; }
div.layout > section {
width: calc(100% - 220px - 4rem);
max-width: none;
margin: 0;
padding: 0 2rem; }
div.layout > section div.content {
min-width: inherit; } }
/* mobile */
@media (max-width: 599px) {
div.layout > aside {
display: none; }
div.layout > section {
width: calc(100%);
margin: 0 auto;
padding: 0 1.5rem;
max-width: none; } }
div.gatsby-highlight {
margin-bottom: 1rem; }
@media (max-width: 599px) {
#mobile-menu {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
padding: 0 0 1rem;
max-width: 600px;
z-index: -10;
transition: opacity 0.25s ease 0s;
opacity: 0;
overflow: scroll; }
#mobile-menu > ul,
#mobile-menu > div {
transform: translate(0px, 10px);
transition: transform 0.25s ease 0s; }
.theme-wrapper.show-menu #mobile-menu {
opacity: 1;
z-index: 10; }
.theme-wrapper.show-menu #mobile-menu > div {
transform: translate(0px, 0px); } }
.theme-wrapper.light div.draft-ui-menu,
.theme-wrapper.light div.menu {
background: #f1f3f5; }
.theme-wrapper.dark div.draft-ui-menu,
.theme-wrapper.dark div.menu {
background: #343a40; }
.theme-wrapper.show-menu div.menu {
opacity: 1;
z-index: 10; }
.theme-wrapper.show-menu div.menu > div {
transform: translate(0px, 0px); }
div.spaced-buttons > button {
margin: 0 0.5rem 0.5rem 0; }
div.spaced > * {
margin: 0 0.5rem 0.5rem 0; }
ul#pre-main-menu {
margin: 0;
padding: 0; }
.boldish {
font-weight: 500; }
.freesewing.draft {
padding: 1rem; }
li.action {
clear: both; }
li.action span.MuiSwitch-root {
float: right; }
.theme-wrapper.light ul#draft-config li.action.toggle.off,
.theme-wrapper.dark ul#draft-config li.action.toggle.off {
color: #868e96; }
.theme-wrapper.light ul#draft-config li.action.toggle.off > span svg,
.theme-wrapper.dark ul#draft-config li.action.toggle.off > span svg {
color: #868e96; }
footer {
background-color: #1a1d21;
color: #adb5bd;
padding: 3rem 0 6rem; }
footer a {
color: #dee2e6 !important;
font-weight: 400; }
footer a:hover {
color: #d0bfff !important; }
footer div.cols {
display: flex;
flex-direction: row;
justify-content: space-between;
max-width: 1600px;
margin: auto;
padding: 0 1.5rem; }
footer div.cols > div {
min-width: 150px;
max-width: calc(20% - 4rem);
padding: 0 2rem 0 0;
width: 100%; }
footer ul {
text-align: left;
font-size: 1.1rem;
margin: 0;
padding: 0;
width: 100%; }
footer ul li:first-of-type {
padding: 0.35rem 0.75rem; }
footer ul li {
display: block; }
footer ul li a:hover {
text-decoration: none !important; }
footer ul li.heading {
font-weight: bold;
border-bottom: 3px solid #adb5bd;
margin-bottom: 0.5rem; }
/* XL screens */
@media (min-width: 1200px) {
footer div.cols > div:last-of-type {
min-width: 350px; } }
/* SM screens */
@media (min-width: 600px) and (max-width: 959px) {
footer div.cols {
flex-wrap: wrap; }
footer div.cols > div {
width: calc(30% - 4rem);
padding: 0 1rem; } }
/* XS screens */
@media (max-width: 599px) {
footer div.cols {
display: block; }
footer div.cols > div {
margin: 2rem auto 0;
max-width: calc(100% - 4rem); }
footer div.cols > div:first-of-type {
margin-top: 0; } }

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/breanna", "name": "@freesewing/breanna",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a basic body block for womenswear", "description": "A FreeSewing pattern for a basic body block for womenswear",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,9 +34,9 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1", "@freesewing/plugin-bundle": "^2.14.0",
"@freesewing/brian": "^2.12.1" "@freesewing/brian": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -47,14 +47,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { let {
sa, sa,
points, points,
@ -91,10 +91,7 @@ export default part => {
// Insert darts // Insert darts
if (options.waistDart) { if (options.waistDart) {
let dart = new Path() let dart = new Path().line(points.waistDart1).line(points.waistDartTip).line(points.waistDart2)
.line(points.waistDart1)
.line(points.waistDartTip)
.line(points.waistDart2)
paths.seam = paths.seam.insop('waistDart', dart) paths.seam = paths.seam.insop('waistDart', dart)
let saDart = new Path() let saDart = new Path()
.line(points.waistDart1) .line(points.waistDart1)
@ -165,10 +162,7 @@ export default part => {
store.set('backSideSeamLength', points.armhole.dist(points.waist)) store.set('backSideSeamLength', points.armhole.dist(points.waist))
store.set( store.set(
'backCollarLength', 'backCollarLength',
new Path() new Path().move(points.cbNeck)._curve(points.hpsCp2, points.hps).length() * 2
.move(points.cbNeck)
._curve(points.hpsCp2, points.hps)
.length() * 2
) )
// Anchor point // Anchor point
@ -230,6 +224,7 @@ export default part => {
x: points.waistDart2.x + 15 x: points.waistDart2.x + 15
}) })
} else { } else {
let y = points.waist.y + 15 + sa
macro('hd', { macro('hd', {
from: points.cbWaist, from: points.cbWaist,
to: points.waist, to: points.waist,

View file

@ -46,7 +46,7 @@ export const getDartInsertionPoint = (points, utils, loc, angle) => {
} }
// What points need to be rotated after cutting the primary bust dart // What points need to be rotated after cutting the primary bust dart
export const getPrimaryDartRotationList = loc => { export const getPrimaryDartRotationList = (loc) => {
let rotate = ['cfWaist'] let rotate = ['cfWaist']
if (loc >= 1100) rotate.push('cfNeck') if (loc >= 1100) rotate.push('cfNeck')
if (loc >= 1130) rotate.push('hpsCp2') if (loc >= 1130) rotate.push('hpsCp2')
@ -74,7 +74,7 @@ export const getSecondaryDartRotationList = (loc1, loc2) => {
return rotate return rotate
} }
export const getDartLocationsAsNumbers = options => { export const getDartLocationsAsNumbers = (options) => {
let loc1 = options.primaryBustDart let loc1 = options.primaryBustDart
let loc2 = options.secondaryBustDart let loc2 = options.secondaryBustDart
loc1 = Number(loc1.slice(0, 2) + loc1.slice(-2)) loc1 = Number(loc1.slice(0, 2) + loc1.slice(-2))

View file

@ -78,14 +78,20 @@ export default (part) => {
// Angle from bustpoint towards armhole and armholePitch // Angle from bustpoint towards armhole and armholePitch
let angle1 = points.bustPoint.angle(points.armhole) let angle1 = points.bustPoint.angle(points.armhole)
let angle2 = points.bustPoint.angle(points.armholePitch) let angle2 = points.bustPoint.angle(points.armholePitch)
let isectStart = points.bustPoint.shift(
angle1 + (angle2 - angle1) / 2,
measurements.highBustFront * 6.66
)
let isectEnd = isectStart.shiftFractionTowards(points.bustPoint, 2)
points.scyeDart1 = utils.lineIntersectsCurve( points.scyeDart1 = utils.lineIntersectsCurve(
points.bustPoint, isectStart,
points.bustPoint.shift(angle1 + (angle2 - angle1) / 2, measurements.highBustFront * 0.666), isectEnd,
points.armhole, points.armhole,
points.armholeCp2, points.armholeCp2,
points.armholePitchCp1, points.armholePitchCp1,
points.armholePitch points.armholePitch
) )
// How much should this dart be? // How much should this dart be?
let scyeDartWidth = let scyeDartWidth =
(measurements.bustFront - measurements.highBustFront) * options.frontScyeDart (measurements.bustFront - measurements.highBustFront) * options.frontScyeDart
@ -103,7 +109,6 @@ export default (part) => {
points.bustPoint points.bustPoint
) )
} }
// Store bust dart angle and armhole length // Store bust dart angle and armhole length
store.set( store.set(
'bustDartAngle', 'bustDartAngle',

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('secondaryBustDartLocation')) { switch (store.get('secondaryBustDartLocation')) {

View file

@ -1,4 +1,4 @@
export default part => { export default (part) => {
let { points, Path, store } = part.shorthand() let { points, Path, store } = part.shorthand()
switch (store.get('primaryBustDartLocation')) { switch (store.get('primaryBustDartLocation')) {

View file

@ -18,7 +18,7 @@ import {
getSaDartPaths getSaDartPaths
} from './dart-utils' } from './dart-utils'
export default part => { export default (part) => {
let { let {
options, options,
store, store,

View file

@ -1,4 +1,4 @@
![FreeSewing](https://freesewing.org/banner.jpg) ![FreeSewing](https://static.freesewing.org/banner.png)
<p align='center'><a <p align='center'><a
href="https://www.npmjs.com/package/@freesewing/brian" href="https://www.npmjs.com/package/@freesewing/brian"
title="@freesewing/brian on NPM" title="@freesewing/brian on NPM"
@ -19,6 +19,11 @@
title="Open issues tagged pkg:brian" title="Open issues tagged pkg:brian"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:brian.svg?label=Issues" ><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:brian.svg?label=Issues"
alt="Open issues tagged pkg:brian"/> alt="Open issues tagged pkg:brian"/>
</a><a
href="https://todo.freesewing.org/"
title="Project board"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Project%20board-9775fa.svg?logo=github&logoColor=white&logoWidth=15"
alt="Project board"/>
</a></p><p align='center'><a </a></p><p align='center'><a
href="https://twitter.com/freesewing_org" href="https://twitter.com/freesewing_org"
title="Follow @freesewing_org on Twitter" title="Follow @freesewing_org on Twitter"
@ -41,49 +46,62 @@
alt="Follow @freesewing_org on Twitter"/> alt="Follow @freesewing_org on Twitter"/>
</a></p> </a></p>
## What am I looking at? 🤔 # @freesewing/brian
This repository is our *monorepo* holding [all our NPM packages](https://www.npmjs.com/search?q=keywords:freesewing).
This folder holds **@freesewing/brian**
A FreeSewing pattern for a basic body block for menswear A FreeSewing pattern for a basic body block for menswear
## What am I looking at? 🤔
This repository is our *monorepo*
holding [all our NPM packages](https://freesewing.dev/reference/packages/).
This folder holds: @freesewing/brian
## About FreeSewing 💀 ## About FreeSewing 💀
Where the world of makers and developers collide, that's where you'll find 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 Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list for parametric design of sewing patterns. But we also provide a range
of [plugins](https://freesewing.dev/reference/plugins/) and getting started is as simple as: 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 ```bash
npm init freesewing-pattern npx create-freesewing-pattern
``` ```
The [getting started](https://freesewing.dev/guides/getting-started/) section on [freesewing.dev](https://freesewing.dev/) is a good Or, consult our getting started guides
entrypoint to our documentation, but you'll find a lot more there, including for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
our [API reference](https://freesewing.dev/reference/api/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
as well as [our turorial](https://freesewing.dev/tutorials/pattern-design/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
and [howtos](https://freesewing.dev/howtos/).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
our sewing patterns adapted to your measurements. 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 🥰 ## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community, FreeSewing is an open source project run by a community,
and financially supported by our patrons. and financially supported by our patrons.
If you feel what we do is worthwhile, you too If you feel what we do is worthwhile, and you can spend a few coind without
should [become a patron](https://freesewing.org/patrons/join). hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻 ## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org) - 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev) - 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/) - 💬 Chat: On Discord via [chat.freesewing.org](https://chat.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org) - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)

View file

@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import App from './App' import App from './App'
import * as serviceWorker from './serviceWorker' import * as serviceWorker from './serviceWorker'
import './layout.css'
ReactDOM.render(<App />, document.getElementById('root')) ReactDOM.render(<App />, document.getElementById('root'))

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/brian", "name": "@freesewing/brian",
"version": "2.12.1", "version": "2.14.0",
"description": "A FreeSewing pattern for a basic body block for menswear", "description": "A FreeSewing pattern for a basic body block for menswear",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -34,8 +34,8 @@
"testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register" "testci": "BABEL_ENV=production ./node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^2.12.1", "@freesewing/core": "^2.14.0",
"@freesewing/plugin-bundle": "^2.12.1" "@freesewing/plugin-bundle": "^2.14.0"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
@ -46,14 +46,14 @@
"eslint": "^7.6.0", "eslint": "^7.6.0",
"babel-jest": "^26.2.2", "babel-jest": "^26.2.2",
"jest": "26.2.2", "jest": "26.2.2",
"@freesewing/components": "^2.12.1", "@freesewing/components": "^2.14.0",
"@freesewing/css-theme": "^2.12.1", "@freesewing/css-theme": "^2.14.0",
"@freesewing/i18n": "^2.12.1", "@freesewing/i18n": "^2.14.0",
"@freesewing/mui-theme": "^2.12.1", "@freesewing/mui-theme": "^2.14.0",
"@freesewing/plugin-bust": "^2.12.1", "@freesewing/plugin-bust": "^2.14.0",
"@freesewing/plugin-buttons": "^2.12.1", "@freesewing/plugin-buttons": "^2.14.0",
"@freesewing/plugin-flip": "^2.12.1", "@freesewing/plugin-flip": "^2.14.0",
"@freesewing/utils": "^2.12.1", "@freesewing/utils": "^2.14.0",
"@svgr/rollup": "^2.4.1", "@svgr/rollup": "^2.4.1",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"react-scripts": "^3.4.1", "react-scripts": "^3.4.1",

View file

@ -39,10 +39,7 @@ export default (part) => {
macro('title', { at: points.title, nr: 2, title: 'back' }) macro('title', { at: points.title, nr: 2, title: 'back' })
snippets.armholePitchNotch = new Snippet('bnotch', points.armholePitch) snippets.armholePitchNotch = new Snippet('bnotch', points.armholePitch)
paths.waist = new Path() paths.waist = new Path().move(points.cbWaist).line(points.waist).attr('class', 'help')
.move(points.cbWaist)
.line(points.waist)
.attr('class', 'help')
if (sa) { if (sa) {
paths.sa = paths.saBase paths.sa = paths.saBase
.offset(sa) .offset(sa)

View file

@ -53,10 +53,7 @@ export default (part) => {
}) })
macro('title', { at: points.title, nr: 1, title: 'front' }) macro('title', { at: points.title, nr: 1, title: 'front' })
snippets.armholePitchNotch = new Snippet('notch', points.armholePitch) snippets.armholePitchNotch = new Snippet('notch', points.armholePitch)
paths.waist = new Path() paths.waist = new Path().move(points.cfWaist).line(points.waist).attr('class', 'help')
.move(points.cfWaist)
.line(points.waist)
.attr('class', 'help')
if (sa) { if (sa) {
paths.sa = paths.saBase paths.sa = paths.saBase
.offset(sa) .offset(sa)

View file

@ -1,6 +1,12 @@
# Change log for: @freesewing/bruce # Change log for: @freesewing/bruce
## 2.13.0 (2021-02-13)
### Fixed
- Added notches to facilitate seam matching
## 2.11.3 (2021-01-16) ## 2.11.3 (2021-01-16)
### Fixed ### Fixed

Some files were not shown because too many files have changed in this diff Show more