frey-ui 1.0.16 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Calendar/calendar.css +216 -0
- package/dist/cjs/Calendar/calendar.module.css.cjs +10 -0
- package/dist/cjs/Calendar/calendar.module.css.cjs.map +1 -0
- package/dist/cjs/Calendar/calendarInteractions.cjs +34 -0
- package/dist/cjs/Calendar/calendarInteractions.cjs.map +1 -0
- package/dist/cjs/Calendar/calendarModel.cjs +232 -0
- package/dist/cjs/Calendar/calendarModel.cjs.map +1 -0
- package/dist/cjs/Calendar/index.cjs +204 -0
- package/dist/cjs/Calendar/index.cjs.map +1 -0
- package/dist/cjs/DateField/DateFieldSegments.cjs +71 -0
- package/dist/cjs/DateField/DateFieldSegments.cjs.map +1 -0
- package/dist/cjs/DateField/DateSegmentInput.cjs +17 -0
- package/dist/cjs/DateField/DateSegmentInput.cjs.map +1 -0
- package/dist/cjs/DateField/dateFieldInteractions.cjs +205 -0
- package/dist/cjs/DateField/dateFieldInteractions.cjs.map +1 -0
- package/dist/cjs/DateField/dateFieldState.cjs +127 -0
- package/dist/cjs/DateField/dateFieldState.cjs.map +1 -0
- package/dist/cjs/DateField/datefield.css +134 -0
- package/dist/cjs/DateField/datefield.module.css.cjs +10 -0
- package/dist/cjs/DateField/datefield.module.css.cjs.map +1 -0
- package/dist/cjs/DateField/index.cjs +203 -0
- package/dist/cjs/DateField/index.cjs.map +1 -0
- package/dist/cjs/DatePicker/datepicker.css +24 -0
- package/dist/cjs/DatePicker/datepicker.module.css.cjs +10 -0
- package/dist/cjs/DatePicker/datepicker.module.css.cjs.map +1 -0
- package/dist/cjs/DatePicker/index.cjs +98 -0
- package/dist/cjs/DatePicker/index.cjs.map +1 -0
- package/dist/cjs/Icons/CalendarIcon.cjs +12 -0
- package/dist/cjs/Icons/CalendarIcon.cjs.map +1 -0
- package/dist/cjs/Popover/index.cjs +2 -2
- package/dist/cjs/Popover/index.cjs.map +1 -1
- package/dist/cjs/SegmentedControl/index.cjs +60 -0
- package/dist/cjs/SegmentedControl/index.cjs.map +1 -0
- package/dist/cjs/SegmentedControl/segmentedcontrol.css +131 -0
- package/dist/cjs/SegmentedControl/segmentedcontrol.module.css.cjs +10 -0
- package/dist/cjs/SegmentedControl/segmentedcontrol.module.css.cjs.map +1 -0
- package/dist/cjs/date/dateEngine.cjs +591 -0
- package/dist/cjs/date/dateEngine.cjs.map +1 -0
- package/dist/cjs/date/dateLocale.cjs +239 -0
- package/dist/cjs/date/dateLocale.cjs.map +1 -0
- package/dist/cjs/date/japaneseEraData.cjs +252 -0
- package/dist/cjs/date/japaneseEraData.cjs.map +1 -0
- package/dist/cjs/date/useDateLocale.cjs +24 -0
- package/dist/cjs/date/useDateLocale.cjs.map +1 -0
- package/dist/cjs/index.cjs +68 -58
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/theme.css +32 -0
- package/dist/esm/Calendar/calendar.css +216 -0
- package/dist/esm/Calendar/calendar.module.css.mjs +6 -0
- package/dist/esm/Calendar/calendar.module.css.mjs.map +1 -0
- package/dist/esm/Calendar/calendarInteractions.mjs +32 -0
- package/dist/esm/Calendar/calendarInteractions.mjs.map +1 -0
- package/dist/esm/Calendar/calendarModel.mjs +224 -0
- package/dist/esm/Calendar/calendarModel.mjs.map +1 -0
- package/dist/esm/Calendar/index.mjs +200 -0
- package/dist/esm/Calendar/index.mjs.map +1 -0
- package/dist/esm/DateField/DateFieldSegments.mjs +69 -0
- package/dist/esm/DateField/DateFieldSegments.mjs.map +1 -0
- package/dist/esm/DateField/DateSegmentInput.mjs +15 -0
- package/dist/esm/DateField/DateSegmentInput.mjs.map +1 -0
- package/dist/esm/DateField/dateFieldInteractions.mjs +198 -0
- package/dist/esm/DateField/dateFieldInteractions.mjs.map +1 -0
- package/dist/esm/DateField/dateFieldState.mjs +119 -0
- package/dist/esm/DateField/dateFieldState.mjs.map +1 -0
- package/dist/esm/DateField/datefield.css +134 -0
- package/dist/esm/DateField/datefield.module.css.mjs +6 -0
- package/dist/esm/DateField/datefield.module.css.mjs.map +1 -0
- package/dist/esm/DateField/index.mjs +198 -0
- package/dist/esm/DateField/index.mjs.map +1 -0
- package/dist/esm/DatePicker/datepicker.css +24 -0
- package/dist/esm/DatePicker/datepicker.module.css.mjs +6 -0
- package/dist/esm/DatePicker/datepicker.module.css.mjs.map +1 -0
- package/dist/esm/DatePicker/index.mjs +94 -0
- package/dist/esm/DatePicker/index.mjs.map +1 -0
- package/dist/esm/Icons/CalendarIcon.mjs +10 -0
- package/dist/esm/Icons/CalendarIcon.mjs.map +1 -0
- package/dist/esm/Popover/index.mjs +2 -2
- package/dist/esm/Popover/index.mjs.map +1 -1
- package/dist/esm/SegmentedControl/index.mjs +55 -0
- package/dist/esm/SegmentedControl/index.mjs.map +1 -0
- package/dist/esm/SegmentedControl/segmentedcontrol.css +131 -0
- package/dist/esm/SegmentedControl/segmentedcontrol.module.css.mjs +6 -0
- package/dist/esm/SegmentedControl/segmentedcontrol.module.css.mjs.map +1 -0
- package/dist/esm/date/dateEngine.mjs +573 -0
- package/dist/esm/date/dateEngine.mjs.map +1 -0
- package/dist/esm/date/dateLocale.mjs +226 -0
- package/dist/esm/date/dateLocale.mjs.map +1 -0
- package/dist/esm/date/japaneseEraData.mjs +250 -0
- package/dist/esm/date/japaneseEraData.mjs.map +1 -0
- package/dist/esm/date/useDateLocale.mjs +22 -0
- package/dist/esm/date/useDateLocale.mjs.map +1 -0
- package/dist/esm/index.mjs +5 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/theme.css +32 -0
- package/dist/index.d.ts +116 -3
- package/dist/types/src/Calendar/calendarInteractions.d.ts +9 -0
- package/dist/types/src/Calendar/calendarInteractions.d.ts.map +1 -0
- package/dist/types/src/Calendar/calendarModel.d.ts +81 -0
- package/dist/types/src/Calendar/calendarModel.d.ts.map +1 -0
- package/dist/types/src/Calendar/index.d.ts +26 -0
- package/dist/types/src/Calendar/index.d.ts.map +1 -0
- package/dist/types/src/DateField/DateFieldSegments.d.ts +28 -0
- package/dist/types/src/DateField/DateFieldSegments.d.ts.map +1 -0
- package/dist/types/src/DateField/DateSegmentInput.d.ts +23 -0
- package/dist/types/src/DateField/DateSegmentInput.d.ts.map +1 -0
- package/dist/types/src/DateField/dateFieldInteractions.d.ts +66 -0
- package/dist/types/src/DateField/dateFieldInteractions.d.ts.map +1 -0
- package/dist/types/src/DateField/dateFieldState.d.ts +32 -0
- package/dist/types/src/DateField/dateFieldState.d.ts.map +1 -0
- package/dist/types/src/DateField/index.d.ts +42 -0
- package/dist/types/src/DateField/index.d.ts.map +1 -0
- package/dist/types/src/DatePicker/index.d.ts +19 -0
- package/dist/types/src/DatePicker/index.d.ts.map +1 -0
- package/dist/types/src/Icons/CalendarIcon.d.ts +4 -0
- package/dist/types/src/Icons/CalendarIcon.d.ts.map +1 -0
- package/dist/types/src/Icons/index.d.ts +1 -0
- package/dist/types/src/Icons/index.d.ts.map +1 -1
- package/dist/types/src/Popover/index.d.ts +3 -1
- package/dist/types/src/Popover/index.d.ts.map +1 -1
- package/dist/types/src/SegmentedControl/index.d.ts +38 -0
- package/dist/types/src/SegmentedControl/index.d.ts.map +1 -0
- package/dist/types/src/date/dateEngine.d.ts +22 -0
- package/dist/types/src/date/dateEngine.d.ts.map +1 -0
- package/dist/types/src/date/dateLocale.d.ts +30 -0
- package/dist/types/src/date/dateLocale.d.ts.map +1 -0
- package/dist/types/src/date/japaneseEraData.d.ts +7 -0
- package/dist/types/src/date/japaneseEraData.d.ts.map +1 -0
- package/dist/types/src/date/types.d.ts +23 -0
- package/dist/types/src/date/types.d.ts.map +1 -0
- package/dist/types/src/date/useDateLocale.d.ts +2 -0
- package/dist/types/src/date/useDateLocale.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +10 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var dateEngine = require('../date/dateEngine.cjs');
|
|
5
|
+
var dateLocale = require('../date/dateLocale.cjs');
|
|
6
|
+
|
|
7
|
+
const SEGMENT_MIN_WIDTH = {
|
|
8
|
+
era: 8,
|
|
9
|
+
year: 4,
|
|
10
|
+
month: 2,
|
|
11
|
+
day: 2,
|
|
12
|
+
};
|
|
13
|
+
const TEMPLATE_VALUE = '2024-11-22';
|
|
14
|
+
function draftReducer(state, action) {
|
|
15
|
+
switch (action.type) {
|
|
16
|
+
case 'replace':
|
|
17
|
+
return action.draft;
|
|
18
|
+
case 'set-active':
|
|
19
|
+
return { ...state, activeSegment: action.segment };
|
|
20
|
+
case 'set-segment':
|
|
21
|
+
return {
|
|
22
|
+
...state,
|
|
23
|
+
values: { ...state.values, [action.segment]: action.value },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function getSourceKey(value, calendar, locale) {
|
|
28
|
+
return `${value ?? ''}|${calendar}|${locale}`;
|
|
29
|
+
}
|
|
30
|
+
function createEmptyValues() {
|
|
31
|
+
return { era: '', year: '', month: '', day: '' };
|
|
32
|
+
}
|
|
33
|
+
function createDraft(value, calendar, locale, layout, eraOptions) {
|
|
34
|
+
const firstSegment = layout.find((part) => part.kind === 'segment')?.type ?? 'month';
|
|
35
|
+
const templateCalendarDate = dateEngine.getCalendarDate(dateEngine.parseDateValue(TEMPLATE_VALUE), calendar);
|
|
36
|
+
const templateEraLabel = eraOptions.find((option) => option.id === templateCalendarDate.era)?.label ??
|
|
37
|
+
'';
|
|
38
|
+
if (value === null) {
|
|
39
|
+
const values = createEmptyValues();
|
|
40
|
+
values.era = templateEraLabel;
|
|
41
|
+
return {
|
|
42
|
+
sourceKey: getSourceKey(value, calendar, locale),
|
|
43
|
+
sourceValue: value,
|
|
44
|
+
eraId: templateCalendarDate.era,
|
|
45
|
+
values,
|
|
46
|
+
activeSegment: firstSegment,
|
|
47
|
+
eraTypeahead: '',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const calendarDate = dateEngine.getCalendarDate(dateEngine.parseDateValue(value), calendar);
|
|
51
|
+
const values = createEmptyValues();
|
|
52
|
+
values.era =
|
|
53
|
+
eraOptions.find((option) => option.id === calendarDate.era)?.label ?? '';
|
|
54
|
+
values.year = dateLocale.formatLocalizedNumber(calendarDate.year, locale);
|
|
55
|
+
values.month = dateLocale.formatLocalizedNumber(calendarDate.month, locale);
|
|
56
|
+
values.day = dateLocale.formatLocalizedNumber(calendarDate.day, locale);
|
|
57
|
+
return {
|
|
58
|
+
sourceKey: getSourceKey(value, calendar, locale),
|
|
59
|
+
sourceValue: value,
|
|
60
|
+
eraId: calendarDate.era,
|
|
61
|
+
values,
|
|
62
|
+
activeSegment: firstSegment,
|
|
63
|
+
eraTypeahead: '',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function areValuesEqual(left, right) {
|
|
67
|
+
return Object.keys(left).every((segment) => left[segment] === right[segment]);
|
|
68
|
+
}
|
|
69
|
+
function isDraftEmpty(draft) {
|
|
70
|
+
return [draft.values.year, draft.values.month, draft.values.day].every((value) => value.length === 0);
|
|
71
|
+
}
|
|
72
|
+
function createCalendarDateFromDraft(draft, locale) {
|
|
73
|
+
const normalized = {
|
|
74
|
+
era: draft.eraId,
|
|
75
|
+
year: dateLocale.normalizeLocalizedDigits(draft.values.year, locale),
|
|
76
|
+
month: dateLocale.normalizeLocalizedDigits(draft.values.month, locale),
|
|
77
|
+
day: dateLocale.normalizeLocalizedDigits(draft.values.day, locale),
|
|
78
|
+
};
|
|
79
|
+
if (!normalized.year || !normalized.month || !normalized.day)
|
|
80
|
+
return null;
|
|
81
|
+
const year = Number(normalized.year.replace('−', '-'));
|
|
82
|
+
const month = Number(normalized.month);
|
|
83
|
+
const day = Number(normalized.day);
|
|
84
|
+
if (![year, month, day].every(Number.isInteger))
|
|
85
|
+
return null;
|
|
86
|
+
return {
|
|
87
|
+
era: normalized.era,
|
|
88
|
+
year,
|
|
89
|
+
month,
|
|
90
|
+
monthCode: `M${String(month).padStart(2, '0')}`,
|
|
91
|
+
day,
|
|
92
|
+
monthsInYear: 12,
|
|
93
|
+
daysInMonth: 31,
|
|
94
|
+
relatedYear: 1,
|
|
95
|
+
relatedMonth: 1,
|
|
96
|
+
relatedDay: 1,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function getDraftValue(draft, locale, calendar) {
|
|
100
|
+
if (isDraftEmpty(draft))
|
|
101
|
+
return null;
|
|
102
|
+
if (['japanese', 'roc', 'persian', 'islamic-civil'].includes(calendar) &&
|
|
103
|
+
draft.values.era.length === 0) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
const calendarDate = createCalendarDateFromDraft(draft, locale);
|
|
107
|
+
if (!calendarDate)
|
|
108
|
+
return undefined;
|
|
109
|
+
try {
|
|
110
|
+
return dateEngine.serializeDateValue(dateEngine.fromCalendarDate(calendarDate, calendar));
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function getSegmentWidth(segment, value) {
|
|
117
|
+
return { width: `${Math.max(value.length, SEGMENT_MIN_WIDTH[segment])}ch` };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
exports.TEMPLATE_VALUE = TEMPLATE_VALUE;
|
|
121
|
+
exports.areValuesEqual = areValuesEqual;
|
|
122
|
+
exports.createDraft = createDraft;
|
|
123
|
+
exports.draftReducer = draftReducer;
|
|
124
|
+
exports.getDraftValue = getDraftValue;
|
|
125
|
+
exports.getSegmentWidth = getSegmentWidth;
|
|
126
|
+
exports.getSourceKey = getSourceKey;
|
|
127
|
+
//# sourceMappingURL=dateFieldState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateFieldState.cjs","sources":["../../../src/DateField/dateFieldState.ts"],"sourcesContent":[null],"names":["getCalendarDate","parseDateValue","formatLocalizedNumber","normalizeLocalizedDigits","serializeDateValue","fromCalendarDate"],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
.control_1fcb12bd {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: 0.25rem;
|
|
5
|
+
min-height: 2.5rem;
|
|
6
|
+
padding-inline: 0.625rem;
|
|
7
|
+
color: var(--frey-color-text-primary);
|
|
8
|
+
background: var(--frey-color-surface);
|
|
9
|
+
border: 1px solid var(--frey-color-border, #d1d5db);
|
|
10
|
+
border-radius: 0.375rem;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.control_1fcb12bd:focus-within {
|
|
15
|
+
border-color: var(--frey-focus-ring);
|
|
16
|
+
box-shadow: 0 0 0 2px var(--frey-focus-ring);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.control_invalid_b03fb120 {
|
|
20
|
+
border-color: var(--frey-color-error, #dc2626);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.control_invalid_b03fb120:focus-within {
|
|
24
|
+
border-color: var(--frey-color-error, #dc2626);
|
|
25
|
+
box-shadow: 0 0 0 2px var(--frey-color-error, #dc2626);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.control_disabled_4b0d162b {
|
|
29
|
+
opacity: 0.5;
|
|
30
|
+
cursor: not-allowed;
|
|
31
|
+
background: var(--frey-color-surface-subtle, #f1f1f1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.control_readonly_575f6935 {
|
|
35
|
+
background: var(--frey-color-surface-subtle, #f1f1f1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.segments_c5c9ca37 {
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
column-gap: var(--frey-space-1);
|
|
42
|
+
min-width: 0;
|
|
43
|
+
flex: 1;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.group_8538b195 {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 0.25rem;
|
|
50
|
+
width: 100%;
|
|
51
|
+
min-width: 0;
|
|
52
|
+
padding: 0;
|
|
53
|
+
margin: 0;
|
|
54
|
+
border: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.segment_d592f6da {
|
|
58
|
+
min-width: 1.5ch;
|
|
59
|
+
padding: 0.125rem;
|
|
60
|
+
color: inherit;
|
|
61
|
+
font: inherit;
|
|
62
|
+
line-height: 1.5;
|
|
63
|
+
text-align: center;
|
|
64
|
+
background: transparent;
|
|
65
|
+
border: 0;
|
|
66
|
+
border-radius: 0.25rem;
|
|
67
|
+
outline: none;
|
|
68
|
+
box-sizing: content-box;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.segment_d592f6da:focus-visible {
|
|
72
|
+
color: var(--frey-color-text-primary);
|
|
73
|
+
background: var(--frey-color-surface-subtle, #f1f1f1);
|
|
74
|
+
outline: 2px solid var(--frey-focus-ring);
|
|
75
|
+
outline-offset: -2px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.segment_d592f6da:disabled {
|
|
79
|
+
cursor: not-allowed;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.segment_d592f6da:read-only {
|
|
83
|
+
cursor: default;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.separator_74996ff7 {
|
|
87
|
+
color: var(--frey-color-text-secondary, #6b7280);
|
|
88
|
+
white-space: pre;
|
|
89
|
+
user-select: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.clear_button_263dfe68 {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
width: 2rem;
|
|
97
|
+
height: 2rem;
|
|
98
|
+
flex: 0 0 auto;
|
|
99
|
+
padding: 0;
|
|
100
|
+
color: var(--frey-color-text-secondary, #6b7280);
|
|
101
|
+
background: transparent;
|
|
102
|
+
border: 0;
|
|
103
|
+
border-radius: 0.25rem;
|
|
104
|
+
cursor: pointer;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.clear_button_263dfe68:hover {
|
|
108
|
+
color: var(--frey-color-text-primary);
|
|
109
|
+
background: var(--frey-color-surface-subtle, #f1f1f1);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.clear_button_263dfe68:focus-visible {
|
|
113
|
+
outline: 2px solid var(--frey-focus-ring);
|
|
114
|
+
outline-offset: 1px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@media (forced-colors: active) {
|
|
118
|
+
.control_1fcb12bd {
|
|
119
|
+
border-color: CanvasText;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.segment_d592f6da:focus-visible,
|
|
123
|
+
.clear_button_263dfe68:focus-visible {
|
|
124
|
+
outline-color: Highlight;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@media (prefers-reduced-motion: reduce) {
|
|
129
|
+
.control_1fcb12bd,
|
|
130
|
+
.segment_d592f6da,
|
|
131
|
+
.clear_button_263dfe68 {
|
|
132
|
+
transition: none;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
require('./datefield.css');
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
|
+
|
|
7
|
+
var styles = {"control":"control_1fcb12bd","control_invalid":"control_invalid_b03fb120","control_disabled":"control_disabled_4b0d162b","control_readonly":"control_readonly_575f6935","segments":"segments_c5c9ca37","group":"group_8538b195","segment":"segment_d592f6da","separator":"separator_74996ff7","clear_button":"clear_button_263dfe68"};
|
|
8
|
+
|
|
9
|
+
exports.default = styles;
|
|
10
|
+
//# sourceMappingURL=datefield.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datefield.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var index = require('../Field/index.cjs');
|
|
10
|
+
var CloseIcon = require('../Icons/CloseIcon.cjs');
|
|
11
|
+
var dateEngine = require('../date/dateEngine.cjs');
|
|
12
|
+
var dateLocale = require('../date/dateLocale.cjs');
|
|
13
|
+
var useDateLocale = require('../date/useDateLocale.cjs');
|
|
14
|
+
var useControllableState = require('../hooks/useControllableState.cjs');
|
|
15
|
+
var DateFieldSegments = require('./DateFieldSegments.cjs');
|
|
16
|
+
var dateFieldInteractions = require('./dateFieldInteractions.cjs');
|
|
17
|
+
var dateFieldState = require('./dateFieldState.cjs');
|
|
18
|
+
var datefield_module = require('./datefield.module.css.cjs');
|
|
19
|
+
|
|
20
|
+
function isCommittedDateSelectable(value, minDate, maxDate, isDateUnavailable) {
|
|
21
|
+
if (value === null)
|
|
22
|
+
return true;
|
|
23
|
+
return (dateEngine.isDateWithinConstraints(dateEngine.parseDateValue(value), minDate, maxDate) &&
|
|
24
|
+
!isDateUnavailable?.(value));
|
|
25
|
+
}
|
|
26
|
+
function hasDateFieldInternalError(committedValue, required, draftChanged, draftValue, draftSelectable, committedSelectable) {
|
|
27
|
+
return ((!committedValue && required && !draftChanged) ||
|
|
28
|
+
!committedSelectable ||
|
|
29
|
+
(draftChanged && draftValue !== null && !draftSelectable));
|
|
30
|
+
}
|
|
31
|
+
function shouldShowClearButton(requested, required, disabled, readOnly, committedValue) {
|
|
32
|
+
return (requested && !required && !disabled && !readOnly && committedValue !== null);
|
|
33
|
+
}
|
|
34
|
+
const DateFieldControl = React.forwardRef(function DateFieldControl({ value, defaultValue = null, onValueChange, minValue, maxValue, isDateUnavailable, locale, calendar: calendarProp = 'gregory', segmentLabels, showClearButton = true, clearButtonLabel = 'Clear date', disabled = false, readOnly = false, required = false, name, controlClassName, controlStyle, inputId, labelId, describedBy, hasConsumerError, endAdornment, onSegmentKeyDown, }, ref) {
|
|
35
|
+
const calendar = dateEngine.validateDateCalendar(calendarProp);
|
|
36
|
+
const resolvedLocale = useDateLocale.useDateLocale(locale);
|
|
37
|
+
const layout = React.useMemo(() => dateLocale.getDateSegmentLayout(dateFieldState.TEMPLATE_VALUE, resolvedLocale, calendar), [calendar, resolvedLocale]);
|
|
38
|
+
const eraOptions = React.useMemo(() => dateLocale.getCalendarEraOptions(resolvedLocale, calendar), [calendar, resolvedLocale]);
|
|
39
|
+
const parsedDefaultValue = dateFieldInteractions.normalizeDateFieldValue(defaultValue, 'defaultValue');
|
|
40
|
+
const parsedControlledValue = dateFieldInteractions.normalizeDateFieldValue(value, 'value');
|
|
41
|
+
const { minDate, maxDate } = dateEngine.validateDateConstraints(minValue, maxValue);
|
|
42
|
+
const [committedValue, setCommittedValue] = useControllableState.useControllableValue(parsedControlledValue, parsedDefaultValue, onValueChange);
|
|
43
|
+
const sourceKey = dateFieldState.getSourceKey(committedValue, calendar, resolvedLocale);
|
|
44
|
+
const [storedDraft, dispatch] = React.useReducer(dateFieldState.draftReducer, committedValue, (initialValue) => dateFieldState.createDraft(initialValue, calendar, resolvedLocale, layout, eraOptions));
|
|
45
|
+
const baselineDraft = React.useMemo(() => dateFieldState.createDraft(committedValue, calendar, resolvedLocale, layout, eraOptions), [calendar, committedValue, eraOptions, layout, resolvedLocale]);
|
|
46
|
+
const draft = storedDraft.sourceKey === sourceKey ? storedDraft : baselineDraft;
|
|
47
|
+
const draftChanged = !dateFieldState.areValuesEqual(draft.values, baselineDraft.values);
|
|
48
|
+
const draftValue = dateFieldState.getDraftValue(draft, resolvedLocale, calendar);
|
|
49
|
+
const resolvedDraftValue = dateFieldInteractions.resolveDateDraftValue({
|
|
50
|
+
draft,
|
|
51
|
+
locale: resolvedLocale,
|
|
52
|
+
calendar,
|
|
53
|
+
minDate,
|
|
54
|
+
maxDate,
|
|
55
|
+
isDateUnavailable,
|
|
56
|
+
});
|
|
57
|
+
const draftIsoDate = typeof draftValue === 'string' ? dateEngine.parseDateValue(draftValue) : undefined;
|
|
58
|
+
const draftSelectable = typeof resolvedDraftValue === 'string';
|
|
59
|
+
const committedDate = committedValue
|
|
60
|
+
? dateEngine.parseDateValue(committedValue)
|
|
61
|
+
: undefined;
|
|
62
|
+
const committedSelectable = isCommittedDateSelectable(committedValue, minDate, maxDate, isDateUnavailable);
|
|
63
|
+
const referenceCalendarDate = dateEngine.getCalendarDate(draftIsoDate ?? committedDate ?? dateEngine.parseDateValue(dateFieldState.TEMPLATE_VALUE), calendar);
|
|
64
|
+
const hasInternalError = hasDateFieldInternalError(committedValue, required, draftChanged, draftValue, draftSelectable, committedSelectable);
|
|
65
|
+
const invalid = hasConsumerError || hasInternalError;
|
|
66
|
+
const firstInputRef = React.useRef(null);
|
|
67
|
+
const segmentInputRefs = React.useRef({});
|
|
68
|
+
const direction = dateLocale.getLocaleDirection(resolvedLocale);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
firstInputRef.current?.setCustomValidity(hasInternalError ? 'Enter a complete, valid, available date.' : '');
|
|
71
|
+
}, [hasInternalError]);
|
|
72
|
+
const visibleSegments = layout
|
|
73
|
+
.filter((part) => part.kind === 'segment')
|
|
74
|
+
.map((part) => part.type);
|
|
75
|
+
const firstVisibleSegment = visibleSegments[0];
|
|
76
|
+
function replaceWithCommitted(nextValue, activeSegment = draft.activeSegment) {
|
|
77
|
+
const replacement = dateFieldState.createDraft(nextValue, calendar, resolvedLocale, layout, eraOptions);
|
|
78
|
+
dispatch({
|
|
79
|
+
type: 'replace',
|
|
80
|
+
draft: { ...replacement, activeSegment },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function handleSegmentChange(segment, nextValue) {
|
|
84
|
+
if (disabled || readOnly)
|
|
85
|
+
return;
|
|
86
|
+
const edit = dateFieldInteractions.createDateDraftEdit({
|
|
87
|
+
draft,
|
|
88
|
+
segment,
|
|
89
|
+
nextValue,
|
|
90
|
+
locale: resolvedLocale,
|
|
91
|
+
eraOptions,
|
|
92
|
+
});
|
|
93
|
+
if (edit.shouldApply)
|
|
94
|
+
applyDraft(edit.draft);
|
|
95
|
+
else
|
|
96
|
+
dispatch({ type: 'replace', draft: edit.draft });
|
|
97
|
+
}
|
|
98
|
+
function applyDraft(nextDraft) {
|
|
99
|
+
const nextValue = dateFieldInteractions.resolveDateDraftValue({
|
|
100
|
+
draft: nextDraft,
|
|
101
|
+
locale: resolvedLocale,
|
|
102
|
+
calendar,
|
|
103
|
+
minDate,
|
|
104
|
+
maxDate,
|
|
105
|
+
isDateUnavailable,
|
|
106
|
+
});
|
|
107
|
+
if (nextValue === undefined) {
|
|
108
|
+
dispatch({ type: 'replace', draft: nextDraft });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
setCommittedValue(nextValue);
|
|
112
|
+
replaceWithCommitted(nextValue);
|
|
113
|
+
}
|
|
114
|
+
function executeKeyCommand(command, currentSegment) {
|
|
115
|
+
switch (command.type) {
|
|
116
|
+
case 'move':
|
|
117
|
+
if (command.target === currentSegment)
|
|
118
|
+
return;
|
|
119
|
+
dispatch({ type: 'set-active', segment: command.target });
|
|
120
|
+
segmentInputRefs.current[command.target]?.focus();
|
|
121
|
+
return;
|
|
122
|
+
case 'restore':
|
|
123
|
+
dispatch({ type: 'replace', draft: baselineDraft });
|
|
124
|
+
return;
|
|
125
|
+
case 'clear':
|
|
126
|
+
handleSegmentChange(currentSegment, '');
|
|
127
|
+
return;
|
|
128
|
+
case 'step': {
|
|
129
|
+
const nextDraft = dateFieldInteractions.stepDateDraft({
|
|
130
|
+
draft,
|
|
131
|
+
segment: command.segment,
|
|
132
|
+
amount: command.amount,
|
|
133
|
+
calendar,
|
|
134
|
+
locale: resolvedLocale,
|
|
135
|
+
layout,
|
|
136
|
+
eraOptions,
|
|
137
|
+
});
|
|
138
|
+
if (nextDraft)
|
|
139
|
+
applyDraft(nextDraft);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function handleSegmentKeyDown(segment, event) {
|
|
144
|
+
onSegmentKeyDown?.(segment, event);
|
|
145
|
+
if (event.defaultPrevented)
|
|
146
|
+
return;
|
|
147
|
+
const command = dateFieldInteractions.resolveDateFieldKeyCommand({
|
|
148
|
+
key: event.key,
|
|
149
|
+
segment,
|
|
150
|
+
direction,
|
|
151
|
+
visibleSegments,
|
|
152
|
+
editable: !disabled && !readOnly,
|
|
153
|
+
});
|
|
154
|
+
if (!command)
|
|
155
|
+
return;
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
executeKeyCommand(command, segment);
|
|
158
|
+
}
|
|
159
|
+
function handleSegmentPaste(_segment, event) {
|
|
160
|
+
if (disabled || readOnly)
|
|
161
|
+
return;
|
|
162
|
+
const text = event.clipboardData.getData('text');
|
|
163
|
+
const nextDraft = dateFieldInteractions.parseDateFieldPaste({
|
|
164
|
+
text,
|
|
165
|
+
draft,
|
|
166
|
+
calendar,
|
|
167
|
+
locale: resolvedLocale,
|
|
168
|
+
layout,
|
|
169
|
+
eraOptions,
|
|
170
|
+
});
|
|
171
|
+
if (!nextDraft)
|
|
172
|
+
return;
|
|
173
|
+
event.preventDefault();
|
|
174
|
+
applyDraft(nextDraft);
|
|
175
|
+
}
|
|
176
|
+
function handleClear() {
|
|
177
|
+
setCommittedValue(null);
|
|
178
|
+
replaceWithCommitted(null, firstVisibleSegment);
|
|
179
|
+
firstInputRef.current?.focus();
|
|
180
|
+
}
|
|
181
|
+
function handleInputRef(segment, node) {
|
|
182
|
+
if (node)
|
|
183
|
+
segmentInputRefs.current[segment] = node;
|
|
184
|
+
if (segment === firstVisibleSegment)
|
|
185
|
+
firstInputRef.current = node;
|
|
186
|
+
}
|
|
187
|
+
const formValue = draftChanged && !draftSelectable ? '' : (committedValue ?? '');
|
|
188
|
+
const showClear = shouldShowClearButton(showClearButton, required, disabled, readOnly, committedValue);
|
|
189
|
+
return (jsxRuntime.jsx("div", { ref: ref, id: inputId, dir: direction, className: clsx(datefield_module.default.control, {
|
|
190
|
+
[datefield_module.default.control_invalid]: invalid,
|
|
191
|
+
[datefield_module.default.control_disabled]: disabled,
|
|
192
|
+
[datefield_module.default.control_readonly]: readOnly,
|
|
193
|
+
}, controlClassName), style: controlStyle, children: jsxRuntime.jsxs("fieldset", { className: datefield_module.default.group, "aria-labelledby": labelId, "aria-describedby": describedBy, "aria-invalid": invalid || undefined, children: [jsxRuntime.jsx(DateFieldSegments.DateFieldSegments, { layout: layout, draft: draft, segmentLabels: segmentLabels, locale: resolvedLocale, calendarDate: referenceCalendarDate, eraOptions: eraOptions, firstVisibleSegment: firstVisibleSegment, disabled: disabled, readOnly: readOnly, required: required, invalid: invalid, onInputRef: handleInputRef, onFocus: (segment) => dispatch({ type: 'set-active', segment }), onChange: handleSegmentChange, onKeyDown: handleSegmentKeyDown, onPaste: handleSegmentPaste }), showClear && (jsxRuntime.jsx("button", { type: 'button', className: datefield_module.default.clear_button, "aria-label": clearButtonLabel, onClick: handleClear, children: jsxRuntime.jsx(CloseIcon.CloseIcon, { size: 'sm', "aria-hidden": 'true' }) })), endAdornment, name && (jsxRuntime.jsx("input", { type: 'hidden', name: name, value: formValue, disabled: disabled }))] }) }));
|
|
194
|
+
});
|
|
195
|
+
DateFieldControl.displayName = 'DateFieldControl';
|
|
196
|
+
const DateField = React.forwardRef(function DateField({ label, hideLabel = false, helperText, error, disabled = false, required = false, id, className, style, ...controlProps }, ref) {
|
|
197
|
+
return (jsxRuntime.jsx(index.default, { label: label, labelElement: 'span', hideLabel: hideLabel, helperText: helperText, error: error, disabled: disabled, required: required, id: id, className: className, style: style, children: ({ inputId, labelId, describedBy, hasError }) => (jsxRuntime.jsx(DateFieldControl, { ...controlProps, ref: ref, inputId: inputId, labelId: labelId, describedBy: describedBy, hasConsumerError: hasError, disabled: disabled, required: required })) }));
|
|
198
|
+
});
|
|
199
|
+
DateField.displayName = 'DateField';
|
|
200
|
+
|
|
201
|
+
exports.DateFieldControl = DateFieldControl;
|
|
202
|
+
exports.default = DateField;
|
|
203
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/DateField/index.tsx"],"sourcesContent":[null],"names":["isDateWithinConstraints","parseDateValue","validateDateCalendar","useDateLocale","useMemo","getDateSegmentLayout","TEMPLATE_VALUE","getCalendarEraOptions","normalizeDateFieldValue","validateDateConstraints","useControllableValue","getSourceKey","useReducer","draftReducer","createDraft","areValuesEqual","getDraftValue","resolveDateDraftValue","getCalendarDate","useRef","getLocaleDirection","useEffect","createDateDraftEdit","stepDateDraft","resolveDateFieldKeyCommand","parseDateFieldPaste","_jsx","styles","_jsxs","DateFieldSegments","CloseIcon","Field"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.calendar_trigger_9268b87b {
|
|
2
|
+
flex: 0 0 auto;
|
|
3
|
+
inline-size: 2rem;
|
|
4
|
+
block-size: 2rem;
|
|
5
|
+
min-inline-size: 2rem;
|
|
6
|
+
padding: 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.popover_content_637b8e1f {
|
|
10
|
+
padding: 0;
|
|
11
|
+
overflow: auto;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.calendar_dfe57519 {
|
|
15
|
+
border: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@media (pointer: coarse) {
|
|
19
|
+
.calendar_trigger_9268b87b {
|
|
20
|
+
inline-size: 3rem;
|
|
21
|
+
block-size: 3rem;
|
|
22
|
+
min-inline-size: 3rem;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
require('./datepicker.css');
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
|
+
|
|
7
|
+
var styles = {"calendar_trigger":"calendar_trigger_9268b87b","popover_content":"popover_content_637b8e1f","calendar":"calendar_dfe57519"};
|
|
8
|
+
|
|
9
|
+
exports.default = styles;
|
|
10
|
+
//# sourceMappingURL=datepicker.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datepicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var index$3 = require('../Button/index.cjs');
|
|
9
|
+
var index$4 = require('../Calendar/index.cjs');
|
|
10
|
+
var index$2 = require('../DateField/index.cjs');
|
|
11
|
+
var index = require('../Field/index.cjs');
|
|
12
|
+
var CalendarIcon = require('../Icons/CalendarIcon.cjs');
|
|
13
|
+
var index$1 = require('../Popover/index.cjs');
|
|
14
|
+
var dateEngine = require('../date/dateEngine.cjs');
|
|
15
|
+
var dateLocale = require('../date/dateLocale.cjs');
|
|
16
|
+
var useDateLocale = require('../date/useDateLocale.cjs');
|
|
17
|
+
var useControllableState = require('../hooks/useControllableState.cjs');
|
|
18
|
+
var datepicker_module = require('./datepicker.module.css.cjs');
|
|
19
|
+
|
|
20
|
+
const DatePicker = React.forwardRef(function DatePicker({ label, value, defaultValue = null, onValueChange, minValue, maxValue, isDateUnavailable, locale, calendar: calendarProp = 'gregory', segmentLabels, showClearButton, clearButtonLabel, hideLabel = false, helperText, error, disabled = false, readOnly = false, required = false, name, id, className, style, controlClassName, controlStyle, open, defaultOpen = false, onOpenChange, defaultFocusedValue, today, firstDayOfWeek, calendarLabel, previousMonthLabel, nextMonthLabel, getCalendarButtonLabel, }, ref) {
|
|
21
|
+
const calendar = dateEngine.validateDateCalendar(calendarProp);
|
|
22
|
+
const resolvedLocale = useDateLocale.useDateLocale(locale);
|
|
23
|
+
const parsedDefaultValue = defaultValue === null
|
|
24
|
+
? null
|
|
25
|
+
: dateEngine.serializeDateValue(dateEngine.parseDateValue(defaultValue, 'defaultValue'));
|
|
26
|
+
const parsedControlledValue = value === undefined
|
|
27
|
+
? undefined
|
|
28
|
+
: value === null
|
|
29
|
+
? null
|
|
30
|
+
: dateEngine.serializeDateValue(dateEngine.parseDateValue(value, 'value'));
|
|
31
|
+
dateEngine.validateDateConstraints(minValue, maxValue);
|
|
32
|
+
if (defaultFocusedValue !== undefined) {
|
|
33
|
+
dateEngine.parseDateValue(defaultFocusedValue, 'defaultFocusedValue');
|
|
34
|
+
}
|
|
35
|
+
if (today !== undefined)
|
|
36
|
+
dateEngine.parseDateValue(today, 'today');
|
|
37
|
+
const [selectedValue, setSelectedValue] = useControllableState.useControllableValue(parsedControlledValue, parsedDefaultValue, onValueChange);
|
|
38
|
+
const [currentOpen, setCurrentOpen] = useControllableState.useControllableValue(open, defaultOpen, onOpenChange);
|
|
39
|
+
const effectiveOpen = !disabled && currentOpen;
|
|
40
|
+
const calendarTriggerRef = React.useRef(null);
|
|
41
|
+
const wasOpenRef = React.useRef(effectiveOpen);
|
|
42
|
+
React.useEffect(() => {
|
|
43
|
+
const wasOpen = wasOpenRef.current;
|
|
44
|
+
wasOpenRef.current = effectiveOpen;
|
|
45
|
+
if (wasOpen && !effectiveOpen) {
|
|
46
|
+
// Outside dismissal starts on pointer-down; wait through that pointer
|
|
47
|
+
// sequence before restoring focus to the trigger.
|
|
48
|
+
let focusFrame = 0;
|
|
49
|
+
const settleFrame = requestAnimationFrame(() => {
|
|
50
|
+
focusFrame = requestAnimationFrame(() => {
|
|
51
|
+
calendarTriggerRef.current?.focus();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
cancelAnimationFrame(settleFrame);
|
|
56
|
+
cancelAnimationFrame(focusFrame);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}, [effectiveOpen]);
|
|
60
|
+
const formattedValue = React.useMemo(() => selectedValue
|
|
61
|
+
? dateLocale.formatDateValue(selectedValue, resolvedLocale, calendar)
|
|
62
|
+
: null, [calendar, resolvedLocale, selectedValue]);
|
|
63
|
+
const triggerLabel = getCalendarButtonLabel
|
|
64
|
+
? getCalendarButtonLabel(formattedValue)
|
|
65
|
+
: formattedValue
|
|
66
|
+
? `Change date, ${formattedValue}`
|
|
67
|
+
: 'Choose date';
|
|
68
|
+
const resolvedCalendarLabel = calendarLabel ?? `${label} calendar`;
|
|
69
|
+
const initialFocusRef = React.useRef(null);
|
|
70
|
+
const setCalendarRootRef = React.useCallback((node) => {
|
|
71
|
+
initialFocusRef.current =
|
|
72
|
+
node?.querySelector('button[data-date-value][tabindex="0"]') ?? null;
|
|
73
|
+
}, []);
|
|
74
|
+
function handleOpenChange(nextOpen) {
|
|
75
|
+
setCurrentOpen(nextOpen);
|
|
76
|
+
}
|
|
77
|
+
function handleSegmentKeyDown(_segment, event) {
|
|
78
|
+
if (!event.altKey)
|
|
79
|
+
return;
|
|
80
|
+
if (event.key === 'ArrowDown') {
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
handleOpenChange(true);
|
|
83
|
+
}
|
|
84
|
+
else if (event.key === 'ArrowUp') {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
handleOpenChange(false);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function handleCalendarValueChange(nextValue) {
|
|
90
|
+
setSelectedValue(nextValue);
|
|
91
|
+
handleOpenChange(false);
|
|
92
|
+
}
|
|
93
|
+
return (jsxRuntime.jsx(index.default, { label: label, labelElement: 'span', hideLabel: hideLabel, helperText: helperText, error: error, disabled: disabled, required: required, id: id, className: className, style: style, children: ({ inputId, labelId, describedBy, hasError }) => (jsxRuntime.jsxs(index$1.Popover, { open: effectiveOpen, onOpenChange: handleOpenChange, children: [jsxRuntime.jsx(index$2.DateFieldControl, { ref: ref, value: selectedValue, onValueChange: setSelectedValue, minValue: minValue, maxValue: maxValue, isDateUnavailable: isDateUnavailable, locale: resolvedLocale, calendar: calendar, segmentLabels: segmentLabels, showClearButton: showClearButton, clearButtonLabel: clearButtonLabel, disabled: disabled, readOnly: readOnly, required: required, name: name, controlClassName: controlClassName, controlStyle: controlStyle, inputId: inputId, labelId: labelId, describedBy: describedBy, hasConsumerError: hasError, onSegmentKeyDown: handleSegmentKeyDown, endAdornment: jsxRuntime.jsx(index$1.Popover.Trigger, { ref: calendarTriggerRef, asChild: true, children: jsxRuntime.jsx(index$3.default, { type: 'button', variant: 'ghost', size: 'sm', className: datepicker_module.default.calendar_trigger, "aria-label": triggerLabel, disabled: disabled, children: jsxRuntime.jsx(CalendarIcon.CalendarIcon, { size: 'sm' }) }) }) }), jsxRuntime.jsx(index$1.Popover.Content, { role: 'dialog', "aria-modal": 'true', "aria-label": resolvedCalendarLabel, initialFocusRef: initialFocusRef, className: datepicker_module.default.popover_content, children: jsxRuntime.jsx(index$4.default, { ref: setCalendarRootRef, label: resolvedCalendarLabel, value: selectedValue, onValueChange: handleCalendarValueChange, defaultFocusedValue: defaultFocusedValue, today: today, minValue: minValue, maxValue: maxValue, isDateUnavailable: isDateUnavailable, locale: resolvedLocale, calendar: calendar, firstDayOfWeek: firstDayOfWeek, previousMonthLabel: previousMonthLabel, nextMonthLabel: nextMonthLabel, disabled: disabled, readOnly: readOnly, className: datepicker_module.default.calendar }) })] })) }));
|
|
94
|
+
});
|
|
95
|
+
DatePicker.displayName = 'DatePicker';
|
|
96
|
+
|
|
97
|
+
exports.default = DatePicker;
|
|
98
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/DatePicker/index.tsx"],"sourcesContent":[null],"names":["validateDateCalendar","useDateLocale","serializeDateValue","parseDateValue","validateDateConstraints","useControllableValue","formatDateValue","_jsx","Field","_jsxs","Popover","DateFieldControl","Button","styles","CalendarIcon","Calendar"],"mappings":"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"}
|