@app-studio/web 0.9.35 → 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.
Files changed (34) hide show
  1. package/dist/components/Calendar/Calendar/Calendar.props.d.ts +8 -0
  2. package/dist/components/KanbanBoard/KanbanBoard/KanbanBoard.props.d.ts +5 -0
  3. package/dist/components/KanbanBoard/KanbanBoard/KanbanBoard.state.d.ts +7 -3
  4. package/dist/components/OKR/OKR/OKR.props.d.ts +72 -0
  5. package/dist/components/OKR/OKR/OKR.style.d.ts +19 -0
  6. package/dist/components/OKR/OKR/OKR.view.d.ts +4 -0
  7. package/dist/components/OKR/OKR.d.ts +4 -0
  8. package/dist/components/index.d.ts +4 -0
  9. package/dist/pages/okr.page.d.ts +3 -0
  10. package/dist/web.cjs.development.js +774 -199
  11. package/dist/web.cjs.development.js.map +1 -1
  12. package/dist/web.cjs.production.min.js +1 -1
  13. package/dist/web.cjs.production.min.js.map +1 -1
  14. package/dist/web.esm.js +774 -200
  15. package/dist/web.esm.js.map +1 -1
  16. package/dist/web.umd.development.js +774 -199
  17. package/dist/web.umd.development.js.map +1 -1
  18. package/dist/web.umd.production.min.js +1 -1
  19. package/dist/web.umd.production.min.js.map +1 -1
  20. package/docs/README.md +2 -1
  21. package/docs/components/Calendar.mdx +3 -0
  22. package/docs/components/Flow.mdx +1 -0
  23. package/docs/components/KanbanBoard.mdx +4 -0
  24. package/docs/components/OKR.mdx +475 -0
  25. package/docs/components/Title.mdx +1 -0
  26. package/docs/components/Tree.mdx +1 -0
  27. package/docs/components.md +178 -0
  28. package/package.json +1 -1
  29. package/docs/api-reference/README.md +0 -103
  30. package/docs/api-reference/data-display/flow.md +0 -220
  31. package/docs/api-reference/data-display/tree.md +0 -210
  32. package/docs/api-reference/form/chat-input.md +0 -206
  33. package/docs/api-reference/utility/button.md +0 -145
  34. package/docs/api-reference/utility/title.md +0 -301
@@ -7611,7 +7611,12 @@ var cloneColumns = inputColumns => inputColumns.map(column => Object.assign({},
7611
7611
  var useKanbanBoardState = _ref => {
7612
7612
  var {
7613
7613
  columns: initialColumns,
7614
- onChange
7614
+ onChange,
7615
+ onCardMove,
7616
+ onCardCreate: onCardCreateProp,
7617
+ onCardDelete: onCardDeleteProp,
7618
+ onCardTitleChange: onCardTitleChangeProp,
7619
+ onCardDescriptionChange: onCardDescriptionChangeProp
7615
7620
  } = _ref;
7616
7621
  var [columns, setColumns] = React.useState(initialColumns);
7617
7622
  var [draggedCardId, setDraggedCardId] = React.useState(null);
@@ -7688,11 +7693,16 @@ var useKanbanBoardState = _ref => {
7688
7693
  cardId
7689
7694
  };
7690
7695
  if (options != null && options.shouldCommit) {
7696
+ var originalSourceColumn = prevColumns.find(c => c.id === sourceColumnId);
7697
+ var originalTargetColumn = prevColumns.find(c => c.id === targetColumnId);
7698
+ if (card && originalSourceColumn && originalTargetColumn) {
7699
+ onCardMove == null || onCardMove(card, originalSourceColumn, originalTargetColumn);
7700
+ }
7691
7701
  onChange == null || onChange(updatedColumns);
7692
7702
  }
7693
7703
  return updatedColumns;
7694
7704
  });
7695
- }, [onChange]);
7705
+ }, [onChange, onCardMove]);
7696
7706
  var handleCardDragStart = React.useCallback((columnId, cardId, event) => {
7697
7707
  dragStateRef.current = {
7698
7708
  columnId,
@@ -7751,6 +7761,62 @@ var useKanbanBoardState = _ref => {
7751
7761
  shouldCommit: true
7752
7762
  });
7753
7763
  }, [applyMove, getRelativeDropPosition]);
7764
+ var handleCardCreate = React.useCallback((card, column) => {
7765
+ if (onCardCreateProp) {
7766
+ onCardCreateProp(card, column);
7767
+ return;
7768
+ }
7769
+ setColumns(prevColumns => {
7770
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7771
+ cards: [...col.cards, card]
7772
+ }) : col);
7773
+ onChange == null || onChange(updatedColumns);
7774
+ return updatedColumns;
7775
+ });
7776
+ }, [onChange, onCardCreateProp]);
7777
+ var handleCardDelete = React.useCallback((card, column) => {
7778
+ if (onCardDeleteProp) {
7779
+ onCardDeleteProp(card, column);
7780
+ return;
7781
+ }
7782
+ setColumns(prevColumns => {
7783
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7784
+ cards: col.cards.filter(c => c.id !== card.id)
7785
+ }) : col);
7786
+ onChange == null || onChange(updatedColumns);
7787
+ return updatedColumns;
7788
+ });
7789
+ }, [onChange, onCardDeleteProp]);
7790
+ var handleCardTitleChange = React.useCallback((card, column, newTitle) => {
7791
+ if (onCardTitleChangeProp) {
7792
+ onCardTitleChangeProp(card, column, newTitle);
7793
+ return;
7794
+ }
7795
+ setColumns(prevColumns => {
7796
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7797
+ cards: col.cards.map(c => c.id === card.id ? Object.assign({}, c, {
7798
+ title: newTitle
7799
+ }) : c)
7800
+ }) : col);
7801
+ onChange == null || onChange(updatedColumns);
7802
+ return updatedColumns;
7803
+ });
7804
+ }, [onChange, onCardTitleChangeProp]);
7805
+ var handleCardDescriptionChange = React.useCallback((card, column, newDescription) => {
7806
+ if (onCardDescriptionChangeProp) {
7807
+ onCardDescriptionChangeProp(card, column, newDescription);
7808
+ return;
7809
+ }
7810
+ setColumns(prevColumns => {
7811
+ var updatedColumns = prevColumns.map(col => col.id === column.id ? Object.assign({}, col, {
7812
+ cards: col.cards.map(c => c.id === card.id ? Object.assign({}, c, {
7813
+ description: newDescription
7814
+ }) : c)
7815
+ }) : col);
7816
+ onChange == null || onChange(updatedColumns);
7817
+ return updatedColumns;
7818
+ });
7819
+ }, [onChange, onCardDescriptionChangeProp]);
7754
7820
  return {
7755
7821
  columns,
7756
7822
  draggedCardId,
@@ -7760,7 +7826,11 @@ var useKanbanBoardState = _ref => {
7760
7826
  onColumnDragOver: handleColumnDragOver,
7761
7827
  onCardDragOver: handleCardDragOver,
7762
7828
  onColumnDrop: handleColumnDrop,
7763
- onCardDrop: handleCardDrop
7829
+ onCardDrop: handleCardDrop,
7830
+ onCardCreate: handleCardCreate,
7831
+ onCardDelete: handleCardDelete,
7832
+ onCardTitleChange: handleCardTitleChange,
7833
+ onCardDescriptionChange: handleCardDescriptionChange
7764
7834
  };
7765
7835
  };
7766
7836
 
@@ -7778,18 +7848,94 @@ var KanbanBoardView = _ref => {
7778
7848
  onColumnDragOver,
7779
7849
  onCardDragOver,
7780
7850
  onColumnDrop,
7781
- onCardDrop
7851
+ onCardDrop,
7852
+ onCardCreate,
7853
+ onCardDelete,
7854
+ onCardTitleChange,
7855
+ onCardDescriptionChange
7782
7856
  } = _ref;
7783
- var renderDefaultCard = React__default.useCallback(card => (/*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7857
+ var [editingCardId, setEditingCardId] = React__default.useState(null);
7858
+ var [editingDescriptionCardId, setEditingDescriptionCardId] = React__default.useState(null);
7859
+ var [editedTitle, setEditedTitle] = React__default.useState('');
7860
+ var [editedDescription, setEditedDescription] = React__default.useState('');
7861
+ var handleTitleClick = React__default.useCallback(card => {
7862
+ setEditingCardId(card.id);
7863
+ setEditedTitle(card.title);
7864
+ }, []);
7865
+ var handleDescriptionClick = React__default.useCallback(card => {
7866
+ setEditingDescriptionCardId(card.id);
7867
+ setEditedDescription(card.description || '');
7868
+ }, []);
7869
+ var handleTitleChange = React__default.useCallback(event => {
7870
+ setEditedTitle(event.target.value);
7871
+ }, []);
7872
+ var handleDescriptionChange = React__default.useCallback(event => {
7873
+ setEditedDescription(event.target.value);
7874
+ }, []);
7875
+ var handleTitleBlur = React__default.useCallback((card, column) => {
7876
+ if (editingCardId === card.id) {
7877
+ onCardTitleChange == null || onCardTitleChange(card, column, editedTitle);
7878
+ setEditingCardId(null);
7879
+ }
7880
+ }, [editingCardId, editedTitle, onCardTitleChange]);
7881
+ var handleDescriptionBlur = React__default.useCallback((card, column) => {
7882
+ if (editingDescriptionCardId === card.id) {
7883
+ onCardDescriptionChange == null || onCardDescriptionChange(card, column, editedDescription);
7884
+ setEditingDescriptionCardId(null);
7885
+ }
7886
+ }, [editingDescriptionCardId, editedDescription, onCardDescriptionChange]);
7887
+ var handleTitleKeyDown = React__default.useCallback((event, card, column) => {
7888
+ if (event.key === 'Enter') {
7889
+ handleTitleBlur(card, column);
7890
+ }
7891
+ }, [handleTitleBlur]);
7892
+ var handleDescriptionKeyDown = React__default.useCallback((event, card, column) => {
7893
+ if (event.key === 'Enter' && !event.shiftKey) {
7894
+ event.preventDefault();
7895
+ handleDescriptionBlur(card, column);
7896
+ }
7897
+ }, [handleDescriptionBlur]);
7898
+ var renderDefaultCard = React__default.useCallback((card, column) => (/*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7784
7899
  gap: 4,
7785
7900
  alignItems: "flex-start"
7786
- }, views == null ? void 0 : views.cardContent), /*#__PURE__*/React__default.createElement(Text, {
7901
+ }, views == null ? void 0 : views.cardContent), editingCardId === card.id ? (/*#__PURE__*/React__default.createElement("input", {
7902
+ type: "text",
7903
+ value: editedTitle,
7904
+ onChange: handleTitleChange,
7905
+ onBlur: () => handleTitleBlur(card, column),
7906
+ onKeyDown: event => handleTitleKeyDown(event, card, column),
7907
+ autoFocus: true,
7908
+ style: {
7909
+ border: '1px solid #d0d5dd',
7910
+ borderRadius: '4px',
7911
+ padding: '4px 8px',
7912
+ fontSize: '14px',
7913
+ fontWeight: '600',
7914
+ width: '100%'
7915
+ }
7916
+ })) : (/*#__PURE__*/React__default.createElement(Text, {
7787
7917
  weight: "semiBold",
7788
- size: "sm"
7789
- }, card.title), card.description && (/*#__PURE__*/React__default.createElement(Text, {
7790
7918
  size: "sm",
7791
- color: "#475467"
7792
- }, card.description)))), [views == null ? void 0 : views.cardContent]);
7919
+ onClick: () => handleTitleClick(card)
7920
+ }, card.title)), card.description && (editingDescriptionCardId === card.id ? (/*#__PURE__*/React__default.createElement("textarea", {
7921
+ value: editedDescription,
7922
+ onChange: handleDescriptionChange,
7923
+ onBlur: () => handleDescriptionBlur(card, column),
7924
+ onKeyDown: event => handleDescriptionKeyDown(event, card, column),
7925
+ autoFocus: true,
7926
+ style: {
7927
+ border: '1px solid #d0d5dd',
7928
+ borderRadius: '4px',
7929
+ padding: '4px 8px',
7930
+ fontSize: '14px',
7931
+ width: '100%',
7932
+ minHeight: '60px'
7933
+ }
7934
+ })) : (/*#__PURE__*/React__default.createElement(Text, {
7935
+ size: "sm",
7936
+ color: "#475467",
7937
+ onClick: () => handleDescriptionClick(card)
7938
+ }, card.description))))), [views == null ? void 0 : views.cardContent, editingCardId, editedTitle, editingDescriptionCardId, editedDescription, handleTitleBlur, handleTitleChange, handleTitleClick, handleTitleKeyDown, handleDescriptionBlur, handleDescriptionChange, handleDescriptionClick, handleDescriptionKeyDown]);
7793
7939
  return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7794
7940
  display: "flex",
7795
7941
  alignItems: "flex-start",
@@ -7813,27 +7959,21 @@ var KanbanBoardView = _ref => {
7813
7959
  }, views == null ? void 0 : views.columnHeader), renderColumnHeader ? renderColumnHeader(column) : (/*#__PURE__*/React__default.createElement(Text, Object.assign({
7814
7960
  weight: "semiBold",
7815
7961
  size: "md"
7816
- }, views == null ? void 0 : views.columnTitle), column.title))), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7962
+ }, views == null ? void 0 : views.columnTitle), column.title)), /*#__PURE__*/React__default.createElement(appStudio.View, {
7963
+ onClick: () => onCardCreate == null ? void 0 : onCardCreate({
7964
+ id: "new-card-" + Date.now(),
7965
+ title: 'Nouvelle carte'
7966
+ }, column)
7967
+ }, /*#__PURE__*/React__default.createElement(PlusIcon, {
7968
+ widthHeight: 16
7969
+ }))), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
7817
7970
  gap: 12,
7818
7971
  minHeight: 40,
7819
7972
  onDragOver: event => onColumnDragOver(column.id, event),
7820
7973
  onDrop: event => onColumnDrop(column.id, event),
7821
7974
  opacity: draggedCardId && hoveredColumnId === column.id ? 0.9 : undefined,
7822
7975
  transition: "all 0.15s ease-in-out"
7823
- }, views == null ? void 0 : views.columnBody), column.cards.length === 0 && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7824
- padding: 12,
7825
- borderWidth: "1px",
7826
- borderStyle: "dashed",
7827
- borderColor: "#d0d5dd",
7828
- borderRadius: 8,
7829
- backgroundColor: "rgba(255, 255, 255, 0.6)",
7830
- textAlign: "center",
7831
- color: "#667085",
7832
- fontSize: "14px"
7833
- }, views == null ? void 0 : views.emptyState), renderEmptyState ? renderEmptyState(column) : (/*#__PURE__*/React__default.createElement(Text, {
7834
- size: "sm",
7835
- color: "#667085"
7836
- }, "Drop cards here")))), column.cards.map(card => (/*#__PURE__*/React__default.createElement(appStudio.View, {
7976
+ }, views == null ? void 0 : views.columnBody), column.cards.map(card => (/*#__PURE__*/React__default.createElement(appStudio.View, {
7837
7977
  key: card.id,
7838
7978
  position: "relative"
7839
7979
  }, /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
@@ -7853,7 +7993,35 @@ var KanbanBoardView = _ref => {
7853
7993
  event.stopPropagation();
7854
7994
  onCardDrop(column.id, card.id, event);
7855
7995
  }
7856
- }, 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))))));
7996
+ }, views == null ? void 0 : views.card), /*#__PURE__*/React__default.createElement(appStudio.View, {
7997
+ display: "flex",
7998
+ justifyContent: "space-between",
7999
+ alignItems: "flex-start"
8000
+ }, /*#__PURE__*/React__default.createElement(appStudio.View, {
8001
+ flexGrow: 1
8002
+ }, renderCard ? renderCard(card, column) : renderDefaultCard(card, column)), /*#__PURE__*/React__default.createElement(appStudio.View, {
8003
+ onClick: () => onCardDelete == null ? void 0 : onCardDelete(card, column)
8004
+ }, /*#__PURE__*/React__default.createElement(TrashIcon, {
8005
+ widthHeight: 16
8006
+ }))))))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
8007
+ padding: 12,
8008
+ borderWidth: "1px",
8009
+ borderStyle: "dashed",
8010
+ borderColor: "#d0d5dd",
8011
+ borderRadius: 8,
8012
+ backgroundColor: "rgba(255, 255, 255, 0.6)",
8013
+ textAlign: "center",
8014
+ color: "#667085",
8015
+ fontSize: "14px"
8016
+ }, views == null ? void 0 : views.emptyState, {
8017
+ onClick: () => onCardCreate == null ? void 0 : onCardCreate({
8018
+ id: "new-card-" + Date.now(),
8019
+ title: 'Nouvelle carte'
8020
+ }, column)
8021
+ }), renderEmptyState ? renderEmptyState(column) : (/*#__PURE__*/React__default.createElement(Text, {
8022
+ size: "sm",
8023
+ color: "#667085"
8024
+ }, "Create a new card")))), column.footer && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.columnFooter), column.footer))))));
7857
8025
  };
7858
8026
 
7859
8027
  var KanbanBoardComponent = props => {
@@ -8280,11 +8448,111 @@ var iconButtonStyles = {
8280
8448
  border: 'none'
8281
8449
  };
8282
8450
 
8283
- var ResizeHandle = _ref => {
8451
+ var EventContent = _ref => {
8452
+ var {
8453
+ event,
8454
+ onTitleChange,
8455
+ onDescriptionChange,
8456
+ onEventDelete
8457
+ } = _ref;
8458
+ var [isEditingTitle, setIsEditingTitle] = React.useState(false);
8459
+ var [editedTitle, setEditedTitle] = React.useState(event.title);
8460
+ var [isEditingDescription, setIsEditingDescription] = React.useState(false);
8461
+ var [editedDescription, setEditedDescription] = React.useState(event.description || '');
8462
+ var handleTitleClick = React.useCallback(() => {
8463
+ setIsEditingTitle(true);
8464
+ setEditedTitle(event.title);
8465
+ }, [event.title]);
8466
+ var handleDescriptionClick = React.useCallback(() => {
8467
+ setIsEditingDescription(true);
8468
+ setEditedDescription(event.description || '');
8469
+ }, [event.description]);
8470
+ var handleTitleChange = React.useCallback(e => {
8471
+ setEditedTitle(e.target.value);
8472
+ }, []);
8473
+ var handleDescriptionChange = React.useCallback(e => {
8474
+ setEditedDescription(e.target.value);
8475
+ }, []);
8476
+ var handleTitleBlur = React.useCallback(() => {
8477
+ if (isEditingTitle) {
8478
+ onTitleChange(event, editedTitle);
8479
+ setIsEditingTitle(false);
8480
+ }
8481
+ }, [isEditingTitle, onTitleChange, event, editedTitle]);
8482
+ var handleDescriptionBlur = React.useCallback(() => {
8483
+ if (isEditingDescription) {
8484
+ onDescriptionChange(event, editedDescription);
8485
+ setIsEditingDescription(false);
8486
+ }
8487
+ }, [isEditingDescription, onDescriptionChange, event, editedDescription]);
8488
+ var handleTitleKeyDown = React.useCallback(e => {
8489
+ if (e.key === 'Enter') {
8490
+ handleTitleBlur();
8491
+ }
8492
+ }, [handleTitleBlur]);
8493
+ var handleDescriptionKeyDown = React.useCallback(e => {
8494
+ if (e.key === 'Enter' && !e.shiftKey) {
8495
+ e.preventDefault();
8496
+ handleDescriptionBlur();
8497
+ }
8498
+ }, [handleDescriptionBlur]);
8499
+ return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, {
8500
+ overflow: "hidden",
8501
+ textOverflow: "ellipsis",
8502
+ whiteSpace: "nowrap",
8503
+ width: "100%",
8504
+ justifyContent: "space-between"
8505
+ }, isEditingTitle ? (/*#__PURE__*/React__default.createElement("input", {
8506
+ type: "text",
8507
+ value: editedTitle,
8508
+ onChange: handleTitleChange,
8509
+ onBlur: handleTitleBlur,
8510
+ onKeyDown: handleTitleKeyDown,
8511
+ autoFocus: true,
8512
+ style: {
8513
+ border: '1px solid #d0d5dd',
8514
+ borderRadius: '4px',
8515
+ padding: '2px 4px',
8516
+ fontSize: '11px',
8517
+ fontWeight: '500',
8518
+ width: '100%'
8519
+ }
8520
+ })) : (/*#__PURE__*/React__default.createElement(appStudio.Text, {
8521
+ fontSize: 11,
8522
+ fontWeight: 500,
8523
+ onClick: handleTitleClick
8524
+ }, event.title)), event.description && (isEditingDescription ? (/*#__PURE__*/React__default.createElement("textarea", {
8525
+ value: editedDescription,
8526
+ onChange: handleDescriptionChange,
8527
+ onBlur: handleDescriptionBlur,
8528
+ onKeyDown: handleDescriptionKeyDown,
8529
+ autoFocus: true,
8530
+ style: {
8531
+ border: '1px solid #d0d5dd',
8532
+ borderRadius: '4px',
8533
+ padding: '2px 4px',
8534
+ fontSize: '11px',
8535
+ width: '100%',
8536
+ minHeight: '40px',
8537
+ marginTop: '4px'
8538
+ }
8539
+ })) : (/*#__PURE__*/React__default.createElement(appStudio.Text, {
8540
+ fontSize: 11,
8541
+ color: "color.gray.600",
8542
+ onClick: handleDescriptionClick
8543
+ }, event.description))), /*#__PURE__*/React__default.createElement(appStudio.Center, {
8544
+ onClick: () => onEventDelete(event),
8545
+ cursor: "pointer",
8546
+ marginLeft: 4
8547
+ }, /*#__PURE__*/React__default.createElement(TrashIcon, {
8548
+ widthHeight: 12
8549
+ })));
8550
+ };
8551
+ var ResizeHandle = _ref2 => {
8284
8552
  var {
8285
8553
  direction,
8286
8554
  onMouseDown
8287
- } = _ref;
8555
+ } = _ref2;
8288
8556
  var [isHovered, setIsHovered] = React.useState(false);
8289
8557
  return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
8290
8558
  position: "absolute",
@@ -8309,7 +8577,7 @@ var ResizeHandle = _ref => {
8309
8577
  var MONTH_EVENT_ROW_HEIGHT = 22;
8310
8578
  var MONTH_EVENT_ROW_GAP = 4;
8311
8579
  var MONTH_EVENT_TOP_OFFSET = 32;
8312
- var Calendar = _ref2 => {
8580
+ var Calendar = _ref3 => {
8313
8581
  var {
8314
8582
  initialDate = new Date(),
8315
8583
  initialView = 'month',
@@ -8321,11 +8589,14 @@ var Calendar = _ref2 => {
8321
8589
  onDateChange,
8322
8590
  onViewChange,
8323
8591
  onEventAdd,
8592
+ onEventTitleChange,
8593
+ onEventDescriptionChange,
8594
+ onEventDelete,
8324
8595
  views = {},
8325
8596
  width = '100%',
8326
8597
  maxWidth = 1200,
8327
8598
  weekStartsOn = 0
8328
- } = _ref2;
8599
+ } = _ref3;
8329
8600
  var {
8330
8601
  getColor
8331
8602
  } = appStudio.useTheme();
@@ -8352,6 +8623,31 @@ var Calendar = _ref2 => {
8352
8623
  React__default.useEffect(() => {
8353
8624
  setLocalEvents(events);
8354
8625
  }, [events]);
8626
+ var handleEventTitleChange = React.useCallback((event, newTitle) => {
8627
+ if (onEventTitleChange) {
8628
+ onEventTitleChange(event, newTitle);
8629
+ return;
8630
+ }
8631
+ setLocalEvents(prevEvents => prevEvents.map(ev => ev.id === event.id ? Object.assign({}, ev, {
8632
+ title: newTitle
8633
+ }) : ev));
8634
+ }, [onEventTitleChange]);
8635
+ var handleEventDescriptionChange = React.useCallback((event, newDescription) => {
8636
+ if (onEventDescriptionChange) {
8637
+ onEventDescriptionChange(event, newDescription);
8638
+ return;
8639
+ }
8640
+ setLocalEvents(prevEvents => prevEvents.map(ev => ev.id === event.id ? Object.assign({}, ev, {
8641
+ description: newDescription
8642
+ }) : ev));
8643
+ }, [onEventDescriptionChange]);
8644
+ var handleEventDelete = React.useCallback(event => {
8645
+ if (onEventDelete) {
8646
+ onEventDelete(event);
8647
+ return;
8648
+ }
8649
+ setLocalEvents(prevEvents => prevEvents.filter(ev => ev.id !== event.id));
8650
+ }, [onEventDelete]);
8355
8651
  // Get the month start for current date
8356
8652
  var currentMonth = React.useMemo(() => getFirstDayOfMonth(currentDate), [currentDate]);
8357
8653
  // Generate calendar dates based on view
@@ -8712,12 +9008,12 @@ var Calendar = _ref2 => {
8712
9008
  top: event.segmentRow * (MONTH_EVENT_ROW_HEIGHT + MONTH_EVENT_ROW_GAP) + "px",
8713
9009
  onMouseDown: e => handleEventMouseDown(e, event),
8714
9010
  title: event.title
8715
- }, views.event), /*#__PURE__*/React__default.createElement(appStudio.View, {
8716
- overflow: "hidden",
8717
- textOverflow: "ellipsis",
8718
- whiteSpace: "nowrap",
8719
- width: "100%"
8720
- }, event.title), showLeftHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
9011
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
9012
+ event: event,
9013
+ onTitleChange: handleEventTitleChange,
9014
+ onDescriptionChange: handleEventDescriptionChange,
9015
+ onEventDelete: handleEventDelete
9016
+ }), showLeftHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
8721
9017
  direction: "left",
8722
9018
  onMouseDown: e => handleResizeStart(e, event, 'left')
8723
9019
  })), showRightHandle && (/*#__PURE__*/React__default.createElement(ResizeHandle, {
@@ -8778,12 +9074,12 @@ var Calendar = _ref2 => {
8778
9074
  userSelect: "none",
8779
9075
  onMouseDown: e => handleEventMouseDown(e, event),
8780
9076
  title: event.title
8781
- }, views.event), /*#__PURE__*/React__default.createElement(appStudio.View, {
8782
- overflow: "hidden",
8783
- textOverflow: "ellipsis",
8784
- whiteSpace: "nowrap",
8785
- width: "100%"
8786
- }, event.title), /*#__PURE__*/React__default.createElement(ResizeHandle, {
9077
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
9078
+ event: event,
9079
+ onTitleChange: handleEventTitleChange,
9080
+ onDescriptionChange: handleEventDescriptionChange,
9081
+ onEventDelete: handleEventDelete
9082
+ }), /*#__PURE__*/React__default.createElement(ResizeHandle, {
8787
9083
  direction: "left",
8788
9084
  onMouseDown: e => handleResizeStart(e, event, 'left')
8789
9085
  }), /*#__PURE__*/React__default.createElement(ResizeHandle, {
@@ -8830,7 +9126,7 @@ var Calendar = _ref2 => {
8830
9126
  }, views.timeSlot), dayEvents.filter(event => {
8831
9127
  // Simple check if event starts in this hour
8832
9128
  if (event.start.includes('T')) {
8833
- var eventHour = parseInt(event.start.split('T')[1].split(':')[0]);
9129
+ var eventHour = parseInt(event.start.split('T').split(':'));
8834
9130
  return eventHour === hour;
8835
9131
  }
8836
9132
  return false;
@@ -8843,7 +9139,12 @@ var Calendar = _ref2 => {
8843
9139
  borderLeftColor: colorConfig.border,
8844
9140
  color: colorConfig.text,
8845
9141
  marginBottom: 4
8846
- }, views.event), event.title);
9142
+ }, views.event), /*#__PURE__*/React__default.createElement(EventContent, {
9143
+ event: event,
9144
+ onTitleChange: handleEventTitleChange,
9145
+ onDescriptionChange: handleEventDescriptionChange,
9146
+ onEventDelete: handleEventDelete
9147
+ }));
8847
9148
  })));
8848
9149
  }));
8849
9150
  };
@@ -19535,6 +19836,404 @@ NavigationMenu.Trigger = NavigationMenuTrigger;
19535
19836
  NavigationMenu.Content = NavigationMenuContent;
19536
19837
  NavigationMenu.Link = NavigationMenuLink;
19537
19838
 
19839
+ var _excluded$X = ["value", "max", "color", "backgroundColor", "height", "radius", "views", "themeMode"];
19840
+ var ProgressBarView = _ref => {
19841
+ var {
19842
+ value = 0,
19843
+ max = 100,
19844
+ color = 'theme.primary',
19845
+ backgroundColor = 'color.gray.200',
19846
+ height = 8,
19847
+ radius = 4,
19848
+ views,
19849
+ themeMode: elementMode
19850
+ } = _ref,
19851
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$X);
19852
+ var {
19853
+ getColor,
19854
+ themeMode
19855
+ } = appStudio.useTheme();
19856
+ var currentMode = elementMode ? elementMode : themeMode;
19857
+ var percentage = Math.min(100, Math.max(0, value / max * 100));
19858
+ var trackColor = getColor(backgroundColor, {
19859
+ themeMode: currentMode
19860
+ });
19861
+ var barColor = getColor(color, {
19862
+ themeMode: currentMode
19863
+ });
19864
+ return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
19865
+ role: "progressbar",
19866
+ "aria-valuenow": value,
19867
+ "aria-valuemin": 0,
19868
+ "aria-valuemax": max,
19869
+ width: "100%",
19870
+ height: height,
19871
+ backgroundColor: trackColor,
19872
+ borderRadius: radius,
19873
+ overflow: "hidden"
19874
+ }, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
19875
+ width: percentage + "%",
19876
+ height: "100%",
19877
+ backgroundColor: barColor,
19878
+ borderRadius: radius
19879
+ }, views == null ? void 0 : views.bar)));
19880
+ };
19881
+
19882
+ /**
19883
+ * ProgressBar component displays completion status of a task or process.
19884
+ */
19885
+ var ProgressBarComponent = props => (/*#__PURE__*/React__default.createElement(ProgressBarView, Object.assign({}, props)));
19886
+ var ProgressBar = ProgressBarComponent;
19887
+
19888
+ var getThemes$2 = themeMode => {
19889
+ return {
19890
+ default: {
19891
+ indicator: {
19892
+ backgroundColor: 'color.gray.400'
19893
+ },
19894
+ label: {
19895
+ color: 'color.gray.700'
19896
+ }
19897
+ },
19898
+ info: {
19899
+ indicator: {
19900
+ backgroundColor: 'color.blue.500'
19901
+ },
19902
+ label: {
19903
+ color: 'color.blue.700'
19904
+ }
19905
+ },
19906
+ success: {
19907
+ indicator: {
19908
+ backgroundColor: 'color.green.500'
19909
+ },
19910
+ label: {
19911
+ color: 'color.green.700'
19912
+ }
19913
+ },
19914
+ warning: {
19915
+ indicator: {
19916
+ backgroundColor: 'color.orange.500'
19917
+ },
19918
+ label: {
19919
+ color: 'color.orange.700'
19920
+ }
19921
+ },
19922
+ error: {
19923
+ indicator: {
19924
+ backgroundColor: 'color.red.500'
19925
+ },
19926
+ label: {
19927
+ color: 'color.red.700'
19928
+ }
19929
+ }
19930
+ };
19931
+ };
19932
+
19933
+ var _excluded$Y = ["label", "status", "views", "themeMode"];
19934
+ var StatusIndicatorView = _ref => {
19935
+ var {
19936
+ label,
19937
+ status = 'default',
19938
+ views,
19939
+ themeMode: elementMode
19940
+ } = _ref,
19941
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
19942
+ var {
19943
+ themeMode
19944
+ } = appStudio.useTheme();
19945
+ var themes = getThemes$2();
19946
+ return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
19947
+ alignItems: "center",
19948
+ gap: 8,
19949
+ role: "status-indicator"
19950
+ }, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
19951
+ role: "status-dot",
19952
+ width: "8px",
19953
+ height: "8px",
19954
+ borderRadius: "50%"
19955
+ }, themes[status].indicator, views == null ? void 0 : views.indicator)), label && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
19956
+ role: "status-label",
19957
+ fontSize: "14px",
19958
+ lineHeight: "20px"
19959
+ }, themes[status].label, views == null ? void 0 : views.label), label)));
19960
+ };
19961
+
19962
+ var StatusIndicator = props => (/*#__PURE__*/React__default.createElement(StatusIndicatorView, Object.assign({}, props)));
19963
+
19964
+ var getOKRTheme = mode => {
19965
+ var isDark = mode === 'dark';
19966
+ return {
19967
+ container: {
19968
+ width: '100%',
19969
+ gap: 16
19970
+ },
19971
+ objectiveCard: {
19972
+ backgroundColor: isDark ? 'rgba(15, 23, 42, 0.6)' : 'color.white',
19973
+ borderColor: isDark ? 'rgba(148, 163, 184, 0.24)' : 'color.gray.200',
19974
+ borderWidth: '1px',
19975
+ borderStyle: 'solid',
19976
+ borderRadius: 16,
19977
+ padding: 24,
19978
+ gap: 20
19979
+ },
19980
+ tag: {
19981
+ display: 'inline-flex',
19982
+ alignItems: 'center',
19983
+ padding: '4px 10px',
19984
+ borderRadius: 999,
19985
+ backgroundColor: isDark ? 'rgba(148, 163, 184, 0.16)' : 'color.gray.100'
19986
+ },
19987
+ keyResultItem: {
19988
+ padding: 16,
19989
+ borderRadius: 12,
19990
+ borderWidth: '1px',
19991
+ borderStyle: 'solid',
19992
+ borderColor: isDark ? 'rgba(148, 163, 184, 0.18)' : 'color.gray.200',
19993
+ backgroundColor: isDark ? 'rgba(15, 23, 42, 0.35)' : 'color.gray.50',
19994
+ gap: 12
19995
+ },
19996
+ divider: {
19997
+ height: 1,
19998
+ backgroundColor: isDark ? 'rgba(148, 163, 184, 0.24)' : 'color.gray.200',
19999
+ width: '100%'
20000
+ }
20001
+ };
20002
+ };
20003
+ var STATUS_METADATA = {
20004
+ notStarted: {
20005
+ indicator: 'info',
20006
+ label: 'Not started'
20007
+ },
20008
+ onTrack: {
20009
+ indicator: 'success',
20010
+ label: 'On track'
20011
+ },
20012
+ atRisk: {
20013
+ indicator: 'warning',
20014
+ label: 'At risk'
20015
+ },
20016
+ offTrack: {
20017
+ indicator: 'error',
20018
+ label: 'Off track'
20019
+ },
20020
+ achieved: {
20021
+ indicator: 'success',
20022
+ label: 'Achieved'
20023
+ }
20024
+ };
20025
+ var deriveStatusFromProgress = progress => {
20026
+ if (progress >= 100) {
20027
+ return 'achieved';
20028
+ }
20029
+ if (progress >= 70) {
20030
+ return 'onTrack';
20031
+ }
20032
+ if (progress >= 40) {
20033
+ return 'atRisk';
20034
+ }
20035
+ if (progress > 0) {
20036
+ return 'offTrack';
20037
+ }
20038
+ return 'notStarted';
20039
+ };
20040
+ var clampProgress = value => {
20041
+ if (typeof value !== 'number' || Number.isNaN(value)) {
20042
+ return 0;
20043
+ }
20044
+ return Math.max(0, Math.min(100, Math.round(value)));
20045
+ };
20046
+
20047
+ var formatPercentage = value => value + "%";
20048
+ var formatConfidence = confidence => {
20049
+ if (!confidence) {
20050
+ return undefined;
20051
+ }
20052
+ return confidence.charAt(0).toUpperCase() + confidence.slice(1);
20053
+ };
20054
+ var getObjectiveProgress = objective => {
20055
+ if (typeof objective.progress === 'number') {
20056
+ return clampProgress(objective.progress);
20057
+ }
20058
+ if (!objective.keyResults.length) {
20059
+ return 0;
20060
+ }
20061
+ var total = objective.keyResults.reduce((acc, keyResult) => {
20062
+ var _keyResult$progress;
20063
+ return acc + ((_keyResult$progress = keyResult.progress) != null ? _keyResult$progress : 0);
20064
+ }, 0);
20065
+ return clampProgress(total / objective.keyResults.length);
20066
+ };
20067
+ var renderStatusIndicator = (status, themeMode, views) => {
20068
+ var metadata = STATUS_METADATA[status];
20069
+ return /*#__PURE__*/React__default.createElement(StatusIndicator, {
20070
+ themeMode: themeMode,
20071
+ status: metadata.indicator,
20072
+ label: metadata.label,
20073
+ views: views
20074
+ });
20075
+ };
20076
+ var OKRView = _ref => {
20077
+ var {
20078
+ objectives,
20079
+ themeMode: elementMode,
20080
+ views,
20081
+ onKeyResultClick,
20082
+ renderObjectiveFooter,
20083
+ renderKeyResultFooter
20084
+ } = _ref;
20085
+ var {
20086
+ themeMode
20087
+ } = appStudio.useTheme();
20088
+ var currentMode = elementMode || themeMode || 'light';
20089
+ var theme = getOKRTheme(currentMode);
20090
+ var secondaryTextColor = currentMode === 'dark' ? 'color.gray.200' : 'color.gray.600';
20091
+ var subtleTextColor = currentMode === 'dark' ? 'color.gray.300' : 'color.gray.500';
20092
+ var tagTextColor = currentMode === 'dark' ? 'color.gray.100' : 'color.gray.700';
20093
+ return /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({}, theme.container, views == null ? void 0 : views.container), objectives.map(objective => {
20094
+ var _objective$status, _objective$tags, _views$objectiveProgr, _views$objectiveProgr2, _views$objectiveProgr3, _views$objectiveProgr4;
20095
+ var objectiveProgress = getObjectiveProgress(objective);
20096
+ var objectiveStatus = (_objective$status = objective.status) != null ? _objective$status : deriveStatusFromProgress(objectiveProgress);
20097
+ var objectiveFooter = renderObjectiveFooter == null ? void 0 : renderObjectiveFooter(objective);
20098
+ return /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
20099
+ key: objective.id
20100
+ }, theme.objectiveCard, views == null ? void 0 : views.objectiveCard), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20101
+ justifyContent: "space-between",
20102
+ alignItems: "flex-start",
20103
+ flexWrap: "wrap",
20104
+ gap: 16
20105
+ }, views == null ? void 0 : views.objectiveHeader), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
20106
+ gap: 10,
20107
+ minWidth: 240
20108
+ }, /*#__PURE__*/React__default.createElement(Text, Object.assign({
20109
+ size: "lg",
20110
+ weight: "semiBold"
20111
+ }, views == null ? void 0 : views.objectiveTitle), objective.title), objective.description && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
20112
+ size: "sm",
20113
+ color: secondaryTextColor
20114
+ }, views == null ? void 0 : views.objectiveDescription), objective.description)), (_objective$tags = objective.tags) != null && _objective$tags.length ? (/*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20115
+ gap: 8,
20116
+ flexWrap: "wrap"
20117
+ }, views == null ? void 0 : views.objectiveTags), objective.tags.map(tag => (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
20118
+ key: tag
20119
+ }, theme.tag, views == null ? void 0 : views.tag), /*#__PURE__*/React__default.createElement(Text, Object.assign({
20120
+ size: "xs",
20121
+ weight: "medium",
20122
+ color: tagTextColor
20123
+ }, views == null ? void 0 : views.tagText), tag)))))) : null), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
20124
+ gap: 8,
20125
+ alignItems: "flex-end",
20126
+ minWidth: 160
20127
+ }, views == null ? void 0 : views.objectiveMeta), objective.owner && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
20128
+ size: "sm",
20129
+ color: secondaryTextColor
20130
+ }, views == null ? void 0 : views.objectiveOwner), "Owner: ", objective.owner)), objective.timeframe && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
20131
+ size: "sm",
20132
+ color: subtleTextColor
20133
+ }, views == null ? void 0 : views.objectiveTimeframe), objective.timeframe)), renderStatusIndicator(objectiveStatus, currentMode, views == null ? void 0 : views.objectiveStatus))), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
20134
+ gap: 8
20135
+ }, views == null ? void 0 : views.objectiveProgressSection), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, {
20136
+ justifyContent: "space-between",
20137
+ alignItems: "center"
20138
+ }, /*#__PURE__*/React__default.createElement(Text, Object.assign({
20139
+ size: "sm",
20140
+ color: secondaryTextColor
20141
+ }, views == null ? void 0 : views.objectiveProgressLabel), "Progress"), /*#__PURE__*/React__default.createElement(Text, Object.assign({
20142
+ size: "sm",
20143
+ weight: "semiBold"
20144
+ }, views == null ? void 0 : views.objectiveProgressValue), formatPercentage(objectiveProgress))), /*#__PURE__*/React__default.createElement(ProgressBar, {
20145
+ value: objectiveProgress,
20146
+ max: 100,
20147
+ views: {
20148
+ container: Object.assign({
20149
+ width: '100%'
20150
+ }, (_views$objectiveProgr = views == null || (_views$objectiveProgr2 = views.objectiveProgressBar) == null ? void 0 : _views$objectiveProgr2.container) != null ? _views$objectiveProgr : {}),
20151
+ bar: Object.assign({}, (_views$objectiveProgr3 = views == null || (_views$objectiveProgr4 = views.objectiveProgressBar) == null ? void 0 : _views$objectiveProgr4.bar) != null ? _views$objectiveProgr3 : {})
20152
+ }
20153
+ })), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
20154
+ gap: 16
20155
+ }, views == null ? void 0 : views.keyResultList), objective.keyResults.map((keyResult, index) => {
20156
+ var _keyResult$status, _keyResult$tags, _views$keyResultProgr, _views$keyResultProgr2, _views$keyResultProgr3, _views$keyResultProgr4;
20157
+ var progress = clampProgress(keyResult.progress);
20158
+ var keyResultStatus = (_keyResult$status = keyResult.status) != null ? _keyResult$status : deriveStatusFromProgress(progress);
20159
+ var keyResultFooter = renderKeyResultFooter == null ? void 0 : renderKeyResultFooter(keyResult, objective);
20160
+ var showDivider = index < objective.keyResults.length - 1;
20161
+ return /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
20162
+ key: keyResult.id,
20163
+ gap: 12
20164
+ }, /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
20165
+ role: onKeyResultClick ? 'button' : undefined,
20166
+ cursor: onKeyResultClick ? 'pointer' : undefined,
20167
+ onClick: onKeyResultClick ? () => onKeyResultClick(keyResult, objective) : undefined
20168
+ }, theme.keyResultItem, views == null ? void 0 : views.keyResultItem), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20169
+ justifyContent: "space-between",
20170
+ alignItems: "flex-start",
20171
+ flexWrap: "wrap",
20172
+ gap: 16
20173
+ }, views == null ? void 0 : views.keyResultHeader), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
20174
+ gap: 8,
20175
+ minWidth: 220
20176
+ }, /*#__PURE__*/React__default.createElement(Text, Object.assign({
20177
+ size: "md",
20178
+ weight: "medium"
20179
+ }, views == null ? void 0 : views.keyResultTitle), keyResult.title), keyResult.description && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
20180
+ size: "sm",
20181
+ color: secondaryTextColor
20182
+ }, views == null ? void 0 : views.keyResultDescription), keyResult.description)), (keyResult.metric || keyResult.target || keyResult.current || keyResult.confidence || keyResult.lastUpdated) && (/*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20183
+ gap: 12,
20184
+ flexWrap: "wrap"
20185
+ }, views == null ? void 0 : views.keyResultMeta), keyResult.metric && (/*#__PURE__*/React__default.createElement(Text, {
20186
+ size: "xs",
20187
+ color: secondaryTextColor
20188
+ }, "Metric: ", keyResult.metric)), keyResult.current && (/*#__PURE__*/React__default.createElement(Text, {
20189
+ size: "xs",
20190
+ color: secondaryTextColor
20191
+ }, "Current: ", keyResult.current)), keyResult.target && (/*#__PURE__*/React__default.createElement(Text, {
20192
+ size: "xs",
20193
+ color: secondaryTextColor
20194
+ }, "Target: ", keyResult.target)), keyResult.confidence && (/*#__PURE__*/React__default.createElement(Text, {
20195
+ size: "xs",
20196
+ color: secondaryTextColor
20197
+ }, "Confidence:", ' ', formatConfidence(keyResult.confidence))), keyResult.lastUpdated && (/*#__PURE__*/React__default.createElement(Text, {
20198
+ size: "xs",
20199
+ color: subtleTextColor
20200
+ }, "Updated: ", keyResult.lastUpdated)))), (_keyResult$tags = keyResult.tags) != null && _keyResult$tags.length ? (/*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20201
+ gap: 8,
20202
+ flexWrap: "wrap"
20203
+ }, views == null ? void 0 : views.keyResultTags), keyResult.tags.map(tag => (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
20204
+ key: tag
20205
+ }, theme.tag, views == null ? void 0 : views.keyResultTag), /*#__PURE__*/React__default.createElement(Text, Object.assign({
20206
+ size: "xs",
20207
+ weight: "medium",
20208
+ color: tagTextColor
20209
+ }, views == null ? void 0 : views.keyResultTagText), tag)))))) : null), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
20210
+ gap: 8,
20211
+ alignItems: "flex-end"
20212
+ }, keyResult.owner && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
20213
+ size: "xs",
20214
+ color: secondaryTextColor
20215
+ }, views == null ? void 0 : views.keyResultOwner), "Owner: ", keyResult.owner)), renderStatusIndicator(keyResultStatus, currentMode, views == null ? void 0 : views.keyResultStatus))), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
20216
+ alignItems: "center",
20217
+ gap: 12
20218
+ }, views == null ? void 0 : views.keyResultProgressSection), /*#__PURE__*/React__default.createElement(ProgressBar, {
20219
+ value: progress,
20220
+ max: 100,
20221
+ views: {
20222
+ container: Object.assign({
20223
+ width: '100%'
20224
+ }, (_views$keyResultProgr = views == null || (_views$keyResultProgr2 = views.keyResultProgressBar) == null ? void 0 : _views$keyResultProgr2.container) != null ? _views$keyResultProgr : {}),
20225
+ bar: Object.assign({}, (_views$keyResultProgr3 = views == null || (_views$keyResultProgr4 = views.keyResultProgressBar) == null ? void 0 : _views$keyResultProgr4.bar) != null ? _views$keyResultProgr3 : {})
20226
+ }
20227
+ }), /*#__PURE__*/React__default.createElement(Text, Object.assign({
20228
+ size: "xs",
20229
+ weight: "semiBold"
20230
+ }, views == null ? void 0 : views.keyResultProgressValue), formatPercentage(progress))), keyResultFooter ? (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.footer), keyResultFooter)) : null), showDivider ? /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, theme.divider)) : null);
20231
+ })), objectiveFooter ? (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.footer), objectiveFooter)) : null);
20232
+ }));
20233
+ };
20234
+
20235
+ var OKR = props => /*#__PURE__*/React__default.createElement(OKRView, Object.assign({}, props));
20236
+
19538
20237
  var defaultStyles = {};
19539
20238
  // Create a context that includes both styles and the onClick function
19540
20239
  var TableContext = /*#__PURE__*/React.createContext({
@@ -20317,7 +21016,7 @@ var HighlightStyles = {
20317
21016
  })
20318
21017
  };
20319
21018
 
20320
- var _excluded$X = ["text", "typingSpeed", "pauseTime", "onComplete", "showCursor", "cursorColor", "textStyle", "as"];
21019
+ var _excluded$Z = ["text", "typingSpeed", "pauseTime", "onComplete", "showCursor", "cursorColor", "textStyle", "as"];
20321
21020
  /**
20322
21021
  * A component that creates a typewriter effect for text
20323
21022
  */
@@ -20331,7 +21030,7 @@ var TypewriterEffect = _ref => {
20331
21030
  cursorColor = 'currentColor',
20332
21031
  textStyle
20333
21032
  } = _ref,
20334
- props = _objectWithoutPropertiesLoose(_ref, _excluded$X);
21033
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
20335
21034
  // Convert text to array if it's a string
20336
21035
  var textArray = Array.isArray(text) ? text : [text];
20337
21036
  // State for the currently displayed text
@@ -20398,7 +21097,7 @@ var TypewriterEffect = _ref => {
20398
21097
  }))))));
20399
21098
  };
20400
21099
 
20401
- var _excluded$Y = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "responsive", "centered", "views", "highlightAnimate", "animate", "animationLoop", "highlightAnimationLoop", "highlightTypewriter", "highlightTypewriterDuration"];
21100
+ var _excluded$_ = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "responsive", "centered", "views", "highlightAnimate", "animate", "animationLoop", "highlightAnimationLoop", "highlightTypewriter", "highlightTypewriterDuration"];
20402
21101
  function escapeRegExp(string) {
20403
21102
  return string.replace(/[.*+?^${}()|[\\]\\/g, '\\$&');
20404
21103
  }
@@ -20420,7 +21119,7 @@ var TitleView = _ref => {
20420
21119
  highlightTypewriter: propHighlightTypewriter = false,
20421
21120
  highlightTypewriterDuration = 3000
20422
21121
  } = _ref,
20423
- props = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
21122
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
20424
21123
  var {
20425
21124
  ref,
20426
21125
  inView
@@ -20695,7 +21394,7 @@ var getToggleVariants = (color, isLight) => ({
20695
21394
  }
20696
21395
  });
20697
21396
 
20698
- var _excluded$Z = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views", "backgroundColor", "color", "themeMode"];
21397
+ var _excluded$$ = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views", "backgroundColor", "color", "themeMode"];
20699
21398
  var ToggleView = _ref => {
20700
21399
  var _ref2;
20701
21400
  var {
@@ -20715,7 +21414,7 @@ var ToggleView = _ref => {
20715
21414
  // 2nd candidate for main color
20716
21415
  themeMode: elementMode
20717
21416
  } = _ref,
20718
- props = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
21417
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
20719
21418
  /* theme helpers */
20720
21419
  var {
20721
21420
  getColor,
@@ -20759,7 +21458,7 @@ var ToggleView = _ref => {
20759
21458
  }, props, views == null ? void 0 : views.container), children);
20760
21459
  };
20761
21460
 
20762
- var _excluded$_ = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
21461
+ var _excluded$10 = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
20763
21462
  // Destructuring properties from ToggleProps to be used within the ToggleComponent.
20764
21463
  var ToggleComponent = _ref => {
20765
21464
  var {
@@ -20771,7 +21470,7 @@ var ToggleComponent = _ref => {
20771
21470
  isToggled = false,
20772
21471
  onToggle
20773
21472
  } = _ref,
20774
- props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
21473
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$10);
20775
21474
  // Initializing toggle state and set state functions using the custom hook useToggleState.
20776
21475
  var {
20777
21476
  isHovered,
@@ -21106,7 +21805,7 @@ var DropdownMenuItemStates = {
21106
21805
  }
21107
21806
  };
21108
21807
 
21109
- var _excluded$$ = ["children", "views"],
21808
+ var _excluded$11 = ["children", "views"],
21110
21809
  _excluded2$f = ["items", "side", "align", "views"],
21111
21810
  _excluded3$9 = ["item", "views"],
21112
21811
  _excluded4$8 = ["views"],
@@ -21147,7 +21846,7 @@ var DropdownMenuTrigger = _ref2 => {
21147
21846
  children,
21148
21847
  views
21149
21848
  } = _ref2,
21150
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$$);
21849
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$11);
21151
21850
  var {
21152
21851
  isOpen,
21153
21852
  setIsOpen,
@@ -21400,7 +22099,7 @@ var DropdownMenuView = _ref6 => {
21400
22099
  }));
21401
22100
  };
21402
22101
 
21403
- var _excluded$10 = ["trigger", "items", "size", "variant", "side", "align", "defaultOpen", "views"];
22102
+ var _excluded$12 = ["trigger", "items", "size", "variant", "side", "align", "defaultOpen", "views"];
21404
22103
  /**
21405
22104
  * DropdownMenu component for displaying a menu when clicking on a trigger element.
21406
22105
  */
@@ -21415,7 +22114,7 @@ var DropdownMenuComponent = _ref => {
21415
22114
  defaultOpen = false,
21416
22115
  views
21417
22116
  } = _ref,
21418
- props = _objectWithoutPropertiesLoose(_ref, _excluded$10);
22117
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$12);
21419
22118
  var {
21420
22119
  isOpen,
21421
22120
  setIsOpen,
@@ -21829,7 +22528,7 @@ var DefaultColorPalette$1 = [
21829
22528
  category: 'neutral'
21830
22529
  }];
21831
22530
 
21832
- var _excluded$11 = ["id", "name", "label", "placeholder", "helperText", "views", "size", "shape", "variant", "error", "isDisabled", "isReadOnly", "predefinedColors", "showCustomInput", "showRecentColors", "isOpen", "selectedColor", "recentColors", "customColor", "handleToggle", "handleColorSelect", "handleCustomColorChange", "handleCustomColorSubmit", "triggerRef", "dropdownRef"];
22531
+ var _excluded$13 = ["id", "name", "label", "placeholder", "helperText", "views", "size", "shape", "variant", "error", "isDisabled", "isReadOnly", "predefinedColors", "showCustomInput", "showRecentColors", "isOpen", "selectedColor", "recentColors", "customColor", "handleToggle", "handleColorSelect", "handleCustomColorChange", "handleCustomColorSubmit", "triggerRef", "dropdownRef"];
21833
22532
  var ColorPickerView = _ref => {
21834
22533
  var {
21835
22534
  // Basic props
@@ -21864,7 +22563,7 @@ var ColorPickerView = _ref => {
21864
22563
  dropdownRef
21865
22564
  // Other props
21866
22565
  } = _ref,
21867
- props = _objectWithoutPropertiesLoose(_ref, _excluded$11);
22566
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$13);
21868
22567
  var {
21869
22568
  getColor
21870
22569
  } = appStudio.useTheme();
@@ -24194,7 +24893,7 @@ var useEmojiPickerState = props => {
24194
24893
  };
24195
24894
  };
24196
24895
 
24197
- var _excluded$12 = ["id", "name", "label", "placeholder", "helperText", "views", "size", "shape", "variant", "error", "isDisabled", "isReadOnly", "showSearch", "showCategories", "showRecentEmojis", "enabledCategories", "isOpen", "selectedEmoji", "recentEmojis", "searchQuery", "activeCategory", "filteredEmojis", "handleToggle", "handleEmojiSelect", "handleSearchChange", "handleCategoryChange", "triggerRef", "dropdownRef"];
24896
+ var _excluded$14 = ["id", "name", "label", "placeholder", "helperText", "views", "size", "shape", "variant", "error", "isDisabled", "isReadOnly", "showSearch", "showCategories", "showRecentEmojis", "enabledCategories", "isOpen", "selectedEmoji", "recentEmojis", "searchQuery", "activeCategory", "filteredEmojis", "handleToggle", "handleEmojiSelect", "handleSearchChange", "handleCategoryChange", "triggerRef", "dropdownRef"];
24198
24897
  var EmojiPickerView = _ref => {
24199
24898
  var {
24200
24899
  // Basic props
@@ -24232,7 +24931,7 @@ var EmojiPickerView = _ref => {
24232
24931
  dropdownRef
24233
24932
  // Other props
24234
24933
  } = _ref,
24235
- props = _objectWithoutPropertiesLoose(_ref, _excluded$12);
24934
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$14);
24236
24935
  var {
24237
24936
  getColor
24238
24937
  } = appStudio.useTheme();
@@ -24421,7 +25120,7 @@ var MenubarItemStates = {
24421
25120
  }
24422
25121
  };
24423
25122
 
24424
- var _excluded$13 = ["children", "orientation", "size", "variant", "views"];
25123
+ var _excluded$15 = ["children", "orientation", "size", "variant", "views"];
24425
25124
  // Create context for the Menubar
24426
25125
  var MenubarContext = /*#__PURE__*/React.createContext({
24427
25126
  activeMenuId: null,
@@ -24458,7 +25157,7 @@ var MenubarRoot = _ref2 => {
24458
25157
  variant = 'default',
24459
25158
  views
24460
25159
  } = _ref2,
24461
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$13);
25160
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$15);
24462
25161
  var Container = orientation === 'horizontal' ? appStudio.Horizontal : appStudio.Vertical;
24463
25162
  return /*#__PURE__*/React__default.createElement(Container, Object.assign({
24464
25163
  role: "menubar",
@@ -24778,7 +25477,7 @@ var MenubarView = _ref8 => {
24778
25477
  })))))));
24779
25478
  };
24780
25479
 
24781
- var _excluded$14 = ["items", "orientation", "size", "variant", "defaultActiveMenuId", "defaultOpenMenuId", "views"];
25480
+ var _excluded$16 = ["items", "orientation", "size", "variant", "defaultActiveMenuId", "defaultOpenMenuId", "views"];
24782
25481
  /**
24783
25482
  * Menubar component for creating horizontal or vertical menu bars with dropdown menus.
24784
25483
  */
@@ -24792,7 +25491,7 @@ var MenubarComponent = _ref => {
24792
25491
  defaultOpenMenuId = null,
24793
25492
  views
24794
25493
  } = _ref,
24795
- props = _objectWithoutPropertiesLoose(_ref, _excluded$14);
25494
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$16);
24796
25495
  var {
24797
25496
  activeMenuId,
24798
25497
  setActiveMenuId,
@@ -24974,7 +25673,7 @@ var DisabledButtonStyles = {
24974
25673
  }
24975
25674
  };
24976
25675
 
24977
- var _excluded$15 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "visiblePageNumbers", "views"];
25676
+ var _excluded$17 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "visiblePageNumbers", "views"];
24978
25677
  var PaginationView = _ref => {
24979
25678
  var {
24980
25679
  currentPage,
@@ -25005,7 +25704,7 @@ var PaginationView = _ref => {
25005
25704
  visiblePageNumbers,
25006
25705
  views
25007
25706
  } = _ref,
25008
- props = _objectWithoutPropertiesLoose(_ref, _excluded$15);
25707
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$17);
25009
25708
  var handlePageChange = page => {
25010
25709
  if (page < 1 || page > totalPages || page === currentPage) {
25011
25710
  return;
@@ -25124,7 +25823,7 @@ var PaginationView = _ref => {
25124
25823
  }, option.label))))));
25125
25824
  };
25126
25825
 
25127
- var _excluded$16 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "views"];
25826
+ var _excluded$18 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "views"];
25128
25827
  /**
25129
25828
  * Pagination component for navigating through pages of content.
25130
25829
  */
@@ -25145,7 +25844,7 @@ var PaginationComponent = _ref => {
25145
25844
  shape = 'rounded',
25146
25845
  views
25147
25846
  } = _ref,
25148
- props = _objectWithoutPropertiesLoose(_ref, _excluded$16);
25847
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$18);
25149
25848
  var {
25150
25849
  visiblePageNumbers
25151
25850
  } = usePaginationState(currentPage, totalPages, maxPageButtons);
@@ -25169,55 +25868,6 @@ var PaginationComponent = _ref => {
25169
25868
  };
25170
25869
  var Pagination = PaginationComponent;
25171
25870
 
25172
- var _excluded$17 = ["value", "max", "color", "backgroundColor", "height", "radius", "views", "themeMode"];
25173
- var ProgressBarView = _ref => {
25174
- var {
25175
- value = 0,
25176
- max = 100,
25177
- color = 'theme.primary',
25178
- backgroundColor = 'color.gray.200',
25179
- height = 8,
25180
- radius = 4,
25181
- views,
25182
- themeMode: elementMode
25183
- } = _ref,
25184
- props = _objectWithoutPropertiesLoose(_ref, _excluded$17);
25185
- var {
25186
- getColor,
25187
- themeMode
25188
- } = appStudio.useTheme();
25189
- var currentMode = elementMode ? elementMode : themeMode;
25190
- var percentage = Math.min(100, Math.max(0, value / max * 100));
25191
- var trackColor = getColor(backgroundColor, {
25192
- themeMode: currentMode
25193
- });
25194
- var barColor = getColor(color, {
25195
- themeMode: currentMode
25196
- });
25197
- return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
25198
- role: "progressbar",
25199
- "aria-valuenow": value,
25200
- "aria-valuemin": 0,
25201
- "aria-valuemax": max,
25202
- width: "100%",
25203
- height: height,
25204
- backgroundColor: trackColor,
25205
- borderRadius: radius,
25206
- overflow: "hidden"
25207
- }, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
25208
- width: percentage + "%",
25209
- height: "100%",
25210
- backgroundColor: barColor,
25211
- borderRadius: radius
25212
- }, views == null ? void 0 : views.bar)));
25213
- };
25214
-
25215
- /**
25216
- * ProgressBar component displays completion status of a task or process.
25217
- */
25218
- var ProgressBarComponent = props => (/*#__PURE__*/React__default.createElement(ProgressBarView, Object.assign({}, props)));
25219
- var ProgressBar = ProgressBarComponent;
25220
-
25221
25871
  /**
25222
25872
  * Separator Styles
25223
25873
  *
@@ -25271,7 +25921,7 @@ var DefaultSeparatorStyles = {
25271
25921
  }
25272
25922
  };
25273
25923
 
25274
- var _excluded$18 = ["orientation", "variant", "thickness", "color", "spacing", "label", "decorative", "views", "themeMode"];
25924
+ var _excluded$19 = ["orientation", "variant", "thickness", "color", "spacing", "label", "decorative", "views", "themeMode"];
25275
25925
  var SeparatorView = _ref => {
25276
25926
  var {
25277
25927
  orientation = 'horizontal',
@@ -25283,7 +25933,7 @@ var SeparatorView = _ref => {
25283
25933
  decorative = false,
25284
25934
  views
25285
25935
  } = _ref,
25286
- props = _objectWithoutPropertiesLoose(_ref, _excluded$18);
25936
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$19);
25287
25937
  // Access theme if needed for future enhancements
25288
25938
  var {
25289
25939
  themeMode
@@ -25351,7 +26001,7 @@ var SeparatorComponent = props => {
25351
26001
  var Separator = SeparatorComponent;
25352
26002
  var Divider = SeparatorComponent;
25353
26003
 
25354
- var _excluded$19 = ["isSupported", "isSharing", "onShare", "label", "children", "icon", "size", "isDisabled", "isLoading", "iconPosition", "disableWhenUnsupported"];
26004
+ var _excluded$1a = ["isSupported", "isSharing", "onShare", "label", "children", "icon", "size", "isDisabled", "isLoading", "iconPosition", "disableWhenUnsupported"];
25355
26005
  var ICON_SIZE_MAP = {
25356
26006
  xs: 12,
25357
26007
  sm: 14,
@@ -25374,7 +26024,7 @@ var ShareButtonView = _ref => {
25374
26024
  iconPosition,
25375
26025
  disableWhenUnsupported = true
25376
26026
  } = _ref,
25377
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$19);
26027
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1a);
25378
26028
  var resolvedSize = size != null ? size : 'md';
25379
26029
  var resolvedIcon = icon != null ? icon : (/*#__PURE__*/React__default.createElement(ShareIcon, {
25380
26030
  widthHeight: ICON_SIZE_MAP[resolvedSize],
@@ -25476,14 +26126,14 @@ var useShareButton = props => {
25476
26126
  };
25477
26127
  };
25478
26128
 
25479
- var _excluded$1a = ["shareData", "onShareStart", "onShareSuccess", "onShareCancel", "onShareError", "onUnsupported", "onClick"];
26129
+ var _excluded$1b = ["shareData", "onShareStart", "onShareSuccess", "onShareCancel", "onShareError", "onUnsupported", "onClick"];
25480
26130
  var ShareButtonComponent = props => {
25481
26131
  var {
25482
26132
  isSupported,
25483
26133
  isSharing,
25484
26134
  handleShare
25485
26135
  } = useShareButton(props);
25486
- var viewProps = _objectWithoutPropertiesLoose(props, _excluded$1a);
26136
+ var viewProps = _objectWithoutPropertiesLoose(props, _excluded$1b);
25487
26137
  return /*#__PURE__*/React__default.createElement(ShareButtonView, Object.assign({}, viewProps, {
25488
26138
  isSupported: isSupported,
25489
26139
  isSharing: isSharing,
@@ -25492,82 +26142,6 @@ var ShareButtonComponent = props => {
25492
26142
  };
25493
26143
  var ShareButton = ShareButtonComponent;
25494
26144
 
25495
- var getThemes$2 = themeMode => {
25496
- return {
25497
- default: {
25498
- indicator: {
25499
- backgroundColor: 'color.gray.400'
25500
- },
25501
- label: {
25502
- color: 'color.gray.700'
25503
- }
25504
- },
25505
- info: {
25506
- indicator: {
25507
- backgroundColor: 'color.blue.500'
25508
- },
25509
- label: {
25510
- color: 'color.blue.700'
25511
- }
25512
- },
25513
- success: {
25514
- indicator: {
25515
- backgroundColor: 'color.green.500'
25516
- },
25517
- label: {
25518
- color: 'color.green.700'
25519
- }
25520
- },
25521
- warning: {
25522
- indicator: {
25523
- backgroundColor: 'color.orange.500'
25524
- },
25525
- label: {
25526
- color: 'color.orange.700'
25527
- }
25528
- },
25529
- error: {
25530
- indicator: {
25531
- backgroundColor: 'color.red.500'
25532
- },
25533
- label: {
25534
- color: 'color.red.700'
25535
- }
25536
- }
25537
- };
25538
- };
25539
-
25540
- var _excluded$1b = ["label", "status", "views", "themeMode"];
25541
- var StatusIndicatorView = _ref => {
25542
- var {
25543
- label,
25544
- status = 'default',
25545
- views,
25546
- themeMode: elementMode
25547
- } = _ref,
25548
- props = _objectWithoutPropertiesLoose(_ref, _excluded$1b);
25549
- var {
25550
- themeMode
25551
- } = appStudio.useTheme();
25552
- var themes = getThemes$2();
25553
- return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
25554
- alignItems: "center",
25555
- gap: 8,
25556
- role: "status-indicator"
25557
- }, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
25558
- role: "status-dot",
25559
- width: "8px",
25560
- height: "8px",
25561
- borderRadius: "50%"
25562
- }, themes[status].indicator, views == null ? void 0 : views.indicator)), label && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
25563
- role: "status-label",
25564
- fontSize: "14px",
25565
- lineHeight: "20px"
25566
- }, themes[status].label, views == null ? void 0 : views.label), label)));
25567
- };
25568
-
25569
- var StatusIndicator = props => (/*#__PURE__*/React__default.createElement(StatusIndicatorView, Object.assign({}, props)));
25570
-
25571
26145
  var useSidebarState = function useSidebarState(defaultExpanded, expanded, onExpandedChange, breakpoint) {
25572
26146
  if (defaultExpanded === void 0) {
25573
26147
  defaultExpanded = true;
@@ -37313,6 +37887,7 @@ exports.Modal = Modal;
37313
37887
  exports.MoonIcon = MoonIcon;
37314
37888
  exports.NavigationMenu = NavigationMenu;
37315
37889
  exports.NotificationIcon = NotificationIcon;
37890
+ exports.OKR = OKR;
37316
37891
  exports.OTPInput = OTPInput;
37317
37892
  exports.OpenEyeIcon = OpenEyeIcon;
37318
37893
  exports.Pagination = Pagination;