diff --git a/designs/hi/src/body.js b/designs/hi/src/body.js index 76d014d5d7f..772664287e0 100644 --- a/designs/hi/src/body.js +++ b/designs/hi/src/body.js @@ -34,7 +34,7 @@ export default function (part) { let body16_17d = 152.51537318250902 * options.size let body17_18d = 255.15294373571314 * options.size let body18_19d = 71.90453921693678 * options.size - let body19_01d = 61.33021195137026 * options.size + //let body19_01d = 61.33021195137026 * options.size let body01cp1d = 32.13103487929059 * options.size let body01cp2d = 23.72518967258217 * options.size diff --git a/designs/noble/src/backPoints.js b/designs/noble/src/backPoints.js index e4844d0dbab..3931c0dab63 100644 --- a/designs/noble/src/backPoints.js +++ b/designs/noble/src/backPoints.js @@ -56,7 +56,7 @@ export default function (part) { let diff = 0 let angle = 0 do { - if (length?.o) angle = diff*( length.o > length.i ? -.1 : .1 ) + if (length.o) angle = diff*( length.o > length.i ? -.1 : .1 ) points.dartBottomRight = points.dartBottomRight.rotate( angle, points.waistSide ) diff --git a/designs/noble/src/frontInside.js b/designs/noble/src/frontInside.js index 949e417321c..a8e9c77b721 100644 --- a/designs/noble/src/frontInside.js +++ b/designs/noble/src/frontInside.js @@ -1,6 +1,5 @@ export default function (part) { - let { - utils, + const { store, sa, Point, @@ -10,7 +9,6 @@ export default function (part) { Snippet, snippets, options, - measurements, complete, paperless, macro, @@ -171,7 +169,7 @@ export default function (part) { to: points.hps, y: points.hps.y - sa - 15, }) - } + } } return part diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js index c94d12fb6dc..2fceb131ec8 100644 --- a/designs/noble/src/frontOutside.js +++ b/designs/noble/src/frontOutside.js @@ -1,16 +1,13 @@ export default function (part) { - let { - utils, + const { store, sa, - Point, points, Path, paths, Snippet, snippets, options, - measurements, complete, paperless, macro, @@ -154,7 +151,7 @@ export default function (part) { to: points.shoulderDartOutside, x: pLeft.x -sa - 15, }) - + let pArmholeLeft = paths.armhole.edge('left') macro('hd', { from: points.waistDartRight, diff --git a/designs/noble/src/frontPoints.js b/designs/noble/src/frontPoints.js index 3fe20c60e9c..a232edccc53 100644 --- a/designs/noble/src/frontPoints.js +++ b/designs/noble/src/frontPoints.js @@ -1,18 +1,10 @@ export default function (part) { - let { - utils, - store, - sa, - Point, + const { points, Path, paths, - Snippet, snippets, options, - measurements, - complete, - paperless, macro, } = part.shorthand() @@ -227,7 +219,6 @@ export default function (part) { .rotate(-2.5, points.shoulderDartOutside) .shiftFractionTowards(points.shoulderDartOutside, 0.2) - let lInside = shoulderInsideSeam.length() let iteration = 1 let diff = 0 do { diff --git a/designs/sandy/config/index.js b/designs/sandy/config/index.js index 68fa5051729..7895acea059 100644 --- a/designs/sandy/config/index.js +++ b/designs/sandy/config/index.js @@ -1,5 +1,4 @@ import { version } from '../package.json' -import freesewing from '@freesewing/core' import configHelpers from '@freesewing/config-helpers' const { elastics, pctBasedOn } = configHelpers diff --git a/designs/shin/config/index.js b/designs/shin/config/index.js index 6fc17724ab6..1db9cac7995 100644 --- a/designs/shin/config/index.js +++ b/designs/shin/config/index.js @@ -1,5 +1,4 @@ import { version } from '../package.json' -import freesewing from '@freesewing/core' import configHelpers from '@freesewing/config-helpers' const { elastics, pctBasedOn } = configHelpers diff --git a/designs/trayvon/config/index.js b/designs/trayvon/config/index.js index 887e8e796b3..7889b4abe4d 100644 --- a/designs/trayvon/config/index.js +++ b/designs/trayvon/config/index.js @@ -1,5 +1,4 @@ import { version } from '../package.json' -import freesewing from '@freesewing/core' import configHelpers from '@freesewing/config-helpers' const { smallsteps, pctBasedOn } = configHelpers diff --git a/designs/unice/src/back.js b/designs/unice/src/back.js index b271747b41e..39b86acb13d 100644 --- a/designs/unice/src/back.js +++ b/designs/unice/src/back.js @@ -1,270 +1,4 @@ -export default function (part) { - const { - options, - Point, - Path, - points, - paths, - measurements, - // Snippet, - // snippets, - store, - utils, - complete, - sa, - paperless, - macro, - } = part.shorthand() +const method = part => part - // Design pattern here +export default method - // Create points -return part - points.backWaistMid = new Point(measurements.seat / 4, 0) - points.backWaistBandLeft = new Point( - store.get('sideSeamWaist').x / options.backToFrontWidth, - store.get('sideSeamWaist').y - ) - points.backLegOpeningLeft = new Point( - store.get('sideSeamHip').x / options.backToFrontWidth, - store.get('sideSeamHip').y - ) - - // back height is given by (estimated) cross seam, minus front and gusset lengths - // this does not account for vertical stretch yet - const backHeight = store.get('crossSeam') - store.get('frontHeight') - options.gussetLength * measurements.seat - - // calculate the actual back height, using yScale above and yScaleReduced below leg opening - const backHeightAbove = store.get('frontHeightAbove') // part above has same height front and back - - let backHeightBelow - backHeightBelow = store.get('yScale')*(backHeight - backHeightAbove/store.get('yScaleReduced')) - - const backHeightReduced = backHeightBelow + backHeightAbove - - points.backGussetLeft = new Point( - measurements.seat / 4 - - ((measurements.waist * options.gussetWidth * store.get('xScale')) / options.gussetRatio) * - options.backToFrontWidth, - backHeightReduced - ) - points.backGussetMid = new Point( - measurements.seat / 4, - backHeightReduced - ) - - points.backGussetRight = points.backGussetLeft.flipX(points.backWaistMid) - points.backLegOpeningRight = points.backLegOpeningLeft.flipX(points.backWaistMid) - points.backWaistBandRight = points.backWaistBandLeft.flipX(points.backWaistMid) - - points.backWaistBandMid = points.backWaistBandLeft - .shiftFractionTowards(points.backWaistBandRight, 0.5) - .shift(270, measurements.waistToUpperLeg * options.backDip) - - /* Middle point for label */ - points.backMidMid = points.backLegOpeningLeft.shiftFractionTowards( - points.backLegOpeningRight, - 0.5 - ) - - // Create control points - - /* Control point for waistband dip */ - points.backWaistBandLeftCp1 = points.backWaistBandMid.shift(0,points.backWaistBandMid.dx(points.backWaistBandLeft) / 3 ) - - /* Flip points to right side */ - points.backWaistBandRightCp1 = points.backWaistBandLeftCp1.flipX(points.backWaistMid) - - // Shape back coverage - - /* Only have to do this on one side */ - points.backLegOpeningCorner = utils.beamsIntersect( - points.backLegOpeningLeft, - points.backLegOpeningLeft.shift(180, points.backGussetLeft.dy(points.backLegOpeningLeft)), - points.backGussetLeft, - points.backGussetLeft.shift(270, points.backGussetLeft.dy(points.backLegOpeningLeft)) - ) - - if (options.backExposure >= 0) { - /* If back exposure is high, like a thong style */ - /* This controls the hip bit */ - points.backLegOpeningLeftCp1 = points.backLegOpeningLeft.shiftFractionTowards( - points.backLegOpeningCorner, - options.backExposure - ) - /* This controls the center bit */ - points.backGussetLeftCp1 = points.backGussetLeft.shiftFractionTowards( - points.backWaistBandMid, - options.backExposure - ) - points.backGussetLeft = points.backGussetLeft.shiftFractionTowards( - points.backGussetMid, - options.backExposure - ) // This narrows the back of the gusset - points.backGussetRight = points.backGussetLeft.flipX(points.backWaistMid) - } else { - /* If back exposure is low and flares out to cover more */ - store.set('adjustedBackExposure',options.backExposure * store.get('adjustedLegOpening')) // flare depends on leg opening - /* This controls the hip bit */ - points.backLegOpeningLeftCp1 = points.backLegOpeningLeft.shift( - -45,store.get('adjustedBackExposure') * points.backWaistBandMid.dx(points.backWaistBandLeft)) - /* This controls the taper to gusset */ - points.backGussetLeftCp1 = points.backGussetLeft.shift(115, store.get('adjustedBackExposure') * points.backWaistBandMid.dx(points.backWaistBandLeft)) - - /* center of the flare and its control points are on a line parallel to the backGussetLeft to backLegOpeningLeft line - * first, define the points on that line */ - points.backFlare = points.backGussetLeft.shiftFractionTowards(points.backLegOpeningLeft, 0.5) - // points.backFlareCp1 = points.backGussetLeft.shiftFractionTowards(points.backLegOpeningLeft, 0.5 - store.get('adjustedBackExposure')) - points.backFlareCp1 = points.backGussetLeft.shiftFractionTowards(points.backLegOpeningLeft, 0.7) - points.backFlareCp2 = points.backGussetLeft.shiftFractionTowards(points.backLegOpeningLeft, 0.3) - /* then shift all three points outward */ - points.backFlareLeft = points.backFlare.shift( - 215,(points.backWaistBandMid.dx(points.backWaistBandLeft)) * store.get('adjustedBackExposure') * 2 ) - points.backFlareLeftCp1 = points.backFlareCp1.shift( - 215,(points.backWaistBandMid.dx(points.backWaistBandLeft)) * store.get('adjustedBackExposure') * 2 ) - points.backFlareLeftCp2 = points.backFlareCp2.shift( - 215,(points.backWaistBandMid.dx(points.backWaistBandLeft)) * store.get('adjustedBackExposure') * 2 ) - - - /* Flip points to the right */ - - points.backFlareRight = points.backFlareLeft.flipX(points.backWaistBandMid) - points.backFlareRightCp1 = points.backFlareLeftCp1.flipX(points.backWaistMid) - points.backFlareRightCp2 = points.backFlareLeftCp2.flipX(points.backWaistMid) - } - - /* Flip points to the right */ - - points.backLegOpeningRightCp1 = points.backLegOpeningLeftCp1.flipX(points.backWaistMid) - points.backGussetRightCp1 = points.backGussetLeftCp1.flipX(points.backWaistMid) - - // Draw paths - - if (options.backExposure >= 0) { - paths.seam = new Path() - .move(points.backWaistBandMid) - .curve(points.backWaistBandLeftCp1, points.backWaistBandLeft, points.backWaistBandLeft) // Waist band dip - .line(points.backLegOpeningLeft) - .curve(points.backLegOpeningLeftCp1, points.backGussetLeftCp1, points.backGussetLeft) - .line(points.backGussetMid) - .line(points.backGussetRight) - .curve(points.backGussetRightCp1, points.backLegOpeningRightCp1, points.backLegOpeningRight) - .line(points.backWaistBandRight) - .curve(points.backWaistBandRight, points.backWaistBandRightCp1, points.backWaistBandMid) // Waist band dip - .close() - .attr('class', 'fabric') - } else { - paths.seam = new Path() - .move(points.backWaistBandMid) - .curve(points.backWaistBandLeftCp1, points.backWaistBandLeft, points.backWaistBandLeft) // Waist band dip - .line(points.backLegOpeningLeft) - .curve(points.backLegOpeningLeftCp1, points.backFlareLeftCp1, points.backFlareLeft) - .curve(points.backFlareLeftCp2, points.backGussetLeftCp1, points.backGussetLeft) - .line(points.backGussetMid) - .line(points.backGussetRight) - .curve(points.backGussetRightCp1, points.backFlareRightCp2, points.backFlareRight) - .curve(points.backFlareRightCp1, points.backLegOpeningRightCp1, points.backLegOpeningRight) - .line(points.backWaistBandRight) - .curve(points.backWaistBandRight, points.backWaistBandRightCp1, points.backWaistBandMid) // Waist band dip - .close() - .attr('class', 'fabric') - } - - // Store points for use in other parts - - /* Store gusset points for use in gusset */ - - store.set('backGussetLeft', points.backGussetLeft) - store.set('backGussetRight', points.backGussetRight) - - /* Store lengths for use in elastic */ - - paths.backLegOpening = (options.backExposure >= 0) - ? new Path() - .move(points.backGussetRight) - .curve(points.backGussetRightCp1, points.backLegOpeningRightCp1, points.backLegOpeningRight) - .setRender(false) - : new Path() - .move(points.backGussetRight) - .curve(points.backGussetRightCp1, points.backFlareRightCp2, points.backFlareRight) - .curve(points.backFlareRightCp1, points.backLegOpeningRightCp1, points.backLegOpeningRight) - .setRender(false) - store.set('backLegOpeningLength',paths.backLegOpening.length()) - - paths.backWaistBand = new Path() - .move(points.backWaistBandRight) - .curve(points.backWaistBandRightCp1, points.backWaistBandLeftCp1, points.backWaistBandLeft) - .setRender(false) - store.set('backWaistBandLength',paths.backWaistBand.length()) - - // Complete? - if (complete) { - if (sa) { - paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') - } - } - - macro('title', { - at: points.backMidMid, - nr: 2, - title: 'back', - }) - - macro('grainline', { - from: points.backGussetMid, - to: points.backGussetMid.shiftFractionTowards(points.backWaistBandMid, 0.4), - }) - - points.scaleboxAnchor = points.scalebox = points.backMidMid.shift(90, -50) - macro('miniscale', { at: points.scalebox }) - - // Paperless? - if (paperless) { - macro('hd', { - from: points.backWaistBandRight, - to: points.backWaistBandLeft, - y: points.backWaistBandRight.y + sa - 15, - }) - macro('hd', { - from: points.backLegOpeningRight, - to: points.backLegOpeningLeft, - y: points.backLegOpeningRight.y + sa - 15, - }) - macro('hd', { - from: points.backGussetLeft, - to: points.backGussetRight, - y: points.backGussetLeft.y + sa + 15, - }) - macro('vd', { - from: points.backWaistBandMid, - to: points.backGussetMid, - x: points.backWaistBandMid.x + sa + 15, - }) - if (options.backExposure >= 0) { - macro('pd', { - path: new Path() - .move(points.backGussetRight) - .curve( - points.backGussetRightCp1, - points.backLegOpeningRightCp1, - points.backLegOpeningRight - ), - d: 15, - }) - } else { - macro('pd', { - path: new Path() - .move(points.backGussetRight) - .curve(points.backGussetRightCp1, points.backFlareRightCp2, points.backFlareRight) - .curve( - points.backFlareRightCp1, - points.backLegOpeningRightCp1, - points.backLegOpeningRight - ), - d: 15, - }) - } - } - - return part -} diff --git a/designs/unice/src/gusset.js b/designs/unice/src/gusset.js index b4860a01cdc..39b86acb13d 100644 --- a/designs/unice/src/gusset.js +++ b/designs/unice/src/gusset.js @@ -1,80 +1,4 @@ -export default function (part) { - let { options, Point, Path, points, paths, measurements, store, complete, sa, paperless, macro } = - part.shorthand() -return part - var yScaleDoubleLayer - yScaleDoubleLayer = (1 + store.get('yScale'))/2 // double layer of fabric stretches half as much +const method = part => part - // Create points - points.frontGussetLeft = new Point(store.get('frontGussetLeft').x, 0) - points.backGussetLeft = new Point( - store.get('backGussetLeft').x, - measurements.seat * options.gussetLength * yScaleDoubleLayer - ) - points.frontGussetRight = new Point(store.get('frontGussetRight').x, 0) - points.backGussetRight = new Point( - store.get('backGussetRight').x, - measurements.seat * options.gussetLength * yScaleDoubleLayer - ) +export default method - // Create control points - points.gussetCp1 = points.frontGussetLeft - .shiftFractionTowards(points.backGussetLeft, 0.5) - .shift(180, points.frontGussetRight.x / -15) - - // Flip points to right side - points.gussetCp2 = points.gussetCp1.flipX(store.get('frontGussetMid')) - - // Create point for title - points.frontMidMid = points.gussetCp1.shiftFractionTowards(points.gussetCp2, 0.5) - - /* Store lengths for use in elastic */ - paths.gussetLegOpening = new Path() - .move(points.backGussetRight) - .curve(points.backGussetRight, points.gussetCp2, points.frontGussetRight) - .setRender(false) - store.set('gussetSideLength', paths.gussetLegOpening.length()) - - // Draw paths - paths.seam = new Path() - .move(points.frontGussetLeft) - .curve(points.gussetCp1, points.backGussetLeft, points.backGussetLeft) - .line(points.backGussetRight) - .curve(points.backGussetRight, points.gussetCp2, points.frontGussetRight) - .line(points.frontGussetLeft) // Without this, doesn't generate seam allowance - .close() - .attr('class', 'fabric') - - // Complete? - if (complete) { - if (sa) { - paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') - } - macro('title', { - at: points.frontMidMid, - nr: 3, - title: 'gusset', - }) - } - - // Paperless? - if (paperless) { - macro('hd', { - from: points.frontGussetLeft, - to: points.frontGussetRight, - y: points.frontGussetLeft.y + sa + 15, - }) - macro('hd', { - from: points.backGussetLeft, - to: points.backGussetRight, - y: points.backGussetLeft.y + sa + 15, - }) - macro('vd', { - from: points.frontGussetRight, - to: points.backGussetRight, - x: points.frontGussetRight.x + sa + 15, - }) - } - - return part -} diff --git a/designs/ursula/src/back2.js b/designs/ursula/src/back2.js index 0b1d4c1d69f..0cc97d4757c 100644 --- a/designs/ursula/src/back2.js +++ b/designs/ursula/src/back2.js @@ -1,19 +1,11 @@ export default function (part) { - let { - options, - Point, - Path, + const { points, paths, - measurements, Snippet, snippets, store, utils, - complete, - sa, - paperless, - macro, } = part.shorthand() points.waist2 = points.backWaistBandMid diff --git a/designs/ursula/src/front2.js b/designs/ursula/src/front2.js index b9aaeeaf12b..5eb94b06fe9 100644 --- a/designs/ursula/src/front2.js +++ b/designs/ursula/src/front2.js @@ -1,17 +1,10 @@ export default function (part) { - let { - options, - Point, - Path, + const { points, paths, - measurements, Snippet, snippets, store, - utils, - complete, - sa, paperless, macro, } = part.shorthand() diff --git a/designs/ursula/src/gusset2.js b/designs/ursula/src/gusset2.js index e99992e6f37..6c193d6eb53 100644 --- a/designs/ursula/src/gusset2.js +++ b/designs/ursula/src/gusset2.js @@ -1,23 +1,17 @@ export default function (part) { - let { - options, + const { Point, Path, points, paths, - measurements, Snippet, snippets, store, utils, - complete, - sa, - paperless, - macro, } = part.shorthand() // draw markers to indicate elastic distribution - if ((store.get('numLegMarkersFront') < 1) & (store.get('numLegMarkersGusset') > 0)) { + if ((store.get('numLegMarkersFront') < 1) && (store.get('numLegMarkersGusset') > 0)) { // draw first marker, on gusset // use (1 - frac) because the path is drawn from back to front points.leg1L = paths.gussetLegOpening.shiftFractionAlong(1 - store.get('legMarker1Frac')) @@ -27,7 +21,7 @@ export default function (part) { snippets.leg1R = new Snippet('notch', points.leg1R) } if ( - (store.get('numLegMarkersFront') < 2) & + (store.get('numLegMarkersFront') < 2) && (store.get('numLegMarkersFront') + store.get('numLegMarkersGusset') > 1) ) { // draw second marker, on gusset @@ -39,7 +33,7 @@ export default function (part) { snippets.leg2R = new Snippet('notch', points.leg2R) } if ( - (store.get('numLegMarkersFront') < 3) & + (store.get('numLegMarkersFront') < 3) && (store.get('numLegMarkersFront') + store.get('numLegMarkersGusset') > 3) ) { // draw third marker, on gusset diff --git a/packages/new-design/lib/cli.mjs b/packages/new-design/lib/cli.mjs index 9f5e99e747f..1920e09c4a4 100644 --- a/packages/new-design/lib/cli.mjs +++ b/packages/new-design/lib/cli.mjs @@ -1,5 +1,3 @@ -import path from 'path' -import chalk from 'chalk' import { banner } from './banner.mjs' import { checkNodeVersion, @@ -20,34 +18,6 @@ export const cli = async () => { const choices = await getChoices() // Create environment from template - const result = createEnvironment(choices) + createEnvironment(choices) } -/* - - - const dest = await createLibrary(params) - - console.log(` -🎉 ${strings[params.language]['cfp.patternCreated']} ${chalk.bold(dest)} - -${strings[params.language]['cfp.runTheseCommands']}: - - 👉 ${chalk.cyan(`cd ${path.join(params.shortName, 'example')} && ${params.manager} start`)} - -${strings[params.language]['cfp.startWebpack']} - -${strings[params.language]['cfp.devDocsAvailableAt']} - ${chalk.bold('https://freesewing.dev/')} - -${strings[params.language]['cfp.talkToUs']} - ${chalk.bold('https://discord.freesewing.org/')} - -` - ) - - return dest -} - - -*/ diff --git a/packages/new-design/lib/utils.mjs b/packages/new-design/lib/utils.mjs index 2b9ed474b46..25e7c273df9 100644 --- a/packages/new-design/lib/utils.mjs +++ b/packages/new-design/lib/utils.mjs @@ -1,6 +1,6 @@ import { config } from './config.mjs' import { mkdir, readFile, writeFile, copyFile } from 'node:fs/promises' -import { join, resolve, dirname, extname } from 'path' +import { join, dirname } from 'path' import mustache from 'mustache' import rdir from 'recursive-readdir' import chalk from 'chalk' diff --git a/packages/new-design/shared/lab/components/header.js b/packages/new-design/shared/lab/components/header.js index 9730bd9b8b9..f69f304ff6f 100644 --- a/packages/new-design/shared/lab/components/header.js +++ b/packages/new-design/shared/lab/components/header.js @@ -1,12 +1,10 @@ import { useState, useEffect } from 'react' -import Logo from 'shared/components/logos/freesewing.js' import Link from 'next/link' import ThemePicker from 'shared/components/theme-picker.js' import LocalePicker from 'shared/components/locale-picker.js' import CloseIcon from 'shared/components/icons/close.js' import MenuIcon from 'shared/components/icons/menu.js' import DocsIcon from 'shared/components/icons/docs.js' -import HelpIcon from 'shared/components/icons/help.js' import { useTranslation } from 'next-i18next' const Right = props => ( diff --git a/packages/new-design/shared/lab/components/layouts/bare.js b/packages/new-design/shared/lab/components/layouts/bare.js index f7a390a90eb..b21c698c6cc 100644 --- a/packages/new-design/shared/lab/components/layouts/bare.js +++ b/packages/new-design/shared/lab/components/layouts/bare.js @@ -1,59 +1,7 @@ -import React from 'react' import { useRouter } from 'next/router' -import Link from 'next/link' -// Shared components -import Logo from 'shared/components/logos/freesewing.js' import Aside from 'shared/components/navigation/aside' -import get from 'lodash.get' import { BeforeNav } from './lab' -const PageTitle = ({ app, slug, title }) => { - if (title) return
{t('patrons:patronLead')}
-{t('patrons:patronPitch')}
+{t('patrons:patronLead')}
+{t('patrons:patronPitch')}
{t('patrons:patronLead')}
-{t('patrons:patronPitch')}
+{t('patrons:patronLead')}
+{t('patrons:patronPitch')}