feat: complete minute birth-time rectification flow
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
"use client";
|
||||
|
||||
import * as React from "react";
|
||||
import { Check, ChevronDown } from "lucide-react";
|
||||
import { Select as SelectPrimitive } from "@base-ui/react/select";
|
||||
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
const Select = SelectPrimitive.Root;
|
||||
|
||||
const SelectGroup = SelectPrimitive.Group;
|
||||
|
||||
const SelectValue = SelectPrimitive.Value;
|
||||
|
||||
const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectPrimitive.Trigger.Props>(
|
||||
({ className, children, ...props }, ref) => (
|
||||
<SelectPrimitive.Trigger
|
||||
ref={ref}
|
||||
data-slot="select-trigger"
|
||||
className={cn("select-trigger", className)}
|
||||
{...props}
|
||||
>
|
||||
{children}
|
||||
<SelectPrimitive.Icon className="select-trigger-icon" aria-hidden="true">
|
||||
<ChevronDown size={16} strokeWidth={1.8} />
|
||||
</SelectPrimitive.Icon>
|
||||
</SelectPrimitive.Trigger>
|
||||
),
|
||||
);
|
||||
SelectTrigger.displayName = "SelectTrigger";
|
||||
|
||||
const SelectContent = React.forwardRef<HTMLDivElement, SelectPrimitive.Popup.Props & Pick<SelectPrimitive.Positioner.Props, "align" | "sideOffset" | "alignItemWithTrigger">>(
|
||||
({ className, children, sideOffset = 6, align = "start", alignItemWithTrigger = false, ...props }, ref) => (
|
||||
<SelectPrimitive.Portal>
|
||||
<SelectPrimitive.Positioner
|
||||
align={align}
|
||||
sideOffset={sideOffset}
|
||||
alignItemWithTrigger={alignItemWithTrigger}
|
||||
className="select-positioner"
|
||||
>
|
||||
<SelectPrimitive.Popup
|
||||
ref={ref}
|
||||
data-slot="select-content"
|
||||
className={cn("select-content", className)}
|
||||
{...props}
|
||||
>
|
||||
<SelectPrimitive.List className="select-list">{children}</SelectPrimitive.List>
|
||||
</SelectPrimitive.Popup>
|
||||
</SelectPrimitive.Positioner>
|
||||
</SelectPrimitive.Portal>
|
||||
),
|
||||
);
|
||||
SelectContent.displayName = "SelectContent";
|
||||
|
||||
const SelectItem = React.forwardRef<HTMLElement, SelectPrimitive.Item.Props>(
|
||||
({ className, children, ...props }, ref) => (
|
||||
<SelectPrimitive.Item
|
||||
ref={ref}
|
||||
data-slot="select-item"
|
||||
className={cn("select-item", className)}
|
||||
{...props}
|
||||
>
|
||||
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
||||
<SelectPrimitive.ItemIndicator className="select-item-indicator">
|
||||
<Check size={15} strokeWidth={2} aria-hidden="true" />
|
||||
</SelectPrimitive.ItemIndicator>
|
||||
</SelectPrimitive.Item>
|
||||
),
|
||||
);
|
||||
SelectItem.displayName = "SelectItem";
|
||||
|
||||
export {
|
||||
Select,
|
||||
SelectContent,
|
||||
SelectGroup,
|
||||
SelectItem,
|
||||
SelectTrigger,
|
||||
SelectValue,
|
||||
};
|
||||
Reference in New Issue
Block a user