create driver page and client page also create oll driver , client layer

This commit is contained in:
m7amedez5511
2026-06-14 16:25:56 +03:00
parent 68bfce4345
commit bcc4baf28a
35 changed files with 5551 additions and 816 deletions

52
Components/UI/Select.tsx Normal file
View File

@@ -0,0 +1,52 @@
import React, { forwardRef, SelectHTMLAttributes } from "react";
// ─── Select ──────────────────────────────────────────────────────────────────
interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
label?: string;
error?: string;
wrapperClassName?: string;
children: React.ReactNode;
}
export const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(
{ label, error, wrapperClassName = "", className = "", id, children, ...rest },
ref
) {
const selectId = id ?? label?.toLowerCase().replace(/\s+/g, "-");
return (
<div className={`flex flex-col gap-1 ${wrapperClassName}`}>
{label && (
<label
htmlFor={selectId}
className="text-xs font-semibold uppercase tracking-wide text-slate-500"
>
{label}
</label>
)}
<select
ref={ref}
id={selectId}
className={`
w-full rounded-lg border bg-white px-3 py-2 text-sm text-slate-800
focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500
disabled:bg-slate-50 disabled:cursor-not-allowed
${error ? "border-red-400" : "border-slate-300"}
${className}
`}
{...rest}
>
{children}
</select>
{error && <p className="text-xs text-red-600">{error}</p>}
</div>
);
});