feat: complete minute birth-time rectification flow

This commit is contained in:
Jesse_Chen
2026-07-25 01:15:48 +08:00
parent f90aba217f
commit 3ca30ed7de
93 changed files with 8347 additions and 1646 deletions
+79
View File
@@ -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,
};