// __SDEFILE__ - This file is a dependency for the stand-alone environment import { Popout } from 'shared/components/popout/index.mjs' import { Highlight } from './highlight.mjs' import { YouTube } from './youtube.mjs' //import { Figure } from './figure.mjs' import { ReadMore } from './read-more.mjs' import { Tab, Tabs } from '../tabs.mjs' import { TabbedExample as Example } from './tabbed-example.mjs' import { HttpMethod, HttpStatusCode } from './http.mjs' import { ControlTip } from '../control/tip.mjs' import { DocsTitle, DocsLink } from './docs-helpers.mjs' import { Legend } from './legend.mjs' // Extra components import { DesignInfo } from 'shared/components/designs/info.mjs' import { collection } from 'site/hooks/use-design.mjs' import { DesignMeasurements } from './design-measurements.mjs' import { DesignOptions } from './design-options.mjs' import { MeasieImage } from 'shared/components/measurements/image.mjs' // Dev/Org jargon import { Term as SharedTerm, termList } from 'shared/components/jargon.mjs' import { jargon, site } from 'site/prebuild/jargon.mjs' // Dev web of trust import { WebOfTrustMap, WebOfTrustTable } from '../../../dev/components/web-of-trust.mjs' export const Term = ({ children }) => export const TermList = termList(jargon, site) export const components = (site = 'org', slug = []) => { const base = { Comment: (props) => , Fixme: (props) => , Link: (props) => , Note: (props) => , ReadMore: (props) => , Related: (props) => , Tab, Tabs, Tip: (props) => , Tldr: (props) => , Warning: (props) => , em: (props) => , } const extra = { pre: (props) => , YouTube, // This Figure component causes hydration errors //img: Figure, table: (props) => ( {props.children}
), ControlTip, Example, DocsTitle: (props) => , DocsLink: (props) => , } if (site === 'sde') return base // TermList if (site === 'dev' && Array.isArray(slug) && slug.join('/') === 'reference/terms') extra.TermList = TermList else if (site === 'org' && Array.isArray(slug) && slug.join('/') === 'about/terms') extra.TermList = TermList if (site === 'dev') return { ...base, ...extra, Method: HttpMethod, StatusCode: HttpStatusCode, WebOfTrustTable, WebOfTrustMap, } const specific = {} if (typeof slug === 'string') slug = slug.split('/') if ( site === 'org' && slug && slug.length > 1 && slug[0] === 'designs' && collection.includes(slug[1]) ) { if (slug.length === 2) specific.DesignInfo = DesignInfo if (slug.length === 3 && slug[2] === 'measurements') specific.DesignMeasurements = DesignMeasurements if (slug.length === 3 && slug[2] === 'options') specific.DesignOptions = DesignOptions } if (site === 'org' && Array.isArray(slug)) { const url = slug.join('/') if (url.indexOf('about/notation') !== -1 || url.indexOf('sewing/on-the-fold') !== -1) specific.Legend = Legend } // MeasieImage if (site === 'org' && slug) { // Regular MDX - MeasieImage if (slug.length === 2 && slug[0] === 'measurements') { specific.MeasieImage = function MdxMeasieImage() { return } } // Dynamic MDX - MeasieImage if (slug.length === 3 && slug[0] === 'docs' && slug[1] === 'measurements') { specific.MeasieImage = function MdxMeasieImage() { return } } } return { ...base, ...extra, ...specific, } }