@kalyx/react 1.0.0-rc.12 → 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 +40 -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 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -6
- package/dist/index.d.ts +19 -6
- package/dist/index.js +40 -15
- package/dist/index.js.map +1 -1
- package/package.json +13 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +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, DateFnsAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Props for the DatePicker Root component.
|
|
@@ -61,7 +62,7 @@ interface DatePickerRootProps {
|
|
|
61
62
|
/** Child components */
|
|
62
63
|
children: ReactNode;
|
|
63
64
|
}
|
|
64
|
-
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;
|
|
65
66
|
|
|
66
67
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
67
68
|
children?: ReactNode;
|
|
@@ -313,7 +314,7 @@ interface RangePickerRootProps {
|
|
|
313
314
|
/** Child components */
|
|
314
315
|
children: ReactNode;
|
|
315
316
|
}
|
|
316
|
-
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;
|
|
317
318
|
|
|
318
319
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
319
320
|
children?: ReactNode;
|
|
@@ -503,12 +504,18 @@ interface TimePickerRootProps {
|
|
|
503
504
|
* predicate returns `true` for every step within the hour. Always receives 24-hour values.
|
|
504
505
|
*/
|
|
505
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;
|
|
506
513
|
/** Override ARIA labels (defaults to English) */
|
|
507
514
|
labels?: Partial<TimePickerLabels>;
|
|
508
515
|
/** Child components */
|
|
509
516
|
children: ReactNode;
|
|
510
517
|
}
|
|
511
|
-
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;
|
|
512
519
|
|
|
513
520
|
interface TimePickerHourListClassNames {
|
|
514
521
|
root?: string;
|
|
@@ -661,7 +668,7 @@ interface DateTimePickerRootProps {
|
|
|
661
668
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
662
669
|
* - Escape / outside click -> close the popover (commit)
|
|
663
670
|
*/
|
|
664
|
-
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;
|
|
665
672
|
|
|
666
673
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
667
674
|
}
|
|
@@ -1053,6 +1060,12 @@ interface UseTimePickerOptions {
|
|
|
1053
1060
|
withSeconds?: boolean;
|
|
1054
1061
|
/** IANA timezone for time interpretation (see TimePickerRoot#displayTimezone) */
|
|
1055
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;
|
|
1056
1069
|
}
|
|
1057
1070
|
interface UseTimePickerReturn {
|
|
1058
1071
|
/** Current ISO datetime value */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +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, DateFnsAdapter, DatePickerLabels, DateRange, DateTimePickerLabels, DisabledRule, ISODateString, RangePickerLabels, TimePickerLabels, TimeValue, WeekStartsOn, WeekdayInfo } from '@kalyx/core';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Props for the DatePicker Root component.
|
|
@@ -61,7 +62,7 @@ interface DatePickerRootProps {
|
|
|
61
62
|
/** Child components */
|
|
62
63
|
children: ReactNode;
|
|
63
64
|
}
|
|
64
|
-
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;
|
|
65
66
|
|
|
66
67
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
67
68
|
children?: ReactNode;
|
|
@@ -313,7 +314,7 @@ interface RangePickerRootProps {
|
|
|
313
314
|
/** Child components */
|
|
314
315
|
children: ReactNode;
|
|
315
316
|
}
|
|
316
|
-
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;
|
|
317
318
|
|
|
318
319
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
319
320
|
children?: ReactNode;
|
|
@@ -503,12 +504,18 @@ interface TimePickerRootProps {
|
|
|
503
504
|
* predicate returns `true` for every step within the hour. Always receives 24-hour values.
|
|
504
505
|
*/
|
|
505
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;
|
|
506
513
|
/** Override ARIA labels (defaults to English) */
|
|
507
514
|
labels?: Partial<TimePickerLabels>;
|
|
508
515
|
/** Child components */
|
|
509
516
|
children: ReactNode;
|
|
510
517
|
}
|
|
511
|
-
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;
|
|
512
519
|
|
|
513
520
|
interface TimePickerHourListClassNames {
|
|
514
521
|
root?: string;
|
|
@@ -661,7 +668,7 @@ interface DateTimePickerRootProps {
|
|
|
661
668
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
662
669
|
* - Escape / outside click -> close the popover (commit)
|
|
663
670
|
*/
|
|
664
|
-
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;
|
|
665
672
|
|
|
666
673
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
667
674
|
}
|
|
@@ -1053,6 +1060,12 @@ interface UseTimePickerOptions {
|
|
|
1053
1060
|
withSeconds?: boolean;
|
|
1054
1061
|
/** IANA timezone for time interpretation (see TimePickerRoot#displayTimezone) */
|
|
1055
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;
|
|
1056
1069
|
}
|
|
1057
1070
|
interface UseTimePickerReturn {
|
|
1058
1071
|
/** Current ISO datetime value */
|
package/dist/index.js
CHANGED
|
@@ -1,11 +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
|
-
import { parseInputValue, formatTimeString, parseTimeString, getTimeInTimezone, getTime,
|
|
4
|
-
export { DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS
|
|
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';
|
|
6
|
+
export { DEFAULT_DATEPICKER_LABELS, DEFAULT_DATETIMEPICKER_LABELS, DEFAULT_RANGEPICKER_LABELS, DEFAULT_TIMEPICKER_LABELS } from '@kalyx/core';
|
|
5
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
6
8
|
import { offset, flip, shift, useFloating, autoUpdate } from '@floating-ui/react';
|
|
7
9
|
|
|
8
|
-
// 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
|
+
}
|
|
9
27
|
var DatePickerContext = createContext(null);
|
|
10
28
|
function useDatePickerContext(componentName) {
|
|
11
29
|
const context = useContext(DatePickerContext);
|
|
@@ -44,10 +62,11 @@ function DatePickerRoot({
|
|
|
44
62
|
displayFormat = "yyyy-MM-dd",
|
|
45
63
|
locale = "en-US",
|
|
46
64
|
displayTimezone,
|
|
47
|
-
adapter
|
|
65
|
+
adapter: adapterProp,
|
|
48
66
|
labels: labelsProp,
|
|
49
67
|
children
|
|
50
68
|
}) {
|
|
69
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "DatePicker");
|
|
51
70
|
const pickerId = useId();
|
|
52
71
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
53
72
|
const referenceRef = useRef(null);
|
|
@@ -1125,10 +1144,11 @@ function RangePickerRoot({
|
|
|
1125
1144
|
displayFormat = "yyyy-MM-dd",
|
|
1126
1145
|
locale = "en-US",
|
|
1127
1146
|
displayTimezone,
|
|
1128
|
-
adapter
|
|
1147
|
+
adapter: adapterProp,
|
|
1129
1148
|
labels: labelsProp,
|
|
1130
1149
|
children
|
|
1131
1150
|
}) {
|
|
1151
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "RangePicker");
|
|
1132
1152
|
const pickerId = useId();
|
|
1133
1153
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
1134
1154
|
const referenceRef = useRef(null);
|
|
@@ -1803,9 +1823,11 @@ function TimePickerRoot({
|
|
|
1803
1823
|
disabled = false,
|
|
1804
1824
|
readOnly = false,
|
|
1805
1825
|
filterTime,
|
|
1826
|
+
adapter: adapterProp,
|
|
1806
1827
|
labels: labelsProp,
|
|
1807
1828
|
children
|
|
1808
1829
|
}) {
|
|
1830
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "TimePicker");
|
|
1809
1831
|
const pickerId = useId();
|
|
1810
1832
|
const mergedLabels = useMemo(
|
|
1811
1833
|
() => ({ ...DEFAULT_TIMEPICKER_LABELS, ...labelsProp }),
|
|
@@ -1823,14 +1845,14 @@ function TimePickerRoot({
|
|
|
1823
1845
|
const setTime$1 = useCallback(
|
|
1824
1846
|
(partial) => {
|
|
1825
1847
|
if (disabled || readOnly) return;
|
|
1826
|
-
const base = currentValue ??
|
|
1848
|
+
const base = currentValue ?? adapter.today(displayTimezone);
|
|
1827
1849
|
const newIso = displayTimezone ? setTimeInTimezone(base, partial, displayTimezone) : setTime(base, partial);
|
|
1828
1850
|
if (!isControlled) {
|
|
1829
1851
|
setUncontrolledValue(newIso);
|
|
1830
1852
|
}
|
|
1831
1853
|
onChange?.(newIso);
|
|
1832
1854
|
},
|
|
1833
|
-
[disabled, readOnly, currentValue, displayTimezone, isControlled, onChange]
|
|
1855
|
+
[disabled, readOnly, currentValue, displayTimezone, isControlled, onChange, adapter]
|
|
1834
1856
|
);
|
|
1835
1857
|
const contextValue = useMemo(
|
|
1836
1858
|
() => ({
|
|
@@ -2206,10 +2228,11 @@ function DateTimePickerRoot({
|
|
|
2206
2228
|
displayFormat = "yyyy-MM-dd HH:mm",
|
|
2207
2229
|
locale = "en-US",
|
|
2208
2230
|
displayTimezone,
|
|
2209
|
-
adapter
|
|
2231
|
+
adapter: adapterProp,
|
|
2210
2232
|
labels: labelsProp,
|
|
2211
2233
|
children
|
|
2212
2234
|
}) {
|
|
2235
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "DateTimePicker");
|
|
2213
2236
|
const pickerId = useId();
|
|
2214
2237
|
const mergedDateLabels = useMemo(
|
|
2215
2238
|
() => ({ ...DEFAULT_DATEPICKER_LABELS, ...labelsProp }),
|
|
@@ -2744,9 +2767,10 @@ function useDatePicker(options = {}) {
|
|
|
2744
2767
|
onChange,
|
|
2745
2768
|
disabled = [],
|
|
2746
2769
|
weekStartsOn = 0,
|
|
2747
|
-
adapter
|
|
2770
|
+
adapter: adapterProp,
|
|
2748
2771
|
displayTimezone
|
|
2749
2772
|
} = options;
|
|
2773
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useDatePicker");
|
|
2750
2774
|
const pickerId = useId();
|
|
2751
2775
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2752
2776
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
@@ -2827,9 +2851,10 @@ function useRangePicker(options = {}) {
|
|
|
2827
2851
|
onChange,
|
|
2828
2852
|
disabled = [],
|
|
2829
2853
|
weekStartsOn = 0,
|
|
2830
|
-
adapter
|
|
2854
|
+
adapter: adapterProp,
|
|
2831
2855
|
displayTimezone
|
|
2832
2856
|
} = options;
|
|
2857
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useRangePicker");
|
|
2833
2858
|
const pickerId = useId();
|
|
2834
2859
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2835
2860
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
@@ -2934,9 +2959,6 @@ function useRangePicker(options = {}) {
|
|
|
2934
2959
|
adapter
|
|
2935
2960
|
};
|
|
2936
2961
|
}
|
|
2937
|
-
function getDefaultIso() {
|
|
2938
|
-
return DateFnsAdapter.today();
|
|
2939
|
-
}
|
|
2940
2962
|
function useTimePicker(options = {}) {
|
|
2941
2963
|
const {
|
|
2942
2964
|
value: controlledValue,
|
|
@@ -2944,15 +2966,17 @@ function useTimePicker(options = {}) {
|
|
|
2944
2966
|
onChange,
|
|
2945
2967
|
format = "24h",
|
|
2946
2968
|
step = 1,
|
|
2947
|
-
displayTimezone
|
|
2969
|
+
displayTimezone,
|
|
2970
|
+
adapter: adapterProp
|
|
2948
2971
|
} = options;
|
|
2972
|
+
const adapter = resolveAdapter(adapterProp, getDefaultAdapter(), "useTimePicker");
|
|
2949
2973
|
const pickerId = useId();
|
|
2950
2974
|
const isControlled = useRef(controlledValue !== void 0).current;
|
|
2951
2975
|
const [uncontrolledValue, setUncontrolledValue] = useState(
|
|
2952
2976
|
defaultValue ?? null
|
|
2953
2977
|
);
|
|
2954
2978
|
const currentValue = isControlled ? controlledValue ?? null : uncontrolledValue;
|
|
2955
|
-
const baseIso = currentValue ??
|
|
2979
|
+
const baseIso = currentValue ?? adapter.today();
|
|
2956
2980
|
const currentTime = useMemo(
|
|
2957
2981
|
() => displayTimezone ? getTimeInTimezone(baseIso, displayTimezone) : getTime(baseIso),
|
|
2958
2982
|
[baseIso, displayTimezone]
|
|
@@ -3002,6 +3026,7 @@ function useTimePicker(options = {}) {
|
|
|
3002
3026
|
pickerId
|
|
3003
3027
|
};
|
|
3004
3028
|
}
|
|
3029
|
+
setDefaultAdapter(DateFnsAdapter);
|
|
3005
3030
|
|
|
3006
3031
|
export { DatePicker, DateTimePicker, MonthPicker, RangePicker, TimePicker, WeekPicker, YearPicker, useDatePicker, useRangePicker, useTimePicker };
|
|
3007
3032
|
//# sourceMappingURL=index.js.map
|