@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
|
@@ -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
|
|
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(
|
|
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
|
-
|
|
7792
|
-
}, card.
|
|
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))
|
|
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.
|
|
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),
|
|
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
|
|
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
|
-
} =
|
|
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 =
|
|
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
|
-
} =
|
|
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(
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
}
|
|
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(
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
}
|
|
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')
|
|
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),
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
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$
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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;
|