@almadar/ui 5.126.0 → 5.127.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.
@@ -14413,6 +14413,32 @@ var init_ButtonGroup = __esm({
14413
14413
  ButtonGroup.displayName = "ButtonGroup";
14414
14414
  }
14415
14415
  });
14416
+
14417
+ // lib/getNestedValue.ts
14418
+ function getNestedValue(obj, path) {
14419
+ if (obj === null || obj === void 0 || !path) {
14420
+ return void 0;
14421
+ }
14422
+ if (!path.includes(".")) {
14423
+ return obj[path];
14424
+ }
14425
+ const parts = path.split(".");
14426
+ let value = obj;
14427
+ for (const part of parts) {
14428
+ if (value === null || value === void 0) {
14429
+ return void 0;
14430
+ }
14431
+ if (typeof value !== "object" || Array.isArray(value)) {
14432
+ return void 0;
14433
+ }
14434
+ value = value[part];
14435
+ }
14436
+ return value;
14437
+ }
14438
+ var init_getNestedValue = __esm({
14439
+ "lib/getNestedValue.ts"() {
14440
+ }
14441
+ });
14416
14442
  function useSwipeGesture(callbacks, options = {}) {
14417
14443
  const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
14418
14444
  const startX = useRef(0);
@@ -14526,11 +14552,15 @@ function getWeekDays(start) {
14526
14552
  }
14527
14553
  return days;
14528
14554
  }
14529
- function generateDefaultTimeSlots(events2) {
14555
+ function eventStartDate(event, startField) {
14556
+ const raw = getNestedValue(event, startField);
14557
+ return new Date(raw ?? "");
14558
+ }
14559
+ function generateDefaultTimeSlots(events2, startField) {
14530
14560
  let first = DEFAULT_FIRST_HOUR;
14531
14561
  let last = DEFAULT_LAST_HOUR;
14532
14562
  for (const ev of events2) {
14533
- const start = new Date(ev.startTime);
14563
+ const start = eventStartDate(ev, startField);
14534
14564
  if (Number.isNaN(start.getTime())) continue;
14535
14565
  const hour = start.getHours();
14536
14566
  if (hour < first) first = hour;
@@ -14542,8 +14572,8 @@ function generateDefaultTimeSlots(events2) {
14542
14572
  }
14543
14573
  return slots;
14544
14574
  }
14545
- function eventInSlot(event, day, slotTime) {
14546
- const eventStart = new Date(event.startTime);
14575
+ function eventInSlot(event, day, slotTime, startField) {
14576
+ const eventStart = eventStartDate(event, startField);
14547
14577
  if (Number.isNaN(eventStart.getTime())) return false;
14548
14578
  const [slotHour] = slotTime.split(":").map(Number);
14549
14579
  return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
@@ -14560,7 +14590,12 @@ function CalendarGrid({
14560
14590
  longPressPayload,
14561
14591
  swipeLeftEvent,
14562
14592
  swipeRightEvent,
14563
- dayWindow = "auto"
14593
+ dayWindow = "auto",
14594
+ titleField = "title",
14595
+ startField = "startTime",
14596
+ colorField = "color",
14597
+ children,
14598
+ renderItem
14564
14599
  }) {
14565
14600
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
14566
14601
  const eventBus = useEventBus();
@@ -14575,8 +14610,8 @@ function CalendarGrid({
14575
14610
  [resolvedWeekStart]
14576
14611
  );
14577
14612
  const resolvedTimeSlots = useMemo(
14578
- () => timeSlots ?? generateDefaultTimeSlots(evs),
14579
- [timeSlots, evs]
14613
+ () => timeSlots ?? generateDefaultTimeSlots(evs, startField),
14614
+ [timeSlots, evs, startField]
14580
14615
  );
14581
14616
  const visibleCount = useDayWindow(dayWindow);
14582
14617
  const [dayOffset, setDayOffset] = useState(0);
@@ -14613,9 +14648,9 @@ function CalendarGrid({
14613
14648
  );
14614
14649
  const eventsForDayCount = useCallback(
14615
14650
  (day) => evs.filter(
14616
- (ev) => new Date(ev.startTime).toDateString() === day.toDateString()
14651
+ (ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
14617
14652
  ).length,
14618
- [events2]
14653
+ [events2, startField]
14619
14654
  );
14620
14655
  const swipeCallbacks = useMemo(() => ({
14621
14656
  onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
@@ -14634,8 +14669,11 @@ function CalendarGrid({
14634
14669
  eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
14635
14670
  }, 500);
14636
14671
  }, [longPressEvent, longPressPayload, eventBus]);
14672
+ const renderChip = children ?? renderItem;
14637
14673
  const renderEvent = (event) => {
14638
- const color = event.color;
14674
+ const color = getNestedValue(event, colorField);
14675
+ const label = String(getNestedValue(event, titleField) ?? "");
14676
+ const eventIndex = evs.indexOf(event);
14639
14677
  return /* @__PURE__ */ jsx(
14640
14678
  Box,
14641
14679
  {
@@ -14647,7 +14685,7 @@ function CalendarGrid({
14647
14685
  color ? color : "bg-primary/10 border-primary/30 text-primary"
14648
14686
  ),
14649
14687
  onClick: (e) => handleEventClick(event, e),
14650
- children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
14688
+ children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
14651
14689
  },
14652
14690
  event.id
14653
14691
  );
@@ -14731,7 +14769,7 @@ function CalendarGrid({
14731
14769
  ) }),
14732
14770
  visibleDays.map((day) => {
14733
14771
  const slotEvents = evs.filter(
14734
- (ev) => eventInSlot(ev, day, time)
14772
+ (ev) => eventInSlot(ev, day, time, startField)
14735
14773
  );
14736
14774
  const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
14737
14775
  return /* @__PURE__ */ jsx(
@@ -14768,6 +14806,7 @@ var init_CalendarGrid = __esm({
14768
14806
  "components/core/molecules/CalendarGrid.tsx"() {
14769
14807
  "use client";
14770
14808
  init_cn();
14809
+ init_getNestedValue();
14771
14810
  init_Box();
14772
14811
  init_Button();
14773
14812
  init_Stack();
@@ -16379,32 +16418,6 @@ var init_Canvas = __esm({
16379
16418
  Canvas.displayName = "Canvas";
16380
16419
  }
16381
16420
  });
16382
-
16383
- // lib/getNestedValue.ts
16384
- function getNestedValue(obj, path) {
16385
- if (obj === null || obj === void 0 || !path) {
16386
- return void 0;
16387
- }
16388
- if (!path.includes(".")) {
16389
- return obj[path];
16390
- }
16391
- const parts = path.split(".");
16392
- let value = obj;
16393
- for (const part of parts) {
16394
- if (value === null || value === void 0) {
16395
- return void 0;
16396
- }
16397
- if (typeof value !== "object" || Array.isArray(value)) {
16398
- return void 0;
16399
- }
16400
- value = value[part];
16401
- }
16402
- return value;
16403
- }
16404
- var init_getNestedValue = __esm({
16405
- "lib/getNestedValue.ts"() {
16406
- }
16407
- });
16408
16421
  var Pagination;
16409
16422
  var init_Pagination = __esm({
16410
16423
  "components/core/molecules/Pagination.tsx"() {
@@ -18876,6 +18876,32 @@ var init_ButtonGroup = __esm({
18876
18876
  ButtonGroup.displayName = "ButtonGroup";
18877
18877
  }
18878
18878
  });
18879
+
18880
+ // lib/getNestedValue.ts
18881
+ function getNestedValue(obj, path) {
18882
+ if (obj === null || obj === void 0 || !path) {
18883
+ return void 0;
18884
+ }
18885
+ if (!path.includes(".")) {
18886
+ return obj[path];
18887
+ }
18888
+ const parts = path.split(".");
18889
+ let value = obj;
18890
+ for (const part of parts) {
18891
+ if (value === null || value === void 0) {
18892
+ return void 0;
18893
+ }
18894
+ if (typeof value !== "object" || Array.isArray(value)) {
18895
+ return void 0;
18896
+ }
18897
+ value = value[part];
18898
+ }
18899
+ return value;
18900
+ }
18901
+ var init_getNestedValue = __esm({
18902
+ "lib/getNestedValue.ts"() {
18903
+ }
18904
+ });
18879
18905
  function useSwipeGesture(callbacks, options = {}) {
18880
18906
  const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
18881
18907
  const startX = React84.useRef(0);
@@ -18989,11 +19015,15 @@ function getWeekDays(start) {
18989
19015
  }
18990
19016
  return days;
18991
19017
  }
18992
- function generateDefaultTimeSlots(events2) {
19018
+ function eventStartDate(event, startField) {
19019
+ const raw = getNestedValue(event, startField);
19020
+ return new Date(raw ?? "");
19021
+ }
19022
+ function generateDefaultTimeSlots(events2, startField) {
18993
19023
  let first = DEFAULT_FIRST_HOUR;
18994
19024
  let last = DEFAULT_LAST_HOUR;
18995
19025
  for (const ev of events2) {
18996
- const start = new Date(ev.startTime);
19026
+ const start = eventStartDate(ev, startField);
18997
19027
  if (Number.isNaN(start.getTime())) continue;
18998
19028
  const hour = start.getHours();
18999
19029
  if (hour < first) first = hour;
@@ -19005,8 +19035,8 @@ function generateDefaultTimeSlots(events2) {
19005
19035
  }
19006
19036
  return slots;
19007
19037
  }
19008
- function eventInSlot(event, day, slotTime) {
19009
- const eventStart = new Date(event.startTime);
19038
+ function eventInSlot(event, day, slotTime, startField) {
19039
+ const eventStart = eventStartDate(event, startField);
19010
19040
  if (Number.isNaN(eventStart.getTime())) return false;
19011
19041
  const [slotHour] = slotTime.split(":").map(Number);
19012
19042
  return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
@@ -19023,7 +19053,12 @@ function CalendarGrid({
19023
19053
  longPressPayload,
19024
19054
  swipeLeftEvent,
19025
19055
  swipeRightEvent,
19026
- dayWindow = "auto"
19056
+ dayWindow = "auto",
19057
+ titleField = "title",
19058
+ startField = "startTime",
19059
+ colorField = "color",
19060
+ children,
19061
+ renderItem
19027
19062
  }) {
19028
19063
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
19029
19064
  const eventBus = useEventBus();
@@ -19038,8 +19073,8 @@ function CalendarGrid({
19038
19073
  [resolvedWeekStart]
19039
19074
  );
19040
19075
  const resolvedTimeSlots = React84.useMemo(
19041
- () => timeSlots ?? generateDefaultTimeSlots(evs),
19042
- [timeSlots, evs]
19076
+ () => timeSlots ?? generateDefaultTimeSlots(evs, startField),
19077
+ [timeSlots, evs, startField]
19043
19078
  );
19044
19079
  const visibleCount = useDayWindow(dayWindow);
19045
19080
  const [dayOffset, setDayOffset] = React84.useState(0);
@@ -19076,9 +19111,9 @@ function CalendarGrid({
19076
19111
  );
19077
19112
  const eventsForDayCount = React84.useCallback(
19078
19113
  (day) => evs.filter(
19079
- (ev) => new Date(ev.startTime).toDateString() === day.toDateString()
19114
+ (ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
19080
19115
  ).length,
19081
- [events2]
19116
+ [events2, startField]
19082
19117
  );
19083
19118
  const swipeCallbacks = React84.useMemo(() => ({
19084
19119
  onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
@@ -19097,8 +19132,11 @@ function CalendarGrid({
19097
19132
  eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
19098
19133
  }, 500);
19099
19134
  }, [longPressEvent, longPressPayload, eventBus]);
19135
+ const renderChip = children ?? renderItem;
19100
19136
  const renderEvent = (event) => {
19101
- const color = event.color;
19137
+ const color = getNestedValue(event, colorField);
19138
+ const label = String(getNestedValue(event, titleField) ?? "");
19139
+ const eventIndex = evs.indexOf(event);
19102
19140
  return /* @__PURE__ */ jsxRuntime.jsx(
19103
19141
  Box,
19104
19142
  {
@@ -19110,7 +19148,7 @@ function CalendarGrid({
19110
19148
  color ? color : "bg-primary/10 border-primary/30 text-primary"
19111
19149
  ),
19112
19150
  onClick: (e) => handleEventClick(event, e),
19113
- children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
19151
+ children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
19114
19152
  },
19115
19153
  event.id
19116
19154
  );
@@ -19194,7 +19232,7 @@ function CalendarGrid({
19194
19232
  ) }),
19195
19233
  visibleDays.map((day) => {
19196
19234
  const slotEvents = evs.filter(
19197
- (ev) => eventInSlot(ev, day, time)
19235
+ (ev) => eventInSlot(ev, day, time, startField)
19198
19236
  );
19199
19237
  const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
19200
19238
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -19231,6 +19269,7 @@ var init_CalendarGrid = __esm({
19231
19269
  "components/core/molecules/CalendarGrid.tsx"() {
19232
19270
  "use client";
19233
19271
  init_cn();
19272
+ init_getNestedValue();
19234
19273
  init_Box();
19235
19274
  init_Button();
19236
19275
  init_Stack();
@@ -19247,32 +19286,6 @@ var init_CalendarGrid = __esm({
19247
19286
  CalendarGrid.displayName = "CalendarGrid";
19248
19287
  }
19249
19288
  });
19250
-
19251
- // lib/getNestedValue.ts
19252
- function getNestedValue(obj, path) {
19253
- if (obj === null || obj === void 0 || !path) {
19254
- return void 0;
19255
- }
19256
- if (!path.includes(".")) {
19257
- return obj[path];
19258
- }
19259
- const parts = path.split(".");
19260
- let value = obj;
19261
- for (const part of parts) {
19262
- if (value === null || value === void 0) {
19263
- return void 0;
19264
- }
19265
- if (typeof value !== "object" || Array.isArray(value)) {
19266
- return void 0;
19267
- }
19268
- value = value[part];
19269
- }
19270
- return value;
19271
- }
19272
- var init_getNestedValue = __esm({
19273
- "lib/getNestedValue.ts"() {
19274
- }
19275
- });
19276
19289
  var Pagination;
19277
19290
  var init_Pagination = __esm({
19278
19291
  "components/core/molecules/Pagination.tsx"() {
@@ -18801,6 +18801,32 @@ var init_ButtonGroup = __esm({
18801
18801
  ButtonGroup.displayName = "ButtonGroup";
18802
18802
  }
18803
18803
  });
18804
+
18805
+ // lib/getNestedValue.ts
18806
+ function getNestedValue(obj, path) {
18807
+ if (obj === null || obj === void 0 || !path) {
18808
+ return void 0;
18809
+ }
18810
+ if (!path.includes(".")) {
18811
+ return obj[path];
18812
+ }
18813
+ const parts = path.split(".");
18814
+ let value = obj;
18815
+ for (const part of parts) {
18816
+ if (value === null || value === void 0) {
18817
+ return void 0;
18818
+ }
18819
+ if (typeof value !== "object" || Array.isArray(value)) {
18820
+ return void 0;
18821
+ }
18822
+ value = value[part];
18823
+ }
18824
+ return value;
18825
+ }
18826
+ var init_getNestedValue = __esm({
18827
+ "lib/getNestedValue.ts"() {
18828
+ }
18829
+ });
18804
18830
  function useSwipeGesture(callbacks, options = {}) {
18805
18831
  const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
18806
18832
  const startX = useRef(0);
@@ -18914,11 +18940,15 @@ function getWeekDays(start) {
18914
18940
  }
18915
18941
  return days;
18916
18942
  }
18917
- function generateDefaultTimeSlots(events2) {
18943
+ function eventStartDate(event, startField) {
18944
+ const raw = getNestedValue(event, startField);
18945
+ return new Date(raw ?? "");
18946
+ }
18947
+ function generateDefaultTimeSlots(events2, startField) {
18918
18948
  let first = DEFAULT_FIRST_HOUR;
18919
18949
  let last = DEFAULT_LAST_HOUR;
18920
18950
  for (const ev of events2) {
18921
- const start = new Date(ev.startTime);
18951
+ const start = eventStartDate(ev, startField);
18922
18952
  if (Number.isNaN(start.getTime())) continue;
18923
18953
  const hour = start.getHours();
18924
18954
  if (hour < first) first = hour;
@@ -18930,8 +18960,8 @@ function generateDefaultTimeSlots(events2) {
18930
18960
  }
18931
18961
  return slots;
18932
18962
  }
18933
- function eventInSlot(event, day, slotTime) {
18934
- const eventStart = new Date(event.startTime);
18963
+ function eventInSlot(event, day, slotTime, startField) {
18964
+ const eventStart = eventStartDate(event, startField);
18935
18965
  if (Number.isNaN(eventStart.getTime())) return false;
18936
18966
  const [slotHour] = slotTime.split(":").map(Number);
18937
18967
  return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
@@ -18948,7 +18978,12 @@ function CalendarGrid({
18948
18978
  longPressPayload,
18949
18979
  swipeLeftEvent,
18950
18980
  swipeRightEvent,
18951
- dayWindow = "auto"
18981
+ dayWindow = "auto",
18982
+ titleField = "title",
18983
+ startField = "startTime",
18984
+ colorField = "color",
18985
+ children,
18986
+ renderItem
18952
18987
  }) {
18953
18988
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
18954
18989
  const eventBus = useEventBus();
@@ -18963,8 +18998,8 @@ function CalendarGrid({
18963
18998
  [resolvedWeekStart]
18964
18999
  );
18965
19000
  const resolvedTimeSlots = useMemo(
18966
- () => timeSlots ?? generateDefaultTimeSlots(evs),
18967
- [timeSlots, evs]
19001
+ () => timeSlots ?? generateDefaultTimeSlots(evs, startField),
19002
+ [timeSlots, evs, startField]
18968
19003
  );
18969
19004
  const visibleCount = useDayWindow(dayWindow);
18970
19005
  const [dayOffset, setDayOffset] = useState(0);
@@ -19001,9 +19036,9 @@ function CalendarGrid({
19001
19036
  );
19002
19037
  const eventsForDayCount = useCallback(
19003
19038
  (day) => evs.filter(
19004
- (ev) => new Date(ev.startTime).toDateString() === day.toDateString()
19039
+ (ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
19005
19040
  ).length,
19006
- [events2]
19041
+ [events2, startField]
19007
19042
  );
19008
19043
  const swipeCallbacks = useMemo(() => ({
19009
19044
  onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
@@ -19022,8 +19057,11 @@ function CalendarGrid({
19022
19057
  eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
19023
19058
  }, 500);
19024
19059
  }, [longPressEvent, longPressPayload, eventBus]);
19060
+ const renderChip = children ?? renderItem;
19025
19061
  const renderEvent = (event) => {
19026
- const color = event.color;
19062
+ const color = getNestedValue(event, colorField);
19063
+ const label = String(getNestedValue(event, titleField) ?? "");
19064
+ const eventIndex = evs.indexOf(event);
19027
19065
  return /* @__PURE__ */ jsx(
19028
19066
  Box,
19029
19067
  {
@@ -19035,7 +19073,7 @@ function CalendarGrid({
19035
19073
  color ? color : "bg-primary/10 border-primary/30 text-primary"
19036
19074
  ),
19037
19075
  onClick: (e) => handleEventClick(event, e),
19038
- children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
19076
+ children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
19039
19077
  },
19040
19078
  event.id
19041
19079
  );
@@ -19119,7 +19157,7 @@ function CalendarGrid({
19119
19157
  ) }),
19120
19158
  visibleDays.map((day) => {
19121
19159
  const slotEvents = evs.filter(
19122
- (ev) => eventInSlot(ev, day, time)
19160
+ (ev) => eventInSlot(ev, day, time, startField)
19123
19161
  );
19124
19162
  const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
19125
19163
  return /* @__PURE__ */ jsx(
@@ -19156,6 +19194,7 @@ var init_CalendarGrid = __esm({
19156
19194
  "components/core/molecules/CalendarGrid.tsx"() {
19157
19195
  "use client";
19158
19196
  init_cn();
19197
+ init_getNestedValue();
19159
19198
  init_Box();
19160
19199
  init_Button();
19161
19200
  init_Stack();
@@ -19172,32 +19211,6 @@ var init_CalendarGrid = __esm({
19172
19211
  CalendarGrid.displayName = "CalendarGrid";
19173
19212
  }
19174
19213
  });
19175
-
19176
- // lib/getNestedValue.ts
19177
- function getNestedValue(obj, path) {
19178
- if (obj === null || obj === void 0 || !path) {
19179
- return void 0;
19180
- }
19181
- if (!path.includes(".")) {
19182
- return obj[path];
19183
- }
19184
- const parts = path.split(".");
19185
- let value = obj;
19186
- for (const part of parts) {
19187
- if (value === null || value === void 0) {
19188
- return void 0;
19189
- }
19190
- if (typeof value !== "object" || Array.isArray(value)) {
19191
- return void 0;
19192
- }
19193
- value = value[part];
19194
- }
19195
- return value;
19196
- }
19197
- var init_getNestedValue = __esm({
19198
- "lib/getNestedValue.ts"() {
19199
- }
19200
- });
19201
19214
  var Pagination;
19202
19215
  var init_Pagination = __esm({
19203
19216
  "components/core/molecules/Pagination.tsx"() {
@@ -18511,6 +18511,32 @@ var init_ButtonGroup = __esm({
18511
18511
  ButtonGroup.displayName = "ButtonGroup";
18512
18512
  }
18513
18513
  });
18514
+
18515
+ // lib/getNestedValue.ts
18516
+ function getNestedValue(obj, path) {
18517
+ if (obj === null || obj === void 0 || !path) {
18518
+ return void 0;
18519
+ }
18520
+ if (!path.includes(".")) {
18521
+ return obj[path];
18522
+ }
18523
+ const parts = path.split(".");
18524
+ let value = obj;
18525
+ for (const part of parts) {
18526
+ if (value === null || value === void 0) {
18527
+ return void 0;
18528
+ }
18529
+ if (typeof value !== "object" || Array.isArray(value)) {
18530
+ return void 0;
18531
+ }
18532
+ value = value[part];
18533
+ }
18534
+ return value;
18535
+ }
18536
+ var init_getNestedValue = __esm({
18537
+ "lib/getNestedValue.ts"() {
18538
+ }
18539
+ });
18514
18540
  function dayWindowForViewport(width) {
18515
18541
  if (width <= 640) return 1;
18516
18542
  if (width <= 1024) return 3;
@@ -18557,11 +18583,15 @@ function getWeekDays(start) {
18557
18583
  }
18558
18584
  return days;
18559
18585
  }
18560
- function generateDefaultTimeSlots(events2) {
18586
+ function eventStartDate(event, startField) {
18587
+ const raw = getNestedValue(event, startField);
18588
+ return new Date(raw ?? "");
18589
+ }
18590
+ function generateDefaultTimeSlots(events2, startField) {
18561
18591
  let first = DEFAULT_FIRST_HOUR;
18562
18592
  let last = DEFAULT_LAST_HOUR;
18563
18593
  for (const ev of events2) {
18564
- const start = new Date(ev.startTime);
18594
+ const start = eventStartDate(ev, startField);
18565
18595
  if (Number.isNaN(start.getTime())) continue;
18566
18596
  const hour = start.getHours();
18567
18597
  if (hour < first) first = hour;
@@ -18573,8 +18603,8 @@ function generateDefaultTimeSlots(events2) {
18573
18603
  }
18574
18604
  return slots;
18575
18605
  }
18576
- function eventInSlot(event, day, slotTime) {
18577
- const eventStart = new Date(event.startTime);
18606
+ function eventInSlot(event, day, slotTime, startField) {
18607
+ const eventStart = eventStartDate(event, startField);
18578
18608
  if (Number.isNaN(eventStart.getTime())) return false;
18579
18609
  const [slotHour] = slotTime.split(":").map(Number);
18580
18610
  return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
@@ -18591,7 +18621,12 @@ function CalendarGrid({
18591
18621
  longPressPayload,
18592
18622
  swipeLeftEvent,
18593
18623
  swipeRightEvent,
18594
- dayWindow = "auto"
18624
+ dayWindow = "auto",
18625
+ titleField = "title",
18626
+ startField = "startTime",
18627
+ colorField = "color",
18628
+ children,
18629
+ renderItem
18595
18630
  }) {
18596
18631
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
18597
18632
  const eventBus = useEventBus();
@@ -18606,8 +18641,8 @@ function CalendarGrid({
18606
18641
  [resolvedWeekStart]
18607
18642
  );
18608
18643
  const resolvedTimeSlots = React82.useMemo(
18609
- () => timeSlots ?? generateDefaultTimeSlots(evs),
18610
- [timeSlots, evs]
18644
+ () => timeSlots ?? generateDefaultTimeSlots(evs, startField),
18645
+ [timeSlots, evs, startField]
18611
18646
  );
18612
18647
  const visibleCount = useDayWindow(dayWindow);
18613
18648
  const [dayOffset, setDayOffset] = React82.useState(0);
@@ -18644,9 +18679,9 @@ function CalendarGrid({
18644
18679
  );
18645
18680
  const eventsForDayCount = React82.useCallback(
18646
18681
  (day) => evs.filter(
18647
- (ev) => new Date(ev.startTime).toDateString() === day.toDateString()
18682
+ (ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
18648
18683
  ).length,
18649
- [events2]
18684
+ [events2, startField]
18650
18685
  );
18651
18686
  const swipeCallbacks = React82.useMemo(() => ({
18652
18687
  onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
@@ -18665,8 +18700,11 @@ function CalendarGrid({
18665
18700
  eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
18666
18701
  }, 500);
18667
18702
  }, [longPressEvent, longPressPayload, eventBus]);
18703
+ const renderChip = children ?? renderItem;
18668
18704
  const renderEvent = (event) => {
18669
- const color = event.color;
18705
+ const color = getNestedValue(event, colorField);
18706
+ const label = String(getNestedValue(event, titleField) ?? "");
18707
+ const eventIndex = evs.indexOf(event);
18670
18708
  return /* @__PURE__ */ jsxRuntime.jsx(
18671
18709
  Box,
18672
18710
  {
@@ -18678,7 +18716,7 @@ function CalendarGrid({
18678
18716
  color ? color : "bg-primary/10 border-primary/30 text-primary"
18679
18717
  ),
18680
18718
  onClick: (e) => handleEventClick(event, e),
18681
- children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
18719
+ children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
18682
18720
  },
18683
18721
  event.id
18684
18722
  );
@@ -18762,7 +18800,7 @@ function CalendarGrid({
18762
18800
  ) }),
18763
18801
  visibleDays.map((day) => {
18764
18802
  const slotEvents = evs.filter(
18765
- (ev) => eventInSlot(ev, day, time)
18803
+ (ev) => eventInSlot(ev, day, time, startField)
18766
18804
  );
18767
18805
  const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
18768
18806
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -18799,6 +18837,7 @@ var init_CalendarGrid = __esm({
18799
18837
  "components/core/molecules/CalendarGrid.tsx"() {
18800
18838
  "use client";
18801
18839
  init_cn();
18840
+ init_getNestedValue();
18802
18841
  init_Box();
18803
18842
  init_Button();
18804
18843
  init_Stack();
@@ -18815,32 +18854,6 @@ var init_CalendarGrid = __esm({
18815
18854
  CalendarGrid.displayName = "CalendarGrid";
18816
18855
  }
18817
18856
  });
18818
-
18819
- // lib/getNestedValue.ts
18820
- function getNestedValue(obj, path) {
18821
- if (obj === null || obj === void 0 || !path) {
18822
- return void 0;
18823
- }
18824
- if (!path.includes(".")) {
18825
- return obj[path];
18826
- }
18827
- const parts = path.split(".");
18828
- let value = obj;
18829
- for (const part of parts) {
18830
- if (value === null || value === void 0) {
18831
- return void 0;
18832
- }
18833
- if (typeof value !== "object" || Array.isArray(value)) {
18834
- return void 0;
18835
- }
18836
- value = value[part];
18837
- }
18838
- return value;
18839
- }
18840
- var init_getNestedValue = __esm({
18841
- "lib/getNestedValue.ts"() {
18842
- }
18843
- });
18844
18857
  var Pagination;
18845
18858
  var init_Pagination = __esm({
18846
18859
  "components/core/molecules/Pagination.tsx"() {
@@ -45410,7 +45423,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
45410
45423
  crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
45411
45424
  enqueueAndDrain(
45412
45425
  listen.triggers,
45413
- core.applyListenPayloadMapping(listen.payloadMapping, event.payload),
45426
+ core.applyListenPayloadMapping(listen.payloadMapping, event.payload, evaluator.evaluateListenPayloadExpr),
45414
45427
  binding.trait.name
45415
45428
  );
45416
45429
  });