@schemavaults/ui 0.69.0 → 0.71.1

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.
@@ -38,6 +38,8 @@ export * from "./toaster";
38
38
  export type * from "./toaster";
39
39
  export * from "./wordmark";
40
40
  export type * from "./wordmark";
41
+ export * from "./package-version";
42
+ export type * from "./package-version";
41
43
  export * from "./card";
42
44
  export type * from "./card";
43
45
  export * from "./form";
@@ -190,3 +192,5 @@ export * from "./date-picker";
190
192
  export type * from "./date-picker";
191
193
  export * from "./date-range-picker";
192
194
  export type * from "./date-range-picker";
195
+ export * from "./time-picker";
196
+ export type * from "./time-picker";
@@ -18,6 +18,7 @@ export * from "./label";
18
18
  export * from "./toast";
19
19
  export * from "./toaster";
20
20
  export * from "./wordmark";
21
+ export * from "./package-version";
21
22
  export * from "./card";
22
23
  export * from "./form";
23
24
  export * from "./separator";
@@ -94,4 +95,5 @@ export * from "./notification-bell";
94
95
  export * from "./calendar";
95
96
  export * from "./date-picker";
96
97
  export * from "./date-range-picker";
98
+ export * from "./time-picker";
97
99
  //# 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 "./package-version";
2
+ export type * from "./package-version";
3
+ export { PackageVersion as default } from "./package-version";
@@ -0,0 +1,3 @@
1
+ export * from "./package-version";
2
+ export { PackageVersion as default } from "./package-version";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/package-version/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type ReactElement } from "react";
2
+ export interface PackageVersionProps {
3
+ className?: string;
4
+ /**
5
+ * URL to fetch the `package.json` from. Defaults to `/package.json`, which the
6
+ * deployed Storybook site serves from its root (see `.storybook/main.ts`).
7
+ */
8
+ packageJsonUrl?: string;
9
+ /** Text rendered immediately before the version number. Defaults to `"v"`. */
10
+ prefix?: string;
11
+ }
12
+ /**
13
+ * Fetches the latest semver from `GET /package.json` (the `.version` field) and
14
+ * renders it as a badge. Shows a skeleton while loading and a fallback badge if
15
+ * the request fails or no version is present.
16
+ */
17
+ export declare function PackageVersion({ className, packageJsonUrl, prefix, }: PackageVersionProps): ReactElement;
18
+ export default PackageVersion;
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from "react";
4
+ import { cn } from "../../../lib/utils";
5
+ import { Badge } from "../../ui/badge";
6
+ import { Skeleton } from "../../ui/skeleton";
7
+ function extractVersion(data) {
8
+ if (typeof data === "object" &&
9
+ data !== null &&
10
+ "version" in data &&
11
+ typeof data.version === "string") {
12
+ return data.version;
13
+ }
14
+ return undefined;
15
+ }
16
+ /**
17
+ * Fetches the latest semver from `GET /package.json` (the `.version` field) and
18
+ * renders it as a badge. Shows a skeleton while loading and a fallback badge if
19
+ * the request fails or no version is present.
20
+ */
21
+ export function PackageVersion({ className, packageJsonUrl = "/package.json", prefix = "v", }) {
22
+ const [state, setState] = useState({
23
+ status: "loading",
24
+ });
25
+ useEffect(() => {
26
+ let cancelled = false;
27
+ async function fetchVersion() {
28
+ const response = await fetch(packageJsonUrl, {
29
+ headers: { Accept: "application/json" },
30
+ });
31
+ if (!response.ok) {
32
+ throw new Error(`Request failed with status ${response.status}`);
33
+ }
34
+ const version = extractVersion(await response.json());
35
+ if (!version) {
36
+ throw new Error("No 'version' field found in package.json");
37
+ }
38
+ return version;
39
+ }
40
+ fetchVersion()
41
+ .then((version) => {
42
+ if (!cancelled) {
43
+ setState({ status: "success", version });
44
+ }
45
+ })
46
+ .catch(() => {
47
+ if (!cancelled) {
48
+ setState({ status: "error" });
49
+ }
50
+ });
51
+ return () => {
52
+ cancelled = true;
53
+ };
54
+ }, [packageJsonUrl]);
55
+ if (state.status === "loading") {
56
+ return (_jsx(Skeleton, { className: cn("inline-block h-5 w-16 align-middle", className) }));
57
+ }
58
+ if (state.status === "error") {
59
+ return (_jsx(Badge, { variant: "destructive", className: className, children: "version unavailable" }));
60
+ }
61
+ return (_jsxs(Badge, { variant: "secondary", className: cn("font-mono", className), children: [prefix, state.version] }));
62
+ }
63
+ export default PackageVersion;
64
+ //# sourceMappingURL=package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.js","sourceRoot":"","sources":["../../../../src/components/ui/package-version/package-version.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAkBpD,SAAS,cAAc,CAAC,IAAa;IACnC,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,SAAS,IAAI,IAAI;QACjB,OAAQ,IAA6B,CAAC,OAAO,KAAK,QAAQ,EAC1D,CAAC;QACD,OAAQ,IAA4B,CAAC,OAAO,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,cAAc,GAAG,eAAe,EAChC,MAAM,GAAG,GAAG,GACQ;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB;QACtD,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,KAAK,UAAU,YAAY;YACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;gBAC3C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;aACxC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,YAAY,EAAE;aACX,IAAI,CAAC,CAAC,OAAe,EAAQ,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAS,EAAE;YAChB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,OAAO,GAAS,EAAE;YAChB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CACL,KAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,GAC9D,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,EAAC,aAAa,EAAC,SAAS,EAAE,SAAS,oCAEzC,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,KAAK,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aAC7D,MAAM,EACN,KAAK,CAAC,OAAO,IACR,CACT,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -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.71.1",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",
@@ -58,7 +58,7 @@
58
58
  "autoprefixer": "10.4.21",
59
59
  "base64url": "3.0.1",
60
60
  "buffer": "6.0.3",
61
- "bun-types": "1.3.11",
61
+ "bun-types": "1.3.14",
62
62
  "eslint-plugin-storybook": "10.4.0",
63
63
  "ignore-loader": "0.1.2",
64
64
  "postcss": "8.5.12",
@@ -133,7 +133,7 @@
133
133
  "publishConfig": {
134
134
  "access": "public"
135
135
  },
136
- "packageManager": "bun@1.3.11",
136
+ "packageManager": "bun@1.3.14",
137
137
  "eslintConfig": {
138
138
  "extends": [
139
139
  "plugin:storybook/recommended"