import "@ncdai/react-wheel-picker/style.css";
import * as WheelPickerPrimitive from "@ncdai/react-wheel-picker";
import { cn } from "@/lib/utils";
type WheelPickerValue = WheelPickerPrimitive.WheelPickerValue;
type WheelPickerOption<T extends WheelPickerValue = string> =
WheelPickerPrimitive.WheelPickerOption<T>;
type WheelPickerClassNames = WheelPickerPrimitive.WheelPickerClassNames;
function WheelPickerWrapper({
className,
...props
}: React.ComponentProps<typeof WheelPickerPrimitive.WheelPickerWrapper>) {
return (
<WheelPickerPrimitive.WheelPickerWrapper
className={cn(
"w-56 rounded-lg border border-zinc-200 bg-white px-1 shadow-xs dark:border-zinc-700/80 dark:bg-zinc-900",
"*:data-rwp:first:*:data-rwp-highlight-wrapper:rounded-s-md",
"*:data-rwp:last:*:data-rwp-highlight-wrapper:rounded-e-md",
className
)}
{...props}
/>
);
}
function WheelPicker<T extends WheelPickerValue = string>({
classNames,
...props
}: WheelPickerPrimitive.WheelPickerProps<T>) {
return (
<WheelPickerPrimitive.WheelPicker
classNames={{
optionItem: "text-zinc-400 dark:text-zinc-500",
highlightWrapper:
"bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-zinc-50",
...classNames,
}}
{...props}
/>
);
}
export { WheelPicker, WheelPickerWrapper };
export type { WheelPickerClassNames, WheelPickerOption };