diff --git a/config/dependencies.yaml b/config/dependencies.yaml
index ffaa83d4c16..7bac8fac850 100644
--- a/config/dependencies.yaml
+++ b/config/dependencies.yaml
@@ -100,11 +100,11 @@ jaeger:
'@freesewing/plugin-mirror': *freesewing
new-design:
_:
- 'axios': '1.5.0'
+ 'axios': &axios '1.5.0'
'chalk': '5.0.1'
'execa': '7.2.0'
- 'mustache': '4.2.0'
- 'ora': '7.0.1'
+ 'mustache': &mustache '4.2.0'
+ 'ora': &ora '7.0.1'
'prompts': '2.4.2'
'recursive-readdir': '2.2.3'
noble:
@@ -201,7 +201,7 @@ backend:
'express': '4.18.2'
'js-yaml': *jsyaml
'lodash.get': *_get
- 'mustache': '4.2.0'
+ 'mustache': *mustache
'otplib': '12.0.1'
'passport': '0.6.0'
'passport-http': '0.3.0'
@@ -251,14 +251,12 @@ dev:
'remark-copy-linked-files': &remarkCopyLinkedFiles 'git+https://git@github.com/joostdecock/remark-copy-linked-files'
'remark-gfm': &remarkGfm '3.0.1'
dev: &nextSiteDevDependencies
- '@playwright/test': '^1.32.3'
- 'autoprefixer': '10.4.15'
+ 'autoprefixer': &autoprefixer '10.4.15'
'eslint-config-next': *next
'js-yaml': &jsYaml '4.1.0'
'postcss': &postcss '8.4.29'
- 'playwright': '^1.32.3'
'remark-extract-frontmatter': '3.2.0'
- 'remark-mdx-frontmatter': '3.0.0'
+ 'remark-mdx-frontmatter': &mdxfrontmatter '3.0.0'
'tailwindcss': &tailwindcss '3.3.3'
'yaml-loader': '0.8.0'
@@ -271,9 +269,9 @@ lab:
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'algoliasearch': &algoliasearch '4.19.1'
- 'd3-dispatch': '3.0.1'
- 'd3-drag': '3.0.0'
- 'd3-selection': '3.0.0'
+ 'd3-dispatch': &d3dispatch '3.0.1'
+ 'd3-drag': &d3drag '3.0.0'
+ 'd3-selection': &d3selection '3.0.0'
'daisyui': *daisyui
'i18next': &i18next '23.4.6'
'lodash.get': *_get
@@ -281,7 +279,7 @@ lab:
'lodash.set': *_set
'next': *next
'next-i18next': &nextI18next '14.0.0'
- 'ora': '7.0.1'
+ 'ora': *ora
'react': *react
'react-copy-to-clipboard': *reactCopyToClipboard
'react-hotkeys-hook': *reactHotkeysHook
@@ -297,7 +295,7 @@ lab:
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
- 'remark-mdx-frontmatter': '3.0.0'
+ 'remark-mdx-frontmatter': *mdxfrontmatter
dev:
*nextSiteDevDependencies
@@ -311,7 +309,7 @@ org:
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'algoliasearch': *algoliasearch
- 'react-copy-to-clipboard': 5.1.0
+ 'react-copy-to-clipboard': *reactCopyToClipboard
'daisyui': *daisyui
'echarts': 5.4.2
'echarts-for-react': 3.0.2
@@ -322,8 +320,8 @@ org:
'lodash.set': *_set
'luxon': '3.4.2'
'next': *next
- 'ora': '7.0.1'
- 'react-dropzone': '14.2.3'
+ 'ora': *ora
+ 'react-dropzone': &dropzone '14.2.3'
'react-hotkeys-hook': *reactHotkeysHook
'react-instantsearch-dom': *reactInstantsearchDom
'react-markdown': *reactMarkdown
@@ -336,7 +334,7 @@ org:
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
- 'remark-mdx-frontmatter': '3.0.0'
+ 'remark-mdx-frontmatter': *mdxfrontmatter
'use-persisted-state': &use-persisted-state 0.3.3
'yaml-loader': 0.8.0
dev: *nextSiteDevDependencies
@@ -353,41 +351,102 @@ shared:
'd3-selection': '3.0.0'
'daisyui': *daisyui
'feed': '4.2.2'
- 'file-saver': '2.0.5'
+ 'file-saver': &filesaver '2.0.5'
'front-matter': '4.0.2'
'highlight.js': '11.8.0'
'github-slugger': '2.0.0'
'jotai': *jotai
'jotai-location': *jotai-location
'lodash.clonedeep': '4.5.0'
- 'lodash.debounce': '^4.0.8'
+ 'lodash.debounce': &_debounce '^4.0.8'
'lodash.orderby': *_orderby
'lodash.unset': *_unset
'lodash.get': *_get
'mdast-util-toc': '7.0.0'
'mermaid': '10.4.0'
- 'ora': '7.0.1'
- 'pdfkit': '0.13.0'
- 'postcss-for': '2.1.1'
+ 'ora': *ora
+ 'pdfkit': &pdfkit '0.13.0'
+ 'postcss-for': &postcssfor '2.1.1'
'react': *react
'react-dom': *react
'react-markdown': *reactMarkdown
'react-timeago': *reactTimeago
- 'react-zoom-pan-pinch': '3.1.0'
+ 'react-zoom-pan-pinch': &zoompanpinch '3.1.0'
'rehype-autolink-headings': *rehypeAutolinkHeadings
'rehype-highlight': *rehypeHighlight
- 'remark-frontmatter': '4.0.1'
- 'remark-mdx-frontmatter': '3.0.0'
- 'remark-smartypants': '2.0.0'
+ 'remark-frontmatter': &remarkfrontmatter '4.0.1'
+ 'remark-mdx-frontmatter': *mdxfrontmatter
+ "remark-smartypants": &smartypants "2.0.0"
'sharp': '0.32.5'
- "slugify": "^1.6.6"
+ "slugify": &slugify "^1.6.6"
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
- 'svg-to-pdfkit': 'https://git@github.com/eriese/SVG-to-PDFKit'
- 'tlds': '1.242.0'
+ 'svg-to-pdfkit': &svgtopdfkit 'https://git@github.com/eriese/SVG-to-PDFKit'
+ 'tlds': &rlds '1.242.0'
'to-vfile': '8.0.0'
'unist-util-visit': *unist-util-visit
'use-persisted-state': *use-persisted-state
- 'web-worker': '1.2.0'
+ 'web-worker': &webworker '1.2.0'
dev:
'recursive-readdir': '^2.2.3'
'html-to-text': '^9.0.5'
+
+sde:
+ _:
+ "@freesewing/core": *freesewing
+ "@freesewing/core-plugins": *freesewing
+ "@freesewing/brian": *freesewing
+ "@freesewing/bent": *freesewing
+ "@freesewing/titan": *freesewing
+ "@freesewing/bella": *freesewing
+ "@freesewing/breanna": *freesewing
+ "@freesewing/plugin-bust": *freesewing
+ "@freesewing/plugin-theme": *freesewing
+ "@freesewing/plugin-i18n": *freesewing
+ "@freesewing/snapseries": *freesewing
+ "@freesewing/react-components": *freesewing
+ '@headlessui/react': *headlessUiReact
+ '@mdx-js/loader': *mdx
+ '@mdx-js/mdx': *mdx
+ '@mdx-js/react': *mdx
+ '@mdx-js/runtime': *mdxRuntime
+ '@tailwindcss/typography': *tailwindTypography
+ 'autoprefixer': *autoprefixer
+ 'axios': &axios
+ 'd3-dispatch': *d3dispatch
+ 'd3-drag': *d3drag
+ 'd3-selection': *d3selection
+ 'daisyui': *daisyui
+ 'file-saver': *filesaver
+ 'i18next': *i18next
+ 'jotai': *jotai
+ 'jotai-location': *jotai-location
+ 'js-yaml': *jsyaml
+ 'lodash.debounce': *_debounce
+ 'lodash.get': *_get
+ 'lodash.orderby': *_orderby
+ 'lodash.set': *_set
+ 'mustache': *mustache
+ "next": *next
+ 'next-i18next': *nextI18next
+ 'pdfkit': *pdfkit
+ 'postcss-for': *postcssfor
+ "react": *react
+ "react-dom": *react
+ 'react-copy-to-clipboard': *reactCopyToClipboard
+ 'react-hotkeys-hook': *reactHotkeysHook
+ "react-i18next": *reactI18next
+ 'react-dropzone': *dropzone
+ 'react-markdown': *reactMarkdown
+ 'react-swipeable': *reactSwipeable
+ 'react-timeago': *reactTimeago
+ 'react-zoom-pan-pinch': *zoompanpinch
+ 'remark-gfm': *remarkGfm
+ 'remark-frontmatter': *remarkfrontmatter
+ 'remark-mdx-frontmatter': *mdxfrontmatter
+ 'remark-smartypants': *smartypants
+ "slugify": *slugify
+ 'svg-to-pdfkit': *svgtopdfkit
+ 'tlds': *rlds
+ 'use-persisted-state': *use-persisted-state
+ 'web-worker': *webworker
+
diff --git a/config/software/sites.json b/config/software/sites.json
index bb8782bfcd5..4e7ed22e40a 100644
--- a/config/software/sites.json
+++ b/config/software/sites.json
@@ -3,6 +3,6 @@
"dev": "FreeSewing website with documentation for contributors & developers",
"lab": "FreeSewing website to test various patterns",
"org": "FreeSewing website",
- "sde": "Stand-along develpment environment. Basis for the @freesewing/new-design package",
+ "sde": "Stand-alone develpment environment. Basis for the @freesewing/new-design package",
"shared": "Shared code and React components for different websites"
}
diff --git a/packages/new-design/lib/config.mjs b/packages/new-design/lib/config.mjs
index dfa0b7f1b24..72174b9d414 100644
--- a/packages/new-design/lib/config.mjs
+++ b/packages/new-design/lib/config.mjs
@@ -61,12 +61,21 @@ yarn-error.log*
from: 'measurements.mjs',
to: 'shared/config/measurements.mjs',
},
+ {
+ from: 'social.mjs',
+ to: 'shared/config/social.mjs',
+ },
+ {
+ from: 'roles.mjs',
+ to: 'shared/config/roles.mjs',
+ },
],
sites: [
{
from: 'sde/env.local',
to: 'sde/.env.local',
},
+ 'sde/env.local',
'sde/i18n.config.mjs',
'sde/next-i18next.config.js',
'sde/next.config.mjs',
@@ -75,32 +84,26 @@ yarn-error.log*
'sde/site.config.mjs',
'sde/tailwind.config.mjs',
'sde/hooks/use-design.mjs',
+ 'sde/prebuild/.gitkeep',
+ 'sde/prebuild/sitenav.de.mjs',
+ 'sde/prebuild/sitenav.en.mjs',
+ 'sde/prebuild/sitenav.es.mjs',
+ 'sde/prebuild/sitenav.fr.mjs',
+ 'sde/prebuild/sitenav.mjs',
+ 'sde/prebuild/sitenav.nl.mjs',
+ 'sde/prebuild/sitenav.uk.mjs',
+ 'sde/prebuild/sluglut.mjs',
'sde/components/dynamic-org-docs.mjs',
'sde/components/feeds.mjs',
'sde/components/search.mjs',
'sde/components/header/design-picker.mjs',
'sde/components/header/index.mjs',
- 'sde/components/navigation/modal-menu.mjs',
'sde/components/layouts/bare.mjs',
'sde/components/layouts/default.mjs',
'sde/components/layouts/workbench.mjs',
+ 'sde/components/navigation/modal-menu.mjs',
'sde/components/wrappers/page.mjs',
- 'sde/design/from-bent/src/back.mjs',
- 'sde/design/from-bent/src/front.mjs',
- 'sde/design/from-bent/src/index.mjs',
- 'sde/design/from-bent/src/top-sleeve.mjs',
- 'sde/design/from-bent/src/under-sleeve.mjs',
- 'sde/design/from-bent/i18n/de.json',
- 'sde/design/from-bent/i18n/en.json',
- 'sde/design/from-bent/i18n/es.json',
- 'sde/design/from-bent/i18n/fr.json',
- 'sde/design/from-bent/i18n/index.mjs',
- 'sde/design/from-bent/i18n/nl.json',
- 'sde/design/from-bent/i18n/uk.json',
'sde/design/from-bella/en.json',
- 'sde/design/from-bella/src/back.mjs',
- 'sde/design/from-bella/src/front.mjs',
- 'sde/design/from-bella/src/index.mjs',
'sde/design/from-bella/i18n/de.json',
'sde/design/from-bella/i18n/en.json',
'sde/design/from-bella/i18n/es.json',
@@ -108,10 +111,21 @@ yarn-error.log*
'sde/design/from-bella/i18n/index.mjs',
'sde/design/from-bella/i18n/nl.json',
'sde/design/from-bella/i18n/uk.json',
- 'sde/design/from-breanna/src/back.mjs',
- 'sde/design/from-breanna/src/front.mjs',
- 'sde/design/from-breanna/src/index.mjs',
- 'sde/design/from-breanna/src/sleeve.mjs',
+ 'sde/design/from-bella/src/back.mjs',
+ 'sde/design/from-bella/src/front.mjs',
+ 'sde/design/from-bella/src/index.mjs',
+ 'sde/design/from-bent/i18n/de.json',
+ 'sde/design/from-bent/i18n/en.json',
+ 'sde/design/from-bent/i18n/es.json',
+ 'sde/design/from-bent/i18n/fr.json',
+ 'sde/design/from-bent/i18n/index.mjs',
+ 'sde/design/from-bent/i18n/nl.json',
+ 'sde/design/from-bent/i18n/uk.json',
+ 'sde/design/from-bent/src/back.mjs',
+ 'sde/design/from-bent/src/front.mjs',
+ 'sde/design/from-bent/src/index.mjs',
+ 'sde/design/from-bent/src/top-sleeve.mjs',
+ 'sde/design/from-bent/src/under-sleeve.mjs',
'sde/design/from-breanna/i18n/de.json',
'sde/design/from-breanna/i18n/en.json',
'sde/design/from-breanna/i18n/es.json',
@@ -119,6 +133,10 @@ yarn-error.log*
'sde/design/from-breanna/i18n/index.mjs',
'sde/design/from-breanna/i18n/nl.json',
'sde/design/from-breanna/i18n/uk.json',
+ 'sde/design/from-breanna/src/back.mjs',
+ 'sde/design/from-breanna/src/front.mjs',
+ 'sde/design/from-breanna/src/index.mjs',
+ 'sde/design/from-breanna/src/sleeve.mjs',
'sde/design/from-brian/i18n/de.json',
'sde/design/from-brian/i18n/en.json',
'sde/design/from-brian/i18n/es.json',
@@ -130,6 +148,15 @@ yarn-error.log*
'sde/design/from-brian/src/front.mjs',
'sde/design/from-brian/src/index.mjs',
'sde/design/from-brian/src/sleeve.mjs',
+ 'sde/design/from-scratch/i18n/de.json',
+ 'sde/design/from-scratch/i18n/en.json',
+ 'sde/design/from-scratch/i18n/es.json',
+ 'sde/design/from-scratch/i18n/fr.json',
+ 'sde/design/from-scratch/i18n/index.mjs',
+ 'sde/design/from-scratch/i18n/nl.json',
+ 'sde/design/from-scratch/i18n/uk.json',
+ 'sde/design/from-scratch/src/index.mjs',
+ 'sde/design/from-scratch/src/scratch.mjs',
'sde/design/from-titan/i18n/de.json',
'sde/design/from-titan/i18n/en.json',
'sde/design/from-titan/i18n/es.json',
@@ -140,15 +167,6 @@ yarn-error.log*
'sde/design/from-titan/src/back.mjs',
'sde/design/from-titan/src/front.mjs',
'sde/design/from-titan/src/index.mjs',
- 'sde/design/from-scratch/i18n/de.json',
- 'sde/design/from-scratch/i18n/en.json',
- 'sde/design/from-scratch/i18n/es.json',
- 'sde/design/from-scratch/i18n/fr.json',
- 'sde/design/from-scratch/i18n/index.mjs',
- 'sde/design/from-scratch/i18n/nl.json',
- 'sde/design/from-scratch/i18n/uk.json',
- 'sde/design/from-scratch/src/index.mjs',
- 'sde/design/from-scratch/src/scratch.mjs',
'sde/design/tutorial/i18n/de.json',
'sde/design/tutorial/i18n/en.json',
'sde/design/tutorial/i18n/es.json',
@@ -163,6 +181,318 @@ yarn-error.log*
'sde/public/brands/crowdin.svg',
'sde/public/brands/netlify.svg',
'sde/public/brands/vercel.svg',
+ 'sde/public/locales/de/account.json',
+ 'sde/public/locales/de/auth.json',
+ 'sde/public/locales/de/bella.json',
+ 'sde/public/locales/de/bent.json',
+ 'sde/public/locales/de/breanna.json',
+ 'sde/public/locales/de/brian.json',
+ 'sde/public/locales/de/common.json',
+ 'sde/public/locales/de/core-settings.json',
+ 'sde/public/locales/de/curate.json',
+ 'sde/public/locales/de/cut.json',
+ 'sde/public/locales/de/design-options.json',
+ 'sde/public/locales/de/designs.json',
+ 'sde/public/locales/de/docs.json',
+ 'sde/public/locales/de/errors.json',
+ 'sde/public/locales/de/flag.json',
+ 'sde/public/locales/de/footer.json',
+ 'sde/public/locales/de/frombella.json',
+ 'sde/public/locales/de/frombent.json',
+ 'sde/public/locales/de/frombreanna.json',
+ 'sde/public/locales/de/frombrian.json',
+ 'sde/public/locales/de/fromscratch.json',
+ 'sde/public/locales/de/fromtitan.json',
+ 'sde/public/locales/de/gdpr.json',
+ 'sde/public/locales/de/header.json',
+ 'sde/public/locales/de/homepage.json',
+ 'sde/public/locales/de/locales.json',
+ 'sde/public/locales/de/logs.json',
+ 'sde/public/locales/de/measurements.json',
+ 'sde/public/locales/de/modal.json',
+ 'sde/public/locales/de/newsletter.json',
+ 'sde/public/locales/de/patrons.json',
+ 'sde/public/locales/de/plugin-annotations.json',
+ 'sde/public/locales/de/plugins.json',
+ 'sde/public/locales/de/popout.json',
+ 'sde/public/locales/de/print.json',
+ 'sde/public/locales/de/roles.json',
+ 'sde/public/locales/de/sde.json',
+ 'sde/public/locales/de/sections.json',
+ 'sde/public/locales/de/sets.json',
+ 'sde/public/locales/de/sponsors.json',
+ 'sde/public/locales/de/status.json',
+ 'sde/public/locales/de/submissions.json',
+ 'sde/public/locales/de/support.json',
+ 'sde/public/locales/de/susi.json',
+ 'sde/public/locales/de/tags.json',
+ 'sde/public/locales/de/techniques.json',
+ 'sde/public/locales/de/themes.json',
+ 'sde/public/locales/de/timeago.json',
+ 'sde/public/locales/de/titan.json',
+ 'sde/public/locales/de/tutorial.json',
+ 'sde/public/locales/de/ui-settings.json',
+ 'sde/public/locales/de/workbench.json',
+ 'sde/public/locales/en/account.json',
+ 'sde/public/locales/en/auth.json',
+ 'sde/public/locales/en/bella.json',
+ 'sde/public/locales/en/bent.json',
+ 'sde/public/locales/en/breanna.json',
+ 'sde/public/locales/en/brian.json',
+ 'sde/public/locales/en/common.json',
+ 'sde/public/locales/en/core-settings.json',
+ 'sde/public/locales/en/curate.json',
+ 'sde/public/locales/en/cut.json',
+ 'sde/public/locales/en/design-options.json',
+ 'sde/public/locales/en/designs.json',
+ 'sde/public/locales/en/docs.json',
+ 'sde/public/locales/en/errors.json',
+ 'sde/public/locales/en/flag.json',
+ 'sde/public/locales/en/footer.json',
+ 'sde/public/locales/en/frombella.json',
+ 'sde/public/locales/en/frombent.json',
+ 'sde/public/locales/en/frombreanna.json',
+ 'sde/public/locales/en/frombrian.json',
+ 'sde/public/locales/en/fromscratch.json',
+ 'sde/public/locales/en/fromtitan.json',
+ 'sde/public/locales/en/gdpr.json',
+ 'sde/public/locales/en/header.json',
+ 'sde/public/locales/en/homepage.json',
+ 'sde/public/locales/en/locales.json',
+ 'sde/public/locales/en/logs.json',
+ 'sde/public/locales/en/measurements.json',
+ 'sde/public/locales/en/modal.json',
+ 'sde/public/locales/en/newsletter.json',
+ 'sde/public/locales/en/patrons.json',
+ 'sde/public/locales/en/plugin-annotations.json',
+ 'sde/public/locales/en/plugins.json',
+ 'sde/public/locales/en/popout.json',
+ 'sde/public/locales/en/print.json',
+ 'sde/public/locales/en/roles.json',
+ 'sde/public/locales/en/sde.json',
+ 'sde/public/locales/en/sections.json',
+ 'sde/public/locales/en/sets.json',
+ 'sde/public/locales/en/sponsors.json',
+ 'sde/public/locales/en/status.json',
+ 'sde/public/locales/en/submissions.json',
+ 'sde/public/locales/en/support.json',
+ 'sde/public/locales/en/susi.json',
+ 'sde/public/locales/en/tags.json',
+ 'sde/public/locales/en/techniques.json',
+ 'sde/public/locales/en/themes.json',
+ 'sde/public/locales/en/timeago.json',
+ 'sde/public/locales/en/titan.json',
+ 'sde/public/locales/en/tutorial.json',
+ 'sde/public/locales/en/ui-settings.json',
+ 'sde/public/locales/en/workbench.json',
+ 'sde/public/locales/es/account.json',
+ 'sde/public/locales/es/auth.json',
+ 'sde/public/locales/es/bella.json',
+ 'sde/public/locales/es/bent.json',
+ 'sde/public/locales/es/breanna.json',
+ 'sde/public/locales/es/brian.json',
+ 'sde/public/locales/es/common.json',
+ 'sde/public/locales/es/core-settings.json',
+ 'sde/public/locales/es/curate.json',
+ 'sde/public/locales/es/cut.json',
+ 'sde/public/locales/es/design-options.json',
+ 'sde/public/locales/es/designs.json',
+ 'sde/public/locales/es/docs.json',
+ 'sde/public/locales/es/errors.json',
+ 'sde/public/locales/es/flag.json',
+ 'sde/public/locales/es/footer.json',
+ 'sde/public/locales/es/frombella.json',
+ 'sde/public/locales/es/frombent.json',
+ 'sde/public/locales/es/frombreanna.json',
+ 'sde/public/locales/es/frombrian.json',
+ 'sde/public/locales/es/fromscratch.json',
+ 'sde/public/locales/es/fromtitan.json',
+ 'sde/public/locales/es/gdpr.json',
+ 'sde/public/locales/es/header.json',
+ 'sde/public/locales/es/homepage.json',
+ 'sde/public/locales/es/locales.json',
+ 'sde/public/locales/es/logs.json',
+ 'sde/public/locales/es/measurements.json',
+ 'sde/public/locales/es/modal.json',
+ 'sde/public/locales/es/newsletter.json',
+ 'sde/public/locales/es/patrons.json',
+ 'sde/public/locales/es/plugin-annotations.json',
+ 'sde/public/locales/es/plugins.json',
+ 'sde/public/locales/es/popout.json',
+ 'sde/public/locales/es/print.json',
+ 'sde/public/locales/es/roles.json',
+ 'sde/public/locales/es/sde.json',
+ 'sde/public/locales/es/sections.json',
+ 'sde/public/locales/es/sets.json',
+ 'sde/public/locales/es/sponsors.json',
+ 'sde/public/locales/es/status.json',
+ 'sde/public/locales/es/submissions.json',
+ 'sde/public/locales/es/support.json',
+ 'sde/public/locales/es/susi.json',
+ 'sde/public/locales/es/tags.json',
+ 'sde/public/locales/es/techniques.json',
+ 'sde/public/locales/es/themes.json',
+ 'sde/public/locales/es/timeago.json',
+ 'sde/public/locales/es/titan.json',
+ 'sde/public/locales/es/tutorial.json',
+ 'sde/public/locales/es/ui-settings.json',
+ 'sde/public/locales/es/workbench.json',
+ 'sde/public/locales/fr/account.json',
+ 'sde/public/locales/fr/auth.json',
+ 'sde/public/locales/fr/bella.json',
+ 'sde/public/locales/fr/bent.json',
+ 'sde/public/locales/fr/breanna.json',
+ 'sde/public/locales/fr/brian.json',
+ 'sde/public/locales/fr/common.json',
+ 'sde/public/locales/fr/core-settings.json',
+ 'sde/public/locales/fr/curate.json',
+ 'sde/public/locales/fr/cut.json',
+ 'sde/public/locales/fr/design-options.json',
+ 'sde/public/locales/fr/designs.json',
+ 'sde/public/locales/fr/docs.json',
+ 'sde/public/locales/fr/errors.json',
+ 'sde/public/locales/fr/flag.json',
+ 'sde/public/locales/fr/footer.json',
+ 'sde/public/locales/fr/frombella.json',
+ 'sde/public/locales/fr/frombent.json',
+ 'sde/public/locales/fr/frombreanna.json',
+ 'sde/public/locales/fr/frombrian.json',
+ 'sde/public/locales/fr/fromscratch.json',
+ 'sde/public/locales/fr/fromtitan.json',
+ 'sde/public/locales/fr/gdpr.json',
+ 'sde/public/locales/fr/header.json',
+ 'sde/public/locales/fr/homepage.json',
+ 'sde/public/locales/fr/locales.json',
+ 'sde/public/locales/fr/logs.json',
+ 'sde/public/locales/fr/measurements.json',
+ 'sde/public/locales/fr/modal.json',
+ 'sde/public/locales/fr/newsletter.json',
+ 'sde/public/locales/fr/patrons.json',
+ 'sde/public/locales/fr/plugin-annotations.json',
+ 'sde/public/locales/fr/plugins.json',
+ 'sde/public/locales/fr/popout.json',
+ 'sde/public/locales/fr/print.json',
+ 'sde/public/locales/fr/roles.json',
+ 'sde/public/locales/fr/sde.json',
+ 'sde/public/locales/fr/sections.json',
+ 'sde/public/locales/fr/sets.json',
+ 'sde/public/locales/fr/sponsors.json',
+ 'sde/public/locales/fr/status.json',
+ 'sde/public/locales/fr/submissions.json',
+ 'sde/public/locales/fr/support.json',
+ 'sde/public/locales/fr/susi.json',
+ 'sde/public/locales/fr/tags.json',
+ 'sde/public/locales/fr/techniques.json',
+ 'sde/public/locales/fr/themes.json',
+ 'sde/public/locales/fr/timeago.json',
+ 'sde/public/locales/fr/titan.json',
+ 'sde/public/locales/fr/tutorial.json',
+ 'sde/public/locales/fr/ui-settings.json',
+ 'sde/public/locales/fr/workbench.json',
+ 'sde/public/locales/nl/account.json',
+ 'sde/public/locales/nl/auth.json',
+ 'sde/public/locales/nl/bella.json',
+ 'sde/public/locales/nl/bent.json',
+ 'sde/public/locales/nl/breanna.json',
+ 'sde/public/locales/nl/brian.json',
+ 'sde/public/locales/nl/common.json',
+ 'sde/public/locales/nl/core-settings.json',
+ 'sde/public/locales/nl/curate.json',
+ 'sde/public/locales/nl/cut.json',
+ 'sde/public/locales/nl/design-options.json',
+ 'sde/public/locales/nl/designs.json',
+ 'sde/public/locales/nl/docs.json',
+ 'sde/public/locales/nl/errors.json',
+ 'sde/public/locales/nl/flag.json',
+ 'sde/public/locales/nl/footer.json',
+ 'sde/public/locales/nl/frombella.json',
+ 'sde/public/locales/nl/frombent.json',
+ 'sde/public/locales/nl/frombreanna.json',
+ 'sde/public/locales/nl/frombrian.json',
+ 'sde/public/locales/nl/fromscratch.json',
+ 'sde/public/locales/nl/fromtitan.json',
+ 'sde/public/locales/nl/gdpr.json',
+ 'sde/public/locales/nl/header.json',
+ 'sde/public/locales/nl/homepage.json',
+ 'sde/public/locales/nl/locales.json',
+ 'sde/public/locales/nl/logs.json',
+ 'sde/public/locales/nl/measurements.json',
+ 'sde/public/locales/nl/modal.json',
+ 'sde/public/locales/nl/newsletter.json',
+ 'sde/public/locales/nl/patrons.json',
+ 'sde/public/locales/nl/plugin-annotations.json',
+ 'sde/public/locales/nl/plugins.json',
+ 'sde/public/locales/nl/popout.json',
+ 'sde/public/locales/nl/print.json',
+ 'sde/public/locales/nl/roles.json',
+ 'sde/public/locales/nl/sde.json',
+ 'sde/public/locales/nl/sections.json',
+ 'sde/public/locales/nl/sets.json',
+ 'sde/public/locales/nl/sponsors.json',
+ 'sde/public/locales/nl/status.json',
+ 'sde/public/locales/nl/submissions.json',
+ 'sde/public/locales/nl/support.json',
+ 'sde/public/locales/nl/susi.json',
+ 'sde/public/locales/nl/tags.json',
+ 'sde/public/locales/nl/techniques.json',
+ 'sde/public/locales/nl/themes.json',
+ 'sde/public/locales/nl/timeago.json',
+ 'sde/public/locales/nl/titan.json',
+ 'sde/public/locales/nl/tutorial.json',
+ 'sde/public/locales/nl/ui-settings.json',
+ 'sde/public/locales/nl/workbench.json',
+ 'sde/public/locales/uk/account.json',
+ 'sde/public/locales/uk/auth.json',
+ 'sde/public/locales/uk/bella.json',
+ 'sde/public/locales/uk/bent.json',
+ 'sde/public/locales/uk/breanna.json',
+ 'sde/public/locales/uk/brian.json',
+ 'sde/public/locales/uk/common.json',
+ 'sde/public/locales/uk/core-settings.json',
+ 'sde/public/locales/uk/curate.json',
+ 'sde/public/locales/uk/cut.json',
+ 'sde/public/locales/uk/design-options.json',
+ 'sde/public/locales/uk/designs.json',
+ 'sde/public/locales/uk/docs.json',
+ 'sde/public/locales/uk/errors.json',
+ 'sde/public/locales/uk/flag.json',
+ 'sde/public/locales/uk/footer.json',
+ 'sde/public/locales/uk/frombella.json',
+ 'sde/public/locales/uk/frombent.json',
+ 'sde/public/locales/uk/frombreanna.json',
+ 'sde/public/locales/uk/frombrian.json',
+ 'sde/public/locales/uk/fromscratch.json',
+ 'sde/public/locales/uk/fromtitan.json',
+ 'sde/public/locales/uk/gdpr.json',
+ 'sde/public/locales/uk/header.json',
+ 'sde/public/locales/uk/homepage.json',
+ 'sde/public/locales/uk/locales.json',
+ 'sde/public/locales/uk/logs.json',
+ 'sde/public/locales/uk/measurements.json',
+ 'sde/public/locales/uk/modal.json',
+ 'sde/public/locales/uk/newsletter.json',
+ 'sde/public/locales/uk/patrons.json',
+ 'sde/public/locales/uk/plugin-annotations.json',
+ 'sde/public/locales/uk/plugins.json',
+ 'sde/public/locales/uk/popout.json',
+ 'sde/public/locales/uk/print.json',
+ 'sde/public/locales/uk/roles.json',
+ 'sde/public/locales/uk/sde.json',
+ 'sde/public/locales/uk/sections.json',
+ 'sde/public/locales/uk/sets.json',
+ 'sde/public/locales/uk/sponsors.json',
+ 'sde/public/locales/uk/status.json',
+ 'sde/public/locales/uk/submissions.json',
+ 'sde/public/locales/uk/support.json',
+ 'sde/public/locales/uk/susi.json',
+ 'sde/public/locales/uk/tags.json',
+ 'sde/public/locales/uk/techniques.json',
+ 'sde/public/locales/uk/themes.json',
+ 'sde/public/locales/uk/timeago.json',
+ 'sde/public/locales/uk/titan.json',
+ 'sde/public/locales/uk/tutorial.json',
+ 'sde/public/locales/uk/ui-settings.json',
+ 'sde/public/locales/uk/workbench.json',
'sde/pages/_app.mjs',
'sde/pages/design.mjs',
'sde/pages/index.mjs',
@@ -208,16 +538,180 @@ yarn-error.log*
'sde/pages/account/patterns/index.mjs',
'sde/pages/account/patterns/[id]/edit.mjs',
'sde/pages/account/patterns/[id]/index.mjs',
+ 'shared/components/mdx/index.mjs',
+ 'shared/components/footer/index.mjs',
+ 'shared/components/buttons/continue-button.mjs',
+ 'shared/components/patrons/please-subscribe.mjs',
+ 'shared/components/patrons/plea.mjs',
+ 'shared/components/patrons/subscribe.mjs',
+ 'shared/components/susi/sign-in.mjs',
+ 'shared/components/susi/sign-up.mjs',
+ 'shared/components/account/imperial.mjs',
+ 'shared/components/account/github.mjs',
+ 'shared/components/account/apikeys.mjs',
+ 'shared/components/account/shared.mjs',
+ 'shared/components/account/profile.mjs',
+ 'shared/components/account/bio.mjs',
+ 'shared/components/account/role.mjs',
+ 'shared/components/account/language.mjs',
+ 'shared/components/account/newsletter.mjs',
+ 'shared/components/account/overview.mjs',
+ 'shared/components/account/links.mjs',
+ 'shared/components/account/control.mjs',
+ 'shared/components/account/export.mjs',
+ 'shared/components/account/reload.mjs',
+ 'shared/components/account/sets.mjs',
+ 'shared/components/account/restrict.mjs',
+ 'shared/components/account/mfa.mjs',
+ 'shared/components/account/force-account-check.mjs',
+ 'shared/components/account/email.mjs',
+ 'shared/components/account/consent.mjs',
+ 'shared/components/account/patterns.mjs',
+ 'shared/components/account/platform.mjs',
+ 'shared/components/account/username.mjs',
+ 'shared/components/account/remove.mjs',
+ 'shared/components/account/password.mjs',
+ 'shared/components/account/status.mjs',
+ 'shared/components/account/compare.mjs',
+ 'shared/components/popout/index.mjs',
+ 'shared/components/robot/index.mjs',
+ 'shared/components/robot/poses.mjs',
+ 'shared/components/inputs.mjs',
+ 'shared/components/collapse.mjs',
+ 'shared/components/wordmark.mjs',
+ 'shared/components/link.mjs',
+ 'shared/components/error/view.mjs',
+ 'shared/components/accordion.mjs',
+ 'shared/components/wrappers/mdx.mjs',
+ 'shared/components/wrappers/page.mjs',
+ 'shared/components/wrappers/swipes.mjs',
+ 'shared/components/wrappers/modal.mjs',
+ 'shared/components/wrappers/layout.mjs',
+ 'shared/components/wrappers/context.mjs',
+ 'shared/components/wrappers/auth/index.mjs',
+ 'shared/components/wrappers/header.mjs',
+ 'shared/components/control/tip.mjs',
+ 'shared/components/control/score.mjs',
+ 'shared/components/choice-link.mjs',
+ 'shared/components/copy-to-clipboard.mjs',
+ 'shared/components/code-box.mjs',
+ 'shared/components/designs/difficulty.mjs',
+ 'shared/components/gdpr/details.mjs',
+ 'shared/components/gdpr/form.mjs',
+ 'shared/components/breadcrumbs.mjs',
+ 'shared/components/v3-wip.mjs',
+ 'shared/components/joost.mjs',
+ 'shared/components/modal/theme-picker.mjs',
+ 'shared/components/modal/locale-picker.mjs',
+ 'shared/components/bookmarks.mjs',
+ 'shared/components/support.mjs',
+ 'shared/components/tabs.mjs',
+ 'shared/components/social/icons.mjs',
+ 'shared/components/icons.mjs',
+ 'shared/components/spinner.mjs',
+ 'shared/components/sponsors/bugsnag.mjs',
+ 'shared/components/sponsors/vercel.mjs',
+ 'shared/components/sponsors/crowdin.mjs',
+ 'shared/components/sponsors/algolia.mjs',
+ 'shared/components/sponsors/index.mjs',
+ 'shared/components/curated-sets.mjs',
+ 'shared/components/workbench/new.mjs',
+ 'shared/components/workbench/pan-zoom-pattern.mjs',
+ 'shared/components/workbench/exporting/pdf.mjs',
+ 'shared/components/workbench/exporting/pdf-maker.mjs',
+ 'shared/components/workbench/exporting/single-pdf-maker.mjs',
+ 'shared/components/workbench/exporting/export-handler.mjs',
+ 'shared/components/workbench/exporting/export-worker.js',
+ 'shared/components/workbench/menus/shared/inputs.mjs',
+ 'shared/components/workbench/menus/shared/menu-wrapper.mjs',
+ 'shared/components/workbench/menus/shared/values.mjs',
+ 'shared/components/workbench/menus/shared/index.mjs',
+ 'shared/components/workbench/menus/shared/menu-item.mjs',
+ 'shared/components/workbench/menus/design-options/inputs.mjs',
+ 'shared/components/workbench/menus/design-options/values.mjs',
+ 'shared/components/workbench/menus/design-options/index.mjs',
+ 'shared/components/workbench/menus/mobile-menubar.mjs',
+ 'shared/components/workbench/menus/core-settings/inputs.mjs',
+ 'shared/components/workbench/menus/core-settings/config.mjs',
+ 'shared/components/workbench/menus/core-settings/values.mjs',
+ 'shared/components/workbench/menus/core-settings/index.mjs',
+ 'shared/components/workbench/menus/ui-settings/inputs.mjs',
+ 'shared/components/workbench/menus/ui-settings/config.mjs',
+ 'shared/components/workbench/menus/ui-settings/values.mjs',
+ 'shared/components/workbench/menus/ui-settings/index.mjs',
+ 'shared/components/workbench/views/inspect/menu.mjs',
+ 'shared/components/workbench/views/inspect/inspector/pattern.mjs',
+ 'shared/components/workbench/views/inspect/inspector/path.mjs',
+ 'shared/components/workbench/views/inspect/inspector/shared.mjs',
+ 'shared/components/workbench/views/inspect/inspector/stack.mjs',
+ 'shared/components/workbench/views/inspect/inspector/menu.mjs',
+ 'shared/components/workbench/views/inspect/inspector/point.mjs',
+ 'shared/components/workbench/views/inspect/index.mjs',
+ 'shared/components/workbench/views/pattern-with-menu.mjs',
+ 'shared/components/workbench/views/logs/errors.mjs',
+ 'shared/components/workbench/views/logs/index.mjs',
+ 'shared/components/workbench/views/measies/editor.mjs',
+ 'shared/components/workbench/views/measies/index.mjs',
+ 'shared/components/workbench/views/flags.mjs',
+ 'shared/components/workbench/views/save/index.mjs',
+ 'shared/components/workbench/views/exporting/index.mjs',
+ 'shared/components/workbench/views/test/options.mjs',
+ 'shared/components/workbench/views/test/menu.mjs',
+ 'shared/components/workbench/views/test/measurements.mjs',
+ 'shared/components/workbench/views/test/index.mjs',
+ 'shared/components/workbench/views/draft/menu.mjs',
+ 'shared/components/workbench/views/draft/index.mjs',
+ 'shared/components/workbench/views/draft/header.mjs',
+ 'shared/components/workbench/views/print/menu.mjs',
+ 'shared/components/workbench/views/print/settings.mjs',
+ 'shared/components/workbench/views/print/config.mjs',
+ 'shared/components/workbench/views/print/actions.mjs',
+ 'shared/components/workbench/views/print/index.mjs',
+ 'shared/components/workbench/views/cut/menu.mjs',
+ 'shared/components/workbench/views/cut/settings.mjs',
+ 'shared/components/workbench/views/cut/index.mjs',
+ 'shared/components/workbench/views/cut/hooks.mjs',
+ 'shared/components/workbench/views/edit/index.mjs',
+ 'shared/components/workbench/views/edit/settings-validator.mjs',
+ 'shared/components/workbench/pattern/utils.mjs',
+ 'shared/components/workbench/pattern/movable/transform-buttons.mjs',
+ 'shared/components/workbench/pattern/movable/stack.mjs',
+ 'shared/components/workbench/pattern/movable/index.mjs',
+ 'shared/components/workbench/pattern/pan-zoom-context.mjs',
+ 'shared/components/workbench/header.mjs',
+ 'shared/components/navigation/sitenav.mjs',
+ 'shared/components/navigation/primary.mjs',
+ 'shared/components/navigation/sections-menu.mjs',
+ 'shared/components/logos/freesewing.mjs',
+ 'shared/components/header.mjs',
'shared/config/cloudflare.mjs',
- 'shared/config/designs.mjs',
- 'shared/config/freesewing.config.mjs',
'shared/config/i18n.config.mjs',
- 'shared/config/next.mjs',
+ 'shared/config/social.mjs',
'shared/config/paypal.mjs',
- 'shared/config/playwright.mjs',
- 'shared/config/postcss.config.js',
'shared/config/tailwind-force.html',
- 'shared/config/tailwind.config.mjs',
+ 'shared/config/freesewing.config.mjs',
+ 'shared/context/loading-status-context.mjs',
+ 'shared/context/modal-context.mjs',
+ 'shared/context/mobile-menubar-context.mjs',
+ 'shared/context/navigation-context.mjs',
+ 'shared/hooks/use-pattern-settings.mjs',
+ 'shared/hooks/use-theme.mjs',
+ 'shared/hooks/use-backend.mjs',
+ 'shared/hooks/use-view.mjs',
+ 'shared/hooks/use-account.mjs',
+ 'shared/plugins/plugin-layout-part.mjs',
+ 'shared/plugins/plugin-cut-layout.mjs',
+ 'shared/styles/code.css',
+ 'shared/styles/svg-freesewing-draft.css',
+ 'shared/styles/globals.css',
+ 'shared/themes/lgbtq.mjs',
+ 'shared/themes/light.mjs',
+ 'shared/themes/dark.mjs',
+ 'shared/themes/aqua.mjs',
+ 'shared/themes/pastel.mjs',
+ 'shared/themes/monochrome.mjs',
+ 'shared/themes/hax0r.mjs',
+ 'shared/themes/index.mjs',
],
},
}
diff --git a/packages/new-design/scripts/filelist.mjs b/packages/new-design/scripts/filelist.mjs
index 117f6da32d3..4107b305d96 100644
--- a/packages/new-design/scripts/filelist.mjs
+++ b/packages/new-design/scripts/filelist.mjs
@@ -1,5 +1,7 @@
import rdir from 'recursive-readdir'
import path from 'path'
+import fs from 'node:fs'
+import { exec } from 'node:child_process'
const ignore = [
'node_modules',
@@ -8,9 +10,9 @@ const ignore = [
'.md',
'.next',
'prebuild.mjs',
- 'prebuild',
- 'public/locales',
- 'shared/config/measurements.js',
+ //'prebuild',
+ //'public/locales',
+ //'shared/config/measurements.js',
'sde/public/android-chrome-192x192.png',
'sde/public/android-chrome-384x384.png',
'sde/public/apple-touch-icon.png',
@@ -35,11 +37,67 @@ const getFiles = async (dir) => {
.map((file) => file.split('/sites/').pop())
}
+const searchFiles = async (dirs) => {
+ /*
+ * Figure out what directory to spawn the child process in
+ */
+ const cwd = await path.resolve(process.cwd())
+
+ /*
+ * Holds the matches
+ */
+ const matches = []
+
+ /*
+ * When going through a small number of files in a flat directory (eg. blog posts) a
+ * recursive grep through all files is faster.
+ * But the biggest task is combing through all the org documentation and for this
+ * it's much faster to first run find to limit the number of files to open
+ */
+ for (const dir of dirs) {
+ const cmd = `grep "__SDEFILE__" -Rislm 1 ${path.resolve(cwd, dir)}`
+ const grep = exec(cmd, { cwd, maxBuffer: 2048 * 1024 }, (error, stdout, stderr) => {
+ if (error) {
+ console.error(`exec error: ${error} - ${stderr}`)
+ return
+ }
+
+ return stdout
+ })
+
+ /*
+ * Stdout is buffered, so we need to gather all of it
+ */
+ let stdout = ''
+ for await (const data of grep.stdout) stdout += data
+
+ /*
+ * Add all all matches to the array
+ */
+ matches.push(
+ ...stdout
+ .split('\n')
+ .filter((entry) => entry.length > 2)
+ .map((file) => file.split('/sites/').pop())
+ )
+ }
+
+ return matches
+}
+
const doIt = async () => {
let files = []
const sde = await getFiles('../../sites/sde')
- const shared = await getFiles('../../sites/shared/config')
- console.log(JSON.stringify([...shared, ...sde], null, 2))
+ const shared = await searchFiles([
+ '../../sites/shared/components',
+ '../../sites/shared/config',
+ '../../sites/shared/context',
+ '../../sites/shared/hooks',
+ '../../sites/shared/plugins',
+ '../../sites/shared/styles',
+ '../../sites/shared/themes',
+ ])
+ console.log(JSON.stringify([...sde, ...shared], null, 2))
}
doIt()
diff --git a/sites/dev/package.json b/sites/dev/package.json
index 0a173817060..32835abd20c 100644
--- a/sites/dev/package.json
+++ b/sites/dev/package.json
@@ -59,12 +59,10 @@
"remark-gfm": "3.0.1"
},
"devDependencies": {
- "@playwright/test": "^1.32.3",
"autoprefixer": "10.4.15",
"eslint-config-next": "13.4.19",
"js-yaml": "4.1.0",
"postcss": "8.4.29",
- "playwright": "^1.32.3",
"remark-extract-frontmatter": "3.2.0",
"remark-mdx-frontmatter": "3.0.0",
"tailwindcss": "3.3.3",
diff --git a/sites/lab/package.json b/sites/lab/package.json
index d166cf474fb..6db4fefd189 100644
--- a/sites/lab/package.json
+++ b/sites/lab/package.json
@@ -63,12 +63,10 @@
"remark-mdx-frontmatter": "3.0.0"
},
"devDependencies": {
- "@playwright/test": "^1.32.3",
"autoprefixer": "10.4.15",
"eslint-config-next": "13.4.19",
"js-yaml": "4.1.0",
"postcss": "8.4.29",
- "playwright": "^1.32.3",
"remark-extract-frontmatter": "3.2.0",
"remark-mdx-frontmatter": "3.0.0",
"tailwindcss": "3.3.3",
diff --git a/sites/org/package.json b/sites/org/package.json
index 80f0ba6b14a..32bb9a646ba 100644
--- a/sites/org/package.json
+++ b/sites/org/package.json
@@ -66,12 +66,10 @@
"yaml-loader": "0.8.0"
},
"devDependencies": {
- "@playwright/test": "^1.32.3",
"autoprefixer": "10.4.15",
"eslint-config-next": "13.4.19",
"js-yaml": "4.1.0",
"postcss": "8.4.29",
- "playwright": "^1.32.3",
"remark-extract-frontmatter": "3.2.0",
"remark-mdx-frontmatter": "3.0.0",
"tailwindcss": "3.3.3",
diff --git a/sites/sde/components/header/index.mjs b/sites/sde/components/header/index.mjs
index f66363e6d22..56e1e9caff5 100644
--- a/sites/sde/components/header/index.mjs
+++ b/sites/sde/components/header/index.mjs
@@ -52,7 +52,7 @@ const NavIcons = ({ setModal }) => {
-
+
diff --git a/sites/sde/next-i18next.config.js b/sites/sde/next-i18next.config.js
index ab2c71ab36b..dab7ca8351d 100644
--- a/sites/sde/next-i18next.config.js
+++ b/sites/sde/next-i18next.config.js
@@ -2,8 +2,10 @@
module.exports = {
i18n: {
defaultLocale: 'en',
- locales: ['en', 'de', 'es', 'fr', 'nl'],
- defaultNS: 'common',
+ locales: ['en', 'de', 'es', 'fr', 'nl', 'uk'],
+ },
+ react: {
+ nsMode: 'fallback',
},
interpolation: {
prefix: '{',
diff --git a/sites/sde/next.config.mjs b/sites/sde/next.config.mjs
index 34a18493d9c..bda30c6d7c2 100644
--- a/sites/sde/next.config.mjs
+++ b/sites/sde/next.config.mjs
@@ -1,6 +1,7 @@
import path from 'path'
+import i18nConfig from './next-i18next.config.js'
// Remark plugins
-import remarkFrontmatter from 'remark-frontmatter'
+//import remarkFrontmatter from 'remark-frontmatter'
import remarkMdxFrontmatter from 'remark-mdx-frontmatter'
import remarkGfm from 'remark-gfm'
import smartypants from 'remark-smartypants'
@@ -13,6 +14,7 @@ const config = {
externalDir: true,
},
pageExtensions: ['mjs'],
+ i18n: i18nConfig.i18n,
webpack: (config, options) => {
// Fixes npm packages that depend on node modules
if (!options.isServer) {
@@ -31,7 +33,12 @@ const config = {
options: {
providerImportSource: '@mdx-js/react',
format: 'mdx',
- remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter, remarkGfm, smartypants],
+ remarkPlugins: [
+ //remarkFrontmatter,
+ remarkMdxFrontmatter,
+ remarkGfm,
+ smartypants,
+ ],
},
},
],
@@ -48,6 +55,7 @@ const config = {
// Aliases
config.resolve.alias.shared = path.resolve('./shared/')
+ config.resolve.alias.config = path.resolve('./shared/config/')
config.resolve.alias.site = path.resolve(`./`)
return config
diff --git a/sites/sde/package.json b/sites/sde/package.json
index 0c11d7f09b9..994e6fcfded 100644
--- a/sites/sde/package.json
+++ b/sites/sde/package.json
@@ -1,7 +1,7 @@
{
"name": "@freesewing/sde",
"version": "3.0.0-alpha.13",
- "description": "Stand-along develpment environment. Basis for the @freesewing/new-design package",
+ "description": "Stand-alone develpment environment. Basis for the @freesewing/new-design package",
"author": "Joost De Cock (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@@ -26,7 +26,65 @@
"prewbuild": "node --conditions=internal --experimental-json-modules ./prebuild.mjs"
},
"peerDependencies": {},
- "dependencies": {},
+ "dependencies": {
+ "@freesewing/core": "3.0.0-alpha.13",
+ "@freesewing/core-plugins": "3.0.0-alpha.13",
+ "@freesewing/brian": "3.0.0-alpha.13",
+ "@freesewing/bent": "3.0.0-alpha.13",
+ "@freesewing/titan": "3.0.0-alpha.13",
+ "@freesewing/bella": "3.0.0-alpha.13",
+ "@freesewing/breanna": "3.0.0-alpha.13",
+ "@freesewing/plugin-bust": "3.0.0-alpha.13",
+ "@freesewing/plugin-theme": "3.0.0-alpha.13",
+ "@freesewing/plugin-i18n": "3.0.0-alpha.13",
+ "@freesewing/snapseries": "3.0.0-alpha.13",
+ "@freesewing/react-components": "3.0.0-alpha.13",
+ "@headlessui/react": "1.7.17",
+ "@mdx-js/loader": "2.3.0",
+ "@mdx-js/mdx": "2.3.0",
+ "@mdx-js/react": "2.3.0",
+ "@mdx-js/runtime": "2.0.0-next.9",
+ "@tailwindcss/typography": "0.5.9",
+ "autoprefixer": "10.4.15",
+ "axios": null,
+ "d3-dispatch": "3.0.1",
+ "d3-drag": "3.0.0",
+ "d3-selection": "3.0.0",
+ "daisyui": "3.6.4",
+ "file-saver": "2.0.5",
+ "i18next": "23.4.6",
+ "jotai": "2.4.1",
+ "jotai-location": "0.5.1",
+ "js-yaml": "4.1.0",
+ "lodash.debounce": "^4.0.8",
+ "lodash.get": "4.4.2",
+ "lodash.orderby": "4.6.0",
+ "lodash.set": "4.3.2",
+ "mustache": "4.2.0",
+ "next": "13.4.19",
+ "next-i18next": "14.0.0",
+ "pdfkit": "0.13.0",
+ "postcss-for": "2.1.1",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-copy-to-clipboard": "5.1.0",
+ "react-hotkeys-hook": "4.4.1",
+ "react-i18next": "13.2.2",
+ "react-dropzone": "14.2.3",
+ "react-markdown": "8.0.7",
+ "react-swipeable": "7.0.1",
+ "react-timeago": "7.1.0",
+ "react-zoom-pan-pinch": "3.1.0",
+ "remark-gfm": "3.0.1",
+ "remark-frontmatter": "4.0.1",
+ "remark-mdx-frontmatter": "3.0.0",
+ "remark-smartypants": "2.0.0",
+ "slugify": "^1.6.6",
+ "svg-to-pdfkit": "https://git@github.com/eriese/SVG-to-PDFKit",
+ "tlds": "1.242.0",
+ "use-persisted-state": "0.3.3",
+ "web-worker": "1.2.0"
+ },
"devDependencies": {},
"engines": {
"node": "18",
diff --git a/sites/sde/pages/_app.mjs b/sites/sde/pages/_app.mjs
index 7817cccf191..36ea1ea4a4e 100644
--- a/sites/sde/pages/_app.mjs
+++ b/sites/sde/pages/_app.mjs
@@ -2,10 +2,10 @@ import 'shared/styles/globals.css'
import { appWithTranslation } from 'next-i18next'
import { ContextWrapper } from 'shared/components/wrappers/context.mjs'
-const FreeSewingLab = ({ Component, pageProps }) => (
+const FreeSewingSde = ({ Component, pageProps }) => (
)
-export default appWithTranslation(FreeSewingLab)
+export default appWithTranslation(FreeSewingSde)
diff --git a/sites/sde/postcss.config.js b/sites/sde/postcss.config.js
index 1ac5e6d0339..5e92fafc535 100644
--- a/sites/sde/postcss.config.js
+++ b/sites/sde/postcss.config.js
@@ -1,4 +1,4 @@
// Can't seem to make this work as ESM
-const config = require('../shared/config/postcss.config.js')
-
-module.exports = config
+module.exports = {
+ plugins: ['tailwindcss/nesting', 'tailwindcss', 'autoprefixer', 'postcss-for'],
+}
diff --git a/sites/sde/prebuild/.gitkeep b/sites/sde/prebuild/.gitkeep
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/sites/sde/prebuild/sitenav.de.mjs b/sites/sde/prebuild/sitenav.de.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.de.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.en.mjs b/sites/sde/prebuild/sitenav.en.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.en.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.es.mjs b/sites/sde/prebuild/sitenav.es.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.es.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.fr.mjs b/sites/sde/prebuild/sitenav.fr.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.fr.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.mjs b/sites/sde/prebuild/sitenav.mjs
new file mode 100644
index 00000000000..5654e55ca2b
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.mjs
@@ -0,0 +1,11 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+import { siteNav as en } from './sitenav.en.mjs'
+import { siteNav as fr } from './sitenav.fr.mjs'
+import { siteNav as es } from './sitenav.es.mjs'
+import { siteNav as de } from './sitenav.de.mjs'
+import { siteNav as nl } from './sitenav.nl.mjs'
+import { siteNav as uk } from './sitenav.uk.mjs'
+export const siteNav = { en,fr,es,de,nl,uk }
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.nl.mjs b/sites/sde/prebuild/sitenav.nl.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.nl.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sitenav.uk.mjs b/sites/sde/prebuild/sitenav.uk.mjs
new file mode 100644
index 00000000000..6af38369cec
--- /dev/null
+++ b/sites/sde/prebuild/sitenav.uk.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const siteNav = {}
\ No newline at end of file
diff --git a/sites/sde/prebuild/sluglut.mjs b/sites/sde/prebuild/sluglut.mjs
new file mode 100644
index 00000000000..544727c327c
--- /dev/null
+++ b/sites/sde/prebuild/sluglut.mjs
@@ -0,0 +1,5 @@
+/*
+ * This file was auto-generated by the prebuild script
+ * Any changes you make to it will be lost on the next (pre)build.
+ */
+export const slugLut = []
\ No newline at end of file
diff --git a/sites/sde/tailwind.config.mjs b/sites/sde/tailwind.config.mjs
index 4ade408f489..1ca5cd65c39 100644
--- a/sites/sde/tailwind.config.mjs
+++ b/sites/sde/tailwind.config.mjs
@@ -1,3 +1,32 @@
-import config from '../shared/config/tailwind.config.mjs'
+// Handle themes
+import { themes } from './themes/index.mjs'
-export default config
+export default {
+ content: [
+ './pages/*.mjs',
+ './pages/*.js',
+ './pages/**/*.mjs',
+ './pages/**/*.js',
+ './components/*.mjs',
+ './components/**/*.mjs',
+ './page-templates/*.mjs',
+ '../shared/components/**/*.mjs',
+ '../shared/config/tailwind-force.html',
+ ],
+ plugins: [require('daisyui'), require('tailwindcss/nesting')],
+ daisyui: {
+ styled: true,
+ themes: [themes],
+ base: true,
+ utils: true,
+ logs: true,
+ rtl: false,
+ },
+ theme: {
+ extend: {
+ aspectRatio: {
+ '9/16': '9 / 16',
+ },
+ },
+ },
+}
diff --git a/sites/shared/components/accordion.mjs b/sites/shared/components/accordion.mjs
index 9f2d26d70ad..532ee003b02 100644
--- a/sites/shared/components/accordion.mjs
+++ b/sites/shared/components/accordion.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { useState } from 'react'
/*
diff --git a/sites/shared/components/account/apikeys.mjs b/sites/shared/components/account/apikeys.mjs
index 2bca4946618..6d8d554da70 100644
--- a/sites/shared/components/account/apikeys.mjs
+++ b/sites/shared/components/account/apikeys.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useEffect, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/bio.mjs b/sites/shared/components/account/bio.mjs
index 47e25849141..7a70d5982a3 100644
--- a/sites/shared/components/account/bio.mjs
+++ b/sites/shared/components/account/bio.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/compare.mjs b/sites/shared/components/account/compare.mjs
index 279395851b1..ad438129037 100644
--- a/sites/shared/components/account/compare.mjs
+++ b/sites/shared/components/account/compare.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/consent.mjs b/sites/shared/components/account/consent.mjs
index a21b2b15c38..5fbc7cb72e2 100644
--- a/sites/shared/components/account/consent.mjs
+++ b/sites/shared/components/account/consent.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/control.mjs b/sites/shared/components/account/control.mjs
index 9c02058b713..aba9b070d56 100644
--- a/sites/shared/components/account/control.mjs
+++ b/sites/shared/components/account/control.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/email.mjs b/sites/shared/components/account/email.mjs
index 11a332d8adf..d3d39a7eacc 100644
--- a/sites/shared/components/account/email.mjs
+++ b/sites/shared/components/account/email.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/export.mjs b/sites/shared/components/account/export.mjs
index 97ff787c52a..d7c4f09f22e 100644
--- a/sites/shared/components/account/export.mjs
+++ b/sites/shared/components/account/export.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/force-account-check.mjs b/sites/shared/components/account/force-account-check.mjs
index 4e5c0bd45d6..a57434c3bba 100644
--- a/sites/shared/components/account/force-account-check.mjs
+++ b/sites/shared/components/account/force-account-check.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useEffect } from 'react'
// Hooks
diff --git a/sites/shared/components/account/github.mjs b/sites/shared/components/account/github.mjs
index 8f07f251ed2..bfbfff1ad49 100644
--- a/sites/shared/components/account/github.mjs
+++ b/sites/shared/components/account/github.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/imperial.mjs b/sites/shared/components/account/imperial.mjs
index b68729e2357..b00c16ec807 100644
--- a/sites/shared/components/account/imperial.mjs
+++ b/sites/shared/components/account/imperial.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/language.mjs b/sites/shared/components/account/language.mjs
index 209a693ecdc..55b1c98ece1 100644
--- a/sites/shared/components/account/language.mjs
+++ b/sites/shared/components/account/language.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/links.mjs b/sites/shared/components/account/links.mjs
index 101e8379919..8fd11e6215e 100644
--- a/sites/shared/components/account/links.mjs
+++ b/sites/shared/components/account/links.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { useState, useEffect } from 'react'
import { useAccount } from 'shared/hooks/use-account.mjs'
import { useBackend } from 'shared/hooks/use-backend.mjs'
diff --git a/sites/shared/components/account/mfa.mjs b/sites/shared/components/account/mfa.mjs
index b7781b1eed7..40072614aa6 100644
--- a/sites/shared/components/account/mfa.mjs
+++ b/sites/shared/components/account/mfa.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/newsletter.mjs b/sites/shared/components/account/newsletter.mjs
index e20f30799e5..def56fe189c 100644
--- a/sites/shared/components/account/newsletter.mjs
+++ b/sites/shared/components/account/newsletter.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/overview.mjs b/sites/shared/components/account/overview.mjs
index 045fd7ebe5c..2c5e6bbb710 100644
--- a/sites/shared/components/account/overview.mjs
+++ b/sites/shared/components/account/overview.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { AccountLinks } from './links.mjs'
export const AccountOverview = ({ app }) =>
diff --git a/sites/shared/components/account/password.mjs b/sites/shared/components/account/password.mjs
index 2b007c602fa..2c4e7e0ddba 100644
--- a/sites/shared/components/account/password.mjs
+++ b/sites/shared/components/account/password.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/patterns.mjs b/sites/shared/components/account/patterns.mjs
index 80745bbb3b5..848e945f306 100644
--- a/sites/shared/components/account/patterns.mjs
+++ b/sites/shared/components/account/patterns.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useEffect, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/platform.mjs b/sites/shared/components/account/platform.mjs
index 43fb764c89a..4b3ce242c30 100644
--- a/sites/shared/components/account/platform.mjs
+++ b/sites/shared/components/account/platform.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/profile.mjs b/sites/shared/components/account/profile.mjs
index e3b0147005a..59a1a871738 100644
--- a/sites/shared/components/account/profile.mjs
+++ b/sites/shared/components/account/profile.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Hooks
import { useAccount } from 'shared/hooks/use-account.mjs'
// Components
diff --git a/sites/shared/components/account/reload.mjs b/sites/shared/components/account/reload.mjs
index d82b43e7188..32d7273436f 100644
--- a/sites/shared/components/account/reload.mjs
+++ b/sites/shared/components/account/reload.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/remove.mjs b/sites/shared/components/account/remove.mjs
index b22536c21db..2c925edcd9c 100644
--- a/sites/shared/components/account/remove.mjs
+++ b/sites/shared/components/account/remove.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/restrict.mjs b/sites/shared/components/account/restrict.mjs
index 255b5d64aee..34d33860a8e 100644
--- a/sites/shared/components/account/restrict.mjs
+++ b/sites/shared/components/account/restrict.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/account/role.mjs b/sites/shared/components/account/role.mjs
index e0391325c08..b784695658d 100644
--- a/sites/shared/components/account/role.mjs
+++ b/sites/shared/components/account/role.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
export const ns = ['roles']
const colors = {
diff --git a/sites/shared/components/account/sets.mjs b/sites/shared/components/account/sets.mjs
index 46207688191..a0013bec217 100644
--- a/sites/shared/components/account/sets.mjs
+++ b/sites/shared/components/account/sets.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { measurements } from 'config/measurements.mjs'
import { measurements as designMeasurements } from 'shared/prebuild/data/design-measurements.mjs'
diff --git a/sites/shared/components/account/shared.mjs b/sites/shared/components/account/shared.mjs
index c904bbaf3b9..cf864593a68 100644
--- a/sites/shared/components/account/shared.mjs
+++ b/sites/shared/components/account/shared.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { Spinner } from 'shared/components/spinner.mjs'
import Link from 'next/link'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/account/status.mjs b/sites/shared/components/account/status.mjs
index cfc9d623d16..3edb744fceb 100644
--- a/sites/shared/components/account/status.mjs
+++ b/sites/shared/components/account/status.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { freeSewingConfig } from 'shared/config/freesewing.config.mjs'
export const ns = ['status']
diff --git a/sites/shared/components/account/username.mjs b/sites/shared/components/account/username.mjs
index bdad167fa4b..128340b3cd1 100644
--- a/sites/shared/components/account/username.mjs
+++ b/sites/shared/components/account/username.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Hooks
diff --git a/sites/shared/components/bookmarks.mjs b/sites/shared/components/bookmarks.mjs
index c9d68f45ec1..9b4bba7010c 100644
--- a/sites/shared/components/bookmarks.mjs
+++ b/sites/shared/components/bookmarks.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { horFlexClasses, notEmpty } from 'shared/utils.mjs'
// Hooks
diff --git a/sites/shared/components/breadcrumbs.mjs b/sites/shared/components/breadcrumbs.mjs
index 2c2dfefdef4..1ef0b74fa59 100644
--- a/sites/shared/components/breadcrumbs.mjs
+++ b/sites/shared/components/breadcrumbs.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { HomeIcon, RightIcon } from 'shared/components/icons.mjs'
import { Link, PageLink } from 'shared/components/link.mjs'
diff --git a/sites/shared/components/buttons/continue-button.mjs b/sites/shared/components/buttons/continue-button.mjs
index dc01034a2e3..72691e4b302 100644
--- a/sites/shared/components/buttons/continue-button.mjs
+++ b/sites/shared/components/buttons/continue-button.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Hooks
import { useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/choice-link.mjs b/sites/shared/components/choice-link.mjs
index b2195b6ccda..b56d269f387 100644
--- a/sites/shared/components/choice-link.mjs
+++ b/sites/shared/components/choice-link.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import Link from 'next/link'
export const ChoiceLink = ({ title = '', href = '', children, icon = null }) => {
diff --git a/sites/shared/components/code-box.mjs b/sites/shared/components/code-box.mjs
index 833123d169b..0204ccfdffa 100644
--- a/sites/shared/components/code-box.mjs
+++ b/sites/shared/components/code-box.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { CopyToClipboard } from 'shared/components/copy-to-clipboard.mjs'
export const CodeBox = ({ code, title }) => (
diff --git a/sites/shared/components/collapse.mjs b/sites/shared/components/collapse.mjs
index c9b885d20c6..d72e3b71392 100644
--- a/sites/shared/components/collapse.mjs
+++ b/sites/shared/components/collapse.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { useState } from 'react'
import { DownIcon } from 'shared/components/icons.mjs'
import Link from 'next/link'
diff --git a/sites/shared/components/control/score.mjs b/sites/shared/components/control/score.mjs
index 19c822249e6..a116daa0c25 100644
--- a/sites/shared/components/control/score.mjs
+++ b/sites/shared/components/control/score.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { BulletIcon } from 'shared/components/icons.mjs'
const scores = [1, 2, 3, 4, 5]
diff --git a/sites/shared/components/control/tip.mjs b/sites/shared/components/control/tip.mjs
index 79a4e726736..d4f17b2b24c 100644
--- a/sites/shared/components/control/tip.mjs
+++ b/sites/shared/components/control/tip.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { Popout } from 'shared/components/popout/index.mjs'
import { PageLink } from 'shared/components/link.mjs'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/copy-to-clipboard.mjs b/sites/shared/components/copy-to-clipboard.mjs
index e68bb8ffa16..e9300d72870 100644
--- a/sites/shared/components/copy-to-clipboard.mjs
+++ b/sites/shared/components/copy-to-clipboard.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import ReactDOMServer from 'react-dom/server'
import { useState } from 'react'
import { CopyIcon, OkIcon } from 'shared/components/icons.mjs'
diff --git a/sites/shared/components/curated-sets.mjs b/sites/shared/components/curated-sets.mjs
index 0cfef9970c4..2135edd14b0 100644
--- a/sites/shared/components/curated-sets.mjs
+++ b/sites/shared/components/curated-sets.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { useState, useEffect, useContext } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/designs/difficulty.mjs b/sites/shared/components/designs/difficulty.mjs
index d2d433e07af..5ea87aad61c 100644
--- a/sites/shared/components/designs/difficulty.mjs
+++ b/sites/shared/components/designs/difficulty.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { CircleIcon as Icon } from 'shared/components/icons.mjs'
import { useTheme } from 'shared/hooks/use-theme.mjs'
diff --git a/sites/shared/components/error/view.mjs b/sites/shared/components/error/view.mjs
index 4ec1e397b90..fb583dbc9ed 100644
--- a/sites/shared/components/error/view.mjs
+++ b/sites/shared/components/error/view.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { useTranslation } from 'next-i18next'
import { useState } from 'react'
import { Robot } from 'shared/components/robot/index.mjs'
diff --git a/sites/shared/components/footer/index.mjs b/sites/shared/components/footer/index.mjs
index 415108a3ea2..3ba0d1887d5 100644
--- a/sites/shared/components/footer/index.mjs
+++ b/sites/shared/components/footer/index.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import orderBy from 'lodash.orderby'
import { NavigationContext } from 'shared/context/navigation-context.mjs'
diff --git a/sites/shared/components/gdpr/details.mjs b/sites/shared/components/gdpr/details.mjs
index 047ea8308ef..84abeb777bd 100644
--- a/sites/shared/components/gdpr/details.mjs
+++ b/sites/shared/components/gdpr/details.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { useTranslation } from 'next-i18next'
export const ns = ['gdpr']
diff --git a/sites/shared/components/gdpr/form.mjs b/sites/shared/components/gdpr/form.mjs
index 5f3ebb90608..0941b592911 100644
--- a/sites/shared/components/gdpr/form.mjs
+++ b/sites/shared/components/gdpr/form.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Hooks
import { useState } from 'react'
import { useTranslation } from 'next-i18next'
diff --git a/sites/shared/components/header.mjs b/sites/shared/components/header.mjs
index fc5ec7b4b0d..d9ef5e63f53 100644
--- a/sites/shared/components/header.mjs
+++ b/sites/shared/components/header.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import Link from 'next/link'
export const iconSize = 'h-8 w-8 md:h-10 md:w-10 lg:h-12 lg:w-12'
diff --git a/sites/shared/components/icons.mjs b/sites/shared/components/icons.mjs
index 75b75437407..5da676bfbbc 100644
--- a/sites/shared/components/icons.mjs
+++ b/sites/shared/components/icons.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
import { logoPath } from 'shared/components/logos/freesewing.mjs'
export const IconWrapper = ({
diff --git a/sites/shared/components/inputs.mjs b/sites/shared/components/inputs.mjs
index 8126d1dc657..8702e13449f 100644
--- a/sites/shared/components/inputs.mjs
+++ b/sites/shared/components/inputs.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies
import { cloudflareImageUrl } from 'shared/utils.mjs'
import { collection } from 'site/hooks/use-design.mjs'
diff --git a/sites/shared/components/joost.mjs b/sites/shared/components/joost.mjs
index 0750ec291d7..faf6239b5d9 100644
--- a/sites/shared/components/joost.mjs
+++ b/sites/shared/components/joost.mjs
@@ -1,3 +1,4 @@
+// __SDEFILE__ - This file is a dependency for the stand-alone environment
export const Joost = ({ className = 'w-32', stroke = 0 }) => (