@schemavaults/ui 0.69.0 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -190,3 +190,5 @@ export * from "./date-picker";
190
190
  export type * from "./date-picker";
191
191
  export * from "./date-range-picker";
192
192
  export type * from "./date-range-picker";
193
+ export * from "./time-picker";
194
+ export type * from "./time-picker";
@@ -94,4 +94,5 @@ export * from "./notification-bell";
94
94
  export * from "./calendar";
95
95
  export * from "./date-picker";
96
96
  export * from "./date-range-picker";
97
+ export * from "./time-picker";
97
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./time-picker";
2
+ export type * from "./time-picker";
3
+ export { TimePicker as default } from "./time-picker";
@@ -0,0 +1,3 @@
1
+ export * from "./time-picker";
2
+ export { TimePicker as default } from "./time-picker";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { type ReactElement } from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ export declare const timePickerSizeIds: ["sm", "default", "lg"];
4
+ export type TimePickerSizeId = (typeof timePickerSizeIds)[number];
5
+ export declare const timePickerFormatIds: ["12h", "24h"];
6
+ export type TimePickerFormatId = (typeof timePickerFormatIds)[number];
7
+ export interface TimeValue {
8
+ /** 0-23 hours (always stored in 24-hour form regardless of display format). */
9
+ hours: number;
10
+ /** 0-59 minutes. */
11
+ minutes: number;
12
+ /** 0-59 seconds. Only populated when `showSeconds` is enabled. */
13
+ seconds?: number;
14
+ }
15
+ declare const triggerVariants: (props?: ({
16
+ size?: "sm" | "default" | "lg" | null | undefined;
17
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
18
+ export interface TimePickerProps extends VariantProps<typeof triggerVariants> {
19
+ /** Controlled selected time. */
20
+ value?: TimeValue;
21
+ /** Initial selected time when uncontrolled. */
22
+ defaultValue?: TimeValue;
23
+ /** Called whenever the selected time changes. */
24
+ onValueChange?: (value: TimeValue | undefined) => void;
25
+ /** Text shown in the trigger when no time is selected. Defaults to "Pick a time". */
26
+ placeholder?: string;
27
+ /** Disables the trigger button. */
28
+ disabled?: boolean;
29
+ /** Display format. Defaults to "24h". */
30
+ format?: TimePickerFormatId;
31
+ /** Whether to include a seconds column. Defaults to false. */
32
+ showSeconds?: boolean;
33
+ /** Minute step shown in the panel. Defaults to 1. */
34
+ minuteStep?: number;
35
+ /** Second step shown in the panel. Defaults to 1. */
36
+ secondStep?: number;
37
+ /** Format the selected time for display in the trigger. */
38
+ formatValue?: (value: TimeValue) => string;
39
+ /** Alignment of the popover relative to the trigger. Defaults to "start". */
40
+ align?: "start" | "center" | "end";
41
+ /** Controlled popover open state. */
42
+ open?: boolean;
43
+ /** Called when the popover open state changes. */
44
+ onOpenChange?: (open: boolean) => void;
45
+ /** Forwarded to the trigger button. */
46
+ id?: string;
47
+ /** Class name applied to the trigger button. */
48
+ className?: string;
49
+ }
50
+ /**
51
+ * A time-of-day input that composes a `Popover`, `Button`, and scrollable
52
+ * hour/minute/second columns. Supports both controlled (`value`/`open`) and
53
+ * uncontrolled (`defaultValue`) usage, 12h/24h display, optional seconds, and
54
+ * configurable minute/second steps. Complements `DatePicker` and
55
+ * `DateRangePicker`.
56
+ */
57
+ declare function TimePicker(props: TimePickerProps): ReactElement;
58
+ declare namespace TimePicker {
59
+ var displayName: string;
60
+ }
61
+ export { TimePicker, triggerVariants as timePickerTriggerVariants };
62
+ export default TimePicker;
@@ -0,0 +1,164 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
4
+ import { Clock } from "lucide-react";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "../../../lib/utils";
7
+ import { Button } from "../../ui/button";
8
+ import { Popover, PopoverContent, PopoverTrigger, } from "../../ui/popover";
9
+ import { ScrollArea } from "../../ui/scroll-area";
10
+ export const timePickerSizeIds = ["sm", "default", "lg"];
11
+ export const timePickerFormatIds = ["12h", "24h"];
12
+ const triggerSizeClasses = {
13
+ sm: "h-9 px-3 text-xs",
14
+ default: "h-10 px-4",
15
+ lg: "h-11 px-5 text-base",
16
+ };
17
+ const cellSizeClasses = {
18
+ sm: "h-7 text-xs",
19
+ default: "h-8 text-sm",
20
+ lg: "h-9 text-base",
21
+ };
22
+ const panelHeightClasses = {
23
+ sm: "h-44",
24
+ default: "h-52",
25
+ lg: "h-56",
26
+ };
27
+ const triggerVariants = cva("justify-start gap-2 font-normal tabular-nums", {
28
+ variants: {
29
+ size: {
30
+ sm: "w-44",
31
+ default: "w-52",
32
+ lg: "w-60",
33
+ },
34
+ },
35
+ defaultVariants: { size: "default" },
36
+ });
37
+ function pad(value) {
38
+ return value.toString().padStart(2, "0");
39
+ }
40
+ function defaultFormatValue(value, format, showSeconds) {
41
+ const { hours, minutes, seconds } = value;
42
+ if (format === "24h") {
43
+ return showSeconds
44
+ ? `${pad(hours)}:${pad(minutes)}:${pad(seconds ?? 0)}`
45
+ : `${pad(hours)}:${pad(minutes)}`;
46
+ }
47
+ const period = hours >= 12 ? "PM" : "AM";
48
+ const displayHour = hours % 12 === 0 ? 12 : hours % 12;
49
+ const base = `${pad(displayHour)}:${pad(minutes)}`;
50
+ return showSeconds ? `${base}:${pad(seconds ?? 0)} ${period}` : `${base} ${period}`;
51
+ }
52
+ function range(from, to, step) {
53
+ const result = [];
54
+ for (let i = from; i <= to; i += step)
55
+ result.push(i);
56
+ return result;
57
+ }
58
+ function TimeColumn({ label, items, active, onSelect, formatItem, size, }) {
59
+ const viewportRef = useRef(null);
60
+ const activeRef = useRef(null);
61
+ useEffect(() => {
62
+ const node = activeRef.current;
63
+ if (!node)
64
+ return;
65
+ node.scrollIntoView({ block: "center" });
66
+ }, [active]);
67
+ return (_jsxs("div", { className: "flex flex-col items-stretch min-w-0", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: label }), _jsx(ScrollArea, { className: cn("w-14 rounded-md border border-border bg-muted/30", panelHeightClasses[size]), children: _jsx("div", { className: "flex flex-col gap-0.5 p-1", ref: viewportRef, role: "listbox", "aria-label": label, children: items.map((item) => {
68
+ const isActive = item === active;
69
+ return (_jsx("button", { type: "button", role: "option", "aria-selected": isActive, ref: isActive ? activeRef : undefined, onClick: () => onSelect(item), className: cn("w-full rounded-sm tabular-nums transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", cellSizeClasses[size], isActive &&
70
+ "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: formatItem(item) }, item));
71
+ }) }) })] }));
72
+ }
73
+ /**
74
+ * A time-of-day input that composes a `Popover`, `Button`, and scrollable
75
+ * hour/minute/second columns. Supports both controlled (`value`/`open`) and
76
+ * uncontrolled (`defaultValue`) usage, 12h/24h display, optional seconds, and
77
+ * configurable minute/second steps. Complements `DatePicker` and
78
+ * `DateRangePicker`.
79
+ */
80
+ function TimePicker(props) {
81
+ const { value, defaultValue, onValueChange, placeholder = "Pick a time", disabled, format = "24h", showSeconds = false, minuteStep = 1, secondStep = 1, formatValue, align = "start", open, onOpenChange, id, className, size, } = props;
82
+ const resolvedSize = size ?? "default";
83
+ const [internalOpen, setInternalOpen] = useState(false);
84
+ const [internalValue, setInternalValue] = useState(defaultValue);
85
+ const isOpenControlled = open !== undefined;
86
+ const isOpen = isOpenControlled ? open : internalOpen;
87
+ const setOpen = useCallback((next) => {
88
+ if (!isOpenControlled)
89
+ setInternalOpen(next);
90
+ onOpenChange?.(next);
91
+ }, [isOpenControlled, onOpenChange]);
92
+ const isValueControlled = value !== undefined;
93
+ const selected = isValueControlled ? value : internalValue;
94
+ const emit = useCallback((next) => {
95
+ if (!isValueControlled)
96
+ setInternalValue(next);
97
+ onValueChange?.(next);
98
+ }, [isValueControlled, onValueChange]);
99
+ const format12 = format === "12h";
100
+ const hourItems = useMemo(() => (format12 ? range(1, 12, 1) : range(0, 23, 1)), [format12]);
101
+ const minuteItems = useMemo(() => range(0, 59, Math.max(1, minuteStep)), [minuteStep]);
102
+ const secondItems = useMemo(() => range(0, 59, Math.max(1, secondStep)), [secondStep]);
103
+ const activeHour24 = selected?.hours ?? 0;
104
+ const activeHourDisplay = format12
105
+ ? activeHour24 % 12 === 0
106
+ ? 12
107
+ : activeHour24 % 12
108
+ : activeHour24;
109
+ const activeMinute = selected?.minutes ?? 0;
110
+ const activeSecond = selected?.seconds ?? 0;
111
+ const isPm = activeHour24 >= 12;
112
+ const handleHour = useCallback((hour) => {
113
+ const next24 = format12
114
+ ? (hour % 12) + (isPm ? 12 : 0)
115
+ : hour;
116
+ emit({
117
+ hours: next24,
118
+ minutes: activeMinute,
119
+ ...(showSeconds ? { seconds: activeSecond } : {}),
120
+ });
121
+ }, [emit, format12, isPm, activeMinute, activeSecond, showSeconds]);
122
+ const handleMinute = useCallback((minute) => {
123
+ emit({
124
+ hours: activeHour24,
125
+ minutes: minute,
126
+ ...(showSeconds ? { seconds: activeSecond } : {}),
127
+ });
128
+ }, [emit, activeHour24, activeSecond, showSeconds]);
129
+ const handleSecond = useCallback((second) => {
130
+ emit({ hours: activeHour24, minutes: activeMinute, seconds: second });
131
+ }, [emit, activeHour24, activeMinute]);
132
+ const handlePeriod = useCallback((period) => {
133
+ const base = activeHour24 % 12;
134
+ const next24 = period === "PM" ? base + 12 : base;
135
+ emit({
136
+ hours: next24,
137
+ minutes: activeMinute,
138
+ ...(showSeconds ? { seconds: activeSecond } : {}),
139
+ });
140
+ }, [emit, activeHour24, activeMinute, activeSecond, showSeconds]);
141
+ const display = formatValue
142
+ ? selected
143
+ ? formatValue(selected)
144
+ : undefined
145
+ : selected
146
+ ? defaultFormatValue(selected, format, showSeconds)
147
+ : undefined;
148
+ return (_jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn(triggerVariants({ size: resolvedSize }), triggerSizeClasses[resolvedSize], className), children: [_jsx(Clock, { className: "size-4 opacity-70" }), display ? (display) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsxs(PopoverContent, { className: "w-auto p-3", align: align, children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(TimeColumn, { label: "Hour", items: hourItems, active: activeHourDisplay, onSelect: handleHour, formatItem: pad, size: resolvedSize }), _jsx(TimeColumn, { label: "Min", items: minuteItems, active: activeMinute, onSelect: handleMinute, formatItem: pad, size: resolvedSize }), showSeconds ? (_jsx(TimeColumn, { label: "Sec", items: secondItems, active: activeSecond, onSelect: handleSecond, formatItem: pad, size: resolvedSize })) : null, format12 ? (_jsxs("div", { className: "flex flex-col items-stretch", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: "AM/PM" }), _jsx("div", { className: cn("flex flex-col gap-1 rounded-md border border-border bg-muted/30 p-1", panelHeightClasses[resolvedSize]), role: "radiogroup", "aria-label": "AM/PM", children: ["AM", "PM"].map((period) => {
149
+ const isActive = isPm ? period === "PM" : period === "AM";
150
+ return (_jsx("button", { type: "button", role: "radio", "aria-checked": isActive, onClick: () => handlePeriod(period), className: cn("w-12 rounded-sm font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", cellSizeClasses[resolvedSize], isActive &&
151
+ "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: period }, period));
152
+ }) })] })) : null] }), _jsxs("div", { className: "mt-3 flex items-center justify-between gap-2", children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => {
153
+ const now = new Date();
154
+ emit({
155
+ hours: now.getHours(),
156
+ minutes: now.getMinutes(),
157
+ ...(showSeconds ? { seconds: now.getSeconds() } : {}),
158
+ });
159
+ }, children: "Now" }), _jsx(Button, { type: "button", variant: "default", size: "sm", onClick: () => setOpen(false), children: "Done" })] })] })] }));
160
+ }
161
+ TimePicker.displayName = "TimePicker";
162
+ export { TimePicker, triggerVariants as timePickerTriggerVariants };
163
+ export default TimePicker;
164
+ //# sourceMappingURL=time-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/time-picker.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/ui",
3
- "version": "0.69.0",
3
+ "version": "0.70.0",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",