docs: add Tabs docs

This commit is contained in:
p-sw 2024-06-03 19:32:55 +09:00
parent ff5f9c72ec
commit 5f1ffd6646
4 changed files with 64 additions and 0 deletions

View File

@ -30,6 +30,9 @@ import ComponentsDialog, {
import ComponentsDrawer, { import ComponentsDrawer, {
tableOfContents as componentsDrawerToc, tableOfContents as componentsDrawerToc,
} from "./docs/components/Drawer.mdx"; } from "./docs/components/Drawer.mdx";
import ComponentsTabs, {
tableOfContents as componentsTabsToc,
} from "./docs/components/Tabs.mdx";
import { ForwardedRef, forwardRef, useContext, useEffect, useRef } from "react"; import { ForwardedRef, forwardRef, useContext, useEffect, useRef } from "react";
import { HeadingContext } from "./HeadingContext"; import { HeadingContext } from "./HeadingContext";
@ -171,6 +174,14 @@ const router = createBrowserRouter(
</DynamicLayout> </DynamicLayout>
} }
/> />
<Route
path="tabs"
element={
<DynamicLayout toc={componentsTabsToc}>
<ComponentsTabs components={overrideComponents} />
</DynamicLayout>
}
/>
</Route> </Route>
</Route> </Route>
</Route> </Route>

View File

@ -49,6 +49,11 @@ export default {
path: "/docs/components/drawer", path: "/docs/components/drawer",
name: "Drawer", name: "Drawer",
eq: (pathname: string) => pathname === "/docs/components/drawer" eq: (pathname: string) => pathname === "/docs/components/drawer"
},
{
path: "/docs/components/tabs",
name: "Tabs",
eq: (pathname: string) => pathname === "/docs/components/tabs"
} }
] ]
} }

View File

@ -0,0 +1,30 @@
import { Button } from "@components/Button";
import { TabProvider, TabTrigger, TabContent, TabList } from "@components/Tabs";
import { Story } from "@/components/Story";
import { LoadedCode, GITHUB } from "@/components/LoadedCode";
import { TabsDemo } from "./TabsBlocks/Preview";
# Tabs
Organizes content into multiple sections with tabbed navigation.
<TabProvider defaultName="preview">
<TabList>
<TabTrigger name="preview">Preview</TabTrigger>
<TabTrigger name="code">Code</TabTrigger>
</TabList>
<TabContent name="preview">
<Story layout="centered" className="flex-col [&>*]:w-full">
<TabsDemo />
</Story>
</TabContent>
<TabContent name="code">
<LoadedCode from={`${GITHUB}/packages/react/src/docs/components/TabsBlocks/Preview.tsx`} />
</TabContent>
</TabProvider>
## Installation
1. Create a new file `Tabs.tsx` in your component folder.
2. Copy and paste the following code into the file.
<LoadedCode from={`${GITHUB}/packages/react/components/Tabs.tsx`} />

View File

@ -0,0 +1,18 @@
import { TabProvider, TabTrigger, TabContent, TabList } from "@components/Tabs";
export function TabsDemo() {
return (
<TabProvider defaultName="tab1">
<TabList>
<TabTrigger name="tab1">Tab 1</TabTrigger>
<TabTrigger name="tab2">Tab 2</TabTrigger>
</TabList>
<TabContent name="tab1">
<div className="w-full text-center">Tab 1 Content</div>
</TabContent>
<TabContent name="tab2">
<div className="w-full text-center">Tab 2 Content</div>
</TabContent>
</TabProvider>
);
}