@wow-two-beta/ui 0.0.68 → 0.0.69
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.
- package/dist/{chunk-3BKZLK7D.js → chunk-EKGOQL75.js} +40 -55
- package/dist/chunk-EKGOQL75.js.map +1 -0
- package/dist/{chunk-HPA5BHDK.js → chunk-SREWD3XJ.js} +73 -68
- package/dist/chunk-SREWD3XJ.js.map +1 -0
- package/dist/{chunk-D5QVCOX5.js → chunk-X3JVVEUJ.js} +24 -3
- package/dist/chunk-X3JVVEUJ.js.map +1 -0
- package/dist/display/index.js +2 -2
- package/dist/forms/DateExtensions.d.ts +30 -25
- package/dist/forms/MonthGrid.d.ts +8 -7
- package/dist/forms/calendar/Calendar.d.ts +8 -7
- package/dist/forms/colorPicker/ColorPicker.d.ts +7 -0
- package/dist/forms/dateField/DateField.d.ts +6 -5
- package/dist/forms/datePicker/DatePicker.d.ts +8 -7
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts +5 -4
- package/dist/forms/index.js +2 -2
- package/dist/forms/rangeCalendar/RangeCalendar.d.ts +8 -6
- package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts +3 -2
- package/dist/forms/timeField/TimeField.d.ts +4 -7
- package/dist/forms/timeField/index.d.ts +1 -1
- package/dist/forms/timePicker/TimePicker.d.ts +5 -5
- package/dist/index.js +3 -3
- package/package.json +2 -1
- package/dist/chunk-3BKZLK7D.js.map +0 -1
- package/dist/chunk-D5QVCOX5.js.map +0 -1
- package/dist/chunk-HPA5BHDK.js.map +0 -1
package/dist/display/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sortable, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants } from '../chunk-
|
|
2
|
-
export { Kbd, Tag, tagVariants } from '../chunk-
|
|
1
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sortable, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants } from '../chunk-X3JVVEUJ.js';
|
|
2
|
+
export { Kbd, Tag, tagVariants } from '../chunk-EKGOQL75.js';
|
|
3
3
|
import '../chunk-WKVWOAQV.js';
|
|
4
4
|
export { Tooltip } from '../chunk-GPMNI5MG.js';
|
|
5
5
|
import '../chunk-RNHY33US.js';
|
|
@@ -1,35 +1,40 @@
|
|
|
1
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
1
2
|
export declare const WEEKDAYS_SHORT: string[];
|
|
2
3
|
export declare const MONTHS_LONG: string[];
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
4
|
+
/** Sunday-anchored column index (0 = Sun … 6 = Sat) for a PlainDate. */
|
|
5
|
+
export declare function sundayIndex(d: Temporal.PlainDate): number;
|
|
6
|
+
/** Today as a PlainDate in the local time zone. */
|
|
7
|
+
export declare function today(): Temporal.PlainDate;
|
|
8
|
+
export declare function isSameDay(a: Temporal.PlainDate | null | undefined, b: Temporal.PlainDate | null | undefined): boolean;
|
|
9
|
+
export declare function isToday(d: Temporal.PlainDate): boolean;
|
|
10
|
+
/** Add `n` months; Temporal clamps to the target month's last day (Jan 31 +1 → Feb 28). */
|
|
11
|
+
export declare function addMonths(d: Temporal.PlainDate, n: number): Temporal.PlainDate;
|
|
12
|
+
export declare function addDays(d: Temporal.PlainDate, n: number): Temporal.PlainDate;
|
|
13
|
+
/** First day of `d`'s month. */
|
|
14
|
+
export declare function startOfMonth(d: Temporal.PlainDate): Temporal.PlainDate;
|
|
15
|
+
/** Number of days in the given year/month (1-indexed month). */
|
|
9
16
|
export declare function daysInMonth(year: number, month: number): number;
|
|
10
17
|
/**
|
|
11
18
|
* Build the 6-week (42-cell) grid that the calendar UI renders.
|
|
12
|
-
* Cells outside the target
|
|
19
|
+
* `year`/`month` are 1-indexed (Temporal convention). Cells outside the target
|
|
20
|
+
* month carry `outOfMonth: true`.
|
|
13
21
|
*/
|
|
14
22
|
export declare function buildMonthGrid(year: number, month: number): {
|
|
15
|
-
date:
|
|
23
|
+
date: Temporal.PlainDate;
|
|
16
24
|
outOfMonth: boolean;
|
|
17
25
|
}[];
|
|
18
|
-
/** Format
|
|
19
|
-
export declare function formatISODate(d:
|
|
20
|
-
/** Parse "YYYY-MM-DD" →
|
|
21
|
-
export declare function parseISODate(s: string | null | undefined):
|
|
22
|
-
/** Format
|
|
23
|
-
export declare function formatISOTime(
|
|
24
|
-
/** Parse "HH:MM" →
|
|
25
|
-
export declare function parseISOTime(s: string | null | undefined):
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
min?: Date | null;
|
|
32
|
-
max?: Date | null;
|
|
33
|
-
isDisabled?: (d: Date) => boolean;
|
|
26
|
+
/** Format PlainDate → "YYYY-MM-DD" for a native `<input type="date">` value. */
|
|
27
|
+
export declare function formatISODate(d: Temporal.PlainDate | null | undefined): string;
|
|
28
|
+
/** Parse "YYYY-MM-DD" → PlainDate. Returns null for invalid input. */
|
|
29
|
+
export declare function parseISODate(s: string | null | undefined): Temporal.PlainDate | null;
|
|
30
|
+
/** Format PlainTime → "HH:MM" for a native `<input type="time">` value. */
|
|
31
|
+
export declare function formatISOTime(t: Temporal.PlainTime | null | undefined): string;
|
|
32
|
+
/** Parse "HH:MM" → PlainTime. Returns null for invalid input. */
|
|
33
|
+
export declare function parseISOTime(s: string | null | undefined): Temporal.PlainTime | null;
|
|
34
|
+
export declare function clampDate(d: Temporal.PlainDate, min?: Temporal.PlainDate | null, max?: Temporal.PlainDate | null): Temporal.PlainDate;
|
|
35
|
+
export declare function isDateDisabled(d: Temporal.PlainDate, options: {
|
|
36
|
+
min?: Temporal.PlainDate | null;
|
|
37
|
+
max?: Temporal.PlainDate | null;
|
|
38
|
+
isDisabled?: (d: Temporal.PlainDate) => boolean;
|
|
34
39
|
}): boolean;
|
|
35
|
-
export declare function isInRange(d:
|
|
40
|
+
export declare function isInRange(d: Temporal.PlainDate, start: Temporal.PlainDate | null | undefined, end: Temporal.PlainDate | null | undefined): boolean;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
export interface MonthGridDayProps extends Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'onPointerEnter' | 'onPointerLeave' | 'aria-selected'> {
|
|
3
4
|
/** Extra `data-*` attributes (data-selected, data-range-start, etc.). */
|
|
4
5
|
[key: `data-${string}`]: string | boolean | undefined;
|
|
5
6
|
}
|
|
6
7
|
export interface MonthGridProps {
|
|
7
8
|
/** First day of the visible month (use `startOfMonth(date)`). */
|
|
8
|
-
viewMonth:
|
|
9
|
+
viewMonth: Temporal.PlainDate;
|
|
9
10
|
/** Called when prev/next steps the visible month. */
|
|
10
|
-
onViewMonthChange: (date:
|
|
11
|
+
onViewMonthChange: (date: Temporal.PlainDate) => void;
|
|
11
12
|
/** The currently focused day (cell tabIndex=0). */
|
|
12
|
-
focusedDate:
|
|
13
|
+
focusedDate: Temporal.PlainDate;
|
|
13
14
|
/** Called by keyboard navigation. */
|
|
14
|
-
onFocusedDateChange: (date:
|
|
15
|
+
onFocusedDateChange: (date: Temporal.PlainDate) => void;
|
|
15
16
|
/** Predicate marking a day as disabled. */
|
|
16
|
-
isDayDisabled?: (date:
|
|
17
|
+
isDayDisabled?: (date: Temporal.PlainDate) => boolean;
|
|
17
18
|
/** Click / Enter / Space activation. */
|
|
18
|
-
onDayActivate?: (date:
|
|
19
|
+
onDayActivate?: (date: Temporal.PlainDate, meta: {
|
|
19
20
|
outOfMonth: boolean;
|
|
20
21
|
}) => void;
|
|
21
22
|
/** Extra per-day attributes for selection styling and hover handlers. */
|
|
22
|
-
dayProps?: (date:
|
|
23
|
+
dayProps?: (date: Temporal.PlainDate, meta: {
|
|
23
24
|
outOfMonth: boolean;
|
|
24
25
|
}) => MonthGridDayProps | undefined;
|
|
25
26
|
'aria-label'?: string;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
export interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
3
4
|
/** Controlled selected date. */
|
|
4
|
-
value?:
|
|
5
|
+
value?: Temporal.PlainDate | null;
|
|
5
6
|
/** Uncontrolled initial selection. */
|
|
6
|
-
defaultValue?:
|
|
7
|
+
defaultValue?: Temporal.PlainDate | null;
|
|
7
8
|
/** Selection callback. */
|
|
8
|
-
onValueChange?: (date:
|
|
9
|
+
onValueChange?: (date: Temporal.PlainDate) => void;
|
|
9
10
|
/** Initial visible month (uncontrolled). */
|
|
10
|
-
defaultMonth?:
|
|
11
|
+
defaultMonth?: Temporal.PlainDate;
|
|
11
12
|
/** Minimum selectable date. */
|
|
12
|
-
min?:
|
|
13
|
+
min?: Temporal.PlainDate | null;
|
|
13
14
|
/** Maximum selectable date. */
|
|
14
|
-
max?:
|
|
15
|
+
max?: Temporal.PlainDate | null;
|
|
15
16
|
/** Custom disable predicate. */
|
|
16
|
-
isDisabled?: (date:
|
|
17
|
+
isDisabled?: (date: Temporal.PlainDate) => boolean;
|
|
17
18
|
/** A11y label. */
|
|
18
19
|
'aria-label'?: string;
|
|
19
20
|
}
|
|
@@ -7,6 +7,13 @@ export interface ColorPickerProps {
|
|
|
7
7
|
hasAlpha?: boolean;
|
|
8
8
|
presets?: string[];
|
|
9
9
|
triggerSize?: ColorSwatchVariants['size'];
|
|
10
|
+
/**
|
|
11
|
+
* Which built-in trigger to render (ignored when `trigger` is set):
|
|
12
|
+
* - `full` *(default)* — swatch + hex-value text, framed button.
|
|
13
|
+
* - `swatch` — a bare interactive swatch, no text (compact toolbars, tiles).
|
|
14
|
+
* - `value` — hex-value text only, no swatch (dense / code contexts).
|
|
15
|
+
*/
|
|
16
|
+
triggerVariant?: 'full' | 'swatch' | 'value';
|
|
10
17
|
isDisabled?: boolean;
|
|
11
18
|
name?: string;
|
|
12
19
|
className?: string;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type InputHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { type InputBaseVariants } from '../InputStyles';
|
|
3
4
|
export interface DateFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'size'>, InputBaseVariants {
|
|
4
|
-
value?:
|
|
5
|
-
defaultValue?:
|
|
6
|
-
onValueChange?: (date:
|
|
7
|
-
min?:
|
|
8
|
-
max?:
|
|
5
|
+
value?: Temporal.PlainDate | null;
|
|
6
|
+
defaultValue?: Temporal.PlainDate | null;
|
|
7
|
+
onValueChange?: (date: Temporal.PlainDate | null) => void;
|
|
8
|
+
min?: Temporal.PlainDate | null;
|
|
9
|
+
max?: Temporal.PlainDate | null;
|
|
9
10
|
}
|
|
10
11
|
export declare const DateField: import("react").ForwardRefExoticComponent<DateFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { type SelectTriggerVariants } from '../select/Select.variants';
|
|
3
4
|
export interface DatePickerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'value' | 'defaultValue'>, SelectTriggerVariants {
|
|
4
|
-
value?:
|
|
5
|
-
defaultValue?:
|
|
6
|
-
onValueChange?: (date:
|
|
5
|
+
value?: Temporal.PlainDate | null;
|
|
6
|
+
defaultValue?: Temporal.PlainDate | null;
|
|
7
|
+
onValueChange?: (date: Temporal.PlainDate | null) => void;
|
|
7
8
|
placeholder?: string;
|
|
8
|
-
format?: (date:
|
|
9
|
-
min?:
|
|
10
|
-
max?:
|
|
11
|
-
isDisabled?: (date:
|
|
9
|
+
format?: (date: Temporal.PlainDate) => string;
|
|
10
|
+
min?: Temporal.PlainDate | null;
|
|
11
|
+
max?: Temporal.PlainDate | null;
|
|
12
|
+
isDisabled?: (date: Temporal.PlainDate) => boolean;
|
|
12
13
|
isInvalid?: boolean;
|
|
13
14
|
/** When `name` is set, a hidden input ships the ISO value with form submission. */
|
|
14
15
|
name?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { type SelectTriggerVariants } from '../select/Select.variants';
|
|
3
4
|
import { type DateRange } from '../rangeCalendar';
|
|
4
5
|
export interface DateRangePickerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'value' | 'defaultValue'>, SelectTriggerVariants {
|
|
@@ -6,10 +7,10 @@ export interface DateRangePickerProps extends Omit<ButtonHTMLAttributes<HTMLButt
|
|
|
6
7
|
defaultValue?: DateRange | null;
|
|
7
8
|
onValueChange?: (range: DateRange | null) => void;
|
|
8
9
|
placeholder?: string;
|
|
9
|
-
format?: (date:
|
|
10
|
-
min?:
|
|
11
|
-
max?:
|
|
12
|
-
isDisabled?: (date:
|
|
10
|
+
format?: (date: Temporal.PlainDate) => string;
|
|
11
|
+
min?: Temporal.PlainDate | null;
|
|
12
|
+
max?: Temporal.PlainDate | null;
|
|
13
|
+
isDisabled?: (date: Temporal.PlainDate) => boolean;
|
|
13
14
|
isInvalid?: boolean;
|
|
14
15
|
/** When `name` is set, two hidden inputs (`{name}_start`, `{name}_end`) ship the ISO values. */
|
|
15
16
|
name?: string;
|
package/dist/forms/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Field, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, Field as FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, TextareaInput as Textarea, TextareaInput, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard } from '../chunk-
|
|
1
|
+
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Field, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, Field as FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, TextareaInput as Textarea, TextareaInput, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard } from '../chunk-SREWD3XJ.js';
|
|
2
2
|
import '../chunk-UMRRFZ4R.js';
|
|
3
3
|
import '../chunk-XFUD3RZK.js';
|
|
4
4
|
import '../chunk-X5JSX4PU.js';
|
|
5
5
|
import '../chunk-QTHKG7MQ.js';
|
|
6
6
|
import '../chunk-OZBLEOLZ.js';
|
|
7
7
|
import '../chunk-VYFPLQPV.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-EKGOQL75.js';
|
|
9
9
|
import '../chunk-RNHY33US.js';
|
|
10
10
|
import '../chunk-D7ZFCHX5.js';
|
|
11
11
|
import '../chunk-XSW3NZDD.js';
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
3
|
+
/** A completed date range. Both ends are set; the in-progress state is internal. */
|
|
2
4
|
export interface DateRange {
|
|
3
|
-
start:
|
|
4
|
-
end:
|
|
5
|
+
start: Temporal.PlainDate;
|
|
6
|
+
end: Temporal.PlainDate;
|
|
5
7
|
}
|
|
6
8
|
export interface RangeCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
7
9
|
value?: DateRange | null;
|
|
8
10
|
defaultValue?: DateRange | null;
|
|
9
11
|
onValueChange?: (range: DateRange) => void;
|
|
10
|
-
defaultMonth?:
|
|
11
|
-
min?:
|
|
12
|
-
max?:
|
|
13
|
-
isDisabled?: (date:
|
|
12
|
+
defaultMonth?: Temporal.PlainDate;
|
|
13
|
+
min?: Temporal.PlainDate | null;
|
|
14
|
+
max?: Temporal.PlainDate | null;
|
|
15
|
+
isDisabled?: (date: Temporal.PlainDate) => boolean;
|
|
14
16
|
'aria-label'?: string;
|
|
15
17
|
}
|
|
16
18
|
export declare const RangeCalendar: import("react").ForwardRefExoticComponent<RangeCalendarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
export type RecurrenceFreq = 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY';
|
|
3
4
|
export type RecurrenceWeekday = 'MO' | 'TU' | 'WE' | 'TH' | 'FR' | 'SA' | 'SU';
|
|
4
5
|
export interface RecurrenceRule {
|
|
@@ -7,13 +8,13 @@ export interface RecurrenceRule {
|
|
|
7
8
|
byDay?: RecurrenceWeekday[];
|
|
8
9
|
byMonthDay?: number;
|
|
9
10
|
count?: number;
|
|
10
|
-
until?:
|
|
11
|
+
until?: Temporal.PlainDate | null;
|
|
11
12
|
}
|
|
12
13
|
export interface RecurrenceEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue'> {
|
|
13
14
|
value?: RecurrenceRule;
|
|
14
15
|
defaultValue?: RecurrenceRule;
|
|
15
16
|
onValueChange?: (rule: RecurrenceRule) => void;
|
|
16
|
-
from?:
|
|
17
|
+
from?: Temporal.PlainDate;
|
|
17
18
|
previewCount?: number;
|
|
18
19
|
isDisabled?: boolean;
|
|
19
20
|
isReadOnly?: boolean;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { type InputHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { type InputBaseVariants } from '../InputStyles';
|
|
3
|
-
export interface TimeValue {
|
|
4
|
-
hours: number;
|
|
5
|
-
minutes: number;
|
|
6
|
-
}
|
|
7
4
|
export interface TimeFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'size'>, InputBaseVariants {
|
|
8
|
-
value?:
|
|
9
|
-
defaultValue?:
|
|
10
|
-
onValueChange?: (value:
|
|
5
|
+
value?: Temporal.PlainTime | null;
|
|
6
|
+
defaultValue?: Temporal.PlainTime | null;
|
|
7
|
+
onValueChange?: (value: Temporal.PlainTime | null) => void;
|
|
11
8
|
}
|
|
12
9
|
export declare const TimeField: import("react").ForwardRefExoticComponent<TimeFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { TimeField, type TimeFieldProps
|
|
1
|
+
export { TimeField, type TimeFieldProps } from './TimeField';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { type SelectTriggerVariants } from '../select/Select.variants';
|
|
3
|
-
import { type TimeValue } from '../timeField';
|
|
4
4
|
export interface TimePickerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'value' | 'defaultValue'>, SelectTriggerVariants {
|
|
5
|
-
value?:
|
|
6
|
-
defaultValue?:
|
|
7
|
-
onValueChange?: (time:
|
|
5
|
+
value?: Temporal.PlainTime | null;
|
|
6
|
+
defaultValue?: Temporal.PlainTime | null;
|
|
7
|
+
onValueChange?: (time: Temporal.PlainTime | null) => void;
|
|
8
8
|
/** Minute interval. Default 5. */
|
|
9
9
|
minuteStep?: number;
|
|
10
10
|
placeholder?: string;
|
|
11
|
-
format?: (time:
|
|
11
|
+
format?: (time: Temporal.PlainTime) => string;
|
|
12
12
|
isInvalid?: boolean;
|
|
13
13
|
name?: string;
|
|
14
14
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Alert, AlertSimple, Banner, BannerSimple, Callout, InlineSpinner, LiveCursor, LoadingOverlay, LoadingState, MeterBar, NotificationCenter, NotificationItem, OnboardingChecklist, OnboardingChecklistTask, PresenceIndicator, ProgressBar, ProgressCircle, ProgressSteps, Skeleton, StatusIndicator, Toast, ToastSimple, Toaster, Tour, TrendIndicator, TypingIndicator, UndoBar, alertSimpleVariants, bannerSimpleVariants, progressFillVariants, progressTrackVariants, skeletonVariants, toastSimpleVariants, toaster, useOnboardingChecklist, useToaster } from './chunk-VTRPW2QQ.js';
|
|
2
|
-
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Field, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, Field as FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, TextareaInput as Textarea, TextareaInput, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard } from './chunk-
|
|
2
|
+
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Field, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, Field as FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, TextareaInput as Textarea, TextareaInput, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard } from './chunk-SREWD3XJ.js';
|
|
3
3
|
export { AppShell, AppShellAside, AppShellContent, AppShellFooter, AppShellHeader, AppShellMain, AppShellSidebar, AspectRatio, Box, Center, Cluster, Container, Divider, Flex, Frame, Grid, HStack, Navbar, Overlay, PullToRefresh, ResizablePanel, ResizablePanels, ResizableSeparator, ScrollArea, Section, Spacer, Stack, Surface, TwoColumn, VStack, containerVariants, dividerVariants, gridVariants, navbarVariants, resolveGridColumns, resolveGridGap, sectionVariants, stackVariants, useAppShell } from './chunk-ORYO55KN.js';
|
|
4
4
|
export { Spinner, spinnerVariants } from './chunk-KZLEHWAJ.js';
|
|
5
5
|
export { Breadcrumb, CommandPalette, CommandPaletteContent, CommandPaletteEmpty, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteSeparator, ContextMenu, ContextMenuContent, ContextMenuTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, Menubar, MenubarContent, MenubarMenu, MenubarTrigger, NavItem, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Pagination, ScrollSpy, TableOfContents, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuVariants, useScrollSpy } from './chunk-XOUAFZ2E.js';
|
|
@@ -11,8 +11,8 @@ import './chunk-OZBLEOLZ.js';
|
|
|
11
11
|
export { Backdrop } from './chunk-VYFPLQPV.js';
|
|
12
12
|
export { themes_exports as themes } from './chunk-LS4EGKUK.js';
|
|
13
13
|
export { BackToTopButton, Button, ButtonGroup, CopyButton, DisclosureButton, FAB, Link, SegmentedControl, SpeedDial, SpeedDialAction, SpeedDialTrigger, ToggleButton, ToggleButtonGroup, Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, buttonVariants, fabVariants, linkVariants, toggleButtonVariants } from './chunk-R5MOEUXM.js';
|
|
14
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sortable, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants } from './chunk-
|
|
15
|
-
export { Kbd, Tag, tagVariants } from './chunk-
|
|
14
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sortable, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants } from './chunk-X3JVVEUJ.js';
|
|
15
|
+
export { Kbd, Tag, tagVariants } from './chunk-EKGOQL75.js';
|
|
16
16
|
export { Inline } from './chunk-WKVWOAQV.js';
|
|
17
17
|
export { Tooltip } from './chunk-GPMNI5MG.js';
|
|
18
18
|
export { hooks_exports as hooks } from './chunk-RNHY33US.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wow-two-beta/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.69",
|
|
4
4
|
"description": "Beta-forever React UI library for the wow-two ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
},
|
|
119
119
|
"dependencies": {
|
|
120
120
|
"@floating-ui/react": "^0.27.0",
|
|
121
|
+
"@js-temporal/polyfill": "^0.5.0",
|
|
121
122
|
"@radix-ui/react-focus-scope": "^1.1.0",
|
|
122
123
|
"clsx": "^2.1.1",
|
|
123
124
|
"lucide-react": "^0.460.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/display/kbd/Kbd.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/forms/DateExtensions.ts"],"names":["forwardRef","jsx"],"mappings":"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","file":"chunk-3BKZLK7D.js","sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * to keep the strict atom rule (Tag is L3, so importing Button would make\n * this an atom-on-atom composition).\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","// Shared date helpers for Calendar / DatePicker / DateField / RangeCalendar.\n// Co-located in `forms/` so imports stay within-domain.\n//\n// Native Date only — no date-fns / luxon dependency. All helpers operate on\n// local time (no UTC math) since calendar UIs are inherently local.\n\nexport const WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS_LONG = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function startOfDay(d: Date): Date {\n const c = new Date(d);\n c.setHours(0, 0, 0, 0);\n return c;\n}\n\nexport function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isToday(d: Date): boolean {\n return isSameDay(d, new Date());\n}\n\nexport function addMonths(d: Date, n: number): Date {\n const c = new Date(d);\n const month = d.getMonth() + n;\n // Clamp to the target month's last day (Jan 31 +1 → Feb 28, not Mar 3).\n c.setMonth(month, Math.min(d.getDate(), daysInMonth(d.getFullYear(), month)));\n return c;\n}\n\nexport function addDays(d: Date, n: number): Date {\n const c = new Date(d);\n c.setDate(c.getDate() + n);\n return c;\n}\n\nexport function startOfMonth(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), 1);\n}\n\nexport function daysInMonth(year: number, month: number): number {\n // month is 0-indexed; setting day 0 of next month gives last day of month.\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * Build the 6-week (42-cell) grid that the calendar UI renders.\n * Cells outside the target month carry `outOfMonth: true`.\n */\nexport function buildMonthGrid(year: number, month: number): { date: Date; outOfMonth: boolean }[] {\n const first = new Date(year, month, 1);\n const firstWeekday = first.getDay(); // 0 (Sun) – 6 (Sat)\n const start = addDays(first, -firstWeekday);\n const cells: { date: Date; outOfMonth: boolean }[] = [];\n for (let i = 0; i < 42; i++) {\n const date = addDays(start, i);\n cells.push({ date, outOfMonth: date.getMonth() !== month });\n }\n return cells;\n}\n\n/** Format Date → \"YYYY-MM-DD\" for native `<input type=\"date\">` value. */\nexport function formatISODate(d: Date | null | undefined): string {\n if (!d) return '';\n const year = d.getFullYear();\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\n/** Parse \"YYYY-MM-DD\" → Date (local time). Returns null for invalid input. */\nexport function parseISODate(s: string | null | undefined): Date | null {\n if (!s) return null;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, y, mo, d] = m;\n if (!y || !mo || !d) return null;\n const date = new Date(Number(y), Number(mo) - 1, Number(d));\n if (isNaN(date.getTime())) return null;\n return date;\n}\n\n/** Format Date → \"HH:MM\" for native `<input type=\"time\">` value. */\nexport function formatISOTime(d: Date | null | undefined): string {\n if (!d) return '';\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n return `${h}:${m}`;\n}\n\n/** Parse \"HH:MM\" → { hours, minutes }. Returns null for invalid input. */\nexport function parseISOTime(s: string | null | undefined): { hours: number; minutes: number } | null {\n if (!s) return null;\n const m = /^(\\d{2}):(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, h, mi] = m;\n if (!h || !mi) return null;\n const hours = Number(h);\n const minutes = Number(mi);\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) return null;\n return { hours, minutes };\n}\n\nexport function clampDate(d: Date, min?: Date | null, max?: Date | null): Date {\n if (min && d < min) return min;\n if (max && d > max) return max;\n return d;\n}\n\nexport function isDateDisabled(\n d: Date,\n options: { min?: Date | null; max?: Date | null; isDisabled?: (d: Date) => boolean },\n): boolean {\n const { min, max, isDisabled } = options;\n if (min && startOfDay(d) < startOfDay(min)) return true;\n if (max && startOfDay(d) > startOfDay(max)) return true;\n if (isDisabled?.(d)) return true;\n return false;\n}\n\nexport function isInRange(\n d: Date,\n start: Date | null | undefined,\n end: Date | null | undefined,\n): boolean {\n if (!start || !end) return false;\n const t = startOfDay(d).getTime();\n const s = startOfDay(start).getTime();\n const e = startOfDay(end).getTime();\n return t >= Math.min(s, e) && t <= Math.max(s, e);\n}\n"]}
|