import React from "react";
import { Search, AlertCircle, CheckCircle2 } from "lucide-react";
/* Standard Text Input Component */
export function Input({
label,
error,
success,
icon: IconComponent,
disabled = false,
className = "",
containerStyle = {},
style = {},
...props
}) {
return (
{label && (
)}
{IconComponent && (
)}
{
e.target.style.borderColor = error ? "var(--danger)" : "var(--color-teal)";
e.target.style.boxShadow = error
? "0 0 0 3px rgba(239,68,68,0.12)"
: "0 0 0 3px rgba(0,201,167,0.12)";
}}
onBlur={e => {
e.target.style.borderColor = error ? "var(--danger)" : success ? "var(--success)" : "var(--border)";
e.target.style.boxShadow = "none";
}}
className={`ui-input ${className}`.trim()}
{...props}
/>
{error ? (
) : success ? (
) : null}
{error && (
{error}
)}
);
}
/* SearchBar Component */
export function SearchBar({ placeholder = "Search stocks, signals, indicators...", ...props }) {
return ;
}
/* Textarea Component */
export function Textarea({ label, error, rows = 4, disabled = false, style = {}, ...props }) {
return (
{label && (
)}
{error &&
{error}
}
);
}
/* Dropdown Component */
export function Dropdown({ label, options = [], value, onChange, disabled = false, error, ...props }) {
return (
{label && (
)}
{error &&
{error}
}
);
}
/* Checkbox Component */
export function Checkbox({ label, checked, onChange, disabled = false, ...props }) {
return (
);
}
/* Switch Component */
export function Switch({ label, checked, onChange, disabled = false }) {
return (
);
}
/* Radio Component */
export function Radio({ label, name, value, checked, onChange, disabled = false }) {
return (
);
}
/* Slider Component */
export function Slider({ label, min = 0, max = 100, step = 1, value, onChange, disabled = false }) {
return (
{label && (
{label}
{value}
)}
);
}