diff --git a/__old_docs/brands.mdx b/__old_docs/brands.mdx deleted file mode 100644 index 9adee009d..000000000 --- a/__old_docs/brands.mdx +++ /dev/null @@ -1,78 +0,0 @@ -# Brands - -We're creating a set of brand for VitNode. You can use them to promote VitNode. - -## Logo - -
-
test
-
test
-
- -## Icon - - - - - - - -## Avatar - -
-
test
-
test
-
- -## Cover - -
-
test
-
test
-
- -## Colors - -
-
-
Primary
-
#0362c3
-
3 98 195
-
210.31deg 96.97% 38.82%
-
-
-
Black
-
#0a0a0a
-
10 10 10
-
0deg 3.92% 96.08%
-
-
-
White
-
#fafafa
-
250 250 250
-
0deg 98.04% 1.96%
-
-
- -## 🛑 Misuse - -- Don't use the VitNode marks in a way that suggests any type of association or partnership with VitNode, or approval, sponsorship, or endorsement by VitNode _(unless you have to promote VitNode like "Created using VitNode")_, -- Don't modify the VitNode marks in any way, including by changing the design or color, -- Don't use any VitNode marks on or in connection with any defamatory, scandalous, pornographic, obscene or other objectionable materials diff --git a/__old_docs/public/favicon.ico b/__old_docs/public/favicon.ico deleted file mode 100644 index c4a6dd7e9..000000000 Binary files a/__old_docs/public/favicon.ico and /dev/null differ diff --git a/__old_docs/views/home/header/header.tsx b/__old_docs/views/home/header/header.tsx deleted file mode 100644 index 1d54e1a33..000000000 --- a/__old_docs/views/home/header/header.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { Check } from 'lucide-react'; -import Link from 'next/link'; - -import { cn } from '@/functions/classnames'; -import { BackgroundHome } from './background'; -import { buttonVariants } from '@/components/ui/button'; - -export const HeaderHome = () => { - return ( -
- -
- -
-
- - Free & Open-source -
- -

- Build Fast, Start{' '} - Fast -

- -

- Effortlessly manage content NextJS-NestJS-based CMS. Deploy - SEO-friendly sites, customize with ease, speed and efficiency. -

- -
- - Get Started - - - Star on GitHub - -
-
-
- ); -}; diff --git a/__old_docs/views/home/home-view.tsx b/__old_docs/views/home/home-view.tsx deleted file mode 100644 index da7dc5f12..000000000 --- a/__old_docs/views/home/home-view.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FeaturesHome } from './features/features'; -import { HeaderHome } from './header/header'; - -export const HomeView = () => { - return ( - <> - - {/* */} - - - {/* - - */} - - ); -}; diff --git a/__old_docs/views/home/sections/plugins/item.tsx b/__old_docs/views/home/sections/plugins/item.tsx deleted file mode 100644 index 6c1686a86..000000000 --- a/__old_docs/views/home/sections/plugins/item.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import Link from "next/link"; - -export interface ItemPluginsSectionHomeProps { - href: string; - icon: JSX.Element; - name: string; - soon?: boolean; -} - -export const ItemPluginsSectionHome = ({ - href, - icon, - name -}: ItemPluginsSectionHomeProps) => { - return ( -
  • - - {icon} - {name} - -
  • - ); -}; diff --git a/__old_docs/views/home/sections/plugins/plugins.tsx b/__old_docs/views/home/sections/plugins/plugins.tsx deleted file mode 100644 index 22f73ca73..000000000 --- a/__old_docs/views/home/sections/plugins/plugins.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { BookOpenText, MessagesSquare } from "lucide-react"; - -import { - ItemPluginsSectionHome, - type ItemPluginsSectionHomeProps -} from "./item"; - -const items: ItemPluginsSectionHomeProps[] = [ - { - name: "Blog", - href: "/blog", - icon: - }, - { - name: "Forum", - href: "/forum", - icon: - } -]; - -export const PluginsSectionHome = () => { - return ( -
    -
    -
      - {items.map(item => ( - - ))} -
    -
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/preview.tsx b/__old_docs/views/home/sections/preview.tsx deleted file mode 100644 index 823e4f802..000000000 --- a/__old_docs/views/home/sections/preview.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Card, CardContent } from "@/components/ui/card"; -import { - Carousel, - CarouselContent, - CarouselItem, - CarouselNext, - CarouselPrevious -} from "@/components/ui/carousel"; - -export const PreviewSectionHome = () => { - return ( -
    - - - {Array.from({ length: 5 }).map((_, index) => ( - -
    - - - {index + 1} - - -
    -
    - ))} -
    - - -
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/section.tsx b/__old_docs/views/home/sections/section.tsx deleted file mode 100644 index fcfb02937..000000000 --- a/__old_docs/views/home/sections/section.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { Check } from "lucide-react"; -import type { ReactNode } from "react"; - -import { Card, CardContent } from "@/components/ui/card"; -import { WrapperSection } from "./wrapper"; - -interface Props { - children: ReactNode; - description: string; - items: { id: number; text: ReactNode }[]; - title: string; - animateFromRight?: boolean; - footer?: ReactNode; -} - -export const SectionHome = ({ - animateFromRight, - children, - description, - footer, - items, - title -}: Props) => { - return ( - - -
    -
    -

    {title}

    -

    {description}

    -
    - -
      - {items.map(item => ( -
    • - - {item.text} -
    • - ))} -
    - {footer} -
    - - {children} -
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/tabs/authorization/authorization.tsx b/__old_docs/views/home/sections/tabs/authorization/authorization.tsx deleted file mode 100644 index 12ab25edd..000000000 --- a/__old_docs/views/home/sections/tabs/authorization/authorization.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { ImgAuthorizationSectionTabsHome } from "./img"; - -import { SectionHome } from "../../section"; - -export const AuthorizationSectionTabsHome = () => { - return ( - - Protected Pages &{" "} - GraphQL API - - ) - }, - { - id: 2, - text: ( - <> - Admin &{" "} - Moderator Control - Panel - - ) - }, - { - id: 3, - text: "Groups, Roles & Permissions" - }, - { - id: 4, - text: "Session save in Database" - } - ]} - > - - - ); -}; diff --git a/__old_docs/views/home/sections/tabs/authorization/img.tsx b/__old_docs/views/home/sections/tabs/authorization/img.tsx deleted file mode 100644 index dea8b195a..000000000 --- a/__old_docs/views/home/sections/tabs/authorization/img.tsx +++ /dev/null @@ -1,78 +0,0 @@ -"use client"; - -import { motion } from "framer-motion"; -import { Lock } from "lucide-react"; -import { useRef, useState } from "react"; - -const TARGET_TEXT = "Encrypt data"; -const CYCLES_PER_LETTER = 2; -const SHUFFLE_TIME = 50; - -const CHARS = "!@#$%^&*():{};|,.<>/?"; - -export const ImgAuthorizationSectionTabsHome = () => { - const intervalRef = useRef(null); - const [text, setText] = useState(TARGET_TEXT); - - const stopScramble = (): void => { - clearInterval(intervalRef.current || undefined); - - setText(TARGET_TEXT); - }; - - const scramble = (): void => { - let pos = 0; - - intervalRef.current = setInterval((): void => { - const scrambled = TARGET_TEXT.split("") - .map((char, index): string => { - if (pos / CYCLES_PER_LETTER > index) { - return char; - } - - const randomCharIndex = Math.floor(Math.random() * CHARS.length); - const randomChar = CHARS[randomCharIndex]; - - return randomChar; - }) - .join(""); - - setText(scrambled); - pos++; - - if (pos >= TARGET_TEXT.length * CYCLES_PER_LETTER) { - stopScramble(); - } - }, SHUFFLE_TIME); - }; - - return ( -
    - -
    - - {text} -
    - -
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/tabs/language/flags/poland.tsx b/__old_docs/views/home/sections/tabs/language/flags/poland.tsx deleted file mode 100644 index f6cde48cf..000000000 --- a/__old_docs/views/home/sections/tabs/language/flags/poland.tsx +++ /dev/null @@ -1,27 +0,0 @@ -export const PolandFlag = () => { - return ( - - - - - - - - - - - - ); -}; diff --git a/__old_docs/views/home/sections/tabs/language/flags/usa.tsx b/__old_docs/views/home/sections/tabs/language/flags/usa.tsx deleted file mode 100644 index 143d65cc9..000000000 --- a/__old_docs/views/home/sections/tabs/language/flags/usa.tsx +++ /dev/null @@ -1,44 +0,0 @@ -export const USAFlag = () => { - return ( - - - - - - - - - - - - - - - - - - - ); -}; diff --git a/__old_docs/views/home/sections/tabs/language/img.tsx b/__old_docs/views/home/sections/tabs/language/img.tsx deleted file mode 100644 index f12b7583c..000000000 --- a/__old_docs/views/home/sections/tabs/language/img.tsx +++ /dev/null @@ -1,101 +0,0 @@ -"use client"; - -import { Globe } from "lucide-react"; -import type { CSSProperties } from "react"; -import { motion } from "framer-motion"; - -import { PolandFlag } from "./flags/poland"; -import { USAFlag } from "./flags/usa"; - -export const ImgLanguageSectionTabsHome = () => { - return ( -
    - {/* Arrows */} -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - Full steam ahead! -
    - - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - - -
    -
    -
    -
    -
    - -
    - Cała naprzód! -
    - -
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/tabs/language/language.tsx b/__old_docs/views/home/sections/tabs/language/language.tsx deleted file mode 100644 index ba175d6d0..000000000 --- a/__old_docs/views/home/sections/tabs/language/language.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import Link from "next/link"; - -import { ImgLanguageSectionTabsHome } from "./img"; - -import { SectionHome } from "../../section"; - -export const LanguageSectionTabsHome = () => { - return ( - <> - - Easy Import and{" "} - Export Language - Pack - - ) - }, - { - id: 2, - text: "Auto Language Detection" - }, - { - id: 3, - text: "Internationalized Routing" - }, - { - id: 4, - text: ( - <> - Text Input &{" "} - WYSIWYG Editor{" "} - with Translations - - ) - } - ]} - footer={ - - Powered by next-intl - - } - > - - - - ); -}; diff --git a/__old_docs/views/home/sections/tabs/plugins/plugins.tsx b/__old_docs/views/home/sections/tabs/plugins/plugins.tsx deleted file mode 100644 index b81bd967b..000000000 --- a/__old_docs/views/home/sections/tabs/plugins/plugins.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { SectionHome } from "../../section"; - -export const PluginsSectionTabsHome = () => { - return ( - - Easy Import and{" "} - Export Plugin Pack - - ) - }, - { - id: 2, - text: ( - <> - Auto Migrations & Auto Schema database with{" "} - Drizzle - - ) - }, - { - id: 3, - text: "Version Control System" - } - ]} - footer={<>Time saved: ∞ hours} - > -
    test
    -
    - ); -}; diff --git a/__old_docs/views/home/sections/tabs/tabs.tsx b/__old_docs/views/home/sections/tabs/tabs.tsx deleted file mode 100644 index 2028b765b..000000000 --- a/__old_docs/views/home/sections/tabs/tabs.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { AuthorizationSectionTabsHome } from "./authorization/authorization"; -import { LanguageSectionTabsHome } from "./language/language"; -import { PluginsSectionTabsHome } from "./plugins/plugins"; -import { ThemesSectionTabsHome } from "./themes/themes"; - -export const TabsSectionHome = () => { - return ( - <> -
    -
    - - - - -
    -
    - -
    -
    -
      -
    • -
      SEO
      -
        -
      • - - Generate a sitemap automatically - to help Google find and - index your website pages quicker -
      • -
      • - User-friendly UI elements for SEO
      • -
      • - - Language-Specific URLs - Allows for URLs that are optimized - for each language (e.g., /en/about-us, /fr/a-propos). -
      • -
      -
    • - -
    • -
      Speed
      -
        -
      • - - Built-in Optimizations for Images, Fonts, Script and more -
      • -
      • - Server-side Streaming UI
      • -
      • - Server Data Fetching
      • -
      -
    • - -
    • -
      Themes
      -
        -
      • - Theme Switcher
      • -
      • - - Dark mode included with auto detection based on users system -
      • -
      • - - Tailwind CSS, Radix UI, Shadcn UI makes you easy to style -
      • -
      -
    • -
    -
    -
    - - ); -}; diff --git a/__old_docs/views/home/sections/tabs/themes/img.tsx b/__old_docs/views/home/sections/tabs/themes/img.tsx deleted file mode 100644 index 28aa66fe0..000000000 --- a/__old_docs/views/home/sections/tabs/themes/img.tsx +++ /dev/null @@ -1,25 +0,0 @@ -"use client"; - -import { motion } from "framer-motion"; - -export const ImgThemesSectionTabsHome = () => { - return ( -
    - -
    - ); -}; diff --git a/__old_docs/views/home/sections/tabs/themes/themes.tsx b/__old_docs/views/home/sections/tabs/themes/themes.tsx deleted file mode 100644 index 709900272..000000000 --- a/__old_docs/views/home/sections/tabs/themes/themes.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { ImgThemesSectionTabsHome } from "./img"; - -import { SectionHome } from "../../section"; - -export const ThemesSectionTabsHome = () => { - return ( - - Designer Mode - - ) - }, - { - id: 2, - text: <>Tailwind CSS, Radix UI, Shadcn UI - }, - { - id: 3, - text: "Version Control System" - }, - { - id: 4, - text: ( - <> - Theme Switcher - - ) - } - ]} - footer={<>Time saved: ∞ hours} - > - - - ); -}; diff --git a/__old_docs/views/home/sections/wrapper.tsx b/__old_docs/views/home/sections/wrapper.tsx deleted file mode 100644 index 165b9dec2..000000000 --- a/__old_docs/views/home/sections/wrapper.tsx +++ /dev/null @@ -1,33 +0,0 @@ -"use client"; - -import { useInView } from "framer-motion"; -import { useRef, type ReactNode } from "react"; - -import { Card } from "@/components/ui/card"; - -interface Props { - children: ReactNode; - animateFromRight?: boolean; -} - -export const WrapperSection = ({ animateFromRight, children }: Props) => { - const ref = useRef(null); - const isInView = useInView(ref, { - once: true - }); - - return ( - - {children} - - ); -}; diff --git a/apps/backend/schema.gql b/apps/backend/schema.gql index ccdeb3682..a44937d14 100644 --- a/apps/backend/schema.gql +++ b/apps/backend/schema.gql @@ -10,7 +10,6 @@ enum AllowTypeFilesEnum { } type AuthorizationAdminSessionsObj { - nav: [NavAdminPluginsAuthorization!]! user: AuthorizationCurrentUserObj version: String! } @@ -206,9 +205,9 @@ type Mutation { admin__core_plugins__download(code: String!, version: String, version_code: Int): String! admin__core_plugins__edit(author: String!, author_url: String, code: String!, default: Boolean, description: String, enabled: Boolean, name: String!, support_url: String!): ShowAdminPlugins! admin__core_plugins__nav__change_position(code: String!, index_to_move: Int!, parent_code: String, plugin_code: String!): String! - admin__core_plugins__nav__create(code: String!, href: String!, icon: String, parent_code: String, plugin_code: String!): ShowAdminNavPluginsObj! + admin__core_plugins__nav__create(code: String!, href: String!, icon: String, keywords: [String!]!, parent_code: String, plugin_code: String!): ShowAdminNavPluginsObj! admin__core_plugins__nav__delete(code: String!, parent_code: String, plugin_code: String!): String! - admin__core_plugins__nav__edit(code: String!, href: String!, icon: String, parent_code: String, plugin_code: String!, previous_code: String!): ShowAdminNavPluginsObj! + admin__core_plugins__nav__edit(code: String!, href: String!, icon: String, keywords: [String!]!, parent_code: String, plugin_code: String!, previous_code: String!): ShowAdminNavPluginsObj! admin__core_plugins__upload(code: String, file: Upload!): ShowAdminPlugins! admin__core_security__captcha__edit(secret_key: String!, site_key: String!, type: CaptchaTypeEnum!): ShowAdminCaptchaSecurityObj! admin__core_staff_administrators__create(group_id: Int, unrestricted: Boolean!, user_id: Int): ShowAdminStaffAdministrators! @@ -234,9 +233,13 @@ type Mutation { core_sessions__sign_up(email: String!, name: String!, newsletter: Boolean, password: String!): SignUpCoreSessionsObj! } -type NavAdminPluginsAuthorization { +type NavSearchAdminSessions { code: String! - nav: [ShowAdminNavPluginsObj!]! + code_plugin: String! + href: String! + icon: String + keywords: [String!]! + parent_nav_code: String } type PageInfo { @@ -262,7 +265,9 @@ type Query { admin__core_staff_administrators__show(cursor: Int, first: Int, last: Int, sortBy: ShowAdminStaffAdministratorsSortByArgs): ShowAdminStaffAdministratorsObj! admin__core_staff_moderators__show(cursor: Int, first: Int, last: Int, sortBy: ShowAdminStaffModeratorsSortByArgs): ShowAdminStaffModeratorsObj! admin__install__layout: LayoutAdminInstallObj! + admin__nav__show: [ShowAdminNavObj!]! admin__sessions__authorization: AuthorizationAdminSessionsObj! + admin__sessions__search(search: String!): SearchAdminSessionsObj! core_files__show(cursor: Int, first: Int, last: Int, search: String, sortBy: ShowCoreFilesSortByArgs): ShowCoreFilesObj! core_languages__show(cursor: Int, first: Int, last: Int, search: String, sortBy: ShowCoreLanguagesSortByArgs): ShowCoreLanguagesObj! core_members__show(cursor: Int, first: Int, last: Int, name_seo: String, search: String, sortBy: ShowCoreMembersSortByArgs): ShowCoreMembersObj! @@ -280,6 +285,10 @@ type RebuildRequiredEditorShowCoreMiddleware { plugins: Boolean! } +type SearchAdminSessionsObj { + nav: [NavSearchAdminSessions!]! +} + type SecurityCoreMiddleware { captcha: CaptchaSecurityCoreMiddleware! } @@ -391,10 +400,16 @@ enum ShowAdminMembersSortingColumnEnum { reactions } +type ShowAdminNavObj { + code: String! + nav: [ShowAdminNavPluginsObj!]! +} + type ShowAdminNavPlugins { code: String! href: String! icon: String + keywords: [String!]! } type ShowAdminNavPluginsObj { @@ -402,6 +417,7 @@ type ShowAdminNavPluginsObj { code: String! href: String! icon: String + keywords: [String!]! } type ShowAdminPlugins { diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index fa093f695..5fafd0e43 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -1,16 +1,65 @@ -import Link from 'next/link'; +import { BackgroundNet } from '@/components/background-net'; +import { buttonVariants } from '@/components/ui/button'; +import { cn } from '@/utils/classnames'; +import { FeaturesHome } from '@/views/home/features'; +import Link from 'fumadocs-core/link'; +import { Check } from 'lucide-react'; -export default function HomePage() { +export default function Page() { return ( -
    -

    Hello World

    -

    - You can open{' '} - - /docs - {' '} - and see the documentation. -

    -
    + <> +
    + +
    + +
    +
    + + Free & Open-source +
    + +

    + Making Apps with{' '} + Power +

    + +

    + Deploy SEO-friendly sites effortlessly, customize with ease, and + enjoy security, speed, and efficiency. +

    + +
    + + Get Started + + + Star on GitHub + +
    +
    +
    + + + ); } diff --git a/apps/docs/assets/image.png b/apps/docs/assets/image.png new file mode 100644 index 000000000..aa47ecf8b Binary files /dev/null and b/apps/docs/assets/image.png differ diff --git a/__old_docs/views/home/header/background.tsx b/apps/docs/components/background-net.tsx similarity index 99% rename from __old_docs/views/home/header/background.tsx rename to apps/docs/components/background-net.tsx index 9256f9eba..d66f03461 100644 --- a/__old_docs/views/home/header/background.tsx +++ b/apps/docs/components/background-net.tsx @@ -1,8 +1,4 @@ -interface Props { - className?: string; -} - -export const BackgroundHome = ({ className }: Props) => { +export const BackgroundNet = ({ className }: { className?: string }) => { return ( { {
      {list.map(item => (
    • - {item.text} + {item.text}
    • ))}
    diff --git a/__old_docs/views/home/features/icon.tsx b/apps/docs/components/features/icon.tsx similarity index 100% rename from __old_docs/views/home/features/icon.tsx rename to apps/docs/components/features/icon.tsx diff --git a/__old_docs/views/home/features/section.tsx b/apps/docs/components/features/section.tsx similarity index 54% rename from __old_docs/views/home/features/section.tsx rename to apps/docs/components/features/section.tsx index 7ceeb62ea..229ef3798 100644 --- a/__old_docs/views/home/features/section.tsx +++ b/apps/docs/components/features/section.tsx @@ -1,13 +1,13 @@ -import Image, { type StaticImageData } from "next/image"; -import { IconFeatures } from "./icon"; -import { ChecklistFeatures, type ChecklistFeaturesProps } from "./checklist"; -import { cn } from "@/functions/classnames"; +import Image, { type StaticImageData } from 'next/image'; +import { IconFeatures } from './icon'; +import { ChecklistFeatures, type ChecklistFeaturesProps } from './checklist'; +import { cn } from '@/utils/classnames'; interface Props { icon: React.ReactNode; title: string; desc: string; - checklist: ChecklistFeaturesProps["list"]; + checklist: ChecklistFeaturesProps['list']; children?: React.ReactNode; img: StaticImageData; reverse?: boolean; @@ -20,23 +20,23 @@ export const SectionFeatures = ({ checklist, children, img, - reverse + reverse, }: Props) => { return ( -
    +
    test -
    +
    {icon}

    {title}

    -

    +

    {desc}

    diff --git a/apps/docs/components/ui/button.tsx b/apps/docs/components/ui/button.tsx new file mode 100644 index 000000000..375ae51e7 --- /dev/null +++ b/apps/docs/components/ui/button.tsx @@ -0,0 +1,55 @@ +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import { cn } from '@/utils/classnames'; + +const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: + 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : 'button'; + return ( + + ); + }, +); +Button.displayName = 'Button'; + +export { Button, buttonVariants }; diff --git a/apps/docs/content/docs/ui/accordion.mdx b/apps/docs/content/docs/ui/accordion.mdx new file mode 100644 index 000000000..6709dcd63 --- /dev/null +++ b/apps/docs/content/docs/ui/accordion.mdx @@ -0,0 +1,37 @@ +--- +title: Accordion +description: A vertically stacked set of interactive headings, each revealing a section of content. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/accordion). + + +## Usage + +```tsx +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from 'vitnode-frontend/components/ui/accordion'; +``` + +```tsx + + + Is it accessible? + + Yes. It adheres to the WAI-ARIA design pattern. + + + +``` + +## API Reference + +[Radix UI Accordion](https://www.radix-ui.com/primitives/docs/components/accordion#api-reference). diff --git a/apps/docs/content/docs/ui/alert.mdx b/apps/docs/content/docs/ui/alert.mdx new file mode 100644 index 000000000..b01b504a7 --- /dev/null +++ b/apps/docs/content/docs/ui/alert.mdx @@ -0,0 +1,44 @@ +--- +title: Alert +description: Provides a callout to capture user attention. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/alert). + + +## Usage + +```tsx +import { + Alert, + AlertDescription, + AlertTitle, +} from 'vitnode-frontend/components/ui/alert'; +``` + +```tsx + + + Heads up! + + You can add components and dependencies to your app using the cli. + + +``` + +## API Reference + +import { TypeTable } from 'fumadocs-ui/components/type-table'; + + diff --git a/apps/docs/content/docs/ui/avatar.mdx b/apps/docs/content/docs/ui/avatar.mdx new file mode 100644 index 000000000..42d214e4b --- /dev/null +++ b/apps/docs/content/docs/ui/avatar.mdx @@ -0,0 +1,4 @@ +--- +title: Avatar +description: Image element with a fallback icon. +--- diff --git a/apps/docs/content/docs/ui/badge.mdx b/apps/docs/content/docs/ui/badge.mdx new file mode 100644 index 000000000..7a55631d3 --- /dev/null +++ b/apps/docs/content/docs/ui/badge.mdx @@ -0,0 +1,45 @@ +--- +title: Badge +description: Showcases a badge or an element designed to resemble a badge. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/badge). + + +## Usage + +```tsx +import { Badge } from 'vitnode-frontend/components/ui/badge'; +``` + +```tsx +Badge +``` + +### Link + +```tsx +import { Link } from 'vitnode-frontend/navigation'; +import { badgeVariants } from 'vitnode-frontend/components/ui/badge'; +``` + +```tsx +Badge +``` + +## API Reference + +import { TypeTable } from 'fumadocs-ui/components/type-table'; + + diff --git a/apps/docs/content/docs/ui/button.mdx b/apps/docs/content/docs/ui/button.mdx new file mode 100644 index 000000000..4f6b54481 --- /dev/null +++ b/apps/docs/content/docs/ui/button.mdx @@ -0,0 +1,61 @@ +--- +title: Button +description: Renders a button or an element designed to resemble a button. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/button) with extra `modification`. + + +## Usage + +```tsx +import { Button } from 'vitnode-frontend/components/ui/button'; +``` + +```tsx + +``` + +### Link + +```tsx +import { Link } from 'vitnode-frontend/navigation'; +import { buttonVariants } from 'vitnode-frontend/components/ui/button'; +``` + +```tsx +Click here +``` + +## API Reference + +import { TypeTable } from 'fumadocs-ui/components/type-table'; + + diff --git a/apps/docs/content/docs/ui/card.mdx b/apps/docs/content/docs/ui/card.mdx new file mode 100644 index 000000000..b7f71451b --- /dev/null +++ b/apps/docs/content/docs/ui/card.mdx @@ -0,0 +1,39 @@ +--- +title: Card +description: Renders a card with a header, content, and footer. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/card). + + +## Usage + +```tsx +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from 'vitnode-frontend/components/ui/card'; +``` + +```tsx + + + Card Title + Card Description + + +

    Card Content

    +
    + +

    Card Footer

    +
    +
    +``` diff --git a/apps/docs/content/docs/ui/carousel.mdx b/apps/docs/content/docs/ui/carousel.mdx new file mode 100644 index 000000000..26ff9f0ec --- /dev/null +++ b/apps/docs/content/docs/ui/carousel.mdx @@ -0,0 +1,45 @@ +--- +title: Carousel +description: A motion and swipe-enabled carousel built using Embla. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/carousel) & [Embla + Carousel](https://www.embla-carousel.com/) liblary. + + +## Usage + +```tsx +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from 'vitnode-frontend/components/ui/card'; +``` + +```tsx + + + ... + ... + ... + + + + +``` + +## Examples + +[Shadcn UI Carousel - Examples](https://ui.shadcn.com/docs/components/carousel#examples). + +## API Reference + +[Embla Carousel API](https://www.embla-carousel.com/api/). diff --git a/apps/docs/content/docs/ui/checkbox.mdx b/apps/docs/content/docs/ui/checkbox.mdx new file mode 100644 index 000000000..fbb346958 --- /dev/null +++ b/apps/docs/content/docs/ui/checkbox.mdx @@ -0,0 +1,25 @@ +--- +title: Checkbox +description: A control enabling the user to toggle between checked and unchecked states. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/checkbox). + + +## Usage + +```tsx +import { Checkbox } from 'vitnode-frontend/components/ui/checkbox'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Checkbox](https://www.radix-ui.com/primitives/docs/components/checkbox#api-reference). diff --git a/apps/docs/content/docs/ui/combobox.mdx b/apps/docs/content/docs/ui/combobox.mdx new file mode 100644 index 000000000..944cf502d --- /dev/null +++ b/apps/docs/content/docs/ui/combobox.mdx @@ -0,0 +1,114 @@ +--- +title: Combobox +description: An autocomplete input and command palette featuring a list of suggestions. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/combobox). + + +## Usage + +```tsx +"use client" + +import * as React from "react" +import { Check, ChevronsUpDown } from "lucide-react" + +import { cn } from "vitnode-frontend/helpers" +import { Button } from "vitnode-frontend/components/ui/button" +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from "vitnode-frontend/components/ui/command" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "vitnode-frontend/components/ui/popover" + +const frameworks = [ + { + value: "next.js", + label: "Next.js", + }, + { + value: "sveltekit", + label: "SvelteKit", + }, + { + value: "nuxt.js", + label: "Nuxt.js", + }, + { + value: "remix", + label: "Remix", + }, + { + value: "astro", + label: "Astro", + }, +] + +export function ComboboxDemo() { + const [open, setOpen] = React.useState(false) + const [value, setValue] = React.useState("") + + return ( + + + + + + + + No framework found. + + + {frameworks.map((framework) => ( + { + setValue(currentValue === value ? "" : currentValue) + setOpen(false) + }} + > + + {framework.label} + + ))} + + + + + + ) +} +``` + +## Examples + +[Shadcn UI Combobox - Examples](https://ui.shadcn.com/docs/components/combobox#examples). diff --git a/apps/docs/content/docs/ui/command.mdx b/apps/docs/content/docs/ui/command.mdx new file mode 100644 index 000000000..5af2e38c7 --- /dev/null +++ b/apps/docs/content/docs/ui/command.mdx @@ -0,0 +1,52 @@ +--- +title: Command +description: Fast, composable, unstyled command menu for React. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/command) & + [cmdk](https://cmdk.paco.me/) liblary. + + +## Usage + +```tsx +import { + Command, + CommandDialog, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, + CommandShortcut, +} from '@/components/ui/command'; +``` + +```tsx + + + + No results found. + + Calendar + Search Emoji + Calculator + + + + Profile + Billing + Settings + + + +``` + +## API Reference + +[Cmdk GitHub](https://github.com/pacocoursey/cmdk). diff --git a/apps/docs/content/docs/ui/data-table.mdx b/apps/docs/content/docs/ui/data-table.mdx new file mode 100644 index 000000000..fb71ed0de --- /dev/null +++ b/apps/docs/content/docs/ui/data-table.mdx @@ -0,0 +1,14 @@ +--- +title: Data Table +description: Powerful table and datagrids built using TanStack Table. +--- + +## Usage + +```tsx + +``` + +## Documentation + +[Tanstack Table Documentation](https://tanstack.com/table/v8/docs/introduction). diff --git a/apps/docs/content/docs/ui/dialog.mdx b/apps/docs/content/docs/ui/dialog.mdx new file mode 100644 index 000000000..15ce804e4 --- /dev/null +++ b/apps/docs/content/docs/ui/dialog.mdx @@ -0,0 +1,4 @@ +--- +title: Dialog +description: An overlay window that disables interaction with the underlying content, either over the primary window or another dialog. +--- diff --git a/apps/docs/content/docs/ui/drawer.mdx b/apps/docs/content/docs/ui/drawer.mdx new file mode 100644 index 000000000..5b71d0e20 --- /dev/null +++ b/apps/docs/content/docs/ui/drawer.mdx @@ -0,0 +1,49 @@ +--- +title: Drawer +description: A drawer component for React. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/drawer) & + [vaul](https://github.com/emilkowalski/vaul) liblary. + + +## Usage + +```tsx +import { + Drawer, + DrawerClose, + DrawerContent, + DrawerDescription, + DrawerFooter, + DrawerHeader, + DrawerTitle, + DrawerTrigger, +} from 'vitnode-frontend/components/ui/drawer'; +``` + +```tsx + + Open + + + Are you absolutely sure? + This action cannot be undone. + + + + + + + + + +``` + +## API Reference + +[Vaul GitHub](https://github.com/emilkowalski/vaul). diff --git a/apps/docs/content/docs/ui/dropdown-menu.mdx b/apps/docs/content/docs/ui/dropdown-menu.mdx new file mode 100644 index 000000000..aacf2a8e8 --- /dev/null +++ b/apps/docs/content/docs/ui/dropdown-menu.mdx @@ -0,0 +1,46 @@ +--- +title: Dropdown Menu +description: Shows a list of options or actions to the user when they click a button, allowing for easy selection. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/dropdown-menu). + + +## Usage + +```tsx +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from 'vitnode-frontend/components/ui/dropdown-menu'; +``` + +```tsx + + Open + + My Account + + Profile + Billing + Team + Subscription + + +``` + +## Examples + +[Shadcn UI Dropdown Menu - Examples](https://ui.shadcn.com/docs/components/dropdown-menu#examples). + +## API Reference + +[Radix UI Dropdown Menu](https://www.radix-ui.com/primitives/docs/components/dropdown-menu#api-reference). diff --git a/apps/docs/content/docs/ui/hover-card.mdx b/apps/docs/content/docs/ui/hover-card.mdx new file mode 100644 index 000000000..b7cc73a79 --- /dev/null +++ b/apps/docs/content/docs/ui/hover-card.mdx @@ -0,0 +1,34 @@ +--- +title: Hover Card +description: Allows users to preview additional content or information that is available behind a link when they hover over it. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/hover-card). + + +## Usage + +```tsx +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from 'vitnode-frontend/components/ui/hover-card'; +``` + +```tsx + + Hover + + The React Framework – created and maintained by @vercel. + + +``` + +## API Reference + +[Radix UI HoverCard](https://www.radix-ui.com/primitives/docs/components/hover-card#api-reference). diff --git a/apps/docs/content/docs/ui/input.mdx b/apps/docs/content/docs/ui/input.mdx new file mode 100644 index 000000000..9441b3067 --- /dev/null +++ b/apps/docs/content/docs/ui/input.mdx @@ -0,0 +1,25 @@ +--- +title: Input +description: Renders a form input field or a component designed to accept user text or data. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/input). + + +## Usage + +```tsx +import { Input } from 'vitnode-frontend/components/ui/input'; +``` + +```tsx + +``` + +## Examples + +[Shadcn UI Input - Examples](https://ui.shadcn.com/docs/components/input#examples). diff --git a/apps/docs/content/docs/ui/label.mdx b/apps/docs/content/docs/ui/label.mdx new file mode 100644 index 000000000..80185c819 --- /dev/null +++ b/apps/docs/content/docs/ui/label.mdx @@ -0,0 +1,25 @@ +--- +title: Label +description: Displays an accessible label that is linked to form controls or user interface elements. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/label). + + +## Usage + +```tsx +import { Label } from 'vitnode-frontend/components/ui/label'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Label](https://www.radix-ui.com/primitives/docs/components/label#api-reference). diff --git a/apps/docs/content/docs/ui/popover.mdx b/apps/docs/content/docs/ui/popover.mdx new file mode 100644 index 000000000..11c9533b9 --- /dev/null +++ b/apps/docs/content/docs/ui/popover.mdx @@ -0,0 +1,32 @@ +--- +title: Popover +description: Shows detailed content in an overlay or portal, activated by clicking a button. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/popover). + + +## Usage + +```tsx +import { + Popover, + PopoverContent, + PopoverTrigger, +} from 'vitnode-frontend/components/ui/popover'; +``` + +```tsx + + Open + Place content for the popover here. + +``` + +## API Reference + +[Radix UI Popover](https://www.radix-ui.com/primitives/docs/components/popover#api-reference). diff --git a/apps/docs/content/docs/ui/progress.mdx b/apps/docs/content/docs/ui/progress.mdx new file mode 100644 index 000000000..1f9cdae39 --- /dev/null +++ b/apps/docs/content/docs/ui/progress.mdx @@ -0,0 +1,25 @@ +--- +title: Progress +description: Shows an indicator of how much of a task has been completed, commonly visualized as a progress bar. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/progress). + + +## Usage + +```tsx +import { Progress } from 'vitnode-frontend/components/ui/progress'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Progress](https://www.radix-ui.com/primitives/docs/components/progress#api-reference). diff --git a/apps/docs/content/docs/ui/radio-group.mdx b/apps/docs/content/docs/ui/radio-group.mdx new file mode 100644 index 000000000..b1dc772f6 --- /dev/null +++ b/apps/docs/content/docs/ui/radio-group.mdx @@ -0,0 +1,38 @@ +--- +title: Radio Group +description: A collection of radio buttons where only one option can be selected at a time, ensuring mutual exclusivity. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/radio-group). + + +## Usage + +```tsx +import { Label } from 'vitnode-frontend/components/ui/label'; +import { + RadioGroup, + RadioGroupItem, +} from 'vitnode-frontend/components/ui/radio-group'; +``` + +```tsx + +
    + + +
    +
    + + +
    +
    +``` + +## API Reference + +[Radix UI Radio Group](https://www.radix-ui.com/primitives/docs/components/radio-group#api-reference). diff --git a/apps/docs/content/docs/ui/scroll-area.mdx b/apps/docs/content/docs/ui/scroll-area.mdx new file mode 100644 index 000000000..dc0aece1b --- /dev/null +++ b/apps/docs/content/docs/ui/scroll-area.mdx @@ -0,0 +1,36 @@ +--- +title: Scroll-area +description: Enhances native scrolling with custom styling for a consistent appearance across different browsers. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/scroll-area). + + +## Usage + +```tsx +import { ScrollArea } from 'vitnode-frontend/components/ui/scroll-area'; +``` + +```tsx + + Jokester began sneaking into the castle in the middle of the night and leaving + jokes all over the place: under the king's pillow, in his soup, even in the + royal toilet. The king was furious, but he couldn't seem to stop Jokester. And + then, one day, the people of the kingdom discovered that the jokes left by + Jokester were so funny that they couldn't help but laugh. And once they + started laughing, they couldn't stop. + +``` + +## Examples + +[Shadcn UI Scroll Area - Examples](https://ui.shadcn.com/docs/components/scroll-area#examples). + +## API Reference + +[Radix UI Scroll Area](https://www.radix-ui.com/primitives/docs/components/scroll-area#api-reference). diff --git a/apps/docs/content/docs/ui/select.mdx b/apps/docs/content/docs/ui/select.mdx new file mode 100644 index 000000000..de70b5a3a --- /dev/null +++ b/apps/docs/content/docs/ui/select.mdx @@ -0,0 +1,44 @@ +--- +title: Select +description: Presents a dropdown list of options for the user to choose from, activated by clicking a button. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/select). + + +## Usage + +```tsx +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from 'vitnode-frontend/components/ui/select'; +``` + +```tsx + +``` + +## Examples + +[Shadcn UI Select - Examples](https://ui.shadcn.com/docs/components/select#examples) + +## API Reference + +[Radix UI Select](https://www.radix-ui.com/primitives/docs/components/select#api-reference) diff --git a/apps/docs/content/docs/ui/separator.mdx b/apps/docs/content/docs/ui/separator.mdx new file mode 100644 index 000000000..2032db55f --- /dev/null +++ b/apps/docs/content/docs/ui/separator.mdx @@ -0,0 +1,25 @@ +--- +title: Separator +description: Creates a visual or semantic division between different sections of content. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/separator). + + +## Usage + +```tsx +import { Separator } from 'vitnode-frontend/components/ui/separator'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Separator](https://www.radix-ui.com/primitives/docs/components/separator#api-reference). diff --git a/apps/docs/content/docs/ui/sheet.mdx b/apps/docs/content/docs/ui/sheet.mdx new file mode 100644 index 000000000..0de40e039 --- /dev/null +++ b/apps/docs/content/docs/ui/sheet.mdx @@ -0,0 +1,47 @@ +--- +title: Sheet +description: Builds upon the Dialog component to show supplementary content that enhances the main screen's information. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/sheet). + + +## Usage + +```tsx +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, + SheetTrigger, +} from 'vitnode-frontend/components/ui/sheet'; +``` + +```tsx + + Open + + + Are you absolutely sure? + + This action cannot be undone. This will permanently delete your account + and remove your data from our servers. + + + + +``` + +## Examples + +[Shadcn UI Sheet - Examples](https://ui.shadcn.com/docs/components/sheet#examples). + +## API Reference + +[Radix UI Dialog](https://www.radix-ui.com/primitives/docs/components/dialog#api-reference). diff --git a/apps/docs/content/docs/ui/skeleton.mdx b/apps/docs/content/docs/ui/skeleton.mdx new file mode 100644 index 000000000..af8c7c898 --- /dev/null +++ b/apps/docs/content/docs/ui/skeleton.mdx @@ -0,0 +1,21 @@ +--- +title: Skeleton +description: Provides a placeholder to indicate where content will appear while it is still loading. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/skeleton). + + +## Usage + +```tsx +import { Skeleton } from 'vitnode-frontend/components/ui/skeleton'; +``` + +```tsx + +``` diff --git a/apps/docs/content/docs/ui/slider.mdx b/apps/docs/content/docs/ui/slider.mdx new file mode 100644 index 000000000..b4ddd3292 --- /dev/null +++ b/apps/docs/content/docs/ui/slider.mdx @@ -0,0 +1,25 @@ +--- +title: Slider +description: An input where the user selects a value from within a given range. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/slider). + + +## Usage + +```tsx +import { Slider } from 'vitnode-frontend/components/ui/slider'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Slider](https://www.radix-ui.com/primitives/docs/components/slider#api-reference). diff --git a/apps/docs/content/docs/ui/sonner.mdx b/apps/docs/content/docs/ui/sonner.mdx new file mode 100644 index 000000000..84d21cf20 --- /dev/null +++ b/apps/docs/content/docs/ui/sonner.mdx @@ -0,0 +1,42 @@ +--- +title: Sonner +description: An opinionated toast component for React. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/sonner) & + [sonner](https://github.com/emilkowalski/sonner). + + +## Installation + +import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; + + + +```bash tab="pnpm" +pnpm i sonner +``` + +```bash tab="npm" +npm i sonner +``` + + + +## Usage + +```tsx +import { toast } from 'sonner'; +``` + +```tsx +toast('Event has been created.'); +``` + +## API Reference + +[Sonner GitHub](https://github.com/emilkowalski/sonner). diff --git a/apps/docs/content/docs/ui/switch.mdx b/apps/docs/content/docs/ui/switch.mdx new file mode 100644 index 000000000..5ac28c3af --- /dev/null +++ b/apps/docs/content/docs/ui/switch.mdx @@ -0,0 +1,25 @@ +--- +title: Switch +description: A control that enables the user to toggle between two states, such as on and off. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/switch). + + +## Usage + +```tsx +import { Switch } from 'vitnode-frontend/components/ui/switch'; +``` + +```tsx + +``` + +## API Reference + +[Radix UI Switch](https://www.radix-ui.com/primitives/docs/components/switch#api-reference). diff --git a/apps/docs/content/docs/ui/table.mdx b/apps/docs/content/docs/ui/table.mdx new file mode 100644 index 000000000..3aae57f93 --- /dev/null +++ b/apps/docs/content/docs/ui/table.mdx @@ -0,0 +1,47 @@ +--- +title: Table +description: A responsive table component. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/table). + + +## Usage + +```tsx +import { + Table, + TableBody, + TableCaption, + TableCell, + TableHead, + TableHeader, + TableRow, +} from 'vitnode-frontend/components/ui/table'; +``` + +```tsx + + A list of your recent invoices. + + + Invoice + Status + Method + Amount + + + + + INV001 + Paid + Credit Card + $250.00 + + +
    +``` diff --git a/apps/docs/content/docs/ui/tabs.mdx b/apps/docs/content/docs/ui/tabs.mdx new file mode 100644 index 000000000..fbbd9ea16 --- /dev/null +++ b/apps/docs/content/docs/ui/tabs.mdx @@ -0,0 +1,4 @@ +--- +title: Tabs +description: A collection of content sections, or tab panels, where only one section is visible at a time, allowing users to switch between them. +--- diff --git a/apps/docs/content/docs/ui/tag-input.mdx b/apps/docs/content/docs/ui/tags-input.mdx similarity index 56% rename from apps/docs/content/docs/ui/tag-input.mdx rename to apps/docs/content/docs/ui/tags-input.mdx index 85d012935..83c5d33c9 100644 --- a/apps/docs/content/docs/ui/tag-input.mdx +++ b/apps/docs/content/docs/ui/tags-input.mdx @@ -7,14 +7,6 @@ description: Tag Input is a component that allows users to input tags. Image -## Props - -| Name | Type | Default | Description | -| ----------- | --------- | ------- | -------------------- | -| placeholder | `string` | | Placeholder text. | -| multiple | `boolean` | false | Allow multiple tags. | -| disabled | `boolean` | false | Disable input. | - ## Usage ```tsx @@ -24,7 +16,7 @@ const formSchema = z.object({ ``` ```tsx -import { TagInput } from 'vitnode-frontend/components/ui/tag-input'; +import { TagsInput } from 'vitnode-frontend/components/ui/tags-input'; ``` ```tsx @@ -35,7 +27,7 @@ import { TagInput } from 'vitnode-frontend/components/ui/tag-input'; Tag Input Test - // [!code highlight] + // [!code highlight] @@ -52,7 +44,7 @@ const formSchema = z.object({ ``` ```tsx -import { TagInput } from 'vitnode-frontend/components/ui/tag-input'; +import { TagsInput } from 'vitnode-frontend/components/ui/tags-input'; ``` ```tsx @@ -63,7 +55,7 @@ import { TagInput } from 'vitnode-frontend/components/ui/tag-input'; Tag Input Test - // [!code highlight] + // [!code highlight] @@ -71,4 +63,26 @@ import { TagInput } from 'vitnode-frontend/components/ui/tag-input'; /> ``` -import { placeholder } from 'drizzle-orm'; +## API Reference + +import { TypeTable } from 'fumadocs-ui/components/type-table'; + + diff --git a/apps/docs/content/docs/ui/textarea.mdx b/apps/docs/content/docs/ui/textarea.mdx new file mode 100644 index 000000000..820529aa3 --- /dev/null +++ b/apps/docs/content/docs/ui/textarea.mdx @@ -0,0 +1,25 @@ +--- +title: Textarea +description: Renders a form textarea or a component designed to accept multi-line text input. +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + This component is part of [Shadcn + UI](https://ui.shadcn.com/docs/components/textarea). + + +## Usage + +```tsx +import { Textarea } from 'vitnode-frontend/components/ui/textarea'; +``` + +```tsx +