@app-studio/web 0.9.34 → 0.9.35

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/web.esm.js CHANGED
@@ -31,9 +31,8 @@ import contrast from 'contrast';
31
31
  import 'core-js/modules/es.promise.js';
32
32
  import 'core-js/modules/es.array.reduce.js';
33
33
  import 'core-js/modules/es.number.to-fixed.js';
34
- import 'core-js/modules/es.string.pad-start.js';
35
34
  import 'core-js/modules/es.array.sort.js';
36
- import { dayDateStyles as dayDateStyles$1 } from 'src/components/CalendarWeek/CalendarWeek/CalendarWeek.style';
35
+ import 'core-js/modules/es.string.pad-start.js';
37
36
  import format from 'date-fns/format';
38
37
  import 'core-js/modules/es.regexp.constructor.js';
39
38
  import { useFormikContext, getIn } from 'formik';
@@ -7837,7 +7836,6 @@ var KanbanBoardView = _ref => {
7837
7836
  borderRadius: 10,
7838
7837
  padding: "12px",
7839
7838
  boxShadow: "0 1px 2px 0 rgba(16, 24, 40, 0.08)",
7840
- opacity: draggedCardId === card.id ? 0.6 : 1,
7841
7839
  onDragStart: event => onCardDragStart(column.id, card.id, event),
7842
7840
  onDragEnd: onCardDragEnd,
7843
7841
  onDragOver: event => {
@@ -8110,8 +8108,8 @@ var monthTitleStyles = {
8110
8108
  * Month grid styles (7 columns for days)
8111
8109
  */
8112
8110
  var monthGridStyles = {
8113
- display: 'grid',
8114
- gridTemplateColumns: 'repeat(7, 1fr)',
8111
+ display: 'flex',
8112
+ flexDirection: 'column',
8115
8113
  backgroundColor: 'color.white'
8116
8114
  };
8117
8115
  /**
@@ -8141,15 +8139,32 @@ var weekdayLabelStyles = {
8141
8139
  */
8142
8140
  var dayCellStyles = {
8143
8141
  border: '1px solid',
8144
- borderColor: 'color.gray.200',
8145
- minHeight: 100,
8146
- padding: 8,
8147
- paddingTop: 4,
8142
+ borderColor: 'color.gray.100',
8143
+ minHeight: 120,
8144
+ padding: 4,
8145
+ paddingTop: 2,
8148
8146
  backgroundColor: 'color.white',
8149
8147
  position: 'relative',
8150
8148
  display: 'flex',
8151
8149
  flexDirection: 'column'
8152
8150
  };
8151
+ /**
8152
+ * Day date styles (the circular number)
8153
+ */
8154
+ var dayDateStyles = {
8155
+ width: 36,
8156
+ height: 36,
8157
+ display: 'flex',
8158
+ alignItems: 'center',
8159
+ justifyContent: 'center',
8160
+ borderRadius: '50%',
8161
+ fontSize: 13,
8162
+ fontWeight: 400,
8163
+ color: 'color.gray.900',
8164
+ cursor: 'pointer',
8165
+ transition: 'all 0.2s',
8166
+ border: '2px solid transparent'
8167
+ };
8153
8168
  /**
8154
8169
  * Day cell from different month
8155
8170
  */
@@ -8284,6 +8299,9 @@ var ResizeHandle = _ref => {
8284
8299
  onMouseLeave: () => setIsHovered(false)
8285
8300
  }));
8286
8301
  };
8302
+ var MONTH_EVENT_ROW_HEIGHT = 22;
8303
+ var MONTH_EVENT_ROW_GAP = 4;
8304
+ var MONTH_EVENT_TOP_OFFSET = 32;
8287
8305
  var Calendar = _ref2 => {
8288
8306
  var {
8289
8307
  initialDate = new Date(),
@@ -8347,10 +8365,64 @@ var Calendar = _ref2 => {
8347
8365
  return [currentDate];
8348
8366
  }
8349
8367
  }, [currentDate, currentView, currentMonth, weekStartsOn]);
8368
+ var monthWeeks = useMemo(() => {
8369
+ var chunks = [];
8370
+ for (var i = 0; i < calendarDates.length; i += 7) {
8371
+ chunks.push(calendarDates.slice(i, i + 7));
8372
+ }
8373
+ return chunks;
8374
+ }, [calendarDates]);
8350
8375
  // Layout events
8351
8376
  var {
8352
8377
  items: positionedEvents
8353
8378
  } = useMemo(() => layoutEvents(localEvents, calendarDates), [localEvents, calendarDates]);
8379
+ var monthWeeksWithEvents = useMemo(() => {
8380
+ return monthWeeks.map((dates, weekIndex) => {
8381
+ var weekStartIdx = weekIndex * 7;
8382
+ var weekEndIdx = weekStartIdx + dates.length - 1;
8383
+ var segments = positionedEvents.filter(event => !(event.startDay > weekEndIdx || event.endDay < weekStartIdx)).map(event => {
8384
+ var segmentStart = Math.max(event.startDay, weekStartIdx);
8385
+ var segmentEnd = Math.min(event.endDay, weekEndIdx);
8386
+ return Object.assign({}, event, {
8387
+ weekIndex,
8388
+ segmentStartDay: segmentStart - weekStartIdx,
8389
+ segmentEndDay: segmentEnd - weekStartIdx,
8390
+ segmentDuration: segmentEnd - segmentStart + 1,
8391
+ segmentRow: 0
8392
+ });
8393
+ });
8394
+ segments.sort((a, b) => {
8395
+ if (a.segmentStartDay !== b.segmentStartDay) {
8396
+ return a.segmentStartDay - b.segmentStartDay;
8397
+ }
8398
+ return b.segmentDuration - a.segmentDuration;
8399
+ });
8400
+ var rows = [];
8401
+ segments.forEach(segment => {
8402
+ var placed = false;
8403
+ for (var rowIdx = 0; rowIdx < rows.length; rowIdx++) {
8404
+ var row = rows[rowIdx];
8405
+ var conflict = row.some(existing => !(segment.segmentStartDay > existing.segmentEndDay || segment.segmentEndDay < existing.segmentStartDay));
8406
+ if (!conflict) {
8407
+ segment.segmentRow = rowIdx;
8408
+ row.push(segment);
8409
+ placed = true;
8410
+ break;
8411
+ }
8412
+ }
8413
+ if (!placed) {
8414
+ segment.segmentRow = rows.length;
8415
+ rows.push([segment]);
8416
+ }
8417
+ });
8418
+ return {
8419
+ weekIndex,
8420
+ dates,
8421
+ segments,
8422
+ rowCount: rows.length
8423
+ };
8424
+ });
8425
+ }, [monthWeeks, positionedEvents]);
8354
8426
  // Get day names
8355
8427
  var dayNames = useMemo(() => getDayNames(weekStartsOn), [weekStartsOn]);
8356
8428
  // Handle navigation
@@ -8410,10 +8482,9 @@ var Calendar = _ref2 => {
8410
8482
  onEventAdd(start, end);
8411
8483
  }
8412
8484
  }, [onEventAdd]);
8413
- // Handle event drag start
8414
- var handleEventDragStart = useCallback((e, event) => {
8415
- e.dataTransfer.effectAllowed = 'move';
8416
- e.dataTransfer.setData('eventId', event.id);
8485
+ // Handle mouse down on event (start dragging)
8486
+ var handleEventMouseDown = useCallback((e, event) => {
8487
+ e.preventDefault();
8417
8488
  dragStateRef.current = {
8418
8489
  isDragging: true,
8419
8490
  isResizing: false,
@@ -8426,52 +8497,7 @@ var Calendar = _ref2 => {
8426
8497
  originalEnd: event.end
8427
8498
  };
8428
8499
  }, []);
8429
- // Handle drag over day cell
8430
- var handleDragOver = useCallback((e, dayIndex) => {
8431
- e.preventDefault();
8432
- e.dataTransfer.dropEffect = 'move';
8433
- setDropTargetDays([dayIndex]);
8434
- }, []);
8435
- // Handle drag leave
8436
- var handleDragLeave = useCallback(() => {
8437
- setDropTargetDays([]);
8438
- }, []);
8439
- // Handle drop on day cell
8440
- var handleDrop = useCallback((e, dayIndex) => {
8441
- e.preventDefault();
8442
- setDropTargetDays([]);
8443
- var dragState = dragStateRef.current;
8444
- if (!dragState.event || !dragState.originalStart || !dragState.originalEnd) return;
8445
- // Calculate date difference
8446
- var targetDate = calendarDates[dayIndex];
8447
- if (!targetDate) return;
8448
- var daysDiff = daysBetweenUTC(targetDate, dragState.originalStart.slice(0, 10));
8449
- // Update event dates
8450
- var newStart = addDateDays(dragState.originalStart.slice(0, 10), daysDiff);
8451
- var newEnd = addDateDays(dragState.originalEnd.slice(0, 10), daysDiff);
8452
- var updatedEvent = Object.assign({}, dragState.event, {
8453
- start: newStart,
8454
- end: newEnd
8455
- });
8456
- // Update local events
8457
- var updatedEvents = localEvents.map(ev => ev.id === dragState.event.id ? updatedEvent : ev);
8458
- setLocalEvents(updatedEvents);
8459
- // Call callback
8460
- onEventDrop == null || onEventDrop(updatedEvent);
8461
- // Reset drag state
8462
- dragStateRef.current = {
8463
- isDragging: false,
8464
- isResizing: false,
8465
- resizeDirection: null,
8466
- event: null,
8467
- startX: 0,
8468
- startDay: 0,
8469
- startDuration: 0,
8470
- originalStart: null,
8471
- originalEnd: null
8472
- };
8473
- }, [localEvents, calendarDates, onEventDrop]);
8474
- // Handle resize start (FIXED - using pixel-based approach like CalendarWeek)
8500
+ // Handle resize start
8475
8501
  var handleResizeStart = useCallback((e, event, direction) => {
8476
8502
  e.preventDefault();
8477
8503
  e.stopPropagation();
@@ -8487,7 +8513,7 @@ var Calendar = _ref2 => {
8487
8513
  originalEnd: event.end
8488
8514
  };
8489
8515
  }, []);
8490
- // Handle mouse move during resize (FIXED - using pixel-based calculation)
8516
+ // Handle mouse move during resize or drag
8491
8517
  var handleMouseMove = useCallback(e => {
8492
8518
  var dragState = dragStateRef.current;
8493
8519
  if (!dragState.event || !dragState.isDragging && !dragState.isResizing) return;
@@ -8609,54 +8635,89 @@ var Calendar = _ref2 => {
8609
8635
  key: index
8610
8636
  }, weekdayLabelStyles, views.weekdayLabel), dayName)))), /*#__PURE__*/React.createElement(View, Object.assign({
8611
8637
  ref: gridRef
8612
- }, monthGridStyles, views.monthGrid), calendarDates.map((dateISO, index) => {
8613
- var dateNum = getDateNumber(dateISO);
8614
- var isToday = dateISO === today;
8615
- var isSelected = dateISO === selectedDate;
8616
- var isCurrentMonth = isInMonth(dateISO, currentMonth);
8617
- var isDropTarget = dropTargetDays.includes(index);
8618
- var dayEvents = eventsByDate[dateISO] || [];
8619
- return /*#__PURE__*/React.createElement(View, Object.assign({
8620
- key: dateISO,
8621
- "data-date": dateISO
8622
- }, dayCellStyles, !isCurrentMonth && otherMonthDayCellStyles, isDropTarget && dropTargetStyles, {
8623
- onClick: () => handleDateClick(dateISO),
8624
- onDoubleClick: () => handleDateDoubleClick(dateISO),
8625
- onDragOver: e => handleDragOver(e, index),
8626
- onDragLeave: handleDragLeave,
8627
- onDrop: e => handleDrop(e, index)
8628
- }, views.dayCell), /*#__PURE__*/React.createElement(View, Object.assign({}, dayNumberStyles, isToday && todayDayNumberStyles, isSelected && !isToday && selectedDayNumberStyles, {
8629
- style: {
8630
- cursor: 'pointer'
8631
- }
8632
- }, views.dayNumber), dateNum), /*#__PURE__*/React.createElement(View, Object.assign({}, eventsAreaStyles, views.eventsArea), dayEvents.map(event => {
8638
+ }, monthGridStyles, views.monthGrid), monthWeeksWithEvents.map(week => {
8639
+ var weekStartIdx = week.weekIndex * 7;
8640
+ var weekEndIdx = weekStartIdx + week.dates.length - 1;
8641
+ return /*#__PURE__*/React.createElement(View, {
8642
+ key: "week-" + week.weekIndex,
8643
+ position: "relative"
8644
+ }, /*#__PURE__*/React.createElement(View, {
8645
+ display: "grid",
8646
+ gridTemplateColumns: "repeat(7, 1fr)"
8647
+ }, week.dates.map((dateISO, dayOffset) => {
8648
+ var dateNum = getDateNumber(dateISO);
8649
+ var isToday = dateISO === today;
8650
+ var isSelected = dateISO === selectedDate;
8651
+ var isCurrentMonth = isInMonth(dateISO, currentMonth);
8652
+ var dayIndex = weekStartIdx + dayOffset;
8653
+ var isDropTarget = dropTargetDays.includes(dayIndex);
8654
+ return /*#__PURE__*/React.createElement(View, Object.assign({
8655
+ key: dateISO,
8656
+ "data-date": dateISO
8657
+ }, dayCellStyles, !isCurrentMonth && otherMonthDayCellStyles, isDropTarget && dropTargetStyles, {
8658
+ onClick: () => handleDateClick(dateISO),
8659
+ onDoubleClick: () => handleDateDoubleClick(dateISO)
8660
+ }, views.dayCell), /*#__PURE__*/React.createElement(View, Object.assign({}, dayNumberStyles, isToday && todayDayNumberStyles, isSelected && !isToday && selectedDayNumberStyles, {
8661
+ style: {
8662
+ cursor: 'pointer'
8663
+ }
8664
+ }, views.dayNumber), dateNum));
8665
+ })), week.segments.length > 0 && (/*#__PURE__*/React.createElement(View, {
8666
+ position: "absolute",
8667
+ left: 0,
8668
+ right: 0,
8669
+ top: MONTH_EVENT_TOP_OFFSET,
8670
+ pointerEvents: "none"
8671
+ }, week.segments.map(event => {
8672
+ var _dragStateRef$current, _dragStateRef$current2;
8633
8673
  var colorConfig = EVENT_COLORS[event.color || 'blue'];
8634
- var isMultiDay = event.duration > 1;
8635
- var isFirstDay = event.isFirstDay !== false;
8636
- if (!isFirstDay) return null;
8674
+ var dayWidth = 100 / week.dates.length;
8675
+ var left = event.segmentStartDay * dayWidth;
8676
+ var width = event.segmentDuration * dayWidth;
8677
+ var isDragging = dragStateRef.current.isDragging && ((_dragStateRef$current = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current.id) === event.id;
8678
+ var isResizing = dragStateRef.current.isResizing && ((_dragStateRef$current2 = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current2.id) === event.id;
8679
+ var showLeftHandle = event.startDay >= weekStartIdx && event.startDay <= weekEndIdx && event.segmentStartDay === event.startDay - weekStartIdx;
8680
+ var showRightHandle = event.endDay >= weekStartIdx && event.endDay <= weekEndIdx && event.segmentEndDay === event.endDay - weekStartIdx;
8637
8681
  return /*#__PURE__*/React.createElement(View, Object.assign({
8638
- key: event.id,
8639
- position: "relative"
8640
- }, eventStyles, {
8682
+ key: event.id + "-" + event.weekIndex + "-" + event.segmentStartDay,
8683
+ position: "absolute",
8684
+ height: MONTH_EVENT_ROW_HEIGHT,
8685
+ display: "flex",
8686
+ alignItems: "center",
8687
+ paddingLeft: 8,
8688
+ paddingRight: 8,
8689
+ borderRadius: 4,
8641
8690
  backgroundColor: colorConfig.background,
8691
+ borderLeft: "3px solid",
8642
8692
  borderLeftColor: colorConfig.border,
8643
8693
  color: colorConfig.text,
8644
- draggable: true,
8645
- onDragStart: e => handleEventDragStart(e, event),
8646
- title: isMultiDay ? event.title + " (" + event.duration + " days)" : event.title
8694
+ fontSize: 11,
8695
+ fontWeight: 500,
8696
+ overflow: "hidden",
8697
+ cursor: isDragging ? 'grabbing' : 'grab',
8698
+ opacity: isDragging || isResizing ? 0.7 : 1,
8699
+ boxShadow: isDragging || isResizing ? '0 4px 12px rgba(0,0,0,0.3)' : '0 1px 2px rgba(0,0,0,0.1)',
8700
+ transition: isDragging || isResizing ? 'none' : 'box-shadow 0.2s',
8701
+ pointerEvents: "auto",
8702
+ userSelect: "none",
8703
+ left: "calc(" + left + "% + 4px)",
8704
+ width: "calc(" + width + "% - 8px)",
8705
+ top: event.segmentRow * (MONTH_EVENT_ROW_HEIGHT + MONTH_EVENT_ROW_GAP) + "px",
8706
+ onMouseDown: e => handleEventMouseDown(e, event),
8707
+ title: event.title
8647
8708
  }, views.event), /*#__PURE__*/React.createElement(View, {
8648
8709
  overflow: "hidden",
8649
8710
  textOverflow: "ellipsis",
8650
8711
  whiteSpace: "nowrap",
8651
8712
  width: "100%"
8652
- }, event.title, isMultiDay && " (" + event.duration + "d)"), /*#__PURE__*/React.createElement(ResizeHandle, {
8713
+ }, event.title), showLeftHandle && (/*#__PURE__*/React.createElement(ResizeHandle, {
8653
8714
  direction: "left",
8654
8715
  onMouseDown: e => handleResizeStart(e, event, 'left')
8655
- }), /*#__PURE__*/React.createElement(ResizeHandle, {
8716
+ })), showRightHandle && (/*#__PURE__*/React.createElement(ResizeHandle, {
8656
8717
  direction: "right",
8657
8718
  onMouseDown: e => handleResizeStart(e, event, 'right')
8658
- }));
8659
- })));
8719
+ })));
8720
+ }))));
8660
8721
  }))));
8661
8722
  // Render week view
8662
8723
  var renderWeekView = () => (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, Object.assign({}, weekdayHeaderStyles, views.weekdayHeader), calendarDates.map((dateISO, index) => {
@@ -8670,7 +8731,7 @@ var Calendar = _ref2 => {
8670
8731
  alignItems: "center",
8671
8732
  padding: 8,
8672
8733
  gap: 4
8673
- }, views.weekdayLabel), /*#__PURE__*/React.createElement(View, Object.assign({}, weekdayLabelStyles), DAY_NAMES[dayOfWeek]), /*#__PURE__*/React.createElement(View, Object.assign({}, dayDateStyles$1, isToday && todayDayNumberStyles, {
8734
+ }, views.weekdayLabel), /*#__PURE__*/React.createElement(View, Object.assign({}, weekdayLabelStyles), DAY_NAMES[dayOfWeek]), /*#__PURE__*/React.createElement(View, Object.assign({}, dayDateStyles, isToday && todayDayNumberStyles, {
8674
8735
  fontSize: 16,
8675
8736
  fontWeight: isToday ? 500 : 400
8676
8737
  }), dateNum));
@@ -8688,14 +8749,14 @@ var Calendar = _ref2 => {
8688
8749
  }, dayCellStyles, isDropTarget && dropTargetStyles, {
8689
8750
  minHeight: 400,
8690
8751
  onClick: () => handleDateClick(dateISO),
8691
- onDoubleClick: () => handleDateDoubleClick(dateISO),
8692
- onDragOver: e => handleDragOver(e, index),
8693
- onDragLeave: handleDragLeave,
8694
- onDrop: e => handleDrop(e, index)
8752
+ onDoubleClick: () => handleDateDoubleClick(dateISO)
8695
8753
  }), /*#__PURE__*/React.createElement(View, Object.assign({}, eventsAreaStyles, views.eventsArea), dayEvents.map(event => {
8754
+ var _dragStateRef$current3, _dragStateRef$current4;
8696
8755
  var colorConfig = EVENT_COLORS[event.color || 'blue'];
8697
8756
  var isFirstDay = event.isFirstDay !== false;
8698
8757
  if (!isFirstDay) return null;
8758
+ var isDragging = dragStateRef.current.isDragging && ((_dragStateRef$current3 = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current3.id) === event.id;
8759
+ var isResizing = dragStateRef.current.isResizing && ((_dragStateRef$current4 = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current4.id) === event.id;
8699
8760
  return /*#__PURE__*/React.createElement(View, Object.assign({
8700
8761
  key: event.id,
8701
8762
  position: "relative"
@@ -8703,8 +8764,12 @@ var Calendar = _ref2 => {
8703
8764
  backgroundColor: colorConfig.background,
8704
8765
  borderLeftColor: colorConfig.border,
8705
8766
  color: colorConfig.text,
8706
- draggable: true,
8707
- onDragStart: e => handleEventDragStart(e, event),
8767
+ cursor: isDragging ? 'grabbing' : 'grab',
8768
+ opacity: isDragging || isResizing ? 0.7 : 1,
8769
+ boxShadow: isDragging || isResizing ? '0 4px 12px rgba(0,0,0,0.3)' : '0 1px 2px rgba(0,0,0,0.1)',
8770
+ transition: isDragging || isResizing ? 'none' : 'box-shadow 0.2s',
8771
+ userSelect: "none",
8772
+ onMouseDown: e => handleEventMouseDown(e, event),
8708
8773
  title: event.title
8709
8774
  }, views.event), /*#__PURE__*/React.createElement(View, {
8710
8775
  overflow: "hidden",
@@ -8823,509 +8888,6 @@ var Calendar = _ref2 => {
8823
8888
  }, views.navButton), "\u203A")))), currentView === 'month' && renderMonthView(), currentView === 'week' && renderWeekView(), currentView === 'day' && renderDayView());
8824
8889
  };
8825
8890
 
8826
- /**
8827
- * Convert an ISO date string to a UTC Date object
8828
- */
8829
- var dateUTC$1 = iso => {
8830
- return new Date(iso + (iso.includes('T') ? '' : 'T00:00:00Z'));
8831
- };
8832
- /**
8833
- * Calculate the number of days between two ISO date strings
8834
- */
8835
- var daysBetweenUTC$1 = (a, b) => {
8836
- return Math.floor((dateUTC$1(a).getTime() - dateUTC$1(b).getTime()) / 86400000);
8837
- };
8838
- /**
8839
- * Add a number of days to an ISO date string
8840
- */
8841
- var addDateDays$1 = (dateISO, days) => {
8842
- var d = new Date(dateISO + 'T00:00:00Z');
8843
- d.setUTCDate(d.getUTCDate() + days);
8844
- return d.toISOString().slice(0, 10);
8845
- };
8846
- /**
8847
- * Get the day of the week (0-6) from an ISO date string
8848
- */
8849
- var getDayOfWeek$1 = dateISO => {
8850
- return dateUTC$1(dateISO).getUTCDay();
8851
- };
8852
- /**
8853
- * Get the date number (1-31) from an ISO date string
8854
- */
8855
- var getDateNumber$1 = dateISO => {
8856
- return dateUTC$1(dateISO).getUTCDate();
8857
- };
8858
- /**
8859
- * Layout events with proper positioning to avoid overlaps
8860
- * Returns positioned events and the total number of rows needed
8861
- */
8862
- var layoutEvents$1 = (events, weekStart) => {
8863
- // Convert events to positioned items with day indices
8864
- var items = events.map(ev => {
8865
- var startIdx = daysBetweenUTC$1(ev.start, weekStart);
8866
- var endIdx = daysBetweenUTC$1(ev.end, weekStart);
8867
- // Clamp to week boundaries
8868
- var clampedStart = Math.max(0, Math.min(6, startIdx));
8869
- var clampedEnd = Math.max(0, Math.min(6, endIdx));
8870
- // Skip if completely outside week
8871
- if (endIdx < 0 || startIdx > 6) return null;
8872
- var duration = clampedEnd - clampedStart + 1;
8873
- return Object.assign({}, ev, {
8874
- startDay: clampedStart,
8875
- endDay: clampedEnd,
8876
- duration: duration,
8877
- row: 0
8878
- });
8879
- }).filter(item => item !== null);
8880
- // Sort by start day, then by duration (longer first)
8881
- items.sort((a, b) => {
8882
- if (a.startDay !== b.startDay) return a.startDay - b.startDay;
8883
- return b.duration - a.duration;
8884
- });
8885
- // Assign rows using greedy algorithm to prevent overlaps
8886
- var rows = [];
8887
- items.forEach(item => {
8888
- var placed = false;
8889
- for (var i = 0; i < rows.length; i++) {
8890
- var row = rows[i];
8891
- var hasConflict = row.some(existing => !(item.startDay > existing.endDay || item.endDay < existing.startDay));
8892
- if (!hasConflict) {
8893
- row.push(item);
8894
- item.row = i;
8895
- placed = true;
8896
- break;
8897
- }
8898
- }
8899
- if (!placed) {
8900
- item.row = rows.length;
8901
- rows.push([item]);
8902
- }
8903
- });
8904
- return {
8905
- items,
8906
- rowCount: rows.length
8907
- };
8908
- };
8909
- /**
8910
- * Day names array (Sunday to Saturday)
8911
- */
8912
- var DAY_NAMES$1 = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
8913
- /**
8914
- * Get the date ISO string for a specific day in the week
8915
- */
8916
- var getDateForDay = (weekStart, dayIndex) => {
8917
- return addDateDays$1(weekStart, dayIndex);
8918
- };
8919
-
8920
- /**
8921
- * Event color configurations
8922
- */
8923
- var EVENT_COLORS$1 = {
8924
- blue: {
8925
- background: 'color.blue.50',
8926
- border: 'color.blue.500',
8927
- text: 'color.blue.700'
8928
- },
8929
- red: {
8930
- background: 'color.red.50',
8931
- border: 'color.red.500',
8932
- text: 'color.red.700'
8933
- },
8934
- green: {
8935
- background: 'color.green.50',
8936
- border: 'color.green.500',
8937
- text: 'color.green.700'
8938
- },
8939
- purple: {
8940
- background: 'color.purple.50',
8941
- border: 'color.purple.500',
8942
- text: 'color.purple.700'
8943
- },
8944
- orange: {
8945
- background: 'color.orange.50',
8946
- border: 'color.orange.500',
8947
- text: 'color.orange.700'
8948
- }
8949
- };
8950
- /**
8951
- * Base styles for the calendar container
8952
- */
8953
- var containerStyles$1 = {
8954
- width: '100%',
8955
- maxWidth: 1200,
8956
- border: '1px solid',
8957
- borderColor: 'color.gray.200',
8958
- borderRadius: 8,
8959
- overflow: 'hidden',
8960
- backgroundColor: 'color.white'
8961
- };
8962
- /**
8963
- * Individual day column styles
8964
- */
8965
- var dayColumnStyles = {
8966
- borderRight: '1px solid',
8967
- borderColor: 'color.gray.200',
8968
- display: 'flex',
8969
- flexDirection: 'column',
8970
- minHeight: 160,
8971
- backgroundColor: 'color.white',
8972
- position: 'relative'
8973
- };
8974
- /**
8975
- * Day header styles
8976
- */
8977
- var dayHeaderStyles = {
8978
- padding: 8,
8979
- borderBottom: '1px solid',
8980
- borderColor: 'color.gray.200',
8981
- backgroundColor: 'color.gray.50',
8982
- minHeight: 60,
8983
- display: 'flex',
8984
- flexDirection: 'column',
8985
- alignItems: 'center',
8986
- justifyContent: 'center',
8987
- gap: 4
8988
- };
8989
- /**
8990
- * Day name styles (e.g., "Mon", "Tue")
8991
- */
8992
- var dayNameStyles = {
8993
- fontSize: 11,
8994
- fontWeight: 500,
8995
- color: 'color.gray.700',
8996
- textTransform: 'uppercase',
8997
- letterSpacing: 0.5
8998
- };
8999
- /**
9000
- * Day date styles (the circular number)
9001
- */
9002
- var dayDateStyles = {
9003
- width: 36,
9004
- height: 36,
9005
- display: 'flex',
9006
- alignItems: 'center',
9007
- justifyContent: 'center',
9008
- borderRadius: '50%',
9009
- fontSize: 13,
9010
- fontWeight: 400,
9011
- color: 'color.gray.900',
9012
- cursor: 'pointer',
9013
- transition: 'all 0.2s',
9014
- border: '2px solid transparent'
9015
- };
9016
- /**
9017
- * Today date styles
9018
- */
9019
- var todayDateStyles = {
9020
- backgroundColor: 'color.blue.500',
9021
- color: 'color.white',
9022
- fontWeight: 500
9023
- };
9024
- /**
9025
- * Selected date styles
9026
- */
9027
- var selectedDateStyles = {
9028
- borderColor: 'color.blue.500'
9029
- };
9030
- /**
9031
- * Events area styles
9032
- */
9033
- var eventsAreaStyles$1 = {
9034
- padding: 8,
9035
- paddingLeft: 6,
9036
- paddingRight: 6,
9037
- flex: 1,
9038
- position: 'relative'
9039
- };
9040
- /**
9041
- * Drop target indicator styles
9042
- */
9043
- var dropTargetStyles$1 = {
9044
- backgroundColor: 'rgba(26, 115, 232, 0.05)'
9045
- };
9046
- /**
9047
- * Calculate event position styles
9048
- */
9049
- var getEventPositionStyles = (startDay, duration, row) => {
9050
- var dayWidth = 100 / 7;
9051
- var left = startDay * dayWidth;
9052
- var width = duration * dayWidth;
9053
- return {
9054
- left: "calc(" + left + "% + 6px)",
9055
- width: "calc(" + width + "% - 12px)",
9056
- top: 8 + row * 26 + "px"
9057
- };
9058
- };
9059
-
9060
- var ResizeHandle$1 = _ref => {
9061
- var {
9062
- direction,
9063
- onMouseDown
9064
- } = _ref;
9065
- var [isHovered, setIsHovered] = useState(false);
9066
- return /*#__PURE__*/React.createElement(View, Object.assign({
9067
- position: "absolute",
9068
- top: 0,
9069
- bottom: 0,
9070
- width: 8,
9071
- opacity: isHovered ? 1 : 0,
9072
- transition: "opacity 0.2s",
9073
- cursor: direction === 'left' ? 'w-resize' : 'e-resize',
9074
- zIndex: 10,
9075
- backgroundColor: isHovered ? 'rgba(0,0,0,0.1)' : 'transparent'
9076
- }, direction === 'left' ? {
9077
- left: 0
9078
- } : {
9079
- right: 0
9080
- }, {
9081
- onMouseDown: onMouseDown,
9082
- onMouseEnter: () => setIsHovered(true),
9083
- onMouseLeave: () => setIsHovered(false)
9084
- }));
9085
- };
9086
- var CalendarWeek = _ref2 => {
9087
- var {
9088
- startDate,
9089
- events = [],
9090
- today = new Date().toISOString().slice(0, 10),
9091
- onEventDrop,
9092
- onEventResize,
9093
- onDateClick,
9094
- views = {},
9095
- width = '100%',
9096
- maxWidth = 1200
9097
- } = _ref2;
9098
- var {
9099
- getColor
9100
- } = useTheme();
9101
- var weekGridRef = useRef(null);
9102
- var [selectedDate, setSelectedDate] = useState(null);
9103
- var [localEvents, setLocalEvents] = useState(events);
9104
- var [dropTargetDays, setDropTargetDays] = useState([]);
9105
- var dragStateRef = useRef({
9106
- isDragging: false,
9107
- isResizing: false,
9108
- resizeDirection: null,
9109
- event: null,
9110
- startX: 0,
9111
- startDay: 0,
9112
- startDuration: 0,
9113
- originalStart: null,
9114
- originalEnd: null
9115
- });
9116
- // Update local events when props change
9117
- React.useEffect(() => {
9118
- setLocalEvents(events);
9119
- }, [events]);
9120
- // Layout events
9121
- var {
9122
- items: positionedEvents
9123
- } = useMemo(() => layoutEvents$1(localEvents, startDate), [localEvents, startDate]);
9124
- // Get day index from mouse X position
9125
- var getDayFromMouseX = useCallback(clientX => {
9126
- if (!weekGridRef.current) return 0;
9127
- var rect = weekGridRef.current.getBoundingClientRect();
9128
- var relativeX = clientX - rect.left;
9129
- var dayWidth = rect.width / 7;
9130
- return Math.max(0, Math.min(6, Math.floor(relativeX / dayWidth)));
9131
- }, []);
9132
- // Handle date click
9133
- var handleDateClick = useCallback(dateISO => {
9134
- setSelectedDate(dateISO);
9135
- onDateClick == null || onDateClick(dateISO);
9136
- }, [onDateClick]);
9137
- // Handle mouse down on event (start dragging)
9138
- var handleEventMouseDown = useCallback((e, event) => {
9139
- e.preventDefault();
9140
- dragStateRef.current = {
9141
- isDragging: true,
9142
- isResizing: false,
9143
- resizeDirection: null,
9144
- event,
9145
- startX: e.clientX,
9146
- startDay: event.startDay,
9147
- startDuration: event.duration,
9148
- originalStart: event.start,
9149
- originalEnd: event.end
9150
- };
9151
- }, []);
9152
- // Handle mouse down on resize handle
9153
- var handleResizeMouseDown = useCallback((e, event, direction) => {
9154
- e.preventDefault();
9155
- e.stopPropagation();
9156
- dragStateRef.current = {
9157
- isDragging: false,
9158
- isResizing: true,
9159
- resizeDirection: direction,
9160
- event,
9161
- startX: e.clientX,
9162
- startDay: event.startDay,
9163
- startDuration: event.duration,
9164
- originalStart: event.start,
9165
- originalEnd: event.end
9166
- };
9167
- }, []);
9168
- // Handle mouse move (dragging or resizing)
9169
- var handleMouseMove = useCallback(e => {
9170
- var dragState = dragStateRef.current;
9171
- if (!dragState.event || !dragState.isDragging && !dragState.isResizing) return;
9172
- if (!weekGridRef.current) return;
9173
- var rect = weekGridRef.current.getBoundingClientRect();
9174
- var dayWidth = rect.width / 7;
9175
- var deltaX = e.clientX - dragState.startX;
9176
- var daysDelta = Math.round(deltaX / dayWidth);
9177
- if (dragState.isDragging) {
9178
- // Calculate new position
9179
- var newStartDay = Math.max(0, Math.min(6, dragState.startDay + daysDelta));
9180
- var duration = dragState.event.duration;
9181
- var newEndDay = Math.min(6, newStartDay + duration - 1);
9182
- // Update drop target indicators
9183
- var targetDays = [];
9184
- for (var i = newStartDay; i <= newEndDay; i++) {
9185
- targetDays.push(i);
9186
- }
9187
- setDropTargetDays(targetDays);
9188
- // Update event position immediately for smooth dragging
9189
- var updatedEvents = localEvents.map(ev => ev.id === dragState.event.id ? Object.assign({}, ev, {
9190
- start: addDateDays$1(dragState.originalStart, newStartDay - dragState.startDay),
9191
- end: addDateDays$1(dragState.originalEnd, newStartDay - dragState.startDay)
9192
- }) : ev);
9193
- setLocalEvents(updatedEvents);
9194
- } else if (dragState.isResizing) {
9195
- // Handle resizing
9196
- if (dragState.resizeDirection === 'right') {
9197
- var newDuration = Math.max(1, dragState.startDuration + daysDelta);
9198
- var _newEndDay = Math.min(6, dragState.startDay + newDuration - 1);
9199
- var actualDuration = _newEndDay - dragState.startDay + 1;
9200
- var _updatedEvents = localEvents.map(ev => ev.id === dragState.event.id ? Object.assign({}, ev, {
9201
- end: addDateDays$1(dragState.originalStart, actualDuration - 1)
9202
- }) : ev);
9203
- setLocalEvents(_updatedEvents);
9204
- } else if (dragState.resizeDirection === 'left') {
9205
- var _newStartDay = Math.max(0, Math.min(dragState.startDay + dragState.startDuration - 1, dragState.startDay + daysDelta));
9206
- var _updatedEvents2 = localEvents.map(ev => ev.id === dragState.event.id ? Object.assign({}, ev, {
9207
- start: addDateDays$1(dragState.originalStart, _newStartDay - dragState.startDay)
9208
- }) : ev);
9209
- setLocalEvents(_updatedEvents2);
9210
- }
9211
- }
9212
- }, [localEvents]);
9213
- // Handle mouse up (finish dragging or resizing)
9214
- var handleMouseUp = useCallback(e => {
9215
- var dragState = dragStateRef.current;
9216
- if (!dragState.event || !dragState.isDragging && !dragState.isResizing) return;
9217
- setDropTargetDays([]);
9218
- // Find the updated event
9219
- var updatedEvent = localEvents.find(ev => ev.id === dragState.event.id);
9220
- if (!updatedEvent) return;
9221
- // Call appropriate callback
9222
- if (dragState.isDragging) {
9223
- onEventDrop == null || onEventDrop(updatedEvent);
9224
- } else if (dragState.isResizing) {
9225
- onEventResize == null || onEventResize(updatedEvent);
9226
- }
9227
- // Reset drag state
9228
- dragStateRef.current = {
9229
- isDragging: false,
9230
- isResizing: false,
9231
- resizeDirection: null,
9232
- event: null,
9233
- startX: 0,
9234
- startDay: 0,
9235
- startDuration: 0,
9236
- originalStart: null,
9237
- originalEnd: null
9238
- };
9239
- }, [localEvents, onEventDrop, onEventResize]);
9240
- // Set up global mouse event listeners
9241
- React.useEffect(() => {
9242
- document.addEventListener('mousemove', handleMouseMove);
9243
- document.addEventListener('mouseup', handleMouseUp);
9244
- return () => {
9245
- document.removeEventListener('mousemove', handleMouseMove);
9246
- document.removeEventListener('mouseup', handleMouseUp);
9247
- };
9248
- }, [handleMouseMove, handleMouseUp]);
9249
- return /*#__PURE__*/React.createElement(View, Object.assign({}, containerStyles$1, {
9250
- width: width,
9251
- maxWidth: maxWidth
9252
- }, views.container), /*#__PURE__*/React.createElement(View, Object.assign({
9253
- ref: weekGridRef,
9254
- display: "grid",
9255
- gridTemplateColumns: "repeat(7, 1fr)",
9256
- position: "relative",
9257
- width: "100%"
9258
- }, views.weekGrid), Array.from({
9259
- length: 7
9260
- }).map((_, dayIdx) => {
9261
- var dateISO = getDateForDay(startDate, dayIdx);
9262
- var dayOfWeek = getDayOfWeek$1(dateISO);
9263
- var dateNum = getDateNumber$1(dateISO);
9264
- var isToday = dateISO === today;
9265
- var isSelected = dateISO === selectedDate;
9266
- var isDropTarget = dropTargetDays.includes(dayIdx);
9267
- return /*#__PURE__*/React.createElement(View, Object.assign({
9268
- key: dayIdx
9269
- }, dayColumnStyles, isDropTarget && dropTargetStyles$1, {
9270
- borderRight: dayIdx === 6 ? 'none' : '1px solid'
9271
- }, views.dayColumn), /*#__PURE__*/React.createElement(View, Object.assign({}, dayHeaderStyles, views.dayHeader), /*#__PURE__*/React.createElement(View, Object.assign({}, dayNameStyles, views.dayName), DAY_NAMES$1[dayOfWeek]), /*#__PURE__*/React.createElement(View, Object.assign({}, dayDateStyles, isToday && todayDateStyles, isSelected && !isToday && selectedDateStyles, {
9272
- onClick: () => handleDateClick(dateISO)
9273
- }, views.dayDate), dateNum)), /*#__PURE__*/React.createElement(View, Object.assign({}, eventsAreaStyles$1, views.eventsArea)));
9274
- }), /*#__PURE__*/React.createElement(View, {
9275
- position: "absolute",
9276
- top: 60,
9277
- left: 0,
9278
- right: 0,
9279
- bottom: 0,
9280
- pointerEvents: "none"
9281
- }, positionedEvents.map(event => {
9282
- var _dragStateRef$current, _dragStateRef$current2;
9283
- var colorConfig = EVENT_COLORS$1[event.color || 'blue'];
9284
- var positionStyles = getEventPositionStyles(event.startDay, event.duration, event.row);
9285
- var isDragging = dragStateRef.current.isDragging && ((_dragStateRef$current = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current.id) === event.id;
9286
- var isResizing = dragStateRef.current.isResizing && ((_dragStateRef$current2 = dragStateRef.current.event) == null ? void 0 : _dragStateRef$current2.id) === event.id;
9287
- return /*#__PURE__*/React.createElement(View, Object.assign({
9288
- key: event.id,
9289
- position: "absolute",
9290
- height: 22,
9291
- display: "flex",
9292
- alignItems: "center",
9293
- padding: 8,
9294
- paddingLeft: 8,
9295
- paddingRight: 8,
9296
- borderRadius: 4,
9297
- backgroundColor: colorConfig.background,
9298
- borderLeft: "3px solid",
9299
- borderLeftColor: colorConfig.border,
9300
- color: colorConfig.text,
9301
- fontSize: 12,
9302
- fontWeight: 500,
9303
- overflow: "hidden",
9304
- cursor: isDragging ? 'grabbing' : 'grab',
9305
- opacity: isDragging || isResizing ? 0.7 : 1,
9306
- boxShadow: isDragging || isResizing ? '0 4px 12px rgba(0,0,0,0.3)' : '0 1px 2px rgba(0,0,0,0.1)',
9307
- transition: isDragging || isResizing ? 'none' : 'box-shadow 0.2s',
9308
- pointerEvents: "auto",
9309
- userSelect: "none",
9310
- left: positionStyles.left,
9311
- width: positionStyles.width,
9312
- top: positionStyles.top,
9313
- onMouseDown: e => handleEventMouseDown(e, event)
9314
- }, views.event), /*#__PURE__*/React.createElement(View, {
9315
- overflow: "hidden",
9316
- textOverflow: "ellipsis",
9317
- whiteSpace: "nowrap",
9318
- width: "100%"
9319
- }, event.title), /*#__PURE__*/React.createElement(ResizeHandle$1, {
9320
- direction: "left",
9321
- onMouseDown: e => handleResizeMouseDown(e, event, 'left')
9322
- }), /*#__PURE__*/React.createElement(ResizeHandle$1, {
9323
- direction: "right",
9324
- onMouseDown: e => handleResizeMouseDown(e, event, 'right')
9325
- }));
9326
- }))));
9327
- };
9328
-
9329
8891
  /**
9330
8892
  * Custom hook to manage cookie consent state
9331
8893
  * @param cookieExpiration Number of days until the cookie expires
@@ -37631,5 +37193,5 @@ var AgentEval = props => {
37631
37193
  return /*#__PURE__*/React.createElement(AgentEvalView, Object.assign({}, props, evalState));
37632
37194
  };
37633
37195
 
37634
- export { Accordion, AgentChat, AgentEval, AgentSession, AgentTrace, Alert, ArrowIcon, AspectRatio, AttachmentIcon, AttachmentPreview, AudioIcon, AudioInput, AudioWaveform, Avatar, Background, Badge, BatteryIcon, BluetoothIcon, BoldArrowIcon, BookmarkIcon, Button, Calendar, CalendarIcon, CalendarWeek, CameraIcon, Card, Carousel, Chart, ChartIcon, ChatInput, CheckIcon, Checkbox, ChevronIcon, ClockIcon, CloseEyeIcon, CloseIcon, CloudIcon, ColorInput, ColorPicker, ComboBox, Command, ContextMenu, CookieConsent, CopyIcon, CountryPicker, CropIcon, DatePicker, DeleteIcon, Divider, DocumentIcon, DownloadIcon, DragAndDrop, DragAndDropComponent, DragHandleIcon, DragHandleLinesIcon, DropdownMenu, DustBinIcon, EditIcon, EmojiPicker, ErrorIcon, ExternalLinkIcon, FacebookIcon, FileIcon, FileImage, FileSVG, FilterIcon, Flow, FolderIcon, FormikChatInput, FormikCheckbox, FormikColorInput, FormikComboBox, FormikCountryPicker, FormikDatePicker, FormikForm, FormikOTPInput, FormikPassword, FormikSelect, FormikSlider, FormikSwitch, FormikTagInput, FormikTextArea, FormikTextField, FormikUploader, GiftIcon, HeartIcon, HelpIcon, HomeIcon, HoverCard, Icon, ImageIcon, InfoIcon, InstagramIcon, KanbanBoard, LikeIcon, Link, LinkedinIcon, Loader, LoadingSpinnerIcon, LocationIcon, LockIcon, LogoutIcon, MagicWandIcon, MediaPreview, MenuIcon, Menubar, MessageLayout, MessageView, MicrophoneIcon, MinusIcon, Modal, MoonIcon, NavigationMenu, NotificationIcon, OTPInput, OpenEyeIcon, Pagination, PanelIcon, Password, PauseIcon, PlayIcon, PlusIcon, PowerOffIcon, PrintIcon, ProfileIcon, ProgressBar, RefreshIcon, Resizable, RotateIcon, SaveIcon, SearchIcon, Select, SendIcon, Separator, SettingsIcon, ShapeIcon, ShareButton, ShareIcon, ShieldIcon, Sidebar, Slider, SliderIcon, SpinnerIcon, StarIcon, StatusIndicator, StopIcon, SuccessIcon, Switch, Table, Tabs, TagInput, Text, TextArea, TextField, TextIcon, ThreadsIcon, TickIcon, Title, Toast, Toggle, ToggleGroup, Tooltip, TrashIcon, Tree, TwitchIcon, TwitterIcon, UnLikeIcon, UnlockIcon, UploadIcon, Uploader, UserIcon, VideoIcon, WarningIcon, WifiIcon, XIcon, YoutubeIcon, ZoomInIcon, ZoomOutIcon, hideMessage, hideModal, showMessage, showModal, showToast, useMessageStore, useModalStore, useToast$1 as useToast };
37196
+ export { Accordion, AgentChat, AgentEval, AgentSession, AgentTrace, Alert, ArrowIcon, AspectRatio, AttachmentIcon, AttachmentPreview, AudioIcon, AudioInput, AudioWaveform, Avatar, Background, Badge, BatteryIcon, BluetoothIcon, BoldArrowIcon, BookmarkIcon, Button, Calendar, CalendarIcon, CameraIcon, Card, Carousel, Chart, ChartIcon, ChatInput, CheckIcon, Checkbox, ChevronIcon, ClockIcon, CloseEyeIcon, CloseIcon, CloudIcon, ColorInput, ColorPicker, ComboBox, Command, ContextMenu, CookieConsent, CopyIcon, CountryPicker, CropIcon, DatePicker, DeleteIcon, Divider, DocumentIcon, DownloadIcon, DragAndDrop, DragAndDropComponent, DragHandleIcon, DragHandleLinesIcon, DropdownMenu, DustBinIcon, EditIcon, EmojiPicker, ErrorIcon, ExternalLinkIcon, FacebookIcon, FileIcon, FileImage, FileSVG, FilterIcon, Flow, FolderIcon, FormikChatInput, FormikCheckbox, FormikColorInput, FormikComboBox, FormikCountryPicker, FormikDatePicker, FormikForm, FormikOTPInput, FormikPassword, FormikSelect, FormikSlider, FormikSwitch, FormikTagInput, FormikTextArea, FormikTextField, FormikUploader, GiftIcon, HeartIcon, HelpIcon, HomeIcon, HoverCard, Icon, ImageIcon, InfoIcon, InstagramIcon, KanbanBoard, LikeIcon, Link, LinkedinIcon, Loader, LoadingSpinnerIcon, LocationIcon, LockIcon, LogoutIcon, MagicWandIcon, MediaPreview, MenuIcon, Menubar, MessageLayout, MessageView, MicrophoneIcon, MinusIcon, Modal, MoonIcon, NavigationMenu, NotificationIcon, OTPInput, OpenEyeIcon, Pagination, PanelIcon, Password, PauseIcon, PlayIcon, PlusIcon, PowerOffIcon, PrintIcon, ProfileIcon, ProgressBar, RefreshIcon, Resizable, RotateIcon, SaveIcon, SearchIcon, Select, SendIcon, Separator, SettingsIcon, ShapeIcon, ShareButton, ShareIcon, ShieldIcon, Sidebar, Slider, SliderIcon, SpinnerIcon, StarIcon, StatusIndicator, StopIcon, SuccessIcon, Switch, Table, Tabs, TagInput, Text, TextArea, TextField, TextIcon, ThreadsIcon, TickIcon, Title, Toast, Toggle, ToggleGroup, Tooltip, TrashIcon, Tree, TwitchIcon, TwitterIcon, UnLikeIcon, UnlockIcon, UploadIcon, Uploader, UserIcon, VideoIcon, WarningIcon, WifiIcon, XIcon, YoutubeIcon, ZoomInIcon, ZoomOutIcon, hideMessage, hideModal, showMessage, showModal, showToast, useMessageStore, useModalStore, useToast$1 as useToast };
37635
37197
  //# sourceMappingURL=web.esm.js.map