[breaking]: FreeSewing v4 (#7297)
Refer to the CHANGELOG for all info. --------- Co-authored-by: Wouter van Wageningen <wouter.vdub@yahoo.com> Co-authored-by: Josh Munic <jpmunic@gmail.com> Co-authored-by: Jonathan Haas <haasjona@gmail.com>
This commit is contained in:
parent
d22fbe78d9
commit
51dc1d9732
6626 changed files with 142053 additions and 150606 deletions
|
@ -9,7 +9,7 @@ const nodeFiles = [
|
||||||
`**/prebuild.${jsSuffixes}`,
|
`**/prebuild.${jsSuffixes}`,
|
||||||
`**/prebuild/**/*.${jsSuffixes}`,
|
`**/prebuild/**/*.${jsSuffixes}`,
|
||||||
`**/scripts/**/*.${jsSuffixes}`,
|
`**/scripts/**/*.${jsSuffixes}`,
|
||||||
`packages/new-design/lib/**/*.${jsSuffixes}`,
|
`packages/studio/lib/*.${jsSuffixes}`,
|
||||||
`sites/backend/**/*.${jsSuffixes}`,
|
`sites/backend/**/*.${jsSuffixes}`,
|
||||||
`sites/*/mdx/**/*.${jsSuffixes}`,
|
`sites/*/mdx/**/*.${jsSuffixes}`,
|
||||||
`sites/*/themes/**/*.${jsSuffixes}`,
|
`sites/*/themes/**/*.${jsSuffixes}`,
|
||||||
|
@ -60,16 +60,6 @@ module.exports = {
|
||||||
'no-console': 'off',
|
'no-console': 'off',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
files: frontendFiles,
|
|
||||||
excludedFiles: nodeFiles,
|
|
||||||
extends: ['next'],
|
|
||||||
settings: {
|
|
||||||
next: {
|
|
||||||
rootDir: 'sites/dev/',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
files: [`**/*.${jsSuffixes}{,.mustache}`],
|
files: [`**/*.${jsSuffixes}{,.mustache}`],
|
||||||
excludedFiles: [].concat(mongoFiles, nodeFiles, frontendFiles),
|
excludedFiles: [].concat(mongoFiles, nodeFiles, frontendFiles),
|
||||||
|
|
46
.github/workflows/dependabot-sync.yml
vendored
46
.github/workflows/dependabot-sync.yml
vendored
|
@ -1,46 +0,0 @@
|
||||||
name: Sync Dependabot Bump
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [opened, synchronize]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
sync:
|
|
||||||
if: ${{ github.actor == 'dependabot[bot]' }}
|
|
||||||
name: Sync dependency files
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: ${{ github.head_ref }}
|
|
||||||
- name: Setup Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
cd packages/core
|
|
||||||
npm i --workspaces=false --no-save
|
|
||||||
cd ../../scripts
|
|
||||||
npm i --workspaces=false --no-save
|
|
||||||
cd ../
|
|
||||||
env:
|
|
||||||
CI: true
|
|
||||||
- name: Run Sync Script
|
|
||||||
run: node ./scripts/sync-dependencies.mjs ${{ github.head_ref }}
|
|
||||||
- name: Reconfigure
|
|
||||||
run: node --experimental-json-modules --no-warnings ./scripts/reconfigure.mjs
|
|
||||||
- name: Bootstrap
|
|
||||||
run: yarn install
|
|
||||||
- name: Commit Changes
|
|
||||||
run: |
|
|
||||||
git add .
|
|
||||||
git status
|
|
||||||
git config user.name github-actions
|
|
||||||
git config user.email github-actions@github.com
|
|
||||||
git commit -m "[dependabot skip] chore(deps): bumped ${{ github.head_ref }} changes in config/dependencies.yaml"
|
|
||||||
git push
|
|
58
.gitignore
vendored
58
.gitignore
vendored
|
@ -1,10 +1,12 @@
|
||||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||||
dump
|
dump
|
||||||
production.sqlite
|
production.sqlite
|
||||||
|
.husky
|
||||||
|
|
||||||
# .env
|
# .env
|
||||||
.env
|
.env
|
||||||
*.key
|
*.key
|
||||||
|
*.env
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
plugins/plugin-theme/src/bundle.css.js
|
plugins/plugin-theme/src/bundle.css.js
|
||||||
|
@ -14,16 +16,17 @@ plugins/plugin-theme/css
|
||||||
packages/core/coverage
|
packages/core/coverage
|
||||||
packages/*/report
|
packages/*/report
|
||||||
|
|
||||||
# Any NPM or Yarn lock files
|
# Any Yarn lock files
|
||||||
designs/*/package-lock.json
|
designs/*/package-lock.json
|
||||||
designs/*/yarn.lock
|
designs/*/yarn.lock
|
||||||
packages/*/package-lock.json
|
packages/*/package-lock.json
|
||||||
packages/*/yarn.lock
|
packages/*/yarn.lock
|
||||||
plugins/*/package-lock.json
|
plugins/*/package-lock.json
|
||||||
plugins/*/yarn.lock
|
plugins/*/yarn.lock
|
||||||
|
yarn.lock
|
||||||
|
|
||||||
# NPM lock files for sites (we use yarn)
|
# Yarn lock files for sites (we use npm)
|
||||||
sites/*/package-lock.json
|
sites/*/yarn.lock
|
||||||
|
|
||||||
# Nx cache
|
# Nx cache
|
||||||
.nx/cache
|
.nx/cache
|
||||||
|
@ -42,26 +45,16 @@ packages/new-design/shared/.gitignore
|
||||||
packages/new-design/lib/banner.mjs
|
packages/new-design/lib/banner.mjs
|
||||||
sites/*/public/img/og/*
|
sites/*/public/img/og/*
|
||||||
|
|
||||||
# Orgdocs prebuild artifacts
|
# Org prebuild artifacts
|
||||||
sites/orgdocs/src/lib/designs.mjs
|
sites/org/src/lib/designs.mjs
|
||||||
sites/orgdocs/src/lib/designinfo.mjs
|
sites/org/src/lib/designinfo.mjs
|
||||||
sites/orgdocs/src/lib/i18n.mjs
|
sites/org/src/lib/i18n.mjs
|
||||||
sites/orgdocs/docs/designs/*/options/readme.mdx
|
sites/org/docs/designs/*/options/readme.mdx
|
||||||
sites/orgdocs/authors.json
|
sites/org/authors.json
|
||||||
sites/orgdocs/showcase-tags.mjs
|
sites/org/showcase-tags.mjs
|
||||||
|
sites/org/design-examples.mjs
|
||||||
# Lab auto-generated content
|
sites/org/docs/designs/*.mdx
|
||||||
sites/lab/lib
|
sites/org/recent-blog-posts.mjs
|
||||||
sites/lab/public/android-chrome-192x192.png
|
|
||||||
sites/lab/public/android-chrome-384x384.png
|
|
||||||
sites/lab/public/apple-touch-icon.png
|
|
||||||
sites/lab/public/browserconfig.xml
|
|
||||||
sites/lab/public/favicon-16x16.png
|
|
||||||
sites/lab/public/favicon-32x32.png
|
|
||||||
sites/lab/public/favicon.ico
|
|
||||||
sites/lab/public/mstile-150x150.png
|
|
||||||
sites/lab/public/safari-pinned-tab.svg
|
|
||||||
sites/lab/public/site.webmanifest
|
|
||||||
|
|
||||||
# sde auto-generated content
|
# sde auto-generated content
|
||||||
sites/sde/public/android-chrome-192x192.png
|
sites/sde/public/android-chrome-192x192.png
|
||||||
|
@ -87,25 +80,15 @@ sites/dev/public/mstile-150x150.png
|
||||||
sites/dev/public/safari-pinned-tab.svg
|
sites/dev/public/safari-pinned-tab.svg
|
||||||
sites/dev/public/site.webmanifest
|
sites/dev/public/site.webmanifest
|
||||||
|
|
||||||
# org auto-generated content
|
|
||||||
sites/org/public/android-chrome-192x192.png
|
|
||||||
sites/org/public/android-chrome-384x384.png
|
|
||||||
sites/org/public/apple-touch-icon.png
|
|
||||||
sites/org/public/browserconfig.xml
|
|
||||||
sites/org/public/favicon-16x16.png
|
|
||||||
sites/org/public/favicon-32x32.png
|
|
||||||
sites/org/public/favicon.ico
|
|
||||||
sites/org/public/mstile-150x150.png
|
|
||||||
sites/org/public/safari-pinned-tab.svg
|
|
||||||
sites/org/public/site.webmanifest
|
|
||||||
|
|
||||||
# Node dependencies
|
# Node dependencies
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
# Build folders
|
# Build folders
|
||||||
dist
|
dist
|
||||||
build
|
build
|
||||||
export
|
|
||||||
|
# But don't ignore point/dist reference
|
||||||
|
!/sites/dev/docs/reference/api/point/dist/
|
||||||
|
|
||||||
# Prebuild files
|
# Prebuild files
|
||||||
prebuild/*.json
|
prebuild/*.json
|
||||||
|
@ -147,3 +130,6 @@ scripts/verdaccio.sh
|
||||||
|
|
||||||
# e2e test results
|
# e2e test results
|
||||||
sites/*/playwright-report
|
sites/*/playwright-report
|
||||||
|
|
||||||
|
# Local Netlify folder
|
||||||
|
.netlify
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
yarn lint-staged
|
npx lint-staged
|
||||||
|
|
|
@ -27,4 +27,5 @@ yarn.lock
|
||||||
.all-contributorsrc
|
.all-contributorsrc
|
||||||
.nvmrc
|
.nvmrc
|
||||||
ansible.cfg
|
ansible.cfg
|
||||||
sites/shared/prebuild/data/*.mjs
|
sites/org/docs/docs/designs/*/options/readme.mdx
|
||||||
|
/.nx/workspace-data
|
||||||
|
|
398
CHANGELOG.md
398
CHANGELOG.md
|
@ -3,6 +3,9 @@
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
|
||||||
|
## 4.0.0 (2024-04-01)
|
||||||
|
|
||||||
### bibi
|
### bibi
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
@ -133,8 +136,25 @@
|
||||||
|
|
||||||
- The `withCondition` named export is deprecated and will always return true.
|
- The `withCondition` named export is deprecated and will always return true.
|
||||||
|
|
||||||
|
### collection
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added a new `@freesewing/collection` package that bundles all our designs
|
||||||
|
|
||||||
|
### config
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added a new `@freesewing/config` package for shared configuration
|
||||||
|
|
||||||
### core
|
### core
|
||||||
|
|
||||||
|
#### Breaking
|
||||||
|
|
||||||
|
- FreeSewing new requires NodeJS 20 (or more recent)
|
||||||
|
- We removed all but English translations. We still support i18n in our core library and designs, but no longer provide translations
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
|
||||||
- The `Path.rotate()` method was added to the core API.
|
- The `Path.rotate()` method was added to the core API.
|
||||||
|
@ -144,6 +164,30 @@
|
||||||
|
|
||||||
- Fix an issue when splitting path on start or end point. Fixes
|
- Fix an issue when splitting path on start or end point. Fixes
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- The `@freesewing/i18n` package holds translations in English for where they are needed
|
||||||
|
|
||||||
|
### studio
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added `@freesewing/studio`, our new development environment
|
||||||
|
|
||||||
|
### react
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- The `@freesewing/react` package holds shared components, hooks, and context for our React-based frontends
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added a new `@freesewing/utils` package for shared utils
|
||||||
|
|
||||||
|
|
||||||
## 3.2.0 (2024-02-11)
|
## 3.2.0 (2024-02-11)
|
||||||
|
|
||||||
|
@ -225,12 +269,6 @@
|
||||||
|
|
||||||
- Calling `Path.join` with a second parameter to indicate that the resulting paths most be closed is now deprecated and will be removed in FreeSewing v4.
|
- Calling `Path.join` with a second parameter to indicate that the resulting paths most be closed is now deprecated and will be removed in FreeSewing v4.
|
||||||
|
|
||||||
### react-components
|
|
||||||
|
|
||||||
#### Added
|
|
||||||
|
|
||||||
- This Pattern component now supports translation of nested arrays of strings, giving you more flexibility to concatenate translated parts of strings
|
|
||||||
|
|
||||||
|
|
||||||
## 3.1.0 (2023-12-26)
|
## 3.1.0 (2023-12-26)
|
||||||
|
|
||||||
|
@ -424,12 +462,6 @@
|
||||||
- Make Path.split() more robust when handling edge-case. Fixes
|
- Make Path.split() more robust when handling edge-case. Fixes
|
||||||
- Prevent utils.circlesIntersect() from running sqrt on a negative number. Fixes
|
- Prevent utils.circlesIntersect() from running sqrt on a negative number. Fixes
|
||||||
|
|
||||||
### new-design
|
|
||||||
|
|
||||||
#### Fixed
|
|
||||||
|
|
||||||
- Removed unwanted debug output
|
|
||||||
|
|
||||||
|
|
||||||
## 3.0.0 (2023-09-30)
|
## 3.0.0 (2023-09-30)
|
||||||
|
|
||||||
|
@ -675,16 +707,6 @@
|
||||||
|
|
||||||
- Make generatePartTransform a named export
|
- Make generatePartTransform a named export
|
||||||
|
|
||||||
### new-design
|
|
||||||
|
|
||||||
#### Changed
|
|
||||||
|
|
||||||
- We're now loading content from the main branch by default
|
|
||||||
|
|
||||||
#### Fixed
|
|
||||||
|
|
||||||
- Add bin entry to package.json
|
|
||||||
|
|
||||||
|
|
||||||
## 2.21.2 (2022-06-30)
|
## 2.21.2 (2022-06-30)
|
||||||
|
|
||||||
|
@ -1092,8 +1114,24 @@
|
||||||
- Migrated from Rollup to Esbuild for all builds
|
- Migrated from Rollup to Esbuild for all builds
|
||||||
- The `pctBasedOn()` helper method for pattern config was moved to config-helpers We did not make this a breaking change since it's only used internally.
|
- The `pctBasedOn()` helper method for pattern config was moved to config-helpers We did not make this a breaking change since it's only used internally.
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Migrated from Rollup to Esbuild for all builds
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Added missing lab namespace for English
|
||||||
|
|
||||||
### models
|
### models
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Migrated from Rollup to Esbuild for all builds
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
- Migrated from Rollup to Esbuild for all builds
|
- Migrated from Rollup to Esbuild for all builds
|
||||||
|
@ -1202,12 +1240,6 @@
|
||||||
|
|
||||||
- Fix bug in Svg.escapeText() that only escaped the first quote
|
- Fix bug in Svg.escapeText() that only escaped the first quote
|
||||||
|
|
||||||
### backend
|
|
||||||
|
|
||||||
#### Fixed
|
|
||||||
|
|
||||||
- Mitigate risk of denial-of-service attacks in catch-all route
|
|
||||||
|
|
||||||
|
|
||||||
## 2.20.4 (2022-01-28)
|
## 2.20.4 (2022-01-28)
|
||||||
|
|
||||||
|
@ -1231,6 +1263,12 @@
|
||||||
|
|
||||||
## 2.20.2 (2022-01-27)
|
## 2.20.2 (2022-01-27)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Patterns options were always in English due to symlinks being used
|
||||||
|
|
||||||
|
|
||||||
## 2.20.1 (2022-01-27)
|
## 2.20.1 (2022-01-27)
|
||||||
|
|
||||||
|
@ -1559,6 +1597,12 @@
|
||||||
|
|
||||||
- Added support for `settings.scale`
|
- Added support for `settings.scale`
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed issue that was causing plugin translations to always be in English
|
||||||
|
|
||||||
|
|
||||||
## 2.19.9 (2022-01-09)
|
## 2.19.9 (2022-01-09)
|
||||||
|
|
||||||
|
@ -1991,6 +2035,13 @@
|
||||||
|
|
||||||
- Pattern.on() is now chainable as it returns the Pattern object
|
- Pattern.on() is now chainable as it returns the Pattern object
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed bug in resolving of shared pattern options
|
||||||
|
- Removed optional chaining which broke node v12 support
|
||||||
|
|
||||||
### snapseries
|
### snapseries
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
@ -2037,6 +2088,16 @@
|
||||||
|
|
||||||
- Handle path.offset() of very short curves with control points on the start or end point Closes [#1257](https://github.com/freesewing/freesewing/issues/1257)
|
- Handle path.offset() of very short curves with control points on the start or end point Closes [#1257](https://github.com/freesewing/freesewing/issues/1257)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translations for Yuri
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Added optional chaining so missing options always lead to clear error message
|
||||||
|
|
||||||
|
|
||||||
## 2.17.4 (2021-08-20)
|
## 2.17.4 (2021-08-20)
|
||||||
|
|
||||||
|
@ -2049,6 +2110,18 @@
|
||||||
|
|
||||||
## 2.17.3 (2021-08-16)
|
## 2.17.3 (2021-08-16)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- New translations
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Added missing `bustPointToUnderbust` measurement to `neckstimate`
|
||||||
|
|
||||||
|
|
||||||
## 2.17.2 (2021-08-15)
|
## 2.17.2 (2021-08-15)
|
||||||
|
|
||||||
|
@ -2064,6 +2137,12 @@
|
||||||
|
|
||||||
- Added new ffsa option to let the user control the extra SA for flat-felled seams Closes [#1251](https://github.com/freesewing/freesewing/issues/1251)
|
- Added new ffsa option to let the user control the extra SA for flat-felled seams Closes [#1251](https://github.com/freesewing/freesewing/issues/1251)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added new ffsa option for simon & simone
|
||||||
|
|
||||||
### models
|
### models
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
@ -2185,9 +2264,21 @@
|
||||||
|
|
||||||
- Fix a bug in `path.shiftAlong` where no point is returned if the distance to shift is a fraction of one step (1/25mm) into a new path segment See [#1140](https://github.com/freesewing/freesewing/issues/1140)
|
- Fix a bug in `path.shiftAlong` where no point is returned if the distance to shift is a fraction of one step (1/25mm) into a new path segment See [#1140](https://github.com/freesewing/freesewing/issues/1140)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Changed antman references to antperson
|
||||||
|
|
||||||
|
|
||||||
## 2.16.2 (2021-05-05)
|
## 2.16.2 (2021-05-05)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- String updates
|
||||||
|
|
||||||
|
|
||||||
## 2.16.1 (2021-05-30)
|
## 2.16.1 (2021-05-30)
|
||||||
|
|
||||||
|
@ -2395,6 +2486,19 @@
|
||||||
|
|
||||||
- Changed `department` setting in config in line with new grouping
|
- Changed `department` setting in config in line with new grouping
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- New translations for pattern filter
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- neckstimate now takes an extra `noRound` parameter to return the unrounded value
|
||||||
|
- measurementDiffers takes an extra `absolute` value that can be set to false to get the non-absolute and non-rounded value
|
||||||
|
|
||||||
|
|
||||||
## 2.16.0 (2021-05-24)
|
## 2.16.0 (2021-05-24)
|
||||||
|
|
||||||
|
@ -2423,6 +2527,12 @@
|
||||||
|
|
||||||
- Fixed third button not showing up See [#973](https://github.com/freesewing/freesewing/issues/973)
|
- Fixed third button not showing up See [#973](https://github.com/freesewing/freesewing/issues/973)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Changes to cfp strings
|
||||||
|
|
||||||
|
|
||||||
## 2.15.4 (2021-05-08)
|
## 2.15.4 (2021-05-08)
|
||||||
|
|
||||||
|
@ -2554,6 +2664,13 @@
|
||||||
|
|
||||||
- Don't round coordinates internally to avoid path.split misses
|
- Don't round coordinates internally to avoid path.split misses
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translation for new Titan options
|
||||||
|
- Added translations for Charlie
|
||||||
|
|
||||||
|
|
||||||
## 2.14.0 (2021-03-07)
|
## 2.14.0 (2021-03-07)
|
||||||
|
|
||||||
|
@ -2569,6 +2686,12 @@
|
||||||
|
|
||||||
- Replaced grainline indicator on pocket with cut-on-fold indicator
|
- Replaced grainline indicator on pocket with cut-on-fold indicator
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translations for Cornelius
|
||||||
|
|
||||||
|
|
||||||
## 2.13.2 (2021-02-21)
|
## 2.13.2 (2021-02-21)
|
||||||
|
|
||||||
|
@ -2617,6 +2740,12 @@
|
||||||
|
|
||||||
- Added missing sleeve notch on yoke
|
- Added missing sleeve notch on yoke
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Pass pattern handle to tiler
|
||||||
|
|
||||||
|
|
||||||
## 2.13.0 (2021-02-13)
|
## 2.13.0 (2021-02-13)
|
||||||
|
|
||||||
|
@ -2670,6 +2799,12 @@
|
||||||
|
|
||||||
- Make sure roudEnd and roundStart points are always available
|
- Make sure roudEnd and roundStart points are always available
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Translation for Hortensia
|
||||||
|
|
||||||
|
|
||||||
## 2.12.1 (2021-01-27)
|
## 2.12.1 (2021-01-27)
|
||||||
|
|
||||||
|
@ -2794,6 +2929,16 @@
|
||||||
|
|
||||||
- Removed unused lengthBonus option
|
- Removed unused lengthBonus option
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- New strings for new features
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Type in Simon title
|
||||||
|
|
||||||
|
|
||||||
## 2.10.7 (2020-11-18)
|
## 2.10.7 (2020-11-18)
|
||||||
|
|
||||||
|
@ -2809,6 +2954,12 @@
|
||||||
|
|
||||||
## 2.10.5 (2020-11-14)
|
## 2.10.5 (2020-11-14)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Added missing `cty.` translations to non-English language files
|
||||||
|
|
||||||
|
|
||||||
## 2.10.4 (2020-11-13)
|
## 2.10.4 (2020-11-13)
|
||||||
|
|
||||||
|
@ -2871,6 +3022,18 @@
|
||||||
- Added the `info` type to raised events
|
- Added the `info` type to raised events
|
||||||
- Added support for conditional loading of plugins
|
- Added support for conditional loading of plugins
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translations for plugin-title
|
||||||
|
- Added translations for teagan
|
||||||
|
- Added some translations for the UI
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Replaced a few identical files with symlinks
|
||||||
|
|
||||||
|
|
||||||
## 2.8.1 (2020-08-16)
|
## 2.8.1 (2020-08-16)
|
||||||
|
|
||||||
|
@ -2981,6 +3144,12 @@
|
||||||
- Added a new `debug` setting
|
- Added a new `debug` setting
|
||||||
- Shorthand now proxies objects to allow debug and raise
|
- Shorthand now proxies objects to allow debug and raise
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added backend calls for creating gists/issues on Github
|
||||||
|
|
||||||
|
|
||||||
## 2.7.0 (2020-07-12)
|
## 2.7.0 (2020-07-12)
|
||||||
|
|
||||||
|
@ -3258,6 +3427,13 @@
|
||||||
|
|
||||||
- [Properly escape quotes in imperial units](https://github.com/freesewing/freesewing/issues/437)
|
- [Properly escape quotes in imperial units](https://github.com/freesewing/freesewing/issues/437)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Added translations for Titan
|
||||||
|
- Removed `Circumference` suffix from measurement names
|
||||||
|
|
||||||
### models
|
### models
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
@ -3266,6 +3442,21 @@
|
||||||
- Ported models to the crotchDepth measurement. See [#425](https://github.com/freesewing/freesewing/issues/425)
|
- Ported models to the crotchDepth measurement. See [#425](https://github.com/freesewing/freesewing/issues/425)
|
||||||
- Removed `Circumference` suffix from measurement names
|
- Removed `Circumference` suffix from measurement names
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added new `isDegMeasurement` method. See [#358](https://github.com/freesewing/freesewing/issues/358)
|
||||||
|
- `neckStimate` now supports all new measurements. See [#416](https://github.com/freesewing/freesewing/issues/416)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Changed `neckstimate` to handle new `shoulderSlope` degree measurement. See [#358](https://github.com/freesewing/freesewing/issues/358)
|
||||||
|
- Changed `neckstimate` to support all new measurements. See [#416](https://github.com/freesewing/freesewing/issues/416)
|
||||||
|
- Ported `neckstimate` to the crotchDepth measurement. See [#425](https://github.com/freesewing/freesewing/issues/425)
|
||||||
|
- Removed `Circumference` suffix from measurement names
|
||||||
|
- Added the `isDegMeasurement` method
|
||||||
|
|
||||||
|
|
||||||
## 2.6.0 (2020-05-01)
|
## 2.6.0 (2020-05-01)
|
||||||
|
|
||||||
|
@ -3310,6 +3501,12 @@
|
||||||
- utils now includes `Bezier` which holds the bezier-js library so you don't need to re-import it
|
- utils now includes `Bezier` which holds the bezier-js library so you don't need to re-import it
|
||||||
- We no longer set the plugin configuration/data object to fall in `pattern.use()`
|
- We no longer set the plugin configuration/data object to fall in `pattern.use()`
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Changes to support the renaming of @freesewing/fu to @freesewing/florence
|
||||||
|
|
||||||
|
|
||||||
## 2.5.0 (2020-04-05)
|
## 2.5.0 (2020-04-05)
|
||||||
|
|
||||||
|
@ -3319,9 +3516,21 @@
|
||||||
|
|
||||||
- Diana is a top with a draped neck
|
- Diana is a top with a draped neck
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- title, description, and options for Dianna
|
||||||
|
|
||||||
|
|
||||||
## 2.4.6 (2020-03-23)
|
## 2.4.6 (2020-03-23)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed an bug in the i18n package
|
||||||
|
|
||||||
|
|
||||||
## 2.4.5 (2020-03-19)
|
## 2.4.5 (2020-03-19)
|
||||||
|
|
||||||
|
@ -3337,6 +3546,12 @@
|
||||||
|
|
||||||
- Check whether frontScyeDart option is zero prior to implementing it
|
- Check whether frontScyeDart option is zero prior to implementing it
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- neckstimate() now returns values rounded to nearest mm
|
||||||
|
|
||||||
|
|
||||||
## 2.4.4 (2020-03-15)
|
## 2.4.4 (2020-03-15)
|
||||||
|
|
||||||
|
@ -3373,12 +3588,30 @@
|
||||||
|
|
||||||
## 2.4.3 (2020-03-12)
|
## 2.4.3 (2020-03-12)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added more translations
|
||||||
|
|
||||||
|
|
||||||
## 2.4.2 (2020-03-08)
|
## 2.4.2 (2020-03-08)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added more strings
|
||||||
|
|
||||||
|
|
||||||
## 2.4.1 (2020-03-04)
|
## 2.4.1 (2020-03-04)
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- [#542](https://github.com/freesewing/freesewing.org/issues/542): Prevent neckstimate from throwing when getting an unexpected measurement
|
||||||
|
|
||||||
|
|
||||||
## 2.4.0 (2020-02-29)
|
## 2.4.0 (2020-02-29)
|
||||||
|
|
||||||
|
@ -3542,12 +3775,34 @@
|
||||||
- Added the `Path.noop()` method
|
- Added the `Path.noop()` method
|
||||||
- Added the `Path.insop()` methods
|
- Added the `Path.insop()` methods
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translations for Breanna
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Added/Updated strings for the 2.2 frontend changes
|
||||||
|
- Changed `Joost De Cock` to `Joost` because spam filters don't like cock
|
||||||
|
|
||||||
|
#### Removed
|
||||||
|
|
||||||
|
- Removed the files for homepage translation, and moved that content to markdown
|
||||||
|
- Removed the files for editor translation, as it is no longer used
|
||||||
|
|
||||||
### models
|
### models
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
- Extended the menswear size range to have 10 different sizes, just like womenswear
|
- Extended the menswear size range to have 10 different sizes, just like womenswear
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Neckstimate now uses proportions only
|
||||||
|
|
||||||
|
|
||||||
## 2.1.9 (2020-01-18)
|
## 2.1.9 (2020-01-18)
|
||||||
|
|
||||||
|
@ -3585,6 +3840,12 @@
|
||||||
|
|
||||||
## 2.1.6 (2019-11-24)
|
## 2.1.6 (2019-11-24)
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- [#317](https://github.com/freesewing/freesewing.org/issues/317): Fixed bug where format was not passed to formatImperial
|
||||||
|
|
||||||
|
|
||||||
## 2.1.5 (2019-11-19)
|
## 2.1.5 (2019-11-19)
|
||||||
|
|
||||||
|
@ -3594,12 +3855,40 @@
|
||||||
|
|
||||||
## 2.1.3 (2019-10-18)
|
## 2.1.3 (2019-10-18)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- More translated strings
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Adjusted slope of the shoulderToShoulder measurement in neckstimate data
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- [#250](https://github.com/freesewing/freesewing.org/issues/250): Model page stays empty with pre 2.0 model data: Error: 'neckstimate() requires a valid measurement name as second parameter. (received underBust)'
|
||||||
|
|
||||||
|
|
||||||
## 2.1.2 (2019-10-14)
|
## 2.1.2 (2019-10-14)
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed issue where symlinks were causing all languages to export English strings
|
||||||
|
|
||||||
|
|
||||||
## 2.1.1 (2019-10-13)
|
## 2.1.1 (2019-10-13)
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue with the formatMm method not adding units
|
||||||
|
|
||||||
|
|
||||||
## 2.1.0 (2019-10-06)
|
## 2.1.0 (2019-10-06)
|
||||||
|
|
||||||
|
@ -3645,6 +3934,23 @@
|
||||||
|
|
||||||
- The pattern super constructor now sets a `config` property that holds the pattern configuration. This means that unlike before, there is no need to instantiate a pattern to access its config. You can just import the pattern, and it's config property will contain the pattern config.
|
- The pattern super constructor now sets a `config` property that holds the pattern configuration. This means that unlike before, there is no need to instantiate a pattern to access its config. You can just import the pattern, and it's config property will contain the pattern config.
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added translations for Penelope, Waralee, and Simone
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added backend methods for administration
|
||||||
|
- Added the resendActivationEmail method to backend
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue where optionDefault was not handling list options correctly
|
||||||
|
|
||||||
|
|
||||||
## 2.0.4 (2019-09-27)
|
## 2.0.4 (2019-09-27)
|
||||||
|
|
||||||
|
@ -3663,6 +3969,12 @@
|
||||||
|
|
||||||
- [#106](https://github.com/freesewing/freesewing/issues/106): Fix incorrect hem allowance
|
- [#106](https://github.com/freesewing/freesewing/issues/106): Fix incorrect hem allowance
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fix measurementDiffers to pass breasts parameter to neckstimate
|
||||||
|
|
||||||
|
|
||||||
## 2.0.2 (2019-09-06)
|
## 2.0.2 (2019-09-06)
|
||||||
|
|
||||||
|
@ -3686,6 +3998,18 @@
|
||||||
- [#102](https://github.com/freesewing/freesewing.org/issues/102): Fixed 'Snippets not defined' error when drafting a seperate button placket
|
- [#102](https://github.com/freesewing/freesewing.org/issues/102): Fixed 'Snippets not defined' error when drafting a seperate button placket
|
||||||
- [#103](https://github.com/freesewing/freesewing.org/issues/103): Fixed 'hemSa not defined' when drafting paperless Simon without seam allowance
|
- [#103](https://github.com/freesewing/freesewing.org/issues/103): Fixed 'hemSa not defined' when drafting paperless Simon without seam allowance
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- [#90](https://github.com/freesewing/freesewing/issues/90): Added missing option translations for Benjamin, Florent, Sandy, Shin, and Theo
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Removed lingering debug statement in formatImperial
|
||||||
|
|
||||||
|
|
||||||
## 2.0.1 (2019-09-01)
|
## 2.0.1 (2019-09-01)
|
||||||
|
|
||||||
|
@ -3704,6 +4028,12 @@
|
||||||
|
|
||||||
- [#86](https://github.com/freesewing/freesewing/issues/86): The `seatCircumference` measurement was missing, thus making it unavailable on the website
|
- [#86](https://github.com/freesewing/freesewing/issues/86): The `seatCircumference` measurement was missing, thus making it unavailable on the website
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- The `measurementDiffers` method is new.
|
||||||
|
|
||||||
|
|
||||||
## 2.0.0 (2019-08-25)
|
## 2.0.0 (2019-08-25)
|
||||||
|
|
||||||
|
@ -3877,6 +4207,12 @@
|
||||||
|
|
||||||
### core
|
### core
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Initial release
|
||||||
|
|
||||||
|
### i18n
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
|
||||||
- Initial release
|
- Initial release
|
||||||
|
@ -3893,4 +4229,10 @@
|
||||||
|
|
||||||
- Initial release
|
- Initial release
|
||||||
|
|
||||||
|
### utils
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Initial release
|
||||||
|
|
||||||
|
|
||||||
|
|
40
README.md
40
README.md
|
@ -24,11 +24,6 @@
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a><a
|
|
||||||
href="https://discord.freesewing.org"
|
href="https://discord.freesewing.org"
|
||||||
title="Chat with us on Discord"
|
title="Chat with us on Discord"
|
||||||
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||||
|
@ -38,11 +33,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# FreeSewing
|
# FreeSewing
|
||||||
|
@ -54,7 +44,7 @@
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -64,7 +54,7 @@ This repository is the FreeSewing *monorepo* holding all FreeSewing's websites,
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -76,7 +66,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -92,48 +82,46 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) and [lerna](https://lerna.js.org/) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have those, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 🪡 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 🪡 Makers website: [FreeSewing.eu](https://freesewing.eu)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 🐘 Mastodon: [freesewing.social](https://freesewing.social/)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
Check our [support page](https://freesewing.org/support), or use
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://github.com/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
|
|
||||||
## Contributors ✨
|
## Contributors ✨
|
||||||
|
|
||||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||||
|
|
754
artwork/stickers/sticker-2025.svg
Normal file
754
artwork/stickers/sticker-2025.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 105 KiB |
|
@ -1,80 +0,0 @@
|
||||||
/*
|
|
||||||
* A list of (documentation) authors.
|
|
||||||
* The ID is the (future v3) FreeSewing user ID (zero for now)
|
|
||||||
* The name is what we'll use as display name
|
|
||||||
*/
|
|
||||||
export const authors = {
|
|
||||||
/*
|
|
||||||
* For these we know their FreeSewing ID and they are ordered by that ID
|
|
||||||
* Which means new users/contributors will typically go at the bottom
|
|
||||||
*/
|
|
||||||
|
|
||||||
// The dinosaurs
|
|
||||||
joostdecock: { id: 1, name: 'Joost De Cock' },
|
|
||||||
mocked: { id: 8, name: 'Unknown (mocked in dev)' },
|
|
||||||
'Prof. dr. Sorcha Ní Dhubhghaill': { id: 9, name: 'Prof. dr. Sorcha Ní Dhubhghaill' },
|
|
||||||
woutervdub: { id: 132, name: 'Wouter van Wageningen' },
|
|
||||||
tangerineshark: { id: 13050, name: 'tangerineshark' },
|
|
||||||
Zee: { id: 13460, name: 'Zee' },
|
|
||||||
Natalia: { id: 19867, name: 'Natalia Sayang' },
|
|
||||||
|
|
||||||
// The old guard
|
|
||||||
'Sanne Kalkman': { id: 20343, name: 'Sanne Kalkman' },
|
|
||||||
bobgeorgethe3rd: { id: 20650, name: 'bobgeorgethe3rd' },
|
|
||||||
Tríona: { id: 22104, name: 'Tríona' },
|
|
||||||
starfetch: { id: 22708, name: 'starfetch' },
|
|
||||||
'Morgan Frost': { id: 23957, name: 'Morgan Frost' },
|
|
||||||
jackseye: { id: 25383, name: 'jackseye' },
|
|
||||||
'Nick Dower': { id: 26126, name: 'Nick Dower' },
|
|
||||||
jgfichte: { id: 26295, name: 'jgfichte' },
|
|
||||||
'anna-puk': { id: 26981, name: 'Anna Puk' },
|
|
||||||
'Enoch Riese': { id: 28119, name: 'Enoch Riese' },
|
|
||||||
benjamesben: { id: 28838, name: 'Benjamin' },
|
|
||||||
'Joe Schofield': { id: 28809, name: 'Joe Schofield' },
|
|
||||||
'Vili Sinervä': { id: 31336, name: 'Vili Sinervä' },
|
|
||||||
Thrunic: { id: 33070, name: 'Thrunic' },
|
|
||||||
|
|
||||||
// The new faces
|
|
||||||
'Paula Vidas': { id: 64919, name: 'Paula Vidas' },
|
|
||||||
'Jonathan Haas': { id: 71843, name: 'Jonathan Haas' },
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For the folowwing authors, we don't have their FreeSewing ID
|
|
||||||
* so if they surface, we should try to get it.
|
|
||||||
* Then again, these are based on git contributions, so it's
|
|
||||||
* entirely possible that they don't have an account.
|
|
||||||
* They are all linked to the anonymous user (id 8)
|
|
||||||
*/
|
|
||||||
'Annie Kao': { id: 8, name: 'Annie Kao' },
|
|
||||||
Bart: { id: 8, name: 'Bart' },
|
|
||||||
'James Bradbury': { id: 8, name: 'James Bradbury' },
|
|
||||||
'Glenn Matthews': { id: 8, name: 'Glenn Matthews' },
|
|
||||||
'Raphael Sizemore': { id: 8, name: 'Raphael Sizemore' },
|
|
||||||
mergerg: { id: 9, name: 'mergerg' },
|
|
||||||
'Darigov Research': { id: 8, name: 'Darigov Research' },
|
|
||||||
'Jeroen Hoek': { id: 8, name: 'Jeroen Hoek' },
|
|
||||||
chri5b: { id: 8, name: 'chri5b' },
|
|
||||||
'Ivo Bek': { id: 8, name: 'Ivo Bek' },
|
|
||||||
bijay_d: { id: 8, name: 'bijay_d' },
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Maps git commiter name to author for those cases where the
|
|
||||||
* name in the authors table is different
|
|
||||||
*/
|
|
||||||
export const gitToAuthor = {
|
|
||||||
'Joost De Cock': 'joostdecock',
|
|
||||||
'Benjamin F': 'benjamesben',
|
|
||||||
'Benjamin Fan': 'benjamesben',
|
|
||||||
SeaZeeZee: 'Zee',
|
|
||||||
'Wouter van Wageningen': 'woutervdub',
|
|
||||||
'bobgeorgethe3rd@googlemail.com': 'bobgeorgethe3rd',
|
|
||||||
'70777269+tangerineshark@users.noreply.github.com': 'tangerineshark',
|
|
||||||
'thijs.assies@gmail.com': 'MA-TATAS',
|
|
||||||
'Natalia Sayang': 'Natalia',
|
|
||||||
'109869956+BenJamesBen@users.noreply.github.com': 'benjamesben',
|
|
||||||
'vili.m.sinerva@gmail.com': 'Vili Sinervä',
|
|
||||||
'bekivo@gmail.com': 'Ivo Bek',
|
|
||||||
'paulavidas@gmail.com': 'Paula Vidas',
|
|
||||||
'104308146+KaerMorhan@users.noreply.github.com': 'Morgan Frost',
|
|
||||||
}
|
|
|
@ -7,22 +7,14 @@ _all:
|
||||||
link: 'https://opensource.org/licenses/MIT'
|
link: 'https://opensource.org/licenses/MIT'
|
||||||
img: 'https://img.shields.io/npm/l/{{{fullname}}}.svg?label=License'
|
img: 'https://img.shields.io/npm/l/{{{fullname}}}.svg?label=License'
|
||||||
alt: 'License: MIT'
|
alt: 'License: MIT'
|
||||||
deepscan:
|
|
||||||
link: 'https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256'
|
|
||||||
img: 'https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg'
|
|
||||||
alt: 'Code quality on DeepScan'
|
|
||||||
issues:
|
|
||||||
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'
|
|
||||||
alt: 'Open issues tagged pkg:{{name}}'
|
|
||||||
contributors:
|
contributors:
|
||||||
link: '#contributors-'
|
link: '#contributors-'
|
||||||
img: 'https://img.shields.io/badge/all_contributors-{{ name }}-pink.svg'
|
img: 'https://img.shields.io/badge/all_contributors-{{ name }}-pink.svg'
|
||||||
alt: 'All Contributors'
|
alt: 'All Contributors'
|
||||||
_social:
|
_social:
|
||||||
twitter:
|
forum:
|
||||||
link: 'https://twitter.com/freesewing_org'
|
link: 'https://forum.freesewing.org'
|
||||||
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15'
|
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15'
|
||||||
alt: 'Follow @freesewing_org on Twitter'
|
alt: 'Follow @freesewing_org on Twitter'
|
||||||
discord:
|
discord:
|
||||||
link: 'https://chat.freesewing.org'
|
link: 'https://chat.freesewing.org'
|
||||||
|
@ -32,7 +24,3 @@ _social:
|
||||||
link: 'https://freesewing.org/patrons/join'
|
link: 'https://freesewing.org/patrons/join'
|
||||||
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15'
|
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15'
|
||||||
alt: 'Become a FreeSewing Patron'
|
alt: 'Become a FreeSewing Patron'
|
||||||
instagram:
|
|
||||||
link: 'https://instagram.com/freesewing_org'
|
|
||||||
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15'
|
|
||||||
alt: 'Follow @freesewing_org on Twitter'
|
|
||||||
|
|
|
@ -1,8 +1,32 @@
|
||||||
Unreleased:
|
Unreleased:
|
||||||
|
Changed:
|
||||||
|
|
||||||
|
4.0.0:
|
||||||
|
date: 2024-04-01
|
||||||
|
|
||||||
|
Breaking:
|
||||||
|
core:
|
||||||
|
- FreeSewing new requires NodeJS 20 (or more recent)
|
||||||
|
- We removed all but English translations. We still support i18n in our core library and designs, but no longer provide translations
|
||||||
|
new-design:
|
||||||
|
- The `@freesewing/new-design` package is removed, use `@freesewing/studio` instead
|
||||||
|
|
||||||
Added:
|
Added:
|
||||||
|
collection:
|
||||||
|
- Added a new `@freesewing/collection` package that bundles all our designs
|
||||||
|
config:
|
||||||
|
- Added a new `@freesewing/config` package for shared configuration
|
||||||
core:
|
core:
|
||||||
- The `Path.rotate()` method was added to the core API.
|
- The `Path.rotate()` method was added to the core API.
|
||||||
- The `Path.circleSegment()` method was added to the core API.
|
- The `Path.circleSegment()` method was added to the core API.
|
||||||
|
i18n:
|
||||||
|
- The `@freesewing/i18n` package holds translations in English for where they are needed
|
||||||
|
react:
|
||||||
|
- The `@freesewing/react` package holds shared components, hooks, and context for our React-based frontends
|
||||||
|
studio:
|
||||||
|
- Added `@freesewing/studio`, our new development environment
|
||||||
|
utils:
|
||||||
|
- Added a new `@freesewing/utils` package for shared utils
|
||||||
|
|
||||||
Changed:
|
Changed:
|
||||||
brian:
|
brian:
|
||||||
|
|
|
@ -13,6 +13,9 @@ _types:
|
||||||
dev:
|
dev:
|
||||||
'mocha': *mocha
|
'mocha': *mocha
|
||||||
'chai': *chai
|
'chai': *chai
|
||||||
|
#
|
||||||
|
# Designs
|
||||||
|
#
|
||||||
aaron:
|
aaron:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/brian': *freesewing
|
'@freesewing/brian': *freesewing
|
||||||
|
@ -45,21 +48,6 @@ charlie:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/titan': *freesewing
|
'@freesewing/titan': *freesewing
|
||||||
'@freesewing/snapseries': *freesewing
|
'@freesewing/snapseries': *freesewing
|
||||||
core:
|
|
||||||
_:
|
|
||||||
'@freesewing/core-plugins': *freesewing
|
|
||||||
'bezier-js': '6.1.4'
|
|
||||||
'hooks': '0.3.2'
|
|
||||||
'lodash.get': &_get '4.4.2'
|
|
||||||
'lodash.set': &_set '4.3.2'
|
|
||||||
'lodash.unset': &_unset '4.5.2'
|
|
||||||
'lodash.clonedeep': '^4.5.0'
|
|
||||||
dev:
|
|
||||||
'eslint': &eslint '8.57.0'
|
|
||||||
'nyc': '17.1.0'
|
|
||||||
'mocha': *mocha
|
|
||||||
'chai': *chai
|
|
||||||
'sinon': &sinon '^18.0.0'
|
|
||||||
diana:
|
diana:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/brian': *freesewing
|
'@freesewing/brian': *freesewing
|
||||||
|
@ -89,15 +77,6 @@ lily:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/titan': *freesewing
|
'@freesewing/titan': *freesewing
|
||||||
'@freesewing/paco': *freesewing
|
'@freesewing/paco': *freesewing
|
||||||
new-design:
|
|
||||||
_:
|
|
||||||
'axios': &axios '1.7.2'
|
|
||||||
'chalk': '5.3.0'
|
|
||||||
'execa': '9.2.0'
|
|
||||||
'mustache': &mustache '4.2.0'
|
|
||||||
'ora': &ora '8.0.1'
|
|
||||||
'prompts': '2.4.2'
|
|
||||||
'recursive-readdir': '2.2.3'
|
|
||||||
noble:
|
noble:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/bella': *freesewing
|
'@freesewing/bella': *freesewing
|
||||||
|
@ -105,12 +84,6 @@ paco:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/titan': *freesewing
|
'@freesewing/titan': *freesewing
|
||||||
'@freesewing/snapseries': *freesewing
|
'@freesewing/snapseries': *freesewing
|
||||||
core-plugins:
|
|
||||||
dev:
|
|
||||||
'@freesewing/plugin-annotations': *freesewing
|
|
||||||
'@freesewing/plugin-mirror': *freesewing
|
|
||||||
'@freesewing/plugin-round': *freesewing
|
|
||||||
'@freesewing/plugin-sprinkle': *freesewing
|
|
||||||
plugintest:
|
plugintest:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/plugin-annotations': *freesewing
|
'@freesewing/plugin-annotations': *freesewing
|
||||||
|
@ -124,24 +97,9 @@ plugintest:
|
||||||
'@freesewing/plugin-sprinkle': *freesewing
|
'@freesewing/plugin-sprinkle': *freesewing
|
||||||
'@freesewing/plugin-svgattr': *freesewing
|
'@freesewing/plugin-svgattr': *freesewing
|
||||||
'@freesewing/plugin-theme': *freesewing
|
'@freesewing/plugin-theme': *freesewing
|
||||||
react-components:
|
|
||||||
_:
|
|
||||||
axios: *axios
|
|
||||||
html-react-parser: "^5.0.7"
|
|
||||||
nuqs: "^1.17.6"
|
|
||||||
react-markdown: "^9.0.1"
|
|
||||||
use-local-storage-state: "19.1.0"
|
|
||||||
use-session-storage-state: "^19.0.0"
|
|
||||||
peer:
|
|
||||||
react: "^18.2.0"
|
|
||||||
rehype-jargon:
|
|
||||||
_:
|
|
||||||
'unist-util-visit': &unist-util-visit '5.0.0'
|
|
||||||
'hast-util-from-html': '2.0.1'
|
|
||||||
rehype-highlight-lines:
|
|
||||||
_:
|
|
||||||
'unist-util-remove': '4.0.0'
|
|
||||||
sandy:
|
sandy:
|
||||||
|
_:
|
||||||
|
'@freesewing/plugin-ringsector': *freesewing
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/snapseries': *freesewing
|
'@freesewing/snapseries': *freesewing
|
||||||
shin:
|
shin:
|
||||||
|
@ -184,266 +142,139 @@ yuri:
|
||||||
'@freesewing/brian': *freesewing
|
'@freesewing/brian': *freesewing
|
||||||
'@freesewing/plugin-bust': *freesewing
|
'@freesewing/plugin-bust': *freesewing
|
||||||
|
|
||||||
# Sites go here
|
#
|
||||||
|
# Plugins
|
||||||
backend:
|
#
|
||||||
|
core-plugins:
|
||||||
_:
|
_:
|
||||||
'@aws-sdk/client-sesv2': '3.592.0'
|
'@freesewing/plugin-annotations': *freesewing
|
||||||
'@prisma/client': &prisma '5.15.0'
|
'@freesewing/plugin-measurements': *freesewing
|
||||||
'bcryptjs': '2.4.3'
|
'@freesewing/plugin-mirror': *freesewing
|
||||||
'cors': '2.8.5'
|
'@freesewing/plugin-round': *freesewing
|
||||||
'dotenv': '16.4.5'
|
'@freesewing/plugin-sprinkle': *freesewing
|
||||||
'express': '4.19.2'
|
'@freesewing/plugin-bin-pack': *freesewing
|
||||||
'js-yaml': &jsyaml '4.1.0'
|
|
||||||
'lodash.get': *_get
|
#
|
||||||
'mustache': *mustache
|
# Packages
|
||||||
'otplib': '12.0.1'
|
#
|
||||||
'passport': '0.7.0'
|
core:
|
||||||
'passport-http': '0.3.0'
|
_:
|
||||||
'passport-jwt': '4.0.1'
|
'@freesewing/core-plugins': *freesewing
|
||||||
'pino': '9.2.0'
|
'bezier-js': '6.1.4'
|
||||||
'qrcode': '1.5.3'
|
'hooks': '0.3.2'
|
||||||
'swagger-ui-dist': '5.17.10'
|
'lodash.get': &_get '4.4.2'
|
||||||
'swagger-ui-express': '5.0.0'
|
'lodash.set': &_set '4.3.2'
|
||||||
|
'lodash.unset': &_unset '4.5.2'
|
||||||
|
'lodash.clonedeep': '^4.5.0'
|
||||||
dev:
|
dev:
|
||||||
'chai': *chai
|
'eslint': &eslint '8.57.0'
|
||||||
'chai-http': '5.1.1'
|
'nyc': '17.1.0'
|
||||||
'esbuild': '0.21.3'
|
|
||||||
'mocha': *mocha
|
'mocha': *mocha
|
||||||
'mocha-steps': '1.3.0'
|
'chai': *chai
|
||||||
'nodemon': '3.1.0'
|
'sinon': &sinon '^18.0.0'
|
||||||
'prisma': *prisma
|
collection:
|
||||||
|
|
||||||
dev:
|
|
||||||
_:
|
_:
|
||||||
'@mdx-js/mdx': &mdx '^3.0.0'
|
# Designs
|
||||||
'@mdx-js/react': *mdx
|
'@freesewing/aaron': *freesewing
|
||||||
'@mdx-js/runtime': &mdxRuntime '2.0.0-next.9'
|
'@freesewing/albert': *freesewing
|
||||||
'@next/bundle-analyzer': &next '14.2.3'
|
'@freesewing/bee': *freesewing
|
||||||
'@tailwindcss/typography': &tailwindTypography '0.5.13'
|
'@freesewing/bella': *freesewing
|
||||||
'algoliasearch': &algoliasearch '4.23.3'
|
'@freesewing/benjamin': *freesewing
|
||||||
'daisyui': &daisyui '4.11.1'
|
'@freesewing/bent': *freesewing
|
||||||
'lodash.get': *_get
|
'@freesewing/bibi': *freesewing
|
||||||
'lodash.orderby': &_orderby '4.6.0'
|
'@freesewing/bob': *freesewing
|
||||||
'lodash.set': *_set
|
'@freesewing/bonny': *freesewing
|
||||||
'next': *next
|
'@freesewing/breanna': *freesewing
|
||||||
'react': &react '18.3.1'
|
'@freesewing/brian': *freesewing
|
||||||
'react-copy-to-clipboard': &reactCopyToClipboard '5.1.0'
|
'@freesewing/bruce': *freesewing
|
||||||
'react-dom': *react
|
'@freesewing/carlita': *freesewing
|
||||||
'react-hotkeys-hook': &reactHotkeysHook '4.5.0'
|
'@freesewing/carlton': *freesewing
|
||||||
'react-instantsearch-dom': &reactInstantsearchDom '6.40.4'
|
'@freesewing/cathrin': *freesewing
|
||||||
'react-instantsearch-hooks-web': &reactInstantsearchHooksWeb '6.47.3'
|
'@freesewing/charlie': *freesewing
|
||||||
'react-swipeable': &reactSwipeable '7.0.1'
|
'@freesewing/cornelius': *freesewing
|
||||||
'react-timeago': &reactTimeago '7.2.0'
|
'@freesewing/diana': *freesewing
|
||||||
'rehype-autolink-headings': &rehypeAutolinkHeadings '7.1.0'
|
'@freesewing/florence': *freesewing
|
||||||
'rehype-highlight': &rehypeHighlight '7.0.0'
|
'@freesewing/florent': *freesewing
|
||||||
'rehype-sanitize': &rehypeSanitize '6.0.0'
|
'@freesewing/gozer': *freesewing
|
||||||
'rehype-slug': &rehypeSlug '6.0.0'
|
'@freesewing/hi': *freesewing
|
||||||
'rehype-stringify': &rehypeStringify '10.0.1'
|
'@freesewing/holmes': *freesewing
|
||||||
'remark': &remark 15.0.1
|
'@freesewing/hortensia': *freesewing
|
||||||
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
|
'@freesewing/huey': *freesewing
|
||||||
'remark-copy-linked-files': &remarkCopyLinkedFiles 'git+https://git@github.com/joostdecock/remark-copy-linked-files'
|
'@freesewing/hugo': *freesewing
|
||||||
'remark-gfm': &remarkGfm '4.0.0'
|
'@freesewing/jaeger': *freesewing
|
||||||
'strip-markdown': &stripMarkdown 6.0.0
|
'@freesewing/jane': *freesewing
|
||||||
dev: &nextSiteDevDependencies
|
'@freesewing/lily': *freesewing
|
||||||
'autoprefixer': &autoprefixer '10.4.19'
|
'@freesewing/lucy': *freesewing
|
||||||
'js-yaml': &jsYaml '4.1.0'
|
'@freesewing/lumina': *freesewing
|
||||||
'postcss': &postcss '8.4.38'
|
'@freesewing/lumira': *freesewing
|
||||||
'remark-extract-frontmatter': '3.2.0'
|
'@freesewing/lunetius': *freesewing
|
||||||
'remark-mdx-frontmatter': &mdxfrontmatter '5.0.0'
|
'@freesewing/noble': *freesewing
|
||||||
'tailwindcss': &tailwindcss '3.4.3'
|
'@freesewing/octoplushy': *freesewing
|
||||||
'yaml-loader': '0.8.1'
|
'@freesewing/onyx': *freesewing
|
||||||
|
'@freesewing/opal': *freesewing
|
||||||
lab:
|
'@freesewing/otis': *freesewing
|
||||||
|
'@freesewing/paco': *freesewing
|
||||||
|
'@freesewing/penelope': *freesewing
|
||||||
|
'@freesewing/sandy': *freesewing
|
||||||
|
'@freesewing/shelly': *freesewing
|
||||||
|
'@freesewing/shin': *freesewing
|
||||||
|
'@freesewing/simon': *freesewing
|
||||||
|
'@freesewing/simone': *freesewing
|
||||||
|
'@freesewing/skully': *freesewing
|
||||||
|
'@freesewing/sven': *freesewing
|
||||||
|
'@freesewing/tamiko': *freesewing
|
||||||
|
'@freesewing/teagan': *freesewing
|
||||||
|
'@freesewing/tiberius': *freesewing
|
||||||
|
'@freesewing/titan': *freesewing
|
||||||
|
'@freesewing/trayvon': *freesewing
|
||||||
|
'@freesewing/tristan': *freesewing
|
||||||
|
'@freesewing/uma': *freesewing
|
||||||
|
'@freesewing/umbra': *freesewing
|
||||||
|
'@freesewing/wahid': *freesewing
|
||||||
|
'@freesewing/walburga': *freesewing
|
||||||
|
'@freesewing/waralee': *freesewing
|
||||||
|
'@freesewing/yuri': *freesewing
|
||||||
|
# Plugins
|
||||||
|
'@freesewing/plugin-bust': *freesewing
|
||||||
|
'@freesewing/plugin-flip': *freesewing
|
||||||
|
'@freesewing/core-plugins': *freesewing
|
||||||
|
# Other
|
||||||
|
'@freesewing/core': *freesewing
|
||||||
|
'@freesewing/snapseries': *freesewing
|
||||||
|
studio:
|
||||||
_:
|
_:
|
||||||
'@mdx-js/mdx': *mdx
|
chalk: "^5.2.0"
|
||||||
'@mdx-js/react': *mdx
|
execa: "^9.5.2"
|
||||||
'@mdx-js/runtime': *mdxRuntime
|
glob: "^11.0.1"
|
||||||
'@tailwindcss/typography': *tailwindTypography
|
ora: "^8.2.0"
|
||||||
'algoliasearch': *algoliasearch
|
prompts: "^2.4.2"
|
||||||
'd3-dispatch': &d3dispatch '3.0.1'
|
react:
|
||||||
'd3-drag': &d3drag '3.0.0'
|
|
||||||
'd3-selection': &d3selection '3.0.0'
|
|
||||||
'daisyui': *daisyui
|
|
||||||
'i18next': &i18next '23.11.5'
|
|
||||||
'lodash.get': *_get
|
|
||||||
'lodash.orderby': *_orderby
|
|
||||||
'lodash.set': *_set
|
|
||||||
'next': *next
|
|
||||||
'next-i18next': &nextI18next '15.3.0'
|
|
||||||
'ora': *ora
|
|
||||||
'react': *react
|
|
||||||
'react-copy-to-clipboard': *reactCopyToClipboard
|
|
||||||
'react-hotkeys-hook': *reactHotkeysHook
|
|
||||||
'react-i18next': &reactI18next '14.1.2'
|
|
||||||
'react-instantsearch-dom': *reactInstantsearchDom
|
|
||||||
'react-swipeable': *reactSwipeable
|
|
||||||
'react-timeago': *reactTimeago
|
|
||||||
'rehype-autolink-headings': *rehypeAutolinkHeadings
|
|
||||||
'rehype-highlight': *rehypeHighlight
|
|
||||||
'rehype-sanitize': *rehypeSanitize
|
|
||||||
'rehype-slug': *rehypeSlug
|
|
||||||
'rehype-stringify': *rehypeStringify
|
|
||||||
'remark-copy-linked-files': *remarkCopyLinkedFiles
|
|
||||||
'remark-gfm': *remarkGfm
|
|
||||||
'remark-mdx-frontmatter': *mdxfrontmatter
|
|
||||||
dev:
|
|
||||||
*nextSiteDevDependencies
|
|
||||||
|
|
||||||
org:
|
|
||||||
_:
|
_:
|
||||||
'@bugsnag/js': &bugsnag 7.23.0
|
"@codemirror/lang-yaml": "^6.1.2"
|
||||||
'@bugsnag/plugin-react': 8.1.1
|
"@uiw/react-codemirror": "^4.23.8"
|
||||||
'@mdx-js/mdx': *mdx
|
d3-drag: "3.0.0"
|
||||||
'@mdx-js/react': *mdx
|
d3-selection: "3.0.0"
|
||||||
'@mdx-js/runtime': *mdxRuntime
|
diff: "^7.0.0"
|
||||||
"@tailwindcss/nesting": &twnesting "^0.0.0-insiders.565cd3e"
|
echarts: "^5.6.0"
|
||||||
'@tailwindcss/typography': *tailwindTypography
|
echarts-for-react: "^3.0.2"
|
||||||
'algoliasearch': *algoliasearch
|
file-saver: "^2.0.5"
|
||||||
'react-copy-to-clipboard': *reactCopyToClipboard
|
"highlight.js": "^11.11.1"
|
||||||
'daisyui': *daisyui
|
html-react-parser: "^5.2.2"
|
||||||
'echarts': &echarts 5.5.0
|
jotai: "^2.12.1"
|
||||||
'echarts-for-react': &echartsReact 3.0.2
|
jotai-location: "^0.5.5"
|
||||||
'jotai': &jotai '2.8.3'
|
luxon: "^3.5.0"
|
||||||
'jotai-location': &jotai-location '0.5.5'
|
mustache: "^4.2.0"
|
||||||
'lodash.get': *_get
|
pdfkit: "^0.16.0"
|
||||||
'lodash.orderby': *_orderby
|
react-diff-viewer-continued: "^4.0.5"
|
||||||
'lodash.set': *_set
|
react-dropzone: "^14.3.5"
|
||||||
'luxon': '3.5.0'
|
react-zoom-pan-pinch: "^3.7.0"
|
||||||
'next': *next
|
svg-to-pdfkit: "^0.1.8"
|
||||||
'next-i18next': *nextI18next
|
use-local-storage-state: "^19.5.0"
|
||||||
'ora': *ora
|
web-worker: "^1.5.0"
|
||||||
'react': *react
|
yaml: "^2.7.0"
|
||||||
'react-dom': *react
|
peer:
|
||||||
'react-dropzone': &dropzone '14.2.3'
|
react: &react "^19.0.0"
|
||||||
'react-hotkeys-hook': *reactHotkeysHook
|
utils:
|
||||||
"react-i18next": *reactI18next
|
|
||||||
'react-instantsearch-dom': *reactInstantsearchDom
|
|
||||||
'react-instantsearch-hooks-web': *reactInstantsearchHooksWeb
|
|
||||||
'react-swipeable': *reactSwipeable
|
|
||||||
'react-timeago': *reactTimeago
|
|
||||||
'react-zoom-pan-pinch': &zoompanpinch '3.4.4'
|
|
||||||
'rehype-autolink-headings': *rehypeAutolinkHeadings
|
|
||||||
'rehype-highlight': *rehypeHighlight
|
|
||||||
'rehype-sanitize': *rehypeSanitize
|
|
||||||
'rehype-slug': *rehypeSlug
|
|
||||||
'rehype-stringify': *rehypeStringify
|
|
||||||
'remark': *remark
|
|
||||||
'remark-copy-linked-files': *remarkCopyLinkedFiles
|
|
||||||
'remark-gfm': *remarkGfm
|
|
||||||
'remark-mdx-frontmatter': *mdxfrontmatter
|
|
||||||
'strip-markdown': *stripMarkdown
|
|
||||||
'use-local-storage-state': &use-local-storage-state 19.2.0
|
|
||||||
'yaml-loader': 0.8.1
|
|
||||||
dev: *nextSiteDevDependencies
|
|
||||||
|
|
||||||
shared:
|
|
||||||
_:
|
_:
|
||||||
'@next/mdx': *next
|
lodash: "^4.17.21"
|
||||||
'@resvg/resvg-js': '2.6.2'
|
tlds: "^1.255.0"
|
||||||
'@tailwindcss/typography': *tailwindTypography
|
|
||||||
'Buffer': '0.0.0'
|
|
||||||
'd3-dispatch': '3.0.1'
|
|
||||||
'd3-drag': '3.0.0'
|
|
||||||
'd3-selection': '3.0.0'
|
|
||||||
'daisyui': *daisyui
|
|
||||||
'feed': '4.2.2'
|
|
||||||
'file-saver': &filesaver '2.0.5'
|
|
||||||
'front-matter': '4.0.2'
|
|
||||||
'highlight.js': '11.9.0'
|
|
||||||
'github-slugger': '2.0.0'
|
|
||||||
'jotai': *jotai
|
|
||||||
'jotai-location': *jotai-location
|
|
||||||
'lodash.clonedeep': '4.5.0'
|
|
||||||
'lodash.debounce': &_debounce '^4.0.8'
|
|
||||||
'lodash.orderby': *_orderby
|
|
||||||
'lodash.unset': *_unset
|
|
||||||
'lodash.get': *_get
|
|
||||||
'mdast-util-toc': '7.0.1'
|
|
||||||
'mermaid': '11.3.0'
|
|
||||||
'ora': *ora
|
|
||||||
'pdfkit': &pdfkit '0.15.0'
|
|
||||||
'postcss-for': &postcssfor '2.1.1'
|
|
||||||
'react': *react
|
|
||||||
'react-dom': *react
|
|
||||||
'react-timeago': *reactTimeago
|
|
||||||
'react-zoom-pan-pinch': *zoompanpinch
|
|
||||||
'rehype-autolink-headings': *rehypeAutolinkHeadings
|
|
||||||
'rehype-highlight': *rehypeHighlight
|
|
||||||
'remark-frontmatter': &remarkfrontmatter '5.0.0'
|
|
||||||
'remark-mdx-frontmatter': *mdxfrontmatter
|
|
||||||
"remark-smartypants": &smartypants "3.0.2"
|
|
||||||
"slugify": &slugify "^1.6.6"
|
|
||||||
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
|
|
||||||
'svg-to-pdfkit': &svgtopdfkit 'https://git@github.com/eriese/SVG-to-PDFKit'
|
|
||||||
'tlds': &rlds '1.252.0'
|
|
||||||
'to-vfile': '8.0.0'
|
|
||||||
'unist-util-visit': *unist-util-visit
|
|
||||||
'use-local-storage-state': *use-local-storage-state
|
|
||||||
'web-worker': &webworker '1.3.0'
|
|
||||||
dev:
|
|
||||||
'recursive-readdir': '^2.2.3'
|
|
||||||
'html-to-text': '^9.0.5'
|
|
||||||
|
|
||||||
sde:
|
|
||||||
_:
|
|
||||||
"@freesewing/core": *freesewing
|
|
||||||
"@freesewing/core-plugins": *freesewing
|
|
||||||
"@freesewing/brian": *freesewing
|
|
||||||
"@freesewing/bent": *freesewing
|
|
||||||
"@freesewing/titan": *freesewing
|
|
||||||
"@freesewing/bella": *freesewing
|
|
||||||
"@freesewing/breanna": *freesewing
|
|
||||||
"@freesewing/plugin-bust": *freesewing
|
|
||||||
"@freesewing/plugin-timing": *freesewing
|
|
||||||
"@freesewing/plugin-theme": *freesewing
|
|
||||||
"@freesewing/plugin-i18n": *freesewing
|
|
||||||
"@freesewing/snapseries": *freesewing
|
|
||||||
"@freesewing/react-components": *freesewing
|
|
||||||
'@mdx-js/mdx': *mdx
|
|
||||||
'@mdx-js/react': *mdx
|
|
||||||
'@mdx-js/runtime': *mdxRuntime
|
|
||||||
"@tailwindcss/nesting": *twnesting
|
|
||||||
'@tailwindcss/typography': *tailwindTypography
|
|
||||||
'autoprefixer': *autoprefixer
|
|
||||||
'axios': *axios
|
|
||||||
'd3-dispatch': *d3dispatch
|
|
||||||
'd3-drag': *d3drag
|
|
||||||
'd3-selection': *d3selection
|
|
||||||
'daisyui': *daisyui
|
|
||||||
'echarts': *echarts
|
|
||||||
'echarts-for-react': *echartsReact
|
|
||||||
'file-saver': *filesaver
|
|
||||||
'i18next': *i18next
|
|
||||||
'jotai': *jotai
|
|
||||||
'jotai-location': *jotai-location
|
|
||||||
'js-yaml': *jsyaml
|
|
||||||
'lodash.debounce': *_debounce
|
|
||||||
'lodash.get': *_get
|
|
||||||
'lodash.orderby': *_orderby
|
|
||||||
'lodash.set': *_set
|
|
||||||
'mustache': *mustache
|
|
||||||
"next": *next
|
|
||||||
'next-i18next': *nextI18next
|
|
||||||
'pdfkit': *pdfkit
|
|
||||||
'postcss-for': *postcssfor
|
|
||||||
"react": *react
|
|
||||||
"react-dom": *react
|
|
||||||
'react-copy-to-clipboard': *reactCopyToClipboard
|
|
||||||
'react-hotkeys-hook': *reactHotkeysHook
|
|
||||||
"react-i18next": *reactI18next
|
|
||||||
'react-dropzone': *dropzone
|
|
||||||
'react-swipeable': *reactSwipeable
|
|
||||||
'react-timeago': *reactTimeago
|
|
||||||
'react-zoom-pan-pinch': *zoompanpinch
|
|
||||||
'remark-gfm': *remarkGfm
|
|
||||||
'remark-frontmatter': *remarkfrontmatter
|
|
||||||
'remark-mdx-frontmatter': *mdxfrontmatter
|
|
||||||
'remark-smartypants': *smartypants
|
|
||||||
"slugify": *slugify
|
|
||||||
'svg-to-pdfkit': *svgtopdfkit
|
|
||||||
'tailwindcss': *tailwindcss
|
|
||||||
'tlds': *rlds
|
|
||||||
'use-local-storage-state': *use-local-storage-state
|
|
||||||
'web-worker': *webworker
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
noNamespace:
|
noNamespace:
|
||||||
- rehype-jargon
|
- rehype-jargon
|
||||||
- rehype-highlight-lines
|
- rehype-highlight-lines
|
||||||
customBuild:
|
|
||||||
- i18n
|
|
||||||
- new-design
|
|
||||||
- prettier-config
|
|
||||||
- core-plugins
|
|
||||||
- react-components
|
|
||||||
- rehype-jargon
|
|
||||||
- rehype-highlight-lines
|
|
||||||
skipTests:
|
skipTests:
|
||||||
- theo
|
- theo
|
||||||
packageJson:
|
packageJson:
|
||||||
backend:
|
backend:
|
||||||
name: backend.freesewing.org
|
name: backend.freesewing.eu
|
||||||
bee:
|
bee:
|
||||||
author: bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)
|
author: bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)
|
||||||
benjamin:
|
benjamin:
|
||||||
|
@ -30,8 +22,6 @@ packageJson:
|
||||||
author: woutervdub (https://github.com/woutervdub)
|
author: woutervdub (https://github.com/woutervdub)
|
||||||
holmes:
|
holmes:
|
||||||
author: AlfaLyr (https://github.com/alfalyr)
|
author: AlfaLyr (https://github.com/alfalyr)
|
||||||
i18n:
|
|
||||||
private: true
|
|
||||||
jane:
|
jane:
|
||||||
author: SeaZeeZee (https://github.com/SeaZeeZee)
|
author: SeaZeeZee (https://github.com/SeaZeeZee)
|
||||||
lab:
|
lab:
|
||||||
|
@ -44,19 +34,16 @@ packageJson:
|
||||||
author: Starfetch (https://github.com/starfetch)
|
author: Starfetch (https://github.com/starfetch)
|
||||||
magde:
|
magde:
|
||||||
author: clegganator259 (https://github.com/clegganator259)
|
author: clegganator259 (https://github.com/clegganator259)
|
||||||
new-design:
|
studio:
|
||||||
exports: '!'
|
exports: '!'
|
||||||
bin:
|
bin:
|
||||||
new-design: './index.mjs'
|
studio: './index.mjs'
|
||||||
files:
|
files:
|
||||||
- README.md
|
- "lib/"
|
||||||
- package.json
|
- "utils/"
|
||||||
- lib/**/*
|
- "index.mjs"
|
||||||
- shared/**/*
|
- "template/"
|
||||||
- templates/**/*
|
- "template/designs/.base/"
|
||||||
- index.mjs
|
|
||||||
- package.json
|
|
||||||
- data.mjs
|
|
||||||
module: '!'
|
module: '!'
|
||||||
noble:
|
noble:
|
||||||
author: woutervdub (https://github.com/woutervdub)
|
author: woutervdub (https://github.com/woutervdub)
|
||||||
|
@ -67,26 +54,99 @@ packageJson:
|
||||||
prettier-config:
|
prettier-config:
|
||||||
type: 'module'
|
type: 'module'
|
||||||
exports: { .: './index.json' }
|
exports: { .: './index.json' }
|
||||||
scripts: { build: 'echo "prettier-config: No build required" && exit 0' }
|
|
||||||
keywords:
|
keywords:
|
||||||
- prettier
|
- prettier
|
||||||
files:
|
files:
|
||||||
- index.json
|
- index.json
|
||||||
- package.json
|
- package.json
|
||||||
react-components:
|
react:
|
||||||
exports:
|
exports:
|
||||||
".":
|
".":
|
||||||
"internal": "./src/index.mjs"
|
"internal": "./src/index.mjs"
|
||||||
"default": "./dist/index.mjs"
|
"default": "./dist/index.mjs"
|
||||||
|
# Legacy
|
||||||
"./linedrawings": "./src/linedrawings/index.mjs"
|
"./linedrawings": "./src/linedrawings/index.mjs"
|
||||||
"./pattern": "./src/pattern/index.mjs"
|
"./pattern": "./src/pattern/index.mjs"
|
||||||
"./xray": "./src/pattern-xray/index.mjs"
|
"./xray": "./src/pattern-xray/index.mjs"
|
||||||
|
# Components
|
||||||
|
"./components/Account": "./components/Account/index.mjs"
|
||||||
|
"./components/Admin": "./components/Admin/index.mjs"
|
||||||
|
"./components/Breadcrumbs": "./components/Breadcrumbs/index.mjs"
|
||||||
|
"./components/Button": "./components/Button/index.mjs"
|
||||||
|
"./components/Collection": "./components/Collection/index.mjs"
|
||||||
|
"./components/Control": "./components/Control/index.mjs"
|
||||||
|
"./components/CopyToClipboardButton": "./components/CopyToClipboardButton/index.mjs"
|
||||||
|
"./components/Design": "./components/Design/index.mjs"
|
||||||
|
"./components/DiffViewer": "./components/DiffViewer/index.mjs"
|
||||||
|
"./components/Docusaurus": "./components/Docusaurus/index.mjs"
|
||||||
|
"./components/Echart": "./components/Echart/index.mjs"
|
||||||
|
"./components/Editor": "./components/Editor/index.mjs"
|
||||||
|
"./components/Heading": "./components/Heading/index.mjs"
|
||||||
|
"./components/Highlight": "./components/Highlight/index.mjs"
|
||||||
|
"./components/Icon": "./components/Icon/index.mjs"
|
||||||
|
"./components/Input": "./components/Input/index.mjs"
|
||||||
|
"./components/Json": "./components/Json/index.mjs"
|
||||||
|
"./components/KeyVal": "./components/KeyVal/index.mjs"
|
||||||
|
"./components/Layout": "./components/Layout/index.mjs"
|
||||||
|
"./components/LineDrawing": "./components/LineDrawing/index.mjs"
|
||||||
|
"./components/Link": "./components/Link/index.mjs"
|
||||||
|
"./components/Logo": "./components/Logo/index.mjs"
|
||||||
|
"./components/Markdown": "./components/Markdown/index.mjs"
|
||||||
|
"./components/Mini": "./components/Mini/index.mjs"
|
||||||
|
"./components/Modal": "./components/Modal/index.mjs"
|
||||||
|
"./components/New": "./components/New/index.mjs"
|
||||||
|
"./components/Newsletter": "./components/Newsletter/index.mjs"
|
||||||
|
"./components/Null": "./components/Null/index.mjs"
|
||||||
|
"./components/Number": "./components/Number/index.mjs"
|
||||||
|
"./components/Pattern": "./components/Pattern/index.mjs"
|
||||||
|
"./components/Patrons": "./components/Patrons/index.mjs"
|
||||||
|
"./components/Popout": "./components/Popout/index.mjs"
|
||||||
|
"./components/Profile": "./components/Profile/index.mjs"
|
||||||
|
"./components/Role": "./components/Role/index.mjs"
|
||||||
|
"./components/SignIn": "./components/SignIn/index.mjs"
|
||||||
|
"./components/SignUp": "./components/SignUp/index.mjs"
|
||||||
|
"./components/Spinner": "./components/Spinner/index.mjs"
|
||||||
|
"./components/Stats": "./components/Stats/index.mjs"
|
||||||
|
"./components/Tab": "./components/Tab/index.mjs"
|
||||||
|
"./components/Table": "./components/Table/index.mjs"
|
||||||
|
"./components/Time": "./components/Time/index.mjs"
|
||||||
|
"./components/Uuid": "./components/Uuid/index.mjs"
|
||||||
|
"./components/Ux": "./components/Ux/index.mjs"
|
||||||
|
"./components/Yaml": "./components/Yaml/index.mjs"
|
||||||
|
"./components/Xray": "./components/Xray/index.mjs"
|
||||||
|
# Context
|
||||||
|
"./context/LoadingStatus": "./context/LoadingStatus/index.mjs"
|
||||||
|
"./context/Modal": "./context/Modal/index.mjs"
|
||||||
|
# Hooks
|
||||||
|
"./hooks/useAccount": "./hooks/useAccount/index.mjs"
|
||||||
|
"./hooks/useBackend": "./hooks/useBackend/index.mjs"
|
||||||
|
"./hooks/useControl": "./hooks/useControl/index.mjs"
|
||||||
|
"./hooks/useDesign": "./hooks/useDesign/index.mjs"
|
||||||
|
"./hooks/useDesignTranslation": "./hooks/useDesignTranslation/index.mjs"
|
||||||
|
"./hooks/useSelection": "./hooks/useSelection/index.mjs"
|
||||||
|
"./hooks/useStateObject": "./hooks/useStateObject/index.mjs"
|
||||||
|
# Lib
|
||||||
|
"./lib/RestClient": "./lib/RestClient/index.mjs"
|
||||||
|
"./lib/logoPath": "./components/Logo/path.mjs"
|
||||||
|
files:
|
||||||
|
- "components/"
|
||||||
|
- "context/"
|
||||||
|
- "hooks/"
|
||||||
|
- "lib/"
|
||||||
|
- "README.md"
|
||||||
|
scripts:
|
||||||
|
lint: "eslint 'components/**/*.mjs' 'hooks/**/*.mjs' 'lib/**/*.mjs' 'context/**/*.mjs' 'config/**/*.mjs'"
|
||||||
|
prettier: "npx prettier --write 'components/**/*.mjs' 'hooks/**/*.mjs' 'lib/**/*.mjs' 'context/**/*.mjs' 'config/**/*.mjs'"
|
||||||
|
|
||||||
rehype-hightlight-lines:
|
rehype-hightlight-lines:
|
||||||
private: true
|
private: true
|
||||||
sandy:
|
sandy:
|
||||||
author: AlfaLyr (https://github.com/alfalyr)
|
author: AlfaLyr (https://github.com/alfalyr)
|
||||||
shelly:
|
shelly:
|
||||||
author: Thrunic (https://github.com/Thrunic)
|
author: Thrunic (https://github.com/Thrunic)
|
||||||
|
utils:
|
||||||
|
exports: '!'
|
||||||
|
module: "./src/index.mjs"
|
||||||
onyx:
|
onyx:
|
||||||
author: Thrunic (https://github.com/Thrunic)
|
author: Thrunic (https://github.com/Thrunic)
|
||||||
opal:
|
opal:
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
["en", "fr", "es", "de", "nl", "uk"]
|
["en"]
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
models: {},
|
|
||||||
only: {},
|
|
||||||
}
|
|
|
@ -1,12 +1,6 @@
|
||||||
_:
|
_:
|
||||||
build: &build 'node build.mjs'
|
|
||||||
'build:all': 'yarn build'
|
|
||||||
clean: 'rimraf dist'
|
|
||||||
mbuild: &mbuild 'NO_MINIFY=1 node build.mjs'
|
|
||||||
symlink: 'mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -'
|
symlink: 'mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -'
|
||||||
test: 'echo "{{name}}: No tests configured. Perhaps you could write some?" && exit 0'
|
test: 'echo "{{name}}: No tests configured. Perhaps you could write some?" && exit 0'
|
||||||
vbuild: &vbuild 'VERBOSE=1 node build.mjs'
|
|
||||||
lab: 'cd ../../sites/lab && yarn start'
|
|
||||||
tips: 'node ../../scripts/help.mjs'
|
tips: 'node ../../scripts/help.mjs'
|
||||||
lint: "npx eslint 'src/**' 'tests/*.mjs'"
|
lint: "npx eslint 'src/**' 'tests/*.mjs'"
|
||||||
_types:
|
_types:
|
||||||
|
@ -27,89 +21,38 @@ core:
|
||||||
jsdoc: 'jsdoc -c jsdoc.json -r src'
|
jsdoc: 'jsdoc -c jsdoc.json -r src'
|
||||||
models:
|
models:
|
||||||
test: 'npx mocha tests/*.test.mjs'
|
test: 'npx mocha tests/*.test.mjs'
|
||||||
new-design:
|
studio:
|
||||||
i18n-only: 'SITE="new-design/shared" node --conditions=internal ../../sites/shared/prebuild/i18n-only.mjs'
|
|
||||||
wbuild: '!'
|
|
||||||
lint: "npx eslint 'lib/*.mjs'"
|
lint: "npx eslint 'lib/*.mjs'"
|
||||||
mbuild: '!'
|
|
||||||
prebuild: 'node --conditions=internal ./prebuild.mjs'
|
|
||||||
test: '!'
|
test: '!'
|
||||||
testci: '!'
|
testci: '!'
|
||||||
vbuild: '!'
|
|
||||||
rehype-highlight-lines:
|
rehype-highlight-lines:
|
||||||
build: '!'
|
|
||||||
mbuild: '!'
|
|
||||||
vbuild: '!'
|
|
||||||
'build:all': '!'
|
|
||||||
lint: "npx eslint 'src/*.mjs'"
|
lint: "npx eslint 'src/*.mjs'"
|
||||||
rehype-jargon:
|
rehype-jargon:
|
||||||
lint: "npx eslint 'src/*.mjs'"
|
lint: "npx eslint 'src/*.mjs'"
|
||||||
snapseries:
|
snapseries:
|
||||||
lint: "npx eslint 'src/*.mjs'"
|
lint: "npx eslint 'src/*.mjs'"
|
||||||
react-components:
|
react:
|
||||||
lint: "eslint 'src/**/*.mjs'"
|
lint: "eslint 'src/**/*.mjs'"
|
||||||
|
|
||||||
# Sites go here
|
# Sites go here
|
||||||
backend:
|
backend:
|
||||||
build: 'node build.mjs'
|
|
||||||
clean: 'rimraf dist'
|
|
||||||
dev: 'nodemon src/index.mjs'
|
dev: 'nodemon src/index.mjs'
|
||||||
initdb: 'npx prisma db push'
|
initdb: 'npx prisma db push'
|
||||||
mbuild: *mbuild
|
|
||||||
newdb: 'node ./scripts/newdb.mjs'
|
newdb: 'node ./scripts/newdb.mjs'
|
||||||
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
||||||
rmdb: 'node ./scripts/rmdb.mjs'
|
rmdb: 'node ./scripts/rmdb.mjs'
|
||||||
test: 'npx mocha --require mocha-steps tests/index.mjs'
|
test: 'npx mocha --require mocha-steps tests/index.mjs'
|
||||||
vbuild: *vbuild
|
|
||||||
|
|
||||||
dev:
|
dev: &docusaurus
|
||||||
build: &nextBuild 'next build'
|
build: 'docusaurus build'
|
||||||
cibuild: 'yarn build && node scripts/algolia.mjs'
|
dev: 'docusaurus start'
|
||||||
clean: &nextClean 'rimraf prebuild/* && rimraf public/locales/*/* && rimraf public/feeds/* && rimraf ../shared/prebuild/data/*'
|
lint: 'docusuaurus lint'
|
||||||
dev: &nextDev 'next dev -p 8000'
|
prebuild: 'node --conditions=internal --experimental-json-modules ./prebuild.mjs'
|
||||||
develop: *nextDev
|
start: 'docusaurus start'
|
||||||
i18n: "SITE=dev node --conditions=internal ../shared/prebuild/i18n-only.mjs"
|
|
||||||
lint: &nextLint 'next lint'
|
|
||||||
prebuild: &sitePrebuild 'node --conditions=internal --experimental-json-modules ./prebuild.mjs'
|
|
||||||
serve: "pm2 start npm --name 'dev' -- run start"
|
|
||||||
start: &nextStart 'yarn prebuild && yarn dev'
|
|
||||||
|
|
||||||
email:
|
email:
|
||||||
build: 'maizzle build production'
|
build: 'maizzle build production'
|
||||||
dev: 'maizzle serve'
|
dev: 'maizzle serve'
|
||||||
|
|
||||||
lab:
|
org: *docusaurus
|
||||||
build: *nextBuild
|
|
||||||
cibuild: 'yarn build'
|
|
||||||
dev: *nextDev
|
|
||||||
develop: *nextDev
|
|
||||||
i18n: 'SITE=lab node --conditions=internal ../shared/prebuild/i18n-only.mjs'
|
|
||||||
lint: *nextLint
|
|
||||||
prebuild: *sitePrebuild
|
|
||||||
start: 'cd ../org && yarn prebuild && cd - && yarn prebuild && yarn dev'
|
|
||||||
|
|
||||||
sde:
|
|
||||||
build: *nextBuild
|
|
||||||
cibuild: 'yarn build'
|
|
||||||
dev: *nextDev
|
|
||||||
develop: *nextDev
|
|
||||||
i18n: 'SITE=sde node --conditions=internal ../shared/prebuild/i18n-only.mjs'
|
|
||||||
lint: *nextLint
|
|
||||||
prebuild: *sitePrebuild
|
|
||||||
start: *nextStart
|
|
||||||
|
|
||||||
org:
|
|
||||||
build: *nextBuild
|
|
||||||
cibuild: 'yarn build'
|
|
||||||
clean: *nextClean
|
|
||||||
dev: *nextDev
|
|
||||||
develop: *nextDev
|
|
||||||
i18n: 'SITE=org node --conditions=internal ../shared/prebuild/i18n-only.mjs'
|
|
||||||
lint: *nextLint
|
|
||||||
prebuild: *sitePrebuild
|
|
||||||
start: *nextStart
|
|
||||||
|
|
||||||
sanity:
|
|
||||||
dev: 'sanity dev'
|
|
||||||
start: 'sanity start'
|
|
||||||
build: 'sanity build -y'
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
export const social = {
|
|
||||||
YouTube: 'https://www.youtube.com/@freesewing',
|
|
||||||
Discord: 'https://discord.freesewing.org/',
|
|
||||||
Instagram: 'https://instagram.com/freesewing_org',
|
|
||||||
Facebook: 'https://www.facebook.com/groups/627769821272714/',
|
|
||||||
GitHub: 'https://github.com/freesewing',
|
|
||||||
Reddit: 'https://www.reddit.com/r/freesewing/',
|
|
||||||
Mastodon: 'https://freesewing.social/@freesewing',
|
|
||||||
Bluesky: 'https://bsky.app/profile/freesewing.org',
|
|
||||||
}
|
|
|
@ -4,8 +4,6 @@
|
||||||
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"underwear"
|
"underwear"
|
||||||
|
@ -13,8 +11,8 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"stretch",
|
"stretch",
|
||||||
"knitBinding",
|
"knit-binding",
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"albert": {
|
"albert": {
|
||||||
|
@ -22,15 +20,13 @@
|
||||||
"description": "A FreeSewing pattern for an apron",
|
"description": "A FreeSewing pattern for an apron",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories"
|
"accessories"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"knitBinding",
|
"knit-binding",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"pocket"
|
"pocket"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -39,8 +35,6 @@
|
||||||
"description": "A FreeSewing pattern for a bikini top",
|
"description": "A FreeSewing pattern for a bikini top",
|
||||||
"design": "PrudenceRabbit",
|
"design": "PrudenceRabbit",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"swimwear"
|
"swimwear"
|
||||||
|
@ -48,7 +42,7 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"stretch",
|
"stretch",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision"
|
"precision"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -60,8 +54,6 @@
|
||||||
"Joost De Cock"
|
"Joost De Cock"
|
||||||
],
|
],
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
|
@ -76,8 +68,6 @@
|
||||||
"description": "A FreeSewing pattern for a bow tie",
|
"description": "A FreeSewing pattern for a bow tie",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories"
|
"accessories"
|
||||||
],
|
],
|
||||||
|
@ -91,16 +81,14 @@
|
||||||
"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",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"setSleeve"
|
"set-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"bibi": {
|
"bibi": {
|
||||||
|
@ -108,16 +96,14 @@
|
||||||
"description": "A FreeSewing pattern for a knit top body block",
|
"description": "A FreeSewing pattern for a knit top body block",
|
||||||
"design": "Jonathan Haas",
|
"design": "Jonathan Haas",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"hem",
|
"hem",
|
||||||
"flatSleeve"
|
"flat-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"bob": {
|
"bob": {
|
||||||
|
@ -125,25 +111,29 @@
|
||||||
"description": "A FreeSewing pattern for a bib",
|
"description": "A FreeSewing pattern for a bib",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"infants"
|
"infants"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"biasTape",
|
"bias-tape",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"snap"
|
"snap"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"bonny": {
|
||||||
|
"code": "Jonathan Haas",
|
||||||
|
"description": "A FreeSewing pattern that turns measurements into a body outline",
|
||||||
|
"design": "Jonathan Haas",
|
||||||
|
"difficulty": 1,
|
||||||
|
"tags": [],
|
||||||
|
"techniques": []
|
||||||
|
},
|
||||||
"breanna": {
|
"breanna": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern for a basic body block for womenswear",
|
"description": "A FreeSewing pattern for a basic body block for womenswear",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
|
@ -158,15 +148,13 @@
|
||||||
"description": "A FreeSewing pattern for a basic body block for menswear",
|
"description": "A FreeSewing pattern for a basic body block for menswear",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"block",
|
"block",
|
||||||
"flatSleeve"
|
"flat-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"bruce": {
|
"bruce": {
|
||||||
|
@ -174,8 +162,6 @@
|
||||||
"description": "A FreeSewing pattern for boxer briefs",
|
"description": "A FreeSewing pattern for boxer briefs",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"underwear"
|
"underwear"
|
||||||
|
@ -183,7 +169,7 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"stretch",
|
"stretch",
|
||||||
"hem",
|
"hem",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"elastic"
|
"elastic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -195,8 +181,6 @@
|
||||||
"Joost De Cock"
|
"Joost De Cock"
|
||||||
],
|
],
|
||||||
"difficulty": 5,
|
"difficulty": 5,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"coats"
|
"coats"
|
||||||
|
@ -204,12 +188,12 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"pocket",
|
"pocket",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"setSleeve",
|
"set-sleeve",
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"lining",
|
"lining",
|
||||||
"princessSeam",
|
"princess-seam",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"button"
|
"button"
|
||||||
]
|
]
|
||||||
|
@ -222,8 +206,6 @@
|
||||||
"Joost De Cock"
|
"Joost De Cock"
|
||||||
],
|
],
|
||||||
"difficulty": 5,
|
"difficulty": 5,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"coats"
|
"coats"
|
||||||
|
@ -231,10 +213,10 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"pocket",
|
"pocket",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"setSleeve",
|
"set-sleeve",
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"lining",
|
"lining",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"button"
|
"button"
|
||||||
|
@ -248,8 +230,6 @@
|
||||||
"Joost De Cock"
|
"Joost De Cock"
|
||||||
],
|
],
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"underwear"
|
"underwear"
|
||||||
|
@ -257,7 +237,7 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"boning",
|
"boning",
|
||||||
"precision",
|
"precision",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"interfacing"
|
"interfacing"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -266,22 +246,20 @@
|
||||||
"description": "A FreeSewing pattern for chino trousers",
|
"description": "A FreeSewing pattern for chino trousers",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"fly",
|
"fly",
|
||||||
"zipper",
|
"zipper",
|
||||||
"button",
|
"button",
|
||||||
"dart",
|
"dart",
|
||||||
"hem",
|
"hem",
|
||||||
"seamPocket"
|
"seam-pocket"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"cornelius": {
|
"cornelius": {
|
||||||
|
@ -289,14 +267,12 @@
|
||||||
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
|
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"fly",
|
"fly",
|
||||||
"zipper",
|
"zipper",
|
||||||
"button",
|
"button",
|
||||||
|
@ -308,35 +284,29 @@
|
||||||
"description": "A FreeSewing pattern for a top with a draped neck",
|
"description": "A FreeSewing pattern for a top with a draped neck",
|
||||||
"design": "Erica Alcusa Sáez",
|
"design": "Erica Alcusa Sáez",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"flatSleeve",
|
"flat-sleeve",
|
||||||
"hem"
|
"hem"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"examples": {
|
"examples": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern holding examples for our documentation",
|
"description": "A FreeSewing pattern holding examples for our documentation"
|
||||||
"lab": false,
|
|
||||||
"org": false
|
|
||||||
},
|
},
|
||||||
"florence": {
|
"florence": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern for a face mask",
|
"description": "A FreeSewing pattern for a face mask",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories"
|
"accessories"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"florent": {
|
"florent": {
|
||||||
|
@ -347,14 +317,12 @@
|
||||||
"description": "A FreeSewing pattern for a flat cap",
|
"description": "A FreeSewing pattern for a flat cap",
|
||||||
"design": "Quentin Felix",
|
"design": "Quentin Felix",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"hats"
|
"hats"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"gozer": {
|
"gozer": {
|
||||||
|
@ -362,8 +330,6 @@
|
||||||
"description": "A FreeSewing pattern for a ghost costume",
|
"description": "A FreeSewing pattern for a ghost costume",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"costumes"
|
"costumes"
|
||||||
],
|
],
|
||||||
|
@ -376,14 +342,12 @@
|
||||||
"description": "A FreeSewing pattern for a shark plush toy",
|
"description": "A FreeSewing pattern for a shark plush toy",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"toys"
|
"toys"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"dart"
|
"dart"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -395,14 +359,12 @@
|
||||||
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
|
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
|
||||||
"design": "Erica Alcusa Sáez",
|
"design": "Erica Alcusa Sáez",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"hats"
|
"hats"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"lining"
|
"lining"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -414,14 +376,12 @@
|
||||||
"Wouter Van Wageningen"
|
"Wouter Van Wageningen"
|
||||||
],
|
],
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"bags"
|
"bags"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"lining",
|
"lining",
|
||||||
"zipper"
|
"zipper"
|
||||||
|
@ -432,17 +392,15 @@
|
||||||
"description": "A FreeSewing pattern for a zip-up hoodie",
|
"description": "A FreeSewing pattern for a zip-up hoodie",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"pocket",
|
"pocket",
|
||||||
"zipper",
|
"zipper",
|
||||||
"ribbing",
|
"ribbing",
|
||||||
"flatSleeve"
|
"flat-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hugo": {
|
"hugo": {
|
||||||
|
@ -450,16 +408,14 @@
|
||||||
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
|
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"pocket",
|
"pocket",
|
||||||
"ribbing",
|
"ribbing",
|
||||||
"raglanSleeve"
|
"raglan-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"jaeger": {
|
"jaeger": {
|
||||||
|
@ -467,8 +423,6 @@
|
||||||
"description": "A FreeSewing pattern for a sport coat style jacket",
|
"description": "A FreeSewing pattern for a sport coat style jacket",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 5,
|
"difficulty": 5,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"coats"
|
"coats"
|
||||||
|
@ -476,10 +430,10 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"pocket",
|
"pocket",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"setSleeve",
|
"set-sleeve",
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"lining",
|
"lining",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"button"
|
"button"
|
||||||
|
@ -490,8 +444,6 @@
|
||||||
"description": "A FreeSewing pattern for a 1790s shift",
|
"description": "A FreeSewing pattern for a 1790s shift",
|
||||||
"design": "SeaZeeZee",
|
"design": "SeaZeeZee",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"historical",
|
"historical",
|
||||||
|
@ -503,24 +455,20 @@
|
||||||
},
|
},
|
||||||
"legend": {
|
"legend": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern to document pattern notation",
|
"description": "A FreeSewing pattern to document pattern notation"
|
||||||
"lab": false,
|
|
||||||
"org": false
|
|
||||||
},
|
},
|
||||||
"lucy": {
|
"lucy": {
|
||||||
"code": "SeaZeeZee",
|
"code": "SeaZeeZee",
|
||||||
"description": "A FreeSewing pattern for a historical tie-on pocket",
|
"description": "A FreeSewing pattern for a historical tie-on pocket",
|
||||||
"design": "SeaZeeZee",
|
"design": "SeaZeeZee",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"historical",
|
"historical",
|
||||||
"bags"
|
"bags"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"lumina": {
|
"lumina": {
|
||||||
|
@ -528,15 +476,13 @@
|
||||||
"description": "A FreeSewing pattern for leggings",
|
"description": "A FreeSewing pattern for leggings",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"stretch",
|
"stretch",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"elastic"
|
"elastic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -545,15 +491,13 @@
|
||||||
"description": "A FreeSewing pattern for leggings",
|
"description": "A FreeSewing pattern for leggings",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"stretch",
|
"stretch",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"elastic"
|
"elastic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -562,8 +506,6 @@
|
||||||
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
|
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
|
||||||
"design": "Rika Tamaike",
|
"design": "Rika Tamaike",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"coats",
|
"coats",
|
||||||
|
@ -578,8 +520,6 @@
|
||||||
"description": "A FreeSewing pattern for a bike messenger bag",
|
"description": "A FreeSewing pattern for a bike messenger bag",
|
||||||
"design": "clegganator259",
|
"design": "clegganator259",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": false,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"bags"
|
"bags"
|
||||||
|
@ -591,17 +531,15 @@
|
||||||
"description": "A FreeSewing pattern for a princess seam bodice block",
|
"description": "A FreeSewing pattern for a princess seam bodice block",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"block",
|
"block",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"princessSeam"
|
"princess-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"octoplushy": {
|
"octoplushy": {
|
||||||
|
@ -609,14 +547,12 @@
|
||||||
"description": "A FreeSewing pattern for an octopus plushy toy",
|
"description": "A FreeSewing pattern for an octopus plushy toy",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"toys"
|
"toys"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision"
|
"precision"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -625,8 +561,6 @@
|
||||||
"description": "A FreeSewing pattern for one-piece garments",
|
"description": "A FreeSewing pattern for one-piece garments",
|
||||||
"design": "Thrunic",
|
"design": "Thrunic",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"swimwear",
|
"swimwear",
|
||||||
"pajamas",
|
"pajamas",
|
||||||
|
@ -634,7 +568,7 @@
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"stretch",
|
"stretch",
|
||||||
"lining",
|
"lining",
|
||||||
"zipper",
|
"zipper",
|
||||||
|
@ -646,16 +580,14 @@
|
||||||
"description": "A FreeSewing pattern for overalls",
|
"description": "A FreeSewing pattern for overalls",
|
||||||
"design": "Thrunic",
|
"design": "Thrunic",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"overalls",
|
"overalls",
|
||||||
"onePiece"
|
"onePiece"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"flatFelledSeam",
|
"flat-felled-seam",
|
||||||
"hem",
|
"hem",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"button",
|
"button",
|
||||||
"pocket"
|
"pocket"
|
||||||
]
|
]
|
||||||
|
@ -665,8 +597,6 @@
|
||||||
"description": "A FreeSewing pattern for a baby romper",
|
"description": "A FreeSewing pattern for a baby romper",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [],
|
"tags": [],
|
||||||
"techniques": []
|
"techniques": []
|
||||||
},
|
},
|
||||||
|
@ -675,17 +605,15 @@
|
||||||
"description": "A FreeSewing pattern for summer pants",
|
"description": "A FreeSewing pattern for summer pants",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"elastic",
|
"elastic",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"pocket",
|
"pocket",
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"hem"
|
"hem"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -694,30 +622,24 @@
|
||||||
"description": "A FreeSewing pattern for a pencil skirt",
|
"description": "A FreeSewing pattern for a pencil skirt",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"skirts"
|
"skirts"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision",
|
"precision",
|
||||||
"zipper"
|
"zipper"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"plugintest": {
|
"plugintest": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern to test (y)our plugins",
|
"description": "A FreeSewing pattern to test (y)our plugins"
|
||||||
"lab": true,
|
|
||||||
"org": false
|
|
||||||
},
|
},
|
||||||
"rendertest": {
|
"rendertest": {
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"description": "A FreeSewing pattern to test (y)our render engine our CSS",
|
"description": "A FreeSewing pattern to test (y)our render engine our CSS"
|
||||||
"lab": true,
|
|
||||||
"org": false
|
|
||||||
},
|
},
|
||||||
"sandy": {
|
"sandy": {
|
||||||
"code": [
|
"code": [
|
||||||
|
@ -727,14 +649,12 @@
|
||||||
"description": "A FreeSewing pattern for a circle skirt",
|
"description": "A FreeSewing pattern for a circle skirt",
|
||||||
"design": "Erica Alcusa Sáez",
|
"design": "Erica Alcusa Sáez",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"skirts"
|
"skirts"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"button",
|
"button",
|
||||||
"hem"
|
"hem"
|
||||||
]
|
]
|
||||||
|
@ -744,8 +664,6 @@
|
||||||
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
|
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
|
||||||
"design": "Thrunic",
|
"design": "Thrunic",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"swimwear"
|
"swimwear"
|
||||||
|
@ -753,8 +671,8 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"stretch",
|
"stretch",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"raglanSleeve"
|
"raglan-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"shin": {
|
"shin": {
|
||||||
|
@ -762,8 +680,6 @@
|
||||||
"description": "A FreeSewing pattern for swim trunks",
|
"description": "A FreeSewing pattern for swim trunks",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"swimwear"
|
"swimwear"
|
||||||
|
@ -771,7 +687,7 @@
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"hem",
|
"hem",
|
||||||
"stretch",
|
"stretch",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"elastic"
|
"elastic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -780,8 +696,6 @@
|
||||||
"description": "A FreeSewing pattern for a button down shirt",
|
"description": "A FreeSewing pattern for a button down shirt",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
|
@ -789,9 +703,9 @@
|
||||||
"hem",
|
"hem",
|
||||||
"button",
|
"button",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"flatFelledSeam",
|
"flat-felled-seam",
|
||||||
"flatSleeve"
|
"flat-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"simone": {
|
"simone": {
|
||||||
|
@ -799,8 +713,6 @@
|
||||||
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
|
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
|
@ -808,9 +720,9 @@
|
||||||
"hem",
|
"hem",
|
||||||
"button",
|
"button",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"flatFelledSeam",
|
"flat-felled-seam",
|
||||||
"flatSleeve"
|
"flat-sleeve"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"skully": {
|
"skully": {
|
||||||
|
@ -818,14 +730,12 @@
|
||||||
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
|
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories",
|
"accessories",
|
||||||
"toys"
|
"toys"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision"
|
"precision"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -834,14 +744,12 @@
|
||||||
"description": "A FreeSewing pattern for a straightforward sweater",
|
"description": "A FreeSewing pattern for a straightforward sweater",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"flatSleeve",
|
"flat-sleeve",
|
||||||
"ribbing"
|
"ribbing"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -850,13 +758,11 @@
|
||||||
"description": "A FreeSewing pattern for a zero-waste top",
|
"description": "A FreeSewing pattern for a zero-waste top",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"teagan": {
|
"teagan": {
|
||||||
|
@ -864,16 +770,14 @@
|
||||||
"description": "A FreeSewing pattern for a T-shirt",
|
"description": "A FreeSewing pattern for a T-shirt",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"hem",
|
"hem",
|
||||||
"flatSleeve",
|
"flat-sleeve",
|
||||||
"knitBand"
|
"knit-band"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"tiberius": {
|
"tiberius": {
|
||||||
|
@ -881,8 +785,6 @@
|
||||||
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
|
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
|
||||||
"design": "Rika Tamaike",
|
"design": "Rika Tamaike",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops",
|
"tops",
|
||||||
"historical"
|
"historical"
|
||||||
|
@ -897,8 +799,6 @@
|
||||||
"Joost De Cock"
|
"Joost De Cock"
|
||||||
],
|
],
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"blocks",
|
"blocks",
|
||||||
"bottoms"
|
"bottoms"
|
||||||
|
@ -910,8 +810,6 @@
|
||||||
"description": "A FreeSewing pattern for a tie",
|
"description": "A FreeSewing pattern for a tie",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"accessories"
|
"accessories"
|
||||||
],
|
],
|
||||||
|
@ -925,13 +823,11 @@
|
||||||
"description": "A FreeSewing pattern for a fitted top with prince(ss) seams",
|
"description": "A FreeSewing pattern for a fitted top with prince(ss) seams",
|
||||||
"design": "Natalia Sayang",
|
"design": "Natalia Sayang",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"precision"
|
"precision"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -940,31 +836,27 @@
|
||||||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"underwear"
|
"underwear"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"elastic",
|
"elastic",
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"umbra": {
|
"umbra": {
|
||||||
"code": "Joost De Cock, Jonathan Haas",
|
"code": ["Joost De Cock", "Jonathan Haas"],
|
||||||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
||||||
"design": "Joost De Cock, Jonathan Haas",
|
"design": ["Joost De Cock", "Jonathan Haas"],
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"underwear"
|
"underwear"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"elastic",
|
"elastic",
|
||||||
"curvedSeam"
|
"curved-seam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"wahid": {
|
"wahid": {
|
||||||
|
@ -972,17 +864,15 @@
|
||||||
"description": "A FreeSewing pattern for a classic fitted waistcoat",
|
"description": "A FreeSewing pattern for a classic fitted waistcoat",
|
||||||
"design": "Joost De Cock",
|
"design": "Joost De Cock",
|
||||||
"difficulty": 4,
|
"difficulty": 4,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"hem",
|
"hem",
|
||||||
"interfacing",
|
"interfacing",
|
||||||
"lining",
|
"lining",
|
||||||
"weltPocket",
|
"welt-pocket",
|
||||||
"button"
|
"button"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -991,8 +881,6 @@
|
||||||
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
|
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
|
||||||
"design": "Rika Tamaike",
|
"design": "Rika Tamaike",
|
||||||
"difficulty": 1,
|
"difficulty": 1,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"historical"
|
"historical"
|
||||||
|
@ -1006,16 +894,14 @@
|
||||||
"description": "A FreeSewing pattern for wrap pants",
|
"description": "A FreeSewing pattern for wrap pants",
|
||||||
"design": "Wouter Van Wageningen",
|
"design": "Wouter Van Wageningen",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"hem",
|
"hem",
|
||||||
"weltPocket"
|
"welt-pocket"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"yuri": {
|
"yuri": {
|
||||||
|
@ -1023,31 +909,27 @@
|
||||||
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
|
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
|
||||||
"design": "Biou",
|
"design": "Biou",
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"tops"
|
"tops"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"flatSleeve",
|
"flat-sleeve",
|
||||||
"hem",
|
"hem",
|
||||||
"button"
|
"button"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"lily": {
|
"lily": {
|
||||||
"code": "Anna Puk, Joost De Cock",
|
"code": ["Anna Puk", "Joost De Cock"],
|
||||||
"description": "A FreeSewing pattern for basic leggings",
|
"description": "A FreeSewing pattern for basic leggings",
|
||||||
"design": "Anna Puk",
|
"design": "Anna Puk",
|
||||||
"difficulty": 2,
|
"difficulty": 2,
|
||||||
"lab": true,
|
|
||||||
"org": true,
|
|
||||||
"tags": [
|
"tags": [
|
||||||
"bottoms"
|
"bottoms"
|
||||||
],
|
],
|
||||||
"techniques": [
|
"techniques": [
|
||||||
"elastic",
|
"elastic",
|
||||||
"curvedSeam",
|
"curved-seam",
|
||||||
"hem"
|
"hem"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{
|
{
|
||||||
|
"collection": "All FreeSewing designs bundles into one pacakge, our collection",
|
||||||
|
"config": "Various configurations for FreeSewing",
|
||||||
"core": "A library for creating made-to-measure sewing patterns",
|
"core": "A library for creating made-to-measure sewing patterns",
|
||||||
|
"i18n": "Translation for the FreeSewing project",
|
||||||
"models": "Body measurements data for a range of default sizes",
|
"models": "Body measurements data for a range of default sizes",
|
||||||
"new-design": "Initializer package for a new FreeSewing design: npx @freesewing/new-design",
|
"studio": "Initializer package for a the FreeSewing design studio: npx @freesewing/studio",
|
||||||
"prettier-config": "FreeSewing's shared configuration for prettier",
|
"prettier-config": "FreeSewing's shared configuration for prettier",
|
||||||
"react-components": "React components by/for FreeSewing",
|
"react": "React components, hooks and context by/for FreeSewing",
|
||||||
"snapseries": "A series of common sizes for elastics and other series to be used with snapped percentage options",
|
"snapseries": "A series of common sizes for elastics and other series to be used with snapped percentage options",
|
||||||
"rehype-jargon": "A Rehype plugin for jargon terms",
|
"utils": "A number of utilities, typically used by FreeSewing frontend code"
|
||||||
"rehype-highlight-lines": "A Rehype plugin to add highlighted lines to code blocks"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
/* This script will build the package with esbuild */
|
|
||||||
import esbuild from 'esbuild'
|
|
||||||
import pkg from './package.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Create banner based on package info
|
|
||||||
const banner = `/**
|
|
||||||
* ${pkg.name} | v${pkg.version}
|
|
||||||
* ${pkg.description}
|
|
||||||
* (c) ${new Date().getFullYear()} ${pkg.author}
|
|
||||||
* @license ${pkg.license}
|
|
||||||
*/`
|
|
||||||
|
|
||||||
// Shared esbuild options
|
|
||||||
const options = {
|
|
||||||
banner: { js: banner },
|
|
||||||
bundle: true,
|
|
||||||
entryPoints: ['src/index.mjs'],
|
|
||||||
format: 'esm',
|
|
||||||
outfile: 'dist/index.mjs',
|
|
||||||
external: ['@freesewing'],
|
|
||||||
metafile: process.env.VERBOSE ? true : false,
|
|
||||||
minify: process.env.NO_MINIFY ? false : true,
|
|
||||||
sourcemap: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let esbuild generate the build
|
|
||||||
const build = async () => {
|
|
||||||
const result = await esbuild.build(options).catch(() => process.exit(1))
|
|
||||||
|
|
||||||
if (process.env.VERBOSE) {
|
|
||||||
const info = await esbuild.analyzeMetafile(result.metafile)
|
|
||||||
console.log(info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
build()
|
|
|
@ -4,7 +4,7 @@
|
||||||
// Dollar signs are allowed in EcmaScript identifier names,
|
// Dollar signs are allowed in EcmaScript identifier names,
|
||||||
// which is helpful when running unrendered Mustache templates through eslint.
|
// which is helpful when running unrendered Mustache templates through eslint.
|
||||||
//}}{{=$$ $$=}}
|
//}}{{=$$ $$=}}
|
||||||
import { $$Name$$, i18n } from '../src/index.mjs'
|
import { $$Name$$, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -13,7 +13,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig($$Name$$)
|
testPatternConfig($$Name$$, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n($$Name$$, i18n)
|
testPatternI18n($$Name$$, i18n)
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' assert { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' assert { type: 'json' }
|
|
||||||
import es from './es.json' assert { type: 'json' }
|
|
||||||
import fr from './fr.json' assert { type: 'json' }
|
|
||||||
import nl from './nl.json' assert { type: 'json' }
|
|
||||||
import uk from './uk.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
"name": "{{name}}",
|
"name": "{{name}}",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "{{description}}",
|
"description": "{{description}}",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://codeberg.org/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.eu/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "https://codeberg.org/freesewing/freesewing",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/index.mjs",
|
"main": "src/index.mjs",
|
||||||
"module": "dist/index.mjs",
|
"module": "dist/index.mjs",
|
||||||
"scripts": {}
|
"scripts": {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
import chai from 'chai'
|
import chai from 'chai'
|
||||||
import models from '@freesewing/models'
|
import models from '@freesewing/models'
|
||||||
import patterns from '@freesewing/pattern-info'
|
import patterns from '@freesewing/pattern-info'
|
||||||
import Pattern from './dist/index.mjs'
|
import Pattern from './src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/patterns/config.mjs'
|
import { testPatternConfig } from '../../../tests/patterns/config.mjs'
|
||||||
|
|
|
@ -12,28 +12,23 @@
|
||||||
},
|
},
|
||||||
"keywords": ["freesewing"],
|
"keywords": ["freesewing"],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"cibuild_step1": "node build.mjs",
|
|
||||||
"build": "node build.mjs",
|
|
||||||
"testonly": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register",
|
"testonly": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register",
|
||||||
"publish": "npm run build && npm publish --access public"
|
"publish": "npm publish --access public"
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"files": ["dist/*", "README.md"],
|
"files": ["src/", "i18n/", "about.json", "README.md"],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
"name": "{{pluginName}}",
|
"name": "{{pluginName}}",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "{{description}}",
|
"description": "{{description}}",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://codeberg.org/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.eu/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "https://codeberg.org/freesewing/freesewing",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/index.mjs",
|
"main": "dist/index.mjs",
|
||||||
"module": "dist/index.mjs",
|
"module": "dist/index.mjs",
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -41,7 +41,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -53,7 +53,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -69,49 +69,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
|
@ -24,11 +24,6 @@
|
||||||
><img src="https://img.shields.io/badge/all_contributors-{{ allcontributors }}-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-{{ allcontributors }}-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a><a
|
|
||||||
href="https://discord.freesewing.org"
|
href="https://discord.freesewing.org"
|
||||||
title="Chat with us on Discord"
|
title="Chat with us on Discord"
|
||||||
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||||
|
@ -38,11 +33,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# FreeSewing
|
# FreeSewing
|
||||||
|
@ -54,7 +44,7 @@
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -64,7 +54,7 @@ This repository is the FreeSewing *monorepo* holding all FreeSewing's websites,
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -76,7 +66,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -92,44 +82,42 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) and [lerna](https://lerna.js.org/) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have those, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 🪡 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 🪡 Makers website: [FreeSewing.eu](https://freesewing.eu)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 🐘 Mastodon: [freesewing.social](https://freesewing.social/)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
Check our [support page](https://freesewing.org/support), or use
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://github.com/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is auto-generated.
|
|
||||||
* Any manual changes will be overwritten.
|
|
||||||
*/
|
|
||||||
{{#designs}}
|
|
||||||
import { {{ Name }} as {{ name }} } from '@freesewing/{{ name }}'
|
|
||||||
{{/designs}}
|
|
||||||
|
|
||||||
export const designs = {
|
|
||||||
{{#designs}}
|
|
||||||
{{ name }},
|
|
||||||
{{/designs}}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
|
||||||
|
|
||||||
export const collection = Object.keys(designs)
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
* This defines the FreeSewing web of trust
|
|
||||||
* See: https://FreeSewing.dev/reference/trust
|
|
||||||
*/
|
|
||||||
export const trustees = {
|
|
||||||
1: {
|
|
||||||
x: 1306,
|
|
||||||
y: 319,
|
|
||||||
title: 'joost',
|
|
||||||
in: 'Antwerp',
|
|
||||||
},
|
|
||||||
132: {
|
|
||||||
x: 457,
|
|
||||||
y: 345,
|
|
||||||
title: 'woutervdub',
|
|
||||||
in: 'Seattle',
|
|
||||||
},
|
|
||||||
13050: {
|
|
||||||
x: 668,
|
|
||||||
y: 399,
|
|
||||||
title: 'karen',
|
|
||||||
in: 'Chicago',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* These are the connections between the trustees
|
|
||||||
* See: https://FreeSewing.dev/reference/trust
|
|
||||||
*/
|
|
||||||
export const connections = [
|
|
||||||
[1, 132],
|
|
||||||
[1, 13050],
|
|
||||||
]
|
|
||||||
|
|
||||||
export const lastUpdate = '20240402'
|
|
19
crowdin.yml
19
crowdin.yml
|
@ -1,19 +0,0 @@
|
||||||
content_segmentation: 0
|
|
||||||
commit_message: skip-build
|
|
||||||
pull_request_assignees:
|
|
||||||
- joostdecock
|
|
||||||
pull_request_title: 'New Crowdin Translations [skip build]'
|
|
||||||
pull_request_labels:
|
|
||||||
- crowdin
|
|
||||||
- i18n
|
|
||||||
files:
|
|
||||||
- source: /markdown/org/**/en.md
|
|
||||||
translation: /markdown/org/**/%two_letters_code%.md
|
|
||||||
- source: /sites/**/en.yaml
|
|
||||||
translation: /sites/**/%two_letters_code%.yaml
|
|
||||||
- source: /sites/shared/jargon/en.json
|
|
||||||
translation: /sites/shared/jargon/%two_letters_code%.json
|
|
||||||
- source: /designs/*/i18n/en.json
|
|
||||||
translation: /designs/*/i18n/%two_letters_code%.json
|
|
||||||
- source: /packages/new-design/i18n/en.json
|
|
||||||
translation: /packages/new-design/i18n/%two_letters_code%.json
|
|
|
@ -9,24 +9,14 @@
|
||||||
><img src="https://img.shields.io/npm/l/@freesewing/aaron.svg?label=License"
|
><img src="https://img.shields.io/npm/l/@freesewing/aaron.svg?label=License"
|
||||||
alt="License: MIT"/>
|
alt="License: MIT"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
|
||||||
title="Code quality on DeepScan"
|
|
||||||
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
|
||||||
alt="Code quality on DeepScan"/>
|
|
||||||
</a><a
|
|
||||||
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aaaron"
|
|
||||||
title="Open issues tagged pkg:aaron"
|
|
||||||
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:aaron.svg?label=Issues"
|
|
||||||
alt="Open issues tagged pkg:aaron"/>
|
|
||||||
</a><a
|
|
||||||
href="#contributors-"
|
href="#contributors-"
|
||||||
title="All Contributors"
|
title="All Contributors"
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
href="https://forum.freesewing.org"
|
||||||
title="Follow @freesewing_org on Twitter"
|
title="Follow @freesewing_org on Twitter"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://chat.freesewing.org"
|
href="https://chat.freesewing.org"
|
||||||
|
@ -38,11 +28,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# @freesewing/aaron
|
# @freesewing/aaron
|
||||||
|
@ -59,7 +44,7 @@ A FreeSewing pattern for a A-shirt or tank top
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -76,7 +61,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -86,7 +71,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -98,7 +83,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -114,49 +99,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
20
designs/aaron/about.json
Normal file
20
designs/aaron/about.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"id": "aaron",
|
||||||
|
"code": "Joost De Cock",
|
||||||
|
"name": "Aaron A-shirt",
|
||||||
|
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
||||||
|
"design": "Joost De Cock",
|
||||||
|
"difficulty": 2,
|
||||||
|
"tags": [
|
||||||
|
"tops",
|
||||||
|
"underwear"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"hem",
|
||||||
|
"stretch",
|
||||||
|
"knit-binding",
|
||||||
|
"curved-seam"
|
||||||
|
],
|
||||||
|
"version": "4.0.0",
|
||||||
|
"pkg": "@freesewing/aaron"
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '@freesewing/aaron'
|
|
||||||
export const version = '3.3.0-rc.1'
|
|
||||||
export const data = { name, version }
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Aaron A-Shirt",
|
|
||||||
"d": "Aaron is an athletic shirt or tank top.",
|
|
||||||
"s": {
|
|
||||||
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
|
|
||||||
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
|
|
||||||
"length": "Length",
|
|
||||||
"width": "Width"
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"armholeDrop": {
|
|
||||||
"t": "Armlochabsenkung",
|
|
||||||
"d": "Senkt das Armloch um diesen Wert. Negative Werte erhöhen es."
|
|
||||||
},
|
|
||||||
"backlineBend": {
|
|
||||||
"t": "Hintere Armlochform",
|
|
||||||
"d": "Bestimmt die Form / Krümmung der Rückseite der Armlöcher."
|
|
||||||
},
|
|
||||||
"hipsEase": {
|
|
||||||
"t": "Bequemlichkeitszugabe Hüfte",
|
|
||||||
"d": "Die Menge an Bequemlichkeits-/Bewegungszugabe an deinen Hüften."
|
|
||||||
},
|
|
||||||
"necklineBend": {
|
|
||||||
"t": "Ausschnittsform",
|
|
||||||
"d": "Bestimmt die Form / Krümmung des Halsausschnitts vorne."
|
|
||||||
},
|
|
||||||
"necklineDrop": {
|
|
||||||
"t": "Ausschnitt Tiefe",
|
|
||||||
"d": "Wie tief der Ausschnitt vorne geht."
|
|
||||||
},
|
|
||||||
"shoulderStrapPlacement": {
|
|
||||||
"t": "Platzierung der Schulterträger",
|
|
||||||
"d": "Bestimmt, ob der Schulterträger näher am Hals (niedrigere Zahlen), oder näher an der Schulter (höhere Zahlen) liegt."
|
|
||||||
},
|
|
||||||
"shoulderStrapWidth": {
|
|
||||||
"t": "Breite der Schulterträger",
|
|
||||||
"d": "Die Breite der Schulterträger."
|
|
||||||
},
|
|
||||||
"stretchFactor": {
|
|
||||||
"t": "Dehnung",
|
|
||||||
"d": "Bestimmt die horizontale negative Bewegungszugabe."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p": {}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Aaron A-Shirt",
|
|
||||||
"d": "Aaron is an athletic shirt or tank top.",
|
|
||||||
"s": {
|
|
||||||
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
|
|
||||||
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
|
|
||||||
"length": "Length",
|
|
||||||
"width": "Width"
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"armholeDrop": {
|
|
||||||
"t": "Caída de la sisa",
|
|
||||||
"d": "Baja la sisa esta cantidad. Valores negativos la elevan."
|
|
||||||
},
|
|
||||||
"backlineBend": {
|
|
||||||
"t": "Forma posterior de la sisa",
|
|
||||||
"d": "Determina la forma/curva de la parte posterior de la sisa."
|
|
||||||
},
|
|
||||||
"hipsEase": {
|
|
||||||
"t": "Holgura de cadera",
|
|
||||||
"d": "La cantidad de holgura en la cadera."
|
|
||||||
},
|
|
||||||
"necklineBend": {
|
|
||||||
"t": "Forma del cuello",
|
|
||||||
"d": "Determina la forma/curva del cuello en el frente."
|
|
||||||
},
|
|
||||||
"necklineDrop": {
|
|
||||||
"t": "Caída del escote",
|
|
||||||
"d": "La cantidad de cuello que se corta en el frente."
|
|
||||||
},
|
|
||||||
"shoulderStrapPlacement": {
|
|
||||||
"t": "Posición de los tirantes",
|
|
||||||
"d": "Determina si los tirantes se colocan cerca del cuello (números más bajos) o del hombro (números más altos)."
|
|
||||||
},
|
|
||||||
"shoulderStrapWidth": {
|
|
||||||
"t": "Anchura de los tirantes",
|
|
||||||
"d": "La anchura de los tirantes."
|
|
||||||
},
|
|
||||||
"stretchFactor": {
|
|
||||||
"t": "Extensión",
|
|
||||||
"d": "Determina la holgura negativa horizontal."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p": {}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Aaron A-Shirt",
|
|
||||||
"d": "Aaron is an athletic shirt or tank top.",
|
|
||||||
"s": {
|
|
||||||
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
|
|
||||||
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
|
|
||||||
"length": "Length",
|
|
||||||
"width": "Width"
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"armholeDrop": {
|
|
||||||
"t": "Abaissement d'emmanchure",
|
|
||||||
"d": "Il s'agit d'abaisser l'emmanchure avec cette valeur. Les valeurs négatives la remonteront."
|
|
||||||
},
|
|
||||||
"backlineBend": {
|
|
||||||
"t": "Forme de l'arrière des emmanchures",
|
|
||||||
"d": "Détermine la forme/courbure de l'arrière des emmanchures."
|
|
||||||
},
|
|
||||||
"hipsEase": {
|
|
||||||
"t": "Aisance des hanches",
|
|
||||||
"d": "La marge d'aisance aux hanches."
|
|
||||||
},
|
|
||||||
"necklineBend": {
|
|
||||||
"t": "Forme de l'encolure",
|
|
||||||
"d": "Détermine la forme/courbure du devant de l'encolure."
|
|
||||||
},
|
|
||||||
"necklineDrop": {
|
|
||||||
"t": "Profondeur d'encolure",
|
|
||||||
"d": "Détermine de combien abaisser l’encolure l'avant."
|
|
||||||
},
|
|
||||||
"shoulderStrapPlacement": {
|
|
||||||
"t": "Position de la bretelle",
|
|
||||||
"d": "Détermine si la bretelle est placée plus près du cou (chiffres les plus bas) ou de l’épaule (chiffres les plus élevés)."
|
|
||||||
},
|
|
||||||
"shoulderStrapWidth": {
|
|
||||||
"t": "Largeur de la bretelle",
|
|
||||||
"d": "Détermine la largeur des bretelles."
|
|
||||||
},
|
|
||||||
"stretchFactor": {
|
|
||||||
"t": "Élasticité",
|
|
||||||
"d": "Détermine a quantité d'aisance négative en largeur."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p": {}
|
|
||||||
}
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' with { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' with { type: 'json' }
|
|
||||||
import es from './es.json' with { type: 'json' }
|
|
||||||
import fr from './fr.json' with { type: 'json' }
|
|
||||||
import nl from './nl.json' with { type: 'json' }
|
|
||||||
import uk from './uk.json' with { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Aaron A-Shirt",
|
|
||||||
"d": "Aaron is an athletic shirt or tank top.",
|
|
||||||
"s": {
|
|
||||||
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
|
|
||||||
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
|
|
||||||
"length": "Length",
|
|
||||||
"width": "Width"
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"armholeDrop": {
|
|
||||||
"t": "Diepte armsgat",
|
|
||||||
"d": "Verlaag het armsgat met deze hoeveelheid. Een negatieve waarde maakt het hoger."
|
|
||||||
},
|
|
||||||
"backlineBend": {
|
|
||||||
"t": "Vorm armsgat achteraan",
|
|
||||||
"d": "Bepaalt de vorm/curve van de achterkant van het armsgat."
|
|
||||||
},
|
|
||||||
"hipsEase": {
|
|
||||||
"t": "Overwijdte heup",
|
|
||||||
"d": "De hoeveelheid overwijdte aan je heupen."
|
|
||||||
},
|
|
||||||
"necklineBend": {
|
|
||||||
"t": "Vorm halslijn",
|
|
||||||
"d": "Bepaalt de vorm/kromming van de halslijn aan het middenvoor."
|
|
||||||
},
|
|
||||||
"necklineDrop": {
|
|
||||||
"t": "Diepte halslijn",
|
|
||||||
"d": "De hoeveelheid waarmee de halslijn vooraan weggesneden wordt."
|
|
||||||
},
|
|
||||||
"shoulderStrapPlacement": {
|
|
||||||
"t": "Plaatsing schouderbandjes",
|
|
||||||
"d": "Bepaalt of de schouderbandjes dichter bij de nek (lager cijfer) of dichter bij de schouder (hoger cijfer) geplaatst worden."
|
|
||||||
},
|
|
||||||
"shoulderStrapWidth": {
|
|
||||||
"t": "Breedte schouderband",
|
|
||||||
"d": "De breedte van de schouderbandjes."
|
|
||||||
},
|
|
||||||
"stretchFactor": {
|
|
||||||
"t": "Rek",
|
|
||||||
"d": "Bepaalt hoeveel kleiner de horizontale omtrek is dan je lichaamsmaten. In andere woorden, hoe strak alles zit."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p": {}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Aaron A-Shirt",
|
|
||||||
"d": "Aaron is an athletic shirt or tank top.",
|
|
||||||
"s": {
|
|
||||||
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
|
|
||||||
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
|
|
||||||
"length": "Length",
|
|
||||||
"width": "Width"
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"armholeDrop": {
|
|
||||||
"t": "Armhole drop",
|
|
||||||
"d": "Lower the armhole by this amount. Negative values will raise it."
|
|
||||||
},
|
|
||||||
"backlineBend": {
|
|
||||||
"t": "Back armhole shape",
|
|
||||||
"d": "Determines the shape/bend of the back of the armholes."
|
|
||||||
},
|
|
||||||
"hipsEase": {
|
|
||||||
"t": "Hips ease",
|
|
||||||
"d": "The amount of ease at your hips."
|
|
||||||
},
|
|
||||||
"necklineBend": {
|
|
||||||
"t": "Neckline shape",
|
|
||||||
"d": "Determines the shape/bend of the neckline at the front."
|
|
||||||
},
|
|
||||||
"necklineDrop": {
|
|
||||||
"t": "Neckline drop",
|
|
||||||
"d": "The amount the neck is cutout at the front."
|
|
||||||
},
|
|
||||||
"shoulderStrapPlacement": {
|
|
||||||
"t": "Shoulderstrap placement",
|
|
||||||
"d": "Determines whether the shoulder strap is placed closer to the neck (lower numbers) or the shoulder (higher numbers)."
|
|
||||||
},
|
|
||||||
"shoulderStrapWidth": {
|
|
||||||
"t": "Shoulderstrap width",
|
|
||||||
"d": "The width of the shoulder straps."
|
|
||||||
},
|
|
||||||
"stretchFactor": {
|
|
||||||
"t": "Stretch",
|
|
||||||
"d": "Determines the horizontal negative ease."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p": {}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/aaron",
|
"name": "@freesewing/aaron",
|
||||||
"version": "3.3.0-rc.1",
|
"version": "4.0.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@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
|
@ -25,50 +25,41 @@
|
||||||
"sewing pattern"
|
"sewing pattern"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.mjs",
|
|
||||||
"build:all": "yarn build",
|
|
||||||
"clean": "rimraf dist",
|
|
||||||
"mbuild": "NO_MINIFY=1 node build.mjs",
|
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"test": "npx mocha tests/*.test.mjs",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"vbuild": "VERBOSE=1 node build.mjs",
|
|
||||||
"lab": "cd ../../sites/lab && yarn start",
|
|
||||||
"tips": "node ../../scripts/help.mjs",
|
"tips": "node ../../scripts/help.mjs",
|
||||||
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||||
"wbuild": "node build.mjs",
|
|
||||||
"wbuild:all": "yarn wbuild"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@freesewing/core": "3.3.0-rc.1",
|
"@freesewing/core": "4.0.0",
|
||||||
"@freesewing/brian": "3.3.0-rc.1",
|
"@freesewing/brian": "4.0.0",
|
||||||
"@freesewing/plugin-bust": "3.3.0-rc.1"
|
"@freesewing/plugin-bust": "4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "10.4.0",
|
"mocha": "10.4.0",
|
||||||
"chai": "5.1.1",
|
"chai": "5.1.1",
|
||||||
"@freesewing/models": "3.3.0-rc.1",
|
"@freesewing/models": "4.0.0",
|
||||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
"@freesewing/plugin-timing": "4.0.0"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"src/",
|
||||||
|
"i18n/",
|
||||||
|
"about.json",
|
||||||
"README.md"
|
"README.md"
|
||||||
],
|
],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ export const front = {
|
||||||
shoulderSlopeReduction: 0,
|
shoulderSlopeReduction: 0,
|
||||||
chestEase: { pct: 8, min: 0, max: 20, ...pctBasedOn('chest'), menu: 'fit' },
|
chestEase: { pct: 8, min: 0, max: 20, ...pctBasedOn('chest'), menu: 'fit' },
|
||||||
draftForHighBust: { bool: false, menu: 'fit' },
|
draftForHighBust: { bool: false, menu: 'fit' },
|
||||||
hipsEase: { pct: 8, min: 0, max: 20, menu: 'fit' },
|
hipsEase: { pct: 8, min: 0, max: 20, ...pctBasedOn('hips'), menu: 'fit' },
|
||||||
stretchFactor: { pct: 5, min: 0, max: 15, menu: 'fit' },
|
stretchFactor: { pct: 5, min: 0, max: 15, menu: 'fit' },
|
||||||
armholeDrop: { pct: 10, min: 0, max: 75, menu: 'style' },
|
armholeDrop: { pct: 10, min: 0, max: 75, menu: 'style' },
|
||||||
lengthBonus: { pct: 10, min: -20, max: 60, menu: 'style' },
|
lengthBonus: { pct: 10, min: -20, max: 60, menu: 'style' },
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Design, mergeI18n } from '@freesewing/core'
|
import { Design, mergeI18n } from '@freesewing/core'
|
||||||
import { i18n as brianI18n } from '@freesewing/brian'
|
import { i18n as brianI18n } from '@freesewing/brian'
|
||||||
import { i18n as aaronI18n } from '../i18n/index.mjs'
|
import { i18n as aaronI18n } from '../i18n/index.mjs'
|
||||||
import { data } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
import { back } from './back.mjs'
|
import { back } from './back.mjs'
|
||||||
import { front } from './front.mjs'
|
import { front } from './front.mjs'
|
||||||
import { armBinding } from './arm-binding.mjs'
|
import { armBinding } from './arm-binding.mjs'
|
||||||
|
@ -9,7 +9,7 @@ import { neckBinding } from './neck-binding.mjs'
|
||||||
|
|
||||||
// Setup our new design
|
// Setup our new design
|
||||||
const Aaron = new Design({
|
const Aaron = new Design({
|
||||||
data,
|
data: about,
|
||||||
parts: [back, front, armBinding, neckBinding],
|
parts: [back, front, armBinding, neckBinding],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -27,10 +27,12 @@ const i18n = mergeI18n([brianI18n, aaronI18n], {
|
||||||
'legacyArmholeDepthNo',
|
'legacyArmholeDepthNo',
|
||||||
'legacyArmholeDepthYes',
|
'legacyArmholeDepthYes',
|
||||||
'armholeDepth',
|
'armholeDepth',
|
||||||
|
'draftForHighBustNo',
|
||||||
|
'draftForHighBustYes',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
s: { drop: [] },
|
s: { drop: [] },
|
||||||
})
|
})
|
||||||
|
|
||||||
// Named exports
|
// Named exports
|
||||||
export { back, front, Aaron, i18n }
|
export { back, front, Aaron, i18n, about }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file is auto-generated | Any changes you make will be overwritten.
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
import { Aaron, i18n } from '../src/index.mjs'
|
import { Aaron, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -8,7 +8,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig(Aaron)
|
testPatternConfig(Aaron, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n(Aaron, i18n)
|
testPatternI18n(Aaron, i18n)
|
||||||
|
|
|
@ -9,24 +9,14 @@
|
||||||
><img src="https://img.shields.io/npm/l/@freesewing/albert.svg?label=License"
|
><img src="https://img.shields.io/npm/l/@freesewing/albert.svg?label=License"
|
||||||
alt="License: MIT"/>
|
alt="License: MIT"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
|
||||||
title="Code quality on DeepScan"
|
|
||||||
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
|
||||||
alt="Code quality on DeepScan"/>
|
|
||||||
</a><a
|
|
||||||
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aalbert"
|
|
||||||
title="Open issues tagged pkg:albert"
|
|
||||||
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:albert.svg?label=Issues"
|
|
||||||
alt="Open issues tagged pkg:albert"/>
|
|
||||||
</a><a
|
|
||||||
href="#contributors-"
|
href="#contributors-"
|
||||||
title="All Contributors"
|
title="All Contributors"
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
href="https://forum.freesewing.org"
|
||||||
title="Follow @freesewing_org on Twitter"
|
title="Follow @freesewing_org on Twitter"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://chat.freesewing.org"
|
href="https://chat.freesewing.org"
|
||||||
|
@ -38,11 +28,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# @freesewing/albert
|
# @freesewing/albert
|
||||||
|
@ -59,7 +44,7 @@ A FreeSewing pattern for an apron
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -76,7 +61,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -86,7 +71,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -98,7 +83,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -114,49 +99,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
19
designs/albert/about.json
Normal file
19
designs/albert/about.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"id": "albert",
|
||||||
|
"name": "Albert apron",
|
||||||
|
"code": "Wouter Van Wageningen",
|
||||||
|
"description": "A FreeSewing pattern for an apron",
|
||||||
|
"design": "Wouter Van Wageningen",
|
||||||
|
"difficulty": 2,
|
||||||
|
"tags": [
|
||||||
|
"accessories"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"hem",
|
||||||
|
"knit-binding",
|
||||||
|
"curved-seam",
|
||||||
|
"pocket"
|
||||||
|
],
|
||||||
|
"version": "4.0.0",
|
||||||
|
"pkg": "@freesewing/albert"
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
/* This script will build the package with esbuild */
|
|
||||||
import esbuild from 'esbuild'
|
|
||||||
import pkg from './package.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Create banner based on package info
|
|
||||||
const banner = `/**
|
|
||||||
* ${pkg.name} | v${pkg.version}
|
|
||||||
* ${pkg.description}
|
|
||||||
* (c) ${new Date().getFullYear()} ${pkg.author}
|
|
||||||
* @license ${pkg.license}
|
|
||||||
*/`
|
|
||||||
|
|
||||||
// Shared esbuild options
|
|
||||||
const options = {
|
|
||||||
banner: { js: banner },
|
|
||||||
bundle: true,
|
|
||||||
entryPoints: ['src/index.mjs'],
|
|
||||||
format: 'esm',
|
|
||||||
outfile: 'dist/index.mjs',
|
|
||||||
external: ['@freesewing'],
|
|
||||||
metafile: process.env.VERBOSE ? true : false,
|
|
||||||
minify: process.env.NO_MINIFY ? false : true,
|
|
||||||
sourcemap: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let esbuild generate the build
|
|
||||||
const build = async () => {
|
|
||||||
const result = await esbuild.build(options).catch(() => process.exit(1))
|
|
||||||
|
|
||||||
if (process.env.VERBOSE) {
|
|
||||||
const info = await esbuild.analyzeMetafile(result.metafile)
|
|
||||||
console.log(info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
build()
|
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '@freesewing/albert'
|
|
||||||
export const version = '3.3.0-rc.1'
|
|
||||||
export const data = { name, version }
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Albert, die Schürze",
|
|
||||||
"d": "Albert ist eine Schürze.",
|
|
||||||
"p": {
|
|
||||||
"front": "Vorderseite",
|
|
||||||
"pocket": "Tasche",
|
|
||||||
"strap": "Strap"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"backOpening": {
|
|
||||||
"t": "Hintere Öffnung",
|
|
||||||
"d": "Steuert die Öffnung an der Rückseite der Schürze"
|
|
||||||
},
|
|
||||||
"chestDepth": {
|
|
||||||
"t": "Länge des Riemens",
|
|
||||||
"d": "Steuert die Länge der Riemen"
|
|
||||||
},
|
|
||||||
"lengthBonus": {
|
|
||||||
"t": "Längenzugabe",
|
|
||||||
"d": "Steuert die Länge der Schürze"
|
|
||||||
},
|
|
||||||
"bibLength": {
|
|
||||||
"t": "Latzlänge",
|
|
||||||
"d": "Steuert die Länge des Latzes"
|
|
||||||
},
|
|
||||||
"bibWidth": {
|
|
||||||
"t": "Latzbreite",
|
|
||||||
"d": "Steuert die Breite des Latzes"
|
|
||||||
},
|
|
||||||
"strapWidth": {
|
|
||||||
"t": "Riemenbreite",
|
|
||||||
"d": "Steuert die Breite des Riemens"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Albert, delantal",
|
|
||||||
"d": "Albert es un delantal.",
|
|
||||||
"p": {
|
|
||||||
"front": "Frente",
|
|
||||||
"pocket": "Bolsillo",
|
|
||||||
"strap": "Strap"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"backOpening": {
|
|
||||||
"t": "Abertura de la espalda",
|
|
||||||
"d": "Controla la apertura en la parte trasera del Profeta"
|
|
||||||
},
|
|
||||||
"chestDepth": {
|
|
||||||
"t": "Longitud del Strp",
|
|
||||||
"d": "Controla la longitud de las correas"
|
|
||||||
},
|
|
||||||
"lengthBonus": {
|
|
||||||
"t": "Bonus de longitud",
|
|
||||||
"d": "Controla la longitud del buque"
|
|
||||||
},
|
|
||||||
"bibLength": {
|
|
||||||
"t": "Longitud de bib",
|
|
||||||
"d": "Controla la longitud de la bib"
|
|
||||||
},
|
|
||||||
"bibWidth": {
|
|
||||||
"t": "Ancho bib",
|
|
||||||
"d": "Controla el ancho de la bib"
|
|
||||||
},
|
|
||||||
"strapWidth": {
|
|
||||||
"t": "Strap width",
|
|
||||||
"d": "Controla el ancho de la correa"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Tablier Albert",
|
|
||||||
"d": "Albert est un tablier.",
|
|
||||||
"p": {
|
|
||||||
"front": "Avant",
|
|
||||||
"pocket": "Poche",
|
|
||||||
"strap": "Strap"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"backOpening": {
|
|
||||||
"t": "Ouverture arrière",
|
|
||||||
"d": "Contrôle l'ouverture à l'arrière du tablier"
|
|
||||||
},
|
|
||||||
"chestDepth": {
|
|
||||||
"t": "Longueur de l'anse",
|
|
||||||
"d": "Contrôle la longueur des liens"
|
|
||||||
},
|
|
||||||
"lengthBonus": {
|
|
||||||
"t": "Supplément de longueur",
|
|
||||||
"d": "Contrôle la longueur du tablier"
|
|
||||||
},
|
|
||||||
"bibLength": {
|
|
||||||
"t": "Longueur du plastron",
|
|
||||||
"d": "Contrôle la longueur du plastron"
|
|
||||||
},
|
|
||||||
"bibWidth": {
|
|
||||||
"t": "Largeur du plastron",
|
|
||||||
"d": "Contrôle la largeur du plastron"
|
|
||||||
},
|
|
||||||
"strapWidth": {
|
|
||||||
"t": "Largeur du lien",
|
|
||||||
"d": "Contrôle la largeur des liens"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' with { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' with { type: 'json' }
|
|
||||||
import es from './es.json' with { type: 'json' }
|
|
||||||
import fr from './fr.json' with { type: 'json' }
|
|
||||||
import nl from './nl.json' with { type: 'json' }
|
|
||||||
import uk from './uk.json' with { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -1,90 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Albert schort",
|
|
||||||
"d": "Albert is een vork.",
|
|
||||||
"p": {
|
|
||||||
"back": "Achterzijde",
|
|
||||||
"backBase": "Basis rug",
|
|
||||||
"backPocketWelt": "Back pocket welt",
|
|
||||||
"base": "Basis",
|
|
||||||
"bentBack": "Achterzijde Bent",
|
|
||||||
"bentBase": "Basis Bent",
|
|
||||||
"bentFront": "Voorzijde Bent",
|
|
||||||
"bentSleeve": "Mouw Bent",
|
|
||||||
"bentTopSleeve": "Bovenmouw Bent",
|
|
||||||
"bentUnderSleeve": "Ondermouw Bent",
|
|
||||||
"buttonholePlacket": "Knoopsgatenpat",
|
|
||||||
"buttonPlacket": "Knopenpat",
|
|
||||||
"collar": "Kraag",
|
|
||||||
"collarStand": "Kraagstaander",
|
|
||||||
"cuff": "Manchet",
|
|
||||||
"fabricTail": "Stof staart",
|
|
||||||
"fabricTip": "Stof tip",
|
|
||||||
"frontBase": "Basis voorzijde",
|
|
||||||
"frontFacing": "Beleg vooraan",
|
|
||||||
"front": "Voorzijde",
|
|
||||||
"frontLeft": "Voorzijde links",
|
|
||||||
"frontLining": "Voering vooraan",
|
|
||||||
"frontRight": "Voorzijde rechts",
|
|
||||||
"gusset": "Gusset",
|
|
||||||
"hoodCenter": "Midden kap",
|
|
||||||
"hood": "Capuchon",
|
|
||||||
"hoodSide": "Zijkant kap",
|
|
||||||
"inset": "Inzet",
|
|
||||||
"interfacingTail": "Interfacing staart",
|
|
||||||
"interfacingTip": "Interfacing tip",
|
|
||||||
"liningTail": "Voering staart",
|
|
||||||
"liningTip": "Voering tip",
|
|
||||||
"loop": "Lus",
|
|
||||||
"panel1": "Deel 1",
|
|
||||||
"panel2": "Deel 2",
|
|
||||||
"panel3": "Deel 3",
|
|
||||||
"panel4": "Deel 4",
|
|
||||||
"panel5": "Deel 5",
|
|
||||||
"panel6": "Deel 6",
|
|
||||||
"panels": "Panelen",
|
|
||||||
"pocketBag": "Binnenzak",
|
|
||||||
"pocketFacing": "Zak beleg",
|
|
||||||
"pocketInterfacing": "Tussenvoering zak",
|
|
||||||
"pocket": "Zak",
|
|
||||||
"pocketWelt": "Paspel zak",
|
|
||||||
"side": "Zijkant",
|
|
||||||
"sleeveBase": "Basis mouw",
|
|
||||||
"sleevecap": "Mouwkop",
|
|
||||||
"sleevePlacketOverlap": "Mouwsplit boven",
|
|
||||||
"sleevePlacketUnderlap": "Mouwsplit onder",
|
|
||||||
"sleeve": "Mouw",
|
|
||||||
"topSleeve": "Bovenmouw",
|
|
||||||
"top": "Top",
|
|
||||||
"underCollar": "Onderkraag",
|
|
||||||
"underSleeve": "Ondermouw",
|
|
||||||
"waistband": "Tailleband",
|
|
||||||
"yoke": "Schouderpas"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"backOpening": {
|
|
||||||
"t": "Rugopening",
|
|
||||||
"d": "Bepaalt de opening aan de achterkant van de schort"
|
|
||||||
},
|
|
||||||
"chestDepth": {
|
|
||||||
"t": "Lengte van de badjes",
|
|
||||||
"d": "Bepaalt de lengte van de bandjes"
|
|
||||||
},
|
|
||||||
"lengthBonus": {
|
|
||||||
"t": "Lengtebonus",
|
|
||||||
"d": "Bepaalt de lengte van de schort"
|
|
||||||
},
|
|
||||||
"bibLength": {
|
|
||||||
"t": "Lengte slabbetje",
|
|
||||||
"d": "Bepaalt de lengte van het slabbetje"
|
|
||||||
},
|
|
||||||
"bibWidth": {
|
|
||||||
"t": "Breedte slabbetje",
|
|
||||||
"d": "Bepaalt de breedte van het slabbetje"
|
|
||||||
},
|
|
||||||
"strapWidth": {
|
|
||||||
"t": "Breedte bandjes",
|
|
||||||
"d": "Bepaalt de breedte van de bandjes"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Albert apron",
|
|
||||||
"d": "Albert is an apron.",
|
|
||||||
"p": {
|
|
||||||
"front": "Front",
|
|
||||||
"pocket": "Pocket",
|
|
||||||
"strap": "Strap"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"backOpening": {
|
|
||||||
"t": "Back opening",
|
|
||||||
"d": "Controls the opening at the back of the apron"
|
|
||||||
},
|
|
||||||
"chestDepth": {
|
|
||||||
"t": "Strap length",
|
|
||||||
"d": "Controls the length of the straps"
|
|
||||||
},
|
|
||||||
"lengthBonus": {
|
|
||||||
"t": "Length bonus",
|
|
||||||
"d": "Controls the length of the apron"
|
|
||||||
},
|
|
||||||
"bibLength": {
|
|
||||||
"t": "Bib length",
|
|
||||||
"d": "Controls the length of the bib"
|
|
||||||
},
|
|
||||||
"bibWidth": {
|
|
||||||
"t": "Bib width",
|
|
||||||
"d": "Controls the width of the bib"
|
|
||||||
},
|
|
||||||
"strapWidth": {
|
|
||||||
"t": "Strap width",
|
|
||||||
"d": "Controls the width of the strap"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/albert",
|
"name": "@freesewing/albert",
|
||||||
"version": "3.3.0-rc.1",
|
"version": "4.0.0",
|
||||||
"description": "A FreeSewing pattern for an apron",
|
"description": "A FreeSewing pattern for an apron",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
|
@ -25,48 +25,39 @@
|
||||||
"sewing pattern"
|
"sewing pattern"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.mjs",
|
|
||||||
"build:all": "yarn build",
|
|
||||||
"clean": "rimraf dist",
|
|
||||||
"mbuild": "NO_MINIFY=1 node build.mjs",
|
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"test": "npx mocha tests/*.test.mjs",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"vbuild": "VERBOSE=1 node build.mjs",
|
|
||||||
"lab": "cd ../../sites/lab && yarn start",
|
|
||||||
"tips": "node ../../scripts/help.mjs",
|
"tips": "node ../../scripts/help.mjs",
|
||||||
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||||
"wbuild": "node build.mjs",
|
|
||||||
"wbuild:all": "yarn wbuild"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@freesewing/core": "3.3.0-rc.1"
|
"@freesewing/core": "4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "10.4.0",
|
"mocha": "10.4.0",
|
||||||
"chai": "5.1.1",
|
"chai": "5.1.1",
|
||||||
"@freesewing/models": "3.3.0-rc.1",
|
"@freesewing/models": "4.0.0",
|
||||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
"@freesewing/plugin-timing": "4.0.0"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"src/",
|
||||||
|
"i18n/",
|
||||||
|
"about.json",
|
||||||
"README.md"
|
"README.md"
|
||||||
],
|
],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,16 +106,23 @@ export const front = {
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
const saBase = new Path()
|
const saBase = new Path()
|
||||||
.move(points.bottomLeft.shift(-90, sa))
|
.move(points.bottomLeft.shift(-90, strapWidth - sa))
|
||||||
.line(points.bottomRight.shift(-90, sa))
|
.line(points.bottomRight.shift(-90, strapWidth - sa).shift(0, strapWidth - sa))
|
||||||
.line(points.topRightBack)
|
.line(points.topRightBack.shift(0, strapWidth - sa))
|
||||||
.curve(points.topRightBackCPfront, points.topRightCPdown, points.topRightHem)
|
.curve(points.topRightBackCPfront, points.topRightCPdown, points.topRightHem)
|
||||||
.line(points.topRight.shift(90, sa))
|
.line(points.topRight.shift(90, strapWidth - sa))
|
||||||
.line(points.topLeft.shift(90, sa))
|
.line(points.topLeft.shift(90, strapWidth - sa))
|
||||||
paths.sa = saBase
|
paths.sa = saBase
|
||||||
.clone()
|
.clone()
|
||||||
.offset(sa * 2)
|
.offset(sa * 2)
|
||||||
.addClass('fabric sa')
|
.addClass('fabric sa')
|
||||||
|
paths.sa = new Path()
|
||||||
|
.move(points.bottomLeft)
|
||||||
|
.line(paths.sa.start())
|
||||||
|
.join(paths.sa)
|
||||||
|
.line(points.topLeft)
|
||||||
|
.attr('class', 'fabric sa')
|
||||||
|
|
||||||
if (complete) {
|
if (complete) {
|
||||||
paths.hemHint = saBase.clone().offset(sa).addClass('note help')
|
paths.hemHint = saBase.clone().offset(sa).addClass('note help')
|
||||||
macro('banner', {
|
macro('banner', {
|
||||||
|
@ -127,6 +134,24 @@ export const front = {
|
||||||
classes: 'fill-note center',
|
classes: 'fill-note center',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
macro('hd', {
|
||||||
|
from: points.bottomRight,
|
||||||
|
to: points.bottomRight.shift(0, strapWidth),
|
||||||
|
y: points.bottomLeft.y + sa + (sa ? strapWidth : 0) + 15,
|
||||||
|
id: 'wBottomHem',
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
from: points.topLeft,
|
||||||
|
to: points.topLeft.shift(90, strapWidth),
|
||||||
|
x: points.topLeftHem.x - 15,
|
||||||
|
id: 'foldoverTop',
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
from: points.bottomLeft.shift(270, strapWidth),
|
||||||
|
to: points.bottomLeft,
|
||||||
|
x: points.topLeftHem.x - 15,
|
||||||
|
id: 'hLeftToFoldover',
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -178,52 +203,33 @@ export const front = {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15,
|
y: points.bottomLeft.y + sa + (sa ? strapWidth : 0) + 15,
|
||||||
id: 'wBottom',
|
id: 'wBottom',
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - sa - 15,
|
y: points.topLeft.y - sa - (sa ? strapWidth : 0) - 15,
|
||||||
id: 'wTop',
|
id: 'wTop',
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - 30,
|
x: points.topLeft.x - 15,
|
||||||
id: 'hLeft',
|
id: 'hLeft',
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRightBack,
|
to: points.topRightBack,
|
||||||
x: points.topRightBack.x + sa + 15,
|
x: points.topRightBack.x + sa + (sa ? strapWidth : 0) + 15,
|
||||||
id: 'hRightBottom',
|
id: 'hRightBottom',
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topRightBack,
|
from: points.topRightBack,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRightBack.x + sa + 15,
|
x: points.topRightBack.x + sa + (sa ? strapWidth : 0) + 15,
|
||||||
id: 'hRightTop',
|
id: 'hRightTop',
|
||||||
})
|
})
|
||||||
macro('vd', {
|
|
||||||
from: points.topLeftHem,
|
|
||||||
to: points.topLeft,
|
|
||||||
x: points.topLeftHem.x - 15,
|
|
||||||
id: 'foldoverTop',
|
|
||||||
})
|
|
||||||
macro('vd', {
|
|
||||||
from: points.bottomLeftHem,
|
|
||||||
to: points.topLeftHem,
|
|
||||||
x: points.topLeftHem.x - 15,
|
|
||||||
id: 'hLeftToFoldover',
|
|
||||||
})
|
|
||||||
macro('vd', {
|
|
||||||
from: points.bottomLeft,
|
|
||||||
to: points.bottomLeftHem,
|
|
||||||
x: points.bottomLeftHem.x + sa + 15,
|
|
||||||
id: 'hBottomHem',
|
|
||||||
})
|
|
||||||
|
|
||||||
return part
|
return part
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Design } from '@freesewing/core'
|
import { Design } from '@freesewing/core'
|
||||||
import { data } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
import { front } from './front.mjs'
|
import { front } from './front.mjs'
|
||||||
import { pocket } from './pocket.mjs'
|
import { pocket } from './pocket.mjs'
|
||||||
import { strap } from './strap.mjs'
|
import { strap } from './strap.mjs'
|
||||||
|
@ -7,9 +7,9 @@ import { i18n } from '../i18n/index.mjs'
|
||||||
|
|
||||||
// Setup our new design
|
// Setup our new design
|
||||||
const Albert = new Design({
|
const Albert = new Design({
|
||||||
data,
|
data: about,
|
||||||
parts: [front, pocket, strap],
|
parts: [front, pocket, strap],
|
||||||
})
|
})
|
||||||
|
|
||||||
// Named exports
|
// Named exports
|
||||||
export { front, pocket, strap, Albert, i18n }
|
export { front, pocket, strap, Albert, i18n, about }
|
||||||
|
|
|
@ -16,6 +16,7 @@ export const pocket = {
|
||||||
units,
|
units,
|
||||||
store,
|
store,
|
||||||
part,
|
part,
|
||||||
|
complete,
|
||||||
}) => {
|
}) => {
|
||||||
const pocketSize = store.get('pocketSize')
|
const pocketSize = store.get('pocketSize')
|
||||||
|
|
||||||
|
@ -53,11 +54,11 @@ export const pocket = {
|
||||||
.line(points.bottomRight)
|
.line(points.bottomRight)
|
||||||
.line(points.topRight)
|
.line(points.topRight)
|
||||||
.line(points.topLeft)
|
.line(points.topLeft)
|
||||||
.move(points.bottomLeft)
|
.line(points.bottomLeft)
|
||||||
.close()
|
.close()
|
||||||
.attr('class', 'fabric')
|
.attr('class', 'fabric')
|
||||||
|
|
||||||
if (sa)
|
if (sa) {
|
||||||
paths.sa = new Path()
|
paths.sa = new Path()
|
||||||
.move(points.bottomLeft)
|
.move(points.bottomLeft)
|
||||||
.line(points.bottomRight)
|
.line(points.bottomRight)
|
||||||
|
@ -65,7 +66,46 @@ export const pocket = {
|
||||||
.line(points.topLeft.shift(90, store.get('strapWidth')))
|
.line(points.topLeft.shift(90, store.get('strapWidth')))
|
||||||
.offset(sa)
|
.offset(sa)
|
||||||
.attr('class', 'fabric sa')
|
.attr('class', 'fabric sa')
|
||||||
|
paths.sa = new Path()
|
||||||
|
.move(points.bottomLeft)
|
||||||
|
.line(paths.sa.start())
|
||||||
|
.join(paths.sa)
|
||||||
|
.line(points.topLeft)
|
||||||
|
.attr('class', 'fabric sa')
|
||||||
|
|
||||||
|
if (complete) {
|
||||||
|
paths.SAhemHint = new Path()
|
||||||
|
.move(points.topRight.shift(90, store.get('strapWidth')).shift(0, sa))
|
||||||
|
.line(points.topLeft.shift(90, store.get('strapWidth')))
|
||||||
|
.addClass('note help')
|
||||||
|
macro('banner', {
|
||||||
|
id: 'SAfoldHere',
|
||||||
|
path: paths.SAhemHint.reverse(),
|
||||||
|
text: 'albert:foldHere',
|
||||||
|
repeat: 60,
|
||||||
|
spaces: 30,
|
||||||
|
classes: 'fill-note center',
|
||||||
|
})
|
||||||
|
paths.hemHint = new Path()
|
||||||
|
.move(points.topRight.shift(0, sa))
|
||||||
|
.line(points.topLeft)
|
||||||
|
.setHidden(true)
|
||||||
|
macro('banner', {
|
||||||
|
id: 'foldHere',
|
||||||
|
path: paths.hemHint.reverse(),
|
||||||
|
text: 'albert:foldHere',
|
||||||
|
repeat: 60,
|
||||||
|
spaces: 30,
|
||||||
|
classes: 'fill-note center',
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
from: points.topLeft,
|
||||||
|
to: points.topLeft.shift(90, store.get('strapWidth')),
|
||||||
|
x: points.topLeft.x - 15,
|
||||||
|
id: 'heightHem',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Annotations
|
* Annotations
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file is auto-generated | Any changes you make will be overwritten.
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
import { Albert, i18n } from '../src/index.mjs'
|
import { Albert, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -8,7 +8,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig(Albert)
|
testPatternConfig(Albert, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n(Albert, i18n)
|
testPatternI18n(Albert, i18n)
|
||||||
|
|
|
@ -9,24 +9,14 @@
|
||||||
><img src="https://img.shields.io/npm/l/@freesewing/bee.svg?label=License"
|
><img src="https://img.shields.io/npm/l/@freesewing/bee.svg?label=License"
|
||||||
alt="License: MIT"/>
|
alt="License: MIT"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
|
||||||
title="Code quality on DeepScan"
|
|
||||||
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
|
||||||
alt="Code quality on DeepScan"/>
|
|
||||||
</a><a
|
|
||||||
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Abee"
|
|
||||||
title="Open issues tagged pkg:bee"
|
|
||||||
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bee.svg?label=Issues"
|
|
||||||
alt="Open issues tagged pkg:bee"/>
|
|
||||||
</a><a
|
|
||||||
href="#contributors-"
|
href="#contributors-"
|
||||||
title="All Contributors"
|
title="All Contributors"
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
href="https://forum.freesewing.org"
|
||||||
title="Follow @freesewing_org on Twitter"
|
title="Follow @freesewing_org on Twitter"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://chat.freesewing.org"
|
href="https://chat.freesewing.org"
|
||||||
|
@ -38,11 +28,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# @freesewing/bee
|
# @freesewing/bee
|
||||||
|
@ -59,7 +44,7 @@ A FreeSewing pattern for a bikini top
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -76,7 +61,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -86,7 +71,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -98,7 +83,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -114,49 +99,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
20
designs/bee/about.json
Normal file
20
designs/bee/about.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"id": "bee",
|
||||||
|
"name": "Bee bikini top",
|
||||||
|
"code": "bobgeorgethe3rd",
|
||||||
|
"description": "A FreeSewing pattern for a bikini top",
|
||||||
|
"design": "PrudenceRabbit",
|
||||||
|
"difficulty": 3,
|
||||||
|
"tags": [
|
||||||
|
"tops",
|
||||||
|
"swimwear"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"hem",
|
||||||
|
"stretch",
|
||||||
|
"curved-seam",
|
||||||
|
"precision"
|
||||||
|
],
|
||||||
|
"version": "4.0.0",
|
||||||
|
"pkg": "@freesewing/bee"
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
/* This script will build the package with esbuild */
|
|
||||||
import esbuild from 'esbuild'
|
|
||||||
import pkg from './package.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Create banner based on package info
|
|
||||||
const banner = `/**
|
|
||||||
* ${pkg.name} | v${pkg.version}
|
|
||||||
* ${pkg.description}
|
|
||||||
* (c) ${new Date().getFullYear()} ${pkg.author}
|
|
||||||
* @license ${pkg.license}
|
|
||||||
*/`
|
|
||||||
|
|
||||||
// Shared esbuild options
|
|
||||||
const options = {
|
|
||||||
banner: { js: banner },
|
|
||||||
bundle: true,
|
|
||||||
entryPoints: ['src/index.mjs'],
|
|
||||||
format: 'esm',
|
|
||||||
outfile: 'dist/index.mjs',
|
|
||||||
external: ['@freesewing'],
|
|
||||||
metafile: process.env.VERBOSE ? true : false,
|
|
||||||
minify: process.env.NO_MINIFY ? false : true,
|
|
||||||
sourcemap: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let esbuild generate the build
|
|
||||||
const build = async () => {
|
|
||||||
const result = await esbuild.build(options).catch(() => process.exit(1))
|
|
||||||
|
|
||||||
if (process.env.VERBOSE) {
|
|
||||||
const info = await esbuild.analyzeMetafile(result.metafile)
|
|
||||||
console.log(info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
build()
|
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '@freesewing/bee'
|
|
||||||
export const version = '3.3.0-rc.1'
|
|
||||||
export const data = { name, version }
|
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bee, das Bikini-Oberteil",
|
|
||||||
"d": "Bee ist ein Bikini-Oberteil",
|
|
||||||
"p": {
|
|
||||||
"bandTie": "Band Tie",
|
|
||||||
"cup": "Cup",
|
|
||||||
"neckTie": "Neck Tie"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Brustzugabe",
|
|
||||||
"d": "Kontrolliert die Brustzugabe des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Taillenzugabe",
|
|
||||||
"d": "Kontrolliert die Taillenzugabe des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Zugabe im Abstand der Brustpunkte",
|
|
||||||
"d": "Kontrolliert die Zugabe des Abstandes der Brustpunkte des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"topDepth": {
|
|
||||||
"t": "Obere Tiefe",
|
|
||||||
"d": "Kontrolliert, wie weit sich der Bikini-Cup nach oben erstreckt"
|
|
||||||
},
|
|
||||||
"bottomCupDepth": {
|
|
||||||
"t": "Untere Tiefe",
|
|
||||||
"d": "Kontrolliert, wie weit sich der Bikini-Cup nach unten erstreckt"
|
|
||||||
},
|
|
||||||
"sideDepth": {
|
|
||||||
"t": "Seitliche Tiefe",
|
|
||||||
"d": "Kontrolliert, wie weit sich der Bikini-Cup zur Seite erstreckt"
|
|
||||||
},
|
|
||||||
"sideCurve": {
|
|
||||||
"t": "Seitliche Kurve",
|
|
||||||
"d": "Kontrolliert die Krümmung der Seite des Bikini-Cups"
|
|
||||||
},
|
|
||||||
"frontCurve": {
|
|
||||||
"t": "Vordere Kurve",
|
|
||||||
"d": "Kontrolliert die Krümmung der Vorderseite des Bikini-Cups"
|
|
||||||
},
|
|
||||||
"bellaGuide": {
|
|
||||||
"t": "Bella anzeigen",
|
|
||||||
"d": "Zeigt die Umrisse des Bella-Grundschnittes an, auf dem Bee basiert"
|
|
||||||
},
|
|
||||||
"ties": {
|
|
||||||
"t": "Bänder",
|
|
||||||
"d": "Sollen Bänder hinzugefügt werden, ja oder nein"
|
|
||||||
},
|
|
||||||
"bandTieWidth": {
|
|
||||||
"t": "Breite des Brustbandes",
|
|
||||||
"d": "Kontrolliert die Breite des Bandes um deinen Brustkorb"
|
|
||||||
},
|
|
||||||
"bandTieLength": {
|
|
||||||
"t": "Länge des Brustbandes",
|
|
||||||
"d": "Kontrolliert die Länge des Bandes um deinen Brustkorb"
|
|
||||||
},
|
|
||||||
"bandTieEnds": {
|
|
||||||
"t": "Enden des Brustbandes",
|
|
||||||
"d": "Möchtest du gerade oder spitze Enden des Brustbandes?"
|
|
||||||
},
|
|
||||||
"bandTieColours": {
|
|
||||||
"t": "Farben des Brustbandes",
|
|
||||||
"d": "Möchtest du ein- oder mehrfarbige Brustbänder?"
|
|
||||||
},
|
|
||||||
"neckTieWidth": {
|
|
||||||
"t": "Breite des Nackenträgers",
|
|
||||||
"d": "Steuert die Breite des Nackenträgers"
|
|
||||||
},
|
|
||||||
"neckTieLength": {
|
|
||||||
"t": "Länge des Nackenträgers",
|
|
||||||
"d": "Steuert die Länge des Nackenträgers"
|
|
||||||
},
|
|
||||||
"neckTieEnds": {
|
|
||||||
"t": "Enden des Nackenträgers",
|
|
||||||
"d": "Möchtest du gerade oder spitze Enden des Nackenträgers?"
|
|
||||||
},
|
|
||||||
"neckTieColours": {
|
|
||||||
"t": "Farben des Nackenträgers",
|
|
||||||
"d": "Möchtest du ein- oder mehrfarbige Nackenträger?"
|
|
||||||
},
|
|
||||||
"crossBackTies": {
|
|
||||||
"t": "Gekreuzte Rückenträger",
|
|
||||||
"d": "Möchtest du die Version von Bee mit gekreuzten Rückenträgern?"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Länge der gekreuzten Rückenträger",
|
|
||||||
"d": "Kontrolliert die Länge Brustbandes für die Variante von Bee mit gekreuzten Rückenträgern"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Höhe der Rückenabnäher (Bella)",
|
|
||||||
"d": "Kontrolliert die Höhe der Rückenabnäher des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Tiefen des Armloches (Bella)",
|
|
||||||
"d": "Kontrolliert die Tiefe des Armloches des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Tiefe des vorderen Armlochdrehpunktes (Bella)",
|
|
||||||
"d": "Kontrolliert die Tiefe des vorderen Armlochdrehpunktes des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Vordere Schulterbreite (Bella)",
|
|
||||||
"d": "Kontrolliert die vordere Schulterbreite des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest reduction (Bella)",
|
|
||||||
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Hohe Brustweite (Bella)",
|
|
||||||
"d": "Kontrolliert die hohe Brustbreite des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease (Bella)",
|
|
||||||
"d": "Controls the shoulder to shoulder ease in the underlying Bella block Bee is based on"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bee, sujetador de bikini",
|
|
||||||
"d": "Bee el sujetador de un bikini",
|
|
||||||
"p": {
|
|
||||||
"bandTie": "Band Tie",
|
|
||||||
"cup": "Cup",
|
|
||||||
"neckTie": "Neck Tie"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Holgura de pecho",
|
|
||||||
"d": "Controla la holgura del pecho en el patrón base (Bella) en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Holgura de cintura",
|
|
||||||
"d": "Controla la holgura de cintura en el patrón base (Bella) en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Holgura alrededor del busto",
|
|
||||||
"d": "Controla la holgura de busto en el patrón base (Bella) en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"topDepth": {
|
|
||||||
"t": "Límite superior",
|
|
||||||
"d": "Controla hasta qué punto la copa de bikini se extiende hacia arriba"
|
|
||||||
},
|
|
||||||
"bottomCupDepth": {
|
|
||||||
"t": "Límite inferior",
|
|
||||||
"d": "Controla hasta qué punto la copa de bikini se extiende hacia abajo"
|
|
||||||
},
|
|
||||||
"sideDepth": {
|
|
||||||
"t": "Límite lateral",
|
|
||||||
"d": "Controla hasta qué punto se extiende la copa del bikini hacia el lado"
|
|
||||||
},
|
|
||||||
"sideCurve": {
|
|
||||||
"t": "Curva lateral exterior",
|
|
||||||
"d": "Controla la curvatura del lado exterior de la copa del bikini"
|
|
||||||
},
|
|
||||||
"frontCurve": {
|
|
||||||
"t": "Curva lateral interior",
|
|
||||||
"d": "Controla la curvatura de la parte lateral interior de la copa del bikini"
|
|
||||||
},
|
|
||||||
"bellaGuide": {
|
|
||||||
"t": "Mostrar Bella",
|
|
||||||
"d": "Muestra el contorno del patrón base Bella en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"ties": {
|
|
||||||
"t": "Cintas",
|
|
||||||
"d": "Sobre si incluir cintas o no"
|
|
||||||
},
|
|
||||||
"bandTieWidth": {
|
|
||||||
"t": "Ancho de la cinta del pecho",
|
|
||||||
"d": "Controla el ancho de las cintas alrededor del pecho"
|
|
||||||
},
|
|
||||||
"bandTieLength": {
|
|
||||||
"t": "Longitud de la cinta del pecho",
|
|
||||||
"d": "Controla la longitud de las cintas alrededor del pecho"
|
|
||||||
},
|
|
||||||
"bandTieEnds": {
|
|
||||||
"t": "Puntas de la cinta del pecho",
|
|
||||||
"d": "Si prefieres que las puntas de la cinta alrededor del pecho sean planas o acaben en punta"
|
|
||||||
},
|
|
||||||
"bandTieColours": {
|
|
||||||
"t": "Colores de la longitud de la cinta del pecho",
|
|
||||||
"d": "Sobre si quieres cintas de un solo color alrededor del pecho o de dos colores."
|
|
||||||
},
|
|
||||||
"neckTieWidth": {
|
|
||||||
"t": "Ancho de la cinta del cuello",
|
|
||||||
"d": "Controla el ancho de las cintas alrededor del pecho"
|
|
||||||
},
|
|
||||||
"neckTieLength": {
|
|
||||||
"t": "Longitud de la cinta del cuello",
|
|
||||||
"d": "Controla la longitud de las cintas alrededor del pecho"
|
|
||||||
},
|
|
||||||
"neckTieEnds": {
|
|
||||||
"t": "Puntas de la cinta del cuello",
|
|
||||||
"d": "Si prefieres que las puntas de la cinta alrededor del pecho sean planas o acaben en punta"
|
|
||||||
},
|
|
||||||
"neckTieColours": {
|
|
||||||
"t": "Colores de la cinta del cuello",
|
|
||||||
"d": "Sobre si quieres cintas de un solo color alrededor del pecho o de dos colores."
|
|
||||||
},
|
|
||||||
"crossBackTies": {
|
|
||||||
"t": "Cintas cruzadas",
|
|
||||||
"d": "Whether you'd like to use the cross back tie variation of Bee"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Band Length (Cross back ties)",
|
|
||||||
"d": "Controla la longitud de la cinta alrededor de tu pecho para la versión de tirantes cruzados de Bee"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Back dart height (Bella)",
|
|
||||||
"d": "Controla la altura de la pinza trasera en el patrón base Bella, en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Armhole depth (Bella)",
|
|
||||||
"d": "Controla la profundidad de la sisa en el patron de base Bella en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Front armhole pitch depth (Bella)",
|
|
||||||
"d": "Controls the front armhole pitch depth in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Front shoulder width (Bella)",
|
|
||||||
"d": "Controla el ancho de hombros en el patrón de base Bella en el que se basa Bee"
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest reduction (Bella)",
|
|
||||||
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "High bust width (Bella)",
|
|
||||||
"d": "Controls the high bust width in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Ancho de hombros (Bella)",
|
|
||||||
"d": "Controla el ancho de hombros en el patrón de base Bella en el que se basa Bee"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Haut de bikini Bee",
|
|
||||||
"d": "Bee est un haut de bikini",
|
|
||||||
"p": {
|
|
||||||
"bandTie": "Band Tie",
|
|
||||||
"cup": "Cup",
|
|
||||||
"neckTie": "Neck Tie"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Aisance de poitrine",
|
|
||||||
"d": "Contrôle l'aisance de la poitrine dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Aisance à la taille",
|
|
||||||
"d": "Contrôle l'aisance de la taille dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Aisance de l'écart poitrine",
|
|
||||||
"d": "Contrôle l'aisance de l'écart de poitrine dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"topDepth": {
|
|
||||||
"t": "Profondeur supérieure",
|
|
||||||
"d": "Contrôle jusqu'à quel point le bonnet de bikini s'étend vers le haut"
|
|
||||||
},
|
|
||||||
"bottomCupDepth": {
|
|
||||||
"t": "Profondeur inférieure",
|
|
||||||
"d": "Contrôle jusqu'à quel point le bonnet de bikini s'étend vers le bas"
|
|
||||||
},
|
|
||||||
"sideDepth": {
|
|
||||||
"t": "Profondeur latérale",
|
|
||||||
"d": "Contrôle jusqu'à quel point le bonnet du bikini se prolonge vers le côté"
|
|
||||||
},
|
|
||||||
"sideCurve": {
|
|
||||||
"t": "Courbe latérale",
|
|
||||||
"d": "Contrôle la courbure du côté du bonnet du bikini"
|
|
||||||
},
|
|
||||||
"frontCurve": {
|
|
||||||
"t": "Courbe frontale",
|
|
||||||
"d": "Contrôle la courbure du devant du bonnet du bikini"
|
|
||||||
},
|
|
||||||
"bellaGuide": {
|
|
||||||
"t": "Afficher Bella",
|
|
||||||
"d": "Affiche le contour du bloc Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"ties": {
|
|
||||||
"t": "Liens",
|
|
||||||
"d": "S'il faut inclure les liens, oui ou non"
|
|
||||||
},
|
|
||||||
"bandTieWidth": {
|
|
||||||
"t": "Largeur de la bande (sous poitrine)",
|
|
||||||
"d": "Contrôle la largeur des bandes autour de votre poitrine"
|
|
||||||
},
|
|
||||||
"bandTieLength": {
|
|
||||||
"t": "Longueur de la bande (sous poitrine)",
|
|
||||||
"d": "Contrôle la longueur des bandes autour de votre poitrine"
|
|
||||||
},
|
|
||||||
"bandTieEnds": {
|
|
||||||
"t": "Finition des bouts de bandes (sous poitrine)",
|
|
||||||
"d": "Choisir si vous voulez que la pointe de la bande autour de votre poitrine se termine droite ou en pointe"
|
|
||||||
},
|
|
||||||
"bandTieColours": {
|
|
||||||
"t": "Couleurs de la bande (sous poitrine)",
|
|
||||||
"d": "Que vous vouliez une seule couleur autour de votre poitrine, ou des couleurs doubles"
|
|
||||||
},
|
|
||||||
"neckTieWidth": {
|
|
||||||
"t": "Largeur de la bande de cou",
|
|
||||||
"d": "Contrôle la largeur des bandes autour de votre cou"
|
|
||||||
},
|
|
||||||
"neckTieLength": {
|
|
||||||
"t": "Longueur de la bande",
|
|
||||||
"d": "Contrôle la longueur des bandes autour de votre cou"
|
|
||||||
},
|
|
||||||
"neckTieEnds": {
|
|
||||||
"t": "Fin de la bande de cou",
|
|
||||||
"d": "Choisir si vous voulez que la pointe de la bande autour de votre cou se termine droite ou en pointe"
|
|
||||||
},
|
|
||||||
"neckTieColours": {
|
|
||||||
"t": "Couleurs de bande de cou",
|
|
||||||
"d": "Que vous vouliez une seule couleur autour de votre cou, ou des couleurs doubles"
|
|
||||||
},
|
|
||||||
"crossBackTies": {
|
|
||||||
"t": "Bandes croisées dans le dos",
|
|
||||||
"d": "Si vous souhaitez utiliser la variation de dos croisé de Bee"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Longueur de la bande (bandes croisées dans le dos)",
|
|
||||||
"d": "Contrôle la longueur de la bande autour de votre buste pour la variation du dos croisé de Bee"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Hauteur de la pince dos (Bella)",
|
|
||||||
"d": "Contrôle la hauteur de pince dos dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Profondeur d'emmanchure (Bella)",
|
|
||||||
"d": "Contrôle la profondeur de l'emmanchure dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Profondeur du point pivot de l'emmanchure devant (Bella)",
|
|
||||||
"d": "Contrôle la profondeur du point pivot de l'emmanchure avant dans le bloc Bella sur lequel est basé le patron Bee"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Largeur de l'épaule devant (Bella)",
|
|
||||||
"d": "Contrôle la largeur de l'épaule avant dans le bloc de Bella sur lequel est basé le patron Bee"
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Réduction de la poitrine (Bella)",
|
|
||||||
"d": "Contrôle la réduction du thorax dans le bloc Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Largeur du tour de buste supérieur (Bella)",
|
|
||||||
"d": "Contrôle la largeur du buste supérieur dans le bloc de Bella sur lequel est basé Bee"
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Aisance d'épaules à épaules (Bella)",
|
|
||||||
"d": "Contrôle l'aisance d'épaule à épaule dans le bloc Bella sur lequel est basé le patron Bee"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' with { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' with { type: 'json' }
|
|
||||||
import es from './es.json' with { type: 'json' }
|
|
||||||
import fr from './fr.json' with { type: 'json' }
|
|
||||||
import nl from './nl.json' with { type: 'json' }
|
|
||||||
import uk from './uk.json' with { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bee bikini top",
|
|
||||||
"d": "Bee is a bikini top",
|
|
||||||
"p": {
|
|
||||||
"bandTie": "Band Tie",
|
|
||||||
"cup": "Cup",
|
|
||||||
"neckTie": "Neck Tie"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Overwijdte borst",
|
|
||||||
"d": "Controls the chest ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Overwijdte taille",
|
|
||||||
"d": "Controls the waist ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Overwijdte bustenwijdte",
|
|
||||||
"d": "Controls the bust span ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"topDepth": {
|
|
||||||
"t": "Top Depth",
|
|
||||||
"d": "Controls how far the bikini cup extends upwards"
|
|
||||||
},
|
|
||||||
"bottomCupDepth": {
|
|
||||||
"t": "Bottom depth",
|
|
||||||
"d": "Controls how far the bikini cup extends downwards"
|
|
||||||
},
|
|
||||||
"sideDepth": {
|
|
||||||
"t": "Side depth",
|
|
||||||
"d": "Controls how far the bikini cup extends towards the side"
|
|
||||||
},
|
|
||||||
"sideCurve": {
|
|
||||||
"t": "Side curve",
|
|
||||||
"d": "Controls the curvature of the side of the bikini cup"
|
|
||||||
},
|
|
||||||
"frontCurve": {
|
|
||||||
"t": "Front curve",
|
|
||||||
"d": "Controls the curvature of the front of the bikini cup"
|
|
||||||
},
|
|
||||||
"bellaGuide": {
|
|
||||||
"t": "Show Bella",
|
|
||||||
"d": "Shows the outline of the Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"ties": {
|
|
||||||
"t": "Ties",
|
|
||||||
"d": "Whether to includes ties, yes or no"
|
|
||||||
},
|
|
||||||
"bandTieWidth": {
|
|
||||||
"t": "Band (chest) tie width",
|
|
||||||
"d": "Controls the width of the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieLength": {
|
|
||||||
"t": "Band (chest) tie length",
|
|
||||||
"d": "Controls the length of the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieEnds": {
|
|
||||||
"t": "Band (chest) tie ends",
|
|
||||||
"d": "Whether you like straight or pointy ends on the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieColours": {
|
|
||||||
"t": "Band (chest) tie length colours",
|
|
||||||
"d": "Whether you want single color ties around your chest, or dual-coloured ones"
|
|
||||||
},
|
|
||||||
"neckTieWidth": {
|
|
||||||
"t": "Neck tie width",
|
|
||||||
"d": "Controls the width of the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieLength": {
|
|
||||||
"t": "Neck tie length",
|
|
||||||
"d": "Controls the length of the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieEnds": {
|
|
||||||
"t": "Neck tie ends",
|
|
||||||
"d": "Whether you like straight or pointy ends on the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieColours": {
|
|
||||||
"t": "Neck tie colours",
|
|
||||||
"d": "Whether you want single color ties around your chest, or dual-coloured ones"
|
|
||||||
},
|
|
||||||
"crossBackTies": {
|
|
||||||
"t": "Cross back ties",
|
|
||||||
"d": "Whether you'd like to use the cross back tie variation of Bee"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Band Length (Cross back ties)",
|
|
||||||
"d": "Controls the length of the band around your chest for the cross back ties variation of Bee"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Back dart height (Bella)",
|
|
||||||
"d": "Controls the back dart height in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Armhole depth (Bella)",
|
|
||||||
"d": "Controls the armhole depth in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Front armhole pitch depth (Bella)",
|
|
||||||
"d": "Controls the front armhole pitch depth in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Front shoulder width (Bella)",
|
|
||||||
"d": "Controls the front shoulder width in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest reduction (Bella)",
|
|
||||||
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "High bust width (Bella)",
|
|
||||||
"d": "Controls the high bust width in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease (Bella)",
|
|
||||||
"d": "Controls the shoulder to shoulder ease in the underlying Bella block Bee is based on"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bee bikini top",
|
|
||||||
"d": "Bee is a bikini top",
|
|
||||||
"p": {
|
|
||||||
"bandTie": "Band Tie",
|
|
||||||
"cup": "Cup",
|
|
||||||
"neckTie": "Neck Tie"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Chest ease",
|
|
||||||
"d": "Controls the chest ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Waist ease",
|
|
||||||
"d": "Controls the waist ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Bust span ease",
|
|
||||||
"d": "Controls the bust span ease in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"topDepth": {
|
|
||||||
"t": "Top Depth",
|
|
||||||
"d": "Controls how far the bikini cup extends upwards"
|
|
||||||
},
|
|
||||||
"bottomCupDepth": {
|
|
||||||
"t": "Bottom depth",
|
|
||||||
"d": "Controls how far the bikini cup extends downwards"
|
|
||||||
},
|
|
||||||
"sideDepth": {
|
|
||||||
"t": "Side depth",
|
|
||||||
"d": "Controls how far the bikini cup extends towards the side"
|
|
||||||
},
|
|
||||||
"sideCurve": {
|
|
||||||
"t": "Side curve",
|
|
||||||
"d": "Controls the curvature of the side of the bikini cup"
|
|
||||||
},
|
|
||||||
"frontCurve": {
|
|
||||||
"t": "Front curve",
|
|
||||||
"d": "Controls the curvature of the front of the bikini cup"
|
|
||||||
},
|
|
||||||
"bellaGuide": {
|
|
||||||
"t": "Show Bella",
|
|
||||||
"d": "Shows the outline of the Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"ties": {
|
|
||||||
"t": "Ties",
|
|
||||||
"d": "Whether to includes ties, yes or no"
|
|
||||||
},
|
|
||||||
"bandTieWidth": {
|
|
||||||
"t": "Band (chest) tie width",
|
|
||||||
"d": "Controls the width of the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieLength": {
|
|
||||||
"t": "Band (chest) tie length",
|
|
||||||
"d": "Controls the length of the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieEnds": {
|
|
||||||
"t": "Band (chest) tie ends",
|
|
||||||
"d": "Whether you like straight or pointy ends on the ties around your chest"
|
|
||||||
},
|
|
||||||
"bandTieColours": {
|
|
||||||
"t": "Band (chest) tie length colours",
|
|
||||||
"d": "Whether you want single color ties around your chest, or dual-coloured ones"
|
|
||||||
},
|
|
||||||
"neckTieWidth": {
|
|
||||||
"t": "Neck tie width",
|
|
||||||
"d": "Controls the width of the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieLength": {
|
|
||||||
"t": "Neck tie length",
|
|
||||||
"d": "Controls the length of the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieEnds": {
|
|
||||||
"t": "Neck tie ends",
|
|
||||||
"d": "Whether you like straight or pointy ends on the ties around your chest"
|
|
||||||
},
|
|
||||||
"neckTieColours": {
|
|
||||||
"t": "Neck tie colours",
|
|
||||||
"d": "Whether you want single color ties around your chest, or dual-coloured ones"
|
|
||||||
},
|
|
||||||
"crossBackTies": {
|
|
||||||
"t": "Cross back ties",
|
|
||||||
"d": "Whether you'd like to use the cross back tie variation of Bee"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Band Length (Cross back ties)",
|
|
||||||
"d": "Controls the length of the band around your chest for the cross back ties variation of Bee"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Back dart height (Bella)",
|
|
||||||
"d": "Controls the back dart height in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Armhole depth (Bella)",
|
|
||||||
"d": "Controls the armhole depth in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Front armhole pitch depth (Bella)",
|
|
||||||
"d": "Controls the front armhole pitch depth in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Front shoulder width (Bella)",
|
|
||||||
"d": "Controls the front shoulder width in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest reduction (Bella)",
|
|
||||||
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "High bust width (Bella)",
|
|
||||||
"d": "Controls the high bust width in the underlying Bella block Bee is based on"
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease (Bella)",
|
|
||||||
"d": "Controls the shoulder to shoulder ease in the underlying Bella block Bee is based on"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/bee",
|
"name": "@freesewing/bee",
|
||||||
"version": "3.3.0-rc.1",
|
"version": "4.0.0",
|
||||||
"description": "A FreeSewing pattern for a bikini top",
|
"description": "A FreeSewing pattern for a bikini top",
|
||||||
"author": "bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)",
|
"author": "bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
|
@ -25,49 +25,40 @@
|
||||||
"sewing pattern"
|
"sewing pattern"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.mjs",
|
|
||||||
"build:all": "yarn build",
|
|
||||||
"clean": "rimraf dist",
|
|
||||||
"mbuild": "NO_MINIFY=1 node build.mjs",
|
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"test": "npx mocha tests/*.test.mjs",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"vbuild": "VERBOSE=1 node build.mjs",
|
|
||||||
"lab": "cd ../../sites/lab && yarn start",
|
|
||||||
"tips": "node ../../scripts/help.mjs",
|
"tips": "node ../../scripts/help.mjs",
|
||||||
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||||
"wbuild": "node build.mjs",
|
|
||||||
"wbuild:all": "yarn wbuild"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@freesewing/core": "3.3.0-rc.1",
|
"@freesewing/core": "4.0.0",
|
||||||
"@freesewing/bella": "3.3.0-rc.1"
|
"@freesewing/bella": "4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "10.4.0",
|
"mocha": "10.4.0",
|
||||||
"chai": "5.1.1",
|
"chai": "5.1.1",
|
||||||
"@freesewing/models": "3.3.0-rc.1",
|
"@freesewing/models": "4.0.0",
|
||||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
"@freesewing/plugin-timing": "4.0.0"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"src/",
|
||||||
|
"i18n/",
|
||||||
|
"about.json",
|
||||||
"README.md"
|
"README.md"
|
||||||
],
|
],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Design, mergeI18n } from '@freesewing/core'
|
import { Design, mergeI18n } from '@freesewing/core'
|
||||||
import { data } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
import { cup } from './cup.mjs'
|
import { cup } from './cup.mjs'
|
||||||
import { neckTie } from './neck-tie.mjs'
|
import { neckTie } from './neck-tie.mjs'
|
||||||
import { bandTie } from './band-tie.mjs'
|
import { bandTie } from './band-tie.mjs'
|
||||||
|
@ -7,7 +7,7 @@ import { i18n as beeI18n } from '../i18n/index.mjs'
|
||||||
import { i18n as bellaI18n } from '@freesewing/bella'
|
import { i18n as bellaI18n } from '@freesewing/bella'
|
||||||
|
|
||||||
const Bee = new Design({
|
const Bee = new Design({
|
||||||
data,
|
data: about,
|
||||||
parts: [cup, neckTie, bandTie],
|
parts: [cup, neckTie, bandTie],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -50,4 +50,4 @@ const i18n = mergeI18n([bellaI18n, beeI18n], {
|
||||||
o: { keep: i18nKeepOptions },
|
o: { keep: i18nKeepOptions },
|
||||||
})
|
})
|
||||||
|
|
||||||
export { cup, neckTie, bandTie, Bee, i18n }
|
export { cup, neckTie, bandTie, Bee, i18n, about }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file is auto-generated | Any changes you make will be overwritten.
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
import { Bee, i18n } from '../src/index.mjs'
|
import { Bee, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -8,7 +8,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig(Bee)
|
testPatternConfig(Bee, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n(Bee, i18n)
|
testPatternI18n(Bee, i18n)
|
||||||
|
|
|
@ -9,24 +9,14 @@
|
||||||
><img src="https://img.shields.io/npm/l/@freesewing/bella.svg?label=License"
|
><img src="https://img.shields.io/npm/l/@freesewing/bella.svg?label=License"
|
||||||
alt="License: MIT"/>
|
alt="License: MIT"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
|
||||||
title="Code quality on DeepScan"
|
|
||||||
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
|
||||||
alt="Code quality on DeepScan"/>
|
|
||||||
</a><a
|
|
||||||
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Abella"
|
|
||||||
title="Open issues tagged pkg:bella"
|
|
||||||
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:bella.svg?label=Issues"
|
|
||||||
alt="Open issues tagged pkg:bella"/>
|
|
||||||
</a><a
|
|
||||||
href="#contributors-"
|
href="#contributors-"
|
||||||
title="All Contributors"
|
title="All Contributors"
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
href="https://forum.freesewing.org"
|
||||||
title="Follow @freesewing_org on Twitter"
|
title="Follow @freesewing_org on Twitter"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://chat.freesewing.org"
|
href="https://chat.freesewing.org"
|
||||||
|
@ -38,11 +28,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# @freesewing/bella
|
# @freesewing/bella
|
||||||
|
@ -59,7 +44,7 @@ A FreeSewing pattern for a womenswear bodice block
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -76,7 +61,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -86,7 +71,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -98,7 +83,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -114,49 +99,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
21
designs/bella/about.json
Normal file
21
designs/bella/about.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"id": "bella",
|
||||||
|
"name": "Bella body block",
|
||||||
|
"code": "Joost De Cock",
|
||||||
|
"description": "A FreeSewing pattern for a womenswear bodice block",
|
||||||
|
"design": [
|
||||||
|
"Bella Incognito",
|
||||||
|
"Joost De Cock"
|
||||||
|
],
|
||||||
|
"difficulty": 3,
|
||||||
|
"tags": [
|
||||||
|
"blocks",
|
||||||
|
"tops"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"dart",
|
||||||
|
"block"
|
||||||
|
],
|
||||||
|
"version": "4.0.0",
|
||||||
|
"pkg": "@freesewing/bella"
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
/* This script will build the package with esbuild */
|
|
||||||
import esbuild from 'esbuild'
|
|
||||||
import pkg from './package.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Create banner based on package info
|
|
||||||
const banner = `/**
|
|
||||||
* ${pkg.name} | v${pkg.version}
|
|
||||||
* ${pkg.description}
|
|
||||||
* (c) ${new Date().getFullYear()} ${pkg.author}
|
|
||||||
* @license ${pkg.license}
|
|
||||||
*/`
|
|
||||||
|
|
||||||
// Shared esbuild options
|
|
||||||
const options = {
|
|
||||||
banner: { js: banner },
|
|
||||||
bundle: true,
|
|
||||||
entryPoints: ['src/index.mjs'],
|
|
||||||
format: 'esm',
|
|
||||||
outfile: 'dist/index.mjs',
|
|
||||||
external: ['@freesewing'],
|
|
||||||
metafile: process.env.VERBOSE ? true : false,
|
|
||||||
minify: process.env.NO_MINIFY ? false : true,
|
|
||||||
sourcemap: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let esbuild generate the build
|
|
||||||
const build = async () => {
|
|
||||||
const result = await esbuild.build(options).catch(() => process.exit(1))
|
|
||||||
|
|
||||||
if (process.env.VERBOSE) {
|
|
||||||
const info = await esbuild.analyzeMetafile(result.metafile)
|
|
||||||
console.log(info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
build()
|
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '@freesewing/bella'
|
|
||||||
export const version = '3.3.0-rc.1'
|
|
||||||
export const data = { name, version }
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bella, ein Grundschnitt",
|
|
||||||
"d": "Bella ist ein Grundschnitt für Personen mit Brüsten.",
|
|
||||||
"p": {
|
|
||||||
"back": "Rückseite",
|
|
||||||
"frontSideDart": "Vorderseite"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Brustumfangszugabe",
|
|
||||||
"d": "Steuert die Größe der Zugabe zum Brustumfang"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Taillenzugabe",
|
|
||||||
"d": "Steuert die Menge an Leichtigkeit in deiner Taille"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Zugabe seitlicher Brustbereich",
|
|
||||||
"d": "Steuert die Größe der (horizontalen) Zugabe, zu deinem seitlichen Brustbereich, \nwenn Brustpunkt berechnet wird."
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Zugabe des Schulterabstandes",
|
|
||||||
"d": "Kontrolliert die Menge an Zugabe zwischen deinen Schultern. Liegt inital bei -0,5%, da Bella ein Grundschnitt erfüllt, welcher in der Branche verwendet wird."
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Verringerung der Brustumfangszugabe",
|
|
||||||
"d": "Ermöglicht es dir den Spielraum an der Brust zu verringern, um dort einen engeren Sitz zu ermöglichen"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Höhe Rückenabnäher",
|
|
||||||
"d": "Steuert die Höhe des Rückenabnähers"
|
|
||||||
},
|
|
||||||
"bustDartLength": {
|
|
||||||
"t": "Länge des Brustabnähers",
|
|
||||||
"d": "Steuert die Länge des Brustabnähers"
|
|
||||||
},
|
|
||||||
"waistDartLength": {
|
|
||||||
"t": "Länge des Taillenabnähers",
|
|
||||||
"d": "Steuert die Länge des Taillenabnähers"
|
|
||||||
},
|
|
||||||
"bustDartCurve": {
|
|
||||||
"t": "Rundung Brustabnäher",
|
|
||||||
"d": "Steuert die Krümmung des Büstendarts"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Armlochtiefe",
|
|
||||||
"d": "Steuert die Tiefe des Armloches"
|
|
||||||
},
|
|
||||||
"backArmholeSlant": {
|
|
||||||
"t": "Hintere Armlochschiebung",
|
|
||||||
"d": "Dreht das Armloch leicht in seinem Drehpunkt"
|
|
||||||
},
|
|
||||||
"frontArmholeCurvature": {
|
|
||||||
"t": "Vordere Armlochkrümmung",
|
|
||||||
"d": "Steuert wie tief das Armloch nach vorne unten ausgeschnitten ist"
|
|
||||||
},
|
|
||||||
"backArmholeCurvature": {
|
|
||||||
"t": "Hintere Armlochkrümmung",
|
|
||||||
"d": "Steuert wie tief das Armloch nach hinten unten ausgeschnitten ist"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Vordere Armlochtiefe",
|
|
||||||
"d": "Stellt die horizontale Position des Vorderarmlochpunktes fest"
|
|
||||||
},
|
|
||||||
"backArmholePitchDepth": {
|
|
||||||
"t": "Rückenarmloch-Tiefe",
|
|
||||||
"d": "Stellt die horizontale Position des Rückenlochpunktes fest"
|
|
||||||
},
|
|
||||||
"backNeckCutout": {
|
|
||||||
"t": "Ausschnitt im Nacken",
|
|
||||||
"d": "Steuert, wie tief der Nackenausschnit am Rücken ausfällt"
|
|
||||||
},
|
|
||||||
"backHemSlope": {
|
|
||||||
"t": "Neigung des hinteren Saumes",
|
|
||||||
"d": "Steuert den Hang des Saum auf der Rückseite"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Vordere Schulterbreite",
|
|
||||||
"d": "Steuert die Schmalheit der vorderen Schultern relativ zum Rücken"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Oberbrustweite",
|
|
||||||
"d": "Erlaubt es dir die Oberbrustweite vorne zu optimieren"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bella, patrón base de torso con pechos",
|
|
||||||
"d": "Bella es un patrón báse para personas con pechos.",
|
|
||||||
"p": {
|
|
||||||
"back": "Atrás",
|
|
||||||
"frontSideDart": "Frente"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Holgura de pecho",
|
|
||||||
"d": "Controla la cantidad de facilidad en la parte más completa de tu cofre"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Holgura de cintura",
|
|
||||||
"d": "Controla la cantidad de facilidad en tu cintura"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Facilidad de la expansión del polvo",
|
|
||||||
"d": "Controla la cantidad de facilidad (horizontal) que se agrega a tu superficie de busto al ubicar el punto de busto."
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease",
|
|
||||||
"d": "Controls the amount of ease between your shoulders. Initially set to -.5% because Bella implements a block that is used in the industry."
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest ease reduction",
|
|
||||||
"d": "Allows you to independently reduce the ease around the chest to make it fit tight(er) in that area"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Altura del dart trasero",
|
|
||||||
"d": "Controla la altura del dart posterior"
|
|
||||||
},
|
|
||||||
"bustDartLength": {
|
|
||||||
"t": "Longitud del dart del polvo",
|
|
||||||
"d": "Controla la longitud del polvo"
|
|
||||||
},
|
|
||||||
"waistDartLength": {
|
|
||||||
"t": "Longitud del dart de Waist",
|
|
||||||
"d": "Controla la longitud del dardo de la cintura"
|
|
||||||
},
|
|
||||||
"bustDartCurve": {
|
|
||||||
"t": "Curva darda de busto",
|
|
||||||
"d": "Controla la curvatura del polvo"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Profundidad del orificio",
|
|
||||||
"d": "Controla la profundidad del orificio"
|
|
||||||
},
|
|
||||||
"backArmholeSlant": {
|
|
||||||
"t": "Slant del orificio trasero",
|
|
||||||
"d": "Rota ligeramente el orificio alrededor de su punto de zanja"
|
|
||||||
},
|
|
||||||
"frontArmholeCurvature": {
|
|
||||||
"t": "Front armhole curvature",
|
|
||||||
"d": "Controls how deep the armhole is scooped out at the front bottom"
|
|
||||||
},
|
|
||||||
"backArmholeCurvature": {
|
|
||||||
"t": "Curvatura del orificio trasero",
|
|
||||||
"d": "Controla la profundidad del agujero de armadura en la parte trasera"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Profundidad del tono del orificio delantero",
|
|
||||||
"d": "Modifica la posición horizontal del punto de giro del blindaje frontal"
|
|
||||||
},
|
|
||||||
"backArmholePitchDepth": {
|
|
||||||
"t": "Profundidad del tono del orificio trasero",
|
|
||||||
"d": "Modifica la posición horizontal del punto de giro del orificio trasero"
|
|
||||||
},
|
|
||||||
"backNeckCutout": {
|
|
||||||
"t": "Corte trasero del cuello",
|
|
||||||
"d": "Controla la profundidad de la apertura del cuello en la espalda"
|
|
||||||
},
|
|
||||||
"backHemSlope": {
|
|
||||||
"t": "Pendiente trasera",
|
|
||||||
"d": "Controla la pendiente del hem en la espalda"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Ancho del hombro frontal",
|
|
||||||
"d": "Controla la estrechez de los hombros delanteros relativos a la parte trasera"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Ancho de bust alto",
|
|
||||||
"d": "Le permite ajustar el ancho del polvo alto en la parte frontal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Buste de base Bella",
|
|
||||||
"d": "Bella est un bloc corporel de base pour les personnes qui ont le sein.",
|
|
||||||
"p": {
|
|
||||||
"back": "Retour",
|
|
||||||
"frontSideDart": "Avant"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Aisance de poitrine",
|
|
||||||
"d": "Contrôle la quantité d'aisance au niveau le plus large de votre buste"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Aisance à la taille",
|
|
||||||
"d": "Contrôle la quantité d'aisance au niveau de la taille"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Aisance de l'écart poitrine",
|
|
||||||
"d": "Contrôle la quantité d'aisance (horizontale) ajoutée à votre poitrine entre les 2 pointes de la poitrine."
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Aisance d'épaule à épaule",
|
|
||||||
"d": "Contrôle la quantité d'aisance entre vos épaules. Initialement réglé sur -.5% parce que Bella implémente un bloc qui est utilisé dans l'industrie."
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Réduction de l'aisance de la poitrine",
|
|
||||||
"d": "Vous permet de réduire l'aisance de la poitrine indépendamment pour rendre plus seyant cette zone"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Hauteur de pince dos",
|
|
||||||
"d": "Contrôle la hauteur de pince dans le dos"
|
|
||||||
},
|
|
||||||
"bustDartLength": {
|
|
||||||
"t": "Longueur des pinces poitrine",
|
|
||||||
"d": "Contrôle la longueur de la pince dos"
|
|
||||||
},
|
|
||||||
"waistDartLength": {
|
|
||||||
"t": "Longueur de la pince de taille",
|
|
||||||
"d": "Contrôle la longueur de la pince de taille"
|
|
||||||
},
|
|
||||||
"bustDartCurve": {
|
|
||||||
"t": "Courbe de la pince poitrine",
|
|
||||||
"d": "Contrôle la courbure de la pince poitrine"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Profondeur d'emmanchure",
|
|
||||||
"d": "Contrôle la profondeur de l'emmanchure"
|
|
||||||
},
|
|
||||||
"backArmholeSlant": {
|
|
||||||
"t": "Inclinaison d'emmanchure dos",
|
|
||||||
"d": "Modifie légèrement l'inclinaison de courbe de l'emmanchure autour de son point de pivot"
|
|
||||||
},
|
|
||||||
"frontArmholeCurvature": {
|
|
||||||
"t": "Coube de l'emmanchure avant",
|
|
||||||
"d": "Contrôle la profondeur du bas de la courbure d'emmanchure sur le devant"
|
|
||||||
},
|
|
||||||
"backArmholeCurvature": {
|
|
||||||
"t": "Courbure de l'emmanchure arrière",
|
|
||||||
"d": "Contrôle la profondeur du bas de la courbure d'emmanchure dans le dos"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Profondeur du point de pivot de l'emmanchure avant",
|
|
||||||
"d": "Modifie la position horizontale du point de pivot de l'emmanchure avant"
|
|
||||||
},
|
|
||||||
"backArmholePitchDepth": {
|
|
||||||
"t": "Profondeur du point de pivot de l'emmanchure dos",
|
|
||||||
"d": "Modifie la position horizontale du point de pivot de l'emmanchure dos"
|
|
||||||
},
|
|
||||||
"backNeckCutout": {
|
|
||||||
"t": "Arrondi de l'encolure au dos",
|
|
||||||
"d": "Contrôle la profondeur de l'encolure à l'arrière du cou"
|
|
||||||
},
|
|
||||||
"backHemSlope": {
|
|
||||||
"t": "Pente de l'ourlet dos",
|
|
||||||
"d": "Contrôle la pente de l'ourlet à l'arrière"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Largeur d'épaule devant",
|
|
||||||
"d": "Contrôle l'étroitesse des longueurs d'épaules de devant par rapport au dos"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Largeur de buste supérieur",
|
|
||||||
"d": "Permet de modifier la largeur de buste supérieur à l'avant"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' with { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' with { type: 'json' }
|
|
||||||
import es from './es.json' with { type: 'json' }
|
|
||||||
import fr from './fr.json' with { type: 'json' }
|
|
||||||
import nl from './nl.json' with { type: 'json' }
|
|
||||||
import uk from './uk.json' with { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bella lichaam blok",
|
|
||||||
"d": "Bella is een basisorgaan voor mensen met borsten.",
|
|
||||||
"p": {
|
|
||||||
"back": "Achterzijde",
|
|
||||||
"frontSideDart": "Voorzijde"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Overwijdte borst",
|
|
||||||
"d": "Bepaalt de hoeveelheid overwijdte aan het grootste deel van je borst"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Overwijdte taille",
|
|
||||||
"d": "Bepaalt de hoeveelheid overwijdte aan je taille"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Overwijdte bustenwijdte",
|
|
||||||
"d": "Bepaalt de hoeveelheid (horizontaal) overwijdte die wordt toegevoegd aan uw bustewijdte bij het lokaliseren van het bustepunt."
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease",
|
|
||||||
"d": "Controls the amount of ease between your shoulders. Initially set to -.5% because Bella implements a block that is used in the industry."
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest ease reduction",
|
|
||||||
"d": "Allows you to independently reduce the ease around the chest to make it fit tight(er) in that area"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Hoogte neep rug",
|
|
||||||
"d": "Bepaalt de hoogte van de achterste neep"
|
|
||||||
},
|
|
||||||
"bustDartLength": {
|
|
||||||
"t": "Lengte busteneep",
|
|
||||||
"d": "Bepaalt de lengte van de buste-neep"
|
|
||||||
},
|
|
||||||
"waistDartLength": {
|
|
||||||
"t": "Lengte neep taille",
|
|
||||||
"d": "Bepaalt de lengte van de neep van de taille"
|
|
||||||
},
|
|
||||||
"bustDartCurve": {
|
|
||||||
"t": "Curve busteneep",
|
|
||||||
"d": "Bepaalt de kromming van de busteneep"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Diepte armsgat",
|
|
||||||
"d": "Bepaalt de diepte van het armsgat"
|
|
||||||
},
|
|
||||||
"backArmholeSlant": {
|
|
||||||
"t": "Schuin armsgat achter",
|
|
||||||
"d": "Het armsgat rond zijn toonhoogte roteert enigszins"
|
|
||||||
},
|
|
||||||
"frontArmholeCurvature": {
|
|
||||||
"t": "Front armhole curvature",
|
|
||||||
"d": "Controls how deep the armhole is scooped out at the front bottom"
|
|
||||||
},
|
|
||||||
"backArmholeCurvature": {
|
|
||||||
"t": "Kromming armsgat achter",
|
|
||||||
"d": "Bepaalt hoe diep het armsgat aan de achterste onderkant wordt uitgekoopt"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Diepte armsgat vooraan",
|
|
||||||
"d": "Aanpassen van de horizontale plaatsing van het pitch voorste armsgat"
|
|
||||||
},
|
|
||||||
"backArmholePitchDepth": {
|
|
||||||
"t": "Diepte armsgat achteraan",
|
|
||||||
"d": "Aanpassen van de horizontale plaatsing van het armsgat achterin"
|
|
||||||
},
|
|
||||||
"backNeckCutout": {
|
|
||||||
"t": "Hals uitsnijding achteraan",
|
|
||||||
"d": "Bepaalt hoe diep de halsopening aan de achterkant wordt uitgekoopt"
|
|
||||||
},
|
|
||||||
"backHemSlope": {
|
|
||||||
"t": "Lope zoom achter",
|
|
||||||
"d": "Bepaalt de richtingscoëfficiënt van de zoom achteraan"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Schouderbreedte vooraan",
|
|
||||||
"d": "Bepaalt de smalheid van de schouders vooraan ten opzichte van de achterkant"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "Hoge buste-breedte",
|
|
||||||
"d": "Stelt je in staat om de breedte van de nachtbust vooraan te wijzigen"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Bella body block",
|
|
||||||
"d": "Bella is a basic body block for people with breasts.",
|
|
||||||
"p": {
|
|
||||||
"back": "Back",
|
|
||||||
"frontSideDart": "Front"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"chestEase": {
|
|
||||||
"t": "Chest ease",
|
|
||||||
"d": "Controls the amount of ease at the fullest part of your chest"
|
|
||||||
},
|
|
||||||
"waistEase": {
|
|
||||||
"t": "Waist ease",
|
|
||||||
"d": "Controls the amount of ease at your waist"
|
|
||||||
},
|
|
||||||
"bustSpanEase": {
|
|
||||||
"t": "Bust span ease",
|
|
||||||
"d": "Controls the amount of (horizontal) ease added to your bust span when locating the bust point."
|
|
||||||
},
|
|
||||||
"shoulderToShoulderEase": {
|
|
||||||
"t": "Shoulder to Shoulder ease",
|
|
||||||
"d": "Controls the amount of ease between your shoulders. Initially set to -.5% because Bella implements a block that is used in the industry."
|
|
||||||
},
|
|
||||||
"fullChestEaseReduction": {
|
|
||||||
"t": "Full chest ease reduction",
|
|
||||||
"d": "Allows you to independently reduce the ease around the chest to make it fit tight(er) in that area"
|
|
||||||
},
|
|
||||||
"backDartHeight": {
|
|
||||||
"t": "Back dart height",
|
|
||||||
"d": "Controls the height of the back dart"
|
|
||||||
},
|
|
||||||
"bustDartLength": {
|
|
||||||
"t": "Bust dart length",
|
|
||||||
"d": "Controls the length of the bust dart"
|
|
||||||
},
|
|
||||||
"waistDartLength": {
|
|
||||||
"t": "Waist dart length",
|
|
||||||
"d": "Controls the length of the waist dart"
|
|
||||||
},
|
|
||||||
"bustDartCurve": {
|
|
||||||
"t": "Bust dart curve",
|
|
||||||
"d": "Controls the curvature of the bust dart"
|
|
||||||
},
|
|
||||||
"armholeDepth": {
|
|
||||||
"t": "Armhole depth",
|
|
||||||
"d": "Controls the depth of the armhole"
|
|
||||||
},
|
|
||||||
"backArmholeSlant": {
|
|
||||||
"t": "Back armhole slant",
|
|
||||||
"d": "Slightly rotates the armhole around its pitch point"
|
|
||||||
},
|
|
||||||
"frontArmholeCurvature": {
|
|
||||||
"t": "Front armhole curvature",
|
|
||||||
"d": "Controls how deep the armhole is scooped out at the front bottom"
|
|
||||||
},
|
|
||||||
"backArmholeCurvature": {
|
|
||||||
"t": "Back armhole curvature",
|
|
||||||
"d": "Controls how deep the armhole is scooped out at the back bottom"
|
|
||||||
},
|
|
||||||
"frontArmholePitchDepth": {
|
|
||||||
"t": "Front armhole pitch depth",
|
|
||||||
"d": "Tweaks the horizontal placement of the front armhole pitch point"
|
|
||||||
},
|
|
||||||
"backArmholePitchDepth": {
|
|
||||||
"t": "Back armhole pitch depth",
|
|
||||||
"d": "Tweaks the horizontal placement of the back armhole pitch point"
|
|
||||||
},
|
|
||||||
"backNeckCutout": {
|
|
||||||
"t": "Back neck cutout",
|
|
||||||
"d": "Controls how deep the neck opening is scooped out at at the back"
|
|
||||||
},
|
|
||||||
"backHemSlope": {
|
|
||||||
"t": "Back hem slope",
|
|
||||||
"d": "Controls the slope of the hem at the back"
|
|
||||||
},
|
|
||||||
"frontShoulderWidth": {
|
|
||||||
"t": "Front shoulder width",
|
|
||||||
"d": "Controls the narrowness of the front shoulders relative to the back"
|
|
||||||
},
|
|
||||||
"highBustWidth": {
|
|
||||||
"t": "High bust width",
|
|
||||||
"d": "Allows you to tweak the hight bust width at the front"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/bella",
|
"name": "@freesewing/bella",
|
||||||
"version": "3.3.0-rc.1",
|
"version": "4.0.0",
|
||||||
"description": "A FreeSewing pattern for a womenswear bodice block",
|
"description": "A FreeSewing pattern for a womenswear bodice block",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
|
@ -25,48 +25,39 @@
|
||||||
"sewing pattern"
|
"sewing pattern"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.mjs",
|
|
||||||
"build:all": "yarn build",
|
|
||||||
"clean": "rimraf dist",
|
|
||||||
"mbuild": "NO_MINIFY=1 node build.mjs",
|
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"test": "npx mocha tests/*.test.mjs",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"vbuild": "VERBOSE=1 node build.mjs",
|
|
||||||
"lab": "cd ../../sites/lab && yarn start",
|
|
||||||
"tips": "node ../../scripts/help.mjs",
|
"tips": "node ../../scripts/help.mjs",
|
||||||
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||||
"wbuild": "node build.mjs",
|
|
||||||
"wbuild:all": "yarn wbuild"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@freesewing/core": "3.3.0-rc.1"
|
"@freesewing/core": "4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "10.4.0",
|
"mocha": "10.4.0",
|
||||||
"chai": "5.1.1",
|
"chai": "5.1.1",
|
||||||
"@freesewing/models": "3.3.0-rc.1",
|
"@freesewing/models": "4.0.0",
|
||||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
"@freesewing/plugin-timing": "4.0.0"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"src/",
|
||||||
|
"i18n/",
|
||||||
|
"about.json",
|
||||||
"README.md"
|
"README.md"
|
||||||
],
|
],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { pctBasedOn } from '@freesewing/core'
|
||||||
|
|
||||||
export const back = {
|
export const back = {
|
||||||
name: 'bella.back',
|
name: 'bella.back',
|
||||||
measurements: [
|
measurements: [
|
||||||
|
@ -24,11 +26,17 @@ export const back = {
|
||||||
backCenterWaistReduction: 0.35,
|
backCenterWaistReduction: 0.35,
|
||||||
collarFactor: 0.19,
|
collarFactor: 0.19,
|
||||||
// Fit
|
// Fit
|
||||||
bustSpanEase: { pct: 10, min: 0, max: 20, menu: 'fit' },
|
bustSpanEase: { pct: 10, min: 0, max: 20, ...pctBasedOn('bustSpan'), menu: 'fit' },
|
||||||
chestEase: { pct: 11, min: 5, max: 20, menu: 'fit' },
|
chestEase: { pct: 11, min: 5, max: 20, ...pctBasedOn('chest'), menu: 'fit' },
|
||||||
fullChestEaseReduction: { pct: 4, min: 0, max: 8, menu: 'fit' },
|
fullChestEaseReduction: { pct: 4, min: 0, max: 8, menu: 'fit' },
|
||||||
shoulderToShoulderEase: { pct: -0.5, min: -1, max: 5, menu: 'fit' },
|
shoulderToShoulderEase: {
|
||||||
waistEase: { pct: 5, min: 1, max: 20, menu: 'fit' },
|
pct: -0.5,
|
||||||
|
min: -1,
|
||||||
|
max: 5,
|
||||||
|
...pctBasedOn('shoulderToShoulder'),
|
||||||
|
menu: 'fit',
|
||||||
|
},
|
||||||
|
waistEase: { pct: 5, min: 1, max: 20, ...pctBasedOn('waist'), menu: 'fit' },
|
||||||
// Darts
|
// Darts
|
||||||
backDartHeight: { pct: 46, min: 38, max: 54, menu: 'darts' },
|
backDartHeight: { pct: 46, min: 38, max: 54, menu: 'darts' },
|
||||||
bustDartCurve: { pct: 100, min: -100, max: 100, menu: 'darts' },
|
bustDartCurve: { pct: 100, min: -100, max: 100, menu: 'darts' },
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import { Design } from '@freesewing/core'
|
import { Design } from '@freesewing/core'
|
||||||
import { data } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
import { back } from './back.mjs'
|
import { back } from './back.mjs'
|
||||||
import { frontSideDart } from './front-side-dart.mjs'
|
import { frontSideDart } from './front-side-dart.mjs'
|
||||||
import { i18n } from '../i18n/index.mjs'
|
import { i18n } from '../i18n/index.mjs'
|
||||||
|
|
||||||
const Bella = new Design({
|
const Bella = new Design({
|
||||||
data,
|
data: about,
|
||||||
parts: [back, frontSideDart],
|
parts: [back, frontSideDart],
|
||||||
})
|
})
|
||||||
|
|
||||||
export { back, frontSideDart, Bella, i18n }
|
export { back, frontSideDart, Bella, i18n, about }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file is auto-generated | Any changes you make will be overwritten.
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
import { Bella, i18n } from '../src/index.mjs'
|
import { Bella, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -8,7 +8,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig(Bella)
|
testPatternConfig(Bella, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n(Bella, i18n)
|
testPatternI18n(Bella, i18n)
|
||||||
|
|
|
@ -9,24 +9,14 @@
|
||||||
><img src="https://img.shields.io/npm/l/@freesewing/benjamin.svg?label=License"
|
><img src="https://img.shields.io/npm/l/@freesewing/benjamin.svg?label=License"
|
||||||
alt="License: MIT"/>
|
alt="License: MIT"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
|
||||||
title="Code quality on DeepScan"
|
|
||||||
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
|
||||||
alt="Code quality on DeepScan"/>
|
|
||||||
</a><a
|
|
||||||
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Abenjamin"
|
|
||||||
title="Open issues tagged pkg:benjamin"
|
|
||||||
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:benjamin.svg?label=Issues"
|
|
||||||
alt="Open issues tagged pkg:benjamin"/>
|
|
||||||
</a><a
|
|
||||||
href="#contributors-"
|
href="#contributors-"
|
||||||
title="All Contributors"
|
title="All Contributors"
|
||||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||||
alt="All Contributors"/>
|
alt="All Contributors"/>
|
||||||
</a></p><p align='center'><a
|
</a></p><p align='center'><a
|
||||||
href="https://twitter.com/freesewing_org"
|
href="https://forum.freesewing.org"
|
||||||
title="Follow @freesewing_org on Twitter"
|
title="Follow @freesewing_org on Twitter"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
</a><a
|
</a><a
|
||||||
href="https://chat.freesewing.org"
|
href="https://chat.freesewing.org"
|
||||||
|
@ -38,11 +28,6 @@
|
||||||
title="Become a FreeSewing Patron"
|
title="Become a FreeSewing Patron"
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
alt="Become a FreeSewing Patron"/>
|
alt="Become a FreeSewing Patron"/>
|
||||||
</a><a
|
|
||||||
href="https://instagram.com/freesewing_org"
|
|
||||||
title="Follow @freesewing_org on Twitter"
|
|
||||||
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
|
||||||
alt="Follow @freesewing_org on Twitter"/>
|
|
||||||
</a></p>
|
</a></p>
|
||||||
|
|
||||||
# @freesewing/benjamin
|
# @freesewing/benjamin
|
||||||
|
@ -59,7 +44,7 @@ A FreeSewing pattern for a bow tie
|
||||||
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
>
|
>
|
||||||
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
|
||||||
|
|
||||||
## What am I looking at? 🤔
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
@ -76,7 +61,7 @@ npm run tips
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you don't want to set up a dev environment, you can run it in your browser:
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
>
|
>
|
||||||
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
> [](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
|
||||||
>
|
>
|
||||||
> We recommend that you fork our repository and then
|
> We recommend that you fork our repository and then
|
||||||
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
@ -86,7 +71,7 @@ npm run tips
|
||||||
|
|
||||||
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
|
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
|
||||||
sewing patterns adapted to your measurements.
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
@ -98,7 +83,7 @@ functionality of the platform.
|
||||||
If you have NodeJS installed, you can try it right now by running:
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
Getting started guides are available for:
|
Getting started guides are available for:
|
||||||
|
@ -114,49 +99,45 @@ show you how to create your first parametric design.
|
||||||
To get started with FreeSewing, you can spin up our development environment with:
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx @freesewing/new-design
|
npx @freesewing/studio
|
||||||
```
|
```
|
||||||
|
|
||||||
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:freesewing/freesewing.git
|
git clone git@codeberg.org:freesewing/freesewing.git
|
||||||
cd freesewing
|
cd freesewing
|
||||||
yarn kickstart
|
npm run kickstart
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links 👩💻
|
## Links 👩💻
|
||||||
|
|
||||||
**Official channels**
|
**Official channels**
|
||||||
|
|
||||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
- ✅ [Support](https://forum.freesewing.eu/),
|
||||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||||
[GitHub](https://github.com/freesewing/freesewing)
|
|
||||||
|
|
||||||
**Social media**
|
**Social media**
|
||||||
|
|
||||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||||
|
|
||||||
**Places the FreeSewing community hangs out**
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||||
- 💬 [Discord](https://discord.freesewing.org/)
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
|
||||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
## License: MIT 🤓
|
## License: MIT 🤓
|
||||||
|
|
||||||
© [Joost De Cock](https://github.com/joostdecock).
|
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
## Where to get help 🤯
|
## Where to get help 🤯
|
||||||
|
|
||||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
|
||||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
|
||||||
[GitHub](https://github.com/freesewing/freesewing).
|
|
||||||
|
|
||||||
|
|
17
designs/benjamin/about.json
Normal file
17
designs/benjamin/about.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"id": "benjamin",
|
||||||
|
"name": "Benjamin bow tie",
|
||||||
|
"code": "Wouter Van Wageningen",
|
||||||
|
"description": "A FreeSewing pattern for a bow tie",
|
||||||
|
"design": "Wouter Van Wageningen",
|
||||||
|
"difficulty": 3,
|
||||||
|
"tags": [
|
||||||
|
"accessories"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"precision",
|
||||||
|
"interfacing"
|
||||||
|
],
|
||||||
|
"version": "4.0.0",
|
||||||
|
"pkg": "@freesewing/benjamin"
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
/* This script will build the package with esbuild */
|
|
||||||
import esbuild from 'esbuild'
|
|
||||||
import pkg from './package.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Create banner based on package info
|
|
||||||
const banner = `/**
|
|
||||||
* ${pkg.name} | v${pkg.version}
|
|
||||||
* ${pkg.description}
|
|
||||||
* (c) ${new Date().getFullYear()} ${pkg.author}
|
|
||||||
* @license ${pkg.license}
|
|
||||||
*/`
|
|
||||||
|
|
||||||
// Shared esbuild options
|
|
||||||
const options = {
|
|
||||||
banner: { js: banner },
|
|
||||||
bundle: true,
|
|
||||||
entryPoints: ['src/index.mjs'],
|
|
||||||
format: 'esm',
|
|
||||||
outfile: 'dist/index.mjs',
|
|
||||||
external: ['@freesewing'],
|
|
||||||
metafile: process.env.VERBOSE ? true : false,
|
|
||||||
minify: process.env.NO_MINIFY ? false : true,
|
|
||||||
sourcemap: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let esbuild generate the build
|
|
||||||
const build = async () => {
|
|
||||||
const result = await esbuild.build(options).catch(() => process.exit(1))
|
|
||||||
|
|
||||||
if (process.env.VERBOSE) {
|
|
||||||
const info = await esbuild.analyzeMetafile(result.metafile)
|
|
||||||
console.log(info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
build()
|
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '@freesewing/benjamin'
|
|
||||||
export const version = '3.3.0-rc.1'
|
|
||||||
export const data = { name, version }
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Benjamin, die Fliege",
|
|
||||||
"d": "Benjamin ist eine Schleife - oder Fliege - mit vier unterschiedlichen Formvariationen.",
|
|
||||||
"p": {
|
|
||||||
"base": "Base",
|
|
||||||
"bow1": "Fliege",
|
|
||||||
"bow2": "Fliege",
|
|
||||||
"bow3": "Fliege",
|
|
||||||
"ribbon": "Einstellband"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"adjustmentRibbon": {
|
|
||||||
"t": "Einstellband",
|
|
||||||
"d": "Einstellband verwenden oder nicht"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Bandlänge",
|
|
||||||
"d": "Lände des Bandes"
|
|
||||||
},
|
|
||||||
"tipWidth": {
|
|
||||||
"t": "Spitzenbreite",
|
|
||||||
"d": "Breite der Spitzen"
|
|
||||||
},
|
|
||||||
"knotWidth": {
|
|
||||||
"t": "Knotenbreite",
|
|
||||||
"d": "Breite des Knotens"
|
|
||||||
},
|
|
||||||
"bowLength": {
|
|
||||||
"t": "Fliegenlänge",
|
|
||||||
"d": "Länge der Fliege (wenn geknotet)"
|
|
||||||
},
|
|
||||||
"bowStyle": {
|
|
||||||
"t": "Fliegen-Stil",
|
|
||||||
"d": "Stil der Fliege"
|
|
||||||
},
|
|
||||||
"endStyle": {
|
|
||||||
"t": "Enden-Stil",
|
|
||||||
"d": "Stil für die Enden der Fliege"
|
|
||||||
},
|
|
||||||
"collarEase": {
|
|
||||||
"t": "Kragen Zugabe",
|
|
||||||
"d": "Die Menge an Zugabe an deinem Hals"
|
|
||||||
},
|
|
||||||
"ribbonWidth": {
|
|
||||||
"t": "Bänderbreite",
|
|
||||||
"d": "Breite des Bandes"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Benjamin, pajarita",
|
|
||||||
"d": "Benjamin es un patrón de pajarita con cuatro formas a elegir.",
|
|
||||||
"p": {
|
|
||||||
"base": "Base",
|
|
||||||
"bow1": "Pajarita",
|
|
||||||
"bow2": "Pajarita",
|
|
||||||
"bow3": "Pajarita",
|
|
||||||
"ribbon": "Banda"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"adjustmentRibbon": {
|
|
||||||
"t": "Cinta de ajuste",
|
|
||||||
"d": "Incluir o no una cinta de ajuste"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Longitud de la banda",
|
|
||||||
"d": "Longitud de la banda"
|
|
||||||
},
|
|
||||||
"tipWidth": {
|
|
||||||
"t": "Ancho de la punta",
|
|
||||||
"d": "Ancho de las puntas"
|
|
||||||
},
|
|
||||||
"knotWidth": {
|
|
||||||
"t": "Ancho de nudo",
|
|
||||||
"d": "Ancho del nudo"
|
|
||||||
},
|
|
||||||
"bowLength": {
|
|
||||||
"t": "Longitud del lazo",
|
|
||||||
"d": "Longitud del lazo (cuando está anudado)"
|
|
||||||
},
|
|
||||||
"bowStyle": {
|
|
||||||
"t": "Estilo del lazo",
|
|
||||||
"d": "Estilo del lazo"
|
|
||||||
},
|
|
||||||
"endStyle": {
|
|
||||||
"t": "Estilo de las puntas",
|
|
||||||
"d": "Estilo de las puntas del lazo"
|
|
||||||
},
|
|
||||||
"collarEase": {
|
|
||||||
"t": "Facilidad de cuello",
|
|
||||||
"d": "The amount of ease at your neck"
|
|
||||||
},
|
|
||||||
"ribbonWidth": {
|
|
||||||
"t": "Ribbon width",
|
|
||||||
"d": "Width of the ribbon"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Nœud papillon Benjamin",
|
|
||||||
"d": "Benjamin est un nœud papillon avec 4 possibilités de styles différents.",
|
|
||||||
"p": {
|
|
||||||
"base": "Base",
|
|
||||||
"bow1": "Nœud",
|
|
||||||
"bow2": "Nœud",
|
|
||||||
"bow3": "Nœud",
|
|
||||||
"ribbon": "Bande"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"adjustmentRibbon": {
|
|
||||||
"t": "Ruban d'ajustement",
|
|
||||||
"d": "Si vous souhaitez inclure ou non un ruban d'ajustement"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Longueur de bande",
|
|
||||||
"d": "Longueur de la bande"
|
|
||||||
},
|
|
||||||
"tipWidth": {
|
|
||||||
"t": "Largeur de pointe",
|
|
||||||
"d": "Largeur des pointes"
|
|
||||||
},
|
|
||||||
"knotWidth": {
|
|
||||||
"t": "Largeur du noeud",
|
|
||||||
"d": "Largeur du nœud"
|
|
||||||
},
|
|
||||||
"bowLength": {
|
|
||||||
"t": "Longueur de nœud",
|
|
||||||
"d": "Longueur du nœud (lorsqu'il est noué)"
|
|
||||||
},
|
|
||||||
"bowStyle": {
|
|
||||||
"t": "Style de nœud",
|
|
||||||
"d": "Style du nœud"
|
|
||||||
},
|
|
||||||
"endStyle": {
|
|
||||||
"t": "Style de l'extrémité",
|
|
||||||
"d": "Style des extrémités du noeud"
|
|
||||||
},
|
|
||||||
"collarEase": {
|
|
||||||
"t": "Aisance du col",
|
|
||||||
"d": "La quantité d'aisance à votre cou"
|
|
||||||
},
|
|
||||||
"ribbonWidth": {
|
|
||||||
"t": "Largeur du ruban d'ajustement",
|
|
||||||
"d": "Largeur du ruban"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +1,3 @@
|
||||||
import en from './en.json' with { type: 'json' }
|
import en from './en.json' with { type: 'json' }
|
||||||
import de from './de.json' with { type: 'json' }
|
|
||||||
import es from './es.json' with { type: 'json' }
|
|
||||||
import fr from './fr.json' with { type: 'json' }
|
|
||||||
import nl from './nl.json' with { type: 'json' }
|
|
||||||
import uk from './uk.json' with { type: 'json' }
|
|
||||||
|
|
||||||
export const i18n = { en, de, es, fr, nl, uk }
|
export const i18n = { en }
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Benjamin vlinderdas",
|
|
||||||
"d": "Benjamin is een vlinderdas met vier verschillende mogelijke vormen.",
|
|
||||||
"p": {
|
|
||||||
"base": "Base",
|
|
||||||
"bow1": "Vlinderdas",
|
|
||||||
"bow2": "Vlinderdas",
|
|
||||||
"bow3": "Vlinderdas",
|
|
||||||
"ribbon": "Band"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"adjustmentRibbon": {
|
|
||||||
"t": "Aanpaslintje",
|
|
||||||
"d": "Of je wel of geen aanpaslintje wil"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Lengte band",
|
|
||||||
"d": "Lengte van de band"
|
|
||||||
},
|
|
||||||
"tipWidth": {
|
|
||||||
"t": "Tip breedte",
|
|
||||||
"d": "Breedte van de punten"
|
|
||||||
},
|
|
||||||
"knotWidth": {
|
|
||||||
"t": "Knoop breedte",
|
|
||||||
"d": "Breedte van de knoop"
|
|
||||||
},
|
|
||||||
"bowLength": {
|
|
||||||
"t": "Lengte strik",
|
|
||||||
"d": "De lengte van gestrikt (gestrikt)"
|
|
||||||
},
|
|
||||||
"bowStyle": {
|
|
||||||
"t": "Stijl strik",
|
|
||||||
"d": "Stijl van de strik"
|
|
||||||
},
|
|
||||||
"endStyle": {
|
|
||||||
"t": "Puntvorm",
|
|
||||||
"d": "Stijl van de puntjes van de strik"
|
|
||||||
},
|
|
||||||
"collarEase": {
|
|
||||||
"t": "Overwijdte kraag",
|
|
||||||
"d": "The amount of ease at your neck"
|
|
||||||
},
|
|
||||||
"ribbonWidth": {
|
|
||||||
"t": "Ribbon width",
|
|
||||||
"d": "Width of the ribbon"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"t": "Benjamin bow tie",
|
|
||||||
"d": "Benjamin is a bow tie pattern with four different shape options.",
|
|
||||||
"p": {
|
|
||||||
"base": "Base",
|
|
||||||
"bow1": "Bow",
|
|
||||||
"bow2": "Bow",
|
|
||||||
"bow3": "Bow",
|
|
||||||
"ribbon": "Ribbon"
|
|
||||||
},
|
|
||||||
"s": {},
|
|
||||||
"o": {
|
|
||||||
"adjustmentRibbon": {
|
|
||||||
"t": "Adjustment ribbon",
|
|
||||||
"d": "Whether or not to include an adjustment ribbon"
|
|
||||||
},
|
|
||||||
"bandLength": {
|
|
||||||
"t": "Band length",
|
|
||||||
"d": "Length of the band"
|
|
||||||
},
|
|
||||||
"tipWidth": {
|
|
||||||
"t": "Tip width",
|
|
||||||
"d": "Width of the tips"
|
|
||||||
},
|
|
||||||
"knotWidth": {
|
|
||||||
"t": "Knot width",
|
|
||||||
"d": "Width of the knot"
|
|
||||||
},
|
|
||||||
"bowLength": {
|
|
||||||
"t": "Bow length",
|
|
||||||
"d": "Length of the bow (when knotted)"
|
|
||||||
},
|
|
||||||
"bowStyle": {
|
|
||||||
"t": "Bow style",
|
|
||||||
"d": "Style of the bow"
|
|
||||||
},
|
|
||||||
"endStyle": {
|
|
||||||
"t": "End style",
|
|
||||||
"d": "Style of the bow ends"
|
|
||||||
},
|
|
||||||
"collarEase": {
|
|
||||||
"t": "Collar ease",
|
|
||||||
"d": "The amount of ease at your neck"
|
|
||||||
},
|
|
||||||
"ribbonWidth": {
|
|
||||||
"t": "Ribbon width",
|
|
||||||
"d": "Width of the ribbon"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/benjamin",
|
"name": "@freesewing/benjamin",
|
||||||
"version": "3.3.0-rc.1",
|
"version": "4.0.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/",
|
||||||
|
@ -25,48 +25,39 @@
|
||||||
"sewing pattern"
|
"sewing pattern"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.mjs",
|
"module": "src/index.mjs",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": "./src/index.mjs"
|
||||||
"internal": "./src/index.mjs",
|
|
||||||
"default": "./dist/index.mjs"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.mjs",
|
|
||||||
"build:all": "yarn build",
|
|
||||||
"clean": "rimraf dist",
|
|
||||||
"mbuild": "NO_MINIFY=1 node build.mjs",
|
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"test": "npx mocha tests/*.test.mjs",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"vbuild": "VERBOSE=1 node build.mjs",
|
|
||||||
"lab": "cd ../../sites/lab && yarn start",
|
|
||||||
"tips": "node ../../scripts/help.mjs",
|
"tips": "node ../../scripts/help.mjs",
|
||||||
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||||
"wbuild": "node build.mjs",
|
|
||||||
"wbuild:all": "yarn wbuild"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@freesewing/core": "3.3.0-rc.1"
|
"@freesewing/core": "4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "10.4.0",
|
"mocha": "10.4.0",
|
||||||
"chai": "5.1.1",
|
"chai": "5.1.1",
|
||||||
"@freesewing/models": "3.3.0-rc.1",
|
"@freesewing/models": "4.0.0",
|
||||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
"@freesewing/plugin-timing": "4.0.0"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"src/",
|
||||||
|
"i18n/",
|
||||||
|
"about.json",
|
||||||
"README.md"
|
"README.md"
|
||||||
],
|
],
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"tag": "next"
|
"tag": "latest"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { pctBasedOn } from '@freesewing/core'
|
||||||
|
|
||||||
function draftBenjaminBase({
|
function draftBenjaminBase({
|
||||||
store,
|
store,
|
||||||
sa,
|
sa,
|
||||||
|
@ -236,7 +238,7 @@ export const base = {
|
||||||
bandLength: 0.17,
|
bandLength: 0.17,
|
||||||
adjustmentRibbonWidth: 20,
|
adjustmentRibbonWidth: 20,
|
||||||
// Fit options
|
// Fit options
|
||||||
collarEase: { pct: 3, min: 0, max: 6, menu: 'fit' },
|
collarEase: { pct: 3, min: 0, max: 6, ...pctBasedOn('neck'), menu: 'fit' },
|
||||||
adjustmentRibbon: { bool: false, menu: 'fit' },
|
adjustmentRibbon: { bool: false, menu: 'fit' },
|
||||||
// Style options
|
// Style options
|
||||||
tipWidth: { pct: 15, min: 0, max: 20, menu: 'style' },
|
tipWidth: { pct: 15, min: 0, max: 20, menu: 'style' },
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Design } from '@freesewing/core'
|
import { Design } from '@freesewing/core'
|
||||||
import { data } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
import { bow1 } from './bow1.mjs'
|
import { bow1 } from './bow1.mjs'
|
||||||
import { bow2 } from './bow2.mjs'
|
import { bow2 } from './bow2.mjs'
|
||||||
import { bow3 } from './bow3.mjs'
|
import { bow3 } from './bow3.mjs'
|
||||||
|
@ -8,9 +8,9 @@ import { i18n } from '../i18n/index.mjs'
|
||||||
|
|
||||||
// Setup our new design
|
// Setup our new design
|
||||||
const Benjamin = new Design({
|
const Benjamin = new Design({
|
||||||
data,
|
data: about,
|
||||||
parts: [bow1, bow2, bow3, collarBand],
|
parts: [bow1, bow2, bow3, collarBand],
|
||||||
})
|
})
|
||||||
|
|
||||||
// Named exports
|
// Named exports
|
||||||
export { bow1, bow2, bow3, collarBand, Benjamin, i18n }
|
export { bow1, bow2, bow3, collarBand, Benjamin, i18n, about }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file is auto-generated | Any changes you make will be overwritten.
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
import { Benjamin, i18n } from '../src/index.mjs'
|
import { Benjamin, about, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
// Shared tests
|
// Shared tests
|
||||||
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
@ -8,7 +8,7 @@ import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
// Test config
|
// Test config
|
||||||
testPatternConfig(Benjamin)
|
testPatternConfig(Benjamin, about)
|
||||||
|
|
||||||
// Test translation
|
// Test translation
|
||||||
testPatternI18n(Benjamin, i18n)
|
testPatternI18n(Benjamin, i18n)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue