diff --git a/config/dependencies.yaml b/config/dependencies.yaml
index 8c667a9c070..121cbbaab63 100644
--- a/config/dependencies.yaml
+++ b/config/dependencies.yaml
@@ -32,6 +32,7 @@ components:
"@freesewing/pattern-info": "^{{version}}"
"@freesewing/mui-theme": "^{{version}}"
"@freesewing/css-theme": "^{{version}}"
+ "@freesewing/plugin-react": "^{{version}}"
"typeface-roboto-condensed": "latest"
"@freesewing/i18n": "^{{version}}"
"@freesewing/utils": "^{{version}}"
diff --git a/config/descriptions.yaml b/config/descriptions.yaml
index 4a015f28a06..01cff028e2c 100644
--- a/config/descriptions.yaml
+++ b/config/descriptions.yaml
@@ -31,6 +31,7 @@ plugin-flip: "A FreeSewing plugin to flip parts horizontally"
plugin-grainline: "A FreeSewing plugin to add grainline indicators on your patterns"
plugin-i18n: "A FreeSewing plugin for pattern translation"
plugin-logo: "A FreeSewing plugin to add our logo to your patterns"
+plugin-react: "A FreeSewing plugin to turn your pattern into a React component"
plugin-round: "A FreeSewing plugin to round corners"
plugin-scalebox: "A FreeSewing plugin to add a scalebox to your pattern"
plugin-sprinkle: "A FreeSewing plugin to bulk-add snippets to your pattern"
diff --git a/packages/aaron/package.json b/packages/aaron/package.json
index 9a614f08b82..4bf13bbd4d8 100644
--- a/packages/aaron/package.json
+++ b/packages/aaron/package.json
@@ -33,9 +33,9 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/brian": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/brian": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/bent/package.json b/packages/bent/package.json
index 3ecbef111f4..8cd98297245 100644
--- a/packages/bent/package.json
+++ b/packages/bent/package.json
@@ -33,9 +33,9 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/brian": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/brian": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/brian/package.json b/packages/brian/package.json
index 36e0327d6a1..133d2f00455 100644
--- a/packages/brian/package.json
+++ b/packages/brian/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/bruce/package.json b/packages/bruce/package.json
index 36caca6dcff..8558de175c7 100644
--- a/packages/bruce/package.json
+++ b/packages/bruce/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/carlita/package.json b/packages/carlita/package.json
index e130595a011..e5e9d802ce0 100644
--- a/packages/carlita/package.json
+++ b/packages/carlita/package.json
@@ -33,12 +33,12 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/bent": "^2.0.0-alpha.17",
- "@freesewing/carlton": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17",
- "@freesewing/plugin-bust": "^2.0.0-alpha.17",
- "@freesewing/plugin-buttons": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/bent": "^2.0.0-alpha.18",
+ "@freesewing/carlton": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bust": "^2.0.0-alpha.18",
+ "@freesewing/plugin-buttons": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/carlton/package.json b/packages/carlton/package.json
index 311e3a5a5cf..c28feaf942b 100644
--- a/packages/carlton/package.json
+++ b/packages/carlton/package.json
@@ -33,10 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/bent": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17",
- "@freesewing/plugin-buttons": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/bent": "^2.0.0-alpha.18",
+ "@freesewing/plugin-buttons": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/cathrin/package.json b/packages/cathrin/package.json
index f27bfcdcbd1..1e99d934cda 100644
--- a/packages/cathrin/package.json
+++ b/packages/cathrin/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/components/package.json b/packages/components/package.json
index 0fac1ef1b8f..b9a9ca2b447 100644
--- a/packages/components/package.json
+++ b/packages/components/package.json
@@ -16,28 +16,29 @@
"main": "dist/index.js",
"scripts": {
"clean": "rimraf dist",
- "watch": "BABEL_ENV=production rollup -c -w -o dist/index.js -f cjs",
"nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
"build": "npm run clean && npm run nodebuild",
"test": "echo \"components: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662",
"pubforce": "npm publish",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
- "storybook": "start-storybook -p 6663"
+ "storybook": "start-storybook -p 6663",
+ "watch": "BABEL_ENV=production rollup -c -w -o dist/index.js -f cjs"
},
"peerDependencies": {
- "@freesewing/css-theme": "^2.0.0-alpha.17",
- "@freesewing/i18n": "^2.0.0-alpha.17",
- "@freesewing/mui-theme": "^2.0.0-alpha.17",
- "@freesewing/pattern-info": "^2.0.0-alpha.17",
- "@freesewing/utils": "^2.0.0-alpha.17",
+ "react": "^16.8",
+ "prop-types": "15.7.2",
+ "@freesewing/pattern-info": "^2.0.0-alpha.18",
+ "@freesewing/mui-theme": "^2.0.0-alpha.18",
+ "@freesewing/css-theme": "^2.0.0-alpha.18",
+ "@freesewing/plugin-react": "^2.0.0-alpha.18",
+ "typeface-roboto-condensed": "latest",
+ "@freesewing/i18n": "^2.0.0-alpha.18",
+ "@freesewing/utils": "^2.0.0-alpha.18",
+ "react-intl": "^2.8.0",
"@material-ui/core": "^3.9.3",
"@material-ui/icons": "^3.0.2",
- "@material-ui/lab": "^3.0.0-alpha.30",
- "prop-types": "15.7.2",
- "react": "^16.8",
- "react-intl": "^2.8.0",
- "typeface-roboto-condensed": "latest"
+ "@material-ui/lab": "^3.0.0-alpha.30"
},
"files": [
"dist/*",
diff --git a/packages/components/src/Workbench/DraftPattern/index.js b/packages/components/src/Workbench/DraftPattern/index.js
index d4fed3c059d..69b2014ba0a 100644
--- a/packages/components/src/Workbench/DraftPattern/index.js
+++ b/packages/components/src/Workbench/DraftPattern/index.js
@@ -6,7 +6,7 @@ import themePlugin from "@freesewing/plugin-theme";
import svgattrPlugin from "@freesewing/plugin-svgattr";
import i18nPlugin from "@freesewing/plugin-i18n";
import validatePlugin from "@freesewing/plugin-validate";
-import designerPlugin from "@freesewing/plugin-designer";
+import reactPlugin from "@freesewing/plugin-react";
import { strings } from "@freesewing/i18n";
import { FormattedMessage } from "react-intl";
@@ -16,9 +16,8 @@ const DraftPattern = props => {
.use(svgattrPlugin, { class: "freesewing draft" })
.use(i18nPlugin, { strings: strings })
.use(validatePlugin)
- .use(designerPlugin, props.raiseEvent);
+ .use(reactPlugin);
pattern.draft();
- console.dir({ pattern });
return (
diff --git a/packages/create-freesewing-pattern/package.json b/packages/create-freesewing-pattern/package.json
index 923b5c19585..39f951e3bfe 100644
--- a/packages/create-freesewing-pattern/package.json
+++ b/packages/create-freesewing-pattern/package.json
@@ -23,8 +23,6 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"dependencies": {
- "@freesewing/i18n": "^2.0.0-alpha.18",
- "@freesewing/pattern-info": "^2.0.0-alpha.18",
"chalk": "^2.4.2",
"commander": "^2.19.0",
"conf": "^2.2.0",
@@ -40,7 +38,9 @@
"p-each-series": "^1.0.0",
"parse-git-config": "^3.0.0",
"validate-npm-package-name": "^3.0.0",
- "which": "^1.3.1"
+ "which": "^1.3.1",
+ "@freesewing/i18n": "^2.0.0-alpha.18",
+ "@freesewing/pattern-info": "^2.0.0-alpha.18"
},
"files": [
"lib",
diff --git a/packages/create-freesewing-pattern/template/default/example/package.json b/packages/create-freesewing-pattern/template/default/example/package.json
index 7271117228b..d91893a64c1 100644
--- a/packages/create-freesewing-pattern/template/default/example/package.json
+++ b/packages/create-freesewing-pattern/template/default/example/package.json
@@ -14,6 +14,7 @@
"@freesewing/plugin-svgattr": "alpha",
"@freesewing/plugin-i18n": "alpha",
"@freesewing/plugin-validate": "alpha",
+ "@freesewing/plugin-react": "alpha",
"@freesewing/i18n": "alpha",
"@freesewing/components": "alpha",
"@freesewing/css-theme": "alpha",
diff --git a/packages/examples/package.json b/packages/examples/package.json
index 588648340a0..a4786d96101 100644
--- a/packages/examples/package.json
+++ b/packages/examples/package.json
@@ -28,9 +28,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/florent/package.json b/packages/florent/package.json
index 06fcbcf24d7..a22d4fcef36 100644
--- a/packages/florent/package.json
+++ b/packages/florent/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/huey/package.json b/packages/huey/package.json
index 7fb628586c6..a1a80a0f419 100644
--- a/packages/huey/package.json
+++ b/packages/huey/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/hugo/package.json b/packages/hugo/package.json
index bdb11dd8825..881377efc16 100644
--- a/packages/hugo/package.json
+++ b/packages/hugo/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/i18n/package.json b/packages/i18n/package.json
index ed3588d72b1..96af6cde8d0 100644
--- a/packages/i18n/package.json
+++ b/packages/i18n/package.json
@@ -28,7 +28,7 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/pattern-info": "^2.0.0-alpha.17"
+ "@freesewing/pattern-info": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/jaeger/package.json b/packages/jaeger/package.json
index ed7676a3448..0935565f553 100644
--- a/packages/jaeger/package.json
+++ b/packages/jaeger/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/models/package.json b/packages/models/package.json
index 1a25423f506..89745392af3 100644
--- a/packages/models/package.json
+++ b/packages/models/package.json
@@ -29,6 +29,9 @@
"pubforce": "npm publish",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
+ "peerDependencies": {},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/pattern-info/package.json b/packages/pattern-info/package.json
index e30a3838655..2de11c616c4 100644
--- a/packages/pattern-info/package.json
+++ b/packages/pattern-info/package.json
@@ -31,6 +31,9 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
"prebuild": "node src/prebuild.js"
},
+ "peerDependencies": {},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/patterns/package.json b/packages/patterns/package.json
index 54717f70951..cd082295181 100644
--- a/packages/patterns/package.json
+++ b/packages/patterns/package.json
@@ -33,8 +33,8 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
"dependencies": {
"@freesewing/aaron": "^2.0.0-alpha.18",
diff --git a/packages/plugin-banner/package.json b/packages/plugin-banner/package.json
index a12239830be..8080bac2e85 100644
--- a/packages/plugin-banner/package.json
+++ b/packages/plugin-banner/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-bundle/package.json b/packages/plugin-bundle/package.json
index a212b5d61f3..d1757a95eae 100644
--- a/packages/plugin-bundle/package.json
+++ b/packages/plugin-bundle/package.json
@@ -34,8 +34,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-bust/package.json b/packages/plugin-bust/package.json
index 1e6778a06e5..685e68d4cc7 100644
--- a/packages/plugin-bust/package.json
+++ b/packages/plugin-bust/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-buttons/package.json b/packages/plugin-buttons/package.json
index 47fdf69220f..124b7fc3793 100644
--- a/packages/plugin-buttons/package.json
+++ b/packages/plugin-buttons/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-cutonfold/package.json b/packages/plugin-cutonfold/package.json
index c31cc3bde6f..7c4ea7250a0 100644
--- a/packages/plugin-cutonfold/package.json
+++ b/packages/plugin-cutonfold/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-debug/package.json b/packages/plugin-debug/package.json
index 4b8c31e3273..9c8372064dd 100644
--- a/packages/plugin-debug/package.json
+++ b/packages/plugin-debug/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-designer/package.json b/packages/plugin-designer/package.json
index 35c69fdbbd5..0612ee735ca 100644
--- a/packages/plugin-designer/package.json
+++ b/packages/plugin-designer/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-dimension/package.json b/packages/plugin-dimension/package.json
index 0e1370a89bc..154f7e25827 100644
--- a/packages/plugin-dimension/package.json
+++ b/packages/plugin-dimension/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-flip/package.json b/packages/plugin-flip/package.json
index 9c764dc1786..6b93c6a599e 100644
--- a/packages/plugin-flip/package.json
+++ b/packages/plugin-flip/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-grainline/package.json b/packages/plugin-grainline/package.json
index b8e4dba094e..747cfda095d 100644
--- a/packages/plugin-grainline/package.json
+++ b/packages/plugin-grainline/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-i18n/package.json b/packages/plugin-i18n/package.json
index 48695615521..62c9f3b4daf 100644
--- a/packages/plugin-i18n/package.json
+++ b/packages/plugin-i18n/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-logo/package.json b/packages/plugin-logo/package.json
index 700c3b8cea0..5ea4b144256 100644
--- a/packages/plugin-logo/package.json
+++ b/packages/plugin-logo/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-react/.babelrc b/packages/plugin-react/.babelrc
new file mode 100644
index 00000000000..957cae3e64d
--- /dev/null
+++ b/packages/plugin-react/.babelrc
@@ -0,0 +1,10 @@
+{
+ "presets": [
+ [
+ "@babel/preset-env",
+ {
+ "useBuiltIns": "entry"
+ }
+ ]
+ ]
+}
diff --git a/packages/plugin-react/.travis.yml b/packages/plugin-react/.travis.yml
new file mode 100644
index 00000000000..121b29f66a4
--- /dev/null
+++ b/packages/plugin-react/.travis.yml
@@ -0,0 +1,9 @@
+language: node_js
+node_js:
+ - "node"
+install:
+ - npm install
+ - npm run build
+script:
+ - npm run test
+ - npm run coverage
diff --git a/packages/plugin-react/README.md b/packages/plugin-react/README.md
new file mode 100644
index 00000000000..983cc3c67c0
--- /dev/null
+++ b/packages/plugin-react/README.md
@@ -0,0 +1,98 @@
+> **Note**: This is part of version 2 of FreeSewing.
+> 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/).
+
+

+
FreeSewing is a free and open source library for made-to-measure sewing patterns
+
+
+
+
+
+
+
+
+
+# @freesewing/plugin-react
+
+A FreeSewing plugin to turn your pattern into a React component
+
+
+
+## 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).
diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json
new file mode 100644
index 00000000000..d85de270574
--- /dev/null
+++ b/packages/plugin-react/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "@freesewing/plugin-react",
+ "version": "2.0.0-alpha.18",
+ "description": "A FreeSewing plugin to turn your pattern into a React component",
+ "author": "Joost De Cock
(https://github.com/joostdecock)",
+ "homepage": "https://freesewing.org/",
+ "repository": "github:freesewing/freesewing",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/freesewing/freesewing/issues"
+ },
+ "keywords": [
+ "freesewing",
+ "plugin",
+ "sewing pattern",
+ "sewing",
+ "design",
+ "parametric design",
+ "made to measure",
+ "diy",
+ "fashion"
+ ],
+ "main": "dist/index.js",
+ "module": "dist/index.mjs",
+ "scripts": {
+ "clean": "rimraf dist",
+ "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs",
+ "modulebuild": "BABEL_ENV=production rollup -c -o dist/index.mjs -f es",
+ "build": "npm run clean && npm run nodebuild && npm run modulebuild",
+ "test": "echo \"plugin-react: No tests configured. Perhaps you'd like to do this?\" && exit 0",
+ "pubtest": "npm publish --registry http://localhost:6662",
+ "pubforce": "npm publish",
+ "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
+ },
+ "peerDependencies": {
+ "@freesewing/core": "^2.0.0-alpha.18"
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "files": [
+ "dist/*",
+ "README.md",
+ "package.json"
+ ],
+ "publishConfig": {
+ "access": "public",
+ "tag": "alpha"
+ },
+ "engines": {
+ "node": ">=8.0.0",
+ "npm": ">=5"
+ }
+}
diff --git a/packages/plugin-react/rollup.config.js b/packages/plugin-react/rollup.config.js
new file mode 100644
index 00000000000..dbee92ea2c2
--- /dev/null
+++ b/packages/plugin-react/rollup.config.js
@@ -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 */`
+ })
+ ]
+};
diff --git a/packages/plugin-react/src/index.js b/packages/plugin-react/src/index.js
new file mode 100644
index 00000000000..01b0e82445e
--- /dev/null
+++ b/packages/plugin-react/src/index.js
@@ -0,0 +1,11 @@
+import { version, name } from "../package.json";
+
+export default {
+ name: name,
+ version: version,
+ hooks: {
+ postDraft: function(pattern, props) {
+ console.log("postDraft hook in react plugin");
+ }
+ }
+};
diff --git a/packages/plugin-react/tests/designer.test.js b/packages/plugin-react/tests/designer.test.js
new file mode 100644
index 00000000000..e63d1531305
--- /dev/null
+++ b/packages/plugin-react/tests/designer.test.js
@@ -0,0 +1,73 @@
+import script from "../src/lib/script.js";
+import defs from "../src/lib/snippets.js";
+import freesewing from "freesewing";
+import { version } from "../package.json";
+
+let expect = require("chai").expect;
+let designerPlugin = require("../dist/index.js");
+
+let pattern = new freesewing.Pattern().with(designerPlugin);
+pattern.render();
+
+it("Should load script", () => {
+ expect(pattern.svg.script).to.equal(script);
+});
+
+it("Should set load defs", () => {
+ expect(pattern.svg.defs).to.equal(defs);
+});
+
+it("Should set the plugin name:version attribute", () => {
+ expect(pattern.svg.attributes.get("freesewing:plugin-designer")).to.equal(
+ version
+ );
+});
+
+it("Should decorate a point", () => {
+ pattern.parts.testPart = new pattern.Part();
+ pattern.parts.testPart.points.testPoint = new freesewing.Point(10, 20);
+ let a = pattern.parts.testPart.points.testPoint.attributes;
+ pattern.render();
+ expect(a.get("id")).to.equal("1");
+ expect(a.get("data-point")).to.equal("testPoint");
+ expect(a.get("data-part")).to.equal("testPart");
+ let snippet = pattern.parts.testPart.snippets["snippet-testPoint"];
+ expect(snippet.def).to.equal("point");
+ expect(snippet.anchor).to.equal(pattern.parts.testPart.points.testPoint);
+ let b = snippet.attributes;
+ expect(b.get("onmouseover")).to.equal("pointHover(evt)");
+ expect(b.get("id")).to.equal("snippet-testPoint");
+ expect(b.get("data-point")).to.equal("testPoint");
+ expect(b.get("data-part")).to.equal("testPart");
+});
+
+it("Should decorate a hidden point", () => {
+ pattern.parts.testPart.points._hidden = new freesewing.Point(30, 40);
+ let a = pattern.parts.testPart.points._hidden.attributes;
+ pattern.render();
+ expect(a.get("id")).to.equal("2");
+ expect(a.get("data-point")).to.equal("_hidden");
+ expect(a.get("data-part")).to.equal("testPart");
+});
+
+it("Should decorate a path point", () => {
+ pattern.parts.testPart.points.from = new freesewing.Point(5, 60);
+ pattern.parts.testPart.points.cp1 = new freesewing.Point(50, 60);
+ pattern.parts.testPart.points.cp2 = new freesewing.Point(90, 10);
+ pattern.parts.testPart.points.to = new freesewing.Point(10, 10);
+ pattern.parts.testPart.paths.testPath = new freesewing.Path()
+ .move(pattern.parts.testPart.points.from)
+ .line(pattern.parts.testPart.points.testPoint)
+ .curve(
+ pattern.parts.testPart.points.cp1,
+ pattern.parts.testPart.points.cp2,
+ pattern.parts.testPart.points.to
+ );
+ pattern.render();
+ let snippet = pattern.parts.testPart.snippets[7];
+ expect(snippet.def).to.equal("path-move-point");
+ expect(snippet.anchor).to.equal(pattern.parts.testPart.points.from);
+ let b = snippet.attributes;
+ expect(b.get("data-path")).to.equal("testPath");
+ expect(b.get("data-part")).to.equal("testPart");
+});
diff --git a/packages/plugin-round/package.json b/packages/plugin-round/package.json
index 77e885071f0..299b83ca6f1 100644
--- a/packages/plugin-round/package.json
+++ b/packages/plugin-round/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-scalebox/package.json b/packages/plugin-scalebox/package.json
index 13490c6a050..f6c1a148c1c 100644
--- a/packages/plugin-scalebox/package.json
+++ b/packages/plugin-scalebox/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-sprinkle/package.json b/packages/plugin-sprinkle/package.json
index 0656d602554..3005d0589e2 100644
--- a/packages/plugin-sprinkle/package.json
+++ b/packages/plugin-sprinkle/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-svgattr/package.json b/packages/plugin-svgattr/package.json
index 2486dce2646..9fc1fc255ad 100644
--- a/packages/plugin-svgattr/package.json
+++ b/packages/plugin-svgattr/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-theme/package.json b/packages/plugin-theme/package.json
index ea300bfb7a1..9c34c52859a 100644
--- a/packages/plugin-theme/package.json
+++ b/packages/plugin-theme/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-title/package.json b/packages/plugin-title/package.json
index b84108a66a9..20fc85d9746 100644
--- a/packages/plugin-title/package.json
+++ b/packages/plugin-title/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/plugin-validate/package.json b/packages/plugin-validate/package.json
index 3f60b54bc27..36ed760a9fd 100644
--- a/packages/plugin-validate/package.json
+++ b/packages/plugin-validate/package.json
@@ -33,8 +33,10 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/shin/package.json b/packages/shin/package.json
index 5d6fd515913..c4452e66894 100644
--- a/packages/shin/package.json
+++ b/packages/shin/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/simon/package.json b/packages/simon/package.json
index 89faf045498..c4683a386e2 100644
--- a/packages/simon/package.json
+++ b/packages/simon/package.json
@@ -33,11 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/brian": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17",
- "@freesewing/plugin-buttons": "^2.0.0-alpha.17",
- "@freesewing/plugin-flip": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/brian": "^2.0.0-alpha.18",
+ "@freesewing/plugin-buttons": "^2.0.0-alpha.18",
+ "@freesewing/plugin-flip": "^2.0.0-alpha.18"
},
"files": [
"dist/*",
diff --git a/packages/sven/package.json b/packages/sven/package.json
index c2192615560..0077f193dcb 100644
--- a/packages/sven/package.json
+++ b/packages/sven/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/tamiko/package.json b/packages/tamiko/package.json
index e31fdee7a4f..992292555cb 100644
--- a/packages/tamiko/package.json
+++ b/packages/tamiko/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/trayvon/package.json b/packages/trayvon/package.json
index 9edae1dfecc..2c9353f8549 100644
--- a/packages/trayvon/package.json
+++ b/packages/trayvon/package.json
@@ -33,9 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18"
},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 5ef2a6b92a2..b5824689392 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -28,6 +28,9 @@
"pubforce": "npm publish",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
+ "peerDependencies": {},
+ "dependencies": {},
+ "devDependencies": {},
"files": [
"dist/*",
"README.md",
diff --git a/packages/wahid/package.json b/packages/wahid/package.json
index fa7c4c970a3..6e1e77e46d4 100644
--- a/packages/wahid/package.json
+++ b/packages/wahid/package.json
@@ -33,11 +33,11 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
- "@freesewing/brian": "^2.0.0-alpha.17",
- "@freesewing/core": "^2.0.0-alpha.17",
- "@freesewing/plugin-bundle": "^2.0.0-alpha.17",
- "@freesewing/plugin-buttons": "^2.0.0-alpha.17",
- "@freesewing/plugin-round": "^2.0.0-alpha.17"
+ "@freesewing/core": "^2.0.0-alpha.18",
+ "@freesewing/plugin-bundle": "^2.0.0-alpha.18",
+ "@freesewing/brian": "^2.0.0-alpha.18",
+ "@freesewing/plugin-buttons": "^2.0.0-alpha.18",
+ "@freesewing/plugin-round": "^2.0.0-alpha.18"
},
"files": [
"dist/*",