@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.
Files changed (38) hide show
  1. package/dist/{chunk-HPA5BHDK.js → chunk-KD6MJOL5.js} +73 -68
  2. package/dist/chunk-KD6MJOL5.js.map +1 -0
  3. package/dist/{chunk-3BKZLK7D.js → chunk-SIAFOCT4.js} +74 -56
  4. package/dist/chunk-SIAFOCT4.js.map +1 -0
  5. package/dist/{chunk-D5QVCOX5.js → chunk-UFTKE5U7.js} +143 -151
  6. package/dist/chunk-UFTKE5U7.js.map +1 -0
  7. package/dist/display/eventCalendar/EventCalendar.d.ts +9 -6
  8. package/dist/display/gantt/Gantt.d.ts +6 -5
  9. package/dist/display/heatmapCalendar/HeatmapCalendar.d.ts +4 -2
  10. package/dist/display/index.js +2 -2
  11. package/dist/display/scheduleView/ScheduleView.d.ts +6 -4
  12. package/dist/forms/DateExtensions.d.ts +56 -25
  13. package/dist/forms/MonthGrid.d.ts +8 -7
  14. package/dist/forms/calendar/Calendar.d.ts +8 -7
  15. package/dist/forms/colorPicker/ColorPicker.d.ts +7 -0
  16. package/dist/forms/dateField/DateField.d.ts +6 -5
  17. package/dist/forms/datePicker/DatePicker.d.ts +8 -7
  18. package/dist/forms/dateRangePicker/DateRangePicker.d.ts +5 -4
  19. package/dist/forms/index.js +2 -2
  20. package/dist/forms/rangeCalendar/RangeCalendar.d.ts +8 -6
  21. package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts +3 -2
  22. package/dist/forms/timeField/TimeField.d.ts +4 -7
  23. package/dist/forms/timeField/index.d.ts +1 -1
  24. package/dist/forms/timePicker/TimePicker.d.ts +5 -5
  25. package/dist/http/ApiError.d.ts +7 -0
  26. package/dist/http/ApiResponse.d.ts +4 -0
  27. package/dist/http/DateBrands.d.ts +8 -0
  28. package/dist/http/ProblemDetails.d.ts +9 -0
  29. package/dist/http/index.d.ts +5 -0
  30. package/dist/http/index.js +58 -0
  31. package/dist/http/index.js.map +1 -0
  32. package/dist/http/temporalReviver.d.ts +9 -0
  33. package/dist/index.js +4 -4
  34. package/dist/layout/index.js +1 -1
  35. package/package.json +7 -1
  36. package/dist/chunk-3BKZLK7D.js.map +0 -1
  37. package/dist/chunk-D5QVCOX5.js.map +0 -1
  38. 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.toDateString()}"]`
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.getMonth() !== viewMonth.getMonth() || target.getFullYear() !== viewMonth.getFullYear()) {
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.getDay()), 1);
2746
+ moveFocus(addDays(date, -sundayIndex(date)), 1);
2746
2747
  break;
2747
2748
  case "End":
2748
2749
  e.preventDefault();
2749
- moveFocus(addDays(date, 6 - date.getDay()), -1);
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.getFullYear(), viewMonth.getMonth());
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.getMonth()],
2798
+ MONTHS_LONG[viewMonth.month - 1],
2798
2799
  " ",
2799
- viewMonth.getFullYear()
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.toDateString(),
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.getDate()
2854
+ children: date.day
2854
2855
  },
2855
- date.toDateString()
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 ?? /* @__PURE__ */ new Date())
2881
+ () => startOfMonth(defaultMonth ?? selected ?? today())
2881
2882
  );
2882
- const [focusedDate, setFocusedDate] = useState(() => selected ?? /* @__PURE__ */ new Date());
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: timeToString(current),
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 ?? /* @__PURE__ */ new Date())
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({ start: date, end: null });
2988
+ setRange(null);
2992
2989
  return;
2993
2990
  }
2994
- const startTime = startOfDay(pendingStart).getTime();
2995
- const endTime = startOfDay(date).getTime();
2996
- const finalStart = startTime <= endTime ? pendingStart : date;
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 ?? null);
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.toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric" });
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 ?? /* @__PURE__ */ new 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) => `${String(t.hours).padStart(2, "0")}:${String(t.minutes).padStart(2, "0")}`;
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
- hours: next.hours ?? time?.hours ?? 0,
3144
- minutes: next.minutes ?? time?.minutes ?? 0
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?.hours === h;
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({ hours: h }),
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?.minutes === m;
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({ minutes: m }),
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.toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric" });
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 ?? /* @__PURE__ */ new Date(),
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 ?? /* @__PURE__ */ jsxs(
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.getDay() !== 0) {
5766
- if (allowed.has(JS_TO_RRULE[cursor.getDay()])) return 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.getDay()])) return 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
- next.setDate(rule.byMonthDay);
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
- const c = new Date(prev);
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(new Date(cursor));
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 > rule.until) break;
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 = /* @__PURE__ */ new Date(),
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.getDate(),
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-HPA5BHDK.js.map
7794
- //# sourceMappingURL=chunk-HPA5BHDK.js.map
7798
+ //# sourceMappingURL=chunk-KD6MJOL5.js.map
7799
+ //# sourceMappingURL=chunk-KD6MJOL5.js.map