docs: prep for v2 documentation (#6710)

This PR includes documentation that preps for v2 docs (but doesn't introduce new docs).

_Note: The number of file changes in the PR is due to find-and-replace within the `references` which is unavoidable. Let me know if I should move it to another PR._

## Changes

- Change Medusa version in base OAS used for v2.
- Fix to docblock generator related to not catching all path parameters.
- Added typedoc plugin that generates ER Diagrams, which will be used specifically for data model references in commerce modules.
- Changed OAS tool to output references in `www/apps/api-reference/specs-v2` directory when the `--v2` option is used.
- Added a version switcher to the API reference to switch between V1 and V2. This switcher is enabled by an environment variable, so it won't be visible/usable at the moment.
- Upgraded docusaurus to v3.0.1
- Added new Vale rules to ensure correct spelling of Medusa Admin and module names.
- Added new components to the `docs-ui` package that will be used in future documentation changes.
This commit is contained in:
Shahed Nasser
2024-03-18 07:47:35 +00:00
committed by GitHub
parent 56a6ec0227
commit bb87db8342
2008 changed files with 15716 additions and 10536 deletions
@@ -0,0 +1,65 @@
"use client"
import React from "react"
import { Card, CardList, MDXComponents, useSidebar } from "../.."
import { SidebarItemType } from "types"
type ChildDocsProps = {
onlyTopLevel?: boolean
}
export const ChildDocs = ({ onlyTopLevel = false }: ChildDocsProps) => {
const { currentItems } = useSidebar()
const getTopLevelElms = (items?: SidebarItemType[]) => (
<CardList
items={
items?.map((childItem) => ({
title: childItem.title,
href: childItem.path,
showLinkIcon: false,
})) || []
}
/>
)
const getAllLevelsElms = (items?: SidebarItemType[]) =>
items?.map((item, key) => {
const HeadingComponent = item.children?.length
? MDXComponents["h2"]
: undefined
return (
<React.Fragment key={key}>
{HeadingComponent && (
<>
<HeadingComponent>{item.title}</HeadingComponent>
<CardList
items={
item.children?.map((childItem) => ({
title: childItem.title,
href: childItem.path,
showLinkIcon: false,
})) || []
}
/>
</>
)}
{!HeadingComponent && (
<Card title={item.title} href={item.path} showLinkIcon={false} />
)}
</React.Fragment>
)
})
const getElms = (items?: SidebarItemType[]) => {
return onlyTopLevel ? getTopLevelElms(items) : getAllLevelsElms(items)
}
return (
<>
{getElms(currentItems?.top)}
{getElms(currentItems?.bottom)}
</>
)
}