register , login model complated. plagiraism component complated(essential part of main page is complated )
This commit is contained in:
18
src/shared/ui/motion.tsx
Normal file
18
src/shared/ui/motion.tsx
Normal 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 };
|
||||
19
src/shared/ui/phonePrefix.tsx
Normal file
19
src/shared/ui/phonePrefix.tsx
Normal 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;
|
||||
Reference in New Issue
Block a user