From 3834f163faf3f424ae0971506cc38d119e613ab5 Mon Sep 17 00:00:00 2001 From: bobgeorgethe3rd Date: Sat, 7 May 2022 02:05:01 +0100 Subject: [PATCH 01/53] add grainline front --- packages/shin/src/front.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/shin/src/front.js b/packages/shin/src/front.js index d481ab907da..55ed0d55d8d 100644 --- a/packages/shin/src/front.js +++ b/packages/shin/src/front.js @@ -120,6 +120,12 @@ export default function (part) { nr: 2, title: 'front', }) + points.grainlineFrom = points.seatCb.shift(180,30) + points.grainlineTo = points.hipCb.shift(180,30) + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, + }) if (sa) { paths.sa = paths.hemBase .offset(3 * sa) From cf1d297fbb79673149e0c90471b17e4a354d630a Mon Sep 17 00:00:00 2001 From: bobgeorgethe3rd Date: Sat, 7 May 2022 02:06:15 +0100 Subject: [PATCH 02/53] added grainline to back also tweaked scalebox position just a little to reduce chance of overlap --- packages/shin/src/back.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/shin/src/back.js b/packages/shin/src/back.js index c5c2729bbd6..5eee88d7c2a 100644 --- a/packages/shin/src/back.js +++ b/packages/shin/src/back.js @@ -117,7 +117,13 @@ export default function (part) { nr: 1, title: 'back', }) - macro('scalebox', { at: new Point(points.legSide.x + 80, points.legSide.y - 40) }) + macro('scalebox', { at: new Point(points.legSide.x + 100, points.legSide.y - 40) }) + points.grainlineFrom = points.legSide.shift(0,15) + points.grainlineTo = points.hipSide.shift(0,15) + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, + }) if (sa) { paths.sa = paths.hemBase .offset(3 * sa) From c59fdb988211264f2673834f2e6e7b0576686886 Mon Sep 17 00:00:00 2001 From: bobgeorgethe3rd Date: Sat, 7 May 2022 02:06:45 +0100 Subject: [PATCH 03/53] added grainline waistband --- packages/shin/src/waistband.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/shin/src/waistband.js b/packages/shin/src/waistband.js index 79d76bd5212..54b3b3149f8 100644 --- a/packages/shin/src/waistband.js +++ b/packages/shin/src/waistband.js @@ -48,6 +48,12 @@ export default function (part) { nr: 3, title: 'waistband', }) + points.grainlineFrom = points.bottomLeft.shiftFractionTowards(points.bottomRight,1/8) + points.grainlineTo = new Point(points.grainlineFrom.x, points.topLeft.y) + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, +}) if (sa) { paths.sa = new Path() .move(points.topLeft) From 8b62090f082cfb1b1d657f18de738415c8303bdf Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:06:30 +0200 Subject: [PATCH 04/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/cutting/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/cutting/fr.md b/markdown/org/docs/patterns/tamiko/cutting/fr.md index 9a737b8c9c1..666de621b81 100644 --- a/markdown/org/docs/patterns/tamiko/cutting/fr.md +++ b/markdown/org/docs/patterns/tamiko/cutting/fr.md @@ -5,7 +5,7 @@ title: "Tamiko top: Cutting Instructions" - **Tissu principal** - Couper **1 Tamiko dessus** sur le pli -Tamiko is a zero-waste pattern. It's a rectangle that's cut out on the fold. Not more than that. There's only one part to this top, we will simply refer to it at the **Tamiko top**. It needs to be cut on the fold along the bottom. +Le Tamiko est un modèle zéro déchets. C'est un rectangle découpé sur la pliure. Rien de plus. C'est un modèle en un seul morceau, que nous appellerons simplement le **Tamiko top**. It needs to be cut on the fold along the bottom. From 3c805162d06fcc3bb144cbba7d0c833ed9f390b4 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:16:40 +0200 Subject: [PATCH 05/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/cutting/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/cutting/fr.md b/markdown/org/docs/patterns/tamiko/cutting/fr.md index 666de621b81..fd276165b23 100644 --- a/markdown/org/docs/patterns/tamiko/cutting/fr.md +++ b/markdown/org/docs/patterns/tamiko/cutting/fr.md @@ -5,7 +5,7 @@ title: "Tamiko top: Cutting Instructions" - **Tissu principal** - Couper **1 Tamiko dessus** sur le pli -Le Tamiko est un modèle zéro déchets. C'est un rectangle découpé sur la pliure. Rien de plus. C'est un modèle en un seul morceau, que nous appellerons simplement le **Tamiko top**. It needs to be cut on the fold along the bottom. +Le Tamiko est un modèle zéro déchets. C'est un rectangle découpé sur la pliure. Rien de plus. C'est un modèle en une seule pièce, que nous appellerons simplement le **Tamiko top**. Elle doit être coupée sur la pliure, le long du bas. From b22c80f1462ed5a8269432983e8155a6e1e9d338 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:26:05 +0200 Subject: [PATCH 06/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/fabric/fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/markdown/org/docs/patterns/tamiko/fabric/fr.md b/markdown/org/docs/patterns/tamiko/fabric/fr.md index dfc7a95f3d1..da2b84be0b4 100644 --- a/markdown/org/docs/patterns/tamiko/fabric/fr.md +++ b/markdown/org/docs/patterns/tamiko/fabric/fr.md @@ -2,6 +2,6 @@ title: "Tamiko top: Fabric Options" - - - -This pattern has a lot of unfinished edges, so you need something that does not ravel. And you want to go for something with a nice drape. +This pattern has a lot of unfinished edges, so you need something that does not ravel. Et vous voulez quelque chose avec un joli drapé. -Long story short, go for a knitted fabric, or some light scuba or something. No wovens. +Bref, choisissez un tissu à mailles, ou un scuba léger, quelque chose dans le genre. Pas de tissu tissé. From 2791c7d71ef5d6ba07ea2f1c9e0cd9cec9609a8c Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:26:07 +0200 Subject: [PATCH 07/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/instructions/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/instructions/fr.md b/markdown/org/docs/patterns/tamiko/instructions/fr.md index 7e4640688fb..beef7f27ffb 100644 --- a/markdown/org/docs/patterns/tamiko/instructions/fr.md +++ b/markdown/org/docs/patterns/tamiko/instructions/fr.md @@ -6,7 +6,7 @@ title: "Tamiko top: Sewing Instructions" ![Finsh the armhole seam](step03.png) -- Finish the armhole seam with a narrow hem. +- Terminez la couture de la manche avec un ourlet étroit. ### Étape 2 : Terminer le haut From dbb2f24333062e5a4d6ddc9ea2399ed0d2b7748c Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:36:53 +0200 Subject: [PATCH 08/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/instructions/fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/markdown/org/docs/patterns/tamiko/instructions/fr.md b/markdown/org/docs/patterns/tamiko/instructions/fr.md index beef7f27ffb..d4a0ae9ae72 100644 --- a/markdown/org/docs/patterns/tamiko/instructions/fr.md +++ b/markdown/org/docs/patterns/tamiko/instructions/fr.md @@ -4,13 +4,13 @@ title: "Tamiko top: Sewing Instructions" ### Étape 1 : Terminer la couture des armoiries -![Finsh the armhole seam](step03.png) +![Étape : Terminer la couture de la manche](step03.png) - Terminez la couture de la manche avec un ourlet étroit. ### Étape 2 : Terminer le haut -![Sew the three seamlines that are marked on your draft](step04.png) +![Coudre les trois lignes de couture qui sont marquées sur votre patron](step04.png) @@ -19,8 +19,8 @@ De cette façon, votre top ne peut pas se déplacer pendant que nous le finisson -- Sew the three seamlines that are marked on your draft. F-H, C and I-J in the diagram, represented by lines and notches on the pattern. +- Coudre les trois lignes de couture qui sont marquées sur votre patron. F-H, C et I-J dans le diagramme, représentés par des lignes et des encoches sur le modèle. ### Step 3: Enjoy! -Now enjoy your new top and it's zero waste properties! +Vous pouvez maintenant enfiler votre nouveau top, qui a généré zéro déchets! From e04021043702fa3d0f91409c9b74f5beaf2b4163 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:36:54 +0200 Subject: [PATCH 09/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/measurements/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/measurements/fr.md b/markdown/org/docs/patterns/tamiko/measurements/fr.md index 74b7554838f..e6858061e43 100644 --- a/markdown/org/docs/patterns/tamiko/measurements/fr.md +++ b/markdown/org/docs/patterns/tamiko/measurements/fr.md @@ -1,5 +1,5 @@ - - - -title: "Tamiko top: Required Measurements" +title: "top: Tamiko : Mensurations requises" - - - From ab3a79f8b5ea6709412d954db68d9e60f4e5a8b3 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:36:55 +0200 Subject: [PATCH 10/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/needs/fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/markdown/org/docs/patterns/tamiko/needs/fr.md b/markdown/org/docs/patterns/tamiko/needs/fr.md index e093eb8b1a3..fe70bb54661 100644 --- a/markdown/org/docs/patterns/tamiko/needs/fr.md +++ b/markdown/org/docs/patterns/tamiko/needs/fr.md @@ -1,8 +1,8 @@ - - - -title: "Tamiko top: What You Need" +title: "Top Tamiko : ce dont vous avez besoin" - - - -To make Tamiko, you will need the following: +Pour faire Tamiko, vous aurez besoin des éléments suivants : - Fourniture de base pour la couture - About 1 meter (1.1 yards) of a suitable fabric ([see Fabric options](/docs/patterns/tamiko/fabric)) From 300a9dd3dc3ff5868b667dd6c6d63c4d296227c1 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 7 May 2022 16:47:40 +0200 Subject: [PATCH 11/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/needs/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/needs/fr.md b/markdown/org/docs/patterns/tamiko/needs/fr.md index fe70bb54661..a53cc2b7cac 100644 --- a/markdown/org/docs/patterns/tamiko/needs/fr.md +++ b/markdown/org/docs/patterns/tamiko/needs/fr.md @@ -5,4 +5,4 @@ title: "Top Tamiko : ce dont vous avez besoin" Pour faire Tamiko, vous aurez besoin des éléments suivants : - Fourniture de base pour la couture -- About 1 meter (1.1 yards) of a suitable fabric ([see Fabric options](/docs/patterns/tamiko/fabric)) +- Environ 1 mètre (1.1 yards) d'un tissu adapté ([voir Options de tissu](/docs/patterns/tamiko/fabric)) From db7fc413d7c1ed18efedea4c6969899a604ec9ce Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Mon, 9 May 2022 16:29:12 +0200 Subject: [PATCH 12/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/instructions/fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/markdown/org/docs/patterns/tamiko/instructions/fr.md b/markdown/org/docs/patterns/tamiko/instructions/fr.md index d4a0ae9ae72..24f3bc32378 100644 --- a/markdown/org/docs/patterns/tamiko/instructions/fr.md +++ b/markdown/org/docs/patterns/tamiko/instructions/fr.md @@ -2,7 +2,7 @@ title: "Tamiko top: Sewing Instructions" - - - -### Étape 1 : Terminer la couture des armoiries +### Étape 1 : Terminer l'emmanchure ![Étape : Terminer la couture de la manche](step03.png) @@ -14,8 +14,8 @@ title: "Tamiko top: Sewing Instructions" -Comme votre dessus est plié, c'est une bonne idée de relier les deux moitiés. -De cette façon, votre top ne peut pas se déplacer pendant que nous le finissons. +Comme votre top est plié, c'est une bonne idée d'épingler les deux moitiés ensemble. +Comme ça, votre top ne va pas bouger pendant que nous le finissons. From 0912c9ab130573e94d76b4fafbdc666e83562779 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Mon, 9 May 2022 16:29:13 +0200 Subject: [PATCH 13/53] New translations en.md (French) --- .../org/docs/patterns/tamiko/options/armholedepthfactor/fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/markdown/org/docs/patterns/tamiko/options/armholedepthfactor/fr.md b/markdown/org/docs/patterns/tamiko/options/armholedepthfactor/fr.md index a1c30856609..7a112073f03 100644 --- a/markdown/org/docs/patterns/tamiko/options/armholedepthfactor/fr.md +++ b/markdown/org/docs/patterns/tamiko/options/armholedepthfactor/fr.md @@ -1,6 +1,6 @@ -Contrôle la profondeur de votre armure, en tant que facteur de mesure de votre épaule à épaule. +Contrôle la profondeur de votre manche, en fonction de la mensuration de votre épaule à épaule. -## Effet de cette option sur le motif +## Effet de cette option sur le patron ![Cette image montre l'effet de cette option en superposant plusieurs variantes qui ont une valeur différente pour cette option](tamiko_armholedepthfactor_sample.svg "Effet de cette option sur le motif") \ No newline at end of file From c3b13c868765248a626fa7b672105a7411de3f43 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Mon, 9 May 2022 16:29:14 +0200 Subject: [PATCH 14/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/options/chestease/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/options/chestease/fr.md b/markdown/org/docs/patterns/tamiko/options/chestease/fr.md index 3e9d4eee1b2..717d89dea89 100644 --- a/markdown/org/docs/patterns/tamiko/options/chestease/fr.md +++ b/markdown/org/docs/patterns/tamiko/options/chestease/fr.md @@ -1,5 +1,5 @@ -La quantité d'aisance à votre poitrine. +L'aisance au niveau de la poitrine. ## Effet de cette option sur le motif From ad97f16f38604b29fcdbaa0ecd72536fbb72d3f8 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Mon, 9 May 2022 16:29:15 +0200 Subject: [PATCH 15/53] New translations en.md (French) --- markdown/org/docs/patterns/tamiko/options/flare/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/options/flare/fr.md b/markdown/org/docs/patterns/tamiko/options/flare/fr.md index 348982a1541..4844008d7b1 100644 --- a/markdown/org/docs/patterns/tamiko/options/flare/fr.md +++ b/markdown/org/docs/patterns/tamiko/options/flare/fr.md @@ -1,5 +1,5 @@ -L'angle par lequel le vêtement sort de votre poitrine vers le bas. +L'angle par lequel le vêtement s'évase de votre poitrine vers le bas. ## Effet de cette option sur le motif From 0e130cb683e8f51beb240b5ca8b88dccf46aee4f Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Mon, 9 May 2022 16:29:17 +0200 Subject: [PATCH 16/53] New translations en.md (French) --- .../org/docs/patterns/tamiko/options/shoulderseamlength/fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/org/docs/patterns/tamiko/options/shoulderseamlength/fr.md b/markdown/org/docs/patterns/tamiko/options/shoulderseamlength/fr.md index 61333514a45..da12d11d150 100644 --- a/markdown/org/docs/patterns/tamiko/options/shoulderseamlength/fr.md +++ b/markdown/org/docs/patterns/tamiko/options/shoulderseamlength/fr.md @@ -1,5 +1,5 @@ -La longueur de la couture d'épaule, en tant que facteur de la mesure d'épaule à épaule. +La longueur de la couture d'épaule, en fonction de la mensuration d'épaule à épaule. ## Effet de cette option sur le motif From e65454d0452dfc25d0b61bd11947254ece021280 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 04:15:16 +0000 Subject: [PATCH 17/53] Bump @fontsource/ubuntu from 4.5.6 to 4.5.9 Bumps [@fontsource/ubuntu](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/ubuntu) from 4.5.6 to 4.5.9. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/ubuntu) --- updated-dependencies: - dependency-name: "@fontsource/ubuntu" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8bad8cda74b..496a0842e56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1704,9 +1704,9 @@ integrity sha512-krIslwmFMjDHtbSVKZLC6+PM6dOvw26OTm7rE7CrniJ4q5Lbfffx67RAlDI3ee0LsG6gIJd/JXBeUm+RgUsPqg== "@fontsource/ubuntu@latest": - version "4.5.6" - resolved "https://registry.yarnpkg.com/@fontsource/ubuntu/-/ubuntu-4.5.6.tgz#9aa9203386d0f6c8ba6b28b67b9f39484b20dfa7" - integrity sha512-MOYHXrby1tF36wRydHN6YX70tlURth+gA1izuR6CynwwcUYYS+VpfTM60Uhwqo+rcp7NtnnkWpvLQt/CMCFttg== + version "4.5.9" + resolved "https://registry.yarnpkg.com/@fontsource/ubuntu/-/ubuntu-4.5.9.tgz#924ac5bfdebcf714be11bfd6bd97c8decc6ac31f" + integrity sha512-vclZr1HH0wAS+NiFYx0pf2vvIU6ylUN0FNMqBkRLvUqm5cjF+fQ53WfiI9f07tY1/EjbNY6NURmd0/nM/L7krA== "@formatjs/ecma402-abstract@1.11.3": version "1.11.3" From 94ae4518db072ae759cf8a709622c2077413fb59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 04:15:56 +0000 Subject: [PATCH 18/53] Bump @commitlint/cli from 16.2.3 to 16.2.4 Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 16.2.3 to 16.2.4. - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v16.2.4/@commitlint/cli) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 60 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8bad8cda74b..8dac8ebefc6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1368,13 +1368,13 @@ sift "^13.0.0" "@commitlint/cli@^16.0.2": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-16.2.3.tgz#6c250ce7a660a08a3ac35dd2ec5039421fb831df" - integrity sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA== + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-16.2.4.tgz#f22707918d08c27a19779798788a7c793f1d38e6" + integrity sha512-rbvqvz9JI+uiKxV2nH65BtSU01fsADd3bxe9fWtO3rM0c+CI/H9FfzKkDLvSRmXjvk1G2/wXlCGeqO9IBT4X9g== dependencies: "@commitlint/format" "^16.2.1" - "@commitlint/lint" "^16.2.1" - "@commitlint/load" "^16.2.3" + "@commitlint/lint" "^16.2.4" + "@commitlint/load" "^16.2.4" "@commitlint/read" "^16.2.1" "@commitlint/types" "^16.2.1" lodash "^4.17.19" @@ -1418,28 +1418,28 @@ "@commitlint/types" "^16.2.1" chalk "^4.0.0" -"@commitlint/is-ignored@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz#cc688ec73a3d204b90f8086821a08814da461e5e" - integrity sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ== +"@commitlint/is-ignored@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-16.2.4.tgz#369e40a240ad5451bf2b57a80829253129d7f19b" + integrity sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ== dependencies: "@commitlint/types" "^16.2.1" - semver "7.3.5" + semver "7.3.7" -"@commitlint/lint@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-16.2.1.tgz#c773f082cd4f69cb7807b805b691d2a52c732f97" - integrity sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg== +"@commitlint/lint@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-16.2.4.tgz#575f5a9d227dddfca8386253d9aff27be5b94788" + integrity sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ== dependencies: - "@commitlint/is-ignored" "^16.2.1" + "@commitlint/is-ignored" "^16.2.4" "@commitlint/parse" "^16.2.1" - "@commitlint/rules" "^16.2.1" + "@commitlint/rules" "^16.2.4" "@commitlint/types" "^16.2.1" -"@commitlint/load@^16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.3.tgz#7b2e85af25a6f736f080ba08e7165738cedf8c8f" - integrity sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw== +"@commitlint/load@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.4.tgz#32c9f4c6538b21cf48cf40266312bb1adb65f435" + integrity sha512-HjANm3/29ROV+zt4yfaY/K6gpr9Dbzgtlp0kSwZGW0poDXlD/yqVYgPQ6JolJzZii5FUz5R4yVLC15hVL/w60w== dependencies: "@commitlint/config-validator" "^16.2.1" "@commitlint/execute-rule" "^16.2.1" @@ -1489,10 +1489,10 @@ resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-16.2.1.tgz#7264aa1c754e1c212aeceb27e5eb380cfa7bb233" - integrity sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw== +"@commitlint/rules@^16.2.4": + version "16.2.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-16.2.4.tgz#c2fbbf20d9d0e8fcf25690c88a27750d4a3e867b" + integrity sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg== dependencies: "@commitlint/ensure" "^16.2.1" "@commitlint/message" "^16.2.1" @@ -24438,18 +24438,18 @@ semver@7.3.5: dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + send@0.17.2: version "0.17.2" resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" From fc751a19faf125cb0d2c2f3ed682f0e325b77178 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 04:43:32 +0000 Subject: [PATCH 19/53] Bump strapi-connector-mongoose from 3.6.8 to 3.6.9 Bumps [strapi-connector-mongoose](https://github.com/strapi/strapi) from 3.6.8 to 3.6.9. - [Release notes](https://github.com/strapi/strapi/releases) - [Commits](https://github.com/strapi/strapi/compare/v3.6.8...v3.6.9) --- updated-dependencies: - dependency-name: strapi-connector-mongoose dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- packages/strapi/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/strapi/package.json b/packages/strapi/package.json index bf26a36ea61..c1446013019 100644 --- a/packages/strapi/package.json +++ b/packages/strapi/package.json @@ -41,7 +41,7 @@ "strapi-plugin-email": "3.6.8", "strapi-plugin-upload": "3.6.8", "strapi-plugin-i18n": "3.6.8", - "strapi-connector-mongoose": "3.6.8" + "strapi-connector-mongoose": "3.6.9" }, "devDependencies": {}, "files": [], diff --git a/yarn.lock b/yarn.lock index 8bad8cda74b..7fbc9969bc2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25370,10 +25370,10 @@ strapi-admin@3.6.8: webpackbar "^4.0.0" yup "^0.32.9" -strapi-connector-mongoose@3.6.8: - version "3.6.8" - resolved "https://registry.yarnpkg.com/strapi-connector-mongoose/-/strapi-connector-mongoose-3.6.8.tgz#c5aa4c1b5f9ef4b39d48b84aba256c1ec20b6b5a" - integrity sha512-szBQhCSOZhobfu5FWS56u2JaqWe/bz7BhMeBBRPXc9SFT5buKVMydrMxRI3l63/Aap6AtHt43OtZ6V5aUZlTDA== +strapi-connector-mongoose@3.6.9: + version "3.6.9" + resolved "https://registry.yarnpkg.com/strapi-connector-mongoose/-/strapi-connector-mongoose-3.6.9.tgz#31a5f009e6def3962427f12ffc269407f666265c" + integrity sha512-h8GX/Ekr00a1uewgq6ExJ1kRbSfESFzG3jKpO+9W+WEVwjoLG5KjA0hru3JQ3vlG/44HOrroO02l2TEviLVZbg== dependencies: lodash "4.17.21" mongoose "5.10.8" @@ -25382,7 +25382,7 @@ strapi-connector-mongoose@3.6.8: p-map "4.0.0" pluralize "^8.0.0" semver "^7.3.5" - strapi-utils "3.6.8" + strapi-utils "3.6.9" strapi-database@3.6.8: version "3.6.8" From 8155fbf232b9e71a747b6d7e085eb4c806d91ff0 Mon Sep 17 00:00:00 2001 From: bobgeorgethe3rd Date: Wed, 11 May 2022 06:54:28 +0100 Subject: [PATCH 20/53] re-added options.waistHeight for points.seatOutCp1 Was accidently removed when waistband was updated to pct option. --- packages/titan/src/front.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/titan/src/front.js b/packages/titan/src/front.js index 9805a71b3f9..2e3384d6665 100644 --- a/packages/titan/src/front.js +++ b/packages/titan/src/front.js @@ -216,7 +216,7 @@ export default (part) => { points.kneeOutCp1 = points.kneeOut.shift(90, points.fork.dy(points.knee) / 3) points.seatOutCp1 = points.seatOut.shift( 90, - measurements.waistToHips + absoluteOptions.waistbandWidth + measurements.waistToHips * options.waistHeight + absoluteOptions.waistbandWidth ) points.seatOutCp2 = points.seatOut.shift(-90, points.seatOut.dy(points.knee) / 3) From 6c41b1d941dba107ae0dd1ab564e87f1f69d0bf9 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Wed, 11 May 2022 16:29:46 +0200 Subject: [PATCH 21/53] feat(freesewing.dev): ToC and layout changes --- packages/freesewing.dev/components/header.js | 8 +- .../freesewing.dev/components/layouts/docs.js | 150 ++++++++++++++++++ .../components/wrappers/page.js | 65 ++++++++ packages/freesewing.dev/pages/[...mdxslug].js | 21 ++- .../components/icons/docs.js | 4 +- .../components/icons/guide.js | 4 +- .../components/icons/help.js | 4 +- .../freesewing.shared/components/icons/rss.js | 4 +- .../components/icons/tutorial.js | 4 +- .../components/layouts/default.js | 100 ++++++------ .../components/navigation/primary.js | 81 +++++++--- .../components/wrappers/toc.js | 41 +++++ packages/freesewing.shared/mdx/loader.js | 23 ++- .../freesewing.shared/mdx/mdx-plugin-toc.mjs | 30 ++++ packages/freesewing.shared/package.json | 1 + packages/freesewing.shared/styles/globals.css | 6 + yarn.lock | 26 ++- 17 files changed, 478 insertions(+), 94 deletions(-) create mode 100644 packages/freesewing.dev/components/layouts/docs.js create mode 100644 packages/freesewing.dev/components/wrappers/page.js create mode 100644 packages/freesewing.shared/components/wrappers/toc.js create mode 100644 packages/freesewing.shared/mdx/mdx-plugin-toc.mjs diff --git a/packages/freesewing.dev/components/header.js b/packages/freesewing.dev/components/header.js index ddabd24548f..aebcf39f258 100644 --- a/packages/freesewing.dev/components/header.js +++ b/packages/freesewing.dev/components/header.js @@ -55,7 +55,7 @@ const Header = ({ app, setSearch }) => { text-neutral-content bg-transparent border border-transparent hover:bg-transparent hover:border-base-100 - sm:hidden + md:hidden h-12 `} onClick={app.togglePrimaryMenu}> @@ -79,14 +79,14 @@ const Header = ({ app, setSearch }) => { ) } -
+
-
+
diff --git a/packages/freesewing.dev/components/layouts/docs.js b/packages/freesewing.dev/components/layouts/docs.js new file mode 100644 index 00000000000..366176ee904 --- /dev/null +++ b/packages/freesewing.dev/components/layouts/docs.js @@ -0,0 +1,150 @@ +import React from 'react' +import { useState } from 'react' +import { useRouter } from 'next/router' +import Link from 'next/link' +// Shared components +import Logo from 'shared/components/logos/freesewing.js' +import PrimaryNavigation from 'shared/components/navigation/primary' +import get from 'lodash.get' +import Right from 'shared/components/icons/right.js' +import Left from 'shared/components/icons/left.js' +// Site components +import Header from 'site/components/header' +import Footer from 'site/components/footer' +import Search from 'site/components/search' + +const PageTitle = ({ app, slug, title }) => { + if (title) return

{title}

+ if (slug) return

{get(app.navigation, slug.split('/')).__title}

+ + return

FIXME: This page has no title

+} + +const Breadcrumbs = ({ app, slug=false, title }) => { + if (!slug) return null + const crumbs = [] + const chunks = slug.split('/') + for (const i in chunks) { + const j = parseInt(i)+parseInt(1) + const page = get(app.navigation, chunks.slice(0,j)) + if (page) crumbs.push([page.__linktitle, '/'+chunks.slice(0,j).join('/'), (j < chunks.length)]) + } + + return ( +
    +
  • + + + + + +
  • + {crumbs.map(crumb => ( + +
  • »
  • +
  • + {crumb[2] + ? ( + + + {crumb[0]} + + + ) + : {crumb[0]} + } +
  • +
    + ))} +
+ ) +} + +const DefaultLayout = ({ + app, + title=false, + children=[], + search, + setSearch, + noSearch=false, + workbench=false, + AltMenu=null, +}) => { + const startNavigation = () => { + app.startLoading() + // Force close of menu on mobile if it is open + if (app.primaryNavigation) app.setPrimaryNavigation(false) + // Force close of search modal if it is open + if (search) setSearch(false) + } + + const router = useRouter() + router.events?.on('routeChangeStart', startNavigation) + router.events?.on('routeChangeComplete', () => app.stopLoading()) + const slug = router.asPath.slice(1) + const [collapsePrimaryNav, setCollapsePrimaryNav] = useState(workbench || false) + const [collapseAltMenu, setCollapseAltMenu] = useState(false) + + return ( +
+
+
+
+ + + +
+
+ {title && ( +
+ + +
+ )} + {children} +
+
+ +
+ +
+ {!noSearch && search && ( + <> +
+ +
+
+ + )} +
+
+ ) +} + +export default DefaultLayout diff --git a/packages/freesewing.dev/components/wrappers/page.js b/packages/freesewing.dev/components/wrappers/page.js new file mode 100644 index 00000000000..478875b4d39 --- /dev/null +++ b/packages/freesewing.dev/components/wrappers/page.js @@ -0,0 +1,65 @@ +import React, { useState, useEffect } from 'react' +import { useSwipeable } from 'react-swipeable' +import { useRouter } from 'next/router' +import { useHotkeys } from 'react-hotkeys-hook' +// Layouts components +import Docs from 'site/components/layouts/docs' + +const layouts = { + docs: Docs, +} + +/* This component should wrap all page content */ +const PageWrapper= ({ + title="FIXME: No title set", + noSearch=false, + app=false, + layout=false, + children=[] +}) => { + + const swipeHandlers = useSwipeable({ + onSwipedLeft: evt => (app.primaryMenu) ? app.setPrimaryMenu(false) : null, + onSwipedRight: evt => (app.primaryMenu) ? null : app.setPrimaryMenu(true), + trackMouse: true + }) + + const router = useRouter() + const slug = router.asPath.slice(1) + + useEffect(() => app.setSlug(slug), [slug]) + + // Trigger search with Ctrl+k + useHotkeys('ctrl+k', (evt) => { + evt.preventDefault() + setSearch(true) + }) + + const [search, setSearch] = useState(false) + + const childProps = { + app: app, + title: title, + search, setSearch, toggleSearch: () => setSearch(!search), + noSearch: noSearch, + } + + const Layout = layouts[layout] + + return ( +
+ {layout + ? {children} + : children + } +
+ ) +} + +export default PageWrapper + diff --git a/packages/freesewing.dev/pages/[...mdxslug].js b/packages/freesewing.dev/pages/[...mdxslug].js index 9a898f1bd98..64138aec636 100644 --- a/packages/freesewing.dev/pages/[...mdxslug].js +++ b/packages/freesewing.dev/pages/[...mdxslug].js @@ -1,8 +1,9 @@ -import Page from 'shared/components/wrappers/page.js' +import Page from 'site/components/wrappers/page.js' import useApp from 'site/hooks/useApp.js' import mdxMeta from 'site/prebuild/mdx.en.js' import mdxLoader from 'shared/mdx/loader' import MdxWrapper from 'shared/components/wrappers/mdx' +import TocWrapper from 'shared/components/wrappers/toc' import Head from 'next/head' import HelpUs from 'site/components/help-us.js' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' @@ -22,7 +23,7 @@ const MdxPage = props => { * active state */ return ( - + @@ -36,8 +37,17 @@ const MdxPage = props => { - - +
+ {props.toc && ( +
+ +
+ )} +
+ + +
+
) } @@ -61,11 +71,12 @@ export default MdxPage */ export async function getStaticProps({ params, locale }) { - const { mdx, intro } = await mdxLoader('en', 'dev', params.mdxslug.join('/')) + const { mdx, intro, toc } = await mdxLoader('en', 'dev', params.mdxslug.join('/')) return { props: { mdx, + toc, intro: intro.join(' '), page: { slug: params.mdxslug.join('/'), diff --git a/packages/freesewing.shared/components/icons/docs.js b/packages/freesewing.shared/components/icons/docs.js index 65053ce741b..89e7f8bfba1 100644 --- a/packages/freesewing.shared/components/icons/docs.js +++ b/packages/freesewing.shared/components/icons/docs.js @@ -1,6 +1,6 @@ /* Sourced from heroicons.com - Thanks guys! */ -const Docs = () => ( - +const Docs = ({ className="h-6 w-6" }) => ( + ) diff --git a/packages/freesewing.shared/components/icons/guide.js b/packages/freesewing.shared/components/icons/guide.js index 910bacf2127..0456eaa3768 100644 --- a/packages/freesewing.shared/components/icons/guide.js +++ b/packages/freesewing.shared/components/icons/guide.js @@ -1,5 +1,5 @@ -const Guides = () => ( - +const Guides = ({ className="h-6 w-6" }) => ( + ) diff --git a/packages/freesewing.shared/components/icons/help.js b/packages/freesewing.shared/components/icons/help.js index 92d7723d790..edf0c6e6bd3 100644 --- a/packages/freesewing.shared/components/icons/help.js +++ b/packages/freesewing.shared/components/icons/help.js @@ -1,6 +1,6 @@ /* Sourced from heroicons.com - Thanks guys! */ -const Help = () => ( - +const Help = ({ className="w-6 h-6" }) => ( + ) diff --git a/packages/freesewing.shared/components/icons/rss.js b/packages/freesewing.shared/components/icons/rss.js index 0b5b77e7532..cf3c03fca90 100644 --- a/packages/freesewing.shared/components/icons/rss.js +++ b/packages/freesewing.shared/components/icons/rss.js @@ -1,6 +1,6 @@ /* Sourced from heroicons.com - Thanks guys! */ -const Rss = () => ( - +const Rss = ({ className='h-6 w-6' }) => ( + ) diff --git a/packages/freesewing.shared/components/icons/tutorial.js b/packages/freesewing.shared/components/icons/tutorial.js index ea49dcfa350..3f642bc80dc 100644 --- a/packages/freesewing.shared/components/icons/tutorial.js +++ b/packages/freesewing.shared/components/icons/tutorial.js @@ -1,5 +1,5 @@ -const Tutorial = () => ( - +const Tutorial = ({ className="w-6 h-6" }) => ( + diff --git a/packages/freesewing.shared/components/layouts/default.js b/packages/freesewing.shared/components/layouts/default.js index 18c33ab486e..7c946d1e4ab 100644 --- a/packages/freesewing.shared/components/layouts/default.js +++ b/packages/freesewing.shared/components/layouts/default.js @@ -74,8 +74,9 @@ const asideClasses = ` overflow-y-scroll z-20 bg-base-100 text-base-content - sm:bg-neutral sm:bg-opacity-95 sm:text-neutral-content - transition-all ` + transition-all + xl:w-1/4 +` const DefaultLayout = ({ @@ -110,53 +111,58 @@ const DefaultLayout = ({ bg-base-100 `}>
-
-
- -
- )} - - -
-
- {title && ( - <> - - - +
+
+ + + +
+
+
+ {title && ( + <> + + + + )} + {children} +
+
-
+ + + {workbench && AltMenu && ( -
+
{title && ( -
+
From 08e395cd5896534493b239851219ee74d351051c Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Wed, 11 May 2022 17:08:01 +0200 Subject: [PATCH 24/53] fix(freesewing.dev): Remove service worker for cleaning gatsby cache --- packages/freesewing.dev/pages/index.js | 3 +-- packages/freesewing.dev/public/sw.js | 16 ---------------- 2 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 packages/freesewing.dev/public/sw.js diff --git a/packages/freesewing.dev/pages/index.js b/packages/freesewing.dev/pages/index.js index d8f9787830d..7b9ed607c94 100644 --- a/packages/freesewing.dev/pages/index.js +++ b/packages/freesewing.dev/pages/index.js @@ -3,8 +3,8 @@ import useApp from 'site/hooks/useApp.js' import Head from 'next/head' import HelpUs from 'site/components/help-us.js' import Link from 'next/link' -import Script from 'next/script' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import Robot from 'shared/components/robot' const HomePage = (props) => { const app = useApp() @@ -23,7 +23,6 @@ const HomePage = (props) => { -

FreeSewing.dev hosts documentation for contributors and developers alike. diff --git a/packages/freesewing.dev/public/sw.js b/packages/freesewing.dev/public/sw.js deleted file mode 100644 index bcd6a004a54..00000000000 --- a/packages/freesewing.dev/public/sw.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * This is here to force-remove the cache of the old Gatsby site - * See: https://github.com/gatsbyjs/gatsby/issues/15623 - */ -self.addEventListener("activate", function (event) { - event.waitUntil( - caches.keys().then(function (cacheNames) { - return Promise.all( - cacheNames - .map(function (cacheName) { - return caches.delete(cacheName); - }) - ); - }) - ); -}); From e4a61c65021753c18003cf78f25728f27e5d8a08 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Wed, 11 May 2022 17:41:24 +0200 Subject: [PATCH 25/53] chore(freesewing.dev): Layout composition changes --- .../freesewing.dev/components/layouts/bare.js | 66 ++++++++++ .../freesewing.dev/components/layouts/docs.js | 98 ++------------- .../components/wrappers/layout.js | 115 ++++++++++++++++++ .../components/wrappers/page.js | 15 ++- packages/freesewing.dev/pages/[...mdxslug].js | 2 +- packages/freesewing.dev/pages/index.js | 32 ++++- packages/freesewing.dev/public/img/splash.jpg | Bin 0 -> 121264 bytes .../components/navigation/aside.js | 24 ++++ 8 files changed, 256 insertions(+), 96 deletions(-) create mode 100644 packages/freesewing.dev/components/layouts/bare.js create mode 100644 packages/freesewing.dev/components/wrappers/layout.js create mode 100644 packages/freesewing.dev/public/img/splash.jpg create mode 100644 packages/freesewing.shared/components/navigation/aside.js diff --git a/packages/freesewing.dev/components/layouts/bare.js b/packages/freesewing.dev/components/layouts/bare.js new file mode 100644 index 00000000000..21ee80473ba --- /dev/null +++ b/packages/freesewing.dev/components/layouts/bare.js @@ -0,0 +1,66 @@ +import React from 'react' +import { useRouter } from 'next/router' +import Link from 'next/link' +// Shared components +import Logo from 'shared/components/logos/freesewing.js' +import Aside from 'shared/components/navigation/aside' +import get from 'lodash.get' + +const PageTitle = ({ app, slug, title }) => { + if (title) return

{title}

+ if (slug) return

{get(app.navigation, slug.split('/')).__title}

+ + return

FIXME: This page has no title

+} + +const Breadcrumbs = ({ app, slug=false, title }) => { + if (!slug) return null + const crumbs = [] + const chunks = slug.split('/') + for (const i in chunks) { + const j = parseInt(i)+parseInt(1) + const page = get(app.navigation, chunks.slice(0,j)) + if (page) crumbs.push([page.__linktitle, '/'+chunks.slice(0,j).join('/'), (j < chunks.length)]) + } + + return ( +
    +
  • + + + + + +
  • + {crumbs.map(crumb => ( + +
  • »
  • +
  • + {crumb[2] + ? ( + + + {crumb[0]} + + + ) + : {crumb[0]} + } +
  • +
    + ))} +
+ ) +} + +const DefaultLayout = ({ app, title=false, children=[] }) => { + const router = useRouter() + const slug = router.asPath.slice(1) + + return [ +
) } diff --git a/packages/freesewing.dev/components/wrappers/layout.js b/packages/freesewing.dev/components/wrappers/layout.js new file mode 100644 index 00000000000..b928604121f --- /dev/null +++ b/packages/freesewing.dev/components/wrappers/layout.js @@ -0,0 +1,115 @@ +import React from 'react' +import { useState } from 'react' +import { useRouter } from 'next/router' +import Link from 'next/link' +// Shared components +import Logo from 'shared/components/logos/freesewing.js' +import PrimaryNavigation from 'shared/components/navigation/primary' +import get from 'lodash.get' +import Right from 'shared/components/icons/right.js' +import Left from 'shared/components/icons/left.js' +// Site components +import Header from 'site/components/header' +import Footer from 'site/components/footer' +import Search from 'site/components/search' + +const PageTitle = ({ app, slug, title }) => { + if (title) return

{title}

+ if (slug) return

{get(app.navigation, slug.split('/')).__title}

+ + return

FIXME: This page has no title

+} + +const Breadcrumbs = ({ app, slug=false, title }) => { + if (!slug) return null + const crumbs = [] + const chunks = slug.split('/') + for (const i in chunks) { + const j = parseInt(i)+parseInt(1) + const page = get(app.navigation, chunks.slice(0,j)) + if (page) crumbs.push([page.__linktitle, '/'+chunks.slice(0,j).join('/'), (j < chunks.length)]) + } + + return ( +
    +
  • + + + + + +
  • + {crumbs.map(crumb => ( + +
  • »
  • +
  • + {crumb[2] + ? ( + + + {crumb[0]} + + + ) + : {crumb[0]} + } +
  • +
    + ))} +
+ ) +} + +const LayoutWrapper = ({ + app, + title=false, + children=[], + search, + setSearch, + noSearch=false, + workbench=false, + AltMenu=null, +}) => { + const startNavigation = () => { + app.startLoading() + // Force close of menu on mobile if it is open + if (app.primaryNavigation) app.setPrimaryNavigation(false) + // Force close of search modal if it is open + if (search) setSearch(false) + } + + const router = useRouter() + router.events?.on('routeChangeStart', startNavigation) + router.events?.on('routeChangeComplete', () => app.stopLoading()) + const slug = router.asPath.slice(1) + const [collapsePrimaryNav, setCollapsePrimaryNav] = useState(workbench || false) + const [collapseAltMenu, setCollapseAltMenu] = useState(false) + + return ( +
+
+
{children}
+ {!noSearch && search && ( + <> +
+ +
+
+ + )} +
+
+ ) +} + +export default LayoutWrapper diff --git a/packages/freesewing.dev/components/wrappers/page.js b/packages/freesewing.dev/components/wrappers/page.js index 478875b4d39..ae1a731df14 100644 --- a/packages/freesewing.dev/components/wrappers/page.js +++ b/packages/freesewing.dev/components/wrappers/page.js @@ -3,6 +3,7 @@ import { useSwipeable } from 'react-swipeable' import { useRouter } from 'next/router' import { useHotkeys } from 'react-hotkeys-hook' // Layouts components +import LayoutWrapper from 'site/components/wrappers/layout' import Docs from 'site/components/layouts/docs' const layouts = { @@ -14,7 +15,7 @@ const PageWrapper= ({ title="FIXME: No title set", noSearch=false, app=false, - layout=false, + layout=Docs, children=[] }) => { @@ -44,7 +45,7 @@ const PageWrapper= ({ noSearch: noSearch, } - const Layout = layouts[layout] + const Layout = layout return (
- {layout - ? {children} - : children - } + + {Layout + ? {children} + : children + } +
) } diff --git a/packages/freesewing.dev/pages/[...mdxslug].js b/packages/freesewing.dev/pages/[...mdxslug].js index 64138aec636..4c8cfdfa983 100644 --- a/packages/freesewing.dev/pages/[...mdxslug].js +++ b/packages/freesewing.dev/pages/[...mdxslug].js @@ -23,7 +23,7 @@ const MdxPage = props => { * active state */ return ( - + diff --git a/packages/freesewing.dev/pages/index.js b/packages/freesewing.dev/pages/index.js index 7b9ed607c94..e4091df4f4c 100644 --- a/packages/freesewing.dev/pages/index.js +++ b/packages/freesewing.dev/pages/index.js @@ -1,15 +1,15 @@ -import Page from 'shared/components/wrappers/page.js' +import Page from 'site/components/wrappers/page.js' import useApp from 'site/hooks/useApp.js' import Head from 'next/head' import HelpUs from 'site/components/help-us.js' import Link from 'next/link' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' -import Robot from 'shared/components/robot' +import Layout from 'site/components/layouts/bare' const HomePage = (props) => { const app = useApp() return ( - + @@ -23,7 +23,31 @@ const HomePage = (props) => { -
+
+
+

+ FreeSewing.dev +

+

+ Documentation for FreeSewing contributors & developers +

+
+
+

FreeSewing.dev hosts documentation for contributors and developers alike.
diff --git a/packages/freesewing.dev/public/img/splash.jpg b/packages/freesewing.dev/public/img/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25d06b10f62929fe0ef9060ee365c6c6f21b7e1a GIT binary patch literal 121264 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 literal 0 HcmV?d00001 diff --git a/packages/freesewing.shared/components/navigation/aside.js b/packages/freesewing.shared/components/navigation/aside.js new file mode 100644 index 00000000000..0221960f8f6 --- /dev/null +++ b/packages/freesewing.shared/components/navigation/aside.js @@ -0,0 +1,24 @@ +import PrimaryNavigation from './primary' + +const Aside = ({ app, slug, mobileOnly=false }) => ( + +) + +export default Aside From be08f0a695f22311e2c65b2a9e68bdfd85f1e590 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Thu, 12 May 2022 10:27:42 +0200 Subject: [PATCH 26/53] feat(freesewing.dev) Homepage tweaks --- packages/freesewing.dev/pages/index.js | 156 +++++++----------- .../components/navigation/primary.js | 20 ++- 2 files changed, 75 insertions(+), 101 deletions(-) diff --git a/packages/freesewing.dev/pages/index.js b/packages/freesewing.dev/pages/index.js index e4091df4f4c..21f8df826e4 100644 --- a/packages/freesewing.dev/pages/index.js +++ b/packages/freesewing.dev/pages/index.js @@ -5,6 +5,7 @@ import HelpUs from 'site/components/help-us.js' import Link from 'next/link' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import Layout from 'site/components/layouts/bare' +import Navigation, { Icons } from 'shared/components/navigation/primary' const HomePage = (props) => { const app = useApp() @@ -27,104 +28,56 @@ const HomePage = (props) => { style={{ backgroundImage: "url('/img/splash.jpg')", backgroundSize: 'cover', - backgroundPosition: '50% 50%', - minHeight: '100vh' + backgroundPosition: '40% 50%', }} - className="mt-4 mb-8 shadow drop-shadow-lg lg:mt-8 lg:mb-20 w-full" + className="m-0 p-0 shadow drop-shadow-lg w-full mb-8" > -
-

- FreeSewing.dev -

-

- Documentation for FreeSewing contributors & developers -

+
+
+

+ FreeSewing + .dev +

+

+ Documentation for FreeSewing contributors & developers +

+
+ +

+ To learn more about FreeSewing and try our platform + go to freesewing.org +

-

- FreeSewing.dev hosts documentation for contributors and developers alike. -
- For our maker site, and to try our platform, go - to freesewing.org. -

-

What is FreeSewing?

-
-

- FreeSewing is an open source platform for made-to-measure sewing patterns. -

-

- @freeSewing/core is a Javascript library for 2D parametric design -

-

- It has a primary focus is on sewing patterns, - but can be utilized for a variety of similar 2D design tasks. -

- -

How can I try it out?

-
-

- You can try it - in the browser - , - in NodeJS - , - or on any Javascript runtime. -

-

- The includes Deno, AWS Lamba, Cloudflare workers, Vercel Edge functions, Netlify functions, and so on. -

-

- Or save yourself the trouble, and check freesewing.org for a showcase of our software. -

- -

- You son of a bitch, I'm in - - * - -

-
-

- We are an all-contributors project - and welcome all contributions. -

-

- Come say hi on Discord, - or check out ways to contribute - to get inspired. -

-

- Last but certainly not least, you can also support FreeSewing financially: -

- +
@@ -139,8 +92,25 @@ const HomePage = (props) => {

Become a Patron
+
+
+
+ +
+
+
+
+
) } diff --git a/packages/freesewing.shared/components/navigation/primary.js b/packages/freesewing.shared/components/navigation/primary.js index 49a7975a93c..10aad712bc2 100644 --- a/packages/freesewing.shared/components/navigation/primary.js +++ b/packages/freesewing.shared/components/navigation/primary.js @@ -195,17 +195,21 @@ const Navigation = ({ app, active, className='' }) => { return
{output}
} -const Icons = ({ app, active, className='' }) => { +export const Icons = ({ + app, active, + ulClasses='', + liClasses='', + linkClasses=`grow text-lg lg:text-xl py-1 text-base-content sm:text-base-content + hover:text-secondary sm:hover:text-secondary hover:cursor-pointer + flex flex-col items-center` +}) => { if (!app.navigation) return null const output = [] for (const page of order(app.navigation)) { output.push( -
  • +
  • - + {icons[page.__slug] ? icons[page.__slug]('w-14 h-14') : @@ -217,13 +221,13 @@ const Icons = ({ app, active, className='' }) => { ) } - return
      {output}
    + return
      {output}
    } const PrimaryMenu = ({ app, active }) => ( ) From 71d03bfb455ea4a230422e955dace6be4259f36f Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Thu, 12 May 2022 19:17:51 +0200 Subject: [PATCH 27/53] chore(freesewing.dev): Layout tweaks --- packages/freesewing.dev/components/layouts/docs.js | 2 +- .../freesewing.shared/components/navigation/aside.js | 10 +++++----- packages/freesewing.shared/components/wrappers/toc.js | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/freesewing.dev/components/layouts/docs.js b/packages/freesewing.dev/components/layouts/docs.js index 0c5955274a3..285e5a3c124 100644 --- a/packages/freesewing.dev/components/layouts/docs.js +++ b/packages/freesewing.dev/components/layouts/docs.js @@ -60,7 +60,7 @@ const DefaultLayout = ({ app, title=false, children=[] }) => { return (