diff --git a/apps/documentation/src/components/sidebar/SidebarLink.tsx b/apps/documentation/src/components/sidebar/SidebarLink.tsx deleted file mode 100644 index 5271e0b0..00000000 --- a/apps/documentation/src/components/sidebar/SidebarLink.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { NavLink, type NavLinkProps } from '@mantine/core' -import type { CSSProperties, ReactNode } from 'react' -import { Link, useRouter } from 'tuono' - -interface SidebarLinkProps { - label: string - href: string - onClick?: () => void - children?: ReactNode -} - -const styles: CSSProperties = { - borderRadius: 8, - marginTop: '0.25rem', - lineHeight: '1.25rem', - fontWeight: 'bold', -} - -export default function SidebarLink( - props: SidebarLinkProps & NavLinkProps, -): JSX.Element { - const { pathname } = useRouter() - - return ( - - ) -} diff --git a/apps/documentation/src/components/sidebar/sidebar-link.module.css b/apps/documentation/src/components/sidebar/sidebar-link.module.css new file mode 100644 index 00000000..9bd68cae --- /dev/null +++ b/apps/documentation/src/components/sidebar/sidebar-link.module.css @@ -0,0 +1,6 @@ +.link { + border-radius: 8px; + margin-top: 0.25rem; + line-height: 1.25rem; + font-weight: bold; +} diff --git a/apps/documentation/src/components/sidebar/sidebar-link.tsx b/apps/documentation/src/components/sidebar/sidebar-link.tsx new file mode 100644 index 00000000..facab497 --- /dev/null +++ b/apps/documentation/src/components/sidebar/sidebar-link.tsx @@ -0,0 +1,45 @@ +import { NavLink, type NavLinkProps } from '@mantine/core' +import { useState, type ReactNode } from 'react' +import { Link, useRouter } from 'tuono' +import { IconChevronRight } from '@tabler/icons-react' + +import styles from './sidebar-link.module.css' + +interface SidebarLinkProps { + label: string + href: string + onClick?: () => void + children?: ReactNode +} + +export default function SidebarLink( + props: SidebarLinkProps & NavLinkProps, +): JSX.Element { + const { pathname } = useRouter() + const [isOpen, setIsOpen] = useState(!!props.defaultOpened) + + return ( + { + e.preventDefault() + e.stopPropagation() + setIsOpen((state) => !state) + }} + /> + ) + } + opened={isOpen} + autoContrast + {...props} + /> + ) +} diff --git a/apps/documentation/src/components/sidebar/sidebar.tsx b/apps/documentation/src/components/sidebar/sidebar.tsx index 3ddb4c25..6527de0d 100644 --- a/apps/documentation/src/components/sidebar/sidebar.tsx +++ b/apps/documentation/src/components/sidebar/sidebar.tsx @@ -1,5 +1,5 @@ import { AppShell } from '@mantine/core' -import SidebarLink from './SidebarLink' +import SidebarLink from './sidebar-link' export default function Sidebar({ close }: { close: () => void }): JSX.Element { return ( @@ -16,17 +16,18 @@ export default function Sidebar({ close }: { close: () => void }): JSX.Element { label="Installation" onClick={close} /> - + ) diff --git a/apps/documentation/src/routes/documentation/routing/index.mdx b/apps/documentation/src/routes/documentation/routing/index.mdx new file mode 100644 index 00000000..634a99b7 --- /dev/null +++ b/apps/documentation/src/routes/documentation/routing/index.mdx @@ -0,0 +1,7 @@ +import { Head } from 'tuono' + + + Tuono - Routing + + +# Routing index diff --git a/apps/documentation/src/routes/documentation/routing/intro.mdx b/apps/documentation/src/routes/documentation/routing/intro.mdx index e611e7a2..e230165b 100644 --- a/apps/documentation/src/routes/documentation/routing/intro.mdx +++ b/apps/documentation/src/routes/documentation/routing/intro.mdx @@ -4,6 +4,6 @@ import { Head } from 'tuono' Tuono - Routing -# Routing +# Project structure Todo