@app-studio/web 0.9.36 → 0.9.37

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.
@@ -7569,7 +7569,12 @@
7569
7569
  var useKanbanBoardState = _ref => {
7570
7570
  var {
7571
7571
  columns: initialColumns,
7572
- onChange
7572
+ onChange,
7573
+ onCardMove,
7574
+ onCardCreate: onCardCreateProp,
7575
+ onCardDelete: onCardDeleteProp,
7576
+ onCardTitleChange: onCardTitleChangeProp,
7577
+ onCardDescriptionChange: onCardDescriptionChangeProp
7573
7578
  } = _ref;
7574
7579
  var [columns, setColumns] = React.useState(initialColumns);
7575
7580
  var [draggedCardId, setDraggedCardId] = React.useState(null);
@@ -7646,11 +7651,16 @@
7646
7651
  cardId
7647
7652
  };
7648
7653
  if (options != null && options.shouldCommit) {
7654
+ var originalSourceColumn = prevColumns.find(c => c.id === sourceColumnId);
7655
+ var originalTargetColumn = prevColumns.find(c => c.id === targetColumnId);
7656
+ if (card && originalSourceColumn && originalTargetColumn) {
7657
+ onCardMove == null || onCardMove(card, originalSourceColumn, originalTargetColumn);
7658
+ }
7649
7659
  onChange == null || onChange(updatedColumns);
7650
7660
  }
7651
7661
  return updatedColumns;
7652
7662
  });
7653
- }, [onChange]);
7663
+ }, [onChange, onCardMove]);
7654
7664
  var handleCardDragStart = React.useCallback((columnId, cardId, event) => {
7655
7665
  dragStateRef.current = {
7656
7666
  columnId,
@@ -7709,6 +7719,62 @@
7709
7719
  shouldCommit: true
7710
7720
  });
7711
7721
  }, [applyMove, getRelativeDropPosition]);
7722
+ var handleCardCreate = React.useCallback((card, column) => {
7723
+ if (onCardCreateProp) {
7724
+ onCardCreateProp(card, column);
7725
+ return;
7726
+ }
7727
+ setColumns(prevColumns => {
7728
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7729
+ cards: [...col.cards, card]
7730
+ }) : col);
7731
+ onChange == null || onChange(updatedColumns);
7732
+ return updatedColumns;
7733
+ });
7734
+ }, [onChange, onCardCreateProp]);
7735
+ var handleCardDelete = React.useCallback((card, column) => {
7736
+ if (onCardDeleteProp) {
7737
+ onCardDeleteProp(card, column);
7738
+ return;
7739
+ }
7740
+ setColumns(prevColumns => {
7741
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7742
+ cards: col.cards.filter(c => c.id !== card.id)
7743
+ }) : col);
7744
+ onChange == null || onChange(updatedColumns);
7745
+ return updatedColumns;
7746
+ });
7747
+ }, [onChange, onCardDeleteProp]);
7748
+ var handleCardTitleChange = React.useCallback((card, column, newTitle) => {
7749
+ if (onCardTitleChangeProp) {
7750
+ onCardTitleChangeProp(card, column, newTitle);
7751
+ return;
7752
+ }
7753
+ setColumns(prevColumns => {
7754
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7755
+ cards: col.cards.map(c => c.id === card.id ? Object.assign({}, c, {
7756
+ title: newTitle
7757
+ }) : c)
7758
+ }) : col);
7759
+ onChange == null || onChange(updatedColumns);
7760
+ return updatedColumns;
7761
+ });
7762
+ }, [onChange, onCardTitleChangeProp]);
7763
+ var handleCardDescriptionChange = React.useCallback((card, column, newDescription) => {
7764
+ if (onCardDescriptionChangeProp) {
7765
+ onCardDescriptionChangeProp(card, column, newDescription);
7766
+ return;
7767
+ }
7768
+ setColumns(prevColumns => {
7769
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7770
+ cards: col.cards.map(c => c.id === card.id ? Object.assign({}, c, {
7771
+ description: newDescription
7772
+ }) : c)
7773
+ }) : col);
7774
+ onChange == null || onChange(updatedColumns);
7775
+ return updatedColumns;
7776
+ });
7777
+ }, [onChange, onCardDescriptionChangeProp]);
7712
7778
  return {
7713
7779
  columns,
7714
7780
  draggedCardId,
@@ -7718,7 +7784,11 @@
7718
7784
  onColumnDragOver: handleColumnDragOver,
7719
7785
  onCardDragOver: handleCardDragOver,
7720
7786
  onColumnDrop: handleColumnDrop,
7721
- onCardDrop: handleCardDrop
7787
+ onCardDrop: handleCardDrop,
7788
+ onCardCreate: handleCardCreate,
7789
+ onCardDelete: handleCardDelete,
7790
+ onCardTitleChange: handleCardTitleChange,
7791
+ onCardDescriptionChange: handleCardDescriptionChange
7722
7792
  };
7723
7793
  };
7724
7794
 
@@ -7736,18 +7806,94 @@
7736
7806
  onColumnDragOver,
7737
7807
  onCardDragOver,
7738
7808
  onColumnDrop,
7739
- onCardDrop
7809
+ onCardDrop,
7810
+ onCardCreate,
7811
+ onCardDelete,
7812
+ onCardTitleChange,
7813
+ onCardDescriptionChange
7740
7814
  } = _ref;
7741
- var renderDefaultCard = React__default.useCallback(card => (/*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7815
+ var [editingCardId, setEditingCardId] = React__default.useState(null);
7816
+ var [editingDescriptionCardId, setEditingDescriptionCardId] = React__default.useState(null);
7817
+ var [editedTitle, setEditedTitle] = React__default.useState('');
7818
+ var [editedDescription, setEditedDescription] = React__default.useState('');
7819
+ var handleTitleClick = React__default.useCallback(card => {
7820
+ setEditingCardId(card.id);
7821
+ setEditedTitle(card.title);
7822
+ }, []);
7823
+ var handleDescriptionClick = React__default.useCallback(card => {
7824
+ setEditingDescriptionCardId(card.id);
7825
+ setEditedDescription(card.description || '');
7826
+ }, []);
7827
+ var handleTitleChange = React__default.useCallback(event => {
7828
+ setEditedTitle(event.target.value);
7829
+ }, []);
7830
+ var handleDescriptionChange = React__default.useCallback(event => {
7831
+ setEditedDescription(event.target.value);
7832
+ }, []);
7833
+ var handleTitleBlur = React__default.useCallback((card, column) => {
7834
+ if (editingCardId === card.id) {
7835
+ onCardTitleChange == null || onCardTitleChange(card, column, editedTitle);
7836
+ setEditingCardId(null);
7837
+ }
7838
+ }, [editingCardId, editedTitle, onCardTitleChange]);
7839
+ var handleDescriptionBlur = React__default.useCallback((card, column) => {
7840
+ if (editingDescriptionCardId === card.id) {
7841
+ onCardDescriptionChange == null || onCardDescriptionChange(card, column, editedDescription);
7842
+ setEditingDescriptionCardId(null);
7843
+ }
7844
+ }, [editingDescriptionCardId, editedDescription, onCardDescriptionChange]);
7845
+ var handleTitleKeyDown = React__default.useCallback((event, card, column) => {
7846
+ if (event.key === 'Enter') {
7847
+ handleTitleBlur(card, column);
7848
+ }
7849
+ }, [handleTitleBlur]);
7850
+ var handleDescriptionKeyDown = React__default.useCallback((event, card, column) => {
7851
+ if (event.key === 'Enter' && !event.shiftKey) {
7852
+ event.preventDefault();
7853
+ handleDescriptionBlur(card, column);
7854
+ }
7855
+ }, [handleDescriptionBlur]);
7856
+ var renderDefaultCard = React__default.useCallback((card, column) => (/*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7742
7857
  gap: 4,
7743
7858
  alignItems: "flex-start"
7744
- }, views == null ? void 0 : views.cardContent), /*#__PURE__*/React__default.createElement(Text, {
7859
+ }, views == null ? void 0 : views.cardContent), editingCardId === card.id ? (/*#__PURE__*/React__default.createElement("input", {
7860
+ type: "text",
7861
+ value: editedTitle,
7862
+ onChange: handleTitleChange,
7863
+ onBlur: () => handleTitleBlur(card, column),
7864
+ onKeyDown: event => handleTitleKeyDown(event, card, column),
7865
+ autoFocus: true,
7866
+ style: {
7867
+ border: '1px solid #d0d5dd',
7868
+ borderRadius: '4px',
7869
+ padding: '4px 8px',
7870
+ fontSize: '14px',
7871
+ fontWeight: '600',
7872
+ width: '100%'
7873
+ }
7874
+ })) : (/*#__PURE__*/React__default.createElement(Text, {
7745
7875
  weight: "semiBold",
7746
- size: "sm"
7747
- }, card.title), card.description && (/*#__PURE__*/React__default.createElement(Text, {
7748
7876
  size: "sm",
7749
- color: "#475467"
7750
- }, card.description)))), [views == null ? void 0 : views.cardContent]);
7877
+ onClick: () => handleTitleClick(card)
7878
+ }, card.title)), card.description && (editingDescriptionCardId === card.id ? (/*#__PURE__*/React__default.createElement("textarea", {
7879
+ value: editedDescription,
7880
+ onChange: handleDescriptionChange,
7881
+ onBlur: () => handleDescriptionBlur(card, column),
7882
+ onKeyDown: event => handleDescriptionKeyDown(event, card, column),
7883
+ autoFocus: true,
7884
+ style: {
7885
+ border: '1px solid #d0d5dd',
7886
+ borderRadius: '4px',
7887
+ padding: '4px 8px',
7888
+ fontSize: '14px',
7889
+ width: '100%',
7890
+ minHeight: '60px'
7891
+ }
7892
+ })) : (/*#__PURE__*/React__default.createElement(Text, {
7893
+ size: "sm",
7894
+ color: "#475467",
7895
+ onClick: () => handleDescriptionClick(card)
7896
+ }, card.description))))), [views == null ? void 0 : views.cardContent, editingCardId, editedTitle, editingDescriptionCardId, editedDescription, handleTitleBlur, handleTitleChange, handleTitleClick, handleTitleKeyDown, handleDescriptionBlur, handleDescriptionChange, handleDescriptionClick, handleDescriptionKeyDown]);
7751
7897
  return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7752
7898
  display: "flex",
7753
7899
  alignItems: "flex-start",
@@ -7771,27 +7917,21 @@
7771
7917
  }, views == null ? void 0 : views.columnHeader), renderColumnHeader ? renderColumnHeader(column) : (/*#__PURE__*/React__default.createElement(Text, Object.assign({
7772
7918
  weight: "semiBold",
7773
7919
  size: "md"
7774
- }, views == null ? void 0 : views.columnTitle), column.title))), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7920
+ }, views == null ? void 0 : views.columnTitle), column.title)), /*#__PURE__*/React__default.createElement(appStudio.View, {
7921
+ onClick: () => onCardCreate == null ? void 0 : onCardCreate({
7922
+ id: "new-card-" + Date.now(),
7923
+ title: 'Nouvelle carte'
7924
+ }, column)
7925
+ }, /*#__PURE__*/React__default.createElement(PlusIcon, {
7926
+ widthHeight: 16
7927
+ }))), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7775
7928
  gap: 12,
7776
7929
  minHeight: 40,
7777
7930
  onDragOver: event => onColumnDragOver(column.id, event),
7778
7931
  onDrop: event => onColumnDrop(column.id, event),
7779
7932
  opacity: draggedCardId && hoveredColumnId === column.id ? 0.9 : undefined,
7780
7933
  transition: "all 0.15s ease-in-out"
7781
- }, views == null ? void 0 : views.columnBody), column.cards.length === 0 && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7782
- padding: 12,
7783
- borderWidth: "1px",
7784
- borderStyle: "dashed",
7785
- borderColor: "#d0d5dd",
7786
- borderRadius: 8,
7787
- backgroundColor: "rgba(255, 255, 255, 0.6)",
7788
- textAlign: "center",
7789
- color: "#667085",
7790
- fontSize: "14px"
7791
- }, views == null ? void 0 : views.emptyState), renderEmptyState ? renderEmptyState(column) : (/*#__PURE__*/React__default.createElement(Text, {
7792
- size: "sm",
7793
- color: "#667085"
7794
- }, "Drop cards here")))), column.cards.map(card => (/*#__PURE__*/React__default.createElement(appStudio.View, {
7934
+ }, views == null ? void 0 : views.columnBody), column.cards.map(card => (/*#__PURE__*/React__default.createElement(appStudio.View, {
7795
7935
  key: card.id,
7796
7936
  position: "relative"
7797
7937
  }, /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
@@ -7811,7 +7951,35 @@
7811
7951
  event.stopPropagation();
7812
7952
  onCardDrop(column.id, card.id, event);
7813
7953
  }
7814
- }, views == null ? void 0 : views.card), renderCard ? renderCard(card, column) : renderDefaultCard(card)))))), column.footer && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.columnFooter), column.footer))))));
7954
+ }, views == null ? void 0 : views.card), /*#__PURE__*/React__default.createElement(appStudio.View, {
7955
+ display: "flex",
7956
+ justifyContent: "space-between",
7957
+ alignItems: "flex-start"
7958
+ }, /*#__PURE__*/React__default.createElement(appStudio.View, {
7959
+ flexGrow: 1
7960
+ }, renderCard ? renderCard(card, column) : renderDefaultCard(card, column)), /*#__PURE__*/React__default.createElement(appStudio.View, {
7961
+ onClick: () => onCardDelete == null ? void 0 : onCardDelete(card, column)
7962
+ }, /*#__PURE__*/React__default.createElement(TrashIcon, {
7963
+ widthHeight: 16
7964
+ }))))))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7965
+ padding: 12,
7966
+ borderWidth: "1px",
7967
+ borderStyle: "dashed",
7968
+ borderColor: "#d0d5dd",
7969
+ borderRadius: 8,
7970
+ backgroundColor: "rgba(255, 255, 255, 0.6)",
7971
+ textAlign: "center",
7972
+ color: "#667085",
7973
+ fontSize: "14px"
7974
+ }, views == null ? void 0 : views.emptyState, {
7975
+ onClick: () => onCardCreate == null ? void 0 : onCardCreate({
7976
+ id: "new-card-" + Date.now(),
7977
+ title: 'Nouvelle carte'
7978
+ }, column)
7979
+ }), renderEmptyState ? renderEmptyState(column) : (/*#__PURE__*/React__default.createElement(Text, {
7980
+ size: "sm",
7981
+ color: "#667085"
7982
+ }, "Create a new card")))), column.footer && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.columnFooter), column.footer))))));
7815
7983
  };
7816
7984
 
7817
7985
  var KanbanBoardComponent = props => {
@@ -8238,11 +8406,111 @@
8238
8406
  border: 'none'
8239
8407
  };
8240
8408
 
8241
- var ResizeHandle = _ref => {
8409
+ var EventContent = _ref => {
8410
+ var {
8411
+ event,
8412
+ onTitleChange,
8413
+ onDescriptionChange,
8414
+ onEventDelete
8415
+ } = _ref;
8416
+ var [isEditingTitle, setIsEditingTitle] = React.useState(false);
8417
+ var [editedTitle, setEditedTitle] = React.useState(event.title);
8418
+ var [isEditingDescription, setIsEditingDescription] = React.useState(false);
8419
+ var [editedDescription, setEditedDescription] = React.useState(event.description || '');
8420
+ var handleTitleClick = React.useCallback(() => {
8421
+ setIsEditingTitle(true);
8422
+ setEditedTitle(event.title);
8423
+ }, [event.title]);
8424
+ var handleDescriptionClick = React.useCallback(() => {
8425
+ setIsEditingDescription(true);
8426
+ setEditedDescription(event.description || '');
8427
+ }, [event.description]);
8428
+ var handleTitleChange = React.useCallback(e => {
8429
+ setEditedTitle(e.target.value);
8430
+ }, []);
8431
+ var handleDescriptionChange = React.useCallback(e => {
8432
+ setEditedDescription(e.target.value);
8433
+ }, []);
8434
+ var handleTitleBlur = React.useCallback(() => {
8435
+ if (isEditingTitle) {
8436
+ onTitleChange(event, editedTitle);
8437
+ setIsEditingTitle(false);
8438
+ }
8439
+ }, [isEditingTitle, onTitleChange, event, editedTitle]);
8440
+ var handleDescriptionBlur = React.useCallback(() => {
8441
+ if (isEditingDescription) {
8442
+ onDescriptionChange(event, editedDescription);
8443
+ setIsEditingDescription(false);
8444
+ }
8445
+ }, [isEditingDescription, onDescriptionChange, event, editedDescription]);
8446
+ var handleTitleKeyDown = React.useCallback(e => {
8447
+ if (e.key === 'Enter') {
8448
+ handleTitleBlur();
8449
+ }
8450
+ }, [handleTitleBlur]);
8451
+ var handleDescriptionKeyDown = React.useCallback(e => {
8452
+ if (e.key === 'Enter' && !e.shiftKey) {
8453
+ e.preventDefault();
8454
+ handleDescriptionBlur();
8455
+ }
8456
+ }, [handleDescriptionBlur]);
8457
+ return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, {
8458
+ overflow: "hidden",
8459
+ textOverflow: "ellipsis",
8460
+ whiteSpace: "nowrap",
8461
+ width: "100%",
8462
+ justifyContent: "space-between"
8463
+ }, isEditingTitle ? (/*#__PURE__*/React__default.createElement("input", {
8464
+ type: "text",
8465
+ value: editedTitle,
8466
+ onChange: handleTitleChange,
8467
+ onBlur: handleTitleBlur,
8468
+ onKeyDown: handleTitleKeyDown,
8469
+ autoFocus: true,
8470
+ style: {
8471
+ border: '1px solid #d0d5dd',
8472
+ borderRadius: '4px',
8473
+ padding: '2px 4px',
8474
+ fontSize: '11px',
8475
+ fontWeight: '500',
8476
+ width: '100%'
8477
+ }
8478
+ })) : (/*#__PURE__*/React__default.createElement(appStudio.Text, {
8479
+ fontSize: 11,
8480
+ fontWeight: 500,
8481
+ onClick: handleTitleClick
8482
+ }, event.title)), event.description && (isEditingDescription ? (/*#__PURE__*/React__default.createElement("textarea", {
8483
+ value: editedDescription,
8484
+ onChange: handleDescriptionChange,
8485
+ onBlur: handleDescriptionBlur,
8486
+ onKeyDown: handleDescriptionKeyDown,
8487
+ autoFocus: true,
8488
+ style: {
8489
+ border: '1px solid #d0d5dd',
8490
+ borderRadius: '4px',
8491
+ padding: '2px 4px',
8492
+ fontSize: '11px',
8493
+ width: '100%',
8494
+ minHeight: '40px',
8495
+ marginTop: '4px'
8496
+ }
8497
+ })) : (/*#__PURE__*/React__default.createElement(appStudio.Text, {
8498
+ fontSize: 11,
8499
+ color: "color.gray.600",
8500
+ onClick: handleDescriptionClick
8501
+ }, event.description))), /*#__PURE__*/React__default.createElement(appStudio.Center, {
8502
+ onClick: () => onEventDelete(event),
8503
+ cursor: "pointer",
8504
+ marginLeft: 4
8505
+ }, /*#__PURE__*/React__default.createElement(TrashIcon, {
8506
+ widthHeight: 12
8507
+ })));
8508
+ };
8509
+ var ResizeHandle = _ref2 => {
8242
8510
  var {
8243
8511
  direction,
8244
8512
  onMouseDown
8245
- } = _ref;
8513
+ } = _ref2;
8246
8514
  var [isHovered, setIsHovered] = React.useState(false);
8247
8515
  return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
8248
8516
  position: "absolute",
@@ -8267,7 +8535,7 @@
8267
8535
  var MONTH_EVENT_ROW_HEIGHT = 22;
8268
8536
  var MONTH_EVENT_ROW_GAP = 4;
8269
8537
  var MONTH_EVENT_TOP_OFFSET = 32;
8270
- var Calendar = _ref2 => {
8538
+ var Calendar = _ref3 => {
8271
8539
  var {
8272
8540
  initialDate = new Date(),
8273
8541
  initialView = 'month',
@@ -8279,11 +8547,14 @@
8279
8547
  onDateChange,
8280
8548
  onViewChange,
8281
8549
  onEventAdd,
8550
+ onEventTitleChange,
8551
+ onEventDescriptionChange,
8552
+ onEventDelete,
8282
8553
  views = {},
8283
8554
  width = '100%',
8284
8555
  maxWidth = 1200,
8285
8556
  weekStartsOn = 0
8286
- } = _ref2;
8557
+ } = _ref3;
8287
8558
  var {
8288
8559
  getColor
8289
8560
  } = appStudio.useTheme();
@@ -8310,6 +8581,31 @@
8310
8581
  React__default.useEffect(() => {
8311
8582
  setLocalEvents(events);
8312
8583
  }, [events]);
8584
+ var handleEventTitleChange = React.useCallback((event, newTitle) => {
8585
+ if (onEventTitleChange) {
8586
+ onEventTitleChange(event, newTitle);
8587
+ return;
8588
+ }
8589
+ setLocalEvents(prevEvents => prevEvents.map(ev => ev.id === event.id ? Object.assign({}, ev, {
8590
+ title: newTitle
8591
+ }) : ev));
8592
+ }, [onEventTitleChange]);
8593
+ var handleEventDescriptionChange = React.useCallback((event, newDescription) => {
8594
+ if (onEventDescriptionChange) {
8595
+ onEventDescriptionChange(event, newDescription);
8596
+ return;
8597
+ }
8598
+ setLocalEvents(prevEvents => prevEvents.map(ev => ev.id === event.id ? Object.assign({}, ev, {
8599
+ description: newDescription
8600
+ }) : ev));
8601
+ }, [onEventDescriptionChange]);
8602
+ var handleEventDelete = React.useCallback(event => {
8603
+ if (onEventDelete) {
8604
+ onEventDelete(event);
8605
+ return;
8606
+ }
8607
+ setLocalEvents(prevEvents => prevEvents.filter(ev => ev.id !== event.id));
8608
+ }, [onEventDelete]);
8313
8609
  // Get the month start for current date
8314
8610
  var currentMonth = React.useMemo(() => getFirstDayOfMonth(currentDate), [currentDate]);
8315
8611
  // Generate calendar dates based on view
@@ -8670,12 +8966,12 @@
8670
8966
  top: event.segmentRow * (MONTH_EVENT_ROW_HEIGHT + MONTH_EVENT_ROW_GAP) + "px",
8671
8967
  onMouseDown: e => handleEventMouseDown(e, event),
8672
8968
  title: event.title
8673
- }, views.event), /*#__PURE__*/React__default.createElement(appStudio.View, {
8674
- overflow: "hidden",
8675
- textOverflow: "ellipsis",
8676
- whiteSpace: "nowrap",
8677
- width: "100%"
8678
- }, event.title), showLeftHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
8969
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
8970
+ event: event,
8971
+ onTitleChange: handleEventTitleChange,
8972
+ onDescriptionChange: handleEventDescriptionChange,
8973
+ onEventDelete: handleEventDelete
8974
+ }), showLeftHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
8679
8975
  direction: "left",
8680
8976
  onMouseDown: e => handleResizeStart(e, event, 'left')
8681
8977
  })), showRightHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
@@ -8736,12 +9032,12 @@
8736
9032
  userSelect: "none",
8737
9033
  onMouseDown: e => handleEventMouseDown(e, event),
8738
9034
  title: event.title
8739
- }, views.event), /*#__PURE__*/React__default.createElement(appStudio.View, {
8740
- overflow: "hidden",
8741
- textOverflow: "ellipsis",
8742
- whiteSpace: "nowrap",
8743
- width: "100%"
8744
- }, event.title), /*#__PURE__*/React__default.createElement(ResizeHandle, {
9035
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
9036
+ event: event,
9037
+ onTitleChange: handleEventTitleChange,
9038
+ onDescriptionChange: handleEventDescriptionChange,
9039
+ onEventDelete: handleEventDelete
9040
+ }), /*#__PURE__*/React__default.createElement(ResizeHandle, {
8745
9041
  direction: "left",
8746
9042
  onMouseDown: e => handleResizeStart(e, event, 'left')
8747
9043
  }), /*#__PURE__*/React__default.createElement(ResizeHandle, {
@@ -8788,7 +9084,7 @@
8788
9084
  }, views.timeSlot), dayEvents.filter(event => {
8789
9085
  // Simple check if event starts in this hour
8790
9086
  if (event.start.includes('T')) {
8791
- var eventHour = parseInt(event.start.split('T')[1].split(':')[0]);
9087
+ var eventHour = parseInt(event.start.split('T').split(':'));
8792
9088
  return eventHour === hour;
8793
9089
  }
8794
9090
  return false;
@@ -8801,7 +9097,12 @@
8801
9097
  borderLeftColor: colorConfig.border,
8802
9098
  color: colorConfig.text,
8803
9099
  marginBottom: 4
8804
- }, views.event), event.title);
9100
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
9101
+ event: event,
9102
+ onTitleChange: handleEventTitleChange,
9103
+ onDescriptionChange: handleEventDescriptionChange,
9104
+ onEventDelete: handleEventDelete
9105
+ }));
8805
9106
  })));
8806
9107
  }));
8807
9108
  };