feat: Added studio to monorepo
This commit is contained in:
parent
c17b58f141
commit
02f841c570
177 changed files with 2467 additions and 2118 deletions
11
.gitignore
vendored
11
.gitignore
vendored
|
@ -35,6 +35,17 @@ sites/*/yarn.lock
|
||||||
# Docusaurus cache
|
# Docusaurus cache
|
||||||
.docusaurus
|
.docusaurus
|
||||||
|
|
||||||
|
# Sites get some files from org via the reconfigure script
|
||||||
|
sites/studio/postcss.config.js
|
||||||
|
sites/studio/babel.config.mjs
|
||||||
|
sites/studio/plugins
|
||||||
|
sites/studio/src/css
|
||||||
|
sites/studio/designs
|
||||||
|
sites/studio/docs
|
||||||
|
sites/studio/src
|
||||||
|
sites/studio/scripts
|
||||||
|
sites/studio/static
|
||||||
|
|
||||||
# Sites prebuild artifacts
|
# Sites prebuild artifacts
|
||||||
sites/*/public/locales/*/*.json
|
sites/*/public/locales/*/*.json
|
||||||
!sites/sde/public/locales/*/*.json
|
!sites/sde/public/locales/*/*.json
|
||||||
|
|
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -211,18 +211,18 @@
|
||||||
|
|
||||||
- The `@freesewing/i18n` package holds translations in English for where they are needed
|
- The `@freesewing/i18n` package holds translations in English for where they are needed
|
||||||
|
|
||||||
### studio
|
|
||||||
|
|
||||||
#### Added
|
|
||||||
|
|
||||||
- Added `@freesewing/studio`, our new development environment
|
|
||||||
|
|
||||||
### react
|
### react
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
|
||||||
- The `@freesewing/react` package holds shared components, hooks, and context for our React-based frontends
|
- The `@freesewing/react` package holds shared components, hooks, and context for our React-based frontends
|
||||||
|
|
||||||
|
### studio
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Added `@freesewing/studio`, our new development environment
|
||||||
|
|
||||||
### utils
|
### utils
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
_types:
|
_types:
|
||||||
design:
|
designs:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/core': &freesewing '{{version}}'
|
'@freesewing/core': &freesewing '{{version}}'
|
||||||
dev:
|
dev:
|
||||||
|
@ -7,7 +7,7 @@ _types:
|
||||||
'chai': &chai '5.1.1'
|
'chai': &chai '5.1.1'
|
||||||
'@freesewing/models': *freesewing
|
'@freesewing/models': *freesewing
|
||||||
'@freesewing/plugin-timing': *freesewing
|
'@freesewing/plugin-timing': *freesewing
|
||||||
plugin:
|
plugins:
|
||||||
peer:
|
peer:
|
||||||
'@freesewing/core': *freesewing
|
'@freesewing/core': *freesewing
|
||||||
dev:
|
dev:
|
||||||
|
|
|
@ -4,11 +4,11 @@ _:
|
||||||
tips: 'node ../../scripts/help.mjs'
|
tips: 'node ../../scripts/help.mjs'
|
||||||
lint: "npx eslint 'src/**' 'tests/*.mjs'"
|
lint: "npx eslint 'src/**' 'tests/*.mjs'"
|
||||||
_types:
|
_types:
|
||||||
design:
|
designs:
|
||||||
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
||||||
test: &test 'npx mocha tests/*.test.mjs'
|
test: &test 'npx mocha tests/*.test.mjs'
|
||||||
testci: &testci 'NODE_OPTIONS="--conditions=internal" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js'
|
testci: &testci 'NODE_OPTIONS="--conditions=internal" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js'
|
||||||
plugin:
|
plugins:
|
||||||
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
|
||||||
test: *test
|
test: *test
|
||||||
testci: *testci
|
testci: *testci
|
||||||
|
|
|
@ -1,936 +0,0 @@
|
||||||
{
|
|
||||||
"aaron": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"stretch",
|
|
||||||
"knit-binding",
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"albert": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for an apron",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"accessories"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"knit-binding",
|
|
||||||
"curved-seam",
|
|
||||||
"pocket"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bee": {
|
|
||||||
"code": "bobgeorgethe3rd",
|
|
||||||
"description": "A FreeSewing pattern for a bikini top",
|
|
||||||
"design": "PrudenceRabbit",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"swimwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"stretch",
|
|
||||||
"curved-seam",
|
|
||||||
"precision"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bella": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a womenswear bodice block",
|
|
||||||
"design": [
|
|
||||||
"Bella Incognito",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"dart",
|
|
||||||
"block"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"benjamin": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a bow tie",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"precision",
|
|
||||||
"interfacing"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bent": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"curved-seam",
|
|
||||||
"set-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bibi": {
|
|
||||||
"code": "Jonathan Haas",
|
|
||||||
"description": "A FreeSewing pattern for a knit top body block",
|
|
||||||
"design": "Jonathan Haas",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"hem",
|
|
||||||
"flat-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bob": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a bib",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"infants"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"bias-tape",
|
|
||||||
"curved-seam",
|
|
||||||
"snap"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bonny": {
|
|
||||||
"code": "Jonathan Haas",
|
|
||||||
"description": "A FreeSewing pattern that turns measurements into a body outline",
|
|
||||||
"design": "Jonathan Haas",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [],
|
|
||||||
"techniques": []
|
|
||||||
},
|
|
||||||
"breanna": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a basic body block for womenswear",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"block",
|
|
||||||
"dart"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"brian": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a basic body block for menswear",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"block",
|
|
||||||
"flat-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bruce": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for boxer briefs",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"stretch",
|
|
||||||
"hem",
|
|
||||||
"curved-seam",
|
|
||||||
"elastic"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"carlita": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
|
|
||||||
"design": [
|
|
||||||
"Anneke Caramin",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"difficulty": 5,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"coats"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"pocket",
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"set-sleeve",
|
|
||||||
"welt-pocket",
|
|
||||||
"lining",
|
|
||||||
"princess-seam",
|
|
||||||
"interfacing",
|
|
||||||
"button"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"carlton": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
|
|
||||||
"design": [
|
|
||||||
"Anneke Caramin",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"difficulty": 5,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"coats"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"pocket",
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"set-sleeve",
|
|
||||||
"welt-pocket",
|
|
||||||
"lining",
|
|
||||||
"interfacing",
|
|
||||||
"button"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"cathrin": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a underbust corset / waist trainer",
|
|
||||||
"design": [
|
|
||||||
"Cathrin Åhlén",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"boning",
|
|
||||||
"precision",
|
|
||||||
"curved-seam",
|
|
||||||
"interfacing"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"charlie": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for chino trousers",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"welt-pocket",
|
|
||||||
"curved-seam",
|
|
||||||
"interfacing",
|
|
||||||
"fly",
|
|
||||||
"zipper",
|
|
||||||
"button",
|
|
||||||
"dart",
|
|
||||||
"hem",
|
|
||||||
"seam-pocket"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"cornelius": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"fly",
|
|
||||||
"zipper",
|
|
||||||
"button",
|
|
||||||
"pocket"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"diana": {
|
|
||||||
"code": "Erica Alcusa Sáez",
|
|
||||||
"description": "A FreeSewing pattern for a top with a draped neck",
|
|
||||||
"design": "Erica Alcusa Sáez",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"flat-sleeve",
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"examples": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern holding examples for our documentation"
|
|
||||||
},
|
|
||||||
"florence": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a face mask",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"accessories"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"florent": {
|
|
||||||
"code": [
|
|
||||||
"Quentin Felix",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"description": "A FreeSewing pattern for a flat cap",
|
|
||||||
"design": "Quentin Felix",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"hats"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"gozer": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a ghost costume",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"costumes"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hi": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a shark plush toy",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"toys"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"dart"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"holmes": {
|
|
||||||
"code": [
|
|
||||||
"Erica Alcusa Sáez",
|
|
||||||
"bobgeorgethe3rd"
|
|
||||||
],
|
|
||||||
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
|
|
||||||
"design": "Erica Alcusa Sáez",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"hats"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"lining"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hortensia": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a handbag",
|
|
||||||
"design": [
|
|
||||||
"Stoffsuchti",
|
|
||||||
"Wouter Van Wageningen"
|
|
||||||
],
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"bags"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"lining",
|
|
||||||
"zipper"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"huey": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a zip-up hoodie",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"pocket",
|
|
||||||
"zipper",
|
|
||||||
"ribbing",
|
|
||||||
"flat-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hugo": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"pocket",
|
|
||||||
"ribbing",
|
|
||||||
"raglan-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"jaeger": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a sport coat style jacket",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 5,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"coats"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"pocket",
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"set-sleeve",
|
|
||||||
"welt-pocket",
|
|
||||||
"lining",
|
|
||||||
"interfacing",
|
|
||||||
"button"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"jane": {
|
|
||||||
"code": "SeaZeeZee",
|
|
||||||
"description": "A FreeSewing pattern for a 1790s shift",
|
|
||||||
"design": "SeaZeeZee",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"historical",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"legend": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern to document pattern notation"
|
|
||||||
},
|
|
||||||
"lucy": {
|
|
||||||
"code": "SeaZeeZee",
|
|
||||||
"description": "A FreeSewing pattern for a historical tie-on pocket",
|
|
||||||
"design": "SeaZeeZee",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"historical",
|
|
||||||
"bags"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"lumina": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for leggings",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"stretch",
|
|
||||||
"curved-seam",
|
|
||||||
"elastic"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"lumira": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for leggings",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"stretch",
|
|
||||||
"curved-seam",
|
|
||||||
"elastic"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"lunetius": {
|
|
||||||
"code": "Rika Tamaike",
|
|
||||||
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
|
|
||||||
"design": "Rika Tamaike",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"coats",
|
|
||||||
"historical"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"magde": {
|
|
||||||
"code": "clegganator259",
|
|
||||||
"description": "A FreeSewing pattern for a bike messenger bag",
|
|
||||||
"design": "clegganator259",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"bags"
|
|
||||||
],
|
|
||||||
"techniques": []
|
|
||||||
},
|
|
||||||
"noble": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a princess seam bodice block",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"block",
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"princess-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"octoplushy": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for an octopus plushy toy",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"toys"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"precision"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"onyx": {
|
|
||||||
"code": "Thrunic",
|
|
||||||
"description": "A FreeSewing pattern for one-piece garments",
|
|
||||||
"design": "Thrunic",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"swimwear",
|
|
||||||
"pajamas",
|
|
||||||
"onePiece"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"curved-seam",
|
|
||||||
"stretch",
|
|
||||||
"lining",
|
|
||||||
"zipper",
|
|
||||||
"ribbing"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"opal": {
|
|
||||||
"code": "Thrunic",
|
|
||||||
"description": "A FreeSewing pattern for overalls",
|
|
||||||
"design": "Thrunic",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"overalls",
|
|
||||||
"onePiece"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"flat-felled-seam",
|
|
||||||
"hem",
|
|
||||||
"curved-seam",
|
|
||||||
"button",
|
|
||||||
"pocket"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"otis": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a baby romper",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [],
|
|
||||||
"techniques": []
|
|
||||||
},
|
|
||||||
"paco": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for summer pants",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"elastic",
|
|
||||||
"curved-seam",
|
|
||||||
"pocket",
|
|
||||||
"welt-pocket",
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"penelope": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a pencil skirt",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"skirts"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"curved-seam",
|
|
||||||
"precision",
|
|
||||||
"zipper"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"plugintest": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern to test (y)our plugins"
|
|
||||||
},
|
|
||||||
"rendertest": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern to test (y)our render engine our CSS"
|
|
||||||
},
|
|
||||||
"sandy": {
|
|
||||||
"code": [
|
|
||||||
"Erica Alcusa Sáez",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"description": "A FreeSewing pattern for a circle skirt",
|
|
||||||
"design": "Erica Alcusa Sáez",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"skirts"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"button",
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"shelly": {
|
|
||||||
"code": "Thrunic",
|
|
||||||
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
|
|
||||||
"design": "Thrunic",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"swimwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"stretch",
|
|
||||||
"curved-seam",
|
|
||||||
"raglan-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"shin": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for swim trunks",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"swimwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"stretch",
|
|
||||||
"curved-seam",
|
|
||||||
"elastic"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"simon": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a button down shirt",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"button",
|
|
||||||
"interfacing",
|
|
||||||
"curved-seam",
|
|
||||||
"flat-felled-seam",
|
|
||||||
"flat-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"simone": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"button",
|
|
||||||
"interfacing",
|
|
||||||
"curved-seam",
|
|
||||||
"flat-felled-seam",
|
|
||||||
"flat-sleeve"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"skully": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"accessories",
|
|
||||||
"toys"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"precision"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sven": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a straightforward sweater",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"flat-sleeve",
|
|
||||||
"ribbing"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tamiko": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a zero-waste top",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"teagan": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a T-shirt",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"hem",
|
|
||||||
"flat-sleeve",
|
|
||||||
"knit-band"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tiberius": {
|
|
||||||
"code": "Rika Tamaike",
|
|
||||||
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
|
|
||||||
"design": "Rika Tamaike",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"historical"
|
|
||||||
],
|
|
||||||
"techniques": []
|
|
||||||
},
|
|
||||||
"titan": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a unisex trouser block",
|
|
||||||
"design": [
|
|
||||||
"Debra Bean",
|
|
||||||
"Joost De Cock"
|
|
||||||
],
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"blocks",
|
|
||||||
"bottoms"
|
|
||||||
],
|
|
||||||
"techniques": []
|
|
||||||
},
|
|
||||||
"trayvon": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a tie",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"accessories"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"precision",
|
|
||||||
"lining"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tristan": {
|
|
||||||
"code": "Wouter van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for a fitted top with prince(ss) seams",
|
|
||||||
"design": "Natalia Sayang",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"precision"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"uma": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"elastic",
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"umbra": {
|
|
||||||
"code": ["Joost De Cock", "Jonathan Haas"],
|
|
||||||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
|
||||||
"design": ["Joost De Cock", "Jonathan Haas"],
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"elastic",
|
|
||||||
"curved-seam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"wahid": {
|
|
||||||
"code": "Joost De Cock",
|
|
||||||
"description": "A FreeSewing pattern for a classic fitted waistcoat",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 4,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"hem",
|
|
||||||
"interfacing",
|
|
||||||
"lining",
|
|
||||||
"welt-pocket",
|
|
||||||
"button"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"walburga": {
|
|
||||||
"code": "Rika Tamaike",
|
|
||||||
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
|
|
||||||
"design": "Rika Tamaike",
|
|
||||||
"difficulty": 1,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"historical"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"waralee": {
|
|
||||||
"code": "Wouter Van Wageningen",
|
|
||||||
"description": "A FreeSewing pattern for wrap pants",
|
|
||||||
"design": "Wouter Van Wageningen",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"bottoms",
|
|
||||||
"trousers"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"hem",
|
|
||||||
"welt-pocket"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"yuri": {
|
|
||||||
"code": "Hellgy",
|
|
||||||
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
|
|
||||||
"design": "Biou",
|
|
||||||
"difficulty": 3,
|
|
||||||
"tags": [
|
|
||||||
"tops"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"curved-seam",
|
|
||||||
"flat-sleeve",
|
|
||||||
"hem",
|
|
||||||
"button"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"lily": {
|
|
||||||
"code": ["Anna Puk", "Joost De Cock"],
|
|
||||||
"description": "A FreeSewing pattern for basic leggings",
|
|
||||||
"design": "Anna Puk",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"bottoms"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"elastic",
|
|
||||||
"curved-seam",
|
|
||||||
"hem"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
import designs from './designs.json' assert { type: 'json' }
|
|
||||||
import packages from './packages.json' assert { type: 'json' }
|
|
||||||
import plugins from './plugins.json' assert { type: 'json' }
|
|
||||||
|
|
||||||
// Helper method to construct summary objects
|
|
||||||
const unpack = (obj, folder) =>
|
|
||||||
Object.fromEntries(
|
|
||||||
Object.keys(obj).map((name) => [
|
|
||||||
name,
|
|
||||||
{ name, folder, type: folder.slice(0, -1), description: obj[name] },
|
|
||||||
])
|
|
||||||
)
|
|
||||||
|
|
||||||
// Helper method to construct summary objects for designs
|
|
||||||
const unpackDesigns = (obj, folder) =>
|
|
||||||
Object.fromEntries(
|
|
||||||
Object.keys(obj).map((name) => [
|
|
||||||
name,
|
|
||||||
{ name, folder, type: folder.slice(0, -1), ...obj[name] },
|
|
||||||
])
|
|
||||||
)
|
|
||||||
|
|
||||||
// Re-Export imported JSON
|
|
||||||
export { designs, packages, plugins }
|
|
||||||
|
|
||||||
// All software
|
|
||||||
export const software = {
|
|
||||||
...unpackDesigns(designs, 'designs'),
|
|
||||||
...unpack(plugins, 'plugins'),
|
|
||||||
...unpack(packages, 'packages'),
|
|
||||||
}
|
|
||||||
|
|
||||||
// All software published on NPM
|
|
||||||
export const publishedSoftware = {
|
|
||||||
...unpackDesigns(designs, 'designs'),
|
|
||||||
...unpack(plugins, 'plugins'),
|
|
||||||
...unpack(packages, 'packages'),
|
|
||||||
}
|
|
||||||
|
|
||||||
export const publishedTypes = ['designs', 'packages', 'plugins']
|
|
||||||
export const types = publishedTypes
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"collection": "All FreeSewing designs bundles into one pacakge, our collection",
|
|
||||||
"config": "Various configurations for FreeSewing",
|
|
||||||
"core": "A library for creating made-to-measure sewing patterns",
|
|
||||||
"i18n": "Translation for the FreeSewing project",
|
|
||||||
"models": "Body measurements data for a range of default sizes",
|
|
||||||
"studio": "Initializer package for a the FreeSewing design studio: npx @freesewing/studio",
|
|
||||||
"prettier-config": "FreeSewing's shared configuration for prettier",
|
|
||||||
"react": "React components, hooks and context by/for FreeSewing",
|
|
||||||
"snapseries": "A series of common sizes for elastics and other series to be used with snapped percentage options",
|
|
||||||
"utils": "A number of utilities, typically used by FreeSewing frontend code"
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
"core-plugins": "An umbrella package of essential plugins that are bundled with FreeSewing's core library",
|
|
||||||
"plugin-annotations": "A FreeSewing plugin that provides pattern annotations",
|
|
||||||
"plugin-bin-pack": "A FreeSewing plugin that adds a bin-pack algorithm to the core library",
|
|
||||||
"plugin-bust": "A FreeSewing plugin that helps with bust-adjusting menswear patterns",
|
|
||||||
"plugin-flip": "A FreeSewing plugin to flip parts horizontally",
|
|
||||||
"plugin-gore": "A FreeSewing plugin to generate gores for a semi-sphere or dome",
|
|
||||||
"plugin-i18n": "A FreeSewing plugin for pattern translation",
|
|
||||||
"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-ringsector": "A FreeSewing plugin to draft a ring sector (think part of a donut)",
|
|
||||||
"plugin-round": "A FreeSewing plugin to round corners",
|
|
||||||
"plugin-path-utils": "A FreeSewing plugin that adds various path helper macros",
|
|
||||||
"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",
|
|
||||||
"plugin-timing": "A FreeSewing plugin to record the time it takes to draft your pattern parts",
|
|
||||||
"plugin-versionfree-svg": "A FreeSewing plugin to keep version info out of your SVG to allow easy diffs across versions"
|
|
||||||
}
|
|
9
config/templates/collection-hook.mustache
Normal file
9
config/templates/collection-hook.mustache
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{{{ designImports }}}
|
||||||
|
|
||||||
|
export const designs = {
|
||||||
|
{{ designList }}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
||||||
|
|
||||||
|
export const collection = Object.keys(designs)
|
72
config/templates/collection-pkg.mustache
Normal file
72
config/templates/collection-pkg.mustache
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
// Designs
|
||||||
|
{{{ designImports }}}
|
||||||
|
// Translations
|
||||||
|
import { i18n as translations } from './i18n.mjs'
|
||||||
|
// Examples
|
||||||
|
import { designExampleIds, designExampleHrefs } from './examples.mjs'
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Export the designs themselves
|
||||||
|
*/
|
||||||
|
export const designs = {
|
||||||
|
{{ designList }}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Export a list of names that make up the FreeSewing collection
|
||||||
|
*/
|
||||||
|
export const collection = Object.keys(designs)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create various helper exports to get info about the collection
|
||||||
|
*/
|
||||||
|
export const requiredMeasurements = {}
|
||||||
|
export const optionalMeasurements = {}
|
||||||
|
export const measurements = {}
|
||||||
|
export const about = {}
|
||||||
|
|
||||||
|
const _tags = new Set()
|
||||||
|
const _techniques = new Set()
|
||||||
|
const _devs = new Set()
|
||||||
|
const _dess = new Set()
|
||||||
|
|
||||||
|
for (const design in designs) {
|
||||||
|
requiredMeasurements[design] = designs[design].patternConfig.measurements
|
||||||
|
optionalMeasurements[design] = designs[design].patternConfig.optionalMeasurements
|
||||||
|
measurements[design] = [
|
||||||
|
...designs[design].patternConfig.measurements,
|
||||||
|
...designs[design].patternConfig.optionalMeasurements,
|
||||||
|
]
|
||||||
|
about[design] = { ...designs[design].designConfig.data }
|
||||||
|
if (about[design].tags) _tags.add(...about[design].tags)
|
||||||
|
if (about[design].techniques) _techniques.add(...about[design].techniques)
|
||||||
|
if (Array.isArray(about[design].code)) _devs.add(...about[design].code)
|
||||||
|
else _devs.add(about[design].code)
|
||||||
|
if (Array.isArray(about[design].design)) _dess.add(...about[design].design)
|
||||||
|
else _dess.add(about[design].design)
|
||||||
|
}
|
||||||
|
export const tags = Array.from(_tags)
|
||||||
|
.filter((t) => (t ? true : false))
|
||||||
|
.sort()
|
||||||
|
export const techniques = Array.from(_techniques)
|
||||||
|
.filter((t) => (t ? true : false))
|
||||||
|
.sort()
|
||||||
|
export const developers = Array.from(_devs)
|
||||||
|
.filter((t) => (t ? true : false))
|
||||||
|
.sort()
|
||||||
|
export const designers = Array.from(_dess)
|
||||||
|
.filter((t) => (t ? true : false))
|
||||||
|
.sort()
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Export the translations
|
||||||
|
*/
|
||||||
|
export const i18n = translations
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These are examples
|
||||||
|
*/
|
||||||
|
export const examples = {
|
||||||
|
id: designExampleIds,
|
||||||
|
href: designExampleHrefs,
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
// This file is auto-generated | All changes you make will be overwritten.
|
|
||||||
export const name = '{{{ name }}}'
|
|
||||||
export const version = '{{ version }}'
|
|
||||||
export const data = { name, version }
|
|
|
@ -17,7 +17,7 @@
|
||||||
".": "./src/index.mjs"
|
".": "./src/index.mjs"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"testonly": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register",
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
"publish": "npm publish --access public"
|
"publish": "npm publish --access public"
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {},
|
||||||
|
|
6
config/templates/plugin/about.json.mustache
Normal file
6
config/templates/plugin/about.json.mustache
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"id": "plugin-{{ name }}",
|
||||||
|
"description": "A FreeSewing plugin that lacks a description",
|
||||||
|
"version": "4.0.0-rc.8"
|
||||||
|
}
|
||||||
|
|
|
@ -1,21 +1,23 @@
|
||||||
import { name, version } from '../data.mjs'
|
import about from '../about.json' with { type: 'json' }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is plugin-{{ name }}
|
||||||
|
*
|
||||||
|
* This skeleton file was auto-generated.
|
||||||
|
* For help on writing plugins, see the plugin guide at:
|
||||||
|
* https://freesewing.dev/guides/plugins/
|
||||||
|
*/
|
||||||
|
|
||||||
export const plugin = {
|
export const plugin = {
|
||||||
name,
|
name: about.id,
|
||||||
version,
|
version: about.version,
|
||||||
macros: {
|
hooks: { },
|
||||||
{{name}}: function (so, {points, paths, Path}) { //Example shorthand, you may wish to add other elements like utils
|
macros: { },
|
||||||
const defaults = {
|
store: [ ],
|
||||||
//note these are common examples and can be removed
|
|
||||||
scale: 1,
|
|
||||||
rotation: 0,
|
|
||||||
}
|
|
||||||
so = { ...defaults, ...so }
|
|
||||||
//write plugin here
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// More specifically named exports
|
/*
|
||||||
|
* More specifically named exports
|
||||||
|
*/
|
||||||
export const {{name}}Plugin = plugin
|
export const {{name}}Plugin = plugin
|
||||||
export const plugin{{capitalized_name}} = plugin
|
export const plugin{{capitalized_name}} = plugin
|
||||||
|
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -64,4 +64,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
5
designs/examples/about.json
Normal file
5
designs/examples/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "examples",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"description": "A FreeSewing pattern holding examples for our documentation"
|
||||||
|
}
|
|
@ -56,4 +56,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
5
designs/legend/about.json
Normal file
5
designs/legend/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "legend",
|
||||||
|
"description": "A FreeSewing pattern to document pattern notation",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,5 +9,6 @@
|
||||||
"accessories",
|
"accessories",
|
||||||
"bags"
|
"bags"
|
||||||
],
|
],
|
||||||
"techniques": []
|
"techniques": [],
|
||||||
}
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
5
designs/plugintest/about.json
Normal file
5
designs/plugintest/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "plugintest",
|
||||||
|
"description": "A FreeSewing pattern to test (y)our plugins",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -71,4 +71,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
5
designs/rendertest/about.json
Normal file
5
designs/rendertest/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "rendertest",
|
||||||
|
"description": "A FreeSewing pattern to test (y)our render engine our CSS",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
# @freesewing/shelly
|
# @freesewing/shelly
|
||||||
|
|
||||||
A FreeSewing pattern for a raglan shirt, perfect for swimshirts
|
A FreeSewing pattern for a raglan shirt, perfect for swim shirts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/shelly",
|
"name": "@freesewing/shelly",
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
|
"description": "A FreeSewing pattern for a raglan shirt, perfect for swim shirts",
|
||||||
"author": "Thrunic (https://github.com/Thrunic)",
|
"author": "Thrunic (https://github.com/Thrunic)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "github:freesewing/freesewing",
|
||||||
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -64,4 +64,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -61,4 +61,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,4 +60,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -62,4 +62,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
382
package-lock.json
generated
382
package-lock.json
generated
|
@ -59607,6 +59607,10 @@
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/studio": {
|
||||||
|
"resolved": "sites/studio",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
"node_modules/style-mod": {
|
"node_modules/style-mod": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz",
|
||||||
|
@ -70585,6 +70589,384 @@
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"sites/studio": {
|
||||||
|
"version": "0.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@docusaurus/core": "^3.7.0",
|
||||||
|
"@docusaurus/faster": "^3.7.0",
|
||||||
|
"@docusaurus/preset-classic": "^3.7.0",
|
||||||
|
"@freesewing/collection": "latest",
|
||||||
|
"@freesewing/config": "latest",
|
||||||
|
"@freesewing/core": "latest",
|
||||||
|
"@freesewing/i18n": "latest",
|
||||||
|
"@freesewing/plugin-i18n": "latest",
|
||||||
|
"@freesewing/plugin-theme": "latest",
|
||||||
|
"@freesewing/plugin-timing": "latest",
|
||||||
|
"@freesewing/react": "latest",
|
||||||
|
"@freesewing/snapseries": "latest",
|
||||||
|
"@freesewing/utils": "latest",
|
||||||
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"postcss": "^8.4.47",
|
||||||
|
"prism-react-renderer": "^2.3.0",
|
||||||
|
"react": "^19.0.0",
|
||||||
|
"react-dom": "^19.0.0",
|
||||||
|
"react-markdown": "^9.0.1",
|
||||||
|
"remark-smartypants": "^3.0.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@docusaurus/module-type-aliases": "^3.7.0",
|
||||||
|
"@docusaurus/types": "^3.7.0",
|
||||||
|
"@tailwindcss/postcss": "^4.1.3",
|
||||||
|
"autoprefixer": "^10.4.20",
|
||||||
|
"daisyui": "^5.0.19",
|
||||||
|
"glob": "^11.0.0",
|
||||||
|
"gray-matter": "^4.0.3",
|
||||||
|
"postcss": "^8.4.47",
|
||||||
|
"tailwindcss": "^4.1.3",
|
||||||
|
"yaml-loader": "^0.8.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=20.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/collection": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/collection/-/collection-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ozBv1MdcZ3VyJiBxsevK/dIOHTa+Di7m2qfvYPdCa1Io+zMT6RfCdS46gYOp79M9Hf1lLEsKaXV6IPa5P6eCIQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@freesewing/aaron": "4.0.0",
|
||||||
|
"@freesewing/albert": "4.0.0",
|
||||||
|
"@freesewing/bee": "4.0.0",
|
||||||
|
"@freesewing/bella": "4.0.0",
|
||||||
|
"@freesewing/benjamin": "4.0.0",
|
||||||
|
"@freesewing/bent": "4.0.0",
|
||||||
|
"@freesewing/bibi": "4.0.0",
|
||||||
|
"@freesewing/bob": "4.0.0",
|
||||||
|
"@freesewing/bonny": "4.0.0",
|
||||||
|
"@freesewing/breanna": "4.0.0",
|
||||||
|
"@freesewing/brian": "4.0.0",
|
||||||
|
"@freesewing/bruce": "4.0.0",
|
||||||
|
"@freesewing/carlita": "4.0.0",
|
||||||
|
"@freesewing/carlton": "4.0.0",
|
||||||
|
"@freesewing/cathrin": "4.0.0",
|
||||||
|
"@freesewing/charlie": "4.0.0",
|
||||||
|
"@freesewing/core": "4.0.0",
|
||||||
|
"@freesewing/core-plugins": "4.0.0",
|
||||||
|
"@freesewing/cornelius": "4.0.0",
|
||||||
|
"@freesewing/diana": "4.0.0",
|
||||||
|
"@freesewing/florence": "4.0.0",
|
||||||
|
"@freesewing/florent": "4.0.0",
|
||||||
|
"@freesewing/gozer": "4.0.0",
|
||||||
|
"@freesewing/hi": "4.0.0",
|
||||||
|
"@freesewing/holmes": "4.0.0",
|
||||||
|
"@freesewing/hortensia": "4.0.0",
|
||||||
|
"@freesewing/huey": "4.0.0",
|
||||||
|
"@freesewing/hugo": "4.0.0",
|
||||||
|
"@freesewing/jaeger": "4.0.0",
|
||||||
|
"@freesewing/jane": "4.0.0",
|
||||||
|
"@freesewing/lily": "4.0.0",
|
||||||
|
"@freesewing/lucy": "4.0.0",
|
||||||
|
"@freesewing/lumina": "4.0.0",
|
||||||
|
"@freesewing/lumira": "4.0.0",
|
||||||
|
"@freesewing/lunetius": "4.0.0",
|
||||||
|
"@freesewing/noble": "4.0.0",
|
||||||
|
"@freesewing/octoplushy": "4.0.0",
|
||||||
|
"@freesewing/onyx": "4.0.0",
|
||||||
|
"@freesewing/opal": "4.0.0",
|
||||||
|
"@freesewing/otis": "4.0.0",
|
||||||
|
"@freesewing/paco": "4.0.0",
|
||||||
|
"@freesewing/penelope": "4.0.0",
|
||||||
|
"@freesewing/plugin-bust": "4.0.0",
|
||||||
|
"@freesewing/plugin-flip": "4.0.0",
|
||||||
|
"@freesewing/sandy": "4.0.0",
|
||||||
|
"@freesewing/shelly": "4.0.0",
|
||||||
|
"@freesewing/shin": "4.0.0",
|
||||||
|
"@freesewing/simon": "4.0.0",
|
||||||
|
"@freesewing/simone": "4.0.0",
|
||||||
|
"@freesewing/skully": "4.0.0",
|
||||||
|
"@freesewing/snapseries": "4.0.0",
|
||||||
|
"@freesewing/sven": "4.0.0",
|
||||||
|
"@freesewing/tamiko": "4.0.0",
|
||||||
|
"@freesewing/teagan": "4.0.0",
|
||||||
|
"@freesewing/tiberius": "4.0.0",
|
||||||
|
"@freesewing/titan": "4.0.0",
|
||||||
|
"@freesewing/trayvon": "4.0.0",
|
||||||
|
"@freesewing/tristan": "4.0.0",
|
||||||
|
"@freesewing/uma": "4.0.0",
|
||||||
|
"@freesewing/umbra": "4.0.0",
|
||||||
|
"@freesewing/wahid": "4.0.0",
|
||||||
|
"@freesewing/walburga": "4.0.0",
|
||||||
|
"@freesewing/waralee": "4.0.0",
|
||||||
|
"@freesewing/yuri": "4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/config": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/config/-/config-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-VNGs+22BsNyY4grbbca2ml/prMweqNmmO2SO8uwY+8GLPnvVs+0pRgSEciWkGmTTprWsFtLHIz8jCf2u+spZ7g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/core": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/core/-/core-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-o1CTkyND0ytU7wj9h29G/AuG9pkxZlQ+7hbZx51u9l1UA0Qbvfm627+VEMThdDQalrNam4WN+9mW6OdTZyXr8Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@freesewing/core-plugins": "4.0.0",
|
||||||
|
"bezier-js": "6.1.4",
|
||||||
|
"hooks": "0.3.2",
|
||||||
|
"lodash.clonedeep": "^4.5.0",
|
||||||
|
"lodash.get": "4.4.2",
|
||||||
|
"lodash.set": "4.3.2",
|
||||||
|
"lodash.unset": "4.5.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/i18n": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/i18n/-/i18n-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-jd0LLuSiiGfM5P1EQKW/5tS/nFMpAbXgg22OP9lYTDiHNdPdZ3QFoDGGb1p8dnbI3RBJfkn+ciLTt7R45YOPBg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/plugin-i18n": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/plugin-i18n/-/plugin-i18n-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-v4DoroyWpkoJNCccQ2saepphySKv91On31eWCW9aj8E3Ps8smcwUd+4kOz+MXZkUpPXOOD7oFhdYhrT4hlGcFg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@freesewing/core": "4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/plugin-theme": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/plugin-theme/-/plugin-theme-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-USB0sKJphpoicXvFDb/I5K5m8KSSOb8l0wZGbb+KnKkj9zrUSEyJB4EHtGgv1fstelNyjfA8naq0Nq5qgHPJFA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@freesewing/core": "4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/plugin-timing": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/plugin-timing/-/plugin-timing-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-m4n3Ley+aoScI8vW1uVW/YBjeTZmWCyuixhFC88LU2TjUH/Lm11P6gCTWdbE9IBpA2Zkn65arpRLZrI08GQlnw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@freesewing/core": "4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/react": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/react/-/react-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-h53FTzj11T9JewkcLm+4B+lN85JqdFMv3HEvbe7l2+C17KYSFQEky9P8Xv613Gq/WzNjzfpOWbr7YIrGdSExSA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@codemirror/lang-yaml": "^6.1.2",
|
||||||
|
"@uiw/react-codemirror": "^4.23.8",
|
||||||
|
"d3-drag": "3.0.0",
|
||||||
|
"d3-selection": "3.0.0",
|
||||||
|
"diff": "^7.0.0",
|
||||||
|
"echarts": "^5.6.0",
|
||||||
|
"echarts-for-react": "^3.0.2",
|
||||||
|
"file-saver": "^2.0.5",
|
||||||
|
"highlight.js": "^11.11.1",
|
||||||
|
"html-react-parser": "^5.2.2",
|
||||||
|
"jotai": "^2.12.1",
|
||||||
|
"jotai-location": "^0.5.5",
|
||||||
|
"luxon": "^3.5.0",
|
||||||
|
"mustache": "^4.2.0",
|
||||||
|
"pdfkit": "^0.16.0",
|
||||||
|
"react-diff-viewer-continued": "^4.0.5",
|
||||||
|
"react-dropzone": "^14.3.5",
|
||||||
|
"react-zoom-pan-pinch": "^3.7.0",
|
||||||
|
"svg-to-pdfkit": "^0.1.8",
|
||||||
|
"use-local-storage-state": "^19.5.0",
|
||||||
|
"web-worker": "^1.5.0",
|
||||||
|
"yaml": "^2.7.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^19.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/snapseries": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/snapseries/-/snapseries-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-Fqh+Mz22xccDZGqQMpYBgKHnARSe/T1s4JCXUhKPvk0fgMg+5jNFfFUj+qTo9gaJ6qDFZYv1Wts/Smqr5nYIpQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/@freesewing/utils": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@freesewing/utils/-/utils-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-CUqdmCWWoMj/UkONtKAq3rtFbWt8jFZS/DhqjmryJ1m8I4UjPpzXNEekr9gSiiP2RV/AbRHMAFS4sFBPmxia0w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"tlds": "^1.255.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 20"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/diff": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/glob": {
|
||||||
|
"version": "11.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz",
|
||||||
|
"integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"foreground-child": "^3.1.0",
|
||||||
|
"jackspeak": "^4.0.1",
|
||||||
|
"minimatch": "^10.0.0",
|
||||||
|
"minipass": "^7.1.2",
|
||||||
|
"package-json-from-dist": "^1.0.0",
|
||||||
|
"path-scurry": "^2.0.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"glob": "dist/esm/bin.mjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "20 || >=22"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/jackspeak": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BlueOak-1.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@isaacs/cliui": "^8.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "20 || >=22"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/lru-cache": {
|
||||||
|
"version": "11.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
|
||||||
|
"integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": "20 || >=22"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/minimatch": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "20 || >=22"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sites/studio/node_modules/path-scurry": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BlueOak-1.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^11.0.0",
|
||||||
|
"minipass": "^7.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "20 || >=22"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,12 +11,15 @@
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"add": "node --experimental-json-modules --no-warnings scripts/add-software.mjs",
|
||||||
"new": "node --experimental-json-modules --no-warnings scripts/add-software.mjs",
|
"new": "node --experimental-json-modules --no-warnings scripts/add-software.mjs",
|
||||||
"build": "lerna run build:all",
|
"build": "lerna run build:all",
|
||||||
"?": "node scripts/help.mjs",
|
"?": "node scripts/help.mjs",
|
||||||
"tips": "node scripts/help.mjs",
|
"tips": "node scripts/help.mjs",
|
||||||
"org": "cd sites/org && npm run start",
|
"org": "cd sites/org && npm run start",
|
||||||
|
"eu": "cd sites/org && npm run start",
|
||||||
"dev": "cd sites/dev && npm run start",
|
"dev": "cd sites/dev && npm run start",
|
||||||
|
"studio": "cd sites/studio && npm run start",
|
||||||
"kickstart": "npm install && husky && npm run tips",
|
"kickstart": "npm install && husky && npm run tips",
|
||||||
"cleanall": "npx nx run-many --target=clean",
|
"cleanall": "npx nx run-many --target=clean",
|
||||||
"test": "npx nx run-many --target=test",
|
"test": "npx nx run-many --target=test",
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
# @freesewing/collection
|
# @freesewing/collection
|
||||||
|
|
||||||
All FreeSewing designs bundles into one pacakge, our collection
|
All FreeSewing designs bundled into one package, our collection
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
5
packages/collection/about.json
Normal file
5
packages/collection/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "collection",
|
||||||
|
"description": "All FreeSewing designs bundled into one package, our collection",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/collection",
|
"name": "@freesewing/collection",
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"description": "All FreeSewing designs bundles into one pacakge, our collection",
|
"description": "All FreeSewing designs bundled into one package, our collection",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "github:freesewing/freesewing",
|
||||||
|
@ -15,7 +15,12 @@
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"freesewing",
|
"freesewing",
|
||||||
"freesewing"
|
"design",
|
||||||
|
"diy",
|
||||||
|
"fashion",
|
||||||
|
"made to measure",
|
||||||
|
"parametric design",
|
||||||
|
"sewing"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "src/index.mjs",
|
"module": "src/index.mjs",
|
||||||
|
@ -109,4 +114,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -75,6 +75,7 @@ export const designs = {
|
||||||
bent,
|
bent,
|
||||||
bibi,
|
bibi,
|
||||||
bob,
|
bob,
|
||||||
|
bonny,
|
||||||
breanna,
|
breanna,
|
||||||
brian,
|
brian,
|
||||||
bruce,
|
bruce,
|
||||||
|
|
5
packages/config/about.json
Normal file
5
packages/config/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "config",
|
||||||
|
"description": "Various configurations for FreeSewing",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -15,7 +15,12 @@
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"freesewing",
|
"freesewing",
|
||||||
"freesewing"
|
"design",
|
||||||
|
"diy",
|
||||||
|
"fashion",
|
||||||
|
"made to measure",
|
||||||
|
"parametric design",
|
||||||
|
"sewing"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "src/index.mjs",
|
"module": "src/index.mjs",
|
||||||
|
@ -44,4 +49,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,20 +1,5 @@
|
||||||
{
|
{
|
||||||
"id": "aaron",
|
"id": "core",
|
||||||
"code": "Joost De Cock",
|
"description": "A library for creating made-to-measure sewing patterns",
|
||||||
"name": "Aaron A-shirt",
|
"version": "4.0.0"
|
||||||
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
|
||||||
"design": "Joost De Cock",
|
|
||||||
"difficulty": 2,
|
|
||||||
"tags": [
|
|
||||||
"tops",
|
|
||||||
"underwear"
|
|
||||||
],
|
|
||||||
"techniques": [
|
|
||||||
"hem",
|
|
||||||
"stretch",
|
|
||||||
"knit-binding",
|
|
||||||
"curved-seam"
|
|
||||||
],
|
|
||||||
"version": "4.0.0-rc.5",
|
|
||||||
"pkg": "@freesewing/aaron"
|
|
||||||
}
|
}
|
|
@ -70,4 +70,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
# @freesewing/i18n
|
# @freesewing/i18n
|
||||||
|
|
||||||
Translation for the FreeSewing project
|
English translation for the FreeSewing project
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
5
packages/i18n/about.json
Normal file
5
packages/i18n/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "i18n",
|
||||||
|
"description": "English translation for the FreeSewing project",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/i18n",
|
"name": "@freesewing/i18n",
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"description": "Translation for the FreeSewing project",
|
"description": "English translation for the FreeSewing project",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "github:freesewing/freesewing",
|
||||||
|
@ -48,4 +48,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
# @freesewing/models
|
# @freesewing/models
|
||||||
|
|
||||||
Body measurements data for a range of default sizes
|
Body measurements data used to test FreeSewing designs
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
5
packages/models/about.json
Normal file
5
packages/models/about.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"id": "models",
|
||||||
|
"description": "Body measurements data used to test FreeSewing designs",
|
||||||
|
"version": "4.0.0"
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing/models",
|
"name": "@freesewing/models",
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"description": "Body measurements data for a range of default sizes",
|
"description": "Body measurements data used to test FreeSewing designs",
|
||||||
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"repository": "github:freesewing/freesewing",
|
"repository": "github:freesewing/freesewing",
|
||||||
|
@ -48,4 +48,4 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
}
|
}
|
||||||
}
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue