@optimum-intelligence/opti-ui 0.4.0 → 0.5.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/README.md +9 -7
- package/dist/components/app-shell/AppShell.d.ts +75 -6
- package/dist/components/app-shell/AppShell.js +670 -185
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +2 -4
- package/dist/components/badge/Badge.js +12 -29
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/calendar/Calendar.d.ts +19 -8
- package/dist/components/calendar/Calendar.js +285 -212
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/DateConfig.d.ts +37 -0
- package/dist/components/calendar/DateConfig.js +75 -0
- package/dist/components/calendar/DateConfig.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +41 -6
- package/dist/components/calendar/date-utils.js +119 -20
- package/dist/components/calendar/date-utils.js.map +1 -1
- package/dist/components/data-table/DataTableContent.js +3 -3
- package/dist/components/data-table/DataTableContent.js.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts +33 -10
- package/dist/components/date-picker/DatePicker.js +315 -279
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/date-picker/DateRangePicker.d.ts +11 -4
- package/dist/components/date-picker/DateRangePicker.js +240 -206
- package/dist/components/date-picker/DateRangePicker.js.map +1 -1
- package/dist/components/date-picker/PickerField.js +1 -1
- package/dist/components/date-picker/PickerField.js.map +1 -1
- package/dist/components/table/Table.d.ts +1 -1
- package/dist/components/table/Table.js +2 -2
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components.json +2023 -1864
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -3
- package/dist/llms-full.txt +869 -752
- package/dist/llms.txt +37 -35
- package/dist/opti-ui.css +171 -81
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { useDateConfig } from "./DateConfig.js";
|
|
3
4
|
import { ChevronLeftIcon, ChevronRightIcon } from "../../icons/index.js";
|
|
4
|
-
import { addDays, addMonths, clampDate, datePart, formatDate,
|
|
5
|
+
import { addDays, addMonths, clampDate, datePart, formatDate, monthGrid, pad, startOfMonth, toRange, toUtcDate, todayIso, truncate, weekday } from "./date-utils.js";
|
|
5
6
|
import { c } from "react/compiler-runtime";
|
|
6
7
|
import * as React from "react";
|
|
7
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -35,14 +36,14 @@ function chooserItems({ mode, cursor }) {
|
|
|
35
36
|
}
|
|
36
37
|
/** Month grids, navigation and keyboard handling shared by Calendar and RangeCalendar. */
|
|
37
38
|
function CalendarView(t0) {
|
|
38
|
-
const $ = c(
|
|
39
|
+
const $ = c(92);
|
|
39
40
|
let autoFocus;
|
|
40
41
|
let className;
|
|
41
42
|
let dayState;
|
|
42
43
|
let defaultMonth;
|
|
43
44
|
let isDateDisabled;
|
|
44
45
|
let labels;
|
|
45
|
-
let
|
|
46
|
+
let localeProp;
|
|
46
47
|
let max;
|
|
47
48
|
let min;
|
|
48
49
|
let multiselectable;
|
|
@@ -53,8 +54,9 @@ function CalendarView(t0) {
|
|
|
53
54
|
let t1;
|
|
54
55
|
let t2;
|
|
55
56
|
let target;
|
|
57
|
+
let weekStartsOnProp;
|
|
56
58
|
if ($[0] !== t0) {
|
|
57
|
-
({target, dayState, onPick, onPreview, multiselectable, min, max, isDateDisabled, defaultMonth, locale, weekStartsOn: t1, numberOfMonths: t2, autoFocus, labels, className, ref, ...props} = t0);
|
|
59
|
+
({target, dayState, onPick, onPreview, multiselectable, min, max, isDateDisabled, defaultMonth, locale: localeProp, weekStartsOn: weekStartsOnProp, granularity: t1, numberOfMonths: t2, autoFocus, labels, className, ref, ...props} = t0);
|
|
58
60
|
$[0] = t0;
|
|
59
61
|
$[1] = autoFocus;
|
|
60
62
|
$[2] = className;
|
|
@@ -62,7 +64,7 @@ function CalendarView(t0) {
|
|
|
62
64
|
$[4] = defaultMonth;
|
|
63
65
|
$[5] = isDateDisabled;
|
|
64
66
|
$[6] = labels;
|
|
65
|
-
$[7] =
|
|
67
|
+
$[7] = localeProp;
|
|
66
68
|
$[8] = max;
|
|
67
69
|
$[9] = min;
|
|
68
70
|
$[10] = multiselectable;
|
|
@@ -73,6 +75,7 @@ function CalendarView(t0) {
|
|
|
73
75
|
$[15] = t1;
|
|
74
76
|
$[16] = t2;
|
|
75
77
|
$[17] = target;
|
|
78
|
+
$[18] = weekStartsOnProp;
|
|
76
79
|
} else {
|
|
77
80
|
autoFocus = $[1];
|
|
78
81
|
className = $[2];
|
|
@@ -80,7 +83,7 @@ function CalendarView(t0) {
|
|
|
80
83
|
defaultMonth = $[4];
|
|
81
84
|
isDateDisabled = $[5];
|
|
82
85
|
labels = $[6];
|
|
83
|
-
|
|
86
|
+
localeProp = $[7];
|
|
84
87
|
max = $[8];
|
|
85
88
|
min = $[9];
|
|
86
89
|
multiselectable = $[10];
|
|
@@ -91,86 +94,127 @@ function CalendarView(t0) {
|
|
|
91
94
|
t1 = $[15];
|
|
92
95
|
t2 = $[16];
|
|
93
96
|
target = $[17];
|
|
97
|
+
weekStartsOnProp = $[18];
|
|
94
98
|
}
|
|
95
|
-
const
|
|
99
|
+
const granularity = t1 === void 0 ? "day" : t1;
|
|
96
100
|
const numberOfMonths = t2 === void 0 ? 1 : t2;
|
|
101
|
+
const config = useDateConfig();
|
|
102
|
+
const locale = localeProp ?? config.locale;
|
|
103
|
+
const weekStartsOn = weekStartsOnProp ?? config.weekStartsOn ?? 1;
|
|
97
104
|
let t3;
|
|
98
|
-
if ($[
|
|
105
|
+
if ($[19] !== labels) {
|
|
99
106
|
t3 = {
|
|
100
107
|
...defaultLabels,
|
|
101
108
|
...labels
|
|
102
109
|
};
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
105
|
-
} else t3 = $[
|
|
110
|
+
$[19] = labels;
|
|
111
|
+
$[20] = t3;
|
|
112
|
+
} else t3 = $[20];
|
|
106
113
|
const text = t3;
|
|
107
|
-
const count = Math.max(1, Math.floor(numberOfMonths));
|
|
114
|
+
const count = granularity === "day" ? Math.max(1, Math.floor(numberOfMonths)) : 1;
|
|
108
115
|
const [today] = React.useState(todayIso);
|
|
109
116
|
let t4;
|
|
110
|
-
if ($[
|
|
117
|
+
if ($[21] !== defaultMonth || $[22] !== max || $[23] !== min || $[24] !== target || $[25] !== today) {
|
|
111
118
|
t4 = () => clampDate(target ?? datePart(defaultMonth) ?? today, min, max);
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
} else t4 = $[
|
|
119
|
+
$[21] = defaultMonth;
|
|
120
|
+
$[22] = max;
|
|
121
|
+
$[23] = min;
|
|
122
|
+
$[24] = target;
|
|
123
|
+
$[25] = today;
|
|
124
|
+
$[26] = t4;
|
|
125
|
+
} else t4 = $[26];
|
|
119
126
|
const [focused, setFocused] = React.useState(t4);
|
|
120
127
|
let t5;
|
|
121
|
-
if ($[
|
|
128
|
+
if ($[27] !== focused) {
|
|
122
129
|
t5 = () => startOfMonth(focused);
|
|
123
|
-
$[
|
|
124
|
-
$[
|
|
125
|
-
} else t5 = $[
|
|
130
|
+
$[27] = focused;
|
|
131
|
+
$[28] = t5;
|
|
132
|
+
} else t5 = $[28];
|
|
126
133
|
const [view, setView] = React.useState(t5);
|
|
127
134
|
const monthsRef = React.useRef(null);
|
|
128
135
|
const moveFocus = React.useRef(Boolean(autoFocus));
|
|
129
136
|
const titleId = React.useId();
|
|
130
|
-
const
|
|
137
|
+
const t6 = min ?? "0001-01-01";
|
|
138
|
+
let t7;
|
|
139
|
+
if ($[29] !== t6) {
|
|
140
|
+
t7 = startOfMonth(t6);
|
|
141
|
+
$[29] = t6;
|
|
142
|
+
$[30] = t7;
|
|
143
|
+
} else t7 = $[30];
|
|
144
|
+
const earliest = t7;
|
|
145
|
+
const t8 = max ?? "9999-12-01";
|
|
146
|
+
let t9;
|
|
147
|
+
if ($[31] !== t8) {
|
|
148
|
+
t9 = startOfMonth(t8);
|
|
149
|
+
$[31] = t8;
|
|
150
|
+
$[32] = t9;
|
|
151
|
+
} else t9 = $[32];
|
|
152
|
+
const latest = t9;
|
|
153
|
+
let t10;
|
|
154
|
+
if ($[33] !== earliest || $[34] !== granularity || $[35] !== latest) {
|
|
155
|
+
t10 = (cursor) => granularity === "day" ? null : {
|
|
156
|
+
index: 0,
|
|
157
|
+
mode: granularity === "year" ? "years" : "months",
|
|
158
|
+
cursor: clampDate(startOfMonth(cursor), earliest, latest)
|
|
159
|
+
};
|
|
160
|
+
$[33] = earliest;
|
|
161
|
+
$[34] = granularity;
|
|
162
|
+
$[35] = latest;
|
|
163
|
+
$[36] = t10;
|
|
164
|
+
} else t10 = $[36];
|
|
165
|
+
const baseChooser = t10;
|
|
166
|
+
let t11;
|
|
167
|
+
if ($[37] !== baseChooser || $[38] !== focused) {
|
|
168
|
+
t11 = () => baseChooser(focused);
|
|
169
|
+
$[37] = baseChooser;
|
|
170
|
+
$[38] = focused;
|
|
171
|
+
$[39] = t11;
|
|
172
|
+
} else t11 = $[39];
|
|
173
|
+
const [chooser, setChooser] = React.useState(t11);
|
|
131
174
|
const [seen, setSeen] = React.useState(target);
|
|
132
175
|
if (target !== seen) {
|
|
133
176
|
setSeen(target);
|
|
134
177
|
if (target) {
|
|
135
178
|
setFocused(target);
|
|
136
179
|
setView(reveal(view, target, count));
|
|
180
|
+
if (granularity !== "day") setChooser(baseChooser(target));
|
|
137
181
|
}
|
|
138
182
|
}
|
|
139
|
-
let
|
|
140
|
-
if ($[
|
|
141
|
-
|
|
183
|
+
let t12;
|
|
184
|
+
if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
|
|
185
|
+
t12 = () => {
|
|
142
186
|
if (!moveFocus.current) return;
|
|
143
187
|
moveFocus.current = false;
|
|
144
188
|
const months = monthsRef.current;
|
|
145
189
|
(months?.querySelector(".oui-calendar__choice[tabindex=\"0\"]") ?? months?.querySelector("[tabindex=\"0\"]"))?.focus();
|
|
146
190
|
};
|
|
147
|
-
$[
|
|
148
|
-
} else
|
|
149
|
-
let t7;
|
|
150
|
-
if ($[29] !== chooser || $[30] !== focused) {
|
|
151
|
-
t7 = [focused, chooser];
|
|
152
|
-
$[29] = chooser;
|
|
153
|
-
$[30] = focused;
|
|
154
|
-
$[31] = t7;
|
|
155
|
-
} else t7 = $[31];
|
|
156
|
-
React.useEffect(t6, t7);
|
|
157
|
-
let t8;
|
|
158
|
-
if ($[32] !== isDateDisabled || $[33] !== max || $[34] !== min) {
|
|
159
|
-
t8 = (date) => Boolean(min && date < min || max && date > max || isDateDisabled?.(date));
|
|
160
|
-
$[32] = isDateDisabled;
|
|
161
|
-
$[33] = max;
|
|
162
|
-
$[34] = min;
|
|
163
|
-
$[35] = t8;
|
|
164
|
-
} else t8 = $[35];
|
|
165
|
-
const disabled = t8;
|
|
166
|
-
let t10;
|
|
167
|
-
let t11;
|
|
168
|
-
let t12;
|
|
191
|
+
$[40] = t12;
|
|
192
|
+
} else t12 = $[40];
|
|
169
193
|
let t13;
|
|
194
|
+
if ($[41] !== chooser || $[42] !== focused) {
|
|
195
|
+
t13 = [focused, chooser];
|
|
196
|
+
$[41] = chooser;
|
|
197
|
+
$[42] = focused;
|
|
198
|
+
$[43] = t13;
|
|
199
|
+
} else t13 = $[43];
|
|
200
|
+
React.useEffect(t12, t13);
|
|
170
201
|
let t14;
|
|
202
|
+
if ($[44] !== isDateDisabled || $[45] !== max || $[46] !== min) {
|
|
203
|
+
t14 = (date) => Boolean(min && date < min || max && date > max || isDateDisabled?.(date));
|
|
204
|
+
$[44] = isDateDisabled;
|
|
205
|
+
$[45] = max;
|
|
206
|
+
$[46] = min;
|
|
207
|
+
$[47] = t14;
|
|
208
|
+
} else t14 = $[47];
|
|
209
|
+
const disabled = t14;
|
|
171
210
|
let t15;
|
|
172
|
-
let
|
|
173
|
-
|
|
211
|
+
let t16;
|
|
212
|
+
let t17;
|
|
213
|
+
let t18;
|
|
214
|
+
let t19;
|
|
215
|
+
let t20;
|
|
216
|
+
let t21;
|
|
217
|
+
if ($[48] !== baseChooser || $[49] !== chooser || $[50] !== className || $[51] !== count || $[52] !== dayState || $[53] !== disabled || $[54] !== earliest || $[55] !== focused || $[56] !== granularity || $[57] !== latest || $[58] !== locale || $[59] !== max || $[60] !== min || $[61] !== multiselectable || $[62] !== onPick || $[63] !== onPreview || $[64] !== props || $[65] !== ref || $[66] !== text || $[67] !== titleId || $[68] !== today || $[69] !== view || $[70] !== weekStartsOn) {
|
|
174
218
|
const formats = {
|
|
175
219
|
monthLong: new Intl.DateTimeFormat(locale, {
|
|
176
220
|
month: "long",
|
|
@@ -187,6 +231,10 @@ function CalendarView(t0) {
|
|
|
187
231
|
weekdayLong: new Intl.DateTimeFormat(locale, {
|
|
188
232
|
weekday: "long",
|
|
189
233
|
timeZone: "UTC"
|
|
234
|
+
}),
|
|
235
|
+
dayLong: new Intl.DateTimeFormat(locale, {
|
|
236
|
+
dateStyle: "full",
|
|
237
|
+
timeZone: "UTC"
|
|
190
238
|
})
|
|
191
239
|
};
|
|
192
240
|
const yearText = _temp;
|
|
@@ -224,19 +272,17 @@ function CalendarView(t0) {
|
|
|
224
272
|
const day = go(move());
|
|
225
273
|
onPreview?.(day);
|
|
226
274
|
};
|
|
227
|
-
const
|
|
228
|
-
const latest = startOfMonth(max ?? "9999-12-01");
|
|
229
|
-
const openChooser = (index, mode, cursor) => {
|
|
275
|
+
const openChooser = (index, mode, cursor_0) => {
|
|
230
276
|
moveFocus.current = true;
|
|
231
277
|
setChooser({
|
|
232
278
|
index,
|
|
233
279
|
mode,
|
|
234
|
-
cursor: clampDate(
|
|
280
|
+
cursor: clampDate(cursor_0, earliest, latest)
|
|
235
281
|
});
|
|
236
282
|
};
|
|
237
283
|
const closeChooser = () => {
|
|
238
284
|
moveFocus.current = true;
|
|
239
|
-
setChooser(
|
|
285
|
+
setChooser(baseChooser(chooser?.cursor ?? focused));
|
|
240
286
|
};
|
|
241
287
|
const moveChooser = (current, amount_0, focus) => {
|
|
242
288
|
const step = current.mode === "months" ? amount_0 : amount_0 * 12;
|
|
@@ -248,6 +294,11 @@ function CalendarView(t0) {
|
|
|
248
294
|
});
|
|
249
295
|
};
|
|
250
296
|
const choose = (current_0, date_3) => {
|
|
297
|
+
if (granularity !== "day" && current_0.mode === (granularity === "year" ? "years" : "months")) {
|
|
298
|
+
setFocused(date_3);
|
|
299
|
+
onPick(date_3);
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
251
302
|
if (current_0.mode === "years") {
|
|
252
303
|
openChooser(current_0.index, "months", date_3);
|
|
253
304
|
return;
|
|
@@ -259,7 +310,7 @@ function CalendarView(t0) {
|
|
|
259
310
|
setChooser(null);
|
|
260
311
|
};
|
|
261
312
|
const onChooserKeyDown = (current_1) => (event_0) => {
|
|
262
|
-
if (event_0.key === "Escape") {
|
|
313
|
+
if (event_0.key === "Escape" && !(granularity === "year" || granularity === "month" && current_1.mode === "months")) {
|
|
263
314
|
event_0.preventDefault();
|
|
264
315
|
event_0.stopPropagation();
|
|
265
316
|
closeChooser();
|
|
@@ -280,21 +331,21 @@ function CalendarView(t0) {
|
|
|
280
331
|
const months_0 = Array.from({ length: count }, (_, index_0) => addMonths(view, index_0));
|
|
281
332
|
const previous = addDays(view, -1);
|
|
282
333
|
const following = addMonths(view, count);
|
|
283
|
-
|
|
284
|
-
if ($[
|
|
285
|
-
|
|
286
|
-
$[
|
|
287
|
-
$[
|
|
288
|
-
} else
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
if ($[
|
|
293
|
-
|
|
294
|
-
$[
|
|
295
|
-
$[
|
|
296
|
-
} else
|
|
297
|
-
|
|
334
|
+
t19 = ref;
|
|
335
|
+
if ($[78] !== className) {
|
|
336
|
+
t20 = cx("oui-calendar", className);
|
|
337
|
+
$[78] = className;
|
|
338
|
+
$[79] = t20;
|
|
339
|
+
} else t20 = $[79];
|
|
340
|
+
t21 = props;
|
|
341
|
+
t15 = monthsRef;
|
|
342
|
+
t16 = "oui-calendar__months";
|
|
343
|
+
if ($[80] !== onPreview) {
|
|
344
|
+
t17 = onPreview ? () => onPreview(null) : void 0;
|
|
345
|
+
$[80] = onPreview;
|
|
346
|
+
$[81] = t17;
|
|
347
|
+
} else t17 = $[81];
|
|
348
|
+
t18 = months_0.map((first, index_1) => {
|
|
298
349
|
const days = monthGrid(first, weekStartsOn);
|
|
299
350
|
const month = first.slice(0, 7);
|
|
300
351
|
const weeks = Array.from({ length: 6 }, (__0, week) => days.slice(week * 7, week * 7 + 7));
|
|
@@ -373,17 +424,22 @@ function CalendarView(t0) {
|
|
|
373
424
|
const unit = choosing.mode === "months" ? 7 : 4;
|
|
374
425
|
const key = date_4.slice(0, unit);
|
|
375
426
|
const unavailable = key < earliest.slice(0, unit) || key > latest.slice(0, unit);
|
|
376
|
-
const
|
|
427
|
+
const picking = granularity !== "day" && choosing.mode === (granularity === "year" ? "years" : "months");
|
|
428
|
+
const state = picking ? dayState(unit === 4 ? `${key}-01-01` : `${key}-01`) : { selected: key === first.slice(0, unit) };
|
|
377
429
|
return /* @__PURE__ */ jsx("button", {
|
|
378
430
|
type: "button",
|
|
379
431
|
className: "oui-calendar__choice",
|
|
380
432
|
tabIndex: key === choosing.cursor.slice(0, unit) ? 0 : -1,
|
|
381
|
-
"aria-pressed":
|
|
433
|
+
"aria-pressed": Boolean(state.selected || state.inRange),
|
|
382
434
|
"aria-disabled": unavailable || void 0,
|
|
383
|
-
"data-selected":
|
|
435
|
+
"data-selected": state.selected ? "" : void 0,
|
|
436
|
+
"data-in-range": state.inRange ? "" : void 0,
|
|
437
|
+
"data-range-start": state.rangeStart ? "" : void 0,
|
|
438
|
+
"data-range-end": state.rangeEnd ? "" : void 0,
|
|
384
439
|
"data-today": key === today.slice(0, unit) ? "" : void 0,
|
|
385
440
|
"data-disabled": unavailable ? "" : void 0,
|
|
386
441
|
onClick: unavailable ? void 0 : () => choose(choosing, date_4),
|
|
442
|
+
onPointerEnter: picking && onPreview ? () => onPreview(unit === 4 ? `${key}-01-01` : `${key}-01`) : void 0,
|
|
387
443
|
children: choosing.mode === "months" ? formats.month.format(toUtcDate(date_4)) : yearText(date_4)
|
|
388
444
|
}, date_4);
|
|
389
445
|
})
|
|
@@ -411,20 +467,20 @@ function CalendarView(t0) {
|
|
|
411
467
|
role: "gridcell",
|
|
412
468
|
className: "oui-calendar__blank"
|
|
413
469
|
}, date_6);
|
|
414
|
-
const
|
|
470
|
+
const state_0 = dayState(date_6);
|
|
415
471
|
return /* @__PURE__ */ jsx("button", {
|
|
416
472
|
type: "button",
|
|
417
473
|
role: "gridcell",
|
|
418
474
|
className: "oui-calendar__day",
|
|
419
475
|
tabIndex: date_6 === focused ? 0 : -1,
|
|
420
|
-
"aria-label":
|
|
421
|
-
"aria-selected": Boolean(
|
|
476
|
+
"aria-label": formats.dayLong.format(toUtcDate(date_6)),
|
|
477
|
+
"aria-selected": Boolean(state_0.selected || state_0.inRange),
|
|
422
478
|
"aria-current": date_6 === today ? "date" : void 0,
|
|
423
479
|
"aria-disabled": disabled(date_6) || void 0,
|
|
424
|
-
"data-selected":
|
|
425
|
-
"data-in-range":
|
|
426
|
-
"data-range-start":
|
|
427
|
-
"data-range-end":
|
|
480
|
+
"data-selected": state_0.selected ? "" : void 0,
|
|
481
|
+
"data-in-range": state_0.inRange ? "" : void 0,
|
|
482
|
+
"data-range-start": state_0.rangeStart ? "" : void 0,
|
|
483
|
+
"data-range-end": state_0.rangeEnd ? "" : void 0,
|
|
428
484
|
"data-today": date_6 === today ? "" : void 0,
|
|
429
485
|
"data-outside": outside ? "" : void 0,
|
|
430
486
|
"data-disabled": disabled(date_6) ? "" : void 0,
|
|
@@ -437,81 +493,94 @@ function CalendarView(t0) {
|
|
|
437
493
|
})]
|
|
438
494
|
}, month);
|
|
439
495
|
});
|
|
440
|
-
$[
|
|
441
|
-
$[
|
|
442
|
-
$[
|
|
443
|
-
$[
|
|
444
|
-
$[
|
|
445
|
-
$[
|
|
446
|
-
$[
|
|
447
|
-
$[
|
|
448
|
-
$[
|
|
449
|
-
$[
|
|
450
|
-
$[
|
|
451
|
-
$[
|
|
452
|
-
$[
|
|
453
|
-
$[
|
|
454
|
-
$[
|
|
455
|
-
$[
|
|
456
|
-
$[
|
|
457
|
-
$[
|
|
458
|
-
$[
|
|
459
|
-
$[
|
|
460
|
-
$[
|
|
461
|
-
$[
|
|
462
|
-
$[
|
|
463
|
-
$[
|
|
464
|
-
$[
|
|
465
|
-
$[
|
|
496
|
+
$[48] = baseChooser;
|
|
497
|
+
$[49] = chooser;
|
|
498
|
+
$[50] = className;
|
|
499
|
+
$[51] = count;
|
|
500
|
+
$[52] = dayState;
|
|
501
|
+
$[53] = disabled;
|
|
502
|
+
$[54] = earliest;
|
|
503
|
+
$[55] = focused;
|
|
504
|
+
$[56] = granularity;
|
|
505
|
+
$[57] = latest;
|
|
506
|
+
$[58] = locale;
|
|
507
|
+
$[59] = max;
|
|
508
|
+
$[60] = min;
|
|
509
|
+
$[61] = multiselectable;
|
|
510
|
+
$[62] = onPick;
|
|
511
|
+
$[63] = onPreview;
|
|
512
|
+
$[64] = props;
|
|
513
|
+
$[65] = ref;
|
|
514
|
+
$[66] = text;
|
|
515
|
+
$[67] = titleId;
|
|
516
|
+
$[68] = today;
|
|
517
|
+
$[69] = view;
|
|
518
|
+
$[70] = weekStartsOn;
|
|
519
|
+
$[71] = t15;
|
|
520
|
+
$[72] = t16;
|
|
521
|
+
$[73] = t17;
|
|
522
|
+
$[74] = t18;
|
|
523
|
+
$[75] = t19;
|
|
524
|
+
$[76] = t20;
|
|
525
|
+
$[77] = t21;
|
|
466
526
|
} else {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
527
|
+
t15 = $[71];
|
|
528
|
+
t16 = $[72];
|
|
529
|
+
t17 = $[73];
|
|
530
|
+
t18 = $[74];
|
|
531
|
+
t19 = $[75];
|
|
532
|
+
t20 = $[76];
|
|
533
|
+
t21 = $[77];
|
|
474
534
|
}
|
|
475
|
-
let
|
|
476
|
-
if ($[
|
|
477
|
-
|
|
478
|
-
ref:
|
|
479
|
-
className:
|
|
480
|
-
onPointerLeave:
|
|
481
|
-
children:
|
|
535
|
+
let t22;
|
|
536
|
+
if ($[82] !== t15 || $[83] !== t16 || $[84] !== t17 || $[85] !== t18) {
|
|
537
|
+
t22 = /* @__PURE__ */ jsx("div", {
|
|
538
|
+
ref: t15,
|
|
539
|
+
className: t16,
|
|
540
|
+
onPointerLeave: t17,
|
|
541
|
+
children: t18
|
|
482
542
|
});
|
|
483
|
-
$[
|
|
484
|
-
$[
|
|
485
|
-
$[
|
|
486
|
-
$[
|
|
487
|
-
$[
|
|
488
|
-
} else
|
|
489
|
-
let
|
|
490
|
-
if ($[
|
|
491
|
-
|
|
492
|
-
ref:
|
|
493
|
-
className:
|
|
494
|
-
...
|
|
495
|
-
children:
|
|
543
|
+
$[82] = t15;
|
|
544
|
+
$[83] = t16;
|
|
545
|
+
$[84] = t17;
|
|
546
|
+
$[85] = t18;
|
|
547
|
+
$[86] = t22;
|
|
548
|
+
} else t22 = $[86];
|
|
549
|
+
let t23;
|
|
550
|
+
if ($[87] !== t19 || $[88] !== t20 || $[89] !== t21 || $[90] !== t22) {
|
|
551
|
+
t23 = /* @__PURE__ */ jsx("div", {
|
|
552
|
+
ref: t19,
|
|
553
|
+
className: t20,
|
|
554
|
+
...t21,
|
|
555
|
+
children: t22
|
|
496
556
|
});
|
|
497
|
-
$[
|
|
498
|
-
$[
|
|
499
|
-
$[
|
|
500
|
-
$[
|
|
501
|
-
$[
|
|
502
|
-
} else
|
|
503
|
-
return
|
|
557
|
+
$[87] = t19;
|
|
558
|
+
$[88] = t20;
|
|
559
|
+
$[89] = t21;
|
|
560
|
+
$[90] = t22;
|
|
561
|
+
$[91] = t23;
|
|
562
|
+
} else t23 = $[91];
|
|
563
|
+
return t23;
|
|
504
564
|
}
|
|
505
565
|
function _temp(date_0) {
|
|
506
566
|
return String(yearOf(date_0));
|
|
507
567
|
}
|
|
568
|
+
/** A date cut down to the calendar's unit, or `null`. */
|
|
569
|
+
var cut = (value, granularity = "day") => {
|
|
570
|
+
const date = datePart(value);
|
|
571
|
+
return date && truncate(date, granularity);
|
|
572
|
+
};
|
|
508
573
|
/**
|
|
509
574
|
* Month grid for picking one day. Keyboard: arrows move by day / week,
|
|
510
575
|
* Home / End jump within the week, PageUp / PageDown change month (with Shift: year).
|
|
511
576
|
* The month and year in the title open a list to jump straight to another one.
|
|
577
|
+
* With `granularity="month"` or `"year"` it shows a month or year grid instead.
|
|
578
|
+
*
|
|
579
|
+
* @example
|
|
580
|
+
* <Calendar value={month} onValueChange={setMonth} granularity="month" />
|
|
512
581
|
*/
|
|
513
582
|
function Calendar(t0) {
|
|
514
|
-
const $ = c(
|
|
583
|
+
const $ = c(21);
|
|
515
584
|
let onValueChange;
|
|
516
585
|
let props;
|
|
517
586
|
let t1;
|
|
@@ -531,59 +600,62 @@ function Calendar(t0) {
|
|
|
531
600
|
}
|
|
532
601
|
const defaultValue = t1 === void 0 ? null : t1;
|
|
533
602
|
let t2;
|
|
534
|
-
if ($[5] !== defaultValue) {
|
|
535
|
-
t2 = () =>
|
|
603
|
+
if ($[5] !== defaultValue || $[6] !== props) {
|
|
604
|
+
t2 = () => cut(defaultValue, props.granularity);
|
|
536
605
|
$[5] = defaultValue;
|
|
537
|
-
$[6] =
|
|
538
|
-
|
|
606
|
+
$[6] = props;
|
|
607
|
+
$[7] = t2;
|
|
608
|
+
} else t2 = $[7];
|
|
539
609
|
const [inner, setInner] = React.useState(t2);
|
|
540
610
|
let t3;
|
|
541
|
-
if ($[
|
|
542
|
-
t3 = value === void 0 ? inner :
|
|
543
|
-
$[
|
|
544
|
-
$[
|
|
545
|
-
$[
|
|
546
|
-
|
|
611
|
+
if ($[8] !== inner || $[9] !== props || $[10] !== value) {
|
|
612
|
+
t3 = value === void 0 ? inner : cut(value, props.granularity);
|
|
613
|
+
$[8] = inner;
|
|
614
|
+
$[9] = props;
|
|
615
|
+
$[10] = value;
|
|
616
|
+
$[11] = t3;
|
|
617
|
+
} else t3 = $[11];
|
|
547
618
|
const selected = t3;
|
|
548
619
|
let t4;
|
|
549
|
-
if ($[
|
|
620
|
+
if ($[12] !== selected) {
|
|
550
621
|
t4 = (date) => ({ selected: date === selected });
|
|
551
|
-
$[
|
|
552
|
-
$[
|
|
553
|
-
} else t4 = $[
|
|
622
|
+
$[12] = selected;
|
|
623
|
+
$[13] = t4;
|
|
624
|
+
} else t4 = $[13];
|
|
554
625
|
let t5;
|
|
555
|
-
if ($[
|
|
626
|
+
if ($[14] !== onValueChange) {
|
|
556
627
|
t5 = (date_0) => {
|
|
557
628
|
setInner(date_0);
|
|
558
629
|
onValueChange?.(date_0);
|
|
559
630
|
};
|
|
560
|
-
$[
|
|
561
|
-
$[
|
|
562
|
-
} else t5 = $[
|
|
631
|
+
$[14] = onValueChange;
|
|
632
|
+
$[15] = t5;
|
|
633
|
+
} else t5 = $[15];
|
|
563
634
|
let t6;
|
|
564
|
-
if ($[
|
|
635
|
+
if ($[16] !== props || $[17] !== selected || $[18] !== t4 || $[19] !== t5) {
|
|
565
636
|
t6 = /* @__PURE__ */ jsx(CalendarView, {
|
|
566
637
|
target: selected,
|
|
567
638
|
dayState: t4,
|
|
568
639
|
...props,
|
|
569
640
|
onPick: t5
|
|
570
641
|
});
|
|
571
|
-
$[
|
|
572
|
-
$[
|
|
573
|
-
$[
|
|
574
|
-
$[
|
|
575
|
-
$[
|
|
576
|
-
} else t6 = $[
|
|
642
|
+
$[16] = props;
|
|
643
|
+
$[17] = selected;
|
|
644
|
+
$[18] = t4;
|
|
645
|
+
$[19] = t5;
|
|
646
|
+
$[20] = t6;
|
|
647
|
+
} else t6 = $[20];
|
|
577
648
|
return t6;
|
|
578
649
|
}
|
|
579
650
|
var rangeKey = (range) => range ? `${range.start}/${range.end}` : "";
|
|
651
|
+
var cutRange = (range, granularity) => toRange(cut(range?.start, granularity), cut(range?.end, granularity));
|
|
580
652
|
/**
|
|
581
653
|
* Month grid for picking a range of days: the first pick sets one end, the
|
|
582
654
|
* second completes the range (in either order). Same keyboard as Calendar.
|
|
583
655
|
* Disabled days cannot be picked as an end but may fall inside a range.
|
|
584
656
|
*/
|
|
585
657
|
function RangeCalendar(t0) {
|
|
586
|
-
const $ = c(
|
|
658
|
+
const $ = c(32);
|
|
587
659
|
let onValueChange;
|
|
588
660
|
let props;
|
|
589
661
|
let t1;
|
|
@@ -603,38 +675,39 @@ function RangeCalendar(t0) {
|
|
|
603
675
|
}
|
|
604
676
|
const defaultValue = t1 === void 0 ? null : t1;
|
|
605
677
|
let t2;
|
|
606
|
-
if ($[5] !== defaultValue
|
|
607
|
-
t2 = () =>
|
|
608
|
-
$[5] = defaultValue
|
|
609
|
-
$[6] =
|
|
678
|
+
if ($[5] !== defaultValue || $[6] !== props) {
|
|
679
|
+
t2 = () => cutRange(defaultValue, props.granularity);
|
|
680
|
+
$[5] = defaultValue;
|
|
681
|
+
$[6] = props;
|
|
610
682
|
$[7] = t2;
|
|
611
683
|
} else t2 = $[7];
|
|
612
684
|
const [inner, setInner] = React.useState(t2);
|
|
613
685
|
let t3;
|
|
614
|
-
if ($[8] !== inner || $[9] !== value) {
|
|
615
|
-
t3 = value === void 0 ? inner :
|
|
686
|
+
if ($[8] !== inner || $[9] !== props || $[10] !== value) {
|
|
687
|
+
t3 = value === void 0 ? inner : cutRange(value, props.granularity);
|
|
616
688
|
$[8] = inner;
|
|
617
|
-
$[9] =
|
|
618
|
-
$[10] =
|
|
619
|
-
|
|
689
|
+
$[9] = props;
|
|
690
|
+
$[10] = value;
|
|
691
|
+
$[11] = t3;
|
|
692
|
+
} else t3 = $[11];
|
|
620
693
|
const range = t3;
|
|
621
694
|
const [anchor, setAnchor] = React.useState(null);
|
|
622
695
|
const [preview, setPreview] = React.useState(null);
|
|
623
696
|
let t4;
|
|
624
|
-
if ($[
|
|
697
|
+
if ($[12] !== anchor || $[13] !== preview || $[14] !== range) {
|
|
625
698
|
t4 = anchor ? toRange(anchor, preview ?? anchor) : range;
|
|
626
|
-
$[
|
|
627
|
-
$[
|
|
628
|
-
$[
|
|
629
|
-
$[
|
|
630
|
-
} else t4 = $[
|
|
699
|
+
$[12] = anchor;
|
|
700
|
+
$[13] = preview;
|
|
701
|
+
$[14] = range;
|
|
702
|
+
$[15] = t4;
|
|
703
|
+
} else t4 = $[15];
|
|
631
704
|
const shown = t4;
|
|
632
705
|
let t5;
|
|
633
|
-
if ($[
|
|
706
|
+
if ($[16] !== range) {
|
|
634
707
|
t5 = () => rangeKey(range);
|
|
635
|
-
$[
|
|
636
|
-
$[
|
|
637
|
-
} else t5 = $[
|
|
708
|
+
$[16] = range;
|
|
709
|
+
$[17] = t5;
|
|
710
|
+
} else t5 = $[17];
|
|
638
711
|
const [seen, setSeen] = React.useState(t5);
|
|
639
712
|
const [target, setTarget] = React.useState(range?.start ?? null);
|
|
640
713
|
if (rangeKey(range) !== seen) {
|
|
@@ -642,7 +715,7 @@ function RangeCalendar(t0) {
|
|
|
642
715
|
setTarget(range?.start ?? null);
|
|
643
716
|
}
|
|
644
717
|
let t6;
|
|
645
|
-
if ($[
|
|
718
|
+
if ($[18] !== anchor || $[19] !== onValueChange) {
|
|
646
719
|
t6 = (date) => {
|
|
647
720
|
if (!anchor) {
|
|
648
721
|
setAnchor(date);
|
|
@@ -657,33 +730,33 @@ function RangeCalendar(t0) {
|
|
|
657
730
|
setSeen(rangeKey(next));
|
|
658
731
|
onValueChange?.(next);
|
|
659
732
|
};
|
|
660
|
-
$[
|
|
661
|
-
$[
|
|
662
|
-
$[
|
|
663
|
-
} else t6 = $[
|
|
733
|
+
$[18] = anchor;
|
|
734
|
+
$[19] = onValueChange;
|
|
735
|
+
$[20] = t6;
|
|
736
|
+
} else t6 = $[20];
|
|
664
737
|
const select = t6;
|
|
665
738
|
const t7 = anchor ? "" : void 0;
|
|
666
739
|
let t8;
|
|
667
|
-
if ($[
|
|
740
|
+
if ($[21] !== shown) {
|
|
668
741
|
t8 = (date_0) => shown ? {
|
|
669
742
|
selected: date_0 === shown.start || date_0 === shown.end,
|
|
670
743
|
inRange: date_0 >= shown.start && date_0 <= shown.end,
|
|
671
744
|
rangeStart: date_0 === shown.start,
|
|
672
745
|
rangeEnd: date_0 === shown.end
|
|
673
746
|
} : {};
|
|
674
|
-
$[
|
|
675
|
-
$[
|
|
676
|
-
} else t8 = $[
|
|
747
|
+
$[21] = shown;
|
|
748
|
+
$[22] = t8;
|
|
749
|
+
} else t8 = $[22];
|
|
677
750
|
let t9;
|
|
678
|
-
if ($[
|
|
751
|
+
if ($[23] !== anchor) {
|
|
679
752
|
t9 = (date_1) => {
|
|
680
753
|
if (anchor) setPreview(date_1);
|
|
681
754
|
};
|
|
682
|
-
$[
|
|
683
|
-
$[
|
|
684
|
-
} else t9 = $[
|
|
755
|
+
$[23] = anchor;
|
|
756
|
+
$[24] = t9;
|
|
757
|
+
} else t9 = $[24];
|
|
685
758
|
let t10;
|
|
686
|
-
if ($[
|
|
759
|
+
if ($[25] !== props || $[26] !== select || $[27] !== t7 || $[28] !== t8 || $[29] !== t9 || $[30] !== target) {
|
|
687
760
|
t10 = /* @__PURE__ */ jsx(CalendarView, {
|
|
688
761
|
multiselectable: true,
|
|
689
762
|
"data-selecting": t7,
|
|
@@ -693,17 +766,17 @@ function RangeCalendar(t0) {
|
|
|
693
766
|
onPick: select,
|
|
694
767
|
onPreview: t9
|
|
695
768
|
});
|
|
696
|
-
$[
|
|
697
|
-
$[
|
|
698
|
-
$[
|
|
699
|
-
$[
|
|
700
|
-
$[
|
|
701
|
-
$[
|
|
702
|
-
$[
|
|
703
|
-
} else t10 = $[
|
|
769
|
+
$[25] = props;
|
|
770
|
+
$[26] = select;
|
|
771
|
+
$[27] = t7;
|
|
772
|
+
$[28] = t8;
|
|
773
|
+
$[29] = t9;
|
|
774
|
+
$[30] = target;
|
|
775
|
+
$[31] = t10;
|
|
776
|
+
} else t10 = $[31];
|
|
704
777
|
return t10;
|
|
705
778
|
}
|
|
706
779
|
//#endregion
|
|
707
|
-
export { Calendar, RangeCalendar, formatDate
|
|
780
|
+
export { Calendar, RangeCalendar, formatDate };
|
|
708
781
|
|
|
709
782
|
//# sourceMappingURL=Calendar.js.map
|