[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}`,
|
||||
`**/scripts/**/*.${jsSuffixes}`,
|
||||
`packages/new-design/lib/**/*.${jsSuffixes}`,
|
||||
`packages/studio/lib/*.${jsSuffixes}`,
|
||||
`sites/backend/**/*.${jsSuffixes}`,
|
||||
`sites/*/mdx/**/*.${jsSuffixes}`,
|
||||
`sites/*/themes/**/*.${jsSuffixes}`,
|
||||
|
@ -60,16 +60,6 @@ module.exports = {
|
|||
'no-console': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: frontendFiles,
|
||||
excludedFiles: nodeFiles,
|
||||
extends: ['next'],
|
||||
settings: {
|
||||
next: {
|
||||
rootDir: 'sites/dev/',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [`**/*.${jsSuffixes}{,.mustache}`],
|
||||
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.
|
||||
dump
|
||||
production.sqlite
|
||||
.husky
|
||||
|
||||
# .env
|
||||
.env
|
||||
*.key
|
||||
*.env
|
||||
|
||||
# Plugins
|
||||
plugins/plugin-theme/src/bundle.css.js
|
||||
|
@ -14,16 +16,17 @@ plugins/plugin-theme/css
|
|||
packages/core/coverage
|
||||
packages/*/report
|
||||
|
||||
# Any NPM or Yarn lock files
|
||||
# Any Yarn lock files
|
||||
designs/*/package-lock.json
|
||||
designs/*/yarn.lock
|
||||
packages/*/package-lock.json
|
||||
packages/*/yarn.lock
|
||||
plugins/*/package-lock.json
|
||||
plugins/*/yarn.lock
|
||||
yarn.lock
|
||||
|
||||
# NPM lock files for sites (we use yarn)
|
||||
sites/*/package-lock.json
|
||||
# Yarn lock files for sites (we use npm)
|
||||
sites/*/yarn.lock
|
||||
|
||||
# Nx cache
|
||||
.nx/cache
|
||||
|
@ -42,26 +45,16 @@ packages/new-design/shared/.gitignore
|
|||
packages/new-design/lib/banner.mjs
|
||||
sites/*/public/img/og/*
|
||||
|
||||
# Orgdocs prebuild artifacts
|
||||
sites/orgdocs/src/lib/designs.mjs
|
||||
sites/orgdocs/src/lib/designinfo.mjs
|
||||
sites/orgdocs/src/lib/i18n.mjs
|
||||
sites/orgdocs/docs/designs/*/options/readme.mdx
|
||||
sites/orgdocs/authors.json
|
||||
sites/orgdocs/showcase-tags.mjs
|
||||
|
||||
# Lab auto-generated content
|
||||
sites/lab/lib
|
||||
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
|
||||
# Org prebuild artifacts
|
||||
sites/org/src/lib/designs.mjs
|
||||
sites/org/src/lib/designinfo.mjs
|
||||
sites/org/src/lib/i18n.mjs
|
||||
sites/org/docs/designs/*/options/readme.mdx
|
||||
sites/org/authors.json
|
||||
sites/org/showcase-tags.mjs
|
||||
sites/org/design-examples.mjs
|
||||
sites/org/docs/designs/*.mdx
|
||||
sites/org/recent-blog-posts.mjs
|
||||
|
||||
# sde auto-generated content
|
||||
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/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_modules
|
||||
|
||||
# Build folders
|
||||
dist
|
||||
build
|
||||
export
|
||||
|
||||
# But don't ignore point/dist reference
|
||||
!/sites/dev/docs/reference/api/point/dist/
|
||||
|
||||
# Prebuild files
|
||||
prebuild/*.json
|
||||
|
@ -147,3 +130,6 @@ scripts/verdaccio.sh
|
|||
|
||||
# e2e test results
|
||||
sites/*/playwright-report
|
||||
|
||||
# Local Netlify folder
|
||||
.netlify
|
||||
|
|
|
@ -1 +1 @@
|
|||
yarn lint-staged
|
||||
npx lint-staged
|
||||
|
|
|
@ -27,4 +27,5 @@ yarn.lock
|
|||
.all-contributorsrc
|
||||
.nvmrc
|
||||
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
|
||||
|
||||
|
||||
## 4.0.0 (2024-04-01)
|
||||
|
||||
### bibi
|
||||
|
||||
#### Changed
|
||||
|
@ -133,8 +136,25 @@
|
|||
|
||||
- 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
|
||||
|
||||
#### 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
|
||||
|
||||
- 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
|
||||
|
||||
### 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)
|
||||
|
||||
|
@ -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.
|
||||
|
||||
### 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)
|
||||
|
||||
|
@ -424,12 +462,6 @@
|
|||
- Make Path.split() more robust when handling edge-case. 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)
|
||||
|
||||
|
@ -675,16 +707,6 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -1092,8 +1114,24 @@
|
|||
- 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.
|
||||
|
||||
### i18n
|
||||
|
||||
#### Changed
|
||||
|
||||
- Migrated from Rollup to Esbuild for all builds
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Added missing lab namespace for English
|
||||
|
||||
### models
|
||||
|
||||
#### Changed
|
||||
|
||||
- Migrated from Rollup to Esbuild for all builds
|
||||
|
||||
### utils
|
||||
|
||||
#### Changed
|
||||
|
||||
- Migrated from Rollup to Esbuild for all builds
|
||||
|
@ -1202,12 +1240,6 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -1231,6 +1263,12 @@
|
|||
|
||||
## 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)
|
||||
|
||||
|
@ -1559,6 +1597,12 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -1991,6 +2035,13 @@
|
|||
|
||||
- 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
|
||||
|
||||
#### 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)
|
||||
|
||||
### 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)
|
||||
|
||||
|
@ -2049,6 +2110,18 @@
|
|||
|
||||
## 2.17.3 (2021-08-16)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- New translations
|
||||
|
||||
### utils
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Added missing `bustPointToUnderbust` measurement to `neckstimate`
|
||||
|
||||
|
||||
## 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)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Added new ffsa option for simon & simone
|
||||
|
||||
### models
|
||||
|
||||
#### 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)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Changed
|
||||
|
||||
- Changed antman references to antperson
|
||||
|
||||
|
||||
## 2.16.2 (2021-05-05)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Changed
|
||||
|
||||
- String updates
|
||||
|
||||
|
||||
## 2.16.1 (2021-05-30)
|
||||
|
||||
|
@ -2395,6 +2486,19 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -2423,6 +2527,12 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -2554,6 +2664,13 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -2569,6 +2686,12 @@
|
|||
|
||||
- Replaced grainline indicator on pocket with cut-on-fold indicator
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Added translations for Cornelius
|
||||
|
||||
|
||||
## 2.13.2 (2021-02-21)
|
||||
|
||||
|
@ -2617,6 +2740,12 @@
|
|||
|
||||
- Added missing sleeve notch on yoke
|
||||
|
||||
### utils
|
||||
|
||||
#### Added
|
||||
|
||||
- Pass pattern handle to tiler
|
||||
|
||||
|
||||
## 2.13.0 (2021-02-13)
|
||||
|
||||
|
@ -2670,6 +2799,12 @@
|
|||
|
||||
- Make sure roudEnd and roundStart points are always available
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Translation for Hortensia
|
||||
|
||||
|
||||
## 2.12.1 (2021-01-27)
|
||||
|
||||
|
@ -2794,6 +2929,16 @@
|
|||
|
||||
- Removed unused lengthBonus option
|
||||
|
||||
### i18n
|
||||
|
||||
#### Changed
|
||||
|
||||
- New strings for new features
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Type in Simon title
|
||||
|
||||
|
||||
## 2.10.7 (2020-11-18)
|
||||
|
||||
|
@ -2809,6 +2954,12 @@
|
|||
|
||||
## 2.10.5 (2020-11-14)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Added missing `cty.` translations to non-English language files
|
||||
|
||||
|
||||
## 2.10.4 (2020-11-13)
|
||||
|
||||
|
@ -2871,6 +3022,18 @@
|
|||
- Added the `info` type to raised events
|
||||
- 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)
|
||||
|
||||
|
@ -2981,6 +3144,12 @@
|
|||
- Added a new `debug` setting
|
||||
- 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)
|
||||
|
||||
|
@ -3258,6 +3427,13 @@
|
|||
|
||||
- [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
|
||||
|
||||
#### Changed
|
||||
|
@ -3266,6 +3442,21 @@
|
|||
- Ported models to the crotchDepth measurement. See [#425](https://github.com/freesewing/freesewing/issues/425)
|
||||
- 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)
|
||||
|
||||
|
@ -3310,6 +3501,12 @@
|
|||
- 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()`
|
||||
|
||||
### i18n
|
||||
|
||||
#### Changed
|
||||
|
||||
- Changes to support the renaming of @freesewing/fu to @freesewing/florence
|
||||
|
||||
|
||||
## 2.5.0 (2020-04-05)
|
||||
|
||||
|
@ -3319,9 +3516,21 @@
|
|||
|
||||
- Diana is a top with a draped neck
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- title, description, and options for Dianna
|
||||
|
||||
|
||||
## 2.4.6 (2020-03-23)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Fixed an bug in the i18n package
|
||||
|
||||
|
||||
## 2.4.5 (2020-03-19)
|
||||
|
||||
|
@ -3337,6 +3546,12 @@
|
|||
|
||||
- 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)
|
||||
|
||||
|
@ -3373,12 +3588,30 @@
|
|||
|
||||
## 2.4.3 (2020-03-12)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Added more translations
|
||||
|
||||
|
||||
## 2.4.2 (2020-03-08)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Added more strings
|
||||
|
||||
|
||||
## 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)
|
||||
|
||||
|
@ -3542,12 +3775,34 @@
|
|||
- Added the `Path.noop()` method
|
||||
- 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
|
||||
|
||||
#### Changed
|
||||
|
||||
- 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)
|
||||
|
||||
|
@ -3585,6 +3840,12 @@
|
|||
|
||||
## 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)
|
||||
|
||||
|
@ -3594,12 +3855,40 @@
|
|||
|
||||
## 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)
|
||||
|
||||
### i18n
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Fixed issue where symlinks were causing all languages to export English strings
|
||||
|
||||
|
||||
## 2.1.1 (2019-10-13)
|
||||
|
||||
### utils
|
||||
|
||||
#### Fixed
|
||||
|
||||
- Fixed an issue with the formatMm method not adding units
|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
### 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)
|
||||
|
||||
|
@ -3663,6 +3969,12 @@
|
|||
|
||||
- [#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)
|
||||
|
||||
|
@ -3686,6 +3998,18 @@
|
|||
- [#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
|
||||
|
||||
### 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)
|
||||
|
||||
|
@ -3704,6 +4028,12 @@
|
|||
|
||||
- [#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)
|
||||
|
||||
|
@ -3877,6 +4207,12 @@
|
|||
|
||||
### core
|
||||
|
||||
#### Added
|
||||
|
||||
- Initial release
|
||||
|
||||
### i18n
|
||||
|
||||
#### Added
|
||||
|
||||
- Initial release
|
||||
|
@ -3893,4 +4229,10 @@
|
|||
|
||||
- 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"
|
||||
alt="All Contributors"/>
|
||||
</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"
|
||||
title="Chat with us on Discord"
|
||||
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||
|
@ -38,11 +33,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# FreeSewing
|
||||
|
@ -54,7 +44,7 @@
|
|||
> 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
|
||||
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? 🤔
|
||||
|
||||
|
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
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 `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 🪡 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 🪡 Makers website: [FreeSewing.eu](https://freesewing.eu)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [freesewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
Check our [support page](https://freesewing.org/support), or use
|
||||
the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
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'
|
||||
img: 'https://img.shields.io/npm/l/{{{fullname}}}.svg?label=License'
|
||||
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:
|
||||
link: '#contributors-'
|
||||
img: 'https://img.shields.io/badge/all_contributors-{{ name }}-pink.svg'
|
||||
alt: 'All Contributors'
|
||||
_social:
|
||||
twitter:
|
||||
link: 'https://twitter.com/freesewing_org'
|
||||
img: 'https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15'
|
||||
forum:
|
||||
link: 'https://forum.freesewing.org'
|
||||
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'
|
||||
discord:
|
||||
link: 'https://chat.freesewing.org'
|
||||
|
@ -32,7 +24,3 @@ _social:
|
|||
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'
|
||||
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:
|
||||
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:
|
||||
collection:
|
||||
- Added a new `@freesewing/collection` package that bundles all our designs
|
||||
config:
|
||||
- Added a new `@freesewing/config` package for shared configuration
|
||||
core:
|
||||
- The `Path.rotate()` 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:
|
||||
brian:
|
||||
|
|
|
@ -13,6 +13,9 @@ _types:
|
|||
dev:
|
||||
'mocha': *mocha
|
||||
'chai': *chai
|
||||
#
|
||||
# Designs
|
||||
#
|
||||
aaron:
|
||||
peer:
|
||||
'@freesewing/brian': *freesewing
|
||||
|
@ -45,21 +48,6 @@ charlie:
|
|||
peer:
|
||||
'@freesewing/titan': *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:
|
||||
peer:
|
||||
'@freesewing/brian': *freesewing
|
||||
|
@ -89,15 +77,6 @@ lily:
|
|||
peer:
|
||||
'@freesewing/titan': *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:
|
||||
peer:
|
||||
'@freesewing/bella': *freesewing
|
||||
|
@ -105,12 +84,6 @@ paco:
|
|||
peer:
|
||||
'@freesewing/titan': *freesewing
|
||||
'@freesewing/snapseries': *freesewing
|
||||
core-plugins:
|
||||
dev:
|
||||
'@freesewing/plugin-annotations': *freesewing
|
||||
'@freesewing/plugin-mirror': *freesewing
|
||||
'@freesewing/plugin-round': *freesewing
|
||||
'@freesewing/plugin-sprinkle': *freesewing
|
||||
plugintest:
|
||||
peer:
|
||||
'@freesewing/plugin-annotations': *freesewing
|
||||
|
@ -124,24 +97,9 @@ plugintest:
|
|||
'@freesewing/plugin-sprinkle': *freesewing
|
||||
'@freesewing/plugin-svgattr': *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:
|
||||
_:
|
||||
'@freesewing/plugin-ringsector': *freesewing
|
||||
peer:
|
||||
'@freesewing/snapseries': *freesewing
|
||||
shin:
|
||||
|
@ -184,266 +142,139 @@ yuri:
|
|||
'@freesewing/brian': *freesewing
|
||||
'@freesewing/plugin-bust': *freesewing
|
||||
|
||||
# Sites go here
|
||||
|
||||
backend:
|
||||
#
|
||||
# Plugins
|
||||
#
|
||||
core-plugins:
|
||||
_:
|
||||
'@aws-sdk/client-sesv2': '3.592.0'
|
||||
'@prisma/client': &prisma '5.15.0'
|
||||
'bcryptjs': '2.4.3'
|
||||
'cors': '2.8.5'
|
||||
'dotenv': '16.4.5'
|
||||
'express': '4.19.2'
|
||||
'js-yaml': &jsyaml '4.1.0'
|
||||
'lodash.get': *_get
|
||||
'mustache': *mustache
|
||||
'otplib': '12.0.1'
|
||||
'passport': '0.7.0'
|
||||
'passport-http': '0.3.0'
|
||||
'passport-jwt': '4.0.1'
|
||||
'pino': '9.2.0'
|
||||
'qrcode': '1.5.3'
|
||||
'swagger-ui-dist': '5.17.10'
|
||||
'swagger-ui-express': '5.0.0'
|
||||
'@freesewing/plugin-annotations': *freesewing
|
||||
'@freesewing/plugin-measurements': *freesewing
|
||||
'@freesewing/plugin-mirror': *freesewing
|
||||
'@freesewing/plugin-round': *freesewing
|
||||
'@freesewing/plugin-sprinkle': *freesewing
|
||||
'@freesewing/plugin-bin-pack': *freesewing
|
||||
|
||||
#
|
||||
# Packages
|
||||
#
|
||||
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:
|
||||
'chai': *chai
|
||||
'chai-http': '5.1.1'
|
||||
'esbuild': '0.21.3'
|
||||
'eslint': &eslint '8.57.0'
|
||||
'nyc': '17.1.0'
|
||||
'mocha': *mocha
|
||||
'mocha-steps': '1.3.0'
|
||||
'nodemon': '3.1.0'
|
||||
'prisma': *prisma
|
||||
|
||||
dev:
|
||||
'chai': *chai
|
||||
'sinon': &sinon '^18.0.0'
|
||||
collection:
|
||||
_:
|
||||
'@mdx-js/mdx': &mdx '^3.0.0'
|
||||
'@mdx-js/react': *mdx
|
||||
'@mdx-js/runtime': &mdxRuntime '2.0.0-next.9'
|
||||
'@next/bundle-analyzer': &next '14.2.3'
|
||||
'@tailwindcss/typography': &tailwindTypography '0.5.13'
|
||||
'algoliasearch': &algoliasearch '4.23.3'
|
||||
'daisyui': &daisyui '4.11.1'
|
||||
'lodash.get': *_get
|
||||
'lodash.orderby': &_orderby '4.6.0'
|
||||
'lodash.set': *_set
|
||||
'next': *next
|
||||
'react': &react '18.3.1'
|
||||
'react-copy-to-clipboard': &reactCopyToClipboard '5.1.0'
|
||||
'react-dom': *react
|
||||
'react-hotkeys-hook': &reactHotkeysHook '4.5.0'
|
||||
'react-instantsearch-dom': &reactInstantsearchDom '6.40.4'
|
||||
'react-instantsearch-hooks-web': &reactInstantsearchHooksWeb '6.47.3'
|
||||
'react-swipeable': &reactSwipeable '7.0.1'
|
||||
'react-timeago': &reactTimeago '7.2.0'
|
||||
'rehype-autolink-headings': &rehypeAutolinkHeadings '7.1.0'
|
||||
'rehype-highlight': &rehypeHighlight '7.0.0'
|
||||
'rehype-sanitize': &rehypeSanitize '6.0.0'
|
||||
'rehype-slug': &rehypeSlug '6.0.0'
|
||||
'rehype-stringify': &rehypeStringify '10.0.1'
|
||||
'remark': &remark 15.0.1
|
||||
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
|
||||
'remark-copy-linked-files': &remarkCopyLinkedFiles 'git+https://git@github.com/joostdecock/remark-copy-linked-files'
|
||||
'remark-gfm': &remarkGfm '4.0.0'
|
||||
'strip-markdown': &stripMarkdown 6.0.0
|
||||
dev: &nextSiteDevDependencies
|
||||
'autoprefixer': &autoprefixer '10.4.19'
|
||||
'js-yaml': &jsYaml '4.1.0'
|
||||
'postcss': &postcss '8.4.38'
|
||||
'remark-extract-frontmatter': '3.2.0'
|
||||
'remark-mdx-frontmatter': &mdxfrontmatter '5.0.0'
|
||||
'tailwindcss': &tailwindcss '3.4.3'
|
||||
'yaml-loader': '0.8.1'
|
||||
|
||||
lab:
|
||||
# Designs
|
||||
'@freesewing/aaron': *freesewing
|
||||
'@freesewing/albert': *freesewing
|
||||
'@freesewing/bee': *freesewing
|
||||
'@freesewing/bella': *freesewing
|
||||
'@freesewing/benjamin': *freesewing
|
||||
'@freesewing/bent': *freesewing
|
||||
'@freesewing/bibi': *freesewing
|
||||
'@freesewing/bob': *freesewing
|
||||
'@freesewing/bonny': *freesewing
|
||||
'@freesewing/breanna': *freesewing
|
||||
'@freesewing/brian': *freesewing
|
||||
'@freesewing/bruce': *freesewing
|
||||
'@freesewing/carlita': *freesewing
|
||||
'@freesewing/carlton': *freesewing
|
||||
'@freesewing/cathrin': *freesewing
|
||||
'@freesewing/charlie': *freesewing
|
||||
'@freesewing/cornelius': *freesewing
|
||||
'@freesewing/diana': *freesewing
|
||||
'@freesewing/florence': *freesewing
|
||||
'@freesewing/florent': *freesewing
|
||||
'@freesewing/gozer': *freesewing
|
||||
'@freesewing/hi': *freesewing
|
||||
'@freesewing/holmes': *freesewing
|
||||
'@freesewing/hortensia': *freesewing
|
||||
'@freesewing/huey': *freesewing
|
||||
'@freesewing/hugo': *freesewing
|
||||
'@freesewing/jaeger': *freesewing
|
||||
'@freesewing/jane': *freesewing
|
||||
'@freesewing/lily': *freesewing
|
||||
'@freesewing/lucy': *freesewing
|
||||
'@freesewing/lumina': *freesewing
|
||||
'@freesewing/lumira': *freesewing
|
||||
'@freesewing/lunetius': *freesewing
|
||||
'@freesewing/noble': *freesewing
|
||||
'@freesewing/octoplushy': *freesewing
|
||||
'@freesewing/onyx': *freesewing
|
||||
'@freesewing/opal': *freesewing
|
||||
'@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
|
||||
'@mdx-js/react': *mdx
|
||||
'@mdx-js/runtime': *mdxRuntime
|
||||
'@tailwindcss/typography': *tailwindTypography
|
||||
'algoliasearch': *algoliasearch
|
||||
'd3-dispatch': &d3dispatch '3.0.1'
|
||||
'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:
|
||||
chalk: "^5.2.0"
|
||||
execa: "^9.5.2"
|
||||
glob: "^11.0.1"
|
||||
ora: "^8.2.0"
|
||||
prompts: "^2.4.2"
|
||||
react:
|
||||
_:
|
||||
'@bugsnag/js': &bugsnag 7.23.0
|
||||
'@bugsnag/plugin-react': 8.1.1
|
||||
'@mdx-js/mdx': *mdx
|
||||
'@mdx-js/react': *mdx
|
||||
'@mdx-js/runtime': *mdxRuntime
|
||||
"@tailwindcss/nesting": &twnesting "^0.0.0-insiders.565cd3e"
|
||||
'@tailwindcss/typography': *tailwindTypography
|
||||
'algoliasearch': *algoliasearch
|
||||
'react-copy-to-clipboard': *reactCopyToClipboard
|
||||
'daisyui': *daisyui
|
||||
'echarts': &echarts 5.5.0
|
||||
'echarts-for-react': &echartsReact 3.0.2
|
||||
'jotai': &jotai '2.8.3'
|
||||
'jotai-location': &jotai-location '0.5.5'
|
||||
'lodash.get': *_get
|
||||
'lodash.orderby': *_orderby
|
||||
'lodash.set': *_set
|
||||
'luxon': '3.5.0'
|
||||
'next': *next
|
||||
'next-i18next': *nextI18next
|
||||
'ora': *ora
|
||||
'react': *react
|
||||
'react-dom': *react
|
||||
'react-dropzone': &dropzone '14.2.3'
|
||||
'react-hotkeys-hook': *reactHotkeysHook
|
||||
"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:
|
||||
"@codemirror/lang-yaml": "^6.1.2"
|
||||
"@uiw/react-codemirror": "^4.23.8"
|
||||
d3-drag: "3.0.0"
|
||||
d3-selection: "3.0.0"
|
||||
diff: "^7.0.0"
|
||||
echarts: "^5.6.0"
|
||||
echarts-for-react: "^3.0.2"
|
||||
file-saver: "^2.0.5"
|
||||
"highlight.js": "^11.11.1"
|
||||
html-react-parser: "^5.2.2"
|
||||
jotai: "^2.12.1"
|
||||
jotai-location: "^0.5.5"
|
||||
luxon: "^3.5.0"
|
||||
mustache: "^4.2.0"
|
||||
pdfkit: "^0.16.0"
|
||||
react-diff-viewer-continued: "^4.0.5"
|
||||
react-dropzone: "^14.3.5"
|
||||
react-zoom-pan-pinch: "^3.7.0"
|
||||
svg-to-pdfkit: "^0.1.8"
|
||||
use-local-storage-state: "^19.5.0"
|
||||
web-worker: "^1.5.0"
|
||||
yaml: "^2.7.0"
|
||||
peer:
|
||||
react: &react "^19.0.0"
|
||||
utils:
|
||||
_:
|
||||
'@next/mdx': *next
|
||||
'@resvg/resvg-js': '2.6.2'
|
||||
'@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
|
||||
|
||||
lodash: "^4.17.21"
|
||||
tlds: "^1.255.0"
|
||||
|
|
|
@ -1,19 +1,11 @@
|
|||
noNamespace:
|
||||
- rehype-jargon
|
||||
- rehype-highlight-lines
|
||||
customBuild:
|
||||
- i18n
|
||||
- new-design
|
||||
- prettier-config
|
||||
- core-plugins
|
||||
- react-components
|
||||
- rehype-jargon
|
||||
- rehype-highlight-lines
|
||||
skipTests:
|
||||
- theo
|
||||
packageJson:
|
||||
backend:
|
||||
name: backend.freesewing.org
|
||||
name: backend.freesewing.eu
|
||||
bee:
|
||||
author: bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)
|
||||
benjamin:
|
||||
|
@ -30,8 +22,6 @@ packageJson:
|
|||
author: woutervdub (https://github.com/woutervdub)
|
||||
holmes:
|
||||
author: AlfaLyr (https://github.com/alfalyr)
|
||||
i18n:
|
||||
private: true
|
||||
jane:
|
||||
author: SeaZeeZee (https://github.com/SeaZeeZee)
|
||||
lab:
|
||||
|
@ -44,19 +34,16 @@ packageJson:
|
|||
author: Starfetch (https://github.com/starfetch)
|
||||
magde:
|
||||
author: clegganator259 (https://github.com/clegganator259)
|
||||
new-design:
|
||||
studio:
|
||||
exports: '!'
|
||||
bin:
|
||||
new-design: './index.mjs'
|
||||
studio: './index.mjs'
|
||||
files:
|
||||
- README.md
|
||||
- package.json
|
||||
- lib/**/*
|
||||
- shared/**/*
|
||||
- templates/**/*
|
||||
- index.mjs
|
||||
- package.json
|
||||
- data.mjs
|
||||
- "lib/"
|
||||
- "utils/"
|
||||
- "index.mjs"
|
||||
- "template/"
|
||||
- "template/designs/.base/"
|
||||
module: '!'
|
||||
noble:
|
||||
author: woutervdub (https://github.com/woutervdub)
|
||||
|
@ -67,26 +54,99 @@ packageJson:
|
|||
prettier-config:
|
||||
type: 'module'
|
||||
exports: { .: './index.json' }
|
||||
scripts: { build: 'echo "prettier-config: No build required" && exit 0' }
|
||||
keywords:
|
||||
- prettier
|
||||
files:
|
||||
- index.json
|
||||
- package.json
|
||||
react-components:
|
||||
react:
|
||||
exports:
|
||||
".":
|
||||
"internal": "./src/index.mjs"
|
||||
"default": "./dist/index.mjs"
|
||||
# Legacy
|
||||
"./linedrawings": "./src/linedrawings/index.mjs"
|
||||
"./pattern": "./src/pattern/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:
|
||||
private: true
|
||||
sandy:
|
||||
author: AlfaLyr (https://github.com/alfalyr)
|
||||
shelly:
|
||||
author: Thrunic (https://github.com/Thrunic)
|
||||
utils:
|
||||
exports: '!'
|
||||
module: "./src/index.mjs"
|
||||
onyx:
|
||||
author: Thrunic (https://github.com/Thrunic)
|
||||
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 -'
|
||||
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'
|
||||
lint: "npx eslint 'src/**' 'tests/*.mjs'"
|
||||
_types:
|
||||
|
@ -27,89 +21,38 @@ core:
|
|||
jsdoc: 'jsdoc -c jsdoc.json -r src'
|
||||
models:
|
||||
test: 'npx mocha tests/*.test.mjs'
|
||||
new-design:
|
||||
i18n-only: 'SITE="new-design/shared" node --conditions=internal ../../sites/shared/prebuild/i18n-only.mjs'
|
||||
wbuild: '!'
|
||||
studio:
|
||||
lint: "npx eslint 'lib/*.mjs'"
|
||||
mbuild: '!'
|
||||
prebuild: 'node --conditions=internal ./prebuild.mjs'
|
||||
test: '!'
|
||||
testci: '!'
|
||||
vbuild: '!'
|
||||
rehype-highlight-lines:
|
||||
build: '!'
|
||||
mbuild: '!'
|
||||
vbuild: '!'
|
||||
'build:all': '!'
|
||||
lint: "npx eslint 'src/*.mjs'"
|
||||
rehype-jargon:
|
||||
lint: "npx eslint 'src/*.mjs'"
|
||||
snapseries:
|
||||
lint: "npx eslint 'src/*.mjs'"
|
||||
react-components:
|
||||
react:
|
||||
lint: "eslint 'src/**/*.mjs'"
|
||||
|
||||
# Sites go here
|
||||
backend:
|
||||
build: 'node build.mjs'
|
||||
clean: 'rimraf dist'
|
||||
dev: 'nodemon src/index.mjs'
|
||||
initdb: 'npx prisma db push'
|
||||
mbuild: *mbuild
|
||||
newdb: 'node ./scripts/newdb.mjs'
|
||||
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
||||
rmdb: 'node ./scripts/rmdb.mjs'
|
||||
test: 'npx mocha --require mocha-steps tests/index.mjs'
|
||||
vbuild: *vbuild
|
||||
|
||||
dev:
|
||||
build: &nextBuild 'next build'
|
||||
cibuild: 'yarn build && node scripts/algolia.mjs'
|
||||
clean: &nextClean 'rimraf prebuild/* && rimraf public/locales/*/* && rimraf public/feeds/* && rimraf ../shared/prebuild/data/*'
|
||||
dev: &nextDev 'next dev -p 8000'
|
||||
develop: *nextDev
|
||||
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'
|
||||
dev: &docusaurus
|
||||
build: 'docusaurus build'
|
||||
dev: 'docusaurus start'
|
||||
lint: 'docusuaurus lint'
|
||||
prebuild: 'node --conditions=internal --experimental-json-modules ./prebuild.mjs'
|
||||
start: 'docusaurus start'
|
||||
|
||||
email:
|
||||
build: 'maizzle build production'
|
||||
dev: 'maizzle serve'
|
||||
|
||||
lab:
|
||||
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'
|
||||
org: *docusaurus
|
||||
|
||||
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",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"underwear"
|
||||
|
@ -13,8 +11,8 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"stretch",
|
||||
"knitBinding",
|
||||
"curvedSeam"
|
||||
"knit-binding",
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"albert": {
|
||||
|
@ -22,15 +20,13 @@
|
|||
"description": "A FreeSewing pattern for an apron",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories"
|
||||
],
|
||||
"techniques": [
|
||||
"hem",
|
||||
"knitBinding",
|
||||
"curvedSeam",
|
||||
"knit-binding",
|
||||
"curved-seam",
|
||||
"pocket"
|
||||
]
|
||||
},
|
||||
|
@ -39,8 +35,6 @@
|
|||
"description": "A FreeSewing pattern for a bikini top",
|
||||
"design": "PrudenceRabbit",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"swimwear"
|
||||
|
@ -48,7 +42,7 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"stretch",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision"
|
||||
]
|
||||
},
|
||||
|
@ -60,8 +54,6 @@
|
|||
"Joost De Cock"
|
||||
],
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
|
@ -76,8 +68,6 @@
|
|||
"description": "A FreeSewing pattern for a bow tie",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories"
|
||||
],
|
||||
|
@ -91,16 +81,14 @@
|
|||
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"hem",
|
||||
"curvedSeam",
|
||||
"setSleeve"
|
||||
"curved-seam",
|
||||
"set-sleeve"
|
||||
]
|
||||
},
|
||||
"bibi": {
|
||||
|
@ -108,16 +96,14 @@
|
|||
"description": "A FreeSewing pattern for a knit top body block",
|
||||
"design": "Jonathan Haas",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"hem",
|
||||
"flatSleeve"
|
||||
"flat-sleeve"
|
||||
]
|
||||
},
|
||||
"bob": {
|
||||
|
@ -125,25 +111,29 @@
|
|||
"description": "A FreeSewing pattern for a bib",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"infants"
|
||||
],
|
||||
"techniques": [
|
||||
"biasTape",
|
||||
"curvedSeam",
|
||||
"bias-tape",
|
||||
"curved-seam",
|
||||
"snap"
|
||||
]
|
||||
},
|
||||
"bonny": {
|
||||
"code": "Jonathan Haas",
|
||||
"description": "A FreeSewing pattern that turns measurements into a body outline",
|
||||
"design": "Jonathan Haas",
|
||||
"difficulty": 1,
|
||||
"tags": [],
|
||||
"techniques": []
|
||||
},
|
||||
"breanna": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern for a basic body block for womenswear",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
|
@ -158,15 +148,13 @@
|
|||
"description": "A FreeSewing pattern for a basic body block for menswear",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"block",
|
||||
"flatSleeve"
|
||||
"flat-sleeve"
|
||||
]
|
||||
},
|
||||
"bruce": {
|
||||
|
@ -174,8 +162,6 @@
|
|||
"description": "A FreeSewing pattern for boxer briefs",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"underwear"
|
||||
|
@ -183,7 +169,7 @@
|
|||
"techniques": [
|
||||
"stretch",
|
||||
"hem",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"elastic"
|
||||
]
|
||||
},
|
||||
|
@ -195,8 +181,6 @@
|
|||
"Joost De Cock"
|
||||
],
|
||||
"difficulty": 5,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"coats"
|
||||
|
@ -204,12 +188,12 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"pocket",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"setSleeve",
|
||||
"weltPocket",
|
||||
"set-sleeve",
|
||||
"welt-pocket",
|
||||
"lining",
|
||||
"princessSeam",
|
||||
"princess-seam",
|
||||
"interfacing",
|
||||
"button"
|
||||
]
|
||||
|
@ -222,8 +206,6 @@
|
|||
"Joost De Cock"
|
||||
],
|
||||
"difficulty": 5,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"coats"
|
||||
|
@ -231,10 +213,10 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"pocket",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"setSleeve",
|
||||
"weltPocket",
|
||||
"set-sleeve",
|
||||
"welt-pocket",
|
||||
"lining",
|
||||
"interfacing",
|
||||
"button"
|
||||
|
@ -248,8 +230,6 @@
|
|||
"Joost De Cock"
|
||||
],
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"underwear"
|
||||
|
@ -257,7 +237,7 @@
|
|||
"techniques": [
|
||||
"boning",
|
||||
"precision",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"interfacing"
|
||||
]
|
||||
},
|
||||
|
@ -266,22 +246,20 @@
|
|||
"description": "A FreeSewing pattern for chino trousers",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"weltPocket",
|
||||
"curvedSeam",
|
||||
"welt-pocket",
|
||||
"curved-seam",
|
||||
"interfacing",
|
||||
"fly",
|
||||
"zipper",
|
||||
"button",
|
||||
"dart",
|
||||
"hem",
|
||||
"seamPocket"
|
||||
"seam-pocket"
|
||||
]
|
||||
},
|
||||
"cornelius": {
|
||||
|
@ -289,14 +267,12 @@
|
|||
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"fly",
|
||||
"zipper",
|
||||
"button",
|
||||
|
@ -308,35 +284,29 @@
|
|||
"description": "A FreeSewing pattern for a top with a draped neck",
|
||||
"design": "Erica Alcusa Sáez",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"flatSleeve",
|
||||
"curved-seam",
|
||||
"flat-sleeve",
|
||||
"hem"
|
||||
]
|
||||
},
|
||||
"examples": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern holding examples for our documentation",
|
||||
"lab": false,
|
||||
"org": false
|
||||
"description": "A FreeSewing pattern holding examples for our documentation"
|
||||
},
|
||||
"florence": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern for a face mask",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"florent": {
|
||||
|
@ -347,14 +317,12 @@
|
|||
"description": "A FreeSewing pattern for a flat cap",
|
||||
"design": "Quentin Felix",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"hats"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"gozer": {
|
||||
|
@ -362,8 +330,6 @@
|
|||
"description": "A FreeSewing pattern for a ghost costume",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"costumes"
|
||||
],
|
||||
|
@ -376,14 +342,12 @@
|
|||
"description": "A FreeSewing pattern for a shark plush toy",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"toys"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"dart"
|
||||
]
|
||||
},
|
||||
|
@ -395,14 +359,12 @@
|
|||
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
|
||||
"design": "Erica Alcusa Sáez",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"hats"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"lining"
|
||||
]
|
||||
},
|
||||
|
@ -414,14 +376,12 @@
|
|||
"Wouter Van Wageningen"
|
||||
],
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"bags"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"lining",
|
||||
"zipper"
|
||||
|
@ -432,17 +392,15 @@
|
|||
"description": "A FreeSewing pattern for a zip-up hoodie",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"pocket",
|
||||
"zipper",
|
||||
"ribbing",
|
||||
"flatSleeve"
|
||||
"flat-sleeve"
|
||||
]
|
||||
},
|
||||
"hugo": {
|
||||
|
@ -450,16 +408,14 @@
|
|||
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"pocket",
|
||||
"ribbing",
|
||||
"raglanSleeve"
|
||||
"raglan-sleeve"
|
||||
]
|
||||
},
|
||||
"jaeger": {
|
||||
|
@ -467,8 +423,6 @@
|
|||
"description": "A FreeSewing pattern for a sport coat style jacket",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 5,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"coats"
|
||||
|
@ -476,10 +430,10 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"pocket",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"setSleeve",
|
||||
"weltPocket",
|
||||
"set-sleeve",
|
||||
"welt-pocket",
|
||||
"lining",
|
||||
"interfacing",
|
||||
"button"
|
||||
|
@ -490,8 +444,6 @@
|
|||
"description": "A FreeSewing pattern for a 1790s shift",
|
||||
"design": "SeaZeeZee",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"historical",
|
||||
|
@ -503,24 +455,20 @@
|
|||
},
|
||||
"legend": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern to document pattern notation",
|
||||
"lab": false,
|
||||
"org": false
|
||||
"description": "A FreeSewing pattern to document pattern notation"
|
||||
},
|
||||
"lucy": {
|
||||
"code": "SeaZeeZee",
|
||||
"description": "A FreeSewing pattern for a historical tie-on pocket",
|
||||
"design": "SeaZeeZee",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"historical",
|
||||
"bags"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"lumina": {
|
||||
|
@ -528,15 +476,13 @@
|
|||
"description": "A FreeSewing pattern for leggings",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"stretch",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"elastic"
|
||||
]
|
||||
},
|
||||
|
@ -545,15 +491,13 @@
|
|||
"description": "A FreeSewing pattern for leggings",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"stretch",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"elastic"
|
||||
]
|
||||
},
|
||||
|
@ -562,8 +506,6 @@
|
|||
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
|
||||
"design": "Rika Tamaike",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"coats",
|
||||
|
@ -578,8 +520,6 @@
|
|||
"description": "A FreeSewing pattern for a bike messenger bag",
|
||||
"design": "clegganator259",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": false,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"bags"
|
||||
|
@ -591,17 +531,15 @@
|
|||
"description": "A FreeSewing pattern for a princess seam bodice block",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"block",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"princessSeam"
|
||||
"princess-seam"
|
||||
]
|
||||
},
|
||||
"octoplushy": {
|
||||
|
@ -609,14 +547,12 @@
|
|||
"description": "A FreeSewing pattern for an octopus plushy toy",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"toys"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision"
|
||||
]
|
||||
},
|
||||
|
@ -625,8 +561,6 @@
|
|||
"description": "A FreeSewing pattern for one-piece garments",
|
||||
"design": "Thrunic",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"swimwear",
|
||||
"pajamas",
|
||||
|
@ -634,7 +568,7 @@
|
|||
],
|
||||
"techniques": [
|
||||
"hem",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"stretch",
|
||||
"lining",
|
||||
"zipper",
|
||||
|
@ -646,16 +580,14 @@
|
|||
"description": "A FreeSewing pattern for overalls",
|
||||
"design": "Thrunic",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"overalls",
|
||||
"onePiece"
|
||||
],
|
||||
"techniques": [
|
||||
"flatFelledSeam",
|
||||
"flat-felled-seam",
|
||||
"hem",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"button",
|
||||
"pocket"
|
||||
]
|
||||
|
@ -665,8 +597,6 @@
|
|||
"description": "A FreeSewing pattern for a baby romper",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [],
|
||||
"techniques": []
|
||||
},
|
||||
|
@ -675,17 +605,15 @@
|
|||
"description": "A FreeSewing pattern for summer pants",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"elastic",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"pocket",
|
||||
"weltPocket",
|
||||
"welt-pocket",
|
||||
"hem"
|
||||
]
|
||||
},
|
||||
|
@ -694,30 +622,24 @@
|
|||
"description": "A FreeSewing pattern for a pencil skirt",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"skirts"
|
||||
],
|
||||
"techniques": [
|
||||
"hem",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision",
|
||||
"zipper"
|
||||
]
|
||||
},
|
||||
"plugintest": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern to test (y)our plugins",
|
||||
"lab": true,
|
||||
"org": false
|
||||
"description": "A FreeSewing pattern to test (y)our plugins"
|
||||
},
|
||||
"rendertest": {
|
||||
"code": "Joost De Cock",
|
||||
"description": "A FreeSewing pattern to test (y)our render engine our CSS",
|
||||
"lab": true,
|
||||
"org": false
|
||||
"description": "A FreeSewing pattern to test (y)our render engine our CSS"
|
||||
},
|
||||
"sandy": {
|
||||
"code": [
|
||||
|
@ -727,14 +649,12 @@
|
|||
"description": "A FreeSewing pattern for a circle skirt",
|
||||
"design": "Erica Alcusa Sáez",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"skirts"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"button",
|
||||
"hem"
|
||||
]
|
||||
|
@ -744,8 +664,6 @@
|
|||
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
|
||||
"design": "Thrunic",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"swimwear"
|
||||
|
@ -753,8 +671,8 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"stretch",
|
||||
"curvedSeam",
|
||||
"raglanSleeve"
|
||||
"curved-seam",
|
||||
"raglan-sleeve"
|
||||
]
|
||||
},
|
||||
"shin": {
|
||||
|
@ -762,8 +680,6 @@
|
|||
"description": "A FreeSewing pattern for swim trunks",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"swimwear"
|
||||
|
@ -771,7 +687,7 @@
|
|||
"techniques": [
|
||||
"hem",
|
||||
"stretch",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"elastic"
|
||||
]
|
||||
},
|
||||
|
@ -780,8 +696,6 @@
|
|||
"description": "A FreeSewing pattern for a button down shirt",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
|
@ -789,9 +703,9 @@
|
|||
"hem",
|
||||
"button",
|
||||
"interfacing",
|
||||
"curvedSeam",
|
||||
"flatFelledSeam",
|
||||
"flatSleeve"
|
||||
"curved-seam",
|
||||
"flat-felled-seam",
|
||||
"flat-sleeve"
|
||||
]
|
||||
},
|
||||
"simone": {
|
||||
|
@ -799,8 +713,6 @@
|
|||
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
|
@ -808,9 +720,9 @@
|
|||
"hem",
|
||||
"button",
|
||||
"interfacing",
|
||||
"curvedSeam",
|
||||
"flatFelledSeam",
|
||||
"flatSleeve"
|
||||
"curved-seam",
|
||||
"flat-felled-seam",
|
||||
"flat-sleeve"
|
||||
]
|
||||
},
|
||||
"skully": {
|
||||
|
@ -818,14 +730,12 @@
|
|||
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories",
|
||||
"toys"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision"
|
||||
]
|
||||
},
|
||||
|
@ -834,14 +744,12 @@
|
|||
"description": "A FreeSewing pattern for a straightforward sweater",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"flatSleeve",
|
||||
"curved-seam",
|
||||
"flat-sleeve",
|
||||
"ribbing"
|
||||
]
|
||||
},
|
||||
|
@ -850,13 +758,11 @@
|
|||
"description": "A FreeSewing pattern for a zero-waste top",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"teagan": {
|
||||
|
@ -864,16 +770,14 @@
|
|||
"description": "A FreeSewing pattern for a T-shirt",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"hem",
|
||||
"flatSleeve",
|
||||
"knitBand"
|
||||
"flat-sleeve",
|
||||
"knit-band"
|
||||
]
|
||||
},
|
||||
"tiberius": {
|
||||
|
@ -881,8 +785,6 @@
|
|||
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
|
||||
"design": "Rika Tamaike",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops",
|
||||
"historical"
|
||||
|
@ -897,8 +799,6 @@
|
|||
"Joost De Cock"
|
||||
],
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"blocks",
|
||||
"bottoms"
|
||||
|
@ -910,8 +810,6 @@
|
|||
"description": "A FreeSewing pattern for a tie",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"accessories"
|
||||
],
|
||||
|
@ -925,13 +823,11 @@
|
|||
"description": "A FreeSewing pattern for a fitted top with prince(ss) seams",
|
||||
"design": "Natalia Sayang",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"precision"
|
||||
]
|
||||
},
|
||||
|
@ -940,31 +836,27 @@
|
|||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"underwear"
|
||||
],
|
||||
"techniques": [
|
||||
"elastic",
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"umbra": {
|
||||
"code": "Joost De Cock, Jonathan Haas",
|
||||
"code": ["Joost De Cock", "Jonathan Haas"],
|
||||
"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,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"underwear"
|
||||
],
|
||||
"techniques": [
|
||||
"elastic",
|
||||
"curvedSeam"
|
||||
"curved-seam"
|
||||
]
|
||||
},
|
||||
"wahid": {
|
||||
|
@ -972,17 +864,15 @@
|
|||
"description": "A FreeSewing pattern for a classic fitted waistcoat",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 4,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"hem",
|
||||
"interfacing",
|
||||
"lining",
|
||||
"weltPocket",
|
||||
"welt-pocket",
|
||||
"button"
|
||||
]
|
||||
},
|
||||
|
@ -991,8 +881,6 @@
|
|||
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
|
||||
"design": "Rika Tamaike",
|
||||
"difficulty": 1,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"historical"
|
||||
|
@ -1006,16 +894,14 @@
|
|||
"description": "A FreeSewing pattern for wrap pants",
|
||||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"hem",
|
||||
"weltPocket"
|
||||
"welt-pocket"
|
||||
]
|
||||
},
|
||||
"yuri": {
|
||||
|
@ -1023,31 +909,27 @@
|
|||
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
|
||||
"design": "Biou",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"tops"
|
||||
],
|
||||
"techniques": [
|
||||
"curvedSeam",
|
||||
"flatSleeve",
|
||||
"curved-seam",
|
||||
"flat-sleeve",
|
||||
"hem",
|
||||
"button"
|
||||
]
|
||||
},
|
||||
"lily": {
|
||||
"code": "Anna Puk, Joost De Cock",
|
||||
"code": ["Anna Puk", "Joost De Cock"],
|
||||
"description": "A FreeSewing pattern for basic leggings",
|
||||
"design": "Anna Puk",
|
||||
"difficulty": 2,
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms"
|
||||
],
|
||||
"techniques": [
|
||||
"elastic",
|
||||
"curvedSeam",
|
||||
"curved-seam",
|
||||
"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",
|
||||
"i18n": "Translation for the FreeSewing project",
|
||||
"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",
|
||||
"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",
|
||||
"rehype-jargon": "A Rehype plugin for jargon terms",
|
||||
"rehype-highlight-lines": "A Rehype plugin to add highlighted lines to code blocks"
|
||||
"utils": "A number of utilities, typically used by FreeSewing frontend code"
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
// 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
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig($$Name$$)
|
||||
testPatternConfig($$Name$$, about)
|
||||
|
||||
// Test translation
|
||||
testPatternI18n($$Name$$, i18n)
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
import en from './en.json' assert { 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' }
|
||||
import en from './en.json' with { type: 'json' }
|
||||
|
||||
export const i18n = { en, de, es, fr, nl, uk }
|
||||
export const i18n = { en }
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
"name": "{{name}}",
|
||||
"version": "0.0.1",
|
||||
"description": "{{description}}",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
"repository": "github:freesewing/freesewing",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://codeberg.org/joostdecock)",
|
||||
"homepage": "https://freesewing.eu/",
|
||||
"repository": "https://codeberg.org/freesewing/freesewing",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.mjs",
|
||||
"main": "src/index.mjs",
|
||||
"module": "dist/index.mjs",
|
||||
"scripts": {}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import chai from 'chai'
|
||||
import models from '@freesewing/models'
|
||||
import patterns from '@freesewing/pattern-info'
|
||||
import Pattern from './dist/index.mjs'
|
||||
import Pattern from './src/index.mjs'
|
||||
|
||||
// Shared tests
|
||||
import { testPatternConfig } from '../../../tests/patterns/config.mjs'
|
||||
|
|
|
@ -12,28 +12,23 @@
|
|||
},
|
||||
"keywords": ["freesewing"],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"scripts": {
|
||||
"cibuild_step1": "node build.mjs",
|
||||
"build": "node build.mjs",
|
||||
"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": {},
|
||||
"dependencies": {},
|
||||
"devDependencies": {},
|
||||
"files": ["dist/*", "README.md"],
|
||||
"files": ["src/", "i18n/", "about.json", "README.md"],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
"name": "{{pluginName}}",
|
||||
"version": "0.0.1",
|
||||
"description": "{{description}}",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
"repository": "github:freesewing/freesewing",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://codeberg.org/joostdecock)",
|
||||
"homepage": "https://freesewing.eu/",
|
||||
"repository": "https://codeberg.org/freesewing/freesewing",
|
||||
"license": "MIT",
|
||||
"main": "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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -31,7 +31,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
|
@ -24,11 +24,6 @@
|
|||
><img src="https://img.shields.io/badge/all_contributors-{{ allcontributors }}-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</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"
|
||||
title="Chat with us on Discord"
|
||||
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||
|
@ -38,11 +33,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# FreeSewing
|
||||
|
@ -54,7 +44,7 @@
|
|||
> 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
|
||||
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? 🤔
|
||||
|
||||
|
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
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 `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 🪡 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 🪡 Makers website: [FreeSewing.eu](https://freesewing.eu)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [freesewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
Check our [support page](https://freesewing.org/support), or use
|
||||
the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
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"
|
||||
alt="License: MIT"/>
|
||||
</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-"
|
||||
title="All Contributors"
|
||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</a></p><p align='center'><a
|
||||
href="https://twitter.com/freesewing_org"
|
||||
href="https://forum.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"
|
||||
><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"/>
|
||||
</a><a
|
||||
href="https://chat.freesewing.org"
|
||||
|
@ -38,11 +28,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# @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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -76,7 +61,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
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 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",
|
||||
"version": "3.3.0-rc.1",
|
||||
"version": "4.0.0",
|
||||
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
|
@ -25,50 +25,41 @@
|
|||
"sewing pattern"
|
||||
],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"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 -",
|
||||
"test": "npx mocha tests/*.test.mjs",
|
||||
"vbuild": "VERBOSE=1 node build.mjs",
|
||||
"lab": "cd ../../sites/lab && yarn start",
|
||||
"tips": "node ../../scripts/help.mjs",
|
||||
"lint": "npx eslint 'src/**' '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",
|
||||
"wbuild": "node build.mjs",
|
||||
"wbuild:all": "yarn wbuild"
|
||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/core": "3.3.0-rc.1",
|
||||
"@freesewing/brian": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-bust": "3.3.0-rc.1"
|
||||
"@freesewing/core": "4.0.0",
|
||||
"@freesewing/brian": "4.0.0",
|
||||
"@freesewing/plugin-bust": "4.0.0"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "10.4.0",
|
||||
"chai": "5.1.1",
|
||||
"@freesewing/models": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
||||
"@freesewing/models": "4.0.0",
|
||||
"@freesewing/plugin-timing": "4.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/*",
|
||||
"src/",
|
||||
"i18n/",
|
||||
"about.json",
|
||||
"README.md"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ export const front = {
|
|||
shoulderSlopeReduction: 0,
|
||||
chestEase: { pct: 8, min: 0, max: 20, ...pctBasedOn('chest'), 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' },
|
||||
armholeDrop: { pct: 10, min: 0, max: 75, menu: 'style' },
|
||||
lengthBonus: { pct: 10, min: -20, max: 60, menu: 'style' },
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Design, mergeI18n } from '@freesewing/core'
|
||||
import { i18n as brianI18n } from '@freesewing/brian'
|
||||
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 { front } from './front.mjs'
|
||||
import { armBinding } from './arm-binding.mjs'
|
||||
|
@ -9,7 +9,7 @@ import { neckBinding } from './neck-binding.mjs'
|
|||
|
||||
// Setup our new design
|
||||
const Aaron = new Design({
|
||||
data,
|
||||
data: about,
|
||||
parts: [back, front, armBinding, neckBinding],
|
||||
})
|
||||
|
||||
|
@ -27,10 +27,12 @@ const i18n = mergeI18n([brianI18n, aaronI18n], {
|
|||
'legacyArmholeDepthNo',
|
||||
'legacyArmholeDepthYes',
|
||||
'armholeDepth',
|
||||
'draftForHighBustNo',
|
||||
'draftForHighBustYes',
|
||||
],
|
||||
},
|
||||
s: { drop: [] },
|
||||
})
|
||||
|
||||
// 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.
|
||||
import { Aaron, i18n } from '../src/index.mjs'
|
||||
import { Aaron, about, i18n } from '../src/index.mjs'
|
||||
|
||||
// Shared tests
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig(Aaron)
|
||||
testPatternConfig(Aaron, about)
|
||||
|
||||
// Test translation
|
||||
testPatternI18n(Aaron, i18n)
|
||||
|
|
|
@ -9,24 +9,14 @@
|
|||
><img src="https://img.shields.io/npm/l/@freesewing/albert.svg?label=License"
|
||||
alt="License: MIT"/>
|
||||
</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-"
|
||||
title="All Contributors"
|
||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</a></p><p align='center'><a
|
||||
href="https://twitter.com/freesewing_org"
|
||||
href="https://forum.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"
|
||||
><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"/>
|
||||
</a><a
|
||||
href="https://chat.freesewing.org"
|
||||
|
@ -38,11 +28,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# @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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -76,7 +61,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
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 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",
|
||||
"version": "3.3.0-rc.1",
|
||||
"version": "4.0.0",
|
||||
"description": "A FreeSewing pattern for an apron",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
|
@ -25,48 +25,39 @@
|
|||
"sewing pattern"
|
||||
],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"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 -",
|
||||
"test": "npx mocha tests/*.test.mjs",
|
||||
"vbuild": "VERBOSE=1 node build.mjs",
|
||||
"lab": "cd ../../sites/lab && yarn start",
|
||||
"tips": "node ../../scripts/help.mjs",
|
||||
"lint": "npx eslint 'src/**' '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",
|
||||
"wbuild": "node build.mjs",
|
||||
"wbuild:all": "yarn wbuild"
|
||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/core": "3.3.0-rc.1"
|
||||
"@freesewing/core": "4.0.0"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "10.4.0",
|
||||
"chai": "5.1.1",
|
||||
"@freesewing/models": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
||||
"@freesewing/models": "4.0.0",
|
||||
"@freesewing/plugin-timing": "4.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/*",
|
||||
"src/",
|
||||
"i18n/",
|
||||
"about.json",
|
||||
"README.md"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,16 +106,23 @@ export const front = {
|
|||
|
||||
if (sa) {
|
||||
const saBase = new Path()
|
||||
.move(points.bottomLeft.shift(-90, sa))
|
||||
.line(points.bottomRight.shift(-90, sa))
|
||||
.line(points.topRightBack)
|
||||
.move(points.bottomLeft.shift(-90, strapWidth - sa))
|
||||
.line(points.bottomRight.shift(-90, strapWidth - sa).shift(0, strapWidth - sa))
|
||||
.line(points.topRightBack.shift(0, strapWidth - sa))
|
||||
.curve(points.topRightBackCPfront, points.topRightCPdown, points.topRightHem)
|
||||
.line(points.topRight.shift(90, sa))
|
||||
.line(points.topLeft.shift(90, sa))
|
||||
.line(points.topRight.shift(90, strapWidth - sa))
|
||||
.line(points.topLeft.shift(90, strapWidth - sa))
|
||||
paths.sa = saBase
|
||||
.clone()
|
||||
.offset(sa * 2)
|
||||
.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) {
|
||||
paths.hemHint = saBase.clone().offset(sa).addClass('note help')
|
||||
macro('banner', {
|
||||
|
@ -127,6 +134,24 @@ export const front = {
|
|||
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', {
|
||||
from: points.bottomLeft,
|
||||
to: points.bottomRight,
|
||||
y: points.bottomLeft.y + sa + 15,
|
||||
y: points.bottomLeft.y + sa + (sa ? strapWidth : 0) + 15,
|
||||
id: 'wBottom',
|
||||
})
|
||||
macro('hd', {
|
||||
from: points.topLeft,
|
||||
to: points.topRight,
|
||||
y: points.topLeft.y - sa - 15,
|
||||
y: points.topLeft.y - sa - (sa ? strapWidth : 0) - 15,
|
||||
id: 'wTop',
|
||||
})
|
||||
macro('vd', {
|
||||
from: points.bottomLeft,
|
||||
to: points.topLeft,
|
||||
x: points.topLeft.x - 30,
|
||||
x: points.topLeft.x - 15,
|
||||
id: 'hLeft',
|
||||
})
|
||||
macro('vd', {
|
||||
from: points.bottomRight,
|
||||
to: points.topRightBack,
|
||||
x: points.topRightBack.x + sa + 15,
|
||||
x: points.topRightBack.x + sa + (sa ? strapWidth : 0) + 15,
|
||||
id: 'hRightBottom',
|
||||
})
|
||||
macro('vd', {
|
||||
from: points.topRightBack,
|
||||
to: points.topRight,
|
||||
x: points.topRightBack.x + sa + 15,
|
||||
x: points.topRightBack.x + sa + (sa ? strapWidth : 0) + 15,
|
||||
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
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Design } from '@freesewing/core'
|
||||
import { data } from '../data.mjs'
|
||||
import about from '../about.json' with { type: 'json' }
|
||||
import { front } from './front.mjs'
|
||||
import { pocket } from './pocket.mjs'
|
||||
import { strap } from './strap.mjs'
|
||||
|
@ -7,9 +7,9 @@ import { i18n } from '../i18n/index.mjs'
|
|||
|
||||
// Setup our new design
|
||||
const Albert = new Design({
|
||||
data,
|
||||
data: about,
|
||||
parts: [front, pocket, strap],
|
||||
})
|
||||
|
||||
// Named exports
|
||||
export { front, pocket, strap, Albert, i18n }
|
||||
export { front, pocket, strap, Albert, i18n, about }
|
||||
|
|
|
@ -16,6 +16,7 @@ export const pocket = {
|
|||
units,
|
||||
store,
|
||||
part,
|
||||
complete,
|
||||
}) => {
|
||||
const pocketSize = store.get('pocketSize')
|
||||
|
||||
|
@ -53,11 +54,11 @@ export const pocket = {
|
|||
.line(points.bottomRight)
|
||||
.line(points.topRight)
|
||||
.line(points.topLeft)
|
||||
.move(points.bottomLeft)
|
||||
.line(points.bottomLeft)
|
||||
.close()
|
||||
.attr('class', 'fabric')
|
||||
|
||||
if (sa)
|
||||
if (sa) {
|
||||
paths.sa = new Path()
|
||||
.move(points.bottomLeft)
|
||||
.line(points.bottomRight)
|
||||
|
@ -65,7 +66,46 @@ export const pocket = {
|
|||
.line(points.topLeft.shift(90, store.get('strapWidth')))
|
||||
.offset(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
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// 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
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig(Albert)
|
||||
testPatternConfig(Albert, about)
|
||||
|
||||
// Test translation
|
||||
testPatternI18n(Albert, i18n)
|
||||
|
|
|
@ -9,24 +9,14 @@
|
|||
><img src="https://img.shields.io/npm/l/@freesewing/bee.svg?label=License"
|
||||
alt="License: MIT"/>
|
||||
</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-"
|
||||
title="All Contributors"
|
||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</a></p><p align='center'><a
|
||||
href="https://twitter.com/freesewing_org"
|
||||
href="https://forum.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"
|
||||
><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"/>
|
||||
</a><a
|
||||
href="https://chat.freesewing.org"
|
||||
|
@ -38,11 +28,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# @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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -76,7 +61,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
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 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",
|
||||
"version": "3.3.0-rc.1",
|
||||
"version": "4.0.0",
|
||||
"description": "A FreeSewing pattern for a bikini top",
|
||||
"author": "bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
|
@ -25,49 +25,40 @@
|
|||
"sewing pattern"
|
||||
],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"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 -",
|
||||
"test": "npx mocha tests/*.test.mjs",
|
||||
"vbuild": "VERBOSE=1 node build.mjs",
|
||||
"lab": "cd ../../sites/lab && yarn start",
|
||||
"tips": "node ../../scripts/help.mjs",
|
||||
"lint": "npx eslint 'src/**' '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",
|
||||
"wbuild": "node build.mjs",
|
||||
"wbuild:all": "yarn wbuild"
|
||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/core": "3.3.0-rc.1",
|
||||
"@freesewing/bella": "3.3.0-rc.1"
|
||||
"@freesewing/core": "4.0.0",
|
||||
"@freesewing/bella": "4.0.0"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "10.4.0",
|
||||
"chai": "5.1.1",
|
||||
"@freesewing/models": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
||||
"@freesewing/models": "4.0.0",
|
||||
"@freesewing/plugin-timing": "4.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/*",
|
||||
"src/",
|
||||
"i18n/",
|
||||
"about.json",
|
||||
"README.md"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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 { neckTie } from './neck-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'
|
||||
|
||||
const Bee = new Design({
|
||||
data,
|
||||
data: about,
|
||||
parts: [cup, neckTie, bandTie],
|
||||
})
|
||||
|
||||
|
@ -50,4 +50,4 @@ const i18n = mergeI18n([bellaI18n, beeI18n], {
|
|||
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.
|
||||
import { Bee, i18n } from '../src/index.mjs'
|
||||
import { Bee, about, i18n } from '../src/index.mjs'
|
||||
|
||||
// Shared tests
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig(Bee)
|
||||
testPatternConfig(Bee, about)
|
||||
|
||||
// Test translation
|
||||
testPatternI18n(Bee, i18n)
|
||||
|
|
|
@ -9,24 +9,14 @@
|
|||
><img src="https://img.shields.io/npm/l/@freesewing/bella.svg?label=License"
|
||||
alt="License: MIT"/>
|
||||
</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-"
|
||||
title="All Contributors"
|
||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</a></p><p align='center'><a
|
||||
href="https://twitter.com/freesewing_org"
|
||||
href="https://forum.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"
|
||||
><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"/>
|
||||
</a><a
|
||||
href="https://chat.freesewing.org"
|
||||
|
@ -38,11 +28,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# @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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -76,7 +61,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
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 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",
|
||||
"version": "3.3.0-rc.1",
|
||||
"version": "4.0.0",
|
||||
"description": "A FreeSewing pattern for a womenswear bodice block",
|
||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
|
@ -25,48 +25,39 @@
|
|||
"sewing pattern"
|
||||
],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"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 -",
|
||||
"test": "npx mocha tests/*.test.mjs",
|
||||
"vbuild": "VERBOSE=1 node build.mjs",
|
||||
"lab": "cd ../../sites/lab && yarn start",
|
||||
"tips": "node ../../scripts/help.mjs",
|
||||
"lint": "npx eslint 'src/**' '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",
|
||||
"wbuild": "node build.mjs",
|
||||
"wbuild:all": "yarn wbuild"
|
||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/core": "3.3.0-rc.1"
|
||||
"@freesewing/core": "4.0.0"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "10.4.0",
|
||||
"chai": "5.1.1",
|
||||
"@freesewing/models": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
||||
"@freesewing/models": "4.0.0",
|
||||
"@freesewing/plugin-timing": "4.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/*",
|
||||
"src/",
|
||||
"i18n/",
|
||||
"about.json",
|
||||
"README.md"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import { pctBasedOn } from '@freesewing/core'
|
||||
|
||||
export const back = {
|
||||
name: 'bella.back',
|
||||
measurements: [
|
||||
|
@ -24,11 +26,17 @@ export const back = {
|
|||
backCenterWaistReduction: 0.35,
|
||||
collarFactor: 0.19,
|
||||
// Fit
|
||||
bustSpanEase: { pct: 10, min: 0, max: 20, menu: 'fit' },
|
||||
chestEase: { pct: 11, min: 5, max: 20, menu: 'fit' },
|
||||
bustSpanEase: { pct: 10, min: 0, max: 20, ...pctBasedOn('bustSpan'), menu: 'fit' },
|
||||
chestEase: { pct: 11, min: 5, max: 20, ...pctBasedOn('chest'), menu: 'fit' },
|
||||
fullChestEaseReduction: { pct: 4, min: 0, max: 8, menu: 'fit' },
|
||||
shoulderToShoulderEase: { pct: -0.5, min: -1, max: 5, menu: 'fit' },
|
||||
waistEase: { pct: 5, min: 1, max: 20, menu: 'fit' },
|
||||
shoulderToShoulderEase: {
|
||||
pct: -0.5,
|
||||
min: -1,
|
||||
max: 5,
|
||||
...pctBasedOn('shoulderToShoulder'),
|
||||
menu: 'fit',
|
||||
},
|
||||
waistEase: { pct: 5, min: 1, max: 20, ...pctBasedOn('waist'), menu: 'fit' },
|
||||
// Darts
|
||||
backDartHeight: { pct: 46, min: 38, max: 54, menu: 'darts' },
|
||||
bustDartCurve: { pct: 100, min: -100, max: 100, menu: 'darts' },
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import { Design } from '@freesewing/core'
|
||||
import { data } from '../data.mjs'
|
||||
import about from '../about.json' with { type: 'json' }
|
||||
import { back } from './back.mjs'
|
||||
import { frontSideDart } from './front-side-dart.mjs'
|
||||
import { i18n } from '../i18n/index.mjs'
|
||||
|
||||
const Bella = new Design({
|
||||
data,
|
||||
data: about,
|
||||
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.
|
||||
import { Bella, i18n } from '../src/index.mjs'
|
||||
import { Bella, about, i18n } from '../src/index.mjs'
|
||||
|
||||
// Shared tests
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig(Bella)
|
||||
testPatternConfig(Bella, about)
|
||||
|
||||
// Test translation
|
||||
testPatternI18n(Bella, i18n)
|
||||
|
|
|
@ -9,24 +9,14 @@
|
|||
><img src="https://img.shields.io/npm/l/@freesewing/benjamin.svg?label=License"
|
||||
alt="License: MIT"/>
|
||||
</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-"
|
||||
title="All Contributors"
|
||||
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
|
||||
alt="All Contributors"/>
|
||||
</a></p><p align='center'><a
|
||||
href="https://twitter.com/freesewing_org"
|
||||
href="https://forum.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"
|
||||
><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"/>
|
||||
</a><a
|
||||
href="https://chat.freesewing.org"
|
||||
|
@ -38,11 +28,6 @@
|
|||
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"
|
||||
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>
|
||||
|
||||
# @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.
|
||||
>
|
||||
> 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? 🤔
|
||||
|
||||
|
@ -76,7 +61,7 @@ npm run tips
|
|||
> [!NOTE]
|
||||
> 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
|
||||
> 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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
npx @freesewing/new-design
|
||||
npx @freesewing/studio
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```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.
|
||||
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
|
||||
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:freesewing/freesewing.git
|
||||
git clone git@codeberg.org:freesewing/freesewing.git
|
||||
cd freesewing
|
||||
yarn kickstart
|
||||
npm run kickstart
|
||||
```
|
||||
|
||||
## Links 👩💻
|
||||
|
||||
**Official channels**
|
||||
|
||||
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing)
|
||||
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
|
||||
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
|
||||
- ✅ [Support](https://forum.freesewing.eu/),
|
||||
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
|
||||
[Codeberg](https://codeberg.org/freesewing/freesewing)
|
||||
|
||||
**Social media**
|
||||
|
||||
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
|
||||
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
|
||||
|
||||
**Places the FreeSewing community hangs out**
|
||||
|
||||
- 💬 [Forum](https://forum.freesewing.eu/)
|
||||
- 💬 [Discord](https://discord.freesewing.org/)
|
||||
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||
|
||||
## License: MIT 🤓
|
||||
|
||||
© [Joost De Cock](https://github.com/joostdecock).
|
||||
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
© [Joost De Cock](https://codeberg.org/joostdecock).
|
||||
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||
|
||||
## Where to get help 🤯
|
||||
|
||||
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||
[GitHub](https://github.com/freesewing/freesewing).
|
||||
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).
|
||||
|
||||
|
|
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 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",
|
||||
"version": "3.3.0-rc.1",
|
||||
"version": "4.0.0",
|
||||
"description": "A FreeSewing pattern for a bow tie",
|
||||
"author": "woutervdub (https://github.com/woutervdub)",
|
||||
"homepage": "https://freesewing.org/",
|
||||
|
@ -25,48 +25,39 @@
|
|||
"sewing pattern"
|
||||
],
|
||||
"type": "module",
|
||||
"module": "dist/index.mjs",
|
||||
"module": "src/index.mjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"internal": "./src/index.mjs",
|
||||
"default": "./dist/index.mjs"
|
||||
}
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"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 -",
|
||||
"test": "npx mocha tests/*.test.mjs",
|
||||
"vbuild": "VERBOSE=1 node build.mjs",
|
||||
"lab": "cd ../../sites/lab && yarn start",
|
||||
"tips": "node ../../scripts/help.mjs",
|
||||
"lint": "npx eslint 'src/**' '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",
|
||||
"wbuild": "node build.mjs",
|
||||
"wbuild:all": "yarn wbuild"
|
||||
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/core": "3.3.0-rc.1"
|
||||
"@freesewing/core": "4.0.0"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "10.4.0",
|
||||
"chai": "5.1.1",
|
||||
"@freesewing/models": "3.3.0-rc.1",
|
||||
"@freesewing/plugin-timing": "3.3.0-rc.1"
|
||||
"@freesewing/models": "4.0.0",
|
||||
"@freesewing/plugin-timing": "4.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist/*",
|
||||
"src/",
|
||||
"i18n/",
|
||||
"about.json",
|
||||
"README.md"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"tag": "next"
|
||||
"tag": "latest"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.17.0 <22"
|
||||
"node": ">= 20"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import { pctBasedOn } from '@freesewing/core'
|
||||
|
||||
function draftBenjaminBase({
|
||||
store,
|
||||
sa,
|
||||
|
@ -236,7 +238,7 @@ export const base = {
|
|||
bandLength: 0.17,
|
||||
adjustmentRibbonWidth: 20,
|
||||
// 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' },
|
||||
// Style options
|
||||
tipWidth: { pct: 15, min: 0, max: 20, menu: 'style' },
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Design } from '@freesewing/core'
|
||||
import { data } from '../data.mjs'
|
||||
import about from '../about.json' with { type: 'json' }
|
||||
import { bow1 } from './bow1.mjs'
|
||||
import { bow2 } from './bow2.mjs'
|
||||
import { bow3 } from './bow3.mjs'
|
||||
|
@ -8,9 +8,9 @@ import { i18n } from '../i18n/index.mjs'
|
|||
|
||||
// Setup our new design
|
||||
const Benjamin = new Design({
|
||||
data,
|
||||
data: about,
|
||||
parts: [bow1, bow2, bow3, collarBand],
|
||||
})
|
||||
|
||||
// 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.
|
||||
import { Benjamin, i18n } from '../src/index.mjs'
|
||||
import { Benjamin, about, i18n } from '../src/index.mjs'
|
||||
|
||||
// Shared tests
|
||||
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'
|
||||
|
||||
// Test config
|
||||
testPatternConfig(Benjamin)
|
||||
testPatternConfig(Benjamin, about)
|
||||
|
||||
// Test translation
|
||||
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