diff --git a/packages/components/package.json b/packages/components/package.json
index d09ee9eee4d..de2b78ccbad 100644
--- a/packages/components/package.json
+++ b/packages/components/package.json
@@ -22,8 +22,7 @@
"build": "./scripts/build.sh",
"test": "echo \"components: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662",
- "storybook": "start-storybook -p 6006",
- "build-storybook": "build-storybook"
+ "storybook": "start-storybook -p 6663"
},
"peerDependencies": {
"react": "^16.4.1",
@@ -43,19 +42,5 @@
"engines": {
"node": ">=8.0.0",
"npm": ">=5"
- },
- "dependencies": {
- "@freesewing/i18n": "0.11.3",
- "@freesewing/patterns": "0.18.6"
- },
- "devDependencies": {
- "@babel/core": "^7.4.3",
- "@storybook/addon-actions": "^5.0.10",
- "@storybook/addon-console": "^1.1.0",
- "@storybook/addon-links": "^5.0.10",
- "@storybook/addons": "^5.0.10",
- "@storybook/react": "^5.0.10",
- "babel-loader": "^8.0.5",
- "storybook-addon-material-ui": "^0.9.0-alpha.18"
}
}
diff --git a/packages/components/scripts/build.sh b/packages/components/scripts/build.sh
index 2b1ed9b16fc..8cd677f1b54 100755
--- a/packages/components/scripts/build.sh
+++ b/packages/components/scripts/build.sh
@@ -10,10 +10,10 @@ cd $DIR/../src/
rm -rf ../../../dist/components
for d in * ; do {
cd ..
- # do something here
mkdir -p ../../dist/components/$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/components/$d/index.mjs -f es
+ rollup --silent -c ./rollup.config.js ./src/$d/index.js -m -o ../../dist/components/$d/index.mjs -f es
cd src
}
done
diff --git a/packages/components/src/form/FormFieldBool/index.js b/packages/components/src/.form/FormFieldBool/index.js
similarity index 100%
rename from packages/components/src/form/FormFieldBool/index.js
rename to packages/components/src/.form/FormFieldBool/index.js
diff --git a/packages/components/src/form/FormFieldBool/stories.js b/packages/components/src/.form/FormFieldBool/stories.js
similarity index 100%
rename from packages/components/src/form/FormFieldBool/stories.js
rename to packages/components/src/.form/FormFieldBool/stories.js
diff --git a/packages/components/src/form/FormFieldChecks/index.js b/packages/components/src/.form/FormFieldChecks/index.js
similarity index 92%
rename from packages/components/src/form/FormFieldChecks/index.js
rename to packages/components/src/.form/FormFieldChecks/index.js
index 4bd3fd56675..c02a0a87d8f 100644
--- a/packages/components/src/form/FormFieldChecks/index.js
+++ b/packages/components/src/.form/FormFieldChecks/index.js
@@ -1,9 +1,7 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormControl from "@material-ui/core/FormControl";
import FormGroup from "@material-ui/core/FormGroup";
import FormControlLabel from "@material-ui/core/FormControlLabel";
-import FormHelperText from "@material-ui/core/FormHelperText";
import Checkbox from "@material-ui/core/Checkbox";
const FormFieldChecks = props => {
diff --git a/packages/components/src/form/FormFieldChecks/stories.js b/packages/components/src/.form/FormFieldChecks/stories.js
similarity index 100%
rename from packages/components/src/form/FormFieldChecks/stories.js
rename to packages/components/src/.form/FormFieldChecks/stories.js
diff --git a/packages/components/src/form/FormFieldList/index.js b/packages/components/src/.form/FormFieldList/index.js
similarity index 100%
rename from packages/components/src/form/FormFieldList/index.js
rename to packages/components/src/.form/FormFieldList/index.js
diff --git a/packages/components/src/form/FormFieldList/stories.js b/packages/components/src/.form/FormFieldList/stories.js
similarity index 100%
rename from packages/components/src/form/FormFieldList/stories.js
rename to packages/components/src/.form/FormFieldList/stories.js
diff --git a/packages/components/src/form/FormFieldSlider/index.js b/packages/components/src/.form/FormFieldSlider/index.js
similarity index 100%
rename from packages/components/src/form/FormFieldSlider/index.js
rename to packages/components/src/.form/FormFieldSlider/index.js
diff --git a/packages/components/src/form/FormFieldSlider/stories.js b/packages/components/src/.form/FormFieldSlider/stories.js
similarity index 100%
rename from packages/components/src/form/FormFieldSlider/stories.js
rename to packages/components/src/.form/FormFieldSlider/stories.js
diff --git a/packages/components/src/.form/index.js b/packages/components/src/.form/index.js
new file mode 100644
index 00000000000..172f1ae6a46
--- /dev/null
+++ b/packages/components/src/.form/index.js
@@ -0,0 +1 @@
+// noop
diff --git a/packages/components/src/DraftConfigurator/DraftSettingLanguage/index.js b/packages/components/src/DraftConfigurator/DraftSettingLanguage/index.js
index a3fe1a5e095..df0291c67eb 100644
--- a/packages/components/src/DraftConfigurator/DraftSettingLanguage/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettingLanguage/index.js
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldList from "../../form/FormFieldList";
+import FormFieldList from "../../.form/FormFieldList";
import OptionPreamble from "../OptionPreamble";
import { injectIntl } from "react-intl";
import { i18n as languages } from "@freesewing/i18n";
diff --git a/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js b/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js
index 5d189d0b6e2..dfbe29cb5b6 100644
--- a/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js
@@ -1,8 +1,7 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldList from "../../form/FormFieldList";
-import FormFieldSlider from "../../form/FormFieldSlider";
-import { formatMm, roundMm, defaultSa, sliderStep } from "../../utils";
+import FormFieldSlider from "../../.form/FormFieldSlider";
+import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils";
import OptionPreamble from "../OptionPreamble";
const DraftSettingMargin = props => {
diff --git a/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js b/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js
index 94415bfcf4d..2f2a24fbe8c 100644
--- a/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js
@@ -1,8 +1,8 @@
import React, { useState } from "react";
-import FormFieldChecks from "../../form/FormFieldChecks";
-import FormFieldList from "../../form/FormFieldList";
-import FormFieldSlider from "../../form/FormFieldSlider";
-import { formatMm, roundMm, defaultSa, sliderStep } from "../../utils";
+import FormFieldChecks from "../../.form/FormFieldChecks";
+import FormFieldList from "../../.form/FormFieldList";
+import FormFieldSlider from "../../.form/FormFieldSlider";
+import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils";
import OptionPreamble from "../OptionPreamble";
const DraftSettingOnly = props => {
diff --git a/packages/components/src/DraftConfigurator/DraftSettingSa/index.js b/packages/components/src/DraftConfigurator/DraftSettingSa/index.js
index 6ef1bca4f07..f3b58f3d0ce 100644
--- a/packages/components/src/DraftConfigurator/DraftSettingSa/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettingSa/index.js
@@ -1,8 +1,8 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldList from "../../form/FormFieldList";
-import FormFieldSlider from "../../form/FormFieldSlider";
-import { formatMm, roundMm, defaultSa, sliderStep } from "../../utils";
+import FormFieldList from "../../.form/FormFieldList";
+import FormFieldSlider from "../../.form/FormFieldSlider";
+import { formatMm, roundMm, defaultSa, sliderStep } from "../../.utils";
import OptionPreamble from "../OptionPreamble";
const DraftSettingSa = props => {
diff --git a/packages/components/src/DraftConfigurator/DraftSettingUnits/index.js b/packages/components/src/DraftConfigurator/DraftSettingUnits/index.js
index aa08689731d..2807c5b150c 100644
--- a/packages/components/src/DraftConfigurator/DraftSettingUnits/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettingUnits/index.js
@@ -1,5 +1,5 @@
import React, { useState } from "react";
-import FormFieldList from "../../form/FormFieldList";
+import FormFieldList from "../../.form/FormFieldList";
import OptionPreamble from "../OptionPreamble";
const DraftSettingUnits = props => {
diff --git a/packages/components/src/DraftConfigurator/DraftSettings/index.js b/packages/components/src/DraftConfigurator/DraftSettings/index.js
index 5101b4094f4..9399e549b6d 100644
--- a/packages/components/src/DraftConfigurator/DraftSettings/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettings/index.js
@@ -1,9 +1,8 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import { gistDefaults } from "../../utils";
+import { gistDefaults } from "../../.utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl";
-import List from "@material-ui/core/List";
import DraftSettingSa from "../DraftSettingSa";
import DraftSettingMargin from "../DraftSettingMargin";
import DraftSettingComplete from "../DraftSettingComplete";
diff --git a/packages/components/src/DraftConfigurator/OptionGroup/index.js b/packages/components/src/DraftConfigurator/OptionGroup/index.js
index 4c789a22c1a..20c7c233b47 100644
--- a/packages/components/src/DraftConfigurator/OptionGroup/index.js
+++ b/packages/components/src/DraftConfigurator/OptionGroup/index.js
@@ -6,7 +6,7 @@ import Mm from "../PatternOptionMillimeter";
import Bool from "../PatternOptionBool";
import List from "../PatternOptionList";
import Count from "../PatternOptionCount";
-import { optionType } from "../../utils";
+import { optionType } from "../../.utils";
import { FormattedMessage } from "react-intl";
import { injectIntl } from "react-intl";
diff --git a/packages/components/src/DraftConfigurator/OptionPreamble/index.js b/packages/components/src/DraftConfigurator/OptionPreamble/index.js
index 21eb8abb137..84a63a453c8 100644
--- a/packages/components/src/DraftConfigurator/OptionPreamble/index.js
+++ b/packages/components/src/DraftConfigurator/OptionPreamble/index.js
@@ -5,7 +5,6 @@ import DownIcon from "@material-ui/icons/KeyboardArrowDown";
import ResetIcon from "@material-ui/icons/SettingsBackupRestore";
import HelpIcon from "@material-ui/icons/Help";
import { injectIntl } from "react-intl";
-import ListSubheader from "@material-ui/core/ListSubheader";
const OptionPreamble = props => {
const styles = {
diff --git a/packages/components/src/DraftConfigurator/PatternOptionBool/index.js b/packages/components/src/DraftConfigurator/PatternOptionBool/index.js
index 0c3ebcd7056..65ce814ee89 100644
--- a/packages/components/src/DraftConfigurator/PatternOptionBool/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptionBool/index.js
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldBool from "../../form/FormFieldBool";
+import FormFieldBool from "../../.form/FormFieldBool";
import OptionPreamble from "../OptionPreamble";
const PatternOptionBool = props => {
diff --git a/packages/components/src/DraftConfigurator/PatternOptionList/index.js b/packages/components/src/DraftConfigurator/PatternOptionList/index.js
index 15f14a8dbe2..e5ace012ba8 100644
--- a/packages/components/src/DraftConfigurator/PatternOptionList/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptionList/index.js
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldList from "../../form/FormFieldList";
+import FormFieldList from "../../.form/FormFieldList";
import OptionPreamble from "../OptionPreamble";
const PatternOptionList = props => {
diff --git a/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js b/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js
index 80db0205a5b..a646f4d63d0 100644
--- a/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js
@@ -6,8 +6,8 @@ import {
roundMmUp,
roundMmDown,
formatMm
-} from "../../utils";
-import FormFieldSlider from "../../form/FormFieldSlider";
+} from "../../.utils";
+import FormFieldSlider from "../../.form/FormFieldSlider";
import OptionPreamble from "../OptionPreamble";
const PatternOptionMillimeter = props => {
diff --git a/packages/components/src/DraftConfigurator/PatternOptionPctDegCount/index.js b/packages/components/src/DraftConfigurator/PatternOptionPctDegCount/index.js
index 1f7587ab573..dded0751bf6 100644
--- a/packages/components/src/DraftConfigurator/PatternOptionPctDegCount/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptionPctDegCount/index.js
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import PropTypes from "prop-types";
-import FormFieldSlider from "../../form/FormFieldSlider";
+import FormFieldSlider from "../../.form/FormFieldSlider";
import OptionPreamble from "../OptionPreamble";
const PatternOptionPctDegCount = props => {
diff --git a/packages/components/src/DraftConfigurator/PatternOptions/index.js b/packages/components/src/DraftConfigurator/PatternOptions/index.js
index 091eaf352eb..f2ed8efa3c0 100644
--- a/packages/components/src/DraftConfigurator/PatternOptions/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptions/index.js
@@ -5,10 +5,9 @@ import Deg from "../PatternOptionDegree";
import Mm from "../PatternOptionMillimeter";
import Bool from "../PatternOptionBool";
import OptionGroup from "../OptionGroup";
-import { optionType, defaultGist, gistDefaults } from "../../utils";
+import { optionType, defaultGist, gistDefaults } from "../../.utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl";
-import List from "@material-ui/core/List";
import DownIcon from "@material-ui/icons/KeyboardArrowDown";
const PatternOptions = props => {
diff --git a/packages/components/src/DraftConfigurator/index.js b/packages/components/src/DraftConfigurator/index.js
index 742a810bc79..0218518851e 100644
--- a/packages/components/src/DraftConfigurator/index.js
+++ b/packages/components/src/DraftConfigurator/index.js
@@ -5,11 +5,9 @@ import Deg from "./PatternOptionDegree";
import Mm from "./PatternOptionMillimeter";
import Bool from "./PatternOptionBool";
import OptionGroup from "./OptionGroup";
-import { optionType, gistDefaults } from "../utils";
+import { optionType, gistDefaults } from "../.utils";
import { patternInfo, patternList } from "@freesewing/patterns";
import { FormattedMessage } from "react-intl";
-import CollapsedIcon from "@material-ui/icons/ArrowDropDown";
-import ExpandedIcon from "@material-ui/icons/ArrowRight";
import PatternOptions from "./PatternOptions";
import DraftSettings from "./DraftSettings";
//import DraftActions from "DraftActions";
diff --git a/packages/components/src/utils/index.js b/packages/components/src/utils/index.js
deleted file mode 100644
index 03ad71f98ae..00000000000
--- a/packages/components/src/utils/index.js
+++ /dev/null
@@ -1,186 +0,0 @@
-// Needed to use JSX
-import React from "react";
-
-export const smallestImperialStep = 0.396875;
-
-export const roundMm = (val, units) => {
- if (units === "imperial") return Math.round(val * 1000000) / 1000000;
- else return Math.round(val * 10) / 10;
-};
-
-export const roundMmDown = (val, units) => {
- if (units === "imperial") return val - (val % smallestImperialStep);
- else return Math.floor(val * 10) / 10;
-};
-
-export const roundMmUp = (val, units) => {
- if (units === "imperial") return val - (val % 0.396875);
- else return Math.ceil(val * 10) / 10;
-};
-
-const formatImperial = (
- neg,
- inch,
- numo = false,
- deno = false,
- format = "html"
-) => {
- if (format === "html") {
- if (numo)
- return (
-
- {neg}
- {inch} {numo}/{deno}"
-
- );
- else
- return (
-
- {neg}
- {inch}"
-
- );
- } else {
- if (numo) return neg + inch;
- else return neg + inch + " " + numo + "/" + deno;
- }
-};
-
-export const formatMm = (val, units, format = "html") => {
- val = roundMm(val);
- let H = format === "html" ? true : false;
- if (units === "imperial") {
- if (val == 0) return formatImperial("", 0, false, false, format);
- let negative = "";
- let inches = "";
- let rest = "";
- let fraction = val / 25.4;
- if (fraction < 0) {
- fraction = fraction * -1;
- negative = "-";
- }
- if (Math.abs(fraction) < 1) rest = fraction;
- else {
- inches = Math.floor(fraction);
- rest = fraction - inches;
- }
- let fraction128 = Math.round(rest * 128);
- if (fraction128 == 0) return formatImperial(negative, inches);
- if (fraction128 % 64 == 0)
- return formatImperial(negative, inches, fraction128 / 64, 2);
- if (fraction128 % 32 == 0)
- return formatImperial(negative, inches, fraction128 / 32, 4);
- if (fraction128 % 16 == 0)
- return formatImperial(negative, inches, fraction128 / 16, 8);
- if (fraction128 % 8 == 0)
- return formatImperial(negative, inches, fraction128 / 8, 16);
- if (fraction128 % 4 == 0)
- return formatImperial(negative, inches, fraction128 / 4, 32);
- if (fraction128 % 2 == 0)
- return formatImperial(negative, inches, fraction128 / 2, 64);
- return negative + fraction;
- } else {
- if (format === "html") return roundMm(val / 10) + "cm";
- else return roundMm(val / 10);
- }
-};
-
-export const defaultSa = {
- imperial: 15.875,
- metric: 10
-};
-
-export const sliderStep = {
- metric: 0.1,
- imperial: 0.396875
-};
-
-export const optionType = option => {
- if (typeof option === "object") {
- if (typeof option.pct !== "undefined") return "pct";
- if (typeof option.mm !== "undefined") return "mm";
- if (typeof option.deg !== "undefined") return "deg";
- if (typeof option.count !== "undefined") return "count";
- if (typeof option.bool !== "undefined") return "bool";
- if (typeof option.list !== "undefined") return "list";
- return "unknown";
- }
-
- return "constant";
-};
-
-export const defaultGist = {
- settings: {
- embed: true,
- sa: 0,
- complete: true,
- paperless: false,
- locale: "en",
- units: "metric",
- margin: 2,
- options: {}
- }
-};
-
-export const gistDefaults = (config, gist = { settings: {} }) => {
- let options = {};
- for (let option of Object.keys(config.options)) {
- if (
- typeof gist.options !== "undefined" &&
- typeof gist.options[option] !== undefined
- )
- options[option] = gist.options[option];
- else options[option] = optionDefault(config.options[option]);
- }
- delete gist.options;
- let settings = JSON.parse(JSON.stringify(defaultGist.settings));
- delete settings.locale;
- delete settings.units;
- for (let setting of Object.keys(settings)) {
- if (typeof gist.settings[setting] !== "undefined") {
- settings[setting] = gist.settings[setting];
- }
- }
- settings.options = options;
-
- return settings;
-};
-
-export const optionDefault = option => {
- let type = optionType(option);
- switch (optionType(option)) {
- case "constant":
- return option;
- break;
- case "list":
- return option.dflt;
- break;
- default:
- return option[type];
- }
-};
-
-export const storage = {
- set: (key, value, raw) => {
- if (typeof localStorage === "undefined")
- throw(new Error("No localStorage support. And we need it. Bailing out."));
-
- const _key = "fs_" + key;
-
- if (typeof value === "undefined" || value === null)
- localStorage.removeItem(_key);
- else localStorage.setItem(_key, raw ? value : JSON.stringify(value));
-
- return value;
- },
- get: (key, raw) => {
- if (typeof localStorage === "undefined")
- throw(new Error("No localStorage support. And we need it. Bailing out."));
-
- const value = localStorage.getItem("fs_"+key);
-
- return raw ? value : JSON.parse(value);
- }
-}
-
-export const cloneObject = src => Object.assign({}, src);
diff --git a/packages/components/src/withGist/index.js b/packages/components/src/withGist/index.js
index 16adc3bbdb8..1914b953f5a 100644
--- a/packages/components/src/withGist/index.js
+++ b/packages/components/src/withGist/index.js
@@ -1,5 +1,5 @@
import React from "react";
-import { storage, cloneObject } from "../utils";
+import { storage, cloneObject } from "../.utils";
const withGist = (WrappedComponent, settings={gist:{}, store:false}) => {