@kalyx/react 1.0.0-rc.13 → 1.0.0-rc.14
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/CHANGELOG.md +6 -0
- package/README.md +15 -0
- package/dist/headless.cjs +3052 -0
- package/dist/headless.cjs.map +1 -0
- package/dist/headless.d.cts +5 -0
- package/dist/headless.d.ts +5 -0
- package/dist/headless.js +3026 -0
- package/dist/headless.js.map +1 -0
- package/dist/index.cjs +41 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -7
- package/dist/index.d.ts +19 -7
- package/dist/index.js +38 -15
- package/dist/index.js.map +1 -1
- package/package.json +11 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
2
|
+
import { ISODateString, DisabledRule, WeekStartsOn, DateAdapter, DatePickerLabels, DateRange, RangePickerLabels, TimePickerLabels, DateTimePickerLabels, CalendarGrid, TimeValue } from '@kalyx/core';
|
|
3
|
+
export { CalendarDay, CalendarGrid, CalendarOptions, CalendarWeek, DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS, DateAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
1
4
|
import * as react from 'react';
|
|
2
5
|
import { ReactNode, HTMLAttributes, InputHTMLAttributes, ButtonHTMLAttributes } from 'react';
|
|
3
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import { ISODateString, DisabledRule, WeekStartsOn, DateAdapter, DatePickerLabels, DateRange, RangePickerLabels, TimePickerLabels, DateTimePickerLabels, CalendarGrid, TimeValue } from '@kalyx/core';
|
|
5
|
-
export { CalendarDay, CalendarGrid, CalendarOptions, CalendarWeek, DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS, DateAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
6
|
-
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Props for the DatePicker Root component.
|
|
@@ -62,7 +62,7 @@ interface DatePickerRootProps {
|
|
|
62
62
|
/** Child components */
|
|
63
63
|
children: ReactNode;
|
|
64
64
|
}
|
|
65
|
-
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
65
|
+
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
66
66
|
|
|
67
67
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
68
68
|
children?: ReactNode;
|
|
@@ -314,7 +314,7 @@ interface RangePickerRootProps {
|
|
|
314
314
|
/** Child components */
|
|
315
315
|
children: ReactNode;
|
|
316
316
|
}
|
|
317
|
-
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
317
|
+
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
318
318
|
|
|
319
319
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
320
320
|
children?: ReactNode;
|
|
@@ -504,12 +504,18 @@ interface TimePickerRootProps {
|
|
|
504
504
|
* predicate returns `true` for every step within the hour. Always receives 24-hour values.
|
|
505
505
|
*/
|
|
506
506
|
filterTime?: (hours: number, minutes: number) => boolean;
|
|
507
|
+
/**
|
|
508
|
+
* Date adapter. Only used when the controlled `value` is `null` to derive
|
|
509
|
+
* "today" as the base for the first time edit. The main `@kalyx/react` entry
|
|
510
|
+
* auto-injects `DateFnsAdapter`; on `@kalyx/react/headless` you must pass one.
|
|
511
|
+
*/
|
|
512
|
+
adapter?: DateAdapter;
|
|
507
513
|
/** Override ARIA labels (defaults to English) */
|
|
508
514
|
labels?: Partial<TimePickerLabels>;
|
|
509
515
|
/** Child components */
|
|
510
516
|
children: ReactNode;
|
|
511
517
|
}
|
|
512
|
-
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, displayTimezone, disabled, readOnly, filterTime, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
518
|
+
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, displayTimezone, disabled, readOnly, filterTime, adapter: adapterProp, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
513
519
|
|
|
514
520
|
interface TimePickerHourListClassNames {
|
|
515
521
|
root?: string;
|
|
@@ -662,7 +668,7 @@ interface DateTimePickerRootProps {
|
|
|
662
668
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
663
669
|
* - Escape / outside click -> close the popover (commit)
|
|
664
670
|
*/
|
|
665
|
-
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, format, step, withSeconds, filterTime, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
671
|
+
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, format, step, withSeconds, filterTime, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
666
672
|
|
|
667
673
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
668
674
|
}
|
|
@@ -1054,6 +1060,12 @@ interface UseTimePickerOptions {
|
|
|
1054
1060
|
withSeconds?: boolean;
|
|
1055
1061
|
/** IANA timezone for time interpretation (see TimePickerRoot#displayTimezone) */
|
|
1056
1062
|
displayTimezone?: string;
|
|
1063
|
+
/**
|
|
1064
|
+
* Date adapter. Only used when the controlled `value` is `null` to derive
|
|
1065
|
+
* "today" as the base for the first time edit. The main `@kalyx/react` entry
|
|
1066
|
+
* auto-injects `DateFnsAdapter`; on `@kalyx/react/headless` you must pass one.
|
|
1067
|
+
*/
|
|
1068
|
+
adapter?: DateAdapter;
|
|
1057
1069
|
}
|
|
1058
1070
|
interface UseTimePickerReturn {
|
|
1059
1071
|
/** Current ISO datetime value */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
2
|
+
import { ISODateString, DisabledRule, WeekStartsOn, DateAdapter, DatePickerLabels, DateRange, RangePickerLabels, TimePickerLabels, DateTimePickerLabels, CalendarGrid, TimeValue } from '@kalyx/core';
|
|
3
|
+
export { CalendarDay, CalendarGrid, CalendarOptions, CalendarWeek, DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS, DateAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
1
4
|
import * as react from 'react';
|
|
2
5
|
import { ReactNode, HTMLAttributes, InputHTMLAttributes, ButtonHTMLAttributes } from 'react';
|
|
3
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import { ISODateString, DisabledRule, WeekStartsOn, DateAdapter, DatePickerLabels, DateRange, RangePickerLabels, TimePickerLabels, DateTimePickerLabels, CalendarGrid, TimeValue } from '@kalyx/core';
|
|
5
|
-
export { CalendarDay, CalendarGrid, CalendarOptions, CalendarWeek, DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS, DateAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
6
|
-
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Props for the DatePicker Root component.
|
|
@@ -62,7 +62,7 @@ interface DatePickerRootProps {
|
|
|
62
62
|
/** Child components */
|
|
63
63
|
children: ReactNode;
|
|
64
64
|
}
|
|
65
|
-
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
65
|
+
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
66
66
|
|
|
67
67
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
68
68
|
children?: ReactNode;
|
|
@@ -314,7 +314,7 @@ interface RangePickerRootProps {
|
|
|
314
314
|
/** Child components */
|
|
315
315
|
children: ReactNode;
|
|
316
316
|
}
|
|
317
|
-
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
317
|
+
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
318
318
|
|
|
319
319
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
320
320
|
children?: ReactNode;
|
|
@@ -504,12 +504,18 @@ interface TimePickerRootProps {
|
|
|
504
504
|
* predicate returns `true` for every step within the hour. Always receives 24-hour values.
|
|
505
505
|
*/
|
|
506
506
|
filterTime?: (hours: number, minutes: number) => boolean;
|
|
507
|
+
/**
|
|
508
|
+
* Date adapter. Only used when the controlled `value` is `null` to derive
|
|
509
|
+
* "today" as the base for the first time edit. The main `@kalyx/react` entry
|
|
510
|
+
* auto-injects `DateFnsAdapter`; on `@kalyx/react/headless` you must pass one.
|
|
511
|
+
*/
|
|
512
|
+
adapter?: DateAdapter;
|
|
507
513
|
/** Override ARIA labels (defaults to English) */
|
|
508
514
|
labels?: Partial<TimePickerLabels>;
|
|
509
515
|
/** Child components */
|
|
510
516
|
children: ReactNode;
|
|
511
517
|
}
|
|
512
|
-
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, displayTimezone, disabled, readOnly, filterTime, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
518
|
+
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, displayTimezone, disabled, readOnly, filterTime, adapter: adapterProp, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
513
519
|
|
|
514
520
|
interface TimePickerHourListClassNames {
|
|
515
521
|
root?: string;
|
|
@@ -662,7 +668,7 @@ interface DateTimePickerRootProps {
|
|
|
662
668
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
663
669
|
* - Escape / outside click -> close the popover (commit)
|
|
664
670
|
*/
|
|
665
|
-
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, format, step, withSeconds, filterTime, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
671
|
+
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, format, step, withSeconds, filterTime, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter: adapterProp, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
666
672
|
|
|
667
673
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
668
674
|
}
|
|
@@ -1054,6 +1060,12 @@ interface UseTimePickerOptions {
|
|
|
1054
1060
|
withSeconds?: boolean;
|
|
1055
1061
|
/** IANA timezone for time interpretation (see TimePickerRoot#displayTimezone) */
|
|
1056
1062
|
displayTimezone?: string;
|
|
1063
|
+
/**
|
|
1064
|
+
* Date adapter. Only used when the controlled `value` is `null` to derive
|
|
1065
|
+
* "today" as the base for the first time edit. The main `@kalyx/react` entry
|
|
1066
|
+
* auto-injects `DateFnsAdapter`; on `@kalyx/react/headless` you must pass one.
|
|
1067
|
+
*/
|
|
1068
|
+
adapter?: DateAdapter;
|
|
1057
1069
|
}
|
|
1058
1070
|
interface UseTimePickerReturn {
|
|
1059
1071
|
/** Current ISO datetime value */
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
3
|
+
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
2
4
|
import { createContext, forwardRef, useState, useRef, useEffect, useCallback, useContext, useId, useMemo } from 'react';
|
|
3
5
|
import { parseInputValue, formatTimeString, parseTimeString, getTimeInTimezone, getTime, DEFAULT_DATEPICKER_LABELS, civilMidnightFromUtcDay, getMonthName, getWeekdayNames, getCalendarDays, formatMonthYear, isDateDisabled, getISOWeekNumber, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS, setTimeInTimezone, setTime, to12Hour, to24Hour, generateMinutes, generateHours, formatFullDate } from '@kalyx/core';
|
|
4
6
|
export { DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS } from '@kalyx/core';
|
|
5
|
-
import { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
6
|
-
export { DateFnsAdapter } from '@kalyx/adapter-date-fns';
|
|
7
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
8
8
|
import { offset, flip, shift, useFloating, autoUpdate } from '@floating-ui/react';
|
|
9
9
|
|
|
10
|
-
// src/
|
|
10
|
+
// src/index.ts
|
|
11
|
+
|
|
12
|
+
// src/internal/defaultAdapter.ts
|
|
13
|
+
var __defaultAdapter = null;
|
|
14
|
+
function setDefaultAdapter(adapter) {
|
|
15
|
+
__defaultAdapter = adapter;
|
|
16
|
+
}
|
|
17
|
+
function getDefaultAdapter() {
|
|
18
|
+
return __defaultAdapter;
|
|
19
|
+
}
|
|
20
|
+
function resolveAdapter(passed, fallback, componentName) {
|
|
21
|
+
if (passed) return passed;
|
|
22
|
+
if (fallback) return fallback;
|
|
23
|
+
throw new Error(
|
|
24
|
+
`[@kalyx/react/headless] ${componentName} requires an adapter. Pass one via <${componentName} adapter={...}>. If you don't need a custom adapter, import from '@kalyx/react' instead.`
|
|
25
|
+
);
|
|
26
|
+
}
|
|
11
27
|
var DatePickerContext = createContext(null);
|
|
12
28
|
function useDatePickerContext(componentName) {
|
|
13
29
|
const context = useContext(DatePickerContext);
|
|
@@ -46,10 +62,11 @@ function DatePickerRoot({
|
|
|
46
62
|
displayFormat = "yyyy-MM-dd",
|
|
47
63
|
locale = "en-US",
|
|
48
64
|
displayTimezone,
|
|
49
|
-
adapter
|
|
65
|
+
adapter: adapterProp,
|
|
50
66
|
labels: labelsProp,
|
|
51
67
|
children
|
|
52
68
|
}) {
|
|
69
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "DatePicker");
|
|
53
70
|
const pickerId = useId();
|
|
54
71
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
55
72
|
const referenceRef = useRef(null);
|
|
@@ -1127,10 +1144,11 @@ function RangePickerRoot({
|
|
|
1127
1144
|
displayFormat = "yyyy-MM-dd",
|
|
1128
1145
|
locale = "en-US",
|
|
1129
1146
|
displayTimezone,
|
|
1130
|
-
adapter
|
|
1147
|
+
adapter: adapterProp,
|
|
1131
1148
|
labels: labelsProp,
|
|
1132
1149
|
children
|
|
1133
1150
|
}) {
|
|
1151
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "RangePicker");
|
|
1134
1152
|
const pickerId = useId();
|
|
1135
1153
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
1136
1154
|
const referenceRef = useRef(null);
|
|
@@ -1805,9 +1823,11 @@ function TimePickerRoot({
|
|
|
1805
1823
|
disabled = false,
|
|
1806
1824
|
readOnly = false,
|
|
1807
1825
|
filterTime,
|
|
1826
|
+
adapter: adapterProp,
|
|
1808
1827
|
labels: labelsProp,
|
|
1809
1828
|
children
|
|
1810
1829
|
}) {
|
|
1830
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "TimePicker");
|
|
1811
1831
|
const pickerId = useId();
|
|
1812
1832
|
const mergedLabels = useMemo(
|
|
1813
1833
|
() => ({ ...DEFAULT_TIMEPICKER_LABELS, ...labelsProp }),
|
|
@@ -1825,14 +1845,14 @@ function TimePickerRoot({
|
|
|
1825
1845
|
const setTime$1 = useCallback(
|
|
1826
1846
|
(partial) => {
|
|
1827
1847
|
if (disabled || readOnly) return;
|
|
1828
|
-
const base = currentValue ??
|
|
1848
|
+
const base = currentValue ?? adapter.today(displayTimezone);
|
|
1829
1849
|
const newIso = displayTimezone ? setTimeInTimezone(base, partial, displayTimezone) : setTime(base, partial);
|
|
1830
1850
|
if (!isControlled) {
|
|
1831
1851
|
setUncontrolledValue(newIso);
|
|
1832
1852
|
}
|
|
1833
1853
|
onChange?.(newIso);
|
|
1834
1854
|
},
|
|
1835
|
-
[disabled, readOnly, currentValue, displayTimezone, isControlled, onChange]
|
|
1855
|
+
[disabled, readOnly, currentValue, displayTimezone, isControlled, onChange, adapter]
|
|
1836
1856
|
);
|
|
1837
1857
|
const contextValue = useMemo(
|
|
1838
1858
|
() => ({
|
|
@@ -2208,10 +2228,11 @@ function DateTimePickerRoot({
|
|
|
2208
2228
|
displayFormat = "yyyy-MM-dd HH:mm",
|
|
2209
2229
|
locale = "en-US",
|
|
2210
2230
|
displayTimezone,
|
|
2211
|
-
adapter
|
|
2231
|
+
adapter: adapterProp,
|
|
2212
2232
|
labels: labelsProp,
|
|
2213
2233
|
children
|
|
2214
2234
|
}) {
|
|
2235
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "DateTimePicker");
|
|
2215
2236
|
const pickerId = useId();
|
|
2216
2237
|
const mergedDateLabels = useMemo(
|
|
2217
2238
|
() => ({ ...DEFAULT_DATEPICKER_LABELS, ...labelsProp }),
|
|
@@ -2746,9 +2767,10 @@ function useDatePicker(options = {}) {
|
|
|
2746
2767
|
onChange,
|
|
2747
2768
|
disabled = [],
|
|
2748
2769
|
weekStartsOn = 0,
|
|
2749
|
-
adapter
|
|
2770
|
+
adapter: adapterProp,
|
|
2750
2771
|
displayTimezone
|
|
2751
2772
|
} = options;
|
|
2773
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useDatePicker");
|
|
2752
2774
|
const pickerId = useId();
|
|
2753
2775
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2754
2776
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
@@ -2829,9 +2851,10 @@ function useRangePicker(options = {}) {
|
|
|
2829
2851
|
onChange,
|
|
2830
2852
|
disabled = [],
|
|
2831
2853
|
weekStartsOn = 0,
|
|
2832
|
-
adapter
|
|
2854
|
+
adapter: adapterProp,
|
|
2833
2855
|
displayTimezone
|
|
2834
2856
|
} = options;
|
|
2857
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useRangePicker");
|
|
2835
2858
|
const pickerId = useId();
|
|
2836
2859
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2837
2860
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
@@ -2936,9 +2959,6 @@ function useRangePicker(options = {}) {
|
|
|
2936
2959
|
adapter
|
|
2937
2960
|
};
|
|
2938
2961
|
}
|
|
2939
|
-
function getDefaultIso() {
|
|
2940
|
-
return DateFnsAdapter.today();
|
|
2941
|
-
}
|
|
2942
2962
|
function useTimePicker(options = {}) {
|
|
2943
2963
|
const {
|
|
2944
2964
|
value: controlledValue,
|
|
@@ -2946,15 +2966,17 @@ function useTimePicker(options = {}) {
|
|
|
2946
2966
|
onChange,
|
|
2947
2967
|
format = "24h",
|
|
2948
2968
|
step = 1,
|
|
2949
|
-
displayTimezone
|
|
2969
|
+
displayTimezone,
|
|
2970
|
+
adapter: adapterProp
|
|
2950
2971
|
} = options;
|
|
2972
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useTimePicker");
|
|
2951
2973
|
const pickerId = useId();
|
|
2952
2974
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2953
2975
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
2954
2976
|
defaultValue ?? null
|
|
2955
2977
|
);
|
|
2956
2978
|
const currentValue = isControlled ? controlledValue ?? null : uncontrolledValue;
|
|
2957
|
-
const baseIso = currentValue ??
|
|
2979
|
+
const baseIso = currentValue ?? adapter.today();
|
|
2958
2980
|
const currentTime = useMemo(
|
|
2959
2981
|
() => displayTimezone ? getTimeInTimezone(baseIso, displayTimezone) : getTime(baseIso),
|
|
2960
2982
|
[baseIso, displayTimezone]
|
|
@@ -3004,6 +3026,7 @@ function useTimePicker(options = {}) {
|
|
|
3004
3026
|
pickerId
|
|
3005
3027
|
};
|
|
3006
3028
|
}
|
|
3029
|
+
setDefaultAdapter(DateFnsAdapter);
|
|
3007
3030
|
|
|
3008
3031
|
export { DatePicker, DateTimePicker, MonthPicker, RangePicker, TimePicker, WeekPicker, YearPicker, useDatePicker, useRangePicker, useTimePicker };
|
|
3009
3032
|
//# sourceMappingURL=index.js.map
|