diff --git a/config/software/plugins.json b/config/software/plugins.json index a034308b04f..e5e409b7083 100644 --- a/config/software/plugins.json +++ b/config/software/plugins.json @@ -3,19 +3,14 @@ "plugin-banner": "A FreeSewing plugin to repeat text on a path", "plugin-bundle": "An umbrella package of 8 essential FreeSewing build-time plugins", "plugin-bust": "A FreeSewing plugin that helps with bust-adjusting menswear patterns", - "plugin-buttons": "A FreeSewing plugin that provides button, buttonhole, and snap snippets", "plugin-cutlist": "A FreeSewing plugin to store data regarding a pattern's cutlist", "plugin-dimension": "A FreeSewing plugin to add dimensions to your (paperless) pattern", "plugin-flip": "A FreeSewing plugin to flip parts horizontally", "plugin-gore": "A FreeSewing plugin to generate gores for a semi-sphere or dome", - "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-measurements": "A FreeSewing plugin that adds additional measurements that can be calculated from existing ones", "plugin-mirror": "A FreeSewing plugin to mirror points or paths", - "plugin-notches": "A FreeSewing plugin that provides front and back notch snippets", "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", "plugin-svgattr": "A FreeSewing plugin to set SVG attributes", "plugin-theme": "A FreeSewing plugin that provides a default theme", diff --git a/designs/hortensia/src/frontpanel.mjs b/designs/hortensia/src/frontpanel.mjs index bd42576aba6..75e2b7e08a0 100644 --- a/designs/hortensia/src/frontpanel.mjs +++ b/designs/hortensia/src/frontpanel.mjs @@ -68,13 +68,13 @@ function draftHortensiaFrontpanel({ ) points.attachPoint2BR = new Point(handleVertPos + handleWidth * 2, h - h / 2 + handleSpace / 2) - macro('crossBox', { + macro('crossbox', { from: points.attachPoint1TL, to: points.attachPoint1BR, text: 'attachment', }) - macro('crossBox', { + macro('crossbox', { from: points.attachPoint2TL, to: points.attachPoint2BR, text: 'attachment', diff --git a/plugins/plugin-annotations/src/scalebox.mjs b/plugins/plugin-annotations/src/scalebox.mjs index 0463e72b6b8..5bbc60a3085 100644 --- a/plugins/plugin-annotations/src/scalebox.mjs +++ b/plugins/plugin-annotations/src/scalebox.mjs @@ -193,106 +193,3 @@ export const scalebox = { }, }, } - -export const miniscale = { - name: 'miniscale', - version, - macros: { - miniscale(so, { store, points, paths, scale, Point, Path }) { - // Passing `false` will remove the miniscale - if (so === false) { - for (const id of [ - '__miniscaleMetricTopLeft', - '__miniscaleMetricTopRight', - '__miniscaleMetricBottomRight', - '__miniscaleMetricBottomLeft', - '__miniscaleImperialTopLeft', - '__miniscaleImperialTopRight', - '__miniscaleImperialBottomRight', - '__miniscaleImperialBottomLeft', - '__miniscaleMetric', - '__miniscaleImperial', - ]) - delete points[id] - for (const id of ['__miniscaleMetric', '__miniscaleImperial']) delete paths[id] - return true - } - - // Convert scale to a value between 0 and 5, inclusive. - const scaleIndex = Math.ceil(6 * Math.max(0.1, Math.min(1, scale))) - 1 - - console.log({ MSat: so.at }) - - // Metric size in mm / display value and imperial size in mm / display value for each scale index. - const sizes = [ - [10, '1cm', 25.4 * 0.375, '⅜″'], - [13, '1.3cm', 25.4 * 0.5, '½″'], - [16, '1.6cm', 25.4 * 0.625, '⅝″'], - [19, '1.9cm', 25.4 * 0.75, '¾″'], - [22, '2.2cm', 25.4 * 0.875, '⅞″'], - [25, '2.5cm', 25.4 * 1, '1″'], - ] - const m = sizes[scaleIndex][0] / 2 - const i = sizes[scaleIndex][2] / 2 - const metricDisplaySize = sizes[scaleIndex][1] - const imperialDisplaySize = sizes[scaleIndex][3] - // Box points - points.__miniscaleMetricTopLeft = new Point(so.at.x - m, so.at.y - m) - points.__miniscaleMetricTopRight = new Point(so.at.x + m, so.at.y - m) - points.__miniscaleMetricBottomLeft = new Point(so.at.x - m, so.at.y + m) - points.__miniscaleMetricBottomRight = new Point(so.at.x + m, so.at.y + m) - points.__miniscaleImperialTopLeft = new Point(so.at.x - i, so.at.y - i) - points.__miniscaleImperialTopRight = new Point(so.at.x + i, so.at.y - i) - points.__miniscaleImperialBottomLeft = new Point(so.at.x - i, so.at.y + i) - points.__miniscaleImperialBottomRight = new Point(so.at.x + i, so.at.y + i) - // Text anchor points - points.__miniscaleMetric = new Point(so.at.x, so.at.y - 2 * scale) - points.__miniscaleImperial = new Point(so.at.x, so.at.y + 8 * scale) - // Rotation - if (so.rotate) { - so.rotate = Number(so.rotate) - let toRotate = [ - '__miniscaleMetricTopLeft', - '__miniscaleMetricTopRight', - '__miniscaleMetricBottomLeft', - '__miniscaleMetricBottomRight', - '__miniscaleImperialTopLeft', - '__miniscaleImperialTopRight', - '__miniscaleImperialBottomLeft', - '__miniscaleImperialBottomRight', - '__miniscaleMetric', - '__miniscaleImperial', - ] - for (const pid of toRotate) points[pid] = points[pid].rotate(so.rotate, so.at) - for (const pid of toRotate.slice(8)) { - points[pid].attributes.set( - 'data-text-transform', - `rotate(${so.rotate * -1}, ${points[pid].x}, ${points[pid].y})` - ) - } - } - // Paths - paths.__miniscaleImperial = new Path() - .attr('class', 'scalebox imperial fill-current') - .move(points.__miniscaleImperialTopLeft) - .line(points.__miniscaleImperialBottomLeft) - .line(points.__miniscaleImperialBottomRight) - .line(points.__miniscaleImperialTopRight) - .close() - paths.__miniscaleMetric = new Path() - .attr('class', 'scalebox metric fill-bg') - .move(points.__miniscaleMetricTopLeft) - .line(points.__miniscaleMetricBottomLeft) - .line(points.__miniscaleMetricBottomRight) - .line(points.__miniscaleMetricTopRight) - .close() - // Text - points.__miniscaleMetric = points.__miniscaleMetric - .attr('data-text', `${metricDisplaySize} x ${metricDisplaySize}`) - .attr('data-text-class', 'text-xs center') - points.__miniscaleImperial = points.__miniscaleImperial - .attr('data-text', `${imperialDisplaySize} x ${imperialDisplaySize}`) - .attr('data-text-class', 'text-xs center ') - }, - }, -} diff --git a/plugins/plugin-buttons/CHANGELOG.md b/plugins/plugin-buttons/CHANGELOG.md deleted file mode 100644 index adcc835291c..00000000000 --- a/plugins/plugin-buttons/CHANGELOG.md +++ /dev/null @@ -1,58 +0,0 @@ -# Change log for: @freesewing/plugin-buttons - - -## 2.21.0 (2022-06-27) - -### Changed - - - Migrated from Rollup to Esbuild for all builds - -## 2.19.6 (2021-12-29) - -### Added - - - Added (esm) unit tests - -### Changed - - - Add utility classes and CSS variables for better styling support - -### Fixed - - - Only add snippets once to SVG object - -## 2.17.0 (2021-07-01) - -### Changed - - - Is now included in plugin-bundle - -## 2.15.0 (2021-04-15) - -### Added - - - Added the buttonhole-end snippet - - Added the buttonhole-start snippet - -## 2.7.0 (2020-07-12) - -### Changed - - - Snippet names are changed, `snap-male` is now `snap-stud` and `snap-female` is now `snap-socket` Changing this to avoid needless use of gender related terminology. - -### Removed - - - Snippet `snap-male` and `snap-female` are no longer available. Use `snap-stud` and `snap-socket` instead - -## 2.0.0 (2019-08-25) - -### Added - - - Initial release - - -This is the **initial release**, and the start of this change log. - -> Prior to version 2, FreeSewing was not a JavaScript project. -> As such, that history is out of scope for this change log. - diff --git a/plugins/plugin-buttons/README.md b/plugins/plugin-buttons/README.md deleted file mode 100644 index e89dabb92be..00000000000 --- a/plugins/plugin-buttons/README.md +++ /dev/null @@ -1,294 +0,0 @@ -![FreeSewing](https://static.freesewing.org/banner.png) -

@freesewing/plugin-buttons on NPM - License: MIT - Code quality on DeepScan - Open issues tagged pkg:plugin-buttons - All Contributors -

Follow @freesewing_org on Twitter - Chat with us on Discord - Become a FreeSewing Patron - Follow @freesewing_org on Twitter -

- -# @freesewing/plugin-buttons - -A FreeSewing plugin that provides button, buttonhole, and snap snippets - - - - -> #### Note: Version 3 is a work in progress -> -> We are working on a new major version (v3) but it is not ready for prime-time. -> For production use, please refer to our v2 packages (the `latest` on NPM) -> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2). -> -> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now. - -## What am I looking at? 🤔 - -This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites. - -This folder holds: @freesewing/plugin-buttons - -If you're not entirely sure what to do or how to start, type this command: - -``` -npm run tips -``` - -> If you don't want to set up a dev environment, you can run it in your browser: -> -> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing) -> -> We recommend that you fork our repository and then -> put `gitpod.io/# to start up a browser-based dev environment of your own. - -## About FreeSewing 💀 - -Where the world of makers and developers collide, that's where you'll find FreeSewing. - -If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate -our sewing patterns adapted to your measurements. - -If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). -Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox -for parametric design of sewing patterns. But we also provide a range -of [plugins](https://freesewing.dev/reference/plugins/) that further extend the -functionality of the platform. - -If you have NodeJS installed, you can try it right now by running: - -```bash -npx create-freesewing-pattern -``` - -Or, consult our getting started guides -for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), -[MacOS](https://freesewing.dev/tutorials/getting-started-mac/), -or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). - -We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that -walks you through your first parametric design, -and [a friendly community](https://freesewing.org/community/where/) with -people who can help you when you get stuck. - -## 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, and you can spend a few coind without -hardship, then you should [join us and become a patron](https://freesewing.org/community/join). - -## Links 👩‍💻 - - - 💻 Makers website: [freesewing.org](https://freesewing.org) - - 💻 Developers website: [freesewing.dev](https://freesewing.dev) - - 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) - - ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) - - 🐦 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 [chatrooms on Discord](https://chat.freesewing.org/) are 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). - - - -## Contributors ✨ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Adam Tomkins
Adam Tomkins

📖
Alexandre Ignjatovic
Alexandre Ignjatovic

💻
AlfaLyr
AlfaLyr

💻 🔌 🎨
Andrew James
Andrew James

📖
Anneke
Anneke

📖 🌍
Annie Kao
Annie Kao

📖
Anternative
Anternative

📖
Anthony
Anthony

💬
Ari Grayzel-student
Ari Grayzel-student

💻
Bart
Bart

📖
BenJamesBen
BenJamesBen

💻 📖 🐛
Cameron Dubas
Cameron Dubas

📖
Carsten Biebricher
Carsten Biebricher

📖
Cathy Zoller
Cathy Zoller

📖
Chantal Lapointe
Chantal Lapointe

🌍
Damien PIQUET
Damien PIQUET

💻
Darigov Research
Darigov Research

📖 🤔
Elena FdR
Elena FdR

📖 📝
Emmanuel Nyachoke
Emmanuel Nyachoke

💻 📖
Enoch Riese
Enoch Riese

💻
EvEkSwed
EvEkSwed

🌍
Fantastik-Maman
Fantastik-Maman

🌍
Forrest O.
Forrest O.

📖
Frédéric
Frédéric

🌍
Glenn Matthews
Glenn Matthews

📖
Greg Sadetsky
Greg Sadetsky

📖
Igor Couto
Igor Couto

🐛
Ikko Ashimine
Ikko Ashimine

📖
Irapeke
Irapeke

🌍
Jacek Sawoszczuk
Jacek Sawoszczuk

📖
Jason Williams
Jason Williams

📖
Jeremy Jackson
Jeremy Jackson

💻
Jeroen Hoek
Jeroen Hoek

📖
Joe Schofield
Joe Schofield

📖
Joebidido
Joebidido

🌍
Joost De Cock
Joost De Cock

🚧
Josh Essman
Josh Essman

📖
Kake
Kake

📖
Kapunahele Wong
Kapunahele Wong

📖
Karen
Karen

📖 📋
Katie McGinley
Katie McGinley

📖
Kieran Klaassen
Kieran Klaassen

💻
Kittycatou
Kittycatou

🌍
Kris
Kris

📖
Kristin Ruben
Kristin Ruben

💻
Loudepeuter
Loudepeuter

🌍
Lucian
Lucian

📋
Marcus
Marcus

🌍
Martin Tribo
Martin Tribo

📖
Nadege Michel
Nadege Michel

⚠️ 📖
Natalia
Natalia

💻 🎨 📝
Nathan Yergler
Nathan Yergler

📖
Nick Dower
Nick Dower

📖 💻 🐛
Nikhil Chelliah
Nikhil Chelliah

📖
OysteinHoiby
OysteinHoiby

💻
Patrick Forringer
Patrick Forringer

🔌
Paul
Paul

📖 📝 🌍
Phillip Thelen
Phillip Thelen

💻
Pixieish
Pixieish

📖
Prof. dr. Sorcha Ní Dhubhghaill
Prof. dr. Sorcha Ní Dhubhghaill

📖
Quentin FELIX
Quentin FELIX

💻 🎨
Rik Hekker
Rik Hekker

🐛
Sam Livingston-Gray
Sam Livingston-Gray

📖
Sanne
Sanne

💻 📖
Sara Latorre
Sara Latorre

🌍
SeaZeeZee
SeaZeeZee

📖 💻
SimonbJohnson
SimonbJohnson

🐛
SirCharlotte
SirCharlotte

🌍
Slylele
Slylele

📖 🌍
Soazillon
Soazillon

🌍
SoneaTheBest
SoneaTheBest

🌍
Stefan Sydow
Stefan Sydow

🌍 📖 💻
Tríona
Tríona

📖
Unmutual
Unmutual

📖
Wouter van Wageningen
Wouter van Wageningen

💻 🎨 🔧
amysews
amysews

📖
anna-puk
anna-puk

💻
beautifulsummermoon
beautifulsummermoon

🌍
berce
berce

📖
biou
biou

💻
bobgeorgethe3rd
bobgeorgethe3rd

💻 📖 🎨
brmlyklr
brmlyklr

📖
chri5b
chri5b

💻 ⚠️
dingcycle
dingcycle

🌍
drowned-in-books
drowned-in-books

💬
econo202
econo202

📖
ericamattos
ericamattos

🌍
fightingrabbit
fightingrabbit

💻
gaylyndie
gaylyndie

📖
grimlokason
grimlokason

💻
hellgy
hellgy

🎨
jackseye
jackseye

📖
marckiesel
marckiesel

🌍
mesil
mesil

🐛
starfetch
starfetch

💻 📖 🌍 🎨
timorl
timorl

💻
ttimearl
ttimearl

🖋
tuesgloomsday
tuesgloomsday

📖
valadaptive
valadaptive

💻
viocky
viocky

🌍
woolishboy
woolishboy

💻
yc
yc

🌍
- - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! - diff --git a/plugins/plugin-buttons/build.mjs b/plugins/plugin-buttons/build.mjs deleted file mode 100644 index 99ace216bc8..00000000000 --- a/plugins/plugin-buttons/build.mjs +++ /dev/null @@ -1,35 +0,0 @@ -/* This script will build the package with esbuild */ -import esbuild from 'esbuild' -import pkg from './package.json' assert { type: 'json' } - -// Create banner based on package info -const banner = `/** - * ${pkg.name} | v${pkg.version} - * ${pkg.description} - * (c) ${new Date().getFullYear()} ${pkg.author} - * @license ${pkg.license} - */` - -// Shared esbuild options -const options = { - banner: { js: banner }, - bundle: true, - entryPoints: ['src/index.mjs'], - format: 'esm', - outfile: 'dist/index.mjs', - external: ['@freesewing'], - metafile: process.env.VERBOSE ? true : false, - minify: process.env.NO_MINIFY ? false : true, - sourcemap: true, -} - -// Let esbuild generate the build -const build = async () => { - const result = await esbuild.build(options).catch(() => process.exit(1)) - - if (process.env.VERBOSE) { - const info = await esbuild.analyzeMetafile(result.metafile) - console.log(info) - } -} -build() diff --git a/plugins/plugin-buttons/data.mjs b/plugins/plugin-buttons/data.mjs deleted file mode 100644 index 7770a858272..00000000000 --- a/plugins/plugin-buttons/data.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is auto-generated | All changes you make will be overwritten. -export const name = '@freesewing/plugin-buttons' -export const version = '3.0.0-alpha.4' -export const data = { name, version } diff --git a/plugins/plugin-buttons/img/example.png b/plugins/plugin-buttons/img/example.png deleted file mode 100644 index 70ea646c479..00000000000 Binary files a/plugins/plugin-buttons/img/example.png and /dev/null differ diff --git a/plugins/plugin-buttons/package.json b/plugins/plugin-buttons/package.json deleted file mode 100644 index 0f6b0d9aa32..00000000000 --- a/plugins/plugin-buttons/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@freesewing/plugin-buttons", - "version": "3.0.0-alpha.4", - "description": "A FreeSewing plugin that provides button, buttonhole, and snap snippets", - "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" - }, - "funding": { - "type": "individual", - "url": "https://freesewing.org/patrons/join" - }, - "keywords": [ - "freesewing", - "plugin", - "sewing pattern", - "sewing", - "design", - "parametric design", - "made to measure", - "diy", - "fashion" - ], - "type": "module", - "module": "dist/index.mjs", - "exports": { - ".": "./dist/index.mjs" - }, - "scripts": { - "build": "node build.mjs", - "clean": "rimraf dist", - "mbuild": "NO_MINIFY=1 node build.mjs", - "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "npx mocha tests/*.test.mjs", - "vbuild": "VERBOSE=1 node build.mjs", - "lab": "cd ../../sites/lab && yarn start", - "tips": "node ../../scripts/help.mjs", - "lint": "npx eslint 'src/**' 'tests/*.mjs'", - "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", - "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", - "cibuild_step1": "node build.mjs", - "wbuild": "node build.mjs", - "wcibuild_step1": "node build.mjs" - }, - "peerDependencies": { - "@freesewing/core": "3.0.0-alpha.4" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "10.0.0", - "chai": "4.2.0" - }, - "files": [ - "dist/*", - "README.md" - ], - "publishConfig": { - "access": "public", - "tag": "next" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8" - } -} diff --git a/plugins/plugin-buttons/src/index.mjs b/plugins/plugin-buttons/src/index.mjs deleted file mode 100644 index 1e552b10175..00000000000 --- a/plugins/plugin-buttons/src/index.mjs +++ /dev/null @@ -1,82 +0,0 @@ -import { name, version } from '../data.mjs' - -const defs = [ - // button - ` - - - - - - -`, - // buttonhole - ` - - - - - - - - -`, - // snaps - ` - - - - - - - - - - - - - -`, -] - -export const plugin = { - name, - version, - hooks: { - preRender: function (svg) { - for (const def of defs) { - if (svg.defs.indexOf(def) === -1) svg.defs += def - } - }, - }, -} - -// More specifically named exports -export const buttonsPlugin = plugin -export const pluginButtons = plugin diff --git a/plugins/plugin-buttons/tests/plugin.test.mjs b/plugins/plugin-buttons/tests/plugin.test.mjs deleted file mode 100644 index c24f22571b0..00000000000 --- a/plugins/plugin-buttons/tests/plugin.test.mjs +++ /dev/null @@ -1,113 +0,0 @@ -import chai from 'chai' -import { Design } from '@freesewing/core' -import { plugin } from '../src/index.mjs' - -const expect = chai.expect - -const Pattern = new Design() -const pattern = new Pattern().use(plugin) -pattern.draft().render() - -describe('Buttons Plugin Test', () => { - for (const snippet of ['button', 'buttonhole', 'snap-stud', 'snap-socket']) { - it(`Should add the ${snippet} snippet to defs`, () => { - expect(pattern.svg.defs.indexOf(``)).to.not.equal(-1) - }) - } - - it('Draws a button on an anchor point', () => { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('button', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('buttonhole', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('buttonhole-start', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('buttonhole-end', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('snap-stud', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' { - const part = { - name: 'test', - draft: ({ points, Point, snippets, Snippet, part }) => { - points.anchor = new Point(10, 20) - snippets.button = new Snippet('snap-socket', points.anchor) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const svg = new Pattern().draft().render() - expect(svg).to.contain(' Prior to version 2, FreeSewing was not a JavaScript project. -> As such, that history is out of scope for this change log. - diff --git a/plugins/plugin-grainline/README.md b/plugins/plugin-grainline/README.md deleted file mode 100644 index c4ca3662b85..00000000000 --- a/plugins/plugin-grainline/README.md +++ /dev/null @@ -1,294 +0,0 @@ -![FreeSewing](https://static.freesewing.org/banner.png) -

@freesewing/plugin-grainline on NPM - License: MIT - Code quality on DeepScan - Open issues tagged pkg:plugin-grainline - All Contributors -

Follow @freesewing_org on Twitter - Chat with us on Discord - Become a FreeSewing Patron - Follow @freesewing_org on Twitter -

- -# @freesewing/plugin-grainline - -A FreeSewing plugin to add grainline indicators on your patterns - - - - -> #### Note: Version 3 is a work in progress -> -> We are working on a new major version (v3) but it is not ready for prime-time. -> For production use, please refer to our v2 packages (the `latest` on NPM) -> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2). -> -> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now. - -## What am I looking at? 🤔 - -This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites. - -This folder holds: @freesewing/plugin-grainline - -If you're not entirely sure what to do or how to start, type this command: - -``` -npm run tips -``` - -> If you don't want to set up a dev environment, you can run it in your browser: -> -> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing) -> -> We recommend that you fork our repository and then -> put `gitpod.io/# to start up a browser-based dev environment of your own. - -## About FreeSewing 💀 - -Where the world of makers and developers collide, that's where you'll find FreeSewing. - -If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate -our sewing patterns adapted to your measurements. - -If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). -Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox -for parametric design of sewing patterns. But we also provide a range -of [plugins](https://freesewing.dev/reference/plugins/) that further extend the -functionality of the platform. - -If you have NodeJS installed, you can try it right now by running: - -```bash -npx create-freesewing-pattern -``` - -Or, consult our getting started guides -for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), -[MacOS](https://freesewing.dev/tutorials/getting-started-mac/), -or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). - -We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that -walks you through your first parametric design, -and [a friendly community](https://freesewing.org/community/where/) with -people who can help you when you get stuck. - -## 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, and you can spend a few coind without -hardship, then you should [join us and become a patron](https://freesewing.org/community/join). - -## Links 👩‍💻 - - - 💻 Makers website: [freesewing.org](https://freesewing.org) - - 💻 Developers website: [freesewing.dev](https://freesewing.dev) - - 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) - - ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) - - 🐦 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 [chatrooms on Discord](https://chat.freesewing.org/) are 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). - - - -## Contributors ✨ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Adam Tomkins
Adam Tomkins

📖
Alexandre Ignjatovic
Alexandre Ignjatovic

💻
AlfaLyr
AlfaLyr

💻 🔌 🎨
Andrew James
Andrew James

📖
Anneke
Anneke

📖 🌍
Annie Kao
Annie Kao

📖
Anternative
Anternative

📖
Anthony
Anthony

💬
Ari Grayzel-student
Ari Grayzel-student

💻
Bart
Bart

📖
BenJamesBen
BenJamesBen

💻 📖 🐛
Cameron Dubas
Cameron Dubas

📖
Carsten Biebricher
Carsten Biebricher

📖
Cathy Zoller
Cathy Zoller

📖
Chantal Lapointe
Chantal Lapointe

🌍
Damien PIQUET
Damien PIQUET

💻
Darigov Research
Darigov Research

📖 🤔
Elena FdR
Elena FdR

📖 📝
Emmanuel Nyachoke
Emmanuel Nyachoke

💻 📖
Enoch Riese
Enoch Riese

💻
EvEkSwed
EvEkSwed

🌍
Fantastik-Maman
Fantastik-Maman

🌍
Forrest O.
Forrest O.

📖
Frédéric
Frédéric

🌍
Glenn Matthews
Glenn Matthews

📖
Greg Sadetsky
Greg Sadetsky

📖
Igor Couto
Igor Couto

🐛
Ikko Ashimine
Ikko Ashimine

📖
Irapeke
Irapeke

🌍
Jacek Sawoszczuk
Jacek Sawoszczuk

📖
Jason Williams
Jason Williams

📖
Jeremy Jackson
Jeremy Jackson

💻
Jeroen Hoek
Jeroen Hoek

📖
Joe Schofield
Joe Schofield

📖
Joebidido
Joebidido

🌍
Joost De Cock
Joost De Cock

🚧
Josh Essman
Josh Essman

📖
Kake
Kake

📖
Kapunahele Wong
Kapunahele Wong

📖
Karen
Karen

📖 📋
Katie McGinley
Katie McGinley

📖
Kieran Klaassen
Kieran Klaassen

💻
Kittycatou
Kittycatou

🌍
Kris
Kris

📖
Kristin Ruben
Kristin Ruben

💻
Loudepeuter
Loudepeuter

🌍
Lucian
Lucian

📋
Marcus
Marcus

🌍
Martin Tribo
Martin Tribo

📖
Nadege Michel
Nadege Michel

⚠️ 📖
Natalia
Natalia

💻 🎨 📝
Nathan Yergler
Nathan Yergler

📖
Nick Dower
Nick Dower

📖 💻 🐛
Nikhil Chelliah
Nikhil Chelliah

📖
OysteinHoiby
OysteinHoiby

💻
Patrick Forringer
Patrick Forringer

🔌
Paul
Paul

📖 📝 🌍
Phillip Thelen
Phillip Thelen

💻
Pixieish
Pixieish

📖
Prof. dr. Sorcha Ní Dhubhghaill
Prof. dr. Sorcha Ní Dhubhghaill

📖
Quentin FELIX
Quentin FELIX

💻 🎨
Rik Hekker
Rik Hekker

🐛
Sam Livingston-Gray
Sam Livingston-Gray

📖
Sanne
Sanne

💻 📖
Sara Latorre
Sara Latorre

🌍
SeaZeeZee
SeaZeeZee

📖 💻
SimonbJohnson
SimonbJohnson

🐛
SirCharlotte
SirCharlotte

🌍
Slylele
Slylele

📖 🌍
Soazillon
Soazillon

🌍
SoneaTheBest
SoneaTheBest

🌍
Stefan Sydow
Stefan Sydow

🌍 📖 💻
Tríona
Tríona

📖
Unmutual
Unmutual

📖
Wouter van Wageningen
Wouter van Wageningen

💻 🎨 🔧
amysews
amysews

📖
anna-puk
anna-puk

💻
beautifulsummermoon
beautifulsummermoon

🌍
berce
berce

📖
biou
biou

💻
bobgeorgethe3rd
bobgeorgethe3rd

💻 📖 🎨
brmlyklr
brmlyklr

📖
chri5b
chri5b

💻 ⚠️
dingcycle
dingcycle

🌍
drowned-in-books
drowned-in-books

💬
econo202
econo202

📖
ericamattos
ericamattos

🌍
fightingrabbit
fightingrabbit

💻
gaylyndie
gaylyndie

📖
grimlokason
grimlokason

💻
hellgy
hellgy

🎨
jackseye
jackseye

📖
marckiesel
marckiesel

🌍
mesil
mesil

🐛
starfetch
starfetch

💻 📖 🌍 🎨
timorl
timorl

💻
ttimearl
ttimearl

🖋
tuesgloomsday
tuesgloomsday

📖
valadaptive
valadaptive

💻
viocky
viocky

🌍
woolishboy
woolishboy

💻
yc
yc

🌍
- - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! - diff --git a/plugins/plugin-grainline/build.mjs b/plugins/plugin-grainline/build.mjs deleted file mode 100644 index 99ace216bc8..00000000000 --- a/plugins/plugin-grainline/build.mjs +++ /dev/null @@ -1,35 +0,0 @@ -/* This script will build the package with esbuild */ -import esbuild from 'esbuild' -import pkg from './package.json' assert { type: 'json' } - -// Create banner based on package info -const banner = `/** - * ${pkg.name} | v${pkg.version} - * ${pkg.description} - * (c) ${new Date().getFullYear()} ${pkg.author} - * @license ${pkg.license} - */` - -// Shared esbuild options -const options = { - banner: { js: banner }, - bundle: true, - entryPoints: ['src/index.mjs'], - format: 'esm', - outfile: 'dist/index.mjs', - external: ['@freesewing'], - metafile: process.env.VERBOSE ? true : false, - minify: process.env.NO_MINIFY ? false : true, - sourcemap: true, -} - -// Let esbuild generate the build -const build = async () => { - const result = await esbuild.build(options).catch(() => process.exit(1)) - - if (process.env.VERBOSE) { - const info = await esbuild.analyzeMetafile(result.metafile) - console.log(info) - } -} -build() diff --git a/plugins/plugin-grainline/data.mjs b/plugins/plugin-grainline/data.mjs deleted file mode 100644 index 13664b7cb6a..00000000000 --- a/plugins/plugin-grainline/data.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is auto-generated | All changes you make will be overwritten. -export const name = '@freesewing/plugin-grainline' -export const version = '3.0.0-alpha.4' -export const data = { name, version } diff --git a/plugins/plugin-grainline/img/example.png b/plugins/plugin-grainline/img/example.png deleted file mode 100644 index c36c388f669..00000000000 Binary files a/plugins/plugin-grainline/img/example.png and /dev/null differ diff --git a/plugins/plugin-grainline/package.json b/plugins/plugin-grainline/package.json deleted file mode 100644 index 165666f7afd..00000000000 --- a/plugins/plugin-grainline/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@freesewing/plugin-grainline", - "version": "3.0.0-alpha.4", - "description": "A FreeSewing plugin to add grainline indicators on your patterns", - "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" - }, - "funding": { - "type": "individual", - "url": "https://freesewing.org/patrons/join" - }, - "keywords": [ - "freesewing", - "plugin", - "sewing pattern", - "sewing", - "design", - "parametric design", - "made to measure", - "diy", - "fashion" - ], - "type": "module", - "module": "dist/index.mjs", - "exports": { - ".": "./dist/index.mjs" - }, - "scripts": { - "build": "node build.mjs", - "clean": "rimraf dist", - "mbuild": "NO_MINIFY=1 node build.mjs", - "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "npx mocha tests/*.test.mjs", - "vbuild": "VERBOSE=1 node build.mjs", - "lab": "cd ../../sites/lab && yarn start", - "tips": "node ../../scripts/help.mjs", - "lint": "npx eslint 'src/**' 'tests/*.mjs'", - "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", - "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", - "cibuild_step1": "node build.mjs", - "wbuild": "node build.mjs", - "wcibuild_step1": "node build.mjs" - }, - "peerDependencies": { - "@freesewing/core": "3.0.0-alpha.4" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "10.0.0", - "chai": "4.2.0" - }, - "files": [ - "dist/*", - "README.md" - ], - "publishConfig": { - "access": "public", - "tag": "next" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8" - } -} diff --git a/plugins/plugin-grainline/src/index.mjs b/plugins/plugin-grainline/src/index.mjs deleted file mode 100644 index eb56aebda63..00000000000 --- a/plugins/plugin-grainline/src/index.mjs +++ /dev/null @@ -1,56 +0,0 @@ -import { name, version } from '../data.mjs' - -const markers = ` - - - - - -` - -const dflts = { text: 'grainline' } - -export const plugin = { - name, - version, - hooks: { - preRender: (svg) => { - if (svg.defs.indexOf(markers) === -1) svg.defs += markers - }, - }, - macros: { - grainline: function (so = {}, { points, paths, Path, complete, setGrain }) { - if (so === false) { - delete points.grainlineFrom - delete points.grainlineTo - delete paths.grainline - setGrain(90) // Restoring default - return true - } - so = { - ...dflts, - ...so, - } - // setGrain relies on plugin-cutlist - if (typeof setGrain === 'function') { - setGrain(so.from.angle(so.to)) - } - if (complete) { - points.grainlineFrom = so.from.shiftFractionTowards(so.to, 0.05) - points.grainlineTo = so.to.shiftFractionTowards(so.from, 0.05) - paths.grainline = new Path() - .move(points.grainlineFrom) - .line(points.grainlineTo) - .attr('class', 'note') - .attr('marker-start', 'url(#grainlineFrom)') - .attr('marker-end', 'url(#grainlineTo)') - .attr('data-text', so.text) - .attr('data-text-class', 'center fill-note') - } - }, - }, -} - -// More specifically named exports -export const grainlinePlugin = plugin -export const pluginGrainline = plugin diff --git a/plugins/plugin-grainline/src/markers.js b/plugins/plugin-grainline/src/markers.js deleted file mode 100644 index 2dc576b2e84..00000000000 --- a/plugins/plugin-grainline/src/markers.js +++ /dev/null @@ -1,9 +0,0 @@ -// FIXME identical arrow paths for dimensions, cutonfold, and grainline -export default ` - - - - - - -` diff --git a/plugins/plugin-grainline/tests/plugin.test.mjs b/plugins/plugin-grainline/tests/plugin.test.mjs deleted file mode 100644 index f8061011dbf..00000000000 --- a/plugins/plugin-grainline/tests/plugin.test.mjs +++ /dev/null @@ -1,39 +0,0 @@ -import chai from 'chai' -import { round, Design } from '@freesewing/core' -import { plugin } from '../src/index.mjs' - -const expect = chai.expect - -describe('Grainline Plugin Tests', () => { - it('Should run the default grainline macro', () => { - const part = { - name: 'test', - draft: ({ points, Point, macro, part }) => { - points.from = new Point(10, 20) - points.to = new Point(10, 230) - macro('grainline', { - from: points.from, - to: points.to, - }) - - return part - }, - plugins: [plugin], - } - const Pattern = new Design({ parts: [part] }) - const pattern = new Pattern() - pattern.draft() - const c = pattern.parts[0].test.paths.grainline - expect(c.attributes.get('class')).to.equal('note') - expect(c.attributes.get('marker-start')).to.equal('url(#grainlineFrom)') - expect(c.attributes.get('marker-end')).to.equal('url(#grainlineTo)') - expect(c.attributes.get('data-text')).to.equal('grainline') - expect(c.attributes.get('data-text-class')).to.equal('center fill-note') - expect(c.ops[0].type).to.equal('move') - expect(c.ops[1].type).to.equal('line') - expect(round(c.ops[0].to.x)).to.equal(10) - expect(round(c.ops[0].to.y)).to.equal(30.5) - expect(round(c.ops[1].to.x)).to.equal(10) - expect(round(c.ops[1].to.y)).to.equal(219.5) - }) -}) diff --git a/plugins/plugin-grainline/tests/shared.test.mjs b/plugins/plugin-grainline/tests/shared.test.mjs deleted file mode 100644 index 7bf4f668398..00000000000 --- a/plugins/plugin-grainline/tests/shared.test.mjs +++ /dev/null @@ -1,6 +0,0 @@ -// This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from '../src/index.mjs' -import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' - -// Run shared tests -sharedPluginTests(plugin) diff --git a/plugins/plugin-logo/.travis.yml b/plugins/plugin-logo/.travis.yml deleted file mode 100644 index 121b29f66a4..00000000000 --- a/plugins/plugin-logo/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -node_js: - - "node" -install: - - npm install - - npm run build -script: - - npm run test - - npm run coverage diff --git a/plugins/plugin-logo/CHANGELOG.md b/plugins/plugin-logo/CHANGELOG.md deleted file mode 100644 index 5c39d52b2ae..00000000000 --- a/plugins/plugin-logo/CHANGELOG.md +++ /dev/null @@ -1,33 +0,0 @@ -# Change log for: @freesewing/plugin-logo - - -## 2.21.0 (2022-06-27) - -### Changed - - - Migrated from Rollup to Esbuild for all builds - -## 2.19.6 (2021-12-29) - -### Added - - - Added (esm) unit tests - -## 2.15.0 (2021-04-15) - -### Added - - - Render logo in currentColor to support dark mode - -## 2.0.0 (2019-08-25) - -### Added - - - Initial release - - -This is the **initial release**, and the start of this change log. - -> Prior to version 2, FreeSewing was not a JavaScript project. -> As such, that history is out of scope for this change log. - diff --git a/plugins/plugin-logo/README.md b/plugins/plugin-logo/README.md deleted file mode 100644 index 19765aae122..00000000000 --- a/plugins/plugin-logo/README.md +++ /dev/null @@ -1,294 +0,0 @@ -![FreeSewing](https://static.freesewing.org/banner.png) -

@freesewing/plugin-logo on NPM - License: MIT - Code quality on DeepScan - Open issues tagged pkg:plugin-logo - All Contributors -

Follow @freesewing_org on Twitter - Chat with us on Discord - Become a FreeSewing Patron - Follow @freesewing_org on Twitter -

- -# @freesewing/plugin-logo - -A FreeSewing plugin to add our logo to your patterns - - - - -> #### Note: Version 3 is a work in progress -> -> We are working on a new major version (v3) but it is not ready for prime-time. -> For production use, please refer to our v2 packages (the `latest` on NPM) -> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2). -> -> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now. - -## What am I looking at? 🤔 - -This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites. - -This folder holds: @freesewing/plugin-logo - -If you're not entirely sure what to do or how to start, type this command: - -``` -npm run tips -``` - -> If you don't want to set up a dev environment, you can run it in your browser: -> -> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing) -> -> We recommend that you fork our repository and then -> put `gitpod.io/# to start up a browser-based dev environment of your own. - -## About FreeSewing 💀 - -Where the world of makers and developers collide, that's where you'll find FreeSewing. - -If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate -our sewing patterns adapted to your measurements. - -If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). -Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox -for parametric design of sewing patterns. But we also provide a range -of [plugins](https://freesewing.dev/reference/plugins/) that further extend the -functionality of the platform. - -If you have NodeJS installed, you can try it right now by running: - -```bash -npx create-freesewing-pattern -``` - -Or, consult our getting started guides -for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), -[MacOS](https://freesewing.dev/tutorials/getting-started-mac/), -or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). - -We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that -walks you through your first parametric design, -and [a friendly community](https://freesewing.org/community/where/) with -people who can help you when you get stuck. - -## 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, and you can spend a few coind without -hardship, then you should [join us and become a patron](https://freesewing.org/community/join). - -## Links 👩‍💻 - - - 💻 Makers website: [freesewing.org](https://freesewing.org) - - 💻 Developers website: [freesewing.dev](https://freesewing.dev) - - 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) - - ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) - - 🐦 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 [chatrooms on Discord](https://chat.freesewing.org/) are 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). - - - -## Contributors ✨ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Adam Tomkins
Adam Tomkins

📖
Alexandre Ignjatovic
Alexandre Ignjatovic

💻
AlfaLyr
AlfaLyr

💻 🔌 🎨
Andrew James
Andrew James

📖
Anneke
Anneke

📖 🌍
Annie Kao
Annie Kao

📖
Anternative
Anternative

📖
Anthony
Anthony

💬
Ari Grayzel-student
Ari Grayzel-student

💻
Bart
Bart

📖
BenJamesBen
BenJamesBen

💻 📖 🐛
Cameron Dubas
Cameron Dubas

📖
Carsten Biebricher
Carsten Biebricher

📖
Cathy Zoller
Cathy Zoller

📖
Chantal Lapointe
Chantal Lapointe

🌍
Damien PIQUET
Damien PIQUET

💻
Darigov Research
Darigov Research

📖 🤔
Elena FdR
Elena FdR

📖 📝
Emmanuel Nyachoke
Emmanuel Nyachoke

💻 📖
Enoch Riese
Enoch Riese

💻
EvEkSwed
EvEkSwed

🌍
Fantastik-Maman
Fantastik-Maman

🌍
Forrest O.
Forrest O.

📖
Frédéric
Frédéric

🌍
Glenn Matthews
Glenn Matthews

📖
Greg Sadetsky
Greg Sadetsky

📖
Igor Couto
Igor Couto

🐛
Ikko Ashimine
Ikko Ashimine

📖
Irapeke
Irapeke

🌍
Jacek Sawoszczuk
Jacek Sawoszczuk

📖
Jason Williams
Jason Williams

📖
Jeremy Jackson
Jeremy Jackson

💻
Jeroen Hoek
Jeroen Hoek

📖
Joe Schofield
Joe Schofield

📖
Joebidido
Joebidido

🌍
Joost De Cock
Joost De Cock

🚧
Josh Essman
Josh Essman

📖
Kake
Kake

📖
Kapunahele Wong
Kapunahele Wong

📖
Karen
Karen

📖 📋
Katie McGinley
Katie McGinley

📖
Kieran Klaassen
Kieran Klaassen

💻
Kittycatou
Kittycatou

🌍
Kris
Kris

📖
Kristin Ruben
Kristin Ruben

💻
Loudepeuter
Loudepeuter

🌍
Lucian
Lucian

📋
Marcus
Marcus

🌍
Martin Tribo
Martin Tribo

📖
Nadege Michel
Nadege Michel

⚠️ 📖
Natalia
Natalia

💻 🎨 📝
Nathan Yergler
Nathan Yergler

📖
Nick Dower
Nick Dower

📖 💻 🐛
Nikhil Chelliah
Nikhil Chelliah

📖
OysteinHoiby
OysteinHoiby

💻
Patrick Forringer
Patrick Forringer

🔌
Paul
Paul

📖 📝 🌍
Phillip Thelen
Phillip Thelen

💻
Pixieish
Pixieish

📖
Prof. dr. Sorcha Ní Dhubhghaill
Prof. dr. Sorcha Ní Dhubhghaill

📖
Quentin FELIX
Quentin FELIX

💻 🎨
Rik Hekker
Rik Hekker

🐛
Sam Livingston-Gray
Sam Livingston-Gray

📖
Sanne
Sanne

💻 📖
Sara Latorre
Sara Latorre

🌍
SeaZeeZee
SeaZeeZee

📖 💻
SimonbJohnson
SimonbJohnson

🐛
SirCharlotte
SirCharlotte

🌍
Slylele
Slylele

📖 🌍
Soazillon
Soazillon

🌍
SoneaTheBest
SoneaTheBest

🌍
Stefan Sydow
Stefan Sydow

🌍 📖 💻
Tríona
Tríona

📖
Unmutual
Unmutual

📖
Wouter van Wageningen
Wouter van Wageningen

💻 🎨 🔧
amysews
amysews

📖
anna-puk
anna-puk

💻
beautifulsummermoon
beautifulsummermoon

🌍
berce
berce

📖
biou
biou

💻
bobgeorgethe3rd
bobgeorgethe3rd

💻 📖 🎨
brmlyklr
brmlyklr

📖
chri5b
chri5b

💻 ⚠️
dingcycle
dingcycle

🌍
drowned-in-books
drowned-in-books

💬
econo202
econo202

📖
ericamattos
ericamattos

🌍
fightingrabbit
fightingrabbit

💻
gaylyndie
gaylyndie

📖
grimlokason
grimlokason

💻
hellgy
hellgy

🎨
jackseye
jackseye

📖
marckiesel
marckiesel

🌍
mesil
mesil

🐛
starfetch
starfetch

💻 📖 🌍 🎨
timorl
timorl

💻
ttimearl
ttimearl

🖋
tuesgloomsday
tuesgloomsday

📖
valadaptive
valadaptive

💻
viocky
viocky

🌍
woolishboy
woolishboy

💻
yc
yc

🌍
- - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! - diff --git a/plugins/plugin-logo/build.mjs b/plugins/plugin-logo/build.mjs deleted file mode 100644 index 99ace216bc8..00000000000 --- a/plugins/plugin-logo/build.mjs +++ /dev/null @@ -1,35 +0,0 @@ -/* This script will build the package with esbuild */ -import esbuild from 'esbuild' -import pkg from './package.json' assert { type: 'json' } - -// Create banner based on package info -const banner = `/** - * ${pkg.name} | v${pkg.version} - * ${pkg.description} - * (c) ${new Date().getFullYear()} ${pkg.author} - * @license ${pkg.license} - */` - -// Shared esbuild options -const options = { - banner: { js: banner }, - bundle: true, - entryPoints: ['src/index.mjs'], - format: 'esm', - outfile: 'dist/index.mjs', - external: ['@freesewing'], - metafile: process.env.VERBOSE ? true : false, - minify: process.env.NO_MINIFY ? false : true, - sourcemap: true, -} - -// Let esbuild generate the build -const build = async () => { - const result = await esbuild.build(options).catch(() => process.exit(1)) - - if (process.env.VERBOSE) { - const info = await esbuild.analyzeMetafile(result.metafile) - console.log(info) - } -} -build() diff --git a/plugins/plugin-logo/data.mjs b/plugins/plugin-logo/data.mjs deleted file mode 100644 index e6636323887..00000000000 --- a/plugins/plugin-logo/data.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is auto-generated | All changes you make will be overwritten. -export const name = '@freesewing/plugin-logo' -export const version = '3.0.0-alpha.4' -export const data = { name, version } diff --git a/plugins/plugin-logo/img/example.png b/plugins/plugin-logo/img/example.png deleted file mode 100644 index 70ea646c479..00000000000 Binary files a/plugins/plugin-logo/img/example.png and /dev/null differ diff --git a/plugins/plugin-logo/package.json b/plugins/plugin-logo/package.json deleted file mode 100644 index ce7464ffb0b..00000000000 --- a/plugins/plugin-logo/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@freesewing/plugin-logo", - "version": "3.0.0-alpha.4", - "description": "A FreeSewing plugin to add our logo to your patterns", - "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" - }, - "funding": { - "type": "individual", - "url": "https://freesewing.org/patrons/join" - }, - "keywords": [ - "freesewing", - "plugin", - "sewing pattern", - "sewing", - "design", - "parametric design", - "made to measure", - "diy", - "fashion" - ], - "type": "module", - "module": "dist/index.mjs", - "exports": { - ".": "./dist/index.mjs" - }, - "scripts": { - "build": "node build.mjs", - "clean": "rimraf dist", - "mbuild": "NO_MINIFY=1 node build.mjs", - "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "npx mocha tests/*.test.mjs", - "vbuild": "VERBOSE=1 node build.mjs", - "lab": "cd ../../sites/lab && yarn start", - "tips": "node ../../scripts/help.mjs", - "lint": "npx eslint 'src/**' 'tests/*.mjs'", - "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", - "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", - "cibuild_step1": "node build.mjs", - "wbuild": "node build.mjs", - "wcibuild_step1": "node build.mjs" - }, - "peerDependencies": { - "@freesewing/core": "3.0.0-alpha.4" - }, - "dependencies": {}, - "devDependencies": { - "mocha": "10.0.0", - "chai": "4.2.0" - }, - "files": [ - "dist/*", - "README.md" - ], - "publishConfig": { - "access": "public", - "tag": "next" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8" - } -} diff --git a/plugins/plugin-logo/src/index.mjs b/plugins/plugin-logo/src/index.mjs deleted file mode 100644 index 1d2250741b9..00000000000 --- a/plugins/plugin-logo/src/index.mjs +++ /dev/null @@ -1,18 +0,0 @@ -import { name, version } from '../data.mjs' - -const logo = (scale) => - `` - -export const plugin = { - name, - version, - hooks: { - preRender: (svg) => { - if (svg.defs.indexOf('id="logo"') === -1) svg.defs += logo(svg.pattern.settings[0].scale) - }, - }, -} - -// More specifically named exports -export const logoPlugin = plugin -export const pluginLogo = plugin diff --git a/plugins/plugin-logo/tests/plugin.test.mjs b/plugins/plugin-logo/tests/plugin.test.mjs deleted file mode 100644 index e3829a81d67..00000000000 --- a/plugins/plugin-logo/tests/plugin.test.mjs +++ /dev/null @@ -1,16 +0,0 @@ -import chai from 'chai' -import { Design } from '@freesewing/core' -import { plugin } from '../src/index.mjs' - -const expect = chai.expect - -describe('Logo Plugin Tests', () => { - it('Should import style and defs', () => { - const Pattern = new Design() - const pattern = new Pattern().use(plugin) - pattern.draft().render() - expect(pattern.svg.defs).to.contain( - '