From cdcee387b5db295b45a28a158611110b36c964a3 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Mon, 7 Oct 2024 19:34:00 -0400 Subject: [PATCH] some content and changes Took 3 hours 4 minutes --- docs/bob/hello.md | 7 - docs/bob/hey.md | 7 - docs/bob/hi.md | 7 - docs/intro.md | 293 ------------------------------ docs/intro.mdx | 30 +++ public/media/docs/register.png | Bin 0 -> 43759 bytes src/app/[[...slug]]/page.tsx | 2 +- src/components/docs-footer.tsx | 4 +- src/components/mdx.tsx | 108 ++++++++++- src/components/on-this-page.tsx | 2 +- src/components/theme-switcher.tsx | 26 ++- 11 files changed, 152 insertions(+), 334 deletions(-) delete mode 100644 docs/bob/hello.md delete mode 100644 docs/bob/hey.md delete mode 100644 docs/bob/hi.md delete mode 100644 docs/intro.md create mode 100644 docs/intro.mdx create mode 100644 public/media/docs/register.png diff --git a/docs/bob/hello.md b/docs/bob/hello.md deleted file mode 100644 index 37a1555..0000000 --- a/docs/bob/hello.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 'Hello' -published: '2024-10-06' -summary: 'petentium usu tota noluisse errem elaboraret auctor.' ---- - -# hello \ No newline at end of file diff --git a/docs/bob/hey.md b/docs/bob/hey.md deleted file mode 100644 index abbdd85..0000000 --- a/docs/bob/hey.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 'Hey' -published: '2024-10-06' -summary: 'petentium usu tota noluisse errem elaboraret auctor.' ---- - -# hey \ No newline at end of file diff --git a/docs/bob/hi.md b/docs/bob/hi.md deleted file mode 100644 index 80b62d2..0000000 --- a/docs/bob/hi.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 'Hi' -published: '2024-10-06' -summary: 'petentium usu tota noluisse errem elaboraret auctor.' ---- - -# hi \ No newline at end of file diff --git a/docs/intro.md b/docs/intro.md deleted file mode 100644 index 407f306..0000000 --- a/docs/intro.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: '🚀 Introduction' -published: '2024-10-06' -summary: 'petentium usu tota noluisse errem elaboraret auctor.' ---- - -# Get started with Pulse App! -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# an mel dissentiunt ponderum eius dicant adhuc, -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# vim an explicari eirmod pro singulis scripta iaculis fermentum. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# eruditi propriae vulputate elit venenatis reprehendunt delectus. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# dicunt antiopam ultricies nisl egestas voluptatibus harum, -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# viverra senserit cursus theophrastus elaboraret iudicabit ligula. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# posidonium dicat eum nostra auctor quaeque harum -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# doctus primis disputationi atqui magnis himenaeos fastidii -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# ligula cras prodesset litora ridens docendi euripidis -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# efficitur detraxit detraxit fames appareat mutat elit -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# donec nominavi qui dolorum adversarium eum eleifend -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. - -# nunc contentiones numquam pharetra his vero solum -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. -petentium usu tota noluisse errem elaboraret auctor. \ No newline at end of file diff --git a/docs/intro.mdx b/docs/intro.mdx new file mode 100644 index 0000000..2e97a90 --- /dev/null +++ b/docs/intro.mdx @@ -0,0 +1,30 @@ +--- +title: '🚀 Introduction' +published: '2024-10-06' +summary: 'petentium usu tota noluisse errem elaboraret auctor.' +--- + +> [!IMPORTANT] +> These docs are currently a work in progress and are subject to change. + +# Pulse App + + A lightweight service monitoring solution for tracking the availability of whatever service your heart desires! + + +## Getting Started +Let's get you up and running—this will only take a few minutes! Start by [creating your account](#creating-your-account) and +making your first status page. You can do this on our cloud or on your [own instance](/self-hosting). Once done, you can add +your services and start monitoring them. See [Next Steps](#next-steps) for more. + +### Creating your Account +- First, head to our [Dashboard](https://pulseapp.cc/dashboard) and fill out the form. ![Registering](https://cdn.rainnny.club/auhNOjrcYz6u.png) +- Next, complete the onboarding process and set up your first organization, and status page. ![Onboarding](https://cdn.rainnny.club/AfDgjHG5QTpZ.png) +- Finally, you can [start monitoring your services](#next-steps)! + +### Next Steps +#### Components +... + +#### Automations +... \ No newline at end of file diff --git a/public/media/docs/register.png b/public/media/docs/register.png new file mode 100644 index 0000000000000000000000000000000000000000..00b36411be9b4c2dc71d1d1b09312aa307f9658b GIT binary patch literal 43759 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 VK>K25;0AOC22WQ%mvv4FO#n2LIX?gZ literal 0 HcmV?d00001 diff --git a/src/app/[[...slug]]/page.tsx b/src/app/[[...slug]]/page.tsx index a2b979b..8f88dc0 100644 --- a/src/app/[[...slug]]/page.tsx +++ b/src/app/[[...slug]]/page.tsx @@ -44,7 +44,7 @@ const DocsPage = async ({ return (
{/* Breadcrumb */} - + {splitSlug.map( (part: string, index: number): ReactElement => { diff --git a/src/components/docs-footer.tsx b/src/components/docs-footer.tsx index f5e7d47..1b70fc4 100644 --- a/src/components/docs-footer.tsx +++ b/src/components/docs-footer.tsx @@ -53,7 +53,9 @@ const DocsFooter = ({ {/* Pages */} - + {previous || next ? ( + + ) : undefined}
{/* Previous */} {previous && ( diff --git a/src/components/mdx.tsx b/src/components/mdx.tsx index d8771aa..da53109 100644 --- a/src/components/mdx.tsx +++ b/src/components/mdx.tsx @@ -1,12 +1,46 @@ -import { ReactElement, ReactNode } from "react"; +import { isValidElement, ReactElement, ReactNode } from "react"; import { MDXRemote } from "remote-mdx/rsc"; import { cn } from "@/lib/utils"; import remarkGfm from "remark-gfm"; +import { + Activity, + CircleAlert, + Lightbulb, + MessageSquareWarning, + OctagonAlert, + TriangleAlert, +} from "lucide-react"; +import Link from "next/link"; +import { capitalizeWords } from "@/lib/string"; + +const blockquoteStyles: { [key: string]: any } = { + NOTE: { + icon: , + style: "text-[#1F6FEB] border-[#1F6FEB]", + }, + TIP: { + icon: , + style: "text-[#4A8BD5] border-[#4A8BD5]", + }, + IMPORTANT: { + icon: , + style: "text-[#8957E5] border-[#8957E5]", + }, + WARNING: { + icon: , + style: "text-[#9E6A03] border-[#9E6A03]", + }, + CAUTION: { + icon: , + style: "text-[#DA3633] border-[#DA3633]", + }, +}; /** * The MDX components to style. */ const components = { + // Headings h1: ({ children }: { children: ReactNode }): ReactElement => ( {children} @@ -37,6 +71,8 @@ const components = { {children} ), + + // Text a: ({ href, children, @@ -44,19 +80,57 @@ const components = { href: string; children: ReactNode; }): ReactElement => ( - {children} - + ), p: ({ children }: { children: ReactNode }): ReactElement => ( -

{children}

+

{children}

), + + // Media + img: ({ src, alt }: { src: string; alt: string }): ReactElement => ( + {alt} + ), + + // Lists ul: ({ children }: { children: ReactNode }): ReactElement => ( -
    {children}
+
    {children}
), + + // Blockquotes + blockquote: ({ children }: { children: ReactNode }): ReactElement => { + const match = extractBlockQuoteText(children).match( + /^\s*\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)]\s*(.*)/i + ); + let style: any; + if (!match || !(style = blockquoteStyles[match[1]])) { + return
{children}
; + } + return ( +
+

+ {style.icon} + {capitalizeWords(match[1])} +

+

{match[2]}

+
+ ); + }, }; /** @@ -71,6 +145,8 @@ export const CustomMDX = (props: any): ReactElement => ( components={{ ...components, ...(props.components || {}), + Link, + Activity, }} options={{ mdxOptions: { @@ -83,6 +159,7 @@ export const CustomMDX = (props: any): ReactElement => ( /** * A heading component. * + * @param as the type of heading * @param className the class name of the heading * @param size the size of the heading * @param children the children within the heading @@ -104,7 +181,11 @@ const Heading = ({ return ( = 2 && "pt-7", className)} + className={cn( + "py-3 font-bold select-none", + size >= 2 && "pt-7", + className + )} > {children} @@ -117,3 +198,16 @@ const slugify = (text: string): string => .replace(/[^\w\s-]/g, "") .replace(/[\s_-]+/g, "-") .trim(); + +const extractBlockQuoteText = (node: ReactNode): string => { + if (typeof node === "string") { + return node; + } + if (Array.isArray(node)) { + return node.map(extractBlockQuoteText).join(""); + } + if (isValidElement(node)) { + return extractBlockQuoteText(node.props.children); + } + return ""; +}; diff --git a/src/components/on-this-page.tsx b/src/components/on-this-page.tsx index 5bd255f..c13f8c0 100644 --- a/src/components/on-this-page.tsx +++ b/src/components/on-this-page.tsx @@ -127,7 +127,7 @@ const OnThisPage = ({ page }: { page: DocsContentMetadata }): ReactElement => { {/* Footer */}
- +
diff --git a/src/components/theme-switcher.tsx b/src/components/theme-switcher.tsx index e32b9bf..03619c9 100644 --- a/src/components/theme-switcher.tsx +++ b/src/components/theme-switcher.tsx @@ -6,6 +6,8 @@ import { UseThemeProps } from "next-themes/dist/types"; import { Monitor, MoonStar, Sun } from "lucide-react"; import { cn } from "@/lib/utils"; import { Button } from "@/components/ui/button"; +import SimpleTooltip from "@/components/simple-tooltip"; +import { capitalizeWords } from "@/lib/string"; const themes = { dark: , @@ -31,18 +33,22 @@ const ThemeSwitcher = (): ReactElement => { {Object.entries(themes).map(([theme, icon]) => { const active: boolean = mounted && theme === activeTheme; return ( - + + ); })}