import { useRef, useEffect, useState } from "react"; import { Plus, X, Upload, Loader2, Link, ImageIcon, Calendar, AlertCircle, MapPin } from "lucide-react"; import type { RichListItem, VictoryItem } from "@/types/content"; interface InputFieldProps { label: string; value: string; onChange: (value: string) => void; placeholder?: string; type?: "text" | "url" | "tel"; } export function InputField({ label, value, onChange, placeholder, type = "text", }: InputFieldProps) { return (
onChange(e.target.value)} placeholder={placeholder} className="w-full rounded-lg border border-white/10 bg-neutral-800 px-4 py-2.5 text-white placeholder-neutral-500 outline-none focus:border-gold transition-colors" />
); } interface TextareaFieldProps { label: string; value: string; onChange: (value: string) => void; placeholder?: string; rows?: number; } export function TextareaField({ label, value, onChange, placeholder, rows = 3, }: TextareaFieldProps) { const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el) return; el.style.height = "auto"; el.style.height = el.scrollHeight + "px"; }, [value]); useEffect(() => { function onResize() { const el = ref.current; if (!el) return; el.style.height = "auto"; el.style.height = el.scrollHeight + "px"; } window.addEventListener("resize", onResize); return () => window.removeEventListener("resize", onResize); }, []); return (