create a lily design
This commit is contained in:
parent
02a0328cb1
commit
c990c337cb
24 changed files with 502 additions and 50 deletions
|
@ -554,14 +554,25 @@
|
||||||
"techniques": []
|
"techniques": []
|
||||||
},
|
},
|
||||||
"naomiwu": {
|
"naomiwu": {
|
||||||
"description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt",
|
|
||||||
"code": "Joost De Cock",
|
"code": "Joost De Cock",
|
||||||
"design": ["Naomi Wu", "Joost De Cock"],
|
"description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt",
|
||||||
|
"design": [
|
||||||
|
"Naomi Wu",
|
||||||
|
"Joost De Cock"
|
||||||
|
],
|
||||||
"difficulty": 3,
|
"difficulty": 3,
|
||||||
"lab": false,
|
"lab": false,
|
||||||
"org": false,
|
"org": false,
|
||||||
"tags": ["bottoms", "skirts"],
|
"tags": [
|
||||||
"techniques": ["button", "hem", "pocket", "lining"]
|
"bottoms",
|
||||||
|
"skirts"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"button",
|
||||||
|
"hem",
|
||||||
|
"pocket",
|
||||||
|
"lining"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"noble": {
|
"noble": {
|
||||||
"code": "Wouter Van Wageningen",
|
"code": "Wouter Van Wageningen",
|
||||||
|
@ -976,5 +987,19 @@
|
||||||
"hem",
|
"hem",
|
||||||
"button"
|
"button"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"lily": {
|
||||||
|
"code": "Coder name",
|
||||||
|
"description": "A FreeSewing pattern that needs a description",
|
||||||
|
"design": "Designer name",
|
||||||
|
"difficulty": 1,
|
||||||
|
"lab": true,
|
||||||
|
"org": false,
|
||||||
|
"tags": [
|
||||||
|
"tagname"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"techname"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
17
designs/lily/CHANGELOG.md
Normal file
17
designs/lily/CHANGELOG.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Change log for: @freesewing/lily
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.0 (2023-09-30)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- All FreeSewing pacakges are now ESM only.
|
||||||
|
- All FreeSewing pacakges now use named exports.
|
||||||
|
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
162
designs/lily/README.md
Normal file
162
designs/lily/README.md
Normal file
|
@ -0,0 +1,162 @@
|
||||||
|
<p align='center'><a
|
||||||
|
href="https://www.npmjs.com/package/@freesewing/lily"
|
||||||
|
title="@freesewing/lily on NPM"
|
||||||
|
><img src="https://img.shields.io/npm/v/@freesewing/lily.svg"
|
||||||
|
alt="@freesewing/lily on NPM"/>
|
||||||
|
</a><a
|
||||||
|
href="https://opensource.org/licenses/MIT"
|
||||||
|
title="License: MIT"
|
||||||
|
><img src="https://img.shields.io/npm/l/@freesewing/lily.svg?label=License"
|
||||||
|
alt="License: MIT"/>
|
||||||
|
</a><a
|
||||||
|
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
||||||
|
title="Code quality on DeepScan"
|
||||||
|
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
||||||
|
alt="Code quality on DeepScan"/>
|
||||||
|
</a><a
|
||||||
|
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Alily"
|
||||||
|
title="Open issues tagged pkg:lily"
|
||||||
|
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:lily.svg?label=Issues"
|
||||||
|
alt="Open issues tagged pkg:lily"/>
|
||||||
|
</a><a
|
||||||
|
href="#contributors-"
|
||||||
|
title="All Contributors"
|
||||||
|
><img src="https://img.shields.io/badge/all_contributors-124-pink.svg"
|
||||||
|
alt="All Contributors"/>
|
||||||
|
</a></p><p align='center'><a
|
||||||
|
href="https://twitter.com/freesewing_org"
|
||||||
|
title="Follow @freesewing_org on Twitter"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
||||||
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
|
</a><a
|
||||||
|
href="https://chat.freesewing.org"
|
||||||
|
title="Chat with us on Discord"
|
||||||
|
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||||
|
alt="Chat with us on Discord"/>
|
||||||
|
</a><a
|
||||||
|
href="https://freesewing.org/patrons/join"
|
||||||
|
title="Become a FreeSewing Patron"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
|
alt="Become a FreeSewing Patron"/>
|
||||||
|
</a><a
|
||||||
|
href="https://instagram.com/freesewing_org"
|
||||||
|
title="Follow @freesewing_org on Twitter"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
||||||
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
|
</a></p>
|
||||||
|
|
||||||
|
# @freesewing/lily
|
||||||
|
|
||||||
|
A FreeSewing pattern that needs a description
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# FreeSewing
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
>#### Support FreeSewing: Become a patron, or make a one-time donation 🥰
|
||||||
|
>
|
||||||
|
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
|
>
|
||||||
|
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
|
||||||
|
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
||||||
|
|
||||||
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
|
||||||
|
|
||||||
|
This folder holds: @freesewing/lily
|
||||||
|
|
||||||
|
If you're not entirely sure what to do or how to start, type this command:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run tips
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
|
>
|
||||||
|
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
||||||
|
>
|
||||||
|
> We recommend that you fork our repository and then
|
||||||
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
> 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
|
||||||
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
|
||||||
|
for parametric design of sewing patterns. But FreeSewing also provides 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 @freesewing/new-design
|
||||||
|
```
|
||||||
|
|
||||||
|
Getting started guides are available for:
|
||||||
|
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
|
||||||
|
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
|
||||||
|
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
|
||||||
|
|
||||||
|
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
|
||||||
|
show you how to create your first parametric design.
|
||||||
|
|
||||||
|
## Getting started ⚡
|
||||||
|
|
||||||
|
To get started with FreeSewing, you can spin up our development environment with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx @freesewing/new-design
|
||||||
|
```
|
||||||
|
|
||||||
|
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
|
||||||
|
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone git@github.com:freesewing/freesewing.git
|
||||||
|
cd freesewing
|
||||||
|
yarn kickstart
|
||||||
|
```
|
||||||
|
|
||||||
|
## Links 👩💻
|
||||||
|
|
||||||
|
**Official channels**
|
||||||
|
|
||||||
|
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||||
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||||
|
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||||
|
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||||
|
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||||
|
[GitHub](https://github.com/freesewing/freesewing)
|
||||||
|
|
||||||
|
**Social media**
|
||||||
|
|
||||||
|
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||||
|
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||||
|
|
||||||
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
|
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||||
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
|
## 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 🤯
|
||||||
|
|
||||||
|
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||||
|
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||||
|
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||||
|
[GitHub](https://github.com/freesewing/freesewing).
|
||||||
|
|
35
designs/lily/build.mjs
Normal file
35
designs/lily/build.mjs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/* 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()
|
4
designs/lily/data.mjs
Normal file
4
designs/lily/data.mjs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
// This file is auto-generated | All changes you make will be overwritten.
|
||||||
|
export const name = '@freesewing/lily'
|
||||||
|
export const version = '3.2.0'
|
||||||
|
export const data = { name, version }
|
7
designs/lily/i18n/de.json
Normal file
7
designs/lily/i18n/de.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/lily/i18n/en.json
Normal file
7
designs/lily/i18n/en.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/lily/i18n/es.json
Normal file
7
designs/lily/i18n/es.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/lily/i18n/fr.json
Normal file
7
designs/lily/i18n/fr.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
8
designs/lily/i18n/index.mjs
Normal file
8
designs/lily/i18n/index.mjs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import en from './en.json' assert { type: 'json' }
|
||||||
|
import de from './de.json' assert { type: 'json' }
|
||||||
|
import es from './es.json' assert { type: 'json' }
|
||||||
|
import fr from './fr.json' assert { type: 'json' }
|
||||||
|
import nl from './nl.json' assert { type: 'json' }
|
||||||
|
import uk from './uk.json' assert { type: 'json' }
|
||||||
|
|
||||||
|
export const i18n = { en, de, es, fr, nl, uk }
|
7
designs/lily/i18n/nl.json
Normal file
7
designs/lily/i18n/nl.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/lily/i18n/uk.json
Normal file
7
designs/lily/i18n/uk.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Lily",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
72
designs/lily/package.json
Normal file
72
designs/lily/package.json
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"name": "@freesewing/lily",
|
||||||
|
"version": "3.2.0",
|
||||||
|
"description": "A FreeSewing pattern that needs a description",
|
||||||
|
"author": "Joost De Cock <joost@joost.at> (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",
|
||||||
|
"design",
|
||||||
|
"diy",
|
||||||
|
"fashion",
|
||||||
|
"made to measure",
|
||||||
|
"parametric design",
|
||||||
|
"pattern",
|
||||||
|
"sewing",
|
||||||
|
"sewing pattern"
|
||||||
|
],
|
||||||
|
"type": "module",
|
||||||
|
"module": "dist/index.mjs",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"internal": "./src/index.mjs",
|
||||||
|
"default": "./dist/index.mjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "node build.mjs",
|
||||||
|
"build:all": "yarn build",
|
||||||
|
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
||||||
|
"wbuild": "node build.mjs",
|
||||||
|
"wbuild:all": "yarn wbuild"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@freesewing/core": "3.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"mocha": "10.2.0",
|
||||||
|
"chai": "5.0.3",
|
||||||
|
"@freesewing/models": "3.2.0",
|
||||||
|
"@freesewing/plugin-timing": "3.2.0"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist/*",
|
||||||
|
"README.md"
|
||||||
|
],
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public",
|
||||||
|
"tag": "latest"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 18.17.0 <22"
|
||||||
|
}
|
||||||
|
}
|
47
designs/lily/src/box.mjs
Normal file
47
designs/lily/src/box.mjs
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
function draftBox({ options, Point, Path, points, paths, Snippet, snippets, sa, macro, part }) {
|
||||||
|
const w = 500 * options.size
|
||||||
|
points.topLeft = new Point(0, 0)
|
||||||
|
points.topRight = new Point(w, 0)
|
||||||
|
points.bottomLeft = new Point(0, w / 2)
|
||||||
|
points.bottomRight = new Point(w, w / 2)
|
||||||
|
|
||||||
|
paths.seam = new Path()
|
||||||
|
.move(points.topLeft)
|
||||||
|
.line(points.bottomLeft)
|
||||||
|
.line(points.bottomRight)
|
||||||
|
.line(points.topRight)
|
||||||
|
.line(points.topLeft)
|
||||||
|
.close()
|
||||||
|
.attr('class', 'fabric')
|
||||||
|
|
||||||
|
points.logo = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
points.text = points.logo.shift(-90, w / 8).addText('hello', 'center')
|
||||||
|
|
||||||
|
if (sa) {
|
||||||
|
paths.sa = paths.seam.offset(sa).addClass('fabric sa')
|
||||||
|
}
|
||||||
|
|
||||||
|
macro('hd', {
|
||||||
|
id: 'hWidth',
|
||||||
|
from: points.bottomLeft,
|
||||||
|
to: points.bottomRight,
|
||||||
|
y: points.bottomLeft.y + sa + 15,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
id: 'vHeight',
|
||||||
|
from: points.bottomRight,
|
||||||
|
to: points.topRight,
|
||||||
|
x: points.topRight.x + sa + 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
return part
|
||||||
|
}
|
||||||
|
|
||||||
|
export const box = {
|
||||||
|
name: 'box',
|
||||||
|
options: {
|
||||||
|
size: { pct: 50, min: 10, max: 100, menu: 'fit' },
|
||||||
|
},
|
||||||
|
draft: draftBox,
|
||||||
|
}
|
16
designs/lily/src/index.mjs
Normal file
16
designs/lily/src/index.mjs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Design } from '@freesewing/core'
|
||||||
|
import { i18n } from '../i18n/index.mjs'
|
||||||
|
import { data } from '../data.mjs'
|
||||||
|
// Parts
|
||||||
|
import { box } from './box.mjs'
|
||||||
|
|
||||||
|
// Create new design
|
||||||
|
const Lily = new Design({
|
||||||
|
data,
|
||||||
|
parts: [box],
|
||||||
|
})
|
||||||
|
|
||||||
|
// Named exports
|
||||||
|
export { box, i18n, Lily }
|
20
designs/lily/tests/shared.test.mjs
Normal file
20
designs/lily/tests/shared.test.mjs
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
|
import { Lily, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
|
// Shared tests
|
||||||
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
|
||||||
|
import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
|
// Test config
|
||||||
|
testPatternConfig(Lily)
|
||||||
|
|
||||||
|
// Test translation
|
||||||
|
testPatternI18n(Lily, i18n)
|
||||||
|
|
||||||
|
// Test drafting - Change the second parameter to `true` to log errors
|
||||||
|
testPatternDrafting(Lily, false)
|
||||||
|
|
||||||
|
// Test sampling - Change the second parameter to `true` to log errors
|
||||||
|
testPatternSampling(Lily, false)
|
|
@ -28,12 +28,12 @@
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-sesv2": "3.525.0",
|
"@aws-sdk/client-sesv2": "3.504.0",
|
||||||
"@prisma/client": "5.10.2",
|
"@prisma/client": "5.9.0",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "16.4.5",
|
"dotenv": "16.4.1",
|
||||||
"express": "4.18.3",
|
"express": "4.18.2",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"mustache": "4.2.0",
|
"mustache": "4.2.0",
|
||||||
|
@ -41,19 +41,19 @@
|
||||||
"passport": "0.7.0",
|
"passport": "0.7.0",
|
||||||
"passport-http": "0.3.0",
|
"passport-http": "0.3.0",
|
||||||
"passport-jwt": "4.0.1",
|
"passport-jwt": "4.0.1",
|
||||||
"pino": "8.19.0",
|
"pino": "8.17.2",
|
||||||
"qrcode": "1.5.3",
|
"qrcode": "1.5.3",
|
||||||
"swagger-ui-dist": "5.11.8",
|
"swagger-ui-dist": "5.11.2",
|
||||||
"swagger-ui-express": "5.0.0"
|
"swagger-ui-express": "5.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "5.1.0",
|
"chai": "5.0.3",
|
||||||
"chai-http": "4.4.0",
|
"chai-http": "4.4.0",
|
||||||
"esbuild": "0.20.1",
|
"esbuild": "0.20.0",
|
||||||
"mocha": "10.3.0",
|
"mocha": "10.2.0",
|
||||||
"mocha-steps": "1.3.0",
|
"mocha-steps": "1.3.0",
|
||||||
"nodemon": "3.1.0",
|
"nodemon": "3.0.3",
|
||||||
"prisma": "5.10.2"
|
"prisma": "5.9.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 18.17.0 <22"
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
"@next/bundle-analyzer": "14.1.0",
|
"@next/bundle-analyzer": "14.1.0",
|
||||||
"@tailwindcss/typography": "0.5.10",
|
"@tailwindcss/typography": "0.5.10",
|
||||||
"algoliasearch": "4.22.1",
|
"algoliasearch": "4.22.1",
|
||||||
"daisyui": "4.7.2",
|
"daisyui": "4.6.1",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-hotkeys-hook": "4.5.0",
|
"react-hotkeys-hook": "4.4.4",
|
||||||
"react-instantsearch-dom": "6.40.4",
|
"react-instantsearch-dom": "6.40.4",
|
||||||
"react-instantsearch-hooks-web": "6.47.3",
|
"react-instantsearch-hooks-web": "6.47.3",
|
||||||
"react-swipeable": "7.0.1",
|
"react-swipeable": "7.0.1",
|
||||||
|
@ -61,11 +61,11 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "10.4.17",
|
"autoprefixer": "10.4.17",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"postcss": "8.4.35",
|
"postcss": "8.4.33",
|
||||||
"remark-extract-frontmatter": "3.2.0",
|
"remark-extract-frontmatter": "3.2.0",
|
||||||
"remark-mdx-frontmatter": "4.0.0",
|
"remark-mdx-frontmatter": "4.0.0",
|
||||||
"tailwindcss": "3.4.1",
|
"tailwindcss": "3.4.1",
|
||||||
"yaml-loader": "0.8.1"
|
"yaml-loader": "0.8.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 18.17.0 <22"
|
||||||
|
|
|
@ -58,6 +58,7 @@ import { Wahid as wahid } from '@freesewing/wahid'
|
||||||
import { Walburga as walburga } from '@freesewing/walburga'
|
import { Walburga as walburga } from '@freesewing/walburga'
|
||||||
import { Waralee as waralee } from '@freesewing/waralee'
|
import { Waralee as waralee } from '@freesewing/waralee'
|
||||||
import { Yuri as yuri } from '@freesewing/yuri'
|
import { Yuri as yuri } from '@freesewing/yuri'
|
||||||
|
import { Lily as lily } from '@freesewing/lily'
|
||||||
|
|
||||||
const designs = {
|
const designs = {
|
||||||
aaron,
|
aaron,
|
||||||
|
@ -116,6 +117,7 @@ const designs = {
|
||||||
walburga,
|
walburga,
|
||||||
waralee,
|
waralee,
|
||||||
yuri,
|
yuri,
|
||||||
|
lily,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "4.7.2",
|
"daisyui": "4.6.1",
|
||||||
"i18next": "23.10.0",
|
"i18next": "23.8.1",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
"ora": "8.0.1",
|
"ora": "8.0.1",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
"react-hotkeys-hook": "4.5.0",
|
"react-hotkeys-hook": "4.4.4",
|
||||||
"react-i18next": "14.0.5",
|
"react-i18next": "14.0.1",
|
||||||
"react-instantsearch-dom": "6.40.4",
|
"react-instantsearch-dom": "6.40.4",
|
||||||
"react-swipeable": "7.0.1",
|
"react-swipeable": "7.0.1",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
|
@ -62,11 +62,11 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "10.4.17",
|
"autoprefixer": "10.4.17",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"postcss": "8.4.35",
|
"postcss": "8.4.33",
|
||||||
"remark-extract-frontmatter": "3.2.0",
|
"remark-extract-frontmatter": "3.2.0",
|
||||||
"remark-mdx-frontmatter": "4.0.0",
|
"remark-mdx-frontmatter": "4.0.0",
|
||||||
"tailwindcss": "3.4.1",
|
"tailwindcss": "3.4.1",
|
||||||
"yaml-loader": "0.8.1"
|
"yaml-loader": "0.8.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 18.17.0 <22"
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bugsnag/js": "7.22.4",
|
"@bugsnag/js": "7.22.3",
|
||||||
"@bugsnag/plugin-react": "7.19.0",
|
"@bugsnag/plugin-react": "7.19.0",
|
||||||
"@mdx-js/mdx": "^3.0.0",
|
"@mdx-js/mdx": "^3.0.0",
|
||||||
"@mdx-js/react": "^3.0.0",
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
@ -37,11 +37,11 @@
|
||||||
"@tailwindcss/typography": "0.5.10",
|
"@tailwindcss/typography": "0.5.10",
|
||||||
"algoliasearch": "4.22.1",
|
"algoliasearch": "4.22.1",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
"daisyui": "4.7.2",
|
"daisyui": "4.6.1",
|
||||||
"echarts": "5.5.0",
|
"echarts": "5.4.3",
|
||||||
"echarts-for-react": "3.0.2",
|
"echarts-for-react": "3.0.2",
|
||||||
"jotai": "2.7.0",
|
"jotai": "2.6.4",
|
||||||
"jotai-location": "0.5.4",
|
"jotai-location": "0.5.2",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
"next": "14.1.0",
|
"next": "14.1.0",
|
||||||
"ora": "8.0.1",
|
"ora": "8.0.1",
|
||||||
"react-dropzone": "14.2.3",
|
"react-dropzone": "14.2.3",
|
||||||
"react-hotkeys-hook": "4.5.0",
|
"react-hotkeys-hook": "4.4.4",
|
||||||
"react-instantsearch-dom": "6.40.4",
|
"react-instantsearch-dom": "6.40.4",
|
||||||
"react-swipeable": "7.0.1",
|
"react-swipeable": "7.0.1",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
|
@ -64,16 +64,16 @@
|
||||||
"remark-mdx-frontmatter": "4.0.0",
|
"remark-mdx-frontmatter": "4.0.0",
|
||||||
"strip-markdown": "6.0.0",
|
"strip-markdown": "6.0.0",
|
||||||
"use-local-storage-state": "19.1.0",
|
"use-local-storage-state": "19.1.0",
|
||||||
"yaml-loader": "0.8.1"
|
"yaml-loader": "0.8.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "10.4.17",
|
"autoprefixer": "10.4.17",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"postcss": "8.4.35",
|
"postcss": "8.4.33",
|
||||||
"remark-extract-frontmatter": "3.2.0",
|
"remark-extract-frontmatter": "3.2.0",
|
||||||
"remark-mdx-frontmatter": "4.0.0",
|
"remark-mdx-frontmatter": "4.0.0",
|
||||||
"tailwindcss": "3.4.1",
|
"tailwindcss": "3.4.1",
|
||||||
"yaml-loader": "0.8.1"
|
"yaml-loader": "0.8.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.17.0 <22"
|
"node": ">= 18.17.0 <22"
|
||||||
|
|
|
@ -50,13 +50,13 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "4.7.2",
|
"daisyui": "4.6.1",
|
||||||
"echarts": "5.5.0",
|
"echarts": "5.4.3",
|
||||||
"echarts-for-react": "3.0.2",
|
"echarts-for-react": "3.0.2",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"i18next": "23.10.0",
|
"i18next": "23.8.1",
|
||||||
"jotai": "2.7.0",
|
"jotai": "2.6.4",
|
||||||
"jotai-location": "0.5.4",
|
"jotai-location": "0.5.2",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
|
@ -70,12 +70,12 @@
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
"react-hotkeys-hook": "4.5.0",
|
"react-hotkeys-hook": "4.4.4",
|
||||||
"react-i18next": "14.0.5",
|
"react-i18next": "14.0.1",
|
||||||
"react-dropzone": "14.2.3",
|
"react-dropzone": "14.2.3",
|
||||||
"react-swipeable": "7.0.1",
|
"react-swipeable": "7.0.1",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
"react-zoom-pan-pinch": "3.4.3",
|
"react-zoom-pan-pinch": "3.4.1",
|
||||||
"remark-gfm": "4.0.0",
|
"remark-gfm": "4.0.0",
|
||||||
"remark-frontmatter": "5.0.0",
|
"remark-frontmatter": "5.0.0",
|
||||||
"remark-mdx-frontmatter": "4.0.0",
|
"remark-mdx-frontmatter": "4.0.0",
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
"svg-to-pdfkit": "https://git@github.com/eriese/SVG-to-PDFKit",
|
"svg-to-pdfkit": "https://git@github.com/eriese/SVG-to-PDFKit",
|
||||||
"tailwindcss": "3.4.1",
|
"tailwindcss": "3.4.1",
|
||||||
"tlds": "1.250.0",
|
"tlds": "1.249.0",
|
||||||
"use-local-storage-state": "19.1.0",
|
"use-local-storage-state": "19.1.0",
|
||||||
"web-worker": "1.3.0"
|
"web-worker": "1.3.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -61,6 +61,7 @@ import { i18n as wahid } from '@freesewing/wahid'
|
||||||
import { i18n as walburga } from '@freesewing/walburga'
|
import { i18n as walburga } from '@freesewing/walburga'
|
||||||
import { i18n as waralee } from '@freesewing/waralee'
|
import { i18n as waralee } from '@freesewing/waralee'
|
||||||
import { i18n as yuri } from '@freesewing/yuri'
|
import { i18n as yuri } from '@freesewing/yuri'
|
||||||
|
import { i18n as lily } from '@freesewing/lily'
|
||||||
|
|
||||||
export const designs = {
|
export const designs = {
|
||||||
aaron,
|
aaron,
|
||||||
|
@ -122,4 +123,5 @@ export const designs = {
|
||||||
walburga,
|
walburga,
|
||||||
waralee,
|
waralee,
|
||||||
yuri,
|
yuri,
|
||||||
|
lily,
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,28 +23,28 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "4.7.2",
|
"daisyui": "4.6.1",
|
||||||
"feed": "4.2.2",
|
"feed": "4.2.2",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"front-matter": "4.0.2",
|
"front-matter": "4.0.2",
|
||||||
"highlight.js": "11.9.0",
|
"highlight.js": "11.9.0",
|
||||||
"github-slugger": "2.0.0",
|
"github-slugger": "2.0.0",
|
||||||
"jotai": "2.7.0",
|
"jotai": "2.6.4",
|
||||||
"jotai-location": "0.5.4",
|
"jotai-location": "0.5.2",
|
||||||
"lodash.clonedeep": "4.5.0",
|
"lodash.clonedeep": "4.5.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.unset": "4.5.2",
|
"lodash.unset": "4.5.2",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"mdast-util-toc": "7.0.0",
|
"mdast-util-toc": "7.0.0",
|
||||||
"mermaid": "10.8.0",
|
"mermaid": "10.7.0",
|
||||||
"ora": "8.0.1",
|
"ora": "8.0.1",
|
||||||
"pdfkit": "0.14.0",
|
"pdfkit": "0.14.0",
|
||||||
"postcss-for": "2.1.1",
|
"postcss-for": "2.1.1",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
"react-zoom-pan-pinch": "3.4.3",
|
"react-zoom-pan-pinch": "3.4.1",
|
||||||
"rehype-autolink-headings": "7.1.0",
|
"rehype-autolink-headings": "7.1.0",
|
||||||
"rehype-highlight": "7.0.0",
|
"rehype-highlight": "7.0.0",
|
||||||
"remark-frontmatter": "5.0.0",
|
"remark-frontmatter": "5.0.0",
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
"remark-smartypants": "2.1.0",
|
"remark-smartypants": "2.1.0",
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
"svg-to-pdfkit": "https://git@github.com/eriese/SVG-to-PDFKit",
|
"svg-to-pdfkit": "https://git@github.com/eriese/SVG-to-PDFKit",
|
||||||
"tlds": "1.250.0",
|
"tlds": "1.249.0",
|
||||||
"to-vfile": "8.0.0",
|
"to-vfile": "8.0.0",
|
||||||
"unist-util-visit": "5.0.0",
|
"unist-util-visit": "5.0.0",
|
||||||
"use-local-storage-state": "19.1.0",
|
"use-local-storage-state": "19.1.0",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue