@wow-two-beta/ui 0.0.68 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-HPA5BHDK.js → chunk-KD6MJOL5.js} +73 -68
- package/dist/chunk-KD6MJOL5.js.map +1 -0
- package/dist/{chunk-3BKZLK7D.js → chunk-SIAFOCT4.js} +74 -56
- package/dist/chunk-SIAFOCT4.js.map +1 -0
- package/dist/{chunk-D5QVCOX5.js → chunk-UFTKE5U7.js} +143 -151
- package/dist/chunk-UFTKE5U7.js.map +1 -0
- package/dist/display/eventCalendar/EventCalendar.d.ts +9 -6
- package/dist/display/gantt/Gantt.d.ts +6 -5
- package/dist/display/heatmapCalendar/HeatmapCalendar.d.ts +4 -2
- package/dist/display/index.js +2 -2
- package/dist/display/scheduleView/ScheduleView.d.ts +6 -4
- package/dist/forms/DateExtensions.d.ts +56 -25
- package/dist/forms/MonthGrid.d.ts +8 -7
- package/dist/forms/calendar/Calendar.d.ts +8 -7
- package/dist/forms/colorPicker/ColorPicker.d.ts +7 -0
- package/dist/forms/dateField/DateField.d.ts +6 -5
- package/dist/forms/datePicker/DatePicker.d.ts +8 -7
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts +5 -4
- package/dist/forms/index.js +2 -2
- package/dist/forms/rangeCalendar/RangeCalendar.d.ts +8 -6
- package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts +3 -2
- package/dist/forms/timeField/TimeField.d.ts +4 -7
- package/dist/forms/timeField/index.d.ts +1 -1
- package/dist/forms/timePicker/TimePicker.d.ts +5 -5
- package/dist/http/ApiError.d.ts +7 -0
- package/dist/http/ApiResponse.d.ts +4 -0
- package/dist/http/DateBrands.d.ts +8 -0
- package/dist/http/ProblemDetails.d.ts +9 -0
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.js +58 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/temporalReviver.d.ts +9 -0
- package/dist/index.js +4 -4
- package/dist/layout/index.js +1 -1
- package/package.json +7 -1
- package/dist/chunk-3BKZLK7D.js.map +0 -1
- package/dist/chunk-D5QVCOX5.js.map +0 -1
- package/dist/chunk-HPA5BHDK.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { startOfMonth, today, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, formatISOTime, Tag, addMonths, Kbd, addDays, sundayIndex, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, isInRange, daysInMonth } from './chunk-SIAFOCT4.js';
|
|
1
2
|
import { listboxItemVariants, listboxVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-UMRRFZ4R.js';
|
|
2
3
|
import { PopoverTrigger, Popover, PopoverContent } from './chunk-XFUD3RZK.js';
|
|
3
|
-
import { startOfMonth, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, Tag, addMonths, Kbd, addDays, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, formatISOTime, startOfDay, isInRange } from './chunk-3BKZLK7D.js';
|
|
4
4
|
import { useControlled, useTypeahead } from './chunk-RNHY33US.js';
|
|
5
5
|
import { Icon } from './chunk-D7ZFCHX5.js';
|
|
6
6
|
import { tv, CssExtensions, ColorExtensions, dataAttr, surfaceVariants, Equality } from './chunk-XSW3NZDD.js';
|
|
@@ -11,6 +11,7 @@ import * as React from 'react';
|
|
|
11
11
|
import { forwardRef, useRef, useImperativeHandle, useState, useEffect, Children, isValidElement, cloneElement, useId as useId$1, createContext, useMemo, useCallback, Fragment as Fragment$1, useContext } from 'react';
|
|
12
12
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
13
13
|
import { Minus, Plus, EyeOff, Eye, Search, X, Check, Upload, Loader2, ChevronDown, Calendar as Calendar$1, Clock, UploadCloud, ChevronRight, Copy, Zap, Wallet, Video, User, Trash, Tag as Tag$1, Sun, Star, ShoppingCart, Share2, Settings, Send, Play, Pin, Phone, Pencil, Paperclip, Music, Moon, Mic, MessageCircle, Map as Map$1, Mail, Lock, Link2, Lightbulb, Layers, Info, Inbox, Image, Home, Heart, Globe, Folder, File, ExternalLink, Edit, Download, Compass, Coffee, Code, Cloud, Camera, Bookmark, Bell, ChevronLeft, Heading1, Heading2, Bold, Italic, List, Quote } from 'lucide-react';
|
|
14
|
+
import { Temporal } from '@js-temporal/polyfill';
|
|
14
15
|
import { Marked } from 'marked';
|
|
15
16
|
|
|
16
17
|
var SIZE = {
|
|
@@ -2683,7 +2684,7 @@ function MonthGrid({
|
|
|
2683
2684
|
useEffect(() => {
|
|
2684
2685
|
if (!interactedRef.current) return;
|
|
2685
2686
|
const cell = gridRef.current?.querySelector(
|
|
2686
|
-
`[data-date="${focusedDate.
|
|
2687
|
+
`[data-date="${focusedDate.toString()}"]`
|
|
2687
2688
|
);
|
|
2688
2689
|
cell?.focus();
|
|
2689
2690
|
}, [focusedDate]);
|
|
@@ -2714,7 +2715,7 @@ function MonthGrid({
|
|
|
2714
2715
|
if (isDayDisabled(target)) return;
|
|
2715
2716
|
}
|
|
2716
2717
|
interactedRef.current = true;
|
|
2717
|
-
if (target.
|
|
2718
|
+
if (target.month !== viewMonth.month || target.year !== viewMonth.year) {
|
|
2718
2719
|
onViewMonthChange(startOfMonth(target));
|
|
2719
2720
|
}
|
|
2720
2721
|
onFocusedDateChange(target);
|
|
@@ -2742,11 +2743,11 @@ function MonthGrid({
|
|
|
2742
2743
|
break;
|
|
2743
2744
|
case "Home":
|
|
2744
2745
|
e.preventDefault();
|
|
2745
|
-
moveFocus(addDays(date, -date
|
|
2746
|
+
moveFocus(addDays(date, -sundayIndex(date)), 1);
|
|
2746
2747
|
break;
|
|
2747
2748
|
case "End":
|
|
2748
2749
|
e.preventDefault();
|
|
2749
|
-
moveFocus(addDays(date, 6 - date
|
|
2750
|
+
moveFocus(addDays(date, 6 - sundayIndex(date)), -1);
|
|
2750
2751
|
break;
|
|
2751
2752
|
case "PageDown":
|
|
2752
2753
|
e.preventDefault();
|
|
@@ -2766,7 +2767,7 @@ function MonthGrid({
|
|
|
2766
2767
|
[moveFocus, onDayActivate, isDayDisabled]
|
|
2767
2768
|
);
|
|
2768
2769
|
const dayDisabled = (date) => isDayDisabled?.(date) ?? false;
|
|
2769
|
-
const cells = buildMonthGrid(viewMonth.
|
|
2770
|
+
const cells = buildMonthGrid(viewMonth.year, viewMonth.month);
|
|
2770
2771
|
const weeks = Array.from({ length: 6 }, (_, w) => cells.slice(w * 7, w * 7 + 7));
|
|
2771
2772
|
let tabStopDate = focusedDate;
|
|
2772
2773
|
if (dayDisabled(focusedDate)) {
|
|
@@ -2794,9 +2795,9 @@ function MonthGrid({
|
|
|
2794
2795
|
}
|
|
2795
2796
|
),
|
|
2796
2797
|
/* @__PURE__ */ jsxs("div", { className: "text-sm font-medium", "aria-live": "polite", children: [
|
|
2797
|
-
MONTHS_LONG[viewMonth.
|
|
2798
|
+
MONTHS_LONG[viewMonth.month - 1],
|
|
2798
2799
|
" ",
|
|
2799
|
-
viewMonth.
|
|
2800
|
+
viewMonth.year
|
|
2800
2801
|
] }),
|
|
2801
2802
|
/* @__PURE__ */ jsx(
|
|
2802
2803
|
"button",
|
|
@@ -2827,7 +2828,7 @@ function MonthGrid({
|
|
|
2827
2828
|
{
|
|
2828
2829
|
type: "button",
|
|
2829
2830
|
role: "gridcell",
|
|
2830
|
-
"data-date": date.
|
|
2831
|
+
"data-date": date.toString(),
|
|
2831
2832
|
"aria-disabled": disabled || void 0,
|
|
2832
2833
|
"data-today": isToday(date) ? "" : void 0,
|
|
2833
2834
|
"data-out-of-month": outOfMonth ? "" : void 0,
|
|
@@ -2850,9 +2851,9 @@ function MonthGrid({
|
|
|
2850
2851
|
disabled && "pointer-events-none opacity-40",
|
|
2851
2852
|
cellClassName
|
|
2852
2853
|
),
|
|
2853
|
-
children: date.
|
|
2854
|
+
children: date.day
|
|
2854
2855
|
},
|
|
2855
|
-
date.
|
|
2856
|
+
date.toString()
|
|
2856
2857
|
);
|
|
2857
2858
|
}) }, weekIndex)) })
|
|
2858
2859
|
]
|
|
@@ -2877,9 +2878,9 @@ var Calendar = forwardRef(function Calendar2({
|
|
|
2877
2878
|
onChange: onValueChange
|
|
2878
2879
|
});
|
|
2879
2880
|
const [viewMonth, setViewMonth] = useState(
|
|
2880
|
-
() => startOfMonth(defaultMonth ?? selected ??
|
|
2881
|
+
() => startOfMonth(defaultMonth ?? selected ?? today())
|
|
2881
2882
|
);
|
|
2882
|
-
const [focusedDate, setFocusedDate] = useState(() => selected ??
|
|
2883
|
+
const [focusedDate, setFocusedDate] = useState(() => selected ?? today());
|
|
2883
2884
|
return /* @__PURE__ */ jsx("div", { ref, className: cn(className), ...rest, children: /* @__PURE__ */ jsx(
|
|
2884
2885
|
MonthGrid,
|
|
2885
2886
|
{
|
|
@@ -2931,12 +2932,6 @@ var DateField = forwardRef(function DateField2({ value, defaultValue, onValueCha
|
|
|
2931
2932
|
}
|
|
2932
2933
|
);
|
|
2933
2934
|
});
|
|
2934
|
-
function timeToString(t) {
|
|
2935
|
-
if (!t) return "";
|
|
2936
|
-
const date = /* @__PURE__ */ new Date();
|
|
2937
|
-
date.setHours(t.hours, t.minutes, 0, 0);
|
|
2938
|
-
return formatISOTime(date);
|
|
2939
|
-
}
|
|
2940
2935
|
var TimeField = forwardRef(function TimeField2({ value, defaultValue, onValueChange, size, state, className, id, disabled, required, ...rest }, ref) {
|
|
2941
2936
|
const ctx = useFormControl();
|
|
2942
2937
|
const [current, setCurrent] = useControlled({
|
|
@@ -2954,7 +2949,7 @@ var TimeField = forwardRef(function TimeField2({ value, defaultValue, onValueCha
|
|
|
2954
2949
|
required: required ?? ctx?.isRequired,
|
|
2955
2950
|
"aria-invalid": ctx?.isInvalid || void 0,
|
|
2956
2951
|
"aria-describedby": ctx ? `${ctx.helperId} ${ctx.errorId}` : void 0,
|
|
2957
|
-
value:
|
|
2952
|
+
value: formatISOTime(current),
|
|
2958
2953
|
onChange: (e) => setCurrent(parseISOTime(e.target.value)),
|
|
2959
2954
|
className: cn(inputBaseVariants({ size, state: state ?? (ctx?.isInvalid ? "invalid" : "default") }), className),
|
|
2960
2955
|
...rest
|
|
@@ -2980,28 +2975,29 @@ var RangeCalendar = forwardRef(
|
|
|
2980
2975
|
onChange: onValueChange
|
|
2981
2976
|
});
|
|
2982
2977
|
const [viewMonth, setViewMonth] = useState(
|
|
2983
|
-
() => startOfMonth(defaultMonth ?? range?.start ??
|
|
2978
|
+
() => startOfMonth(defaultMonth ?? range?.start ?? today())
|
|
2979
|
+
);
|
|
2980
|
+
const [focusedDate, setFocusedDate] = useState(
|
|
2981
|
+
() => range?.start ?? today()
|
|
2984
2982
|
);
|
|
2985
|
-
const [focusedDate, setFocusedDate] = useState(() => range?.start ?? /* @__PURE__ */ new Date());
|
|
2986
2983
|
const [hoveredDate, setHoveredDate] = useState(null);
|
|
2987
2984
|
const [pendingStart, setPendingStart] = useState(null);
|
|
2988
2985
|
const handleActivate = (date) => {
|
|
2989
2986
|
if (!pendingStart) {
|
|
2990
2987
|
setPendingStart(date);
|
|
2991
|
-
setRange(
|
|
2988
|
+
setRange(null);
|
|
2992
2989
|
return;
|
|
2993
2990
|
}
|
|
2994
|
-
const
|
|
2995
|
-
const
|
|
2996
|
-
const
|
|
2997
|
-
const finalEnd = startTime <= endTime ? date : pendingStart;
|
|
2991
|
+
const forward = Temporal.PlainDate.compare(pendingStart, date) <= 0;
|
|
2992
|
+
const finalStart = forward ? pendingStart : date;
|
|
2993
|
+
const finalEnd = forward ? date : pendingStart;
|
|
2998
2994
|
setRange({ start: finalStart, end: finalEnd });
|
|
2999
2995
|
setPendingStart(null);
|
|
3000
2996
|
};
|
|
3001
|
-
const previewEnd = pendingStart ? hoveredDate : range?.end;
|
|
2997
|
+
const previewEnd = pendingStart ? hoveredDate : range?.end ?? null;
|
|
3002
2998
|
const isStart = (d) => isSameDay(d, range?.start ?? null) || isSameDay(d, pendingStart);
|
|
3003
2999
|
const isEnd = (d) => isSameDay(d, range?.end ?? null);
|
|
3004
|
-
const inRange = (d) => isInRange(d, pendingStart ?? range?.start, previewEnd
|
|
3000
|
+
const inRange = (d) => isInRange(d, pendingStart ?? range?.start, previewEnd);
|
|
3005
3001
|
return /* @__PURE__ */ jsx("div", { ref, className: cn(className), ...rest, children: /* @__PURE__ */ jsx(
|
|
3006
3002
|
MonthGrid,
|
|
3007
3003
|
{
|
|
@@ -3037,7 +3033,7 @@ var RangeCalendar = forwardRef(
|
|
|
3037
3033
|
) });
|
|
3038
3034
|
}
|
|
3039
3035
|
);
|
|
3040
|
-
var defaultFormat = (d) => d.
|
|
3036
|
+
var defaultFormat = (d) => d.toLocaleString(void 0, { year: "numeric", month: "short", day: "numeric" });
|
|
3041
3037
|
var DatePicker = forwardRef(function DatePicker2({
|
|
3042
3038
|
value,
|
|
3043
3039
|
defaultValue,
|
|
@@ -3088,7 +3084,7 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
3088
3084
|
setDate(d);
|
|
3089
3085
|
setOpen(false);
|
|
3090
3086
|
},
|
|
3091
|
-
defaultMonth: date ??
|
|
3087
|
+
defaultMonth: date ?? today(),
|
|
3092
3088
|
min,
|
|
3093
3089
|
max,
|
|
3094
3090
|
isDisabled: dayDisabled
|
|
@@ -3097,7 +3093,7 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
3097
3093
|
name && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: formatISODate(date) })
|
|
3098
3094
|
] });
|
|
3099
3095
|
});
|
|
3100
|
-
var defaultFormat2 = (t) =>
|
|
3096
|
+
var defaultFormat2 = (t) => t.toString({ smallestUnit: "minute" });
|
|
3101
3097
|
var HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
3102
3098
|
var TimePicker = forwardRef(function TimePicker2({
|
|
3103
3099
|
value,
|
|
@@ -3139,10 +3135,10 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3139
3135
|
}, [open]);
|
|
3140
3136
|
const triggerState = state ?? (isInvalid ? "invalid" : "default");
|
|
3141
3137
|
const update = (next) => {
|
|
3142
|
-
const merged = {
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
};
|
|
3138
|
+
const merged = Temporal.PlainTime.from({
|
|
3139
|
+
hour: next.hour ?? time?.hour ?? 0,
|
|
3140
|
+
minute: next.minute ?? time?.minute ?? 0
|
|
3141
|
+
});
|
|
3146
3142
|
setTime(merged);
|
|
3147
3143
|
};
|
|
3148
3144
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, placement: "bottom-start", offset: 6, children: [
|
|
@@ -3169,7 +3165,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3169
3165
|
"aria-label": "Hours",
|
|
3170
3166
|
className: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pr-1",
|
|
3171
3167
|
children: HOURS.map((h) => {
|
|
3172
|
-
const selected = time?.
|
|
3168
|
+
const selected = time?.hour === h;
|
|
3173
3169
|
return /* @__PURE__ */ jsx(
|
|
3174
3170
|
"button",
|
|
3175
3171
|
{
|
|
@@ -3177,7 +3173,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3177
3173
|
role: "option",
|
|
3178
3174
|
"aria-selected": selected,
|
|
3179
3175
|
"data-selected": selected ? "" : void 0,
|
|
3180
|
-
onClick: () => update({
|
|
3176
|
+
onClick: () => update({ hour: h }),
|
|
3181
3177
|
className: cn(
|
|
3182
3178
|
"grid h-8 w-12 place-items-center rounded-sm text-sm transition-colors hover:bg-muted",
|
|
3183
3179
|
selected && "bg-primary text-primary-foreground hover:bg-primary"
|
|
@@ -3198,7 +3194,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3198
3194
|
"aria-label": "Minutes",
|
|
3199
3195
|
className: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pl-1",
|
|
3200
3196
|
children: minutes.map((m) => {
|
|
3201
|
-
const selected = time?.
|
|
3197
|
+
const selected = time?.minute === m;
|
|
3202
3198
|
return /* @__PURE__ */ jsx(
|
|
3203
3199
|
"button",
|
|
3204
3200
|
{
|
|
@@ -3206,7 +3202,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3206
3202
|
role: "option",
|
|
3207
3203
|
"aria-selected": selected,
|
|
3208
3204
|
"data-selected": selected ? "" : void 0,
|
|
3209
|
-
onClick: () => update({
|
|
3205
|
+
onClick: () => update({ minute: m }),
|
|
3210
3206
|
className: cn(
|
|
3211
3207
|
"grid h-8 w-12 place-items-center rounded-sm text-sm transition-colors hover:bg-muted",
|
|
3212
3208
|
selected && "bg-primary text-primary-foreground hover:bg-primary"
|
|
@@ -3219,17 +3215,10 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
3219
3215
|
}
|
|
3220
3216
|
)
|
|
3221
3217
|
] }) }),
|
|
3222
|
-
name && time && /* @__PURE__ */ jsx(
|
|
3223
|
-
"input",
|
|
3224
|
-
{
|
|
3225
|
-
type: "hidden",
|
|
3226
|
-
name,
|
|
3227
|
-
value: `${String(time.hours).padStart(2, "0")}:${String(time.minutes).padStart(2, "0")}`
|
|
3228
|
-
}
|
|
3229
|
-
)
|
|
3218
|
+
name && time && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: time.toString({ smallestUnit: "minute" }) })
|
|
3230
3219
|
] });
|
|
3231
3220
|
});
|
|
3232
|
-
var defaultFormat3 = (d) => d.
|
|
3221
|
+
var defaultFormat3 = (d) => d.toLocaleString(void 0, { year: "numeric", month: "short", day: "numeric" });
|
|
3233
3222
|
var DateRangePicker = forwardRef(
|
|
3234
3223
|
function DateRangePicker2({
|
|
3235
3224
|
value,
|
|
@@ -3287,7 +3276,7 @@ var DateRangePicker = forwardRef(
|
|
|
3287
3276
|
{
|
|
3288
3277
|
value: range,
|
|
3289
3278
|
onValueChange: setRange,
|
|
3290
|
-
defaultMonth: range?.start ??
|
|
3279
|
+
defaultMonth: range?.start ?? today(),
|
|
3291
3280
|
min,
|
|
3292
3281
|
max,
|
|
3293
3282
|
isDisabled: dayDisabled
|
|
@@ -4052,6 +4041,8 @@ function ColorSwatchPicker({
|
|
|
4052
4041
|
);
|
|
4053
4042
|
}
|
|
4054
4043
|
var FALLBACK_HSV = { h: 217, s: 0.91, v: 0.96, a: 1 };
|
|
4044
|
+
var NOOP = () => {
|
|
4045
|
+
};
|
|
4055
4046
|
var ColorPicker = forwardRef(function ColorPicker2({
|
|
4056
4047
|
value,
|
|
4057
4048
|
defaultValue = "#3b82f6",
|
|
@@ -4059,6 +4050,7 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
4059
4050
|
hasAlpha = false,
|
|
4060
4051
|
presets,
|
|
4061
4052
|
triggerSize = "md",
|
|
4053
|
+
triggerVariant = "full",
|
|
4062
4054
|
isDisabled = false,
|
|
4063
4055
|
name,
|
|
4064
4056
|
className,
|
|
@@ -4085,7 +4077,22 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
4085
4077
|
setHex(hsvToHex(next, { withAlpha: hasAlpha }));
|
|
4086
4078
|
};
|
|
4087
4079
|
return /* @__PURE__ */ jsxs(Popover, { children: [
|
|
4088
|
-
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: trigger ??
|
|
4080
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: trigger ?? (triggerVariant === "swatch" ? (
|
|
4081
|
+
// Bare interactive swatch — ColorSwatch is a real <button> here (given onClick),
|
|
4082
|
+
// so it becomes the popover trigger via Slot with no wrapper chrome.
|
|
4083
|
+
/* @__PURE__ */ jsx(
|
|
4084
|
+
ColorSwatch,
|
|
4085
|
+
{
|
|
4086
|
+
ref,
|
|
4087
|
+
color: hex ?? "#00000000",
|
|
4088
|
+
size: triggerSize,
|
|
4089
|
+
onClick: NOOP,
|
|
4090
|
+
"aria-label": ariaLabel,
|
|
4091
|
+
isDisabled,
|
|
4092
|
+
className
|
|
4093
|
+
}
|
|
4094
|
+
)
|
|
4095
|
+
) : /* @__PURE__ */ jsxs(
|
|
4089
4096
|
"button",
|
|
4090
4097
|
{
|
|
4091
4098
|
ref,
|
|
@@ -4097,11 +4104,11 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
4097
4104
|
className
|
|
4098
4105
|
),
|
|
4099
4106
|
children: [
|
|
4100
|
-
/* @__PURE__ */ jsx(ColorSwatch, { color: hex ?? "#00000000", size: triggerSize }),
|
|
4107
|
+
triggerVariant === "full" && /* @__PURE__ */ jsx(ColorSwatch, { color: hex ?? "#00000000", size: triggerSize }),
|
|
4101
4108
|
/* @__PURE__ */ jsx("span", { className: "font-mono uppercase", children: hex ?? "\u2014" })
|
|
4102
4109
|
]
|
|
4103
4110
|
}
|
|
4104
|
-
) }),
|
|
4111
|
+
)) }),
|
|
4105
4112
|
/* @__PURE__ */ jsxs(PopoverContent, { className: "flex w-64 flex-col gap-3", children: [
|
|
4106
4113
|
/* @__PURE__ */ jsx(
|
|
4107
4114
|
ColorArea,
|
|
@@ -5762,13 +5769,13 @@ function nextOccurrence(rule, prev) {
|
|
|
5762
5769
|
if (!rule.byDay || rule.byDay.length === 0) return addDays(prev, 7 * rule.interval);
|
|
5763
5770
|
const allowed = new Set(rule.byDay);
|
|
5764
5771
|
let cursor = addDays(prev, 1);
|
|
5765
|
-
while (cursor
|
|
5766
|
-
if (allowed.has(JS_TO_RRULE[cursor
|
|
5772
|
+
while (sundayIndex(cursor) !== 0) {
|
|
5773
|
+
if (allowed.has(JS_TO_RRULE[sundayIndex(cursor)])) return cursor;
|
|
5767
5774
|
cursor = addDays(cursor, 1);
|
|
5768
5775
|
}
|
|
5769
5776
|
cursor = addDays(cursor, 7 * (rule.interval - 1));
|
|
5770
5777
|
for (let i = 0; i < 7; i++) {
|
|
5771
|
-
if (allowed.has(JS_TO_RRULE[cursor
|
|
5778
|
+
if (allowed.has(JS_TO_RRULE[sundayIndex(cursor)])) return cursor;
|
|
5772
5779
|
cursor = addDays(cursor, 1);
|
|
5773
5780
|
}
|
|
5774
5781
|
return null;
|
|
@@ -5776,25 +5783,23 @@ function nextOccurrence(rule, prev) {
|
|
|
5776
5783
|
case "MONTHLY": {
|
|
5777
5784
|
const next = addMonths(prev, rule.interval);
|
|
5778
5785
|
if (rule.byMonthDay) {
|
|
5779
|
-
|
|
5786
|
+
const day = Math.min(rule.byMonthDay, daysInMonth(next.year, next.month));
|
|
5787
|
+
return next.with({ day });
|
|
5780
5788
|
}
|
|
5781
5789
|
return next;
|
|
5782
5790
|
}
|
|
5783
|
-
case "YEARLY":
|
|
5784
|
-
|
|
5785
|
-
c.setFullYear(c.getFullYear() + rule.interval);
|
|
5786
|
-
return c;
|
|
5787
|
-
}
|
|
5791
|
+
case "YEARLY":
|
|
5792
|
+
return prev.add({ years: rule.interval });
|
|
5788
5793
|
}
|
|
5789
5794
|
}
|
|
5790
5795
|
function buildPreview(rule, from, count) {
|
|
5791
5796
|
const out = [];
|
|
5792
5797
|
let cursor = from;
|
|
5793
|
-
out.push(
|
|
5798
|
+
out.push(cursor);
|
|
5794
5799
|
for (let i = 0; i < count - 1; i++) {
|
|
5795
5800
|
const next = nextOccurrence(rule, cursor);
|
|
5796
5801
|
if (!next) break;
|
|
5797
|
-
if (rule.until && next
|
|
5802
|
+
if (rule.until && Temporal.PlainDate.compare(next, rule.until) > 0) break;
|
|
5798
5803
|
if (rule.count && out.length >= rule.count) break;
|
|
5799
5804
|
out.push(next);
|
|
5800
5805
|
cursor = next;
|
|
@@ -5807,7 +5812,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5807
5812
|
value,
|
|
5808
5813
|
defaultValue,
|
|
5809
5814
|
onValueChange,
|
|
5810
|
-
from =
|
|
5815
|
+
from = today(),
|
|
5811
5816
|
previewCount = 5,
|
|
5812
5817
|
isDisabled,
|
|
5813
5818
|
isReadOnly,
|
|
@@ -5908,7 +5913,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5908
5913
|
type: "number",
|
|
5909
5914
|
min: 1,
|
|
5910
5915
|
max: 31,
|
|
5911
|
-
value: rule.byMonthDay ?? from.
|
|
5916
|
+
value: rule.byMonthDay ?? from.day,
|
|
5912
5917
|
disabled: isDisabled,
|
|
5913
5918
|
readOnly: isReadOnly,
|
|
5914
5919
|
onChange: (e) => update({ byMonthDay: Math.min(31, Math.max(1, Number(e.target.value) || 1)) }),
|
|
@@ -7790,5 +7795,5 @@ var ChatComposer = forwardRef(
|
|
|
7790
7795
|
ChatComposer.displayName = "ChatComposer";
|
|
7791
7796
|
|
|
7792
7797
|
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Field, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper2 as Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, TextareaInput, TimeField, TimePicker, UrlInput, Wizard2 as Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard };
|
|
7793
|
-
//# sourceMappingURL=chunk-
|
|
7794
|
-
//# sourceMappingURL=chunk-
|
|
7798
|
+
//# sourceMappingURL=chunk-KD6MJOL5.js.map
|
|
7799
|
+
//# sourceMappingURL=chunk-KD6MJOL5.js.map
|