71 | Generate secure passwords directly from your browser's toolbar! 72 |
73 | 74 |75 | Never leave your current page to create strong passwords 76 |
77 | 78 | 85 |161 | {body} 162 |
163 | ) 164 | }) 165 | FormMessage.displayName = "FormMessage" 166 | 167 | export { 168 | useFormField, 169 | Form, 170 | FormItem, 171 | FormLabel, 172 | FormControl, 173 | FormDescription, 174 | FormMessage, 175 | FormField, 176 | } 177 | -------------------------------------------------------------------------------- /src/components/PasswordCategories.tsx: -------------------------------------------------------------------------------- 1 | 2 | import React, { useState } from "react"; 3 | import { Button } from "@/components/ui/button"; 4 | import { Input } from "@/components/ui/input"; 5 | import { 6 | Popover, 7 | PopoverContent, 8 | PopoverTrigger, 9 | } from "@/components/ui/popover"; 10 | import { 11 | FolderIcon, 12 | BriefcaseIcon, 13 | UserIcon, 14 | CreditCardIcon, 15 | LockIcon, 16 | HomeIcon, 17 | GlobeIcon, 18 | HeartIcon, 19 | ServerIcon, 20 | PlusIcon 21 | } from "lucide-react"; 22 | import { toast } from "sonner"; 23 | 24 | interface PasswordCategoryProps { 25 | onSelectCategory: (category: string) => void; 26 | selectedCategory: string; 27 | } 28 | 29 | const categories = [ 30 | { id: "social", name: "Social Media", icon:96 | Set a timer for this password to be automatically cleared 97 |
98 | 99 | {isTimerActive ? ( 100 |Time remaining:
103 |{formatTime(remainingTime)}
104 |