register , login model complated. plagiraism component complated(essential part of main page is complated )

This commit is contained in:
nabijonovdavronbek619@gmail.com
2026-03-30 20:25:30 +05:00
parent 8906cf6634
commit 8b93952a06
29 changed files with 1475 additions and 205 deletions

18
src/shared/ui/motion.tsx Normal file
View File

@@ -0,0 +1,18 @@
'use client';
import { motion } from 'framer-motion';
import { ReactNode } from 'react';
function MotionWrapper({ children }: { children: ReactNode }) {
return (
<motion.div
initial={{ opacity: 0, scale: 0.95, y: 10 }}
animate={{ opacity: 1, scale: 1, y: 0 }}
exit={{ opacity: 0, scale: 0.95, y: 10 }}
transition={{ duration: 0.2, ease: 'easeOut' }}
>
{children}
</motion.div>
);
}
export { MotionWrapper };

View File

@@ -0,0 +1,19 @@
import { Phone } from 'lucide-react';
function PhonePrefix({ isFocused }: { isFocused: boolean }) {
return (
<div className="absolute left-4 top-1/2 -translate-y-1/2 flex items-center gap-2 pointer-events-none">
<Phone
className={`h-4 w-4 ${isFocused ? 'text-primary' : 'text-muted-foreground'}`}
/>
<span
className={`font-semibold text-base ${isFocused ? 'text-primary' : 'text-muted-foreground'}`}
>
+998
</span>
<span className="text-muted-foreground/40">|</span>
</div>
);
}
export default PhonePrefix;