diff --git a/apps/www/src/app/page.tsx b/apps/www/src/app/page.tsx index 7bc45ca..9c07458 100644 --- a/apps/www/src/app/page.tsx +++ b/apps/www/src/app/page.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Button from "@/components/neobruu/Button"; import { IoLogoGithub } from "react-icons/io"; diff --git a/apps/www/src/components/CopyCode.tsx b/apps/www/src/components/CopyCode.tsx index f42bb59..1fe704e 100644 --- a/apps/www/src/components/CopyCode.tsx +++ b/apps/www/src/components/CopyCode.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useState } from "react"; import Button from "./neobruu/Button"; import { IoCheckmark, IoCopy } from "react-icons/io5"; diff --git a/apps/www/src/components/MobileSidebar.tsx b/apps/www/src/components/MobileSidebar.tsx index 3f89fa8..9526479 100644 --- a/apps/www/src/components/MobileSidebar.tsx +++ b/apps/www/src/components/MobileSidebar.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import { useState } from "react"; import { usePathname } from "next/navigation"; import Link from "next/link"; diff --git a/apps/www/src/components/Navbar.tsx b/apps/www/src/components/Navbar.tsx index 644b071..eb62c91 100644 --- a/apps/www/src/components/Navbar.tsx +++ b/apps/www/src/components/Navbar.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Link from "next/link"; import { AiFillGithub } from "react-icons/ai"; diff --git a/apps/www/src/components/Pagination.tsx b/apps/www/src/components/Pagination.tsx index 3134ab6..94c7a6c 100644 --- a/apps/www/src/components/Pagination.tsx +++ b/apps/www/src/components/Pagination.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import { useRouter } from "next/navigation"; import { FaChevronLeft, FaChevronRight } from "react-icons/fa"; import Button from "@/components/neobruu/Button"; diff --git a/apps/www/src/components/Sidebar.tsx b/apps/www/src/components/Sidebar.tsx index 490f820..ada4a91 100644 --- a/apps/www/src/components/Sidebar.tsx +++ b/apps/www/src/components/Sidebar.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import { usePathname } from "next/navigation"; import components from "@/data/components"; import Link from "next/link"; diff --git a/apps/www/src/components/example/AccordionExample.tsx b/apps/www/src/components/example/AccordionExample.tsx index 88d9fed..c0b9673 100644 --- a/apps/www/src/components/example/AccordionExample.tsx +++ b/apps/www/src/components/example/AccordionExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Accordion from "@/components/neobruu/Accordion"; export default function AccordionExample() { diff --git a/apps/www/src/components/example/CheckboxExample.tsx b/apps/www/src/components/example/CheckboxExample.tsx index 9c3823c..fe235ef 100644 --- a/apps/www/src/components/example/CheckboxExample.tsx +++ b/apps/www/src/components/example/CheckboxExample.tsx @@ -5,8 +5,8 @@ export default function CheckboxExample() {
- - + +
); } diff --git a/apps/www/src/components/example/DialogExample.tsx b/apps/www/src/components/example/DialogExample.tsx index b5098e9..8ab0c96 100644 --- a/apps/www/src/components/example/DialogExample.tsx +++ b/apps/www/src/components/example/DialogExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import { useState } from "react"; import Dialog from "@/components/neobruu/Dialog"; diff --git a/apps/www/src/components/example/DrawerExample.tsx b/apps/www/src/components/example/DrawerExample.tsx index 4ba4eef..df05b68 100644 --- a/apps/www/src/components/example/DrawerExample.tsx +++ b/apps/www/src/components/example/DrawerExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Drawer from "@/components/neobruu/Drawer"; import { useState } from "react"; import Button from "@/components/neobruu/Button"; diff --git a/apps/www/src/components/example/DropdownExample.tsx b/apps/www/src/components/example/DropdownExample.tsx index d3bfbf8..8e2d1b9 100644 --- a/apps/www/src/components/example/DropdownExample.tsx +++ b/apps/www/src/components/example/DropdownExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Dropdown from "@/components/neobruu/Dropdown"; export default function DropdownExample() { diff --git a/apps/www/src/components/example/InputExample.tsx b/apps/www/src/components/example/InputExample.tsx index 9d5e339..3011af9 100644 --- a/apps/www/src/components/example/InputExample.tsx +++ b/apps/www/src/components/example/InputExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Input from "@/components/neobruu/Input"; import { ChangeEvent, useState } from "react"; diff --git a/apps/www/src/components/example/RadioExample.tsx b/apps/www/src/components/example/RadioExample.tsx new file mode 100644 index 0000000..1a9b3c3 --- /dev/null +++ b/apps/www/src/components/example/RadioExample.tsx @@ -0,0 +1,12 @@ +import Radio from "@/components/neobruu/Radio"; + +export default function RadioExample() { + return ( +
+ + + + +
+ ); +} diff --git a/apps/www/src/components/example/TabsExample.tsx b/apps/www/src/components/example/TabsExample.tsx index ab8ac53..cde3db9 100644 --- a/apps/www/src/components/example/TabsExample.tsx +++ b/apps/www/src/components/example/TabsExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Tabs from "@/components/neobruu/Tabs"; export default function TabsExample() { diff --git a/apps/www/src/components/example/TextareaExample.tsx b/apps/www/src/components/example/TextareaExample.tsx index 4c8cbfe..6a5d55d 100644 --- a/apps/www/src/components/example/TextareaExample.tsx +++ b/apps/www/src/components/example/TextareaExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import Textarea from "@/components/neobruu/Textarea"; import { ChangeEvent, useState } from "react"; diff --git a/apps/www/src/components/example/ToastExample.tsx b/apps/www/src/components/example/ToastExample.tsx index c8e3dc7..c0a5248 100644 --- a/apps/www/src/components/example/ToastExample.tsx +++ b/apps/www/src/components/example/ToastExample.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import { useState } from "react"; import { HiExclamation } from "react-icons/hi"; diff --git a/apps/www/src/components/neobruu/Accordion.tsx b/apps/www/src/components/neobruu/Accordion.tsx index 26dc92a..888e60d 100644 --- a/apps/www/src/components/neobruu/Accordion.tsx +++ b/apps/www/src/components/neobruu/Accordion.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useEffect, useMemo, useState } from "react"; import { cva } from "class-variance-authority"; import { FiChevronDown } from "react-icons/fi"; diff --git a/apps/www/src/components/neobruu/Alert.tsx b/apps/www/src/components/neobruu/Alert.tsx index c0da2f4..191b130 100644 --- a/apps/www/src/components/neobruu/Alert.tsx +++ b/apps/www/src/components/neobruu/Alert.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useState } from "react"; import { IoClose } from "react-icons/io5"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/components/neobruu/Button.tsx b/apps/www/src/components/neobruu/Button.tsx index c2e09a0..6280750 100644 --- a/apps/www/src/components/neobruu/Button.tsx +++ b/apps/www/src/components/neobruu/Button.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import * as React from "react"; import Link from "next/link"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/components/neobruu/Checkbox.tsx b/apps/www/src/components/neobruu/Checkbox.tsx index bab1707..024b9f7 100644 --- a/apps/www/src/components/neobruu/Checkbox.tsx +++ b/apps/www/src/components/neobruu/Checkbox.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { InputHTMLAttributes, useState } from "react"; import { BsCheck } from "react-icons/bs"; import { VariantProps, cva } from "class-variance-authority"; @@ -23,7 +23,6 @@ const checkboxVariants = cva( md: "rounded-md", lg: "rounded-lg", xl: "rounded-xl", - full: "rounded-full", }, }, defaultVariants: { diff --git a/apps/www/src/components/neobruu/Dialog.tsx b/apps/www/src/components/neobruu/Dialog.tsx index 0f1f4aa..e41cf47 100644 --- a/apps/www/src/components/neobruu/Dialog.tsx +++ b/apps/www/src/components/neobruu/Dialog.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useEffect, useState } from "react"; import { IoClose } from "react-icons/io5"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/components/neobruu/Drawer.tsx b/apps/www/src/components/neobruu/Drawer.tsx index 2f86cd2..1bbbe39 100644 --- a/apps/www/src/components/neobruu/Drawer.tsx +++ b/apps/www/src/components/neobruu/Drawer.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useEffect, useState } from "react"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/components/neobruu/Dropdown.tsx b/apps/www/src/components/neobruu/Dropdown.tsx index 724625f..5467a8b 100644 --- a/apps/www/src/components/neobruu/Dropdown.tsx +++ b/apps/www/src/components/neobruu/Dropdown.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useState } from "react"; import { FaChevronDown } from "react-icons/fa"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/components/neobruu/Radio.tsx b/apps/www/src/components/neobruu/Radio.tsx new file mode 100644 index 0000000..fd6d045 --- /dev/null +++ b/apps/www/src/components/neobruu/Radio.tsx @@ -0,0 +1,47 @@ +'use client'; +import React, { InputHTMLAttributes, useState } from "react"; +import { BsCheck } from "react-icons/bs"; +import { VariantProps, cva } from "class-variance-authority"; + +const radioVariants = cva( + "peer relative appearance-none shrink-0 w-5 h-5 mt-1 rounded-full border-2 hover:shadow-[2px_2px_0px_0px] focus:outline-none focus:ring-offset-0 focus:ring-1 checked:border-black checked:shadow-[2px_2px_0px_0px] disabled:border-steel-400 disabled:bg-steel-400", + { + variants: { + variant: { + primary: "border-black bg-orange-400/50 checked:bg-orange-500", + secondary: "border-black bg-pink-500/50 checked:bg-pink-500", + light: "border-black bg-slate-50/50 checked:bg-slate-50", + dark: "border-black bg-zinc-900/50 text-white checked:bg-zinc-900", + blue: "border-black bg-blue-500/50 checked:bg-blue-500", + yellow: "border-black bg-[#f7cb46]/50 checked:bg-[#f7cb46]", + green: "border-black bg-green-500/50 checked:bg-green-500", + red: "border-black bg-red-500/50 checked:bg-red-500", + }, + }, + defaultVariants: { + variant: "primary", + }, + }, +); + +const Radio: React.FC< + InputHTMLAttributes & VariantProps +> = ({ variant = "primary" }) => { + const [checked, setChecked] = useState(false); + + return ( + + ); +}; + +Radio.displayName = "Radio"; + +export default Radio; diff --git a/apps/www/src/components/neobruu/Tabs.tsx b/apps/www/src/components/neobruu/Tabs.tsx index 882b884..00f73fc 100644 --- a/apps/www/src/components/neobruu/Tabs.tsx +++ b/apps/www/src/components/neobruu/Tabs.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useState, ReactNode } from "react"; import { VariantProps, cva } from "class-variance-authority"; import { cn } from "@/lib/utils"; diff --git a/apps/www/src/components/neobruu/Toast.tsx b/apps/www/src/components/neobruu/Toast.tsx index db7d9cf..2ad2b19 100644 --- a/apps/www/src/components/neobruu/Toast.tsx +++ b/apps/www/src/components/neobruu/Toast.tsx @@ -1,4 +1,4 @@ -"use client"; +'use client'; import React, { useEffect, useState } from "react"; import { VariantProps, cva } from "class-variance-authority"; diff --git a/apps/www/src/data/components.ts b/apps/www/src/data/components.ts index d722577..8670677 100644 --- a/apps/www/src/data/components.ts +++ b/apps/www/src/data/components.ts @@ -9,6 +9,7 @@ import Dropdown from "@/components/neobruu/Dropdown"; import Drawer from "@/components/neobruu/Drawer"; import Dialog from "@/components/neobruu/Dialog"; import Input from "@/components/neobruu/Input"; +import Radio from "@/components/neobruu/Radio"; import Toast from "@/components/neobruu/Toast"; import Tooltip from "@/components/neobruu/Tooltip"; import Tabs from "@/components/neobruu/Tabs"; @@ -29,6 +30,7 @@ import CardExample from "@/components/example/CardExample"; import AccordionExample from "@/components/example/AccordionExample"; import DrawerExample from "@/components/example/DrawerExample"; import DialogExample from "@/components/example/DialogExample"; +import RadioExample from "@/components/example/RadioExample"; type ComponentObj = { name: string; @@ -109,6 +111,12 @@ const components: ComponentObj[] = [ component: Input, exampleComponent: InputExample, }, + { + name: "Radio", + sub: "Interactive element allowing users to select or deselect options within forms or lists.", + component: Radio, + exampleComponent: RadioExample, + }, { name: "Tabs", sub: "Navigation element used to organize content into separate sections or categories, allowing users to switch between them to access different sets of information or functionality.",