@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.
- package/dist/components/Calendar/Calendar/Calendar.props.d.ts +8 -0
- package/dist/components/KanbanBoard/KanbanBoard/KanbanBoard.props.d.ts +5 -0
- package/dist/components/KanbanBoard/KanbanBoard/KanbanBoard.state.d.ts +7 -3
- package/dist/components/OKR/OKR/OKR.props.d.ts +72 -0
- package/dist/components/OKR/OKR/OKR.style.d.ts +19 -0
- package/dist/components/OKR/OKR/OKR.view.d.ts +4 -0
- package/dist/components/OKR/OKR.d.ts +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/pages/okr.page.d.ts +3 -0
- package/dist/web.cjs.development.js +774 -199
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +774 -200
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +774 -199
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/docs/README.md +2 -1
- package/docs/components/Calendar.mdx +3 -0
- package/docs/components/Flow.mdx +1 -0
- package/docs/components/KanbanBoard.mdx +4 -0
- package/docs/components/OKR.mdx +475 -0
- package/docs/components/Title.mdx +1 -0
- package/docs/components/Tree.mdx +1 -0
- package/docs/components.md +178 -0
- package/package.json +1 -1
- package/docs/api-reference/README.md +0 -103
- package/docs/api-reference/data-display/flow.md +0 -220
- package/docs/api-reference/data-display/tree.md +0 -210
- package/docs/api-reference/form/chat-input.md +0 -206
- package/docs/api-reference/utility/button.md +0 -145
- package/docs/api-reference/utility/title.md +0 -301
|
@@ -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
|
|
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(
|
|
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
|
-
|
|
7750
|
-
}, card.
|
|
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))
|
|
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.
|
|
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),
|
|
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
|
|
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
|
-
} =
|
|
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 =
|
|
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
|
-
} =
|
|
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(
|
|
8674
|
-
|
|
8675
|
-
|
|
8676
|
-
|
|
8677
|
-
|
|
8678
|
-
}
|
|
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(
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
}
|
|
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')
|
|
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),
|
|
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
|
};
|
|
@@ -19493,6 +19794,404 @@
|
|
|
19493
19794
|
NavigationMenu.Content = NavigationMenuContent;
|
|
19494
19795
|
NavigationMenu.Link = NavigationMenuLink;
|
|
19495
19796
|
|
|
19797
|
+
var _excluded$X = ["value", "max", "color", "backgroundColor", "height", "radius", "views", "themeMode"];
|
|
19798
|
+
var ProgressBarView = _ref => {
|
|
19799
|
+
var {
|
|
19800
|
+
value = 0,
|
|
19801
|
+
max = 100,
|
|
19802
|
+
color = 'theme.primary',
|
|
19803
|
+
backgroundColor = 'color.gray.200',
|
|
19804
|
+
height = 8,
|
|
19805
|
+
radius = 4,
|
|
19806
|
+
views,
|
|
19807
|
+
themeMode: elementMode
|
|
19808
|
+
} = _ref,
|
|
19809
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$X);
|
|
19810
|
+
var {
|
|
19811
|
+
getColor,
|
|
19812
|
+
themeMode
|
|
19813
|
+
} = appStudio.useTheme();
|
|
19814
|
+
var currentMode = elementMode ? elementMode : themeMode;
|
|
19815
|
+
var percentage = Math.min(100, Math.max(0, value / max * 100));
|
|
19816
|
+
var trackColor = getColor(backgroundColor, {
|
|
19817
|
+
themeMode: currentMode
|
|
19818
|
+
});
|
|
19819
|
+
var barColor = getColor(color, {
|
|
19820
|
+
themeMode: currentMode
|
|
19821
|
+
});
|
|
19822
|
+
return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
19823
|
+
role: "progressbar",
|
|
19824
|
+
"aria-valuenow": value,
|
|
19825
|
+
"aria-valuemin": 0,
|
|
19826
|
+
"aria-valuemax": max,
|
|
19827
|
+
width: "100%",
|
|
19828
|
+
height: height,
|
|
19829
|
+
backgroundColor: trackColor,
|
|
19830
|
+
borderRadius: radius,
|
|
19831
|
+
overflow: "hidden"
|
|
19832
|
+
}, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
19833
|
+
width: percentage + "%",
|
|
19834
|
+
height: "100%",
|
|
19835
|
+
backgroundColor: barColor,
|
|
19836
|
+
borderRadius: radius
|
|
19837
|
+
}, views == null ? void 0 : views.bar)));
|
|
19838
|
+
};
|
|
19839
|
+
|
|
19840
|
+
/**
|
|
19841
|
+
* ProgressBar component displays completion status of a task or process.
|
|
19842
|
+
*/
|
|
19843
|
+
var ProgressBarComponent = props => (/*#__PURE__*/React__default.createElement(ProgressBarView, Object.assign({}, props)));
|
|
19844
|
+
var ProgressBar = ProgressBarComponent;
|
|
19845
|
+
|
|
19846
|
+
var getThemes$2 = themeMode => {
|
|
19847
|
+
return {
|
|
19848
|
+
default: {
|
|
19849
|
+
indicator: {
|
|
19850
|
+
backgroundColor: 'color.gray.400'
|
|
19851
|
+
},
|
|
19852
|
+
label: {
|
|
19853
|
+
color: 'color.gray.700'
|
|
19854
|
+
}
|
|
19855
|
+
},
|
|
19856
|
+
info: {
|
|
19857
|
+
indicator: {
|
|
19858
|
+
backgroundColor: 'color.blue.500'
|
|
19859
|
+
},
|
|
19860
|
+
label: {
|
|
19861
|
+
color: 'color.blue.700'
|
|
19862
|
+
}
|
|
19863
|
+
},
|
|
19864
|
+
success: {
|
|
19865
|
+
indicator: {
|
|
19866
|
+
backgroundColor: 'color.green.500'
|
|
19867
|
+
},
|
|
19868
|
+
label: {
|
|
19869
|
+
color: 'color.green.700'
|
|
19870
|
+
}
|
|
19871
|
+
},
|
|
19872
|
+
warning: {
|
|
19873
|
+
indicator: {
|
|
19874
|
+
backgroundColor: 'color.orange.500'
|
|
19875
|
+
},
|
|
19876
|
+
label: {
|
|
19877
|
+
color: 'color.orange.700'
|
|
19878
|
+
}
|
|
19879
|
+
},
|
|
19880
|
+
error: {
|
|
19881
|
+
indicator: {
|
|
19882
|
+
backgroundColor: 'color.red.500'
|
|
19883
|
+
},
|
|
19884
|
+
label: {
|
|
19885
|
+
color: 'color.red.700'
|
|
19886
|
+
}
|
|
19887
|
+
}
|
|
19888
|
+
};
|
|
19889
|
+
};
|
|
19890
|
+
|
|
19891
|
+
var _excluded$Y = ["label", "status", "views", "themeMode"];
|
|
19892
|
+
var StatusIndicatorView = _ref => {
|
|
19893
|
+
var {
|
|
19894
|
+
label,
|
|
19895
|
+
status = 'default',
|
|
19896
|
+
views,
|
|
19897
|
+
themeMode: elementMode
|
|
19898
|
+
} = _ref,
|
|
19899
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
|
|
19900
|
+
var {
|
|
19901
|
+
themeMode
|
|
19902
|
+
} = appStudio.useTheme();
|
|
19903
|
+
var themes = getThemes$2();
|
|
19904
|
+
return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
19905
|
+
alignItems: "center",
|
|
19906
|
+
gap: 8,
|
|
19907
|
+
role: "status-indicator"
|
|
19908
|
+
}, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
19909
|
+
role: "status-dot",
|
|
19910
|
+
width: "8px",
|
|
19911
|
+
height: "8px",
|
|
19912
|
+
borderRadius: "50%"
|
|
19913
|
+
}, themes[status].indicator, views == null ? void 0 : views.indicator)), label && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
19914
|
+
role: "status-label",
|
|
19915
|
+
fontSize: "14px",
|
|
19916
|
+
lineHeight: "20px"
|
|
19917
|
+
}, themes[status].label, views == null ? void 0 : views.label), label)));
|
|
19918
|
+
};
|
|
19919
|
+
|
|
19920
|
+
var StatusIndicator = props => (/*#__PURE__*/React__default.createElement(StatusIndicatorView, Object.assign({}, props)));
|
|
19921
|
+
|
|
19922
|
+
var getOKRTheme = mode => {
|
|
19923
|
+
var isDark = mode === 'dark';
|
|
19924
|
+
return {
|
|
19925
|
+
container: {
|
|
19926
|
+
width: '100%',
|
|
19927
|
+
gap: 16
|
|
19928
|
+
},
|
|
19929
|
+
objectiveCard: {
|
|
19930
|
+
backgroundColor: isDark ? 'rgba(15, 23, 42, 0.6)' : 'color.white',
|
|
19931
|
+
borderColor: isDark ? 'rgba(148, 163, 184, 0.24)' : 'color.gray.200',
|
|
19932
|
+
borderWidth: '1px',
|
|
19933
|
+
borderStyle: 'solid',
|
|
19934
|
+
borderRadius: 16,
|
|
19935
|
+
padding: 24,
|
|
19936
|
+
gap: 20
|
|
19937
|
+
},
|
|
19938
|
+
tag: {
|
|
19939
|
+
display: 'inline-flex',
|
|
19940
|
+
alignItems: 'center',
|
|
19941
|
+
padding: '4px 10px',
|
|
19942
|
+
borderRadius: 999,
|
|
19943
|
+
backgroundColor: isDark ? 'rgba(148, 163, 184, 0.16)' : 'color.gray.100'
|
|
19944
|
+
},
|
|
19945
|
+
keyResultItem: {
|
|
19946
|
+
padding: 16,
|
|
19947
|
+
borderRadius: 12,
|
|
19948
|
+
borderWidth: '1px',
|
|
19949
|
+
borderStyle: 'solid',
|
|
19950
|
+
borderColor: isDark ? 'rgba(148, 163, 184, 0.18)' : 'color.gray.200',
|
|
19951
|
+
backgroundColor: isDark ? 'rgba(15, 23, 42, 0.35)' : 'color.gray.50',
|
|
19952
|
+
gap: 12
|
|
19953
|
+
},
|
|
19954
|
+
divider: {
|
|
19955
|
+
height: 1,
|
|
19956
|
+
backgroundColor: isDark ? 'rgba(148, 163, 184, 0.24)' : 'color.gray.200',
|
|
19957
|
+
width: '100%'
|
|
19958
|
+
}
|
|
19959
|
+
};
|
|
19960
|
+
};
|
|
19961
|
+
var STATUS_METADATA = {
|
|
19962
|
+
notStarted: {
|
|
19963
|
+
indicator: 'info',
|
|
19964
|
+
label: 'Not started'
|
|
19965
|
+
},
|
|
19966
|
+
onTrack: {
|
|
19967
|
+
indicator: 'success',
|
|
19968
|
+
label: 'On track'
|
|
19969
|
+
},
|
|
19970
|
+
atRisk: {
|
|
19971
|
+
indicator: 'warning',
|
|
19972
|
+
label: 'At risk'
|
|
19973
|
+
},
|
|
19974
|
+
offTrack: {
|
|
19975
|
+
indicator: 'error',
|
|
19976
|
+
label: 'Off track'
|
|
19977
|
+
},
|
|
19978
|
+
achieved: {
|
|
19979
|
+
indicator: 'success',
|
|
19980
|
+
label: 'Achieved'
|
|
19981
|
+
}
|
|
19982
|
+
};
|
|
19983
|
+
var deriveStatusFromProgress = progress => {
|
|
19984
|
+
if (progress >= 100) {
|
|
19985
|
+
return 'achieved';
|
|
19986
|
+
}
|
|
19987
|
+
if (progress >= 70) {
|
|
19988
|
+
return 'onTrack';
|
|
19989
|
+
}
|
|
19990
|
+
if (progress >= 40) {
|
|
19991
|
+
return 'atRisk';
|
|
19992
|
+
}
|
|
19993
|
+
if (progress > 0) {
|
|
19994
|
+
return 'offTrack';
|
|
19995
|
+
}
|
|
19996
|
+
return 'notStarted';
|
|
19997
|
+
};
|
|
19998
|
+
var clampProgress = value => {
|
|
19999
|
+
if (typeof value !== 'number' || Number.isNaN(value)) {
|
|
20000
|
+
return 0;
|
|
20001
|
+
}
|
|
20002
|
+
return Math.max(0, Math.min(100, Math.round(value)));
|
|
20003
|
+
};
|
|
20004
|
+
|
|
20005
|
+
var formatPercentage = value => value + "%";
|
|
20006
|
+
var formatConfidence = confidence => {
|
|
20007
|
+
if (!confidence) {
|
|
20008
|
+
return undefined;
|
|
20009
|
+
}
|
|
20010
|
+
return confidence.charAt(0).toUpperCase() + confidence.slice(1);
|
|
20011
|
+
};
|
|
20012
|
+
var getObjectiveProgress = objective => {
|
|
20013
|
+
if (typeof objective.progress === 'number') {
|
|
20014
|
+
return clampProgress(objective.progress);
|
|
20015
|
+
}
|
|
20016
|
+
if (!objective.keyResults.length) {
|
|
20017
|
+
return 0;
|
|
20018
|
+
}
|
|
20019
|
+
var total = objective.keyResults.reduce((acc, keyResult) => {
|
|
20020
|
+
var _keyResult$progress;
|
|
20021
|
+
return acc + ((_keyResult$progress = keyResult.progress) != null ? _keyResult$progress : 0);
|
|
20022
|
+
}, 0);
|
|
20023
|
+
return clampProgress(total / objective.keyResults.length);
|
|
20024
|
+
};
|
|
20025
|
+
var renderStatusIndicator = (status, themeMode, views) => {
|
|
20026
|
+
var metadata = STATUS_METADATA[status];
|
|
20027
|
+
return /*#__PURE__*/React__default.createElement(StatusIndicator, {
|
|
20028
|
+
themeMode: themeMode,
|
|
20029
|
+
status: metadata.indicator,
|
|
20030
|
+
label: metadata.label,
|
|
20031
|
+
views: views
|
|
20032
|
+
});
|
|
20033
|
+
};
|
|
20034
|
+
var OKRView = _ref => {
|
|
20035
|
+
var {
|
|
20036
|
+
objectives,
|
|
20037
|
+
themeMode: elementMode,
|
|
20038
|
+
views,
|
|
20039
|
+
onKeyResultClick,
|
|
20040
|
+
renderObjectiveFooter,
|
|
20041
|
+
renderKeyResultFooter
|
|
20042
|
+
} = _ref;
|
|
20043
|
+
var {
|
|
20044
|
+
themeMode
|
|
20045
|
+
} = appStudio.useTheme();
|
|
20046
|
+
var currentMode = elementMode || themeMode || 'light';
|
|
20047
|
+
var theme = getOKRTheme(currentMode);
|
|
20048
|
+
var secondaryTextColor = currentMode === 'dark' ? 'color.gray.200' : 'color.gray.600';
|
|
20049
|
+
var subtleTextColor = currentMode === 'dark' ? 'color.gray.300' : 'color.gray.500';
|
|
20050
|
+
var tagTextColor = currentMode === 'dark' ? 'color.gray.100' : 'color.gray.700';
|
|
20051
|
+
return /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({}, theme.container, views == null ? void 0 : views.container), objectives.map(objective => {
|
|
20052
|
+
var _objective$status, _objective$tags, _views$objectiveProgr, _views$objectiveProgr2, _views$objectiveProgr3, _views$objectiveProgr4;
|
|
20053
|
+
var objectiveProgress = getObjectiveProgress(objective);
|
|
20054
|
+
var objectiveStatus = (_objective$status = objective.status) != null ? _objective$status : deriveStatusFromProgress(objectiveProgress);
|
|
20055
|
+
var objectiveFooter = renderObjectiveFooter == null ? void 0 : renderObjectiveFooter(objective);
|
|
20056
|
+
return /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
|
|
20057
|
+
key: objective.id
|
|
20058
|
+
}, theme.objectiveCard, views == null ? void 0 : views.objectiveCard), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
20059
|
+
justifyContent: "space-between",
|
|
20060
|
+
alignItems: "flex-start",
|
|
20061
|
+
flexWrap: "wrap",
|
|
20062
|
+
gap: 16
|
|
20063
|
+
}, views == null ? void 0 : views.objectiveHeader), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
|
|
20064
|
+
gap: 10,
|
|
20065
|
+
minWidth: 240
|
|
20066
|
+
}, /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20067
|
+
size: "lg",
|
|
20068
|
+
weight: "semiBold"
|
|
20069
|
+
}, views == null ? void 0 : views.objectiveTitle), objective.title), objective.description && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20070
|
+
size: "sm",
|
|
20071
|
+
color: secondaryTextColor
|
|
20072
|
+
}, views == null ? void 0 : views.objectiveDescription), objective.description)), (_objective$tags = objective.tags) != null && _objective$tags.length ? (/*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
20073
|
+
gap: 8,
|
|
20074
|
+
flexWrap: "wrap"
|
|
20075
|
+
}, views == null ? void 0 : views.objectiveTags), objective.tags.map(tag => (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
20076
|
+
key: tag
|
|
20077
|
+
}, theme.tag, views == null ? void 0 : views.tag), /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20078
|
+
size: "xs",
|
|
20079
|
+
weight: "medium",
|
|
20080
|
+
color: tagTextColor
|
|
20081
|
+
}, views == null ? void 0 : views.tagText), tag)))))) : null), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
|
|
20082
|
+
gap: 8,
|
|
20083
|
+
alignItems: "flex-end",
|
|
20084
|
+
minWidth: 160
|
|
20085
|
+
}, views == null ? void 0 : views.objectiveMeta), objective.owner && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20086
|
+
size: "sm",
|
|
20087
|
+
color: secondaryTextColor
|
|
20088
|
+
}, views == null ? void 0 : views.objectiveOwner), "Owner: ", objective.owner)), objective.timeframe && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20089
|
+
size: "sm",
|
|
20090
|
+
color: subtleTextColor
|
|
20091
|
+
}, 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({
|
|
20092
|
+
gap: 8
|
|
20093
|
+
}, views == null ? void 0 : views.objectiveProgressSection), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, {
|
|
20094
|
+
justifyContent: "space-between",
|
|
20095
|
+
alignItems: "center"
|
|
20096
|
+
}, /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20097
|
+
size: "sm",
|
|
20098
|
+
color: secondaryTextColor
|
|
20099
|
+
}, views == null ? void 0 : views.objectiveProgressLabel), "Progress"), /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20100
|
+
size: "sm",
|
|
20101
|
+
weight: "semiBold"
|
|
20102
|
+
}, views == null ? void 0 : views.objectiveProgressValue), formatPercentage(objectiveProgress))), /*#__PURE__*/React__default.createElement(ProgressBar, {
|
|
20103
|
+
value: objectiveProgress,
|
|
20104
|
+
max: 100,
|
|
20105
|
+
views: {
|
|
20106
|
+
container: Object.assign({
|
|
20107
|
+
width: '100%'
|
|
20108
|
+
}, (_views$objectiveProgr = views == null || (_views$objectiveProgr2 = views.objectiveProgressBar) == null ? void 0 : _views$objectiveProgr2.container) != null ? _views$objectiveProgr : {}),
|
|
20109
|
+
bar: Object.assign({}, (_views$objectiveProgr3 = views == null || (_views$objectiveProgr4 = views.objectiveProgressBar) == null ? void 0 : _views$objectiveProgr4.bar) != null ? _views$objectiveProgr3 : {})
|
|
20110
|
+
}
|
|
20111
|
+
})), /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
|
|
20112
|
+
gap: 16
|
|
20113
|
+
}, views == null ? void 0 : views.keyResultList), objective.keyResults.map((keyResult, index) => {
|
|
20114
|
+
var _keyResult$status, _keyResult$tags, _views$keyResultProgr, _views$keyResultProgr2, _views$keyResultProgr3, _views$keyResultProgr4;
|
|
20115
|
+
var progress = clampProgress(keyResult.progress);
|
|
20116
|
+
var keyResultStatus = (_keyResult$status = keyResult.status) != null ? _keyResult$status : deriveStatusFromProgress(progress);
|
|
20117
|
+
var keyResultFooter = renderKeyResultFooter == null ? void 0 : renderKeyResultFooter(keyResult, objective);
|
|
20118
|
+
var showDivider = index < objective.keyResults.length - 1;
|
|
20119
|
+
return /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
|
|
20120
|
+
key: keyResult.id,
|
|
20121
|
+
gap: 12
|
|
20122
|
+
}, /*#__PURE__*/React__default.createElement(appStudio.Vertical, Object.assign({
|
|
20123
|
+
role: onKeyResultClick ? 'button' : undefined,
|
|
20124
|
+
cursor: onKeyResultClick ? 'pointer' : undefined,
|
|
20125
|
+
onClick: onKeyResultClick ? () => onKeyResultClick(keyResult, objective) : undefined
|
|
20126
|
+
}, theme.keyResultItem, views == null ? void 0 : views.keyResultItem), /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
20127
|
+
justifyContent: "space-between",
|
|
20128
|
+
alignItems: "flex-start",
|
|
20129
|
+
flexWrap: "wrap",
|
|
20130
|
+
gap: 16
|
|
20131
|
+
}, views == null ? void 0 : views.keyResultHeader), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
|
|
20132
|
+
gap: 8,
|
|
20133
|
+
minWidth: 220
|
|
20134
|
+
}, /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20135
|
+
size: "md",
|
|
20136
|
+
weight: "medium"
|
|
20137
|
+
}, views == null ? void 0 : views.keyResultTitle), keyResult.title), keyResult.description && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20138
|
+
size: "sm",
|
|
20139
|
+
color: secondaryTextColor
|
|
20140
|
+
}, 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({
|
|
20141
|
+
gap: 12,
|
|
20142
|
+
flexWrap: "wrap"
|
|
20143
|
+
}, views == null ? void 0 : views.keyResultMeta), keyResult.metric && (/*#__PURE__*/React__default.createElement(Text, {
|
|
20144
|
+
size: "xs",
|
|
20145
|
+
color: secondaryTextColor
|
|
20146
|
+
}, "Metric: ", keyResult.metric)), keyResult.current && (/*#__PURE__*/React__default.createElement(Text, {
|
|
20147
|
+
size: "xs",
|
|
20148
|
+
color: secondaryTextColor
|
|
20149
|
+
}, "Current: ", keyResult.current)), keyResult.target && (/*#__PURE__*/React__default.createElement(Text, {
|
|
20150
|
+
size: "xs",
|
|
20151
|
+
color: secondaryTextColor
|
|
20152
|
+
}, "Target: ", keyResult.target)), keyResult.confidence && (/*#__PURE__*/React__default.createElement(Text, {
|
|
20153
|
+
size: "xs",
|
|
20154
|
+
color: secondaryTextColor
|
|
20155
|
+
}, "Confidence:", ' ', formatConfidence(keyResult.confidence))), keyResult.lastUpdated && (/*#__PURE__*/React__default.createElement(Text, {
|
|
20156
|
+
size: "xs",
|
|
20157
|
+
color: subtleTextColor
|
|
20158
|
+
}, "Updated: ", keyResult.lastUpdated)))), (_keyResult$tags = keyResult.tags) != null && _keyResult$tags.length ? (/*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
20159
|
+
gap: 8,
|
|
20160
|
+
flexWrap: "wrap"
|
|
20161
|
+
}, views == null ? void 0 : views.keyResultTags), keyResult.tags.map(tag => (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
20162
|
+
key: tag
|
|
20163
|
+
}, theme.tag, views == null ? void 0 : views.keyResultTag), /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20164
|
+
size: "xs",
|
|
20165
|
+
weight: "medium",
|
|
20166
|
+
color: tagTextColor
|
|
20167
|
+
}, views == null ? void 0 : views.keyResultTagText), tag)))))) : null), /*#__PURE__*/React__default.createElement(appStudio.Vertical, {
|
|
20168
|
+
gap: 8,
|
|
20169
|
+
alignItems: "flex-end"
|
|
20170
|
+
}, keyResult.owner && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20171
|
+
size: "xs",
|
|
20172
|
+
color: secondaryTextColor
|
|
20173
|
+
}, 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({
|
|
20174
|
+
alignItems: "center",
|
|
20175
|
+
gap: 12
|
|
20176
|
+
}, views == null ? void 0 : views.keyResultProgressSection), /*#__PURE__*/React__default.createElement(ProgressBar, {
|
|
20177
|
+
value: progress,
|
|
20178
|
+
max: 100,
|
|
20179
|
+
views: {
|
|
20180
|
+
container: Object.assign({
|
|
20181
|
+
width: '100%'
|
|
20182
|
+
}, (_views$keyResultProgr = views == null || (_views$keyResultProgr2 = views.keyResultProgressBar) == null ? void 0 : _views$keyResultProgr2.container) != null ? _views$keyResultProgr : {}),
|
|
20183
|
+
bar: Object.assign({}, (_views$keyResultProgr3 = views == null || (_views$keyResultProgr4 = views.keyResultProgressBar) == null ? void 0 : _views$keyResultProgr4.bar) != null ? _views$keyResultProgr3 : {})
|
|
20184
|
+
}
|
|
20185
|
+
}), /*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
20186
|
+
size: "xs",
|
|
20187
|
+
weight: "semiBold"
|
|
20188
|
+
}, 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);
|
|
20189
|
+
})), objectiveFooter ? (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, views == null ? void 0 : views.footer), objectiveFooter)) : null);
|
|
20190
|
+
}));
|
|
20191
|
+
};
|
|
20192
|
+
|
|
20193
|
+
var OKR = props => /*#__PURE__*/React__default.createElement(OKRView, Object.assign({}, props));
|
|
20194
|
+
|
|
19496
20195
|
var defaultStyles = {};
|
|
19497
20196
|
// Create a context that includes both styles and the onClick function
|
|
19498
20197
|
var TableContext = /*#__PURE__*/React.createContext({
|
|
@@ -20275,7 +20974,7 @@
|
|
|
20275
20974
|
})
|
|
20276
20975
|
};
|
|
20277
20976
|
|
|
20278
|
-
var _excluded$
|
|
20977
|
+
var _excluded$Z = ["text", "typingSpeed", "pauseTime", "onComplete", "showCursor", "cursorColor", "textStyle", "as"];
|
|
20279
20978
|
/**
|
|
20280
20979
|
* A component that creates a typewriter effect for text
|
|
20281
20980
|
*/
|
|
@@ -20289,7 +20988,7 @@
|
|
|
20289
20988
|
cursorColor = 'currentColor',
|
|
20290
20989
|
textStyle
|
|
20291
20990
|
} = _ref,
|
|
20292
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
20991
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
|
|
20293
20992
|
// Convert text to array if it's a string
|
|
20294
20993
|
var textArray = Array.isArray(text) ? text : [text];
|
|
20295
20994
|
// State for the currently displayed text
|
|
@@ -20356,7 +21055,7 @@
|
|
|
20356
21055
|
}))))));
|
|
20357
21056
|
};
|
|
20358
21057
|
|
|
20359
|
-
var _excluded$
|
|
21058
|
+
var _excluded$_ = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "responsive", "centered", "views", "highlightAnimate", "animate", "animationLoop", "highlightAnimationLoop", "highlightTypewriter", "highlightTypewriterDuration"];
|
|
20360
21059
|
function escapeRegExp(string) {
|
|
20361
21060
|
return string.replace(/[.*+?^${}()|[\\]\\/g, '\\$&');
|
|
20362
21061
|
}
|
|
@@ -20378,7 +21077,7 @@
|
|
|
20378
21077
|
highlightTypewriter: propHighlightTypewriter = false,
|
|
20379
21078
|
highlightTypewriterDuration = 3000
|
|
20380
21079
|
} = _ref,
|
|
20381
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
21080
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
|
|
20382
21081
|
var {
|
|
20383
21082
|
ref,
|
|
20384
21083
|
inView
|
|
@@ -20653,7 +21352,7 @@
|
|
|
20653
21352
|
}
|
|
20654
21353
|
});
|
|
20655
21354
|
|
|
20656
|
-
var _excluded
|
|
21355
|
+
var _excluded$$ = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views", "backgroundColor", "color", "themeMode"];
|
|
20657
21356
|
var ToggleView = _ref => {
|
|
20658
21357
|
var _ref2;
|
|
20659
21358
|
var {
|
|
@@ -20673,7 +21372,7 @@
|
|
|
20673
21372
|
// 2nd candidate for main color
|
|
20674
21373
|
themeMode: elementMode
|
|
20675
21374
|
} = _ref,
|
|
20676
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded
|
|
21375
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
|
|
20677
21376
|
/* theme helpers */
|
|
20678
21377
|
var {
|
|
20679
21378
|
getColor,
|
|
@@ -20717,7 +21416,7 @@
|
|
|
20717
21416
|
}, props, views == null ? void 0 : views.container), children);
|
|
20718
21417
|
};
|
|
20719
21418
|
|
|
20720
|
-
var _excluded$
|
|
21419
|
+
var _excluded$10 = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
|
|
20721
21420
|
// Destructuring properties from ToggleProps to be used within the ToggleComponent.
|
|
20722
21421
|
var ToggleComponent = _ref => {
|
|
20723
21422
|
var {
|
|
@@ -20729,7 +21428,7 @@
|
|
|
20729
21428
|
isToggled = false,
|
|
20730
21429
|
onToggle
|
|
20731
21430
|
} = _ref,
|
|
20732
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
21431
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$10);
|
|
20733
21432
|
// Initializing toggle state and set state functions using the custom hook useToggleState.
|
|
20734
21433
|
var {
|
|
20735
21434
|
isHovered,
|
|
@@ -21064,7 +21763,7 @@
|
|
|
21064
21763
|
}
|
|
21065
21764
|
};
|
|
21066
21765
|
|
|
21067
|
-
var _excluded
|
|
21766
|
+
var _excluded$11 = ["children", "views"],
|
|
21068
21767
|
_excluded2$f = ["items", "side", "align", "views"],
|
|
21069
21768
|
_excluded3$9 = ["item", "views"],
|
|
21070
21769
|
_excluded4$8 = ["views"],
|
|
@@ -21105,7 +21804,7 @@
|
|
|
21105
21804
|
children,
|
|
21106
21805
|
views
|
|
21107
21806
|
} = _ref2,
|
|
21108
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded
|
|
21807
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded$11);
|
|
21109
21808
|
var {
|
|
21110
21809
|
isOpen,
|
|
21111
21810
|
setIsOpen,
|
|
@@ -21358,7 +22057,7 @@
|
|
|
21358
22057
|
}));
|
|
21359
22058
|
};
|
|
21360
22059
|
|
|
21361
|
-
var _excluded$
|
|
22060
|
+
var _excluded$12 = ["trigger", "items", "size", "variant", "side", "align", "defaultOpen", "views"];
|
|
21362
22061
|
/**
|
|
21363
22062
|
* DropdownMenu component for displaying a menu when clicking on a trigger element.
|
|
21364
22063
|
*/
|
|
@@ -21373,7 +22072,7 @@
|
|
|
21373
22072
|
defaultOpen = false,
|
|
21374
22073
|
views
|
|
21375
22074
|
} = _ref,
|
|
21376
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
22075
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$12);
|
|
21377
22076
|
var {
|
|
21378
22077
|
isOpen,
|
|
21379
22078
|
setIsOpen,
|
|
@@ -21787,7 +22486,7 @@
|
|
|
21787
22486
|
category: 'neutral'
|
|
21788
22487
|
}];
|
|
21789
22488
|
|
|
21790
|
-
var _excluded$
|
|
22489
|
+
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"];
|
|
21791
22490
|
var ColorPickerView = _ref => {
|
|
21792
22491
|
var {
|
|
21793
22492
|
// Basic props
|
|
@@ -21822,7 +22521,7 @@
|
|
|
21822
22521
|
dropdownRef
|
|
21823
22522
|
// Other props
|
|
21824
22523
|
} = _ref,
|
|
21825
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
22524
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$13);
|
|
21826
22525
|
var {
|
|
21827
22526
|
getColor
|
|
21828
22527
|
} = appStudio.useTheme();
|
|
@@ -24152,7 +24851,7 @@
|
|
|
24152
24851
|
};
|
|
24153
24852
|
};
|
|
24154
24853
|
|
|
24155
|
-
var _excluded$
|
|
24854
|
+
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"];
|
|
24156
24855
|
var EmojiPickerView = _ref => {
|
|
24157
24856
|
var {
|
|
24158
24857
|
// Basic props
|
|
@@ -24190,7 +24889,7 @@
|
|
|
24190
24889
|
dropdownRef
|
|
24191
24890
|
// Other props
|
|
24192
24891
|
} = _ref,
|
|
24193
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
24892
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$14);
|
|
24194
24893
|
var {
|
|
24195
24894
|
getColor
|
|
24196
24895
|
} = appStudio.useTheme();
|
|
@@ -24379,7 +25078,7 @@
|
|
|
24379
25078
|
}
|
|
24380
25079
|
};
|
|
24381
25080
|
|
|
24382
|
-
var _excluded$
|
|
25081
|
+
var _excluded$15 = ["children", "orientation", "size", "variant", "views"];
|
|
24383
25082
|
// Create context for the Menubar
|
|
24384
25083
|
var MenubarContext = /*#__PURE__*/React.createContext({
|
|
24385
25084
|
activeMenuId: null,
|
|
@@ -24416,7 +25115,7 @@
|
|
|
24416
25115
|
variant = 'default',
|
|
24417
25116
|
views
|
|
24418
25117
|
} = _ref2,
|
|
24419
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded$
|
|
25118
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded$15);
|
|
24420
25119
|
var Container = orientation === 'horizontal' ? appStudio.Horizontal : appStudio.Vertical;
|
|
24421
25120
|
return /*#__PURE__*/React__default.createElement(Container, Object.assign({
|
|
24422
25121
|
role: "menubar",
|
|
@@ -24736,7 +25435,7 @@
|
|
|
24736
25435
|
})))))));
|
|
24737
25436
|
};
|
|
24738
25437
|
|
|
24739
|
-
var _excluded$
|
|
25438
|
+
var _excluded$16 = ["items", "orientation", "size", "variant", "defaultActiveMenuId", "defaultOpenMenuId", "views"];
|
|
24740
25439
|
/**
|
|
24741
25440
|
* Menubar component for creating horizontal or vertical menu bars with dropdown menus.
|
|
24742
25441
|
*/
|
|
@@ -24750,7 +25449,7 @@
|
|
|
24750
25449
|
defaultOpenMenuId = null,
|
|
24751
25450
|
views
|
|
24752
25451
|
} = _ref,
|
|
24753
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
25452
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$16);
|
|
24754
25453
|
var {
|
|
24755
25454
|
activeMenuId,
|
|
24756
25455
|
setActiveMenuId,
|
|
@@ -24932,7 +25631,7 @@
|
|
|
24932
25631
|
}
|
|
24933
25632
|
};
|
|
24934
25633
|
|
|
24935
|
-
var _excluded$
|
|
25634
|
+
var _excluded$17 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "visiblePageNumbers", "views"];
|
|
24936
25635
|
var PaginationView = _ref => {
|
|
24937
25636
|
var {
|
|
24938
25637
|
currentPage,
|
|
@@ -24963,7 +25662,7 @@
|
|
|
24963
25662
|
visiblePageNumbers,
|
|
24964
25663
|
views
|
|
24965
25664
|
} = _ref,
|
|
24966
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
25665
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$17);
|
|
24967
25666
|
var handlePageChange = page => {
|
|
24968
25667
|
if (page < 1 || page > totalPages || page === currentPage) {
|
|
24969
25668
|
return;
|
|
@@ -25082,7 +25781,7 @@
|
|
|
25082
25781
|
}, option.label))))));
|
|
25083
25782
|
};
|
|
25084
25783
|
|
|
25085
|
-
var _excluded$
|
|
25784
|
+
var _excluded$18 = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "views"];
|
|
25086
25785
|
/**
|
|
25087
25786
|
* Pagination component for navigating through pages of content.
|
|
25088
25787
|
*/
|
|
@@ -25103,7 +25802,7 @@
|
|
|
25103
25802
|
shape = 'rounded',
|
|
25104
25803
|
views
|
|
25105
25804
|
} = _ref,
|
|
25106
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
25805
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$18);
|
|
25107
25806
|
var {
|
|
25108
25807
|
visiblePageNumbers
|
|
25109
25808
|
} = usePaginationState(currentPage, totalPages, maxPageButtons);
|
|
@@ -25127,55 +25826,6 @@
|
|
|
25127
25826
|
};
|
|
25128
25827
|
var Pagination = PaginationComponent;
|
|
25129
25828
|
|
|
25130
|
-
var _excluded$17 = ["value", "max", "color", "backgroundColor", "height", "radius", "views", "themeMode"];
|
|
25131
|
-
var ProgressBarView = _ref => {
|
|
25132
|
-
var {
|
|
25133
|
-
value = 0,
|
|
25134
|
-
max = 100,
|
|
25135
|
-
color = 'theme.primary',
|
|
25136
|
-
backgroundColor = 'color.gray.200',
|
|
25137
|
-
height = 8,
|
|
25138
|
-
radius = 4,
|
|
25139
|
-
views,
|
|
25140
|
-
themeMode: elementMode
|
|
25141
|
-
} = _ref,
|
|
25142
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$17);
|
|
25143
|
-
var {
|
|
25144
|
-
getColor,
|
|
25145
|
-
themeMode
|
|
25146
|
-
} = appStudio.useTheme();
|
|
25147
|
-
var currentMode = elementMode ? elementMode : themeMode;
|
|
25148
|
-
var percentage = Math.min(100, Math.max(0, value / max * 100));
|
|
25149
|
-
var trackColor = getColor(backgroundColor, {
|
|
25150
|
-
themeMode: currentMode
|
|
25151
|
-
});
|
|
25152
|
-
var barColor = getColor(color, {
|
|
25153
|
-
themeMode: currentMode
|
|
25154
|
-
});
|
|
25155
|
-
return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
25156
|
-
role: "progressbar",
|
|
25157
|
-
"aria-valuenow": value,
|
|
25158
|
-
"aria-valuemin": 0,
|
|
25159
|
-
"aria-valuemax": max,
|
|
25160
|
-
width: "100%",
|
|
25161
|
-
height: height,
|
|
25162
|
-
backgroundColor: trackColor,
|
|
25163
|
-
borderRadius: radius,
|
|
25164
|
-
overflow: "hidden"
|
|
25165
|
-
}, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
25166
|
-
width: percentage + "%",
|
|
25167
|
-
height: "100%",
|
|
25168
|
-
backgroundColor: barColor,
|
|
25169
|
-
borderRadius: radius
|
|
25170
|
-
}, views == null ? void 0 : views.bar)));
|
|
25171
|
-
};
|
|
25172
|
-
|
|
25173
|
-
/**
|
|
25174
|
-
* ProgressBar component displays completion status of a task or process.
|
|
25175
|
-
*/
|
|
25176
|
-
var ProgressBarComponent = props => (/*#__PURE__*/React__default.createElement(ProgressBarView, Object.assign({}, props)));
|
|
25177
|
-
var ProgressBar = ProgressBarComponent;
|
|
25178
|
-
|
|
25179
25829
|
/**
|
|
25180
25830
|
* Separator Styles
|
|
25181
25831
|
*
|
|
@@ -25229,7 +25879,7 @@
|
|
|
25229
25879
|
}
|
|
25230
25880
|
};
|
|
25231
25881
|
|
|
25232
|
-
var _excluded$
|
|
25882
|
+
var _excluded$19 = ["orientation", "variant", "thickness", "color", "spacing", "label", "decorative", "views", "themeMode"];
|
|
25233
25883
|
var SeparatorView = _ref => {
|
|
25234
25884
|
var {
|
|
25235
25885
|
orientation = 'horizontal',
|
|
@@ -25241,7 +25891,7 @@
|
|
|
25241
25891
|
decorative = false,
|
|
25242
25892
|
views
|
|
25243
25893
|
} = _ref,
|
|
25244
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
25894
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$19);
|
|
25245
25895
|
// Access theme if needed for future enhancements
|
|
25246
25896
|
var {
|
|
25247
25897
|
themeMode
|
|
@@ -25309,7 +25959,7 @@
|
|
|
25309
25959
|
var Separator = SeparatorComponent;
|
|
25310
25960
|
var Divider = SeparatorComponent;
|
|
25311
25961
|
|
|
25312
|
-
var _excluded$
|
|
25962
|
+
var _excluded$1a = ["isSupported", "isSharing", "onShare", "label", "children", "icon", "size", "isDisabled", "isLoading", "iconPosition", "disableWhenUnsupported"];
|
|
25313
25963
|
var ICON_SIZE_MAP = {
|
|
25314
25964
|
xs: 12,
|
|
25315
25965
|
sm: 14,
|
|
@@ -25332,7 +25982,7 @@
|
|
|
25332
25982
|
iconPosition,
|
|
25333
25983
|
disableWhenUnsupported = true
|
|
25334
25984
|
} = _ref,
|
|
25335
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
25985
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1a);
|
|
25336
25986
|
var resolvedSize = size != null ? size : 'md';
|
|
25337
25987
|
var resolvedIcon = icon != null ? icon : (/*#__PURE__*/React__default.createElement(ShareIcon, {
|
|
25338
25988
|
widthHeight: ICON_SIZE_MAP[resolvedSize],
|
|
@@ -25434,14 +26084,14 @@
|
|
|
25434
26084
|
};
|
|
25435
26085
|
};
|
|
25436
26086
|
|
|
25437
|
-
var _excluded$
|
|
26087
|
+
var _excluded$1b = ["shareData", "onShareStart", "onShareSuccess", "onShareCancel", "onShareError", "onUnsupported", "onClick"];
|
|
25438
26088
|
var ShareButtonComponent = props => {
|
|
25439
26089
|
var {
|
|
25440
26090
|
isSupported,
|
|
25441
26091
|
isSharing,
|
|
25442
26092
|
handleShare
|
|
25443
26093
|
} = useShareButton(props);
|
|
25444
|
-
var viewProps = _objectWithoutPropertiesLoose(props, _excluded$
|
|
26094
|
+
var viewProps = _objectWithoutPropertiesLoose(props, _excluded$1b);
|
|
25445
26095
|
return /*#__PURE__*/React__default.createElement(ShareButtonView, Object.assign({}, viewProps, {
|
|
25446
26096
|
isSupported: isSupported,
|
|
25447
26097
|
isSharing: isSharing,
|
|
@@ -25450,82 +26100,6 @@
|
|
|
25450
26100
|
};
|
|
25451
26101
|
var ShareButton = ShareButtonComponent;
|
|
25452
26102
|
|
|
25453
|
-
var getThemes$2 = themeMode => {
|
|
25454
|
-
return {
|
|
25455
|
-
default: {
|
|
25456
|
-
indicator: {
|
|
25457
|
-
backgroundColor: 'color.gray.400'
|
|
25458
|
-
},
|
|
25459
|
-
label: {
|
|
25460
|
-
color: 'color.gray.700'
|
|
25461
|
-
}
|
|
25462
|
-
},
|
|
25463
|
-
info: {
|
|
25464
|
-
indicator: {
|
|
25465
|
-
backgroundColor: 'color.blue.500'
|
|
25466
|
-
},
|
|
25467
|
-
label: {
|
|
25468
|
-
color: 'color.blue.700'
|
|
25469
|
-
}
|
|
25470
|
-
},
|
|
25471
|
-
success: {
|
|
25472
|
-
indicator: {
|
|
25473
|
-
backgroundColor: 'color.green.500'
|
|
25474
|
-
},
|
|
25475
|
-
label: {
|
|
25476
|
-
color: 'color.green.700'
|
|
25477
|
-
}
|
|
25478
|
-
},
|
|
25479
|
-
warning: {
|
|
25480
|
-
indicator: {
|
|
25481
|
-
backgroundColor: 'color.orange.500'
|
|
25482
|
-
},
|
|
25483
|
-
label: {
|
|
25484
|
-
color: 'color.orange.700'
|
|
25485
|
-
}
|
|
25486
|
-
},
|
|
25487
|
-
error: {
|
|
25488
|
-
indicator: {
|
|
25489
|
-
backgroundColor: 'color.red.500'
|
|
25490
|
-
},
|
|
25491
|
-
label: {
|
|
25492
|
-
color: 'color.red.700'
|
|
25493
|
-
}
|
|
25494
|
-
}
|
|
25495
|
-
};
|
|
25496
|
-
};
|
|
25497
|
-
|
|
25498
|
-
var _excluded$1b = ["label", "status", "views", "themeMode"];
|
|
25499
|
-
var StatusIndicatorView = _ref => {
|
|
25500
|
-
var {
|
|
25501
|
-
label,
|
|
25502
|
-
status = 'default',
|
|
25503
|
-
views,
|
|
25504
|
-
themeMode: elementMode
|
|
25505
|
-
} = _ref,
|
|
25506
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$1b);
|
|
25507
|
-
var {
|
|
25508
|
-
themeMode
|
|
25509
|
-
} = appStudio.useTheme();
|
|
25510
|
-
var themes = getThemes$2();
|
|
25511
|
-
return /*#__PURE__*/React__default.createElement(appStudio.Horizontal, Object.assign({
|
|
25512
|
-
alignItems: "center",
|
|
25513
|
-
gap: 8,
|
|
25514
|
-
role: "status-indicator"
|
|
25515
|
-
}, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
25516
|
-
role: "status-dot",
|
|
25517
|
-
width: "8px",
|
|
25518
|
-
height: "8px",
|
|
25519
|
-
borderRadius: "50%"
|
|
25520
|
-
}, themes[status].indicator, views == null ? void 0 : views.indicator)), label && (/*#__PURE__*/React__default.createElement(Text, Object.assign({
|
|
25521
|
-
role: "status-label",
|
|
25522
|
-
fontSize: "14px",
|
|
25523
|
-
lineHeight: "20px"
|
|
25524
|
-
}, themes[status].label, views == null ? void 0 : views.label), label)));
|
|
25525
|
-
};
|
|
25526
|
-
|
|
25527
|
-
var StatusIndicator = props => (/*#__PURE__*/React__default.createElement(StatusIndicatorView, Object.assign({}, props)));
|
|
25528
|
-
|
|
25529
26103
|
var useSidebarState = function useSidebarState(defaultExpanded, expanded, onExpandedChange, breakpoint) {
|
|
25530
26104
|
if (defaultExpanded === void 0) {
|
|
25531
26105
|
defaultExpanded = true;
|
|
@@ -37271,6 +37845,7 @@
|
|
|
37271
37845
|
exports.MoonIcon = MoonIcon;
|
|
37272
37846
|
exports.NavigationMenu = NavigationMenu;
|
|
37273
37847
|
exports.NotificationIcon = NotificationIcon;
|
|
37848
|
+
exports.OKR = OKR;
|
|
37274
37849
|
exports.OTPInput = OTPInput;
|
|
37275
37850
|
exports.OpenEyeIcon = OpenEyeIcon;
|
|
37276
37851
|
exports.Pagination = Pagination;
|