1
0
Fork 0

🚧 Ongoing work on components and pattern info

This commit is contained in:
Joost De Cock 2019-04-29 09:01:51 +02:00
parent a3ae718632
commit ea41dc0106
168 changed files with 17518 additions and 14384 deletions

View file

@ -31,6 +31,7 @@ components:
"prop-types": "15.7.2" "prop-types": "15.7.2"
"@freesewing/patterns": "^{{version}}" "@freesewing/patterns": "^{{version}}"
"@freesewing/i18n": "^{{version}}" "@freesewing/i18n": "^{{version}}"
"@freesewing/utils": "^{{version}}"
"react-intl": "^2.8.0" "react-intl": "^2.8.0"
core: core:
_: _:
@ -80,9 +81,15 @@ patterns:
"@freesewing/trayvon": "^{{version}}" "@freesewing/trayvon": "^{{version}}"
"@freesewing/wahid": "^{{version}}" "@freesewing/wahid": "^{{version}}"
workbench: workbench:
_:
"@freesewing/components": "^{{version}}"
"@freesewing/css-theme": "^{{version}}"
"@freesewing/utils": "^{{version}}"
"@freesewing/mui-theme": "^{{version}}"
peer: peer:
"@freesewing/core": "^{{version}}" "@freesewing/core": "^{{version}}"
"@freesewing/i18n": "^{{version}}" "@freesewing/i18n": "^{{version}}"
"@freesewing/utils": "^{{version}}"
"@freesewing/plugin-theme": "^{{version}}" "@freesewing/plugin-theme": "^{{version}}"
"react-intl": "^2.8.0" "react-intl": "^2.8.0"
"typeface-roboto-condensed": "^0.0.54" "typeface-roboto-condensed": "^0.0.54"

View file

@ -2,12 +2,13 @@ noNamespace:
- create-freesewing-pattern - create-freesewing-pattern
customRollup: customRollup:
- css-theme - css-theme
- create-freesewing-pattern
- plugin-theme - plugin-theme
- workbench
- components - components
- core
packageJson: packageJson:
create-freesewing-pattern: create-freesewing-pattern:
"reveal": true "reveal": true
"bin": "bin":
"create-freesewing-pattern": "index.js" "create-freesewing-pattern": "index.js"
css-theme:
main: "dist/theme.css"

View file

@ -1,7 +1,7 @@
_: _:
clean: "rimraf ../../dist/{{name}}" clean: "rimraf dist"
nodebuild: "BABEL_ENV=production rollup -c -o ../../dist/{{name}}/index.js -f cjs" nodebuild: "BABEL_ENV=production rollup -c -o dist/index.js -f cjs"
modulebuild: "BABEL_ENV=production rollup -c -o ../../dist/{{name}}/index.mjs -f es" modulebuild: "BABEL_ENV=production rollup -c -o dist/index.mjs -f es"
build: "npm run clean && npm run nodebuild && npm run modulebuild" build: "npm run clean && npm run nodebuild && npm run modulebuild"
test: "echo \"{{name}}: No tests configured. Perhaps you'd like to do this?\" && exit 0" test: "echo \"{{name}}: No tests configured. Perhaps you'd like to do this?\" && exit 0"
pubtest: "npm publish --registry http://localhost:6662" pubtest: "npm publish --registry http://localhost:6662"
@ -9,16 +9,15 @@ _types:
patterns: patterns:
plugins: plugins:
create-freesewing-pattern: create-freesewing-pattern:
mkdist: "mkdir -p ../../dist/create-freesewing-pattern" mkdist: "mkdir -p dist"
copyfiles: "cp -R index.js package.json README.md lib template ../../dist/create-freesewing-pattern/" copyfiles: "cp -R index.js package.json README.md lib template dist/"
build: "npm run clean && npm run mkdist && npm run copyfiles" build: "npm run clean && npm run mkdist && npm run copyfiles"
test: "ava -v && standard *.js lib/*.js" test: "ava -v && standard *.js lib/*.js"
css-theme: css-theme:
build: "npx node-sass --output-style compressed src/theme.scss ../../dist/css-theme/theme.css" build: "npx node-sass --output-style compressed src/theme.scss dist/theme.css"
watch: "npx node-sass --watch --output-style compressed src/theme.scss ../../dist/css-theme/theme.css" watch: "npx node-sass --watch --output-style compressed src/theme.scss dist/theme.css"
components: components:
test: "echo \"{{name}}: No tests configured. Perhaps you'd like to do this?\" && exit 0" test: "echo \"{{name}}: No tests configured. Perhaps you'd like to do this?\" && exit 0"
build: "./scripts/build.sh"
storybook: "start-storybook -p 6663" storybook: "start-storybook -p 6663"
core: core:
test: "BABEL_ENV=production nyc mocha tests/*.test.js" test: "BABEL_ENV=production nyc mocha tests/*.test.js"
@ -27,4 +26,5 @@ core:
workbench: workbench:
test: "cross-env CI=1 react-scripts test --env=jsdom" test: "cross-env CI=1 react-scripts test --env=jsdom"
test:watch: "react-scripts test --env=jsdom" test:watch: "react-scripts test --env=jsdom"
start: "rollup -c -w"

View file

@ -10,15 +10,15 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/{{name}}", "clean": "rimraf dist",
"nodebuild": "rollup -c -o ../../dist/{{name}}/index.js -f cjs", "nodebuild": "rollup -c -o dist/index.js -f cjs",
"modulebuild": "rollup -c -o ../../dist/{{name}}/index.mjs -f es", "modulebuild": "rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild" "build": "npm run clean && npm run nodebuild && npm run modulebuild"
}, },
"peerDependencies": {}, "peerDependencies": {},
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": ["../../dist/packages/{{name}}/*", "README.md", "package.json"], "files": ["dist/*", "README.md", "package.json"],
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

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

View file

@ -90,10 +90,10 @@
"open-color": "1.6.3", "open-color": "1.6.3",
"prettier": "1.14.0", "prettier": "1.14.0",
"prop-types": "15.7.2", "prop-types": "15.7.2",
"react": "^16.4.1", "react": "^16.8.6",
"react-dom": "^16.4.1", "react-dom": "^16.4.1",
"react-intl": "2.8.0", "react-intl": "2.8.0",
"react-scripts": "^1.1.4", "react-scripts": "3.0.0",
"rimraf": "2.6.3", "rimraf": "2.6.3",
"rmfr": "^2.0.0", "rmfr": "^2.0.0",
"rollup": "1.10.1", "rollup": "1.10.1",

View file

@ -3,6 +3,24 @@ import { version } from "../package.json";
export default { export default {
name: "aaron", name: "aaron",
version, version,
design: "Joost De Cock",
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 3,
tags: ["underwear", "top", "basics"],
optionGroups: {
fit: ["chestEase", "hipsEase", "stretchFactor"],
style: [
"armholeDrop",
"backlineBend",
"necklineBend",
"necklineDrop",
"shoulderStrapWidth",
"shoulderStrapPlacement",
"lengthBonus"
]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",
@ -21,7 +39,7 @@ export default {
front: "base", front: "base",
back: "front" back: "front"
}, },
hide: [ "base" ], hide: ["base"],
options: { options: {
// Constants // Constants
collarFactor: 4.8, collarFactor: 4.8,
@ -35,15 +53,15 @@ export default {
shoulderSlopeReduction: 0, shoulderSlopeReduction: 0,
// Percentages // Percentages
armholeDrop: { pct: 10, min: 1, max: 75 }, armholeDrop: { pct: 10, min: 1, max: 75 },
backlineBend: { pct: 50, min: 50, max: 100 }, backlineBend: { pct: 50, min: 50, max: 100 },
chestEase: { pct: 8, min: 0, max: 20 }, chestEase: { pct: 8, min: 0, max: 20 },
hipsEase: { pct: 8, min: 0, max: 20 }, hipsEase: { pct: 8, min: 0, max: 20 },
lengthBonus: { pct: 10, min:-20, max: 60 }, lengthBonus: { pct: 10, min: -20, max: 60 },
necklineBend: { pct: 100, min: 40, max: 100 }, necklineBend: { pct: 100, min: 40, max: 100 },
necklineDrop: { pct: 20, min: 10, max: 35 }, necklineDrop: { pct: 20, min: 10, max: 35 },
stretchFactor: { pct: 5, min: 0, max: 15 }, stretchFactor: { pct: 5, min: 0, max: 15 },
shoulderStrapWidth: { pct: 15, min: 10, max: 40 }, shoulderStrapWidth: { pct: 15, min: 10, max: 40 },
shoulderStrapPlacement: { pct: 40, min: 20, max: 80 }, shoulderStrapPlacement: { pct: 40, min: 20, max: 80 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/aaron", "name": "@freesewing/aaron",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a A-shirt or tank top", "description": "A FreeSewing pattern for a A-shirt or tank top",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,20 +23,20 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/aaron", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/aaron/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/aaron/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"aaron: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"aaron: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0", "@freesewing/plugin-bundle": "^0.32.4",
"@freesewing/brian": "^0.33.0" "@freesewing/brian": "^0.32.4"
}, },
"files": [ "files": [
"../../dist/packages/aaron/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import Brian from "@freesewing/brian"; import Brian from "@freesewing/brian";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import config from "../config"; import config from "../config";
@ -18,3 +18,4 @@ Aaron.prototype.draftFront = part => draftFront(part);
Aaron.prototype.draftBack = part => draftBack(part); Aaron.prototype.draftBack = part => draftBack(part);
export default Aaron; export default Aaron;
export { config };

View file

@ -1,2 +1,98 @@
# benjamin > **Note**: This is part of version 2 of FreeSewing.
Port of the Benjamin bowtie pattern to JavaScript > It is a work in progress, and not ready for prime-time yet
>
> For all questions, please come say hello in [our chatroom on Gitter](https://gitter.im/).
<p align="center"><a title="Go to freesewing.org" href="https://freesewing.org/"><img src="https://freesewing.org/img/logo/black.svg" align="center" width="150px" alt="Freesewing logo"/></a></p>
<p align="center">FreeSewing is a free and open source library for made-to-measure sewing patterns</p>
<p align='center'><a
href="https://www.npmjs.com/package/@freesewing/benjamin"
title="@freesewing/benjamin on NPM"
><img src="https://img.shields.io/npm/v/freesewing.svg"
alt="@freesewing/benjamin on NPM"/>
</a><a
href="https://opensource.org/licenses/MIT"
title="License: MIT"
><img src="https://img.shields.io/npm/l/freesewing.svg?label=License"
alt="License: MIT"/>
</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></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://gitter.im/freesewing/freesewing"
title="Chat with us on Gitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Chat%20with%20us-CA0547.svg?logo=gitter&logoColor=white&logoWidth=15"
alt="Chat with us on Gitter"/>
</a><a
href="https://freesewing.org/patrons/join"
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
A FreeSewing pattern for a bow tie
## About FreeSewing 🤔
Where the world of makers and developers collide, that's where you'll find FreeSewing.
Our [core library](https://freesewing.dev/en/freesewing) is a *batteries-included* toolbox
for parametric design of sewing patterns. It's a modular system (check our list
of [plugins](https://freesewing.dev/en/plugins) and getting started is as simple as:
```bash
npm init freesewing-pattern
```
The [getting started] section on [freesewing.dev](https://freesewing.dev/) is a good
entrypoint to our documentation, but you'll find a lot more there, including
our [API documentation](https://freesewing.dev/en/freesewing/api),
as well as [examples](https://freesewing.dev/en/freesewing/examples),
and [best practices](https://freesewing.dev/en/do).
If you're a maker, checkout [freesewing.org](https://freesewing/) where you can generate
our sewing patterns adapted to your measurements.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
If you feel what we do is worthwhile, you too
should [become a patron](https://freesewing.org/patrons/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.org)
- 💬 Chat: [gitter.im/freesewing](https://gitter.im/freesewing/freesewing)
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
Our [chatroom on Gitter](https://gitter.im) is the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).

View file

@ -1,78 +1,51 @@
{ {
"version": "0.2.0",
"name": "@freesewing/benjamin", "name": "@freesewing/benjamin",
"description": "Freesewing pattern for benjamin", "version": "0.32.4",
"author": "Wouter van Wageningen <wouter.vdub@yahoo.com> (https://github.com/woutervdub)", "description": "A FreeSewing pattern for a bow tie",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
"license": "MIT", "license": "MIT",
"homepage": "https://github.com/freesewing/benjamin#readme",
"repository": "github:freesewing/benjamin",
"bugs": { "bugs": {
"url": "https://github.com/freesewing/benjamin/issues" "url": "https://github.com/freesewing/freesewing/issues"
}, },
"keywords": [ "keywords": [
"freesewing", "freesewing",
"design",
"diy",
"fashion",
"made to measure",
"parametric design",
"pattern", "pattern",
"sewing" "sewing",
"sewing pattern"
], ],
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"unpkg": "dist/browser.js",
"scripts": { "scripts": {
"precommit": "npm run pretty && lint-staged",
"patch": "npm version patch -m ':bookmark: v%s' && npm run build",
"minor": "npm version minor -m ':bookmark: v%s' && npm run build",
"major": "npm version major -m ':bookmark: v%s' && npm run build",
"test": "echo \"Error: no test specified\" && exit 1",
"clean": "rimraf dist", "clean": "rimraf dist",
"pretty": "npx prettier --write 'src/*.js'", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"lint": "eslint --fix 'src/*.js'", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"watch": "nodemon -w src -w config --exec 'rollup -c rollup.config.js -o dist/browser.js -f iife -m true -n freesewing_patterns_florent --footer \"freesewing.patterns.benjamin=freesewing_patterns_template;\"'", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"browserbuild": "rollup -c rollup.config.js -o dist/browser.js -f iife -m true -n freesewing_patterns_benjamin --footer \"freesewing.patterns.template = freesewing_patterns_benjamin;\"", "test": "echo \"benjamin: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"nodebuild": "rollup -c rollup.config.js -o dist/index.js -f cjs -m true", "pubtest": "npm publish --registry http://localhost:6662"
"modulebuild": "rollup -c rollup.config.js -o dist/index.mjs -f es -m true",
"build": "npm run clean && npm run browserbuild && npm run nodebuild && npm run modulebuild"
}, },
"husky": { "peerDependencies": {
"hooks": { "@freesewing/core": "^0.32.4",
"pre-commit": "lint-staged" "@freesewing/plugin-bundle": "^0.32.4"
}
},
"lint-staged": {
"*.{js,json}": [
"prettier --write",
"git add"
]
},
"dependencies": {
"@freesewing/plugin-bundle": "0.8.0",
"freesewing": "latest"
},
"devDependencies": {
"@babel/core": "7.4.0",
"@freesewing/antman": "latest",
"@freesewing/models": "latest",
"@freesewing/plugin-debug": "latest",
"@freesewing/plugin-designer": "latest",
"@freesewing/plugin-i18n": "latest",
"@freesewing/plugin-theme": "latest",
"@freesewing/plugin-validate": "latest",
"eslint": "5.15.3",
"eslint-config-prettier": "4.1.0",
"eslint-plugin-prettier": "latest",
"husky": "latest",
"lint-staged": "8.1.5",
"prettier": "latest",
"rimraf": "latest",
"rollup": "1.7.2",
"rollup-plugin-babel": "latest",
"rollup-plugin-babel-minify": "8.0.0",
"rollup-plugin-json": "4.0.0",
"rollup-plugin-node-resolve": "latest"
}, },
"dependencies": {},
"devDependencies": {},
"files": [ "files": [
"dist/*", "dist/*",
"README.md", "README.md",
"package-lock.json",
"package.json" "package.json"
] ],
"publishConfig": {
"access": "public"
},
"engines": {
"node": ">=8.0.0",
"npm": ">=5"
}
} }

View file

@ -1,27 +1,48 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
//import peerDepsExternal from "rollup-plugin-peer-deps-external"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
//peerDepsExternal(), peerDepsExternal(),
resolve({ browser: true }), resolve({ modulesOnly: true }),
json() url(),
//babel({ commonjs(),
// exclude: "node_modules/**", json(),
// plugins: ["@babel/plugin-proposal-object-rest-spread"] yaml(),
//}) svgr(),
//minify({ postcss({
// comments: false, modules: true
// sourceMap: true, }),
// banner: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */` babel({
//}) exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"]
}),
minify({
comments: false,
sourceMap: true,
banner: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
})
] ]
}; };

View file

@ -3,6 +3,33 @@ import { version } from "../package.json";
export default { export default {
name: "bent", name: "bent",
version: version, version: version,
design: "Joost De Cock",
code: "Joost De Cock",
department: "menswear",
type: "block",
difficulty: 3,
tags: ["top"],
optionGroups: {
fit: [
"chestEase",
"collarEase",
"bicepsEase",
"cuffEase",
"shoulderEase",
"lengthBonus",
"sleeveLengthBonus",
"sleeveBend"
],
advanced: [
"acrossBackFactor",
"armholeDepthFactor",
"backNeckCutout",
"frontArmholeDeeper",
"shoulderSlopeReduction",
"sleevecapHeight",
"sleevecapEase"
]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",
@ -19,13 +46,13 @@ export default {
back: "base", back: "base",
front: "back", front: "back",
topSleeve: "sleeve", topSleeve: "sleeve",
underSleeve: "sleeve", underSleeve: "sleeve"
}, },
inject: { inject: {
back: "base", back: "base",
front: "back", front: "back",
topSleeve: "sleeve", topSleeve: "sleeve",
underSleeve: "sleeve", underSleeve: "sleeve"
}, },
hide: ["base", "sleeve"], hide: ["base", "sleeve"],
options: { options: {
@ -35,21 +62,21 @@ export default {
collarFactor: 4.8, collarFactor: 4.8,
// Percentages // Percentages
acrossBackFactor: { pct: 97, min: 93, max: 100 }, acrossBackFactor: { pct: 97, min: 93, max: 100 },
armholeDepthFactor: { pct: 65, min: 50, max: 70 }, armholeDepthFactor: { pct: 65, min: 50, max: 70 },
backNeckCutout: { pct: 5, min: 2, max: 8 }, backNeckCutout: { pct: 5, min: 2, max: 8 },
bicepsEase: { pct: 20, min: 0, max: 50 }, bicepsEase: { pct: 20, min: 0, max: 50 },
chestEase: { pct: 8, min: -4, max: 20 }, chestEase: { pct: 8, min: -4, max: 20 },
collarEase: { pct: 3.5, min: 0, max: 10 }, collarEase: { pct: 3.5, min: 0, max: 10 },
cuffEase: { pct: 20, min: 0, max: 200 }, cuffEase: { pct: 20, min: 0, max: 200 },
frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 }, frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 },
lengthBonus: { pct: 0, min: -4, max: 60 }, lengthBonus: { pct: 0, min: -4, max: 60 },
shoulderEase: { pct: 0, min: -2, max: 6 }, shoulderEase: { pct: 0, min: -2, max: 6 },
shoulderSlopeReduction: { pct: 0, min: 0, max: 8 }, shoulderSlopeReduction: { pct: 0, min: 0, max: 8 },
sleeveBend: { deg: 10, min: 0, max: 20 }, sleeveBend: { deg: 10, min: 0, max: 20 },
sleevecapHeight: {pct: 45, min: 40, max: 60 }, sleevecapHeight: { pct: 45, min: 40, max: 60 },
sleevecapEase: { pct: 1, min: 0, max: 10 }, sleevecapEase: { pct: 1, min: 0, max: 10 },
sleeveLengthBonus: { pct: 0, min:-40, max: 10 }, sleeveLengthBonus: { pct: 0, min: -40, max: 10 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/bent", "name": "@freesewing/bent",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve", "description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,20 +23,20 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/bent", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/bent/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/bent/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"bent: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"bent: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0", "@freesewing/plugin-bundle": "^0.32.4",
"@freesewing/brian": "^0.33.0" "@freesewing/brian": "^0.32.4"
}, },
"files": [ "files": [
"../../dist/packages/bent/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import Brian from "@freesewing/brian"; import Brian from "@freesewing/brian";
import config from "../config"; import config from "../config";
@ -27,3 +27,4 @@ Bent.prototype.draftTopSleeve = draftTopSleeve;
Bent.prototype.draftUnderSleeve = draftUnderSleeve; Bent.prototype.draftUnderSleeve = draftUnderSleeve;
export default Bent; export default Bent;
export { config };

View file

@ -3,6 +3,54 @@ import { version } from "../package.json";
export default { export default {
name: "brian", name: "brian",
version: version, version: version,
design: "Joost De Cock",
code: "Joost De Cock",
department: "menswear",
type: "block",
difficulty: 3,
tags: ["top"],
optionGroups: {
fit: [
"chestEase",
"collarEase",
"bicepsEase",
"cuffEase",
"shoulderEase",
"lengthBonus",
"sleeveLengthBonus"
],
advanced: [
"acrossBackFactor",
"armholeDepthFactor",
"backNeckCutout",
"frontArmholeDeeper",
"shoulderSlopeReduction",
"sleeveWidthGuarantee",
{
sleevecap: [
"sleevecapEase",
"sleevecapTopFactorX",
"sleevecapTopFactorY",
"sleevecapBackFactorX",
"sleevecapBackFactorY",
"sleevecapFrontFactorX",
"sleevecapFrontFactorY",
"sleevecapQ1Offset",
"sleevecapQ2Offset",
"sleevecapQ3Offset",
"sleevecapQ4Offset",
"sleevecapQ1Spread1",
"sleevecapQ1Spread2",
"sleevecapQ2Spread1",
"sleevecapQ2Spread2",
"sleevecapQ3Spread1",
"sleevecapQ3Spread2",
"sleevecapQ4Spread1",
"sleevecapQ4Spread2"
]
}
]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/brian", "name": "@freesewing/brian",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a basic body block for menswear", "description": "A FreeSewing pattern for a basic body block for menswear",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/brian", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/brian/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/brian/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"brian: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"brian: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/brian/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import config from "../config"; import config from "../config";
// Parts // Parts
@ -19,3 +19,4 @@ Brian.prototype.draftSleevecap = draftSleevecap;
Brian.prototype.draftSleeve = draftSleeve; Brian.prototype.draftSleeve = draftSleeve;
export default Brian; export default Brian;
export { config };

View file

@ -3,6 +3,16 @@ import { version } from "../package.json";
export default { export default {
name: "bruce", name: "bruce",
version, version,
design: "Joost De Cock",
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 3,
tags: ["underwear", "bottom", "basics"],
optionGroups: {
fit: ["bulge", "stretch", "legStretch", "backRise"],
style: ["rise", "legBonus"]
},
measurements: [ measurements: [
"hipsCircumference", "hipsCircumference",
"upperLegCircumference", "upperLegCircumference",
@ -11,7 +21,7 @@ export default {
dependencies: { dependencies: {
side: "back", side: "back",
front: "inset", front: "inset",
inset: "back", inset: "back"
}, },
options: { options: {
// Constants // Constants
@ -38,10 +48,10 @@ export default {
bulge: { deg: 20, min: 0, max: 40 }, bulge: { deg: 20, min: 0, max: 40 },
// Percentages // Percentages
legBonus: { pct: 0, min: -10, max: 20}, legBonus: { pct: 0, min: -10, max: 20 },
rise: { pct: 10, min: 0, max: 25}, rise: { pct: 10, min: 0, max: 25 },
stretch: { pct: 15, min: 5, max: 25}, stretch: { pct: 15, min: 5, max: 25 },
legStretch: { pct: 40, min: 25, max: 45}, legStretch: { pct: 40, min: 25, max: 45 },
backRise: { pct: 5, min: 0, max: 10}, backRise: { pct: 5, min: 0, max: 10 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/bruce", "name": "@freesewing/bruce",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for boxer briefs", "description": "A FreeSewing pattern for boxer briefs",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/bruce", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/bruce/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/bruce/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"bruce: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"bruce: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/bruce/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import config from "../config"; import config from "../config";
// Parts // Parts
@ -17,3 +17,4 @@ Bruce.prototype.draftInset = part => draftInset(part);
Bruce.prototype.draftFront = part => draftFront(part); Bruce.prototype.draftFront = part => draftFront(part);
export default Bruce; export default Bruce;
export { config };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/carlita", "name": "@freesewing/carlita",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat", "description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,23 +23,23 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/carlita", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/carlita/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/carlita/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"carlita: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"carlita: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0", "@freesewing/plugin-bundle": "^0.32.4",
"@freesewing/bent": "^0.33.0", "@freesewing/bent": "^0.32.4",
"@freesewing/carlton": "^0.33.0", "@freesewing/carlton": "^0.32.4",
"@freesewing/plugin-bust": "^0.33.0", "@freesewing/plugin-bust": "^0.32.4",
"@freesewing/plugin-buttons": "^0.33.0" "@freesewing/plugin-buttons": "^0.32.4"
}, },
"files": [ "files": [
"../../dist/packages/carlita/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -3,6 +3,53 @@ import { version } from "../package.json";
export default { export default {
name: "carlton", name: "carlton",
version: version, version: version,
design: ["Anneke Caramin", "Joost De Cock"],
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 5,
tags: ["top", "coat", "cosplay"],
optionGroups: {
fit: [
"acrossBackFactor",
"armholeDepthFactor",
"bicepsEase",
"chestEase",
"cuffEase",
"shoulderEase",
"sleeveBend",
"sleeveLengthBonus",
"waistEase",
"seatEase"
],
advanced: [
"backNeckCutout",
"frontArmholeDeeper",
"frontOverlap",
"lapelReduction",
"shoulderSlopeReduction",
"sleevecapHeight",
"sleevecapEase"
],
pockets: [
"pocketPlacementHorizontal",
"pocketPlacementVertical",
"pocketWidth",
"pocketHeight",
"pocketRadius",
"pocketFlapRadius",
"chestPocketHeight",
"chestPocketWidth",
"chestPocketPlacement",
"chestPocketAngle",
"innerPocketPlacement",
"innerPocketWidth",
"innerPocketDepth",
"innerPocketWeltHeight"
],
style: ["beltWidth", "buttonSpacingHorizontal", "cuffLength", "length"],
collar: ["collarHeight", "collarSpread", "collarFlare"]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",
@ -41,7 +88,7 @@ export default {
chestPocketBag: "front", chestPocketBag: "front",
innerPocketWelt: "front", innerPocketWelt: "front",
innerPocketBag: "front", innerPocketBag: "front",
innerPocketTab: "front", innerPocketTab: "front"
}, },
inject: { inject: {
bentBack: "bentBase", bentBack: "bentBase",
@ -53,7 +100,7 @@ export default {
topSleeve: "bentTopSleeve", topSleeve: "bentTopSleeve",
underSleeve: "bentUnderSleeve", underSleeve: "bentUnderSleeve",
collar: "collarStand", collar: "collarStand",
pocketLining: "pocket", pocketLining: "pocket"
}, },
hide: [ hide: [
"bentBase", "bentBase",
@ -61,7 +108,7 @@ export default {
"bentFront", "bentFront",
"bentSleeve", "bentSleeve",
"bentTopSleeve", "bentTopSleeve",
"bentUnderSleeve", "bentUnderSleeve"
], ],
options: { options: {
// Constants // Constants
@ -74,47 +121,47 @@ export default {
collarEase: 0.145, collarEase: 0.145,
// Options inherited from Bent // Options inherited from Bent
acrossBackFactor: { pct: 97, min: 93, max: 100 }, acrossBackFactor: { pct: 97, min: 93, max: 100 },
armholeDepthFactor: { pct: 65, min: 50, max: 70 }, armholeDepthFactor: { pct: 65, min: 50, max: 70 },
bicepsEase: { pct: 20, min: 0, max: 50 }, bicepsEase: { pct: 20, min: 0, max: 50 },
chestEase: { pct: 10, min: 5, max: 20 }, chestEase: { pct: 10, min: 5, max: 20 },
cuffEase: { pct: 60, min: 30, max: 100 }, cuffEase: { pct: 60, min: 30, max: 100 },
shoulderEase: { pct: 0, min: -2, max: 6 }, shoulderEase: { pct: 0, min: -2, max: 6 },
sleeveBend: { deg: 10, min: 0, max: 20 }, sleeveBend: { deg: 10, min: 0, max: 20 },
sleevecapHeight: {pct: 45, min: 40, max: 60 }, sleevecapHeight: { pct: 45, min: 40, max: 60 },
sleevecapEase: { pct: 1, min: 0, max: 10 }, sleevecapEase: { pct: 1, min: 0, max: 10 },
sleeveLengthBonus: { pct: 7, min: 0, max: 20 }, sleeveLengthBonus: { pct: 7, min: 0, max: 20 },
shoulderSlopeReduction: { pct: 2, min: 1, max: 5 }, shoulderSlopeReduction: { pct: 2, min: 1, max: 5 },
backNeckCutout: { pct: 5, min: 2, max: 8 }, backNeckCutout: { pct: 5, min: 2, max: 8 },
frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 }, frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 },
// Carlton options // Carlton options
waistEase: { pct: 14, min: 8, max: 25 }, waistEase: { pct: 14, min: 8, max: 25 },
seatEase: { pct: 14, min: 8, max: 25 }, seatEase: { pct: 14, min: 8, max: 25 },
length: { pct: 69, min: 35, max: 100 }, length: { pct: 69, min: 35, max: 100 },
buttonSpacingHorizontal: {pct: 43.5, min: 15, max: 60 }, buttonSpacingHorizontal: { pct: 43.5, min: 15, max: 60 },
frontOverlap: { pct: 1.5, min: 1, max: 2}, frontOverlap: { pct: 1.5, min: 1, max: 2 },
lapelReduction: { pct: 5, min: 0, max: 10 }, lapelReduction: { pct: 5, min: 0, max: 10 },
pocketPlacementHorizontal: {pct: 11, min: 5, max: 60 }, pocketPlacementHorizontal: { pct: 11, min: 5, max: 60 },
pocketPlacementVertical: {pct: 6, min: 5, max: 60 }, pocketPlacementVertical: { pct: 6, min: 5, max: 60 },
pocketWidth: {pct: 95, min: 70, max: 120}, pocketWidth: { pct: 95, min: 70, max: 120 },
pocketHeight: {pct: 15, min: 0, max: 40}, pocketHeight: { pct: 15, min: 0, max: 40 },
pocketRadius: {pct: 20, min: 0, max: 50}, pocketRadius: { pct: 20, min: 0, max: 50 },
pocketFlapRadius: {pct: 15, min: 0, max: 50}, pocketFlapRadius: { pct: 15, min: 0, max: 50 },
chestPocketHeight: {pct: 60, min: 40, max: 80}, chestPocketHeight: { pct: 60, min: 40, max: 80 },
chestPocketWidth: {pct: 25, min: 15, max: 50}, chestPocketWidth: { pct: 25, min: 15, max: 50 },
chestPocketPlacement: {pct: 55, min: 30, max: 65}, chestPocketPlacement: { pct: 55, min: 30, max: 65 },
chestPocketAngle: {deg: 4, min: 0, max: 6}, chestPocketAngle: { deg: 4, min: 0, max: 6 },
innerPocketPlacement: {pct: 53, min: 42, max: 62 }, innerPocketPlacement: { pct: 53, min: 42, max: 62 },
innerPocketWidth: { pct: 50, min: 45, max: 65 }, innerPocketWidth: { pct: 50, min: 45, max: 65 },
innerPocketDepth: { pct: 110, min: 75, max: 140 }, innerPocketDepth: { pct: 110, min: 75, max: 140 },
innerPocketWeltHeight: { pct: 3.5, min: 2.5, max: 5 }, innerPocketWeltHeight: { pct: 3.5, min: 2.5, max: 5 },
beltWidth: { pct: 15, min: 10, max: 20 }, beltWidth: { pct: 15, min: 10, max: 20 },
cuffLength: { pct: 15, min: 10, max: 20 }, cuffLength: { pct: 15, min: 10, max: 20 },
collarHeight: {pct: 9.6, min: 8, max: 11 }, collarHeight: { pct: 9.6, min: 8, max: 11 },
collarSpread: {deg: 4, min: 2, max: 6 }, collarSpread: { deg: 4, min: 2, max: 6 },
collarFlare: {pct: 20, min: 0, max: 40 }, collarFlare: { pct: 20, min: 0, max: 40 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/carlton", "name": "@freesewing/carlton",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat", "description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/carlton", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/carlton/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/carlton/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"carlton: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"carlton: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0", "@freesewing/plugin-bundle": "^0.32.4",
"@freesewing/bent": "^0.33.0", "@freesewing/bent": "^0.32.4",
"@freesewing/plugin-buttons": "^0.33.0" "@freesewing/plugin-buttons": "^0.32.4"
}, },
"files": [ "files": [
"../../dist/packages/carlton/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import buttons from "@freesewing/plugin-buttons"; import buttons from "@freesewing/plugin-buttons";
import Bent from "@freesewing/bent"; import Bent from "@freesewing/bent";
@ -23,10 +23,7 @@ import draftInnerPocketBag from "./innerpocketbag";
import draftInnerPocketTab from "./innerpockettab"; import draftInnerPocketTab from "./innerpockettab";
// Create new design // Create new design
const Carlton = new freesewing.Design(config, [ const Carlton = new freesewing.Design(config, [plugins, buttons]);
plugins,
buttons
]);
// Attach draft methods from Bent to prototype // Attach draft methods from Bent to prototype
Carlton.prototype.draftBentBase = function(part) { Carlton.prototype.draftBentBase = function(part) {
@ -34,7 +31,7 @@ Carlton.prototype.draftBentBase = function(part) {
}; };
Carlton.prototype.draftBentFront = function(part) { Carlton.prototype.draftBentFront = function(part) {
return new Bent(this.settings).draftFront(part); return new Bent(this.settings).draftFront(part);
} };
Carlton.prototype.draftBentBack = function(part) { Carlton.prototype.draftBentBack = function(part) {
return new Bent(this.settings).draftBack(part); return new Bent(this.settings).draftBack(part);
}; };
@ -68,3 +65,4 @@ Carlton.prototype.draftInnerPocketBag = draftInnerPocketBag;
Carlton.prototype.draftInnerPocketTab = draftInnerPocketTab; Carlton.prototype.draftInnerPocketTab = draftInnerPocketTab;
export default Carlton; export default Carlton;
export { config };

View file

@ -3,6 +3,23 @@ import { version } from "../package.json";
export default { export default {
name: "cathrin", name: "cathrin",
version, version,
design: ["Cathrin Åhlén", "Joost De Cock"],
code: "Joost De Cock",
department: "womenswear",
type: "pattern",
difficulty: 4,
tags: ["underwear", "top"],
optionGroups: {
fit: ["waistReduction", "panels"],
style: [
"backOpening",
"backRise",
"backDrop",
"frontRise",
"frontDrop",
"hipRise"
]
},
measurements: [ measurements: [
"underbust", "underbust",
"naturalWaist", "naturalWaist",
@ -28,21 +45,21 @@ export default {
panel6: "panels", panel6: "panels",
panels: "base" panels: "base"
}, },
hide: [ "panels", "base" ], hide: ["panels", "base"],
options: { options: {
// Lists // Lists
panels: { panels: {
list: [11, 13], list: [11, 13],
dflt: 13 dflt: 13
}, },
// Percentages // Percentages
waistReduction: { pct: 10, min: 2, max: 20 }, waistReduction: { pct: 10, min: 2, max: 20 },
backOpening: { pct: 4, min: 3, max: 10 }, backOpening: { pct: 4, min: 3, max: 10 },
backRise: { pct: 15, min: 1, max: 25 }, backRise: { pct: 15, min: 1, max: 25 },
backDrop: { pct: 2, min: 0, max: 5 }, backDrop: { pct: 2, min: 0, max: 5 },
frontRise: { pct: 4, min: 0, max: 8 }, frontRise: { pct: 4, min: 0, max: 8 },
frontDrop: { pct: 5, min: 0, max: 10 }, frontDrop: { pct: 5, min: 0, max: 10 },
hipRise: { pct: 5, min: 0, max: 15 }, hipRise: { pct: 5, min: 0, max: 15 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/cathrin", "name": "@freesewing/cathrin",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a underbust corset / waist trainer", "description": "A FreeSewing pattern for a underbust corset / waist trainer",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/cathrin", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/cathrin/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/cathrin/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"cathrin: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"cathrin: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/cathrin/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import config from "../config"; import config from "../config";
//Parts //Parts
@ -25,3 +25,4 @@ Cathrin.prototype.draftPanel5 = draftPanel5;
Cathrin.prototype.draftPanel6 = draftPanel6; Cathrin.prototype.draftPanel6 = draftPanel6;
export default Cathrin; export default Cathrin;
export { config };

View file

@ -1,6 +1,6 @@
import React from "react"; import React from "react";
import { configure } from "@storybook/react"; import { configure } from "@storybook/react";
import "../../../dist/css-theme/theme.css"; import "../../css-theme/dist/theme.css";
import { addParameters, addDecorator } from "@storybook/react"; import { addParameters, addDecorator } from "@storybook/react";
import { IntlProvider } from "react-intl"; import { IntlProvider } from "react-intl";
import { strings } from "@freesewing/i18n"; import { strings } from "@freesewing/i18n";

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/components", "name": "@freesewing/components",
"version": "0.33.0", "version": "0.32.4",
"description": "A collection of React components for FreeSewing web UIs", "description": "A collection of React components for FreeSewing web UIs",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -16,23 +16,24 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/components", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/components/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/components/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "./scripts/build.sh", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"components: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"components: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662", "pubtest": "npm publish --registry http://localhost:6662",
"storybook": "start-storybook -p 6663" "storybook": "start-storybook -p 6663"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.4.1", "@freesewing/i18n": "^0.32.4",
"@freesewing/patterns": "^0.32.4",
"@freesewing/utils": "^0.32.4",
"prop-types": "15.7.2", "prop-types": "15.7.2",
"@freesewing/patterns": "^0.33.0", "react": "^16.4.1",
"@freesewing/i18n": "^0.33.0",
"react-intl": "^2.8.0" "react-intl": "^2.8.0"
}, },
"files": [ "files": [
"../../dist/packages/components/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],
@ -42,5 +43,8 @@
"engines": { "engines": {
"node": ">=8.0.0", "node": ">=8.0.0",
"npm": ">=5" "npm": ">=5"
},
"dependencies": {
"@freesewing/patterns": "0.18.6"
} }
} }

View file

@ -7,13 +7,13 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
CUR=`pwd` CUR=`pwd`
cd $DIR/../src/ cd $DIR/../src/
rm -rf ../../../dist/components rm -rf dist
for d in * ; do { for d in * ; do {
cd .. cd ..
mkdir -p ../../dist/components/$d mkdir -p dist/$d
echo "Building $d" echo "Building $d"
rollup -c ./rollup.config.js ./src/$d/index.js -m -o ../../dist/components/$d/index.js -f cjs rollup -c ./rollup.config.js ./src/$d/index.js -m -o dist/$d/index.js -f cjs
rollup --silent -c ./rollup.config.js ./src/$d/index.js -m -o ../../dist/components/$d/index.mjs -f es rollup --silent -c ./rollup.config.js ./src/$d/index.js -m -o dist/$d/index.mjs -f es
cd src cd src
} }
done done

View file

@ -1,12 +1,11 @@
import React, { useState } from "react"; import React, { useState } from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import Slider from "@material-ui/lab/Slider"; import Slider from "@material-ui/lab/Slider";
import { withStyles } from "@material-ui/core/styles"; import { withStyles } from "@material-ui/styles";
const PaddedSlider = withStyles({ const PaddedSlider = withStyles({
container: { container: {
padding: "25px 0", padding: "25px 0"
//overflowX: "hidden" // See: https://github.com/mui-org/material-ui/issues/14234
}, },
track: { height: "4px" }, track: { height: "4px" },
thumb: { width: "16px", height: "16px" } thumb: { width: "16px", height: "16px" }

View file

@ -1,7 +1,7 @@
import React, { useState } from "react"; import React, { useState } from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import FormFieldSlider from "../../.form/FormFieldSlider"; import FormFieldSlider from "../../.form/FormFieldSlider";
import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils"; import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils";
import OptionPreamble from "../OptionPreamble"; import OptionPreamble from "../OptionPreamble";
const DraftSettingMargin = props => { const DraftSettingMargin = props => {

View file

@ -2,7 +2,7 @@ import React, { useState } from "react";
import FormFieldChecks from "../../.form/FormFieldChecks"; import FormFieldChecks from "../../.form/FormFieldChecks";
import FormFieldList from "../../.form/FormFieldList"; import FormFieldList from "../../.form/FormFieldList";
import FormFieldSlider from "../../.form/FormFieldSlider"; import FormFieldSlider from "../../.form/FormFieldSlider";
import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils"; import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils";
import OptionPreamble from "../OptionPreamble"; import OptionPreamble from "../OptionPreamble";
const DraftSettingOnly = props => { const DraftSettingOnly = props => {

View file

@ -2,7 +2,7 @@ import React, { useState } from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import FormFieldList from "../../.form/FormFieldList"; import FormFieldList from "../../.form/FormFieldList";
import FormFieldSlider from "../../.form/FormFieldSlider"; import FormFieldSlider from "../../.form/FormFieldSlider";
import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils"; import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils";
import OptionPreamble from "../OptionPreamble"; import OptionPreamble from "../OptionPreamble";
const DraftSettingSa = props => { const DraftSettingSa = props => {

View file

@ -1,7 +1,5 @@
import React, { useState } from "react"; import React, { useState } from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { gistDefaults } from "../../.utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import DraftSettingSa from "../DraftSettingSa"; import DraftSettingSa from "../DraftSettingSa";
import DraftSettingMargin from "../DraftSettingMargin"; import DraftSettingMargin from "../DraftSettingMargin";
@ -23,9 +21,6 @@ const DraftSettings = props => {
setExpanded(shown); setExpanded(shown);
}; };
let pattern = patternInfo[props.pattern];
let dflts = gistDefaults(pattern.config, props.gist);
let noyes = [ let noyes = [
<FormattedMessage id="app.no" />, <FormattedMessage id="app.no" />,
<FormattedMessage id="app.yes" /> <FormattedMessage id="app.yes" />
@ -67,7 +62,7 @@ const DraftSettings = props => {
childProps.dflt = "dflt"; childProps.dflt = "dflt";
childProps.customDflt = []; childProps.customDflt = [];
childProps.parts = {}; childProps.parts = {};
for (let part of pattern.parts) for (let part of props.info.parts)
childProps.parts[part] = <FormattedMessage id={"parts." + part} />; childProps.parts[part] = <FormattedMessage id={"parts." + part} />;
} }
@ -123,8 +118,8 @@ const DraftSettings = props => {
}; };
DraftSettings.propTypes = { DraftSettings.propTypes = {
pattern: PropTypes.oneOf(patternList), info: PropTypes.object.isRequired,
units: PropTypes.oneOf(["metric", "imperial"]).isRequired gist: PropTypes.object.isRequired
}; };
DraftSettings.defaultProps = {}; DraftSettings.defaultProps = {};

View file

@ -6,13 +6,12 @@ import Mm from "../PatternOptionMillimeter";
import Bool from "../PatternOptionBool"; import Bool from "../PatternOptionBool";
import List from "../PatternOptionList"; import List from "../PatternOptionList";
import Count from "../PatternOptionCount"; import Count from "../PatternOptionCount";
import { optionType } from "../../.utils"; import { optionType } from "@freesewing/utils";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import { injectIntl } from "react-intl"; import { injectIntl } from "react-intl";
const OptionGroup = props => { const OptionGroup = props => {
const renderOption = (name, sub = false) => {
const renderOption = (name, sub=false) => {
let option = props.pattern.config.options[name]; let option = props.pattern.config.options[name];
let type = optionType(option); let type = optionType(option);
let stringKey = `options.${props.pattern.config.name}.${name}.`; let stringKey = `options.${props.pattern.config.name}.${name}.`;

View file

@ -18,7 +18,7 @@ const OptionPreamble = props => {
margin: "0 0.5rem" margin: "0 0.5rem"
}, },
right: { right: {
margin: 0, margin: "0 5px 0 0 ",
textAlign: "right" textAlign: "right"
} }
}; };
@ -36,16 +36,22 @@ const OptionPreamble = props => {
<React.Fragment> <React.Fragment>
<h4 onClick={props.toggleExpanded} style={styles.container}> <h4 onClick={props.toggleExpanded} style={styles.container}>
<div style={styles.left}> <div style={styles.left}>
<DownIcon className={"icon-col-exp "+ (props.expanded ? "expanded" : "collapsed")}/> <DownIcon
className={
"icon-col-exp " + (props.expanded ? "expanded" : "collapsed")
}
/>
{props.title} {props.title}
</div> </div>
<div style={styles.right}> <div style={styles.right}>
<span className={props.value === props.dflt ? "dflt" : "custom"}> <span className={props.value === props.dflt ? "dflt" : "custom"}>
{props.displayValue} {props.displayValue}
</span> </span>
</div> </div>
</h4> </h4>
<div className={props.expanded ? "col-exp expanded" : "col-exp collapsed"}> <div
className={props.expanded ? "col-exp expanded" : "col-exp collapsed"}
>
<div style={styles.container}> <div style={styles.container}>
<div style={styles.left}> <div style={styles.left}>
<p>{props.desc}</p> <p>{props.desc}</p>

View file

@ -6,7 +6,7 @@ import {
roundMmUp, roundMmUp,
roundMmDown, roundMmDown,
formatMm formatMm
} from "../../.utils"; } from "@freesewing/utils";
import FormFieldSlider from "../../.form/FormFieldSlider"; import FormFieldSlider from "../../.form/FormFieldSlider";
import OptionPreamble from "../OptionPreamble"; import OptionPreamble from "../OptionPreamble";
@ -60,7 +60,7 @@ const PatternOptionMillimeter = props => {
label={"po-mm-" + props.name} label={"po-mm-" + props.name}
updateValue={update} updateValue={update}
/> />
) );
return ( return (
<li> <li>

View file

@ -5,8 +5,7 @@ import Deg from "../PatternOptionDegree";
import Mm from "../PatternOptionMillimeter"; import Mm from "../PatternOptionMillimeter";
import Bool from "../PatternOptionBool"; import Bool from "../PatternOptionBool";
import OptionGroup from "../OptionGroup"; import OptionGroup from "../OptionGroup";
import { optionType, defaultGist, gistDefaults } from "../../.utils"; import { optionType, gistDefaults } from "@freesewing/utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import DownIcon from "@material-ui/icons/KeyboardArrowDown"; import DownIcon from "@material-ui/icons/KeyboardArrowDown";
@ -21,9 +20,6 @@ const PatternOptions = props => {
setExpanded(shown); setExpanded(shown);
}; };
let pattern = patternInfo[props.pattern];
let dflts = gistDefaults(pattern.config, props.gist);
const renderGroup = group => { const renderGroup = group => {
let open = true; let open = true;
if (expanded.indexOf(group) === -1) open = false; if (expanded.indexOf(group) === -1) open = false;
@ -35,9 +31,9 @@ const PatternOptions = props => {
<OptionGroup <OptionGroup
key={group + "-group"} key={group + "-group"}
units={props.units} units={props.units}
pattern={pattern} info={props.info}
dflts={dflts} dflts={gistDefaults(props.info.config, props.gist)}
options={pattern.optionGroups[group]} options={props.info.optionGroups[group]}
updateValue={props.updateValue} updateValue={props.updateValue}
triggerAction={props.triggerAction} triggerAction={props.triggerAction}
/> />
@ -60,14 +56,14 @@ const PatternOptions = props => {
return ( return (
<ul className="nav l2"> <ul className="nav l2">
{Object.keys(pattern.optionGroups).map(group => renderGroup(group))} {Object.keys(props.info.optionGroups).map(group => renderGroup(group))}
</ul> </ul>
); );
}; };
PatternOptions.propTypes = { PatternOptions.propTypes = {
pattern: PropTypes.oneOf(patternList), info: PropTypes.object.isRequired,
units: PropTypes.oneOf(["metric", "imperial"]).isRequired gist: PropTypes.object.isRequired
}; };
PatternOptions.defaultProps = {}; PatternOptions.defaultProps = {};

View file

@ -5,16 +5,12 @@ import Deg from "./PatternOptionDegree";
import Mm from "./PatternOptionMillimeter"; import Mm from "./PatternOptionMillimeter";
import Bool from "./PatternOptionBool"; import Bool from "./PatternOptionBool";
import OptionGroup from "./OptionGroup"; import OptionGroup from "./OptionGroup";
import { optionType, gistDefaults } from "../.utils"; import { optionType, gistDefaults } from "@freesewing/utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import PatternOptions from "./PatternOptions"; import PatternOptions from "./PatternOptions";
import DraftSettings from "./DraftSettings"; import DraftSettings from "./DraftSettings";
//import DraftActions from "DraftActions";
import withGist from "../withGist";
const DraftConfigurator = props => { const DraftConfigurator = props => {
const [gist, setGist] = useState(props.gist.get);
const [expanded, setExpanded] = useState([]); const [expanded, setExpanded] = useState([]);
const update = (type, name, value) => { const update = (type, name, value) => {
@ -28,8 +24,7 @@ const DraftConfigurator = props => {
else shown.splice(index, 1); else shown.splice(index, 1);
setExpanded(shown); setExpanded(shown);
}; };
let pattern = patternInfo[props.pattern]; let dflts = gistDefaults(props.info.config, props.gist);
let dflts = gistDefaults(pattern.config, props.gist.get);
return ( return (
<ul className="nav l1"> <ul className="nav l1">
@ -38,9 +33,11 @@ const DraftConfigurator = props => {
<FormattedMessage id="app.patternOptions" /> <FormattedMessage id="app.patternOptions" />
</h2> </h2>
<PatternOptions <PatternOptions
pattern={props.pattern} info={props.info}
units={props.units} gist={props.gist}
updateValue={(name, value) => props.gist.set(value, 'settings', 'options', name)} updateValue={(name, value) =>
props.updateGist(value, "settings", "options", name)
}
triggerAction={props.triggerAction} triggerAction={props.triggerAction}
/> />
</li> </li>
@ -49,9 +46,11 @@ const DraftConfigurator = props => {
<FormattedMessage id="app.draftSettings" /> <FormattedMessage id="app.draftSettings" />
</h2> </h2>
<DraftSettings <DraftSettings
pattern={props.pattern} info={props.info}
units={props.units} gist={props.gist}
updateValue={(name, value) => props.gist.set(value, 'settings', name)} updateValue={(name, value) =>
props.updateGist(value, "settings", name)
}
triggerAction={props.triggerAction} triggerAction={props.triggerAction}
/> />
</li> </li>
@ -59,11 +58,8 @@ const DraftConfigurator = props => {
); );
}; };
DraftConfigurator.propTypes = { DraftConfigurator.propTypes = {};
pattern: PropTypes.oneOf(patternList),
units: PropTypes.oneOf(["metric", "imperial"]).isRequired
};
DraftConfigurator.defaultProps = {}; DraftConfigurator.defaultProps = {};
export default withGist(DraftConfigurator, {gist: {}, store: "yes"}); export default DraftConfigurator;

View file

@ -5,21 +5,37 @@ import Emblem from "../Emblem";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
const Navbar = props => { const Navbar = props => {
const renderNav = nav => { const renderNav = nav => {
let title = nav.title || nav.text; let title = nav.title || nav.text;
let text = typeof nav.text === "string" let text =
? <FormattedMessage id={nav.text} /> typeof nav.text === "string" ? (
: nav.text <FormattedMessage id={nav.text} />
if (nav.type === "component") return nav.component ) : (
return <a href={nav.href} className="nav" title={nav.title}>{text}</a> nav.text
} );
if (nav.type === "component") return nav.component;
else if (nav.type === "button")
return (
<button title={title} onClick={nav.onClick}>
{text}
</button>
);
return (
<a href={nav.href} className="nav" title={title}>
{text}
</a>
);
};
return ( return (
<header className="navbar"> <header className="navbar">
<div> <div>
<div className="logo">{props.logo}</div> <div className="logo">
<div className="emblem">{props.emblem}</div> <a href={props.home}>{props.logo}</a>
</div>
<div className="emblem">
<a href={props.home}>{props.emblem}</a>
</div>
{props.navs.left.map(nav => renderNav(nav))} {props.navs.left.map(nav => renderNav(nav))}
<div className="spread" /> <div className="spread" />
{props.navs.right.map(nav => renderNav(nav))} {props.navs.right.map(nav => renderNav(nav))}
@ -32,11 +48,13 @@ Navbar.propTypes = {
navs: PropTypes.object, navs: PropTypes.object,
logo: PropTypes.node, logo: PropTypes.node,
emblem: PropTypes.node, emblem: PropTypes.node,
home: PropTypes.string
}; };
Navbar.defaultProps = { Navbar.defaultProps = {
navs: {left:[], right: []}, home: "https://freesewing.org/",
logo: <Logo size={32} />, navs: { left: [], right: [] },
emblem: <Emblem t1="Free" t2="Sewing" size={20} c1="#74c0fc" c2="#e9ecef"/> logo: <Logo size={32} color="#e9ecef" />,
emblem: <Emblem t1="Free" t2="Sewing" size={20} c1="#74c0fc" c2="#e9ecef" />
}; };
export default Navbar; export default Navbar;

View file

@ -0,0 +1,49 @@
import React from "react";
import Button from "@material-ui/core/Button";
import { i18n } from "@freesewing/i18n";
const LanguageChooser = props => {
const styles = {
container: {
display: "flex",
height: "calc(100vh - 64px)",
width: "100%"
},
chooser: {
width: "100%",
textAlign: "center",
alignSelf: "center"
},
button: {
margin: "1rem"
}
};
const changeLanguage = lang => {
props.setLanguage(lang);
props.setDisplay("pattern");
};
return (
<div style={styles.container}>
<div style={styles.chooser}>
{Object.keys(i18n).map(lang => {
return (
<Button
style={styles.button}
key={lang}
color="primary"
size="large"
variant="contained"
onClick={() => changeLanguage(lang)}
>
{i18n[lang][lang]}
</Button>
);
})}
</div>
</div>
);
};
export default LanguageChooser;

View file

@ -0,0 +1,34 @@
import React from "react";
import PropTypes from "prop-types";
import { defaultGist } from "@freesewing/utils";
import DraftConfigurator from "../../DraftConfigurator";
const Pattern = props => {
//let pattern = new props.Pattern();
return (
<div className="fs-sa">
<section>hi mom</section>
<aside>
<div className="sticky">
<DraftConfigurator
gist={props.gist}
info={props.info}
updateGist={props.updateGist}
raiseEvent={props.raiseEvent}
/>
</div>
</aside>
</div>
);
};
Pattern.propTypes = {
gist: PropTypes.object.isRequired,
updateGist: PropTypes.func.isRequired,
info: PropTypes.object.isRequired,
raiseEvent: PropTypes.func.isRequired,
Pattern: PropTypes.func.isRequired
};
export default Pattern;

View file

@ -0,0 +1,36 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
import { IntlProvider } from "react-intl";
import Button from "@material-ui/core/Button";
import MuiThemeProvider from "@material-ui/core/styles/MuiThemeProvider";
import { createMuiTheme } from "@material-ui/core/styles";
import { i18n, strings } from "@freesewing/i18n";
import { Navbar, withGist } from "@freesewing/components";
import { defaultGist, storage } from "@freesewing/utils";
import { dark, light } from "@freesewing/mui-theme";
const Workbench = props => {
return (
<IntlProvider locale={language} messages={strings[language]}>
<MuiThemeProvider theme={createMuiTheme(themes[theme])}>
<React.Fragment>
<Navbar />
<Button variant="contained" color="primary">
test
</Button>
</React.Fragment>
</MuiThemeProvider>
</IntlProvider>
);
};
Workbench.propTypes = {
freesewing: PropTypes.object,
language: PropType.string
};
Workbench.defaultProps = {
language: "en"
};
export default Workbench;

View file

@ -0,0 +1,139 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
import withGist from "../withGist";
import { patternList } from "@freesewing/patterns";
import { FormattedMessage, IntlProvider } from "react-intl";
import Button from "@material-ui/core/Button";
import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles";
import { i18n, strings } from "@freesewing/i18n";
import Navbar from "../Navbar";
import { defaultGist, storage } from "@freesewing/utils";
import { dark, light } from "@freesewing/mui-theme";
import Logo from "../Logo";
import withLanguage from "../withLanguage";
import LanguageIcon from "@material-ui/icons/Translate";
import DarkModeIcon from "@material-ui/icons/Brightness3";
import LanguageChooser from "./LanguageChooser";
import Pattern from "./Pattern";
const Workbench = props => {
const [display, setDisplay] = useState("pattern");
const [pattern, setPattern] = useState(false);
const [settings, setSettings] = useState(false);
const [theme, setTheme] = useState("light");
const themes = { dark, light };
const showLanguageChooser = () => setDisplay("language");
const loadPattern = () => {
let p = storage.get("pattern");
if (Object.keys(props.freesewing.patterns).indexOf(p) === -1)
p = props.pattern;
setPattern(p);
return p;
};
const updatePattern = p => {
setPattern(p);
store.set("pattern", p);
};
const toggleSettings = () => setSettings(!settings);
const toggleDarkMode = () => {
if (theme === "light") setTheme("dark");
else setTheme("light");
};
const raiseEvent = (type, data) => {
console.log("Event raised", type, data);
};
const navs = {
left: [
{
type: "link",
href: "https://freesewing.dev/",
text: "app.docs"
},
{
type: "link",
href: "https://gitter.im/freesewing/freesewing/",
text: "app.askForHelp"
}
],
right: [
{
type: "link",
href: "https://github.com/freesewing/freesewing",
text: "v" + props.freesewing.version
},
{
type: "button",
onClick: () => setDisplay("languages"),
text: <LanguageIcon className="nav-icon" />,
title: "Languages"
},
{
type: "button",
onClick: toggleDarkMode,
text: <DarkModeIcon className="nav-icon moon" />,
title: "Toggle dark mode"
}
]
};
let main = null;
switch (display) {
case "languages":
main = (
<LanguageChooser
setLanguage={props.setLanguage}
setDisplay={setDisplay}
/>
);
break;
default:
main = (
<Pattern
freesewing={props.freesewing}
Pattern={props.pattern}
info={props.info}
gist={props.gist}
updateGist={props.updateGist}
raiseEvent={raiseEvent}
/>
);
}
// Load defaults into gist
console.log(props.info);
//props.loadGistDefaults({options: props.info.config.options});
return (
<MuiThemeProvider theme={createMuiTheme(themes[theme])}>
<div
className={
theme === "light" ? "theme-wrapper light" : "theme-wrapper dark"
}
>
<Navbar navs={navs} />
{main}
</div>
</MuiThemeProvider>
);
};
Workbench.propTypes = {
pattern: PropTypes.oneOf(patternList),
units: PropTypes.oneOf(["metric", "imperial"]).isRequired
};
export default withLanguage(
withGist(Workbench, {
gist: defaultGist,
store: true
}),
"nl"
);

View file

@ -0,0 +1,14 @@
import React from "react";
import { storiesOf } from "@storybook/react";
import Workbench from ".";
import freesewing from "@freesewing/core";
import aaron from "@freesewing/aaron";
import { patternInfo } from "@freesewing/patterns";
const props = {
freesewing,
pattern: aaron,
info: patternInfo.aaron
};
console.log(patternInfo, props);
storiesOf("Workbench", module).add("Aaron", () => <Workbench {...props} />);

View file

@ -0,0 +1,6 @@
export { default as draftConfigurator } from "./DraftConfigurator";
export { default as Emblem } from "./Emblem";
export { default as Logo } from "./Logo";
export { default as Navbar } from "./Navbar";
export { default as Ogol } from "./Ogol";
export { default as withGist } from "./withGist";

View file

@ -1,39 +1,53 @@
import React from "react"; import React from "react";
import { storage, cloneObject } from "../.utils"; import { gistDefaults } from "@freesewing/utils";
import { storage, cloneObject } from "@freesewing/utils";
const withGist = (WrappedComponent, settings={gist:{}, store:false}) => { const withGist = (WrappedComponent, settings = { gist: {}, store: false }) => {
return class extends React.Component {
return class extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.update = this.update.bind(this); this.update = this.update.bind(this);
this.state = settings.gist || {}; this.state = { gist: settings.gist || {} };
} }
update(value, l1 = false, l2 = false, l3 = false) { update(value, l1 = false, l2 = false, l3 = false) {
console.log('update', value, l1, l2, l3, this.state);
if (!l1) return; if (!l1) return;
let gist = this.state; let gist = cloneObject(this.state.gist);
if(typeof gist === "undefined") gist = {}; if (typeof gist === "undefined") gist = {};
if(l1 && typeof gist[l1] === "undefined") gist[l1] = {}; if (l1 && typeof gist[l1] === "undefined") gist[l1] = {};
if(l2 && typeof gist[l1][l2] === "undefined") gist[l1][l2] = {}; if (l2 && typeof gist[l1][l2] === "undefined") gist[l1][l2] = {};
if(l3 && typeof gist[l1][l2][l3] === "undefined") gist[l1][l2][l3] = {}; if (l3 && typeof gist[l1][l2][l3] === "undefined") gist[l1][l2][l3] = {};
if (l3) gist[l1][l2][l3] = value; if (l3) gist[l1][l2][l3] = value;
else if (l2) gist[l1][l2] = value; else if (l2) gist[l1][l2] = value;
else if (l1) gist[l1] = value; else if (l1) gist[l1] = value;
this.setState(gist, () => { this.setState({ gist }, () => {
if (settings.store) storage.set(settings.store, this.state); if (settings.store) storage.set(settings.store, this.state.gist);
console.log(this.state);
}); });
}
getGist() {
return this.state.gist;
}
loadDefaults(defaults) {
for (let key of defaults) {
console.log(key);
}
} }
render() { render() {
return <WrappedComponent gist={{get: this.state.gist, set: this.update}} {...this.props} />; return (
<WrappedComponent
gist={this.state.gist}
updateGist={this.update}
loadGistDefaults={this.loadDefaults}
{...this.props}
/>
);
} }
}; };
} };
export default withGist; export default withGist;

View file

@ -0,0 +1,42 @@
import React from "react";
import { IntlProvider, addLocaleData } from "react-intl";
import en from "react-intl/locale-data/en";
import de from "react-intl/locale-data/de";
import es from "react-intl/locale-data/es";
import fr from "react-intl/locale-data/fr";
import nl from "react-intl/locale-data/nl";
import { strings } from "@freesewing/i18n";
import { storage } from "@freesewing/utils";
const withLanguage = (WrappedComponent, lang = "en", store = false) => {
return class extends React.Component {
constructor(props) {
super(props);
this.setLanguage = this.setLanguage.bind(this);
this.state = { language: lang };
}
setLanguage(l) {
this.setState({ language: l });
}
render() {
const localeData = { en, de, es, fr, nl };
addLocaleData(localeData[this.state.language]);
return (
<IntlProvider
locale={this.state.language}
messages={strings[this.state.language]}
>
<WrappedComponent
language={this.state.language}
setLanguage={this.setLanguage}
{...this.props}
/>
</IntlProvider>
);
}
};
};
export default withLanguage;

23
packages/core/package-lock.json generated Normal file
View file

@ -0,0 +1,23 @@
{
"name": "@freesewing/core",
"version": "0.32.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"bezier-js": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.4.0.tgz",
"integrity": "sha512-ttwqGL47RtYOoZy10oFJZ1VlEC6w1eJW1xMPBAvEx57cTWgmaJNr/c2ZLMr/O2RD50saR0OaLBIpgyZ7rkHLSw=="
},
"bin-pack": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.2.tgz",
"integrity": "sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk="
},
"hooks": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/hooks/-/hooks-0.3.2.tgz",
"integrity": "sha1-ox8GDCAmzqbPHKPrF4Qw5xjhxKM="
}
}
}

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/core", "name": "@freesewing/core",
"version": "0.33.0", "version": "0.32.4",
"description": "A library for creating made-to-measure sewing patterns", "description": "A library for creating made-to-measure sewing patterns",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -24,9 +24,9 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/core", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/core/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/core/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "BABEL_ENV=production nyc mocha tests/*.test.js", "test": "BABEL_ENV=production nyc mocha tests/*.test.js",
"pubtest": "npm publish --registry http://localhost:6662", "pubtest": "npm publish --registry http://localhost:6662",
@ -39,7 +39,7 @@
"hooks": "^0.3.2" "hooks": "^0.3.2"
}, },
"files": [ "files": [
"../../dist/packages/core/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,28 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml";
import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), resolve(),
resolve({ modulesOnly: true }),
json(), json(),
yaml(), commonjs(),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,6 +1,6 @@
{ {
"name": "create-freesewing-pattern", "name": "create-freesewing-pattern",
"version": "0.33.0", "version": "0.32.4",
"description": "Initializer package for FreeSewing patterns: npm init FreeSewing-pattern", "description": "Initializer package for FreeSewing patterns: npm init FreeSewing-pattern",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -18,14 +18,14 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/create-freesewing-pattern", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/create-freesewing-pattern/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/create-freesewing-pattern/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run mkdist && npm run copyfiles", "build": "npm run clean && npm run mkdist && npm run copyfiles",
"test": "ava -v && standard *.js lib/*.js", "test": "ava -v && standard *.js lib/*.js",
"pubtest": "npm publish --registry http://localhost:6662", "pubtest": "npm publish --registry http://localhost:6662",
"mkdist": "mkdir -p ../../dist/create-freesewing-pattern", "mkdist": "mkdir -p dist",
"copyfiles": "cp -R index.js package.json README.md lib template ../../dist/create-freesewing-pattern/" "copyfiles": "cp -R index.js package.json README.md lib template dist/"
}, },
"dependencies": { "dependencies": {
"chalk": "^2.4.2", "chalk": "^2.4.2",
@ -46,7 +46,7 @@
"which": "^1.3.1" "which": "^1.3.1"
}, },
"files": [ "files": [
"../../dist/packages/create-freesewing-pattern/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -0,0 +1,48 @@
import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json";
export default {
input: "src/index.js",
output: [
{
file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [
peerDepsExternal(),
resolve({ modulesOnly: true }),
url(),
commonjs(),
json(),
yaml(),
svgr(),
postcss({
modules: true
}),
babel({
exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"]
}),
minify({
comments: false,
sourceMap: true,
banner: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
})
]
};

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/css-theme", "name": "@freesewing/css-theme",
"version": "0.33.0", "version": "0.32.4",
"description": "A CSS theme for FreeSewing web UIs", "description": "A CSS theme for FreeSewing web UIs",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -16,22 +16,22 @@
"sass", "sass",
"theme" "theme"
], ],
"main": "dist/index.js", "main": "dist/theme.css",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/css-theme", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/css-theme/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/css-theme/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"watch": "npx node-sass --watch --output-style compressed src/theme.scss ../../dist/css-theme/theme.css", "build": "npx node-sass --output-style compressed src/theme.scss dist/theme.css",
"build": "npx node-sass --output-style compressed src/theme.scss ../../dist/css-theme/theme.css",
"test": "echo \"css-theme: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"css-theme: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662",
"watch": "npx node-sass --watch --output-style compressed src/theme.scss dist/theme.css"
}, },
"dependencies": { "dependencies": {
"open-color": "1.6.3" "open-color": "1.6.3"
}, },
"files": [ "files": [
"../../dist/packages/css-theme/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -0,0 +1,15 @@
.theme-wrapper {
margin-top: 64px;
min-height: calc(100vh - 64px);
}
.theme-wrapper.light {
background: $fc-bg-light;
color: $fc-bg-dark;
}
.theme-wrapper.dark {
background: $fc-bg-dark;
color: $fc-bg-light;
}

View file

@ -0,0 +1,2 @@
@import "layout/section-aside";

View file

@ -0,0 +1,3 @@
body {
margin: 0;
}

View file

@ -23,16 +23,16 @@ ul.nav h5 {
ul.nav h3:hover, ul.nav h3:hover,
ul.nav h4:hover { ul.nav h4:hover {
cursor: pointer; cursor: pointer;
background: $fc-hoverbg-light; background: $oc-gray-3;
} }
ul.nav h2 { font-size: 1.2rem; } ul.nav h2 { font-size: 1.2rem; margin-left: 5px;}
ul.nav h4 { font-size: 1rem; } ul.nav h4 { font-size: 1rem; }
ul.nav h5 { font-size: 1rem; padding-left: 1.5rem; font-weight: bold;} ul.nav h5 { font-size: 1rem; padding-left: 1.5rem; font-weight: bold;}
ul.nav h3 { ul.nav h3 {
font-size: 1.1rem; font-size: 1.1rem;
position: sticky; position: sticky;
top: 0; top: 0;
background: $fc-bg-light; background: $oc-gray-1;
z-index: 3; z-index: 3;
} }
ul.nav span.custom { ul.nav span.custom {
@ -75,5 +75,14 @@ button.mini-icon-btn {
padding: 2px; padding: 2px;
} }
body.dark { .theme-wrapper.dark {
ul.nav h3,
ul.nav h4 {
background: $oc-gray-8;
}
ul.nav h3:hover,
ul.nav h4:hover {
cursor: pointer;
background: $oc-gray-7;
}
} }

View file

@ -0,0 +1,35 @@
div.fs-sa {
display: flex;
section{
width: 100%;
padding: 1rem;
}
aside {
padding: 1rem 0;
max-width: 400px;
min-width: 200px;
width: 30%;
height: 100%;
min-height: calc(120vh - 64px);
background: $oc-gray-1;
border-left: 1px solid $oc-gray-3;
}
aside div.sticky {
position: sticky;
top: calc(64px + 1rem);
}
}
.theme-wrapper.dark {
div.fs-sa {
section {
background: $oc-gray-9;
}
aside {
background: $oc-gray-8;
border-color: $oc-gray-7;
}
}
}

View file

@ -1,4 +1,7 @@
@import "reset";
@import '../../../node_modules/open-color/open-color.scss'; @import '../../../node_modules/open-color/open-color.scss';
@import "variables"; @import "variables";
@import "mixins"; @import "mixins";
@import "dark";
@import "layout";
@import "components"; @import "components";

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/examples", "name": "@freesewing/examples",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern holding examples for our documentation", "description": "A FreeSewing pattern holding examples for our documentation",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -18,21 +18,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/examples", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/examples/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/examples/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"examples: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"examples: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/examples/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/florent", "name": "@freesewing/florent",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a flat cap", "description": "A FreeSewing pattern for a flat cap",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/florent", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/florent/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/florent/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"florent: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"florent: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/florent/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -3,6 +3,69 @@ import { version } from "../package.json";
export default { export default {
name: "huey", name: "huey",
version: version, version: version,
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 3,
tags: ["top", "basics"],
optionGroups: {
fit: [
"bicepsEase",
"chestEase",
"cuffEase",
"collarEase",
"ribbingStretchFactor",
"shoulderEase",
"waistEase",
"hipsEase",
"ribbingStretch"
],
style: [
"lengthBonus",
"sleeveLengthBonus",
"ribbing",
"pocket",
"ribbingWidth",
"pocketHeight",
"pocketWidth",
"hoodHeight",
"hoodCutback",
"hoodClosure",
"hoodDepth",
"hoodAngle"
],
advanced: [
"acrossBackFactor",
"armholeDepthFactor",
"backNeckCutout",
"frontArmholeDeeper",
"shoulderSlopeReduction",
"sleeveWidthGuarantee",
{
sleevecap: [
"sleevecapEase",
"sleevecapTopFactorX",
"sleevecapTopFactorY",
"sleevecapBackFactorX",
"sleevecapBackFactorY",
"sleevecapFrontFactorX",
"sleevecapFrontFactorY",
"sleevecapQ1Offset",
"sleevecapQ2Offset",
"sleevecapQ3Offset",
"sleevecapQ4Offset",
"sleevecapQ1Spread1",
"sleevecapQ1Spread2",
"sleevecapQ2Spread1",
"sleevecapQ2Spread2",
"sleevecapQ3Spread1",
"sleevecapQ3Spread2",
"sleevecapQ4Spread1",
"sleevecapQ4Spread2"
]
}
]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/huey", "name": "@freesewing/huey",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a zip-up hoodie", "description": "A FreeSewing pattern for a zip-up hoodie",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/huey", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/huey/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/huey/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"huey: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"huey: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/huey/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import Brian from "@freesewing/brian"; import Brian from "@freesewing/brian";
import config from "../config"; import config from "../config";
@ -41,3 +41,4 @@ Huey.prototype.draftWaistband = draftWaistband;
Huey.prototype.draftCuff = draftCuff; Huey.prototype.draftCuff = draftCuff;
export default Huey; export default Huey;
export { config };

View file

@ -3,6 +3,16 @@ import { version } from "../package.json";
export default { export default {
name: "hugo", name: "hugo",
version, version,
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 3,
tags: ["top", "basics"],
optionGroups: {
fit: ["bicepsEase", "chestEase", "cuffEase", "ribbingStretchFactor"],
style: ["lengthBonus", "sleeveLengthBonus", "ribbingWidth"],
advanced: ["acrossBackFactor", "backNeckCutout"]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",
@ -14,9 +24,9 @@ export default {
"hipsCircumference", "hipsCircumference",
"shoulderToWrist", "shoulderToWrist",
"wristCircumference", "wristCircumference",
"headCircumference", "headCircumference"
], ],
parts: [ "waistband", "cuff" ], parts: ["waistband", "cuff"],
dependencies: { dependencies: {
frontBase: "base", frontBase: "base",
front: "frontBase", front: "frontBase",
@ -27,7 +37,7 @@ export default {
pocket: "front", pocket: "front",
pocketFacing: "pocket", pocketFacing: "pocket",
hoodCenter: "hoodSide", hoodCenter: "hoodSide",
hoodSide: [ "front", "back" ] hoodSide: ["front", "back"]
}, },
inject: { inject: {
frontBase: "base", frontBase: "base",
@ -39,7 +49,7 @@ export default {
pocket: "front", pocket: "front",
pocketFacing: "pocket" pocketFacing: "pocket"
}, },
hide: [ "base", "frontBase", "backBase", "sleeveBase", "sleevecap" ], hide: ["base", "frontBase", "backBase", "sleeveBase", "sleevecap"],
options: { options: {
// Constants // Constants
brianFitSleeve: false, brianFitSleeve: false,
@ -69,14 +79,14 @@ export default {
sleeveWidthGuarantee: 1, sleeveWidthGuarantee: 1,
// Percentages // Percentages
acrossBackFactor: { pct: 97, min: 93, max: 100 }, acrossBackFactor: { pct: 97, min: 93, max: 100 },
backNeckCutout: { pct: 5, min: 2, max: 8 }, backNeckCutout: { pct: 5, min: 2, max: 8 },
bicepsEase: { pct: 15, min: 0, max: 50 }, bicepsEase: { pct: 15, min: 0, max: 50 },
chestEase: { pct: 8, min: -4, max: 20 }, chestEase: { pct: 8, min: -4, max: 20 },
cuffEase: { pct: 20, min: 0, max: 200 }, cuffEase: { pct: 20, min: 0, max: 200 },
lengthBonus: { pct: 10, min: 0, max: 20 }, lengthBonus: { pct: 10, min: 0, max: 20 },
sleeveLengthBonus: { pct: 0, min:-40, max: 10 }, sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
ribbingStretchFactor: { pct: 5, min: 0, max: 10 }, ribbingStretchFactor: { pct: 5, min: 0, max: 10 },
ribbingWidth: { pct: 10, min: 4, max: 20 }, ribbingWidth: { pct: 10, min: 4, max: 20 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/hugo", "name": "@freesewing/hugo",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves", "description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/hugo", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/hugo/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/hugo/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"hugo: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"hugo: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/hugo/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import Brian from "@freesewing/brian"; import Brian from "@freesewing/brian";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import config from "../config"; import config from "../config";
@ -43,3 +43,4 @@ Hugo.prototype.draftWaistband = draftWaistband;
Hugo.prototype.draftCuff = draftCuff; Hugo.prototype.draftCuff = draftCuff;
export default Hugo; export default Hugo;
export { config };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/i18n", "name": "@freesewing/i18n",
"version": "0.33.0", "version": "0.32.4",
"description": "Translations for the FreeSewing project", "description": "Translations for the FreeSewing project",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -20,9 +20,9 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/i18n", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/i18n/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/i18n/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"i18n: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"i18n: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
@ -31,7 +31,7 @@
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/i18n/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -11,6 +11,7 @@ allDocumentation: Alle dokumentationen
andThatIsAwesome: Und das ist großartig andThatIsAwesome: Und das ist großartig
applyThisLayout: Wenden Sie dieses Layout an applyThisLayout: Wenden Sie dieses Layout an
areYouSureYouWantToContinue: Sind Sie sicher, dass Sie fortfahren möchten? areYouSureYouWantToContinue: Sind Sie sicher, dass Sie fortfahren möchten?
askForHelp: Bitten Sie um Hilfe
automatic: Automatisch automatic: Automatisch
back: Zurück back: Zurück
becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre. becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre.
@ -180,6 +181,7 @@ startOver: Von vorn anfangen
startTranslatingNow: Beginne jetzt mit dem Übersetzen startTranslatingNow: Beginne jetzt mit dem Übersetzen
startTranslatingNowOrRead: '{startTranslatingNow}, oder lies zuerst die {documentationForTranslators}.' startTranslatingNowOrRead: '{startTranslatingNow}, oder lies zuerst die {documentationForTranslators}.'
subscribe: Abonnieren subscribe: Abonnieren
support: Unterstützung
supportFreesewing: Unterstützung freesewing supportFreesewing: Unterstützung freesewing
tellMeMore: Erzähl mir mehr tellMeMore: Erzähl mir mehr
thanksForYourSupport: Danke für deine Unterstützung thanksForYourSupport: Danke für deine Unterstützung

View file

@ -11,6 +11,7 @@ allDocumentation: All documentation
andThatIsAwesome: And that is awesome andThatIsAwesome: And that is awesome
applyThisLayout: Apply this layout applyThisLayout: Apply this layout
areYouSureYouWantToContinue: Are you sure you want to continue? areYouSureYouWantToContinue: Are you sure you want to continue?
askForHelp: Ask for help
automatic: Automatic automatic: Automatic
back: Back back: Back
becauseThatWouldBeReallyHelpful: Because that would be really helpful. becauseThatWouldBeReallyHelpful: Because that would be really helpful.
@ -180,6 +181,7 @@ startOver: Start over
startTranslatingNowOrRead: '{startTranslatingNow}, or read the {documentationForTranslators} first.' startTranslatingNowOrRead: '{startTranslatingNow}, or read the {documentationForTranslators} first.'
startTranslatingNow: Start translating now startTranslatingNow: Start translating now
subscribe: Subscribe subscribe: Subscribe
support: Support
supportFreesewing: Support freesewing supportFreesewing: Support freesewing
tellMeMore: Tell me more tellMeMore: Tell me more
thanksForYourSupport: Thanks for your support thanksForYourSupport: Thanks for your support

View file

@ -11,6 +11,7 @@ allDocumentation: Toda la documentación
andThatIsAwesome: Y eso es genial andThatIsAwesome: Y eso es genial
applyThisLayout: Aplicar este diseño applyThisLayout: Aplicar este diseño
areYouSureYouWantToContinue: Estás seguro de que quieres continuar? areYouSureYouWantToContinue: Estás seguro de que quieres continuar?
askForHelp: Pedir ayuda
automatic: Automático automatic: Automático
back: atras back: atras
becauseThatWouldBeReallyHelpful: Porque eso sería realmente útil. becauseThatWouldBeReallyHelpful: Porque eso sería realmente útil.
@ -180,6 +181,7 @@ startOver: Comenzar de nuevo
startTranslatingNow: Empezar a traducir ahora startTranslatingNow: Empezar a traducir ahora
startTranslatingNowOrRead: '{startTranslatingNow}, o lea primero la {documentationForTranslators}.' startTranslatingNowOrRead: '{startTranslatingNow}, o lea primero la {documentationForTranslators}.'
subscribe: Suscribir subscribe: Suscribir
support: Apoyo
supportFreesewing: Apoyo de freesewing supportFreesewing: Apoyo de freesewing
tellMeMore: Dime más tellMeMore: Dime más
thanksForYourSupport: Gracias por su apoyo thanksForYourSupport: Gracias por su apoyo

View file

@ -11,6 +11,7 @@ allDocumentation: Toute la documentation
andThatIsAwesome: Et c'est génial andThatIsAwesome: Et c'est génial
applyThisLayout: Appliquer cette mise en page applyThisLayout: Appliquer cette mise en page
areYouSureYouWantToContinue: Es-tu sur de vouloir continuer? areYouSureYouWantToContinue: Es-tu sur de vouloir continuer?
askForHelp: Demander de l'aide
automatic: Automatique automatic: Automatique
back: Retour back: Retour
becauseThatWouldBeReallyHelpful: Parce que ce serait vraiment utile. becauseThatWouldBeReallyHelpful: Parce que ce serait vraiment utile.
@ -180,6 +181,7 @@ startOver: Recommencer
startTranslatingNow: Commencez à traduire maintenant startTranslatingNow: Commencez à traduire maintenant
startTranslatingNowOrRead: "{startTranslatingNow}, ou lisez d'abord la {documentationForTranslators}." startTranslatingNowOrRead: "{startTranslatingNow}, ou lisez d'abord la {documentationForTranslators}."
subscribe: Souscrire subscribe: Souscrire
support: Soutien
supportFreesewing: Soutenir freesewing supportFreesewing: Soutenir freesewing
tellMeMore: En savoir plus tellMeMore: En savoir plus
thanksForYourSupport: Merci pour votre soutien thanksForYourSupport: Merci pour votre soutien

View file

@ -11,6 +11,7 @@ allDocumentation: Alle documentatie
andThatIsAwesome: En dat is geweldig andThatIsAwesome: En dat is geweldig
applyThisLayout: Pas deze layout toe applyThisLayout: Pas deze layout toe
areYouSureYouWantToContinue: Weet je zeker dat je door wilt gaan? areYouSureYouWantToContinue: Weet je zeker dat je door wilt gaan?
askForHelp: Vraag om hulp
automatic: Automatisch automatic: Automatisch
back: Terug back: Terug
becauseThatWouldBeReallyHelpful: Want dat zou ons echt vooruit helpen. becauseThatWouldBeReallyHelpful: Want dat zou ons echt vooruit helpen.
@ -180,6 +181,7 @@ startOver: Begin opnieuw
startTranslatingNow: Begin meteen te vertalen startTranslatingNow: Begin meteen te vertalen
startTranslatingNowOrRead: '{startTranslatingNow}, of lees eerst de {documentationForTranslators}.' startTranslatingNowOrRead: '{startTranslatingNow}, of lees eerst de {documentationForTranslators}.'
subscribe: Abonneren subscribe: Abonneren
support: Ondersteuning
supportFreesewing: Ondersteun freesewing supportFreesewing: Ondersteun freesewing
tellMeMore: Vertel me meer tellMeMore: Vertel me meer
thanksForYourSupport: Bedankt voor je steun thanksForYourSupport: Bedankt voor je steun

View file

@ -3,6 +3,82 @@ import { version } from "../package.json";
export default { export default {
name: "jaeger", name: "jaeger",
version: version, version: version,
design: "Joost De Cock",
code: "Joost De Cock",
department: "menswear",
type: "pattern",
difficulty: 5,
tags: ["top", "jacket"],
optionGroups: {
fit: [
"acrossBackFactor",
"armholeDepthFactor",
"bicepsEase",
"centerBackDart",
"chestEase",
"collarEase",
"cuffEase",
"hipsEase",
"lengthBonus",
"shoulderEase",
"waistEase"
],
sleeves: [
"sleeveBend",
"sleeveLengthBonus",
"sleeveVentLength",
"sleeveVentWidth"
],
advanced: [
"backNeckCutout",
"chestShaping",
"frontArmholeDeeper",
"frontDartPlacement",
"frontOverlap",
"sideFrontPlacement",
"shoulderSlopeReduction",
"sleevecapHeight",
"sleevecapEase"
],
pockets: [
"chestPocketDepth",
"chestPocketWidth",
"chestPocketPlacement",
"chestPocketAngle",
"chestPocketWeltSize",
"frontPocketPlacement",
"frontPocketWidth",
"frontPocketDepth",
"frontPocketRadius",
"innerPocketPlacement",
"innerPocketWidth",
"innerPocketDepth",
"innerPocketWeltHeight",
"pocketFoldover"
],
style: [
"centerFrontHemDrop",
"backVent",
"backVentLength",
"buttonLength",
"buttons",
"frontCutawayAngle",
"frontCutawayStart",
"frontCutawayEnd",
"hemRadius",
"lapelStart",
"lapelReduction"
],
collar: [
"collarSpread",
"collarHeight",
"collarNotchDepth",
"collarNotchAngle",
"collarNotchReturn",
"collarRoll",
"rollLineCollarHeight"
]
},
measurements: [ measurements: [
"bicepsCircumference", "bicepsCircumference",
"centerBackNeckToWaist", "centerBackNeckToWaist",
@ -37,7 +113,7 @@ export default {
innerPocketWelt: "front", innerPocketWelt: "front",
innerPocketBag: "front", innerPocketBag: "front",
topSleeve: "bentTopSleeve", topSleeve: "bentTopSleeve",
underSleeve: "bentUnderSleeve", underSleeve: "bentUnderSleeve"
}, },
inject: { inject: {
bentBack: "bentBase", bentBack: "bentBase",
@ -54,7 +130,7 @@ export default {
underCollar: "collarStand", underCollar: "collarStand",
topSleeve: "bentTopSleeve", topSleeve: "bentTopSleeve",
underSleeve: "bentUnderSleeve", underSleeve: "bentUnderSleeve",
pocketLining: "pocket", pocketLining: "pocket"
}, },
hide: [ hide: [
"bentBase", "bentBase",
@ -89,33 +165,32 @@ export default {
reduceHipsStandardFraction: 0.1, reduceHipsStandardFraction: 0.1,
// Options inherited from Bent // Options inherited from Bent
acrossBackFactor: { pct: 97, min: 93, max: 100 }, acrossBackFactor: { pct: 97, min: 93, max: 100 },
armholeDepthFactor: { pct: 65, min: 50, max: 70 }, armholeDepthFactor: { pct: 65, min: 50, max: 70 },
backNeckCutout: { pct: 5, min: 2, max: 8 }, backNeckCutout: { pct: 5, min: 2, max: 8 },
bicepsEase: { pct: 20, min: 0, max: 50 }, bicepsEase: { pct: 20, min: 0, max: 50 },
chestEase: { pct: 10, min: 5, max: 20 }, chestEase: { pct: 10, min: 5, max: 20 },
collarEase: { pct: 3.5, min: 0, max: 10 }, collarEase: { pct: 3.5, min: 0, max: 10 },
cuffEase: { pct: 60, min: 30, max: 100 }, cuffEase: { pct: 60, min: 30, max: 100 },
frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 }, frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 },
lengthBonus: { pct: 19, min: 0, max: 25 }, lengthBonus: { pct: 19, min: 0, max: 25 },
shoulderEase: { pct: 0, min: -2, max: 6 }, shoulderEase: { pct: 0, min: -2, max: 6 },
sleeveBend: { deg: 10, min: 0, max: 20 }, sleeveBend: { deg: 10, min: 0, max: 20 },
sleevecapHeight: {pct: 45, min: 40, max: 60 }, sleevecapHeight: { pct: 45, min: 40, max: 60 },
sleevecapEase: { pct: 1, min: 0, max: 10 }, sleevecapEase: { pct: 1, min: 0, max: 10 },
sleeveLengthBonus: { pct: 0, min:-40, max: 10 }, sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
// Jaeger options // Jaeger options
frontOverlap: { pct: 1.5, min: 1, max: 2}, frontOverlap: { pct: 1.5, min: 1, max: 2 },
sleeveVentLength: { pct: 35, min: 25, max: 55 }, sleeveVentLength: { pct: 35, min: 25, max: 55 },
sleeveVentWidth: { pct: 18, min: 10, max: 26 }, sleeveVentWidth: { pct: 18, min: 10, max: 26 },
innerPocketPlacement: {pct: 52, min: 42, max: 62 }, innerPocketPlacement: { pct: 52, min: 42, max: 62 },
innerPocketWidth: { pct: 50, min: 45, max: 65 }, innerPocketWidth: { pct: 50, min: 45, max: 65 },
innerPocketDepth: { pct: 110, min: 75, max: 140 }, innerPocketDepth: { pct: 110, min: 75, max: 140 },
innerPocketWeltHeight: { pct: 3.5, min: 2.5, max: 5 }, innerPocketWeltHeight: { pct: 3.5, min: 2.5, max: 5 },
pocketFoldover: { pct: 25, min: 15, max: 35 }, pocketFoldover: { pct: 25, min: 15, max: 35 },
waistEase: { pct: 14, min: 8, max: 25 }, waistEase: { pct: 14, min: 8, max: 25 },
@ -128,14 +203,14 @@ export default {
backVent: { count: 1, min: 0, max: 2 }, backVent: { count: 1, min: 0, max: 2 },
backVentLength: { pct: 35, min: 15, max: 100 }, backVentLength: { pct: 35, min: 15, max: 100 },
frontCutawayAngle: {deg: 2.5, min: 1, max: 4}, frontCutawayAngle: { deg: 2.5, min: 1, max: 4 },
frontCutawayStart: {pct: 30, min: 10, max: 70 }, frontCutawayStart: { pct: 30, min: 10, max: 70 },
frontCutawayEnd: {pct: 40, min: 10, max: 40 }, frontCutawayEnd: { pct: 40, min: 10, max: 40 },
hemRadius: {pct: 100, min: 35, max: 100 }, hemRadius: { pct: 100, min: 35, max: 100 },
chestPocketDepth: { pct: 110, min: 70, max: 150 }, chestPocketDepth: { pct: 110, min: 70, max: 150 },
chestPocketWidth: { pct: 37, min: 30, max: 45 }, chestPocketWidth: { pct: 37, min: 30, max: 45 },
chestPocketPlacement: {pct: 52, min: 40, max: 60 }, chestPocketPlacement: { pct: 52, min: 40, max: 60 },
chestPocketAngle: { deg: 2.5, min: 0, max: 7 }, chestPocketAngle: { deg: 2.5, min: 0, max: 7 },
chestPocketWeltSize: { pct: 17.5, min: 10, max: 25 }, chestPocketWeltSize: { pct: 17.5, min: 10, max: 25 },
@ -151,7 +226,7 @@ export default {
collarNotchDepth: { pct: 15, min: 15, max: 50 }, collarNotchDepth: { pct: 15, min: 15, max: 50 },
collarNotchAngle: { deg: 45, min: 30, max: 60 }, collarNotchAngle: { deg: 45, min: 30, max: 60 },
collarNotchReturn: { pct: 100, min: 50, max: 100 }, collarNotchReturn: { pct: 100, min: 50, max: 100 },
collarRoll: {mm: 2.5, min: 0, max: 5 }, collarRoll: { mm: 2.5, min: 0, max: 5 },
frontDartPlacement: { pct: 55, min: 45, max: 60 }, frontDartPlacement: { pct: 55, min: 45, max: 60 },
sideFrontPlacement: { pct: 85, min: 80, max: 90 }, sideFrontPlacement: { pct: 85, min: 80, max: 90 },
@ -161,6 +236,6 @@ export default {
shoulderSlopeReduction: { pct: 2, min: 0, max: 5 }, shoulderSlopeReduction: { pct: 2, min: 0, max: 5 },
buttonLength: { pct: 30, min: 30, max: 60 }, buttonLength: { pct: 30, min: 30, max: 60 },
buttons: { count: 2, min: 1, max: 3 }, buttons: { count: 2, min: 1, max: 3 }
} }
}; };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/jaeger", "name": "@freesewing/jaeger",
"version": "0.33.0", "version": "0.32.4",
"description": "A FreeSewing pattern for a sport coat style jacket", "description": "A FreeSewing pattern for a sport coat style jacket",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,21 +23,21 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/jaeger", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/jaeger/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/jaeger/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"jaeger: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"jaeger: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"peerDependencies": { "peerDependencies": {
"@freesewing/core": "^0.33.0", "@freesewing/core": "^0.32.4",
"@freesewing/plugin-bundle": "^0.33.0" "@freesewing/plugin-bundle": "^0.32.4"
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/jaeger/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,4 +1,4 @@
import freesewing from "freesewing"; import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle"; import plugins from "@freesewing/plugin-bundle";
import buttons from "@freesewing/plugin-buttons"; import buttons from "@freesewing/plugin-buttons";
import Bent from "@freesewing/bent"; import Bent from "@freesewing/bent";
@ -22,10 +22,7 @@ import draftTopSleeve from "./topsleeve";
import draftUnderSleeve from "./undersleeve"; import draftUnderSleeve from "./undersleeve";
// Create new design // Create new design
const Jaeger = new freesewing.Design(config, [ const Jaeger = new freesewing.Design(config, [plugins, buttons]);
plugins,
buttons
]);
// Attach draft methods from Bent to prototype // Attach draft methods from Bent to prototype
Jaeger.prototype.draftBentBase = function(part) { Jaeger.prototype.draftBentBase = function(part) {
@ -33,7 +30,7 @@ Jaeger.prototype.draftBentBase = function(part) {
}; };
Jaeger.prototype.draftBentFront = function(part) { Jaeger.prototype.draftBentFront = function(part) {
return new Bent(this.settings).draftFront(part); return new Bent(this.settings).draftFront(part);
} };
Jaeger.prototype.draftBentBack = function(part) { Jaeger.prototype.draftBentBack = function(part) {
return new Bent(this.settings).draftBack(part); return new Bent(this.settings).draftBack(part);
}; };
@ -66,3 +63,4 @@ Jaeger.prototype.draftTopSleeve = draftTopSleeve;
Jaeger.prototype.draftUnderSleeve = draftUnderSleeve; Jaeger.prototype.draftUnderSleeve = draftUnderSleeve;
export default Jaeger; export default Jaeger;
export { config };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/models", "name": "@freesewing/models",
"version": "0.33.0", "version": "0.32.4",
"description": "Body measurements data for a range of default sizes", "description": "Body measurements data for a range of default sizes",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -20,9 +20,9 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/models", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/models/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/models/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"models: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"models: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
@ -31,7 +31,7 @@
"dependencies": {}, "dependencies": {},
"devDependencies": {}, "devDependencies": {},
"files": [ "files": [
"../../dist/packages/models/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/mui-theme", "name": "@freesewing/mui-theme",
"version": "0.33.0", "version": "0.32.4",
"description": "A Material-UI theme for FreeSewing web UIs", "description": "A Material-UI theme for FreeSewing web UIs",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -18,9 +18,9 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/mui-theme", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/mui-theme/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/mui-theme/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"mui-theme: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"mui-theme: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
@ -31,7 +31,7 @@
"react-dom": "^16.3.0" "react-dom": "^16.3.0"
}, },
"files": [ "files": [
"../../dist/packages/mui-theme/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

View file

@ -1,21 +1,40 @@
import babel from "rollup-plugin-babel"; import babel from "rollup-plugin-babel";
import resolve from "rollup-plugin-node-resolve"; import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json"; import json from "rollup-plugin-json";
import minify from "rollup-plugin-babel-minify"; import minify from "rollup-plugin-babel-minify";
import yaml from "rollup-plugin-yaml"; import yaml from "rollup-plugin-yaml";
import url from "rollup-plugin-url";
import postcss from "rollup-plugin-postcss";
import svgr from "@svgr/rollup";
import peerDepsExternal from "rollup-plugin-peer-deps-external"; import peerDepsExternal from "rollup-plugin-peer-deps-external";
import { name, version, description, author, license } from "./package.json"; import { name, version, description, author, license } from "./package.json";
export default { export default {
input: "src/index.js", input: "src/index.js",
output: { output: [
sourcemap: true {
}, file: "dist/index.js",
format: "cjs",
sourcemap: true
},
{
file: "dist/index.mjs",
format: "es",
sourcemap: true
}
],
plugins: [ plugins: [
peerDepsExternal(), peerDepsExternal(),
resolve({ modulesOnly: true }), resolve({ modulesOnly: true }),
url(),
commonjs(),
json(), json(),
yaml(), yaml(),
svgr(),
postcss({
modules: true
}),
babel({ babel({
exclude: "node_modules/**", exclude: "node_modules/**",
plugins: ["@babel/plugin-proposal-object-rest-spread"] plugins: ["@babel/plugin-proposal-object-rest-spread"]

View file

@ -23,14 +23,22 @@ const palettes = {
dark: { dark: {
primary: { main: lightBg }, primary: { main: lightBg },
secondary: { main: darkBg }, secondary: { main: darkBg },
type: "dark" type: "dark",
background: {
paper: "#212529",
default: "#343a40"
}
}, },
light: { light: {
primary: { main: darkBg }, primary: { main: darkBg },
secondary: { main: lightBg }, secondary: { main: lightBg },
type: "light" type: "light",
background: {
paper: "#FFF",
default: "#f8f9fa"
}
} }
}; };
export const dark = { ...theme, palette: palettes.dark, themeName: "Dark" }; export const dark = { ...theme, palette: palettes.dark, themeName: "Dark" };
export const light = { ...theme, palette: palettes.dark, themeName: "Light" }; export const light = { ...theme, palette: palettes.light, themeName: "Light" };

View file

@ -1,6 +1,6 @@
{ {
"name": "@freesewing/patterns", "name": "@freesewing/patterns",
"version": "0.33.0", "version": "0.32.4",
"description": "An umbrella package for all FreeSewing patterns", "description": "An umbrella package for all FreeSewing patterns",
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)", "author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/", "homepage": "https://freesewing.org/",
@ -23,34 +23,34 @@
"main": "dist/index.js", "main": "dist/index.js",
"module": "dist/index.mjs", "module": "dist/index.mjs",
"scripts": { "scripts": {
"clean": "rimraf ../../dist/patterns", "clean": "rimraf dist",
"nodebuild": "BABEL_ENV=production rollup -c -o ../../dist/patterns/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"modulebuild": "BABEL_ENV=production rollup -c -o ../../dist/patterns/index.mjs -f es", "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
"build": "npm run clean && npm run nodebuild && npm run modulebuild", "build": "npm run clean && npm run nodebuild && npm run modulebuild",
"test": "echo \"patterns: No tests configured. Perhaps you'd like to do this?\" && exit 0", "test": "echo \"patterns: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662" "pubtest": "npm publish --registry http://localhost:6662"
}, },
"dependencies": { "dependencies": {
"@freesewing/aaron": "^0.33.0", "@freesewing/aaron": "^0.32.4",
"@freesewing/bent": "^0.33.0", "@freesewing/bent": "^0.32.4",
"@freesewing/brian": "^0.33.0", "@freesewing/brian": "^0.32.4",
"@freesewing/bruce": "^0.33.0", "@freesewing/bruce": "^0.32.4",
"@freesewing/carlita": "^0.33.0", "@freesewing/carlita": "^0.32.4",
"@freesewing/carlton": "^0.33.0", "@freesewing/carlton": "^0.32.4",
"@freesewing/cathrin": "^0.33.0", "@freesewing/cathrin": "^0.32.4",
"@freesewing/florent": "^0.33.0", "@freesewing/florent": "^0.32.4",
"@freesewing/huey": "^0.33.0", "@freesewing/huey": "^0.32.4",
"@freesewing/hugo": "^0.33.0", "@freesewing/hugo": "^0.32.4",
"@freesewing/jaeger": "0.2.1", "@freesewing/jaeger": "0.2.1",
"@freesewing/shin": "^0.33.0", "@freesewing/shin": "^0.32.4",
"@freesewing/simon": "^0.33.0", "@freesewing/simon": "^0.32.4",
"@freesewing/sven": "^0.33.0", "@freesewing/sven": "^0.32.4",
"@freesewing/tamiko": "^0.33.0", "@freesewing/tamiko": "^0.32.4",
"@freesewing/trayvon": "^0.33.0", "@freesewing/trayvon": "^0.32.4",
"@freesewing/wahid": "^0.33.0" "@freesewing/wahid": "^0.32.4"
}, },
"files": [ "files": [
"../../dist/packages/patterns/*", "dist/*",
"README.md", "README.md",
"package.json" "package.json"
], ],

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