From 5d4e143d2677efdb1dc885beb85793cf30d6773e Mon Sep 17 00:00:00 2001 From: Saidev Dhal Date: Mon, 13 Jan 2025 12:12:38 +0530 Subject: [PATCH] changes v1.1 --- bun.lockb | Bin 292334 -> 293289 bytes content/guide/index.mdx | 4 +- package.json | 1 + src/app/(routes)/guide/[[...slug]]/page.tsx | 2 +- src/components/mdx/toc.tsx | 143 ++++++++++++------ src/components/sidebar/app-header.tsx | 38 +++-- src/components/sidebar/app-sidebar.tsx | 12 +- src/components/sidebar/ellipsis-links.tsx | 15 -- src/components/sidebar/newsletter.tsx | 11 +- src/components/sidebar/project-switcher.tsx | 18 +-- .../Searchbar.tsx => sidebar/search-bar.tsx} | 12 +- .../{nav-guide.tsx => sidebar-nav.tsx} | 5 +- src/components/ui/popover.tsx | 33 ++++ src/config/sidebar.config.ts | 16 +- src/styles/globals.css | 35 +++-- velite.config.ts | 1 + 16 files changed, 214 insertions(+), 132 deletions(-) delete mode 100644 src/components/sidebar/ellipsis-links.tsx rename src/components/{searchbar/Searchbar.tsx => sidebar/search-bar.tsx} (89%) rename src/components/sidebar/{nav-guide.tsx => sidebar-nav.tsx} (95%) create mode 100644 src/components/ui/popover.tsx diff --git a/bun.lockb b/bun.lockb index 3d7371b44a8e50706c3f921420445c859f8d586f..40327652274aaba025b38cc50bffed928fec548c 100755 GIT binary patch delta 52683 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 u(xd#TwTdB*hOJec%RjlQL_1Q -## Setup Guide +### Setup Guide This is a ready-to-use template that comes with everything you need to build a modern documentation site or blog using Next.js 15, MDX, Velite, and Shadcn UI components. diff --git a/package.json b/package.json index 9311d2c..46e9f6b 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-popover": "^1.1.4", "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", diff --git a/src/app/(routes)/guide/[[...slug]]/page.tsx b/src/app/(routes)/guide/[[...slug]]/page.tsx index d67d9c3..69d34ef 100644 --- a/src/app/(routes)/guide/[[...slug]]/page.tsx +++ b/src/app/(routes)/guide/[[...slug]]/page.tsx @@ -130,7 +130,7 @@ export default async function GuidePage({ params }: { params: Promise
{doc.toc.visible && ( - + )}
diff --git a/src/components/mdx/toc.tsx b/src/components/mdx/toc.tsx index 23d46d5..d077bfe 100644 --- a/src/components/mdx/toc.tsx +++ b/src/components/mdx/toc.tsx @@ -1,9 +1,10 @@ "use client"; - import * as React from "react"; - import { cn } from "@/lib/utils"; import { useMounted } from "@/hooks/use-mounted"; +import { ListTree, PencilLine } from "lucide-react"; +import Link from "next/link"; +import { Button } from "../ui/button"; import Newsletter from "../sidebar/newsletter"; interface TocEntry { @@ -14,9 +15,10 @@ interface TocEntry { interface TocProps { toc: TocEntry[]; + github?: string; } -export function DashboardTableOfContents({ toc }: TocProps) { +export function DashboardTableOfContents({ toc, github }: TocProps) { const itemIds = React.useMemo( () => toc @@ -28,45 +30,29 @@ export function DashboardTableOfContents({ toc }: TocProps) { : [], [toc] ); - const activeHeading = useActiveItem(itemIds); - const mounted = useMounted(); - - return mounted ? ( -
-

On this page

-
-
- -
- - {/* Newsletter component remains at bottom */} -
- -
-
- ) : null; -} - -function useActiveItem(itemIds: (string | undefined)[]) { - const [activeId, setActiveId] = React.useState(""); - + + const [activeHeading, setActiveHeading] = React.useState(""); + React.useEffect(() => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { + const id = entry.target.id; if (entry.isIntersecting) { - setActiveId(entry.target.id); + setActiveHeading(id); + // Update URL hash without scrolling + window.history.replaceState(null, '', `#${id}`); } }); }, - { rootMargin: `0% 0% -40% 0%` } + { + rootMargin: '-0% 0% -25% 0%', + threshold: 1.0 + } ); itemIds?.forEach((id) => { - if (!id) { - return; - } - + if (!id) return; const element = document.getElementById(id); if (element) { observer.observe(element); @@ -75,10 +61,7 @@ function useActiveItem(itemIds: (string | undefined)[]) { return () => { itemIds?.forEach((id) => { - if (!id) { - return; - } - + if (!id) return; const element = document.getElementById(id); if (element) { observer.unobserve(element); @@ -87,40 +70,98 @@ function useActiveItem(itemIds: (string | undefined)[]) { }; }, [itemIds]); - return activeId; + const mounted = useMounted(); + + const handleClick = React.useCallback((url: string) => { + const id = url.slice(1); + const element = document.getElementById(id); + if (element) { + // Prevent default scroll behavior + const topOffset = element.getBoundingClientRect().top + window.scrollY - 100; + window.scrollTo({ + top: topOffset, + behavior: 'smooth' + }); + setActiveHeading(id); + } + }, []); + + return mounted ? ( +
+
+ +

On this page

+
+
+
+ +
+ +
+ + + + + +
+
+ ) : null; } interface TreeProps { tree: TocEntry[]; level?: number; - activeItem?: string | null; + activeItem?: string; + onItemClick: (url: string) => void; } -function Tree({ tree, level = 1, activeItem }: TreeProps) { +function Tree({ tree, level = 1, activeItem, onItemClick }: TreeProps) { return tree.length && level < 5 ? ( -
    + ) : null; } + +export default DashboardTableOfContents; \ No newline at end of file diff --git a/src/components/sidebar/app-header.tsx b/src/components/sidebar/app-header.tsx index 2eba470..1830cf9 100644 --- a/src/components/sidebar/app-header.tsx +++ b/src/components/sidebar/app-header.tsx @@ -1,28 +1,38 @@ "use client" -import { Ellipsis } from "lucide-react" +import { Ellipsis, MessageCircleQuestion } from "lucide-react" import Image from 'next/image'; -import { useState } from "react"; -import { EllipsisLinks } from "./ellipsis-links"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" +import { Button } from "../ui/button"; +import { GitHubLogoIcon } from "@radix-ui/react-icons"; -export function AppHeader() { - const [isOpen, setIsOpen] = useState(false); +export function AppHeader() { return (
    -
    +
    plura-logo -

    PLURA

    +

    PLURA-AI

    -{/* flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground */}
    - + + + + + + -
    - { isOpen ? : null } -
    + +
    +
    ) diff --git a/src/components/sidebar/app-sidebar.tsx b/src/components/sidebar/app-sidebar.tsx index e8e2dfb..be813fb 100644 --- a/src/components/sidebar/app-sidebar.tsx +++ b/src/components/sidebar/app-sidebar.tsx @@ -5,16 +5,20 @@ import { SidebarFooter, SidebarHeader, } from "@/components/ui/sidebar"; -import { NavGuide } from "./nav-guide"; +import { SideBarNav } from "./sidebar-nav"; import { sidebarConfig } from "@/config/sidebar.config"; import { ProjectSwitcher } from "./project-switcher"; -import DialogDemo from "../searchbar/Searchbar"; import ThemeToggler from "../theme/toggler"; import { Separator } from "../ui/separator"; import { AppHeader } from "./app-header"; +import SearchBar from "./search-bar"; +import { usePathname } from "next/navigation"; export function AppSidebar() { + const pathname = usePathname(); + const sidebarItem = pathname.includes("guide") ? sidebarConfig.guide : pathname.includes("ai-sdk") ? sidebarConfig.aiSdk : sidebarConfig.plura; + return ( @@ -24,10 +28,10 @@ export function AppSidebar() { options={sidebarConfig.projectOptions} defaultOption={sidebarConfig.projectOptions[0]} /> - + - + diff --git a/src/components/sidebar/ellipsis-links.tsx b/src/components/sidebar/ellipsis-links.tsx deleted file mode 100644 index abcd431..0000000 --- a/src/components/sidebar/ellipsis-links.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { - Card, - CardTitle, -} from "@/components/ui/card" -import { GitHubLogoIcon } from "@radix-ui/react-icons" -export function EllipsisLinks() { - return ( - - - - Github - - - ) -} \ No newline at end of file diff --git a/src/components/sidebar/newsletter.tsx b/src/components/sidebar/newsletter.tsx index 4544c85..84ef1a5 100644 --- a/src/components/sidebar/newsletter.tsx +++ b/src/components/sidebar/newsletter.tsx @@ -9,24 +9,21 @@ import { import { SidebarInput } from "@/components/ui/sidebar"; export default function Newsletter() { return ( - -
    - - Subscribe to our newsletter + + + Get quick updates! Opt-in to receive updates and news about the Plura. - + - ); } diff --git a/src/components/sidebar/project-switcher.tsx b/src/components/sidebar/project-switcher.tsx index 59ece46..cdb0869 100644 --- a/src/components/sidebar/project-switcher.tsx +++ b/src/components/sidebar/project-switcher.tsx @@ -16,7 +16,6 @@ import { SidebarMenuItem, } from "@/components/ui/sidebar" import { projectDetails } from "@/types" -import { usePathname } from "next/navigation" export function ProjectSwitcher({ options, @@ -26,7 +25,6 @@ export function ProjectSwitcher({ defaultOption: projectDetails }) { const [selectedOption, setSelectedOption] = React.useState(defaultOption) - const pathname = usePathname() const router = useRouter() function handleChange(title: string) { @@ -43,16 +41,14 @@ export function ProjectSwitcher({ logo
    {selectedOption.title} @@ -75,9 +71,9 @@ export function ProjectSwitcher({ {option.title}

    {option.title}

    diff --git a/src/components/searchbar/Searchbar.tsx b/src/components/sidebar/search-bar.tsx similarity index 89% rename from src/components/searchbar/Searchbar.tsx rename to src/components/sidebar/search-bar.tsx index 05fd463..2359f84 100644 --- a/src/components/searchbar/Searchbar.tsx +++ b/src/components/sidebar/search-bar.tsx @@ -19,8 +19,9 @@ import { CommandShortcut, } from "@/components/ui/command"; import { useEffect, useState } from "react"; +import { Button } from "../ui/button"; -export default function DialogDemo() { +export default function SearchBar() { const [open, setOpen] = useState(false); useEffect(() => { @@ -37,9 +38,10 @@ export default function DialogDemo() { return ( <> - + diff --git a/src/components/sidebar/nav-guide.tsx b/src/components/sidebar/sidebar-nav.tsx similarity index 95% rename from src/components/sidebar/nav-guide.tsx rename to src/components/sidebar/sidebar-nav.tsx index f4c6efa..483b519 100644 --- a/src/components/sidebar/nav-guide.tsx +++ b/src/components/sidebar/sidebar-nav.tsx @@ -8,7 +8,6 @@ import { } from "@/components/ui/collapsible"; import { SidebarGroup, - SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, @@ -18,7 +17,7 @@ import { } from "@/components/ui/sidebar"; import { usePathname } from "next/navigation"; -export function NavGuide({ +export function SideBarNav({ items, }: { items: { @@ -36,7 +35,7 @@ export function NavGuide({ const pathname = usePathname(); return ( - Guide + {/* Guide */} {items.map((item) => ( , + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/src/config/sidebar.config.ts b/src/config/sidebar.config.ts index 35f4acc..42ef454 100644 --- a/src/config/sidebar.config.ts +++ b/src/config/sidebar.config.ts @@ -2,12 +2,6 @@ import { FileText, GitFork, ScrollText } from "lucide-react"; export const sidebarConfig = { projectOptions: [ - { - title: "Guide", - description: "Easily set up and configure Plura.", - imageSrc: "/plura-logo.png", - path: "/guide" - }, { title: "Plura", description: "Boost support with an AI-driven assistant.", @@ -15,7 +9,13 @@ export const sidebarConfig = { path: "/plura" }, { - title: "Ai-SDK", + title: "Guide", + description: "Easily set up and configure Plura.", + imageSrc: "/plura-logo.png", + path: "/guide" + }, + { + title: "@plura-ai", description: "Seamlessly automate support on your platform.", imageSrc: "/plura-logo.png", path: "/ai-sdk" @@ -86,4 +86,6 @@ export const sidebarConfig = { ] }, ], + plura: [], + aiSdk: [], }; diff --git a/src/styles/globals.css b/src/styles/globals.css index 14b309b..225698d 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -1,9 +1,6 @@ @tailwind base; @tailwind components; @tailwind utilities; -/* body { - font-family: Arial, Helvetica, sans-serif; -} */ @layer base { :root { @@ -21,26 +18,32 @@ --muted-foreground: 240 3.8% 46.1%; --accent: 240 4.8% 95.9%; --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; + --destructive: 0 72.22% 50.59%; --destructive-foreground: 0 0% 98%; --border: 240 5.9% 90%; --input: 240 5.9% 90%; - --ring: 240 10% 3.9%; + --ring: 240 5% 64.9%; + --radius: 0.5rem; + --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; --chart-4: 43 74% 66%; --chart-5: 27 87% 67%; - --radius: 0.5rem; - --sidebar-background: 0 0% 98%; + + --sidebar-background: 0 0% 98%; --sidebar-foreground: 240 5.3% 26.1%; --sidebar-primary: 240 5.9% 10%; --sidebar-primary-foreground: 0 0% 98%; --sidebar-accent: 240 4.8% 95.9%; --sidebar-accent-foreground: 240 5.9% 10%; --sidebar-border: 220 13% 91%; - --sidebar-ring: 217.2 91.2% 59.8%; - --sidebar-hover: 0 0% 22%; + --sidebar-ring: 240 5% 64.9%; + --color-1: 0 100% 63%; + --color-2: 270 100% 63%; + --color-3: 210 100% 63%; + --color-4: 195 100% 63%; + --color-5: 90 100% 63%; --expo-in: linear( 0 0%, 0.0085 31.26%, 0.0167 40.94%, @@ -77,24 +80,30 @@ --accent: 240 3.7% 15.9%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; + --destructive-foreground: 0 85.7% 97.3%; --border: 240 3.7% 15.9%; --input: 240 3.7% 15.9%; --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; --chart-4: 280 65% 60%; --chart-5: 340 75% 55%; - --sidebar-background: 240 5.9% 10%; + + --sidebar-background: 240 5.9% 10%; --sidebar-foreground: 240 4.8% 95.9%; --sidebar-primary: 224.3 76.3% 48%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 240 3.7% 15.9%; --sidebar-accent-foreground: 240 4.8% 95.9%; --sidebar-border: 240 3.7% 15.9%; - --sidebar-ring: 217.2 91.2% 59.8%; - --sidebar-hover: 0 0% 22%; + --sidebar-ring: 240 4.9% 83.9%; + --color-1: 0 100% 63%; + --color-2: 270 100% 63%; + --color-3: 210 100% 63%; + --color-4: 195 100% 63%; + --color-5: 90 100% 63%; } } diff --git a/velite.config.ts b/velite.config.ts index f1663e4..356c9df 100644 --- a/velite.config.ts +++ b/velite.config.ts @@ -22,6 +22,7 @@ export const guide = defineCollection({ slug: s.path(), title: s.string(), description: s.string(), + github: s.string().optional(), published: s.boolean().default(false), date: s.coerce.date().default(new Date()), label: s.enum(["New", "Updated"]).optional(),