cozy-search 2.6.2 → 2.7.1
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/Assistant/AssistantAvatar.js +3 -1
- package/dist/components/Assistant/AssistantContainer.js +3 -1
- package/dist/components/Assistant/AssistantMenu.d.ts +16 -0
- package/dist/components/Assistant/AssistantMenu.js +160 -0
- package/dist/components/Assistant/AssistantSelection.d.ts +12 -1
- package/dist/components/Assistant/AssistantSelection.js +55 -115
- package/dist/components/Assistant/AssistantSelectionItem.js +3 -1
- package/dist/components/Assistant/AssistantSidebarItem.d.ts +9 -0
- package/dist/components/Assistant/AssistantSidebarItem.js +108 -0
- package/dist/components/Assistant/styles.styl +13 -0
- package/dist/components/Conversations/Conversation.js +74 -14
- package/dist/components/Conversations/ConversationBar.js +13 -5
- package/dist/components/Conversations/ConversationComposer.js +53 -23
- package/dist/components/Conversations/ConversationListItem.js +20 -40
- package/dist/components/Conversations/ConversationListItemWider.js +14 -11
- package/dist/components/Conversations/styles.styl +110 -23
- package/dist/components/CozyAssistantRuntimeProvider.js +15 -8
- package/dist/components/CreateAssistantSteps/BasicInfoStep.js +37 -1
- package/dist/components/CreateAssistantSteps/Provider.js +1 -0
- package/dist/components/CreateAssistantSteps/ProviderSelectionStep.js +1 -0
- package/dist/components/CreateAssistantSteps/styles.styl +14 -0
- package/dist/components/KnowledgeBase/FolderPickerDialog.js +3 -1
- package/dist/components/KnowledgeBase/KnowledgeBaseChip.d.ts +7 -5
- package/dist/components/KnowledgeBase/KnowledgeBaseChip.js +65 -31
- package/dist/components/KnowledgeBase/conversationAssistant.d.ts +2 -1
- package/dist/components/KnowledgeBase/conversationAssistant.js +6 -1
- package/dist/components/KnowledgeBase/conversationAssistant.spec.js +24 -0
- package/dist/components/KnowledgeBase/styles.styl +18 -0
- package/dist/components/Messages/AssistantMessage.js +25 -21
- package/dist/components/Messages/UserMessage.js +4 -1
- package/dist/components/Messages/styles.styl +41 -0
- package/dist/components/Search/SearchBarMobile.js +13 -5
- package/dist/components/Sidebar/index.js +55 -30
- package/dist/components/Sidebar/styles.styl +12 -11
- package/dist/components/TwakeKnowledges/SourceButton.d.ts +14 -0
- package/dist/components/TwakeKnowledges/SourceButton.js +98 -0
- package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.d.ts +9 -0
- package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.js +75 -50
- package/dist/components/TwakeKnowledges/styles.styl +29 -2
- package/dist/components/Views/AssistantView.js +9 -1
- package/dist/components/Views/CreateAssistantDialog.js +5 -1
- package/dist/components/Views/DeleteAssistantDialog.js +1 -0
- package/dist/components/Views/EditAssistantDialog.js +5 -1
- package/dist/hooks/useConversation.d.ts +2 -2
- package/dist/hooks/useConversation.js +25 -4
- package/dist/hooks/useConversation.spec.js +14 -2
- package/dist/hooks/useConversation.spec.jsx +21 -3
- package/dist/locales/en.json +5 -1
- package/dist/locales/fr.json +6 -2
- package/dist/locales/index.js +21 -5
- package/dist/locales/ru.json +5 -1
- package/dist/locales/vi.json +5 -1
- package/dist/stylesheet.css +253 -30
- package/package.json +3 -3
- package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.d.ts +0 -13
- package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.js +0 -80
- package/dist/components/TwakeKnowledges/WebSearchChip.d.ts +0 -5
- package/dist/components/TwakeKnowledges/WebSearchChip.js +0 -75
|
@@ -9,24 +9,25 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = require("@assistant-ui/react");
|
|
11
11
|
|
|
12
|
-
var _twakeIcons = require("@linagora/twake-icons");
|
|
13
|
-
|
|
14
12
|
var _react2 = _interopRequireDefault(require("react"));
|
|
15
13
|
|
|
16
14
|
var _Alert = _interopRequireDefault(require("cozy-ui/transpiled/react/Alert"));
|
|
17
15
|
|
|
18
|
-
var _Box = _interopRequireDefault(require("cozy-ui/transpiled/react/Box"));
|
|
19
|
-
|
|
20
|
-
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
21
|
-
|
|
22
16
|
var _twakeI18n = require("twake-i18n");
|
|
23
17
|
|
|
24
18
|
var _MarkdownText = _interopRequireDefault(require("./MarkdownText"));
|
|
25
19
|
|
|
26
|
-
var _TwakeAssistantIcon = require("../AssistantIcon/TwakeAssistantIcon");
|
|
27
|
-
|
|
28
20
|
var _Sources = _interopRequireDefault(require("../Conversations/Sources/Sources"));
|
|
29
21
|
|
|
22
|
+
var styles = {
|
|
23
|
+
"cozyThread-user-messages": "styles__cozyThread-user-messages___3Hfj-",
|
|
24
|
+
"cozyThread-user-messages--light": "styles__cozyThread-user-messages--light___1jBny",
|
|
25
|
+
"cozyThread-user-messages--dark": "styles__cozyThread-user-messages--dark___1Om3B",
|
|
26
|
+
"thinking-dots": "styles__thinking-dots___1HwKW",
|
|
27
|
+
"thinking-dot": "styles__thinking-dot___1muTY",
|
|
28
|
+
"thinking-bounce": "styles__thinking-bounce___2IfNu"
|
|
29
|
+
};
|
|
30
|
+
|
|
30
31
|
var useIsErrorMessage = function useIsErrorMessage() {
|
|
31
32
|
return (0, _react.useMessage)(function (s) {
|
|
32
33
|
var _s$metadata, _s$metadata$custom;
|
|
@@ -55,19 +56,22 @@ var AssistantMessage = function AssistantMessage() {
|
|
|
55
56
|
});
|
|
56
57
|
return /*#__PURE__*/_react2.default.createElement(_react.MessagePrimitive.Root, {
|
|
57
58
|
className: "u-mt-1-half"
|
|
58
|
-
}, isThinking &&
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
59
|
+
}, isThinking &&
|
|
60
|
+
/*#__PURE__*/
|
|
61
|
+
// Three dots bouncing one after the other while the answer is
|
|
62
|
+
// awaited (the design's "icon animation"); the label is for
|
|
63
|
+
// screen readers only.
|
|
64
|
+
_react2.default.createElement("div", {
|
|
65
|
+
role: "status",
|
|
66
|
+
"aria-label": t('assistant.message.running'),
|
|
67
|
+
className: styles['thinking-dots']
|
|
68
|
+
}, /*#__PURE__*/_react2.default.createElement("span", {
|
|
69
|
+
className: styles['thinking-dot']
|
|
70
|
+
}), /*#__PURE__*/_react2.default.createElement("span", {
|
|
71
|
+
className: styles['thinking-dot']
|
|
72
|
+
}), /*#__PURE__*/_react2.default.createElement("span", {
|
|
73
|
+
className: styles['thinking-dot']
|
|
74
|
+
})), isError ? /*#__PURE__*/_react2.default.createElement(_Alert.default, {
|
|
71
75
|
severity: "error"
|
|
72
76
|
}, t('assistant.default_error')) : /*#__PURE__*/_react2.default.createElement(_react.MessagePrimitive.Content, {
|
|
73
77
|
components: {
|
|
@@ -22,7 +22,10 @@ var _CozyTheme = require("cozy-ui-plus/dist/providers/CozyTheme");
|
|
|
22
22
|
var styles = {
|
|
23
23
|
"cozyThread-user-messages": "styles__cozyThread-user-messages___3Hfj-",
|
|
24
24
|
"cozyThread-user-messages--light": "styles__cozyThread-user-messages--light___1jBny",
|
|
25
|
-
"cozyThread-user-messages--dark": "styles__cozyThread-user-messages--dark___1Om3B"
|
|
25
|
+
"cozyThread-user-messages--dark": "styles__cozyThread-user-messages--dark___1Om3B",
|
|
26
|
+
"thinking-dots": "styles__thinking-dots___1HwKW",
|
|
27
|
+
"thinking-dot": "styles__thinking-dot___1muTY",
|
|
28
|
+
"thinking-bounce": "styles__thinking-bounce___2IfNu"
|
|
26
29
|
};
|
|
27
30
|
|
|
28
31
|
var UserMessage = function UserMessage() {
|
|
@@ -7,3 +7,44 @@
|
|
|
7
7
|
|
|
8
8
|
&--dark
|
|
9
9
|
background var(--grey900)
|
|
10
|
+
|
|
11
|
+
// The 24px "icon animation" of the design: three 3.8px dots, 6.09px apart,
|
|
12
|
+
// each rising 2.855px and growing to 115% over 250ms then falling back,
|
|
13
|
+
// 150ms after the previous one, on a 1.2s loop.
|
|
14
|
+
.thinking-dots
|
|
15
|
+
display flex
|
|
16
|
+
align-items center
|
|
17
|
+
gap 2.28px
|
|
18
|
+
width 24px
|
|
19
|
+
height 24px
|
|
20
|
+
padding-left 4px
|
|
21
|
+
margin-left 8px
|
|
22
|
+
box-sizing border-box
|
|
23
|
+
|
|
24
|
+
.thinking-dot
|
|
25
|
+
display block
|
|
26
|
+
width 3.8px
|
|
27
|
+
height 3.8px
|
|
28
|
+
border-radius 50%
|
|
29
|
+
background-color #51ACF0
|
|
30
|
+
animation thinking-bounce 1.2s cubic-bezier(0.33, 0, 0.67, 1) infinite
|
|
31
|
+
|
|
32
|
+
&:nth-child(2)
|
|
33
|
+
animation-delay 150ms
|
|
34
|
+
|
|
35
|
+
&:nth-child(3)
|
|
36
|
+
animation-delay 300ms
|
|
37
|
+
|
|
38
|
+
@keyframes thinking-bounce
|
|
39
|
+
0%
|
|
40
|
+
transform none
|
|
41
|
+
20.83%
|
|
42
|
+
transform translateY(-2.855px) scale(1.15)
|
|
43
|
+
41.67%
|
|
44
|
+
transform none
|
|
45
|
+
100%
|
|
46
|
+
transform none
|
|
47
|
+
|
|
48
|
+
@media (prefers-reduced-motion: reduce)
|
|
49
|
+
.thinking-dot
|
|
50
|
+
animation none
|
|
@@ -13,10 +13,20 @@ var _SearchBar = _interopRequireDefault(require("cozy-ui/transpiled/react/Search
|
|
|
13
13
|
|
|
14
14
|
var styles = {
|
|
15
15
|
"composerContainer": "styles__composerContainer___3bNfY",
|
|
16
|
+
"composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
|
|
17
|
+
"composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
|
|
18
|
+
"composer-dock": "styles__composer-dock___2nPT8",
|
|
16
19
|
"composerActions": "styles__composerActions___2xQEH",
|
|
20
|
+
"welcome": "styles__welcome___ozY_t",
|
|
21
|
+
"welcome-halo": "styles__welcome-halo___3jlz_",
|
|
22
|
+
"welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
|
|
23
|
+
"welcome-title": "styles__welcome-title___sBOKX",
|
|
17
24
|
"conversationBar": "styles__conversationBar___2J-Us",
|
|
18
25
|
"conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
|
|
26
|
+
"viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
|
|
27
|
+
"viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
|
|
19
28
|
"conversationViewport": "styles__conversationViewport___24jYX",
|
|
29
|
+
"conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
|
|
20
30
|
"conversationBar-input": "styles__conversationBar-input___2DfdZ",
|
|
21
31
|
"chatConversation": "styles__chatConversation___2EmkA",
|
|
22
32
|
"conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
|
|
@@ -35,14 +45,12 @@ var styles = {
|
|
|
35
45
|
"cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
|
|
36
46
|
"conversation-list-item": "styles__conversation-list-item___rQapI",
|
|
37
47
|
"conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
|
|
38
|
-
"conversation-list-item--selected
|
|
39
|
-
"conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
|
|
48
|
+
"conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
|
|
40
49
|
"conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
|
|
41
|
-
"conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
|
|
42
50
|
"conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
|
|
43
51
|
"conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
|
|
44
|
-
"conversation-list-item-
|
|
45
|
-
"conversation-list-item-
|
|
52
|
+
"conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
|
|
53
|
+
"conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
|
|
46
54
|
};
|
|
47
55
|
|
|
48
56
|
var SearchBarMobile = function SearchBarMobile(_ref) {
|
|
@@ -11,14 +11,14 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
|
|
14
|
-
var _twakeIcons = require("@linagora/twake-icons");
|
|
15
|
-
|
|
16
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
15
|
|
|
18
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
20
18
|
var _reactRouterDom = require("react-router-dom");
|
|
21
19
|
|
|
20
|
+
var _twakeIcons = require("@linagora/twake-icons");
|
|
21
|
+
|
|
22
22
|
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
23
23
|
|
|
24
24
|
var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
|
|
@@ -39,6 +39,10 @@ var _useConversation2 = _interopRequireDefault(require("../../hooks/useConversat
|
|
|
39
39
|
|
|
40
40
|
var _useFetchConversations = _interopRequireDefault(require("../../hooks/useFetchConversations"));
|
|
41
41
|
|
|
42
|
+
var _AssistantSelection = _interopRequireDefault(require("../Assistant/AssistantSelection"));
|
|
43
|
+
|
|
44
|
+
var _AssistantSidebarItem = _interopRequireDefault(require("../Assistant/AssistantSidebarItem"));
|
|
45
|
+
|
|
42
46
|
var _AssistantProvider = require("../AssistantProvider");
|
|
43
47
|
|
|
44
48
|
var _PrettyScrollbar = _interopRequireDefault(require("../Containers/PrettyScrollbar"));
|
|
@@ -51,8 +55,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
51
55
|
|
|
52
56
|
var styles = {
|
|
53
57
|
"sidebar-container": "styles__sidebar-container___155dK",
|
|
58
|
+
"sidebar-rail": "styles__sidebar-rail___3-veF",
|
|
54
59
|
"sidebar-overlay--mobile": "styles__sidebar-overlay--mobile___vvKHu",
|
|
55
|
-
"
|
|
60
|
+
"sidebar-bar--mobile": "styles__sidebar-bar--mobile___lHGA9"
|
|
56
61
|
};
|
|
57
62
|
|
|
58
63
|
var Sidebar = function Sidebar(_ref) {
|
|
@@ -85,12 +90,15 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
85
90
|
var _useFetchConversation = (0, _useFetchConversations.default)(),
|
|
86
91
|
conversations = _useFetchConversation.conversations,
|
|
87
92
|
hasMore = _useFetchConversation.hasMore,
|
|
88
|
-
fetchMore = _useFetchConversation.fetchMore; //
|
|
89
|
-
// conversation
|
|
90
|
-
//
|
|
93
|
+
fetchMore = _useFetchConversation.fetchMore; // Closed on mobile, the sidebar shrinks to an opaque bar over the top of
|
|
94
|
+
// the conversation (the toggle and the assistant chip), the text
|
|
95
|
+
// scrolling under it.
|
|
96
|
+
|
|
91
97
|
|
|
98
|
+
var isMobileBar = !sidebarOpen && isMobile; // Closed on desktop, the sidebar is a narrow rail with the toggle and the
|
|
99
|
+
// new-chat button centered in it.
|
|
92
100
|
|
|
93
|
-
var
|
|
101
|
+
var isRail = !sidebarOpen && !isMobile;
|
|
94
102
|
|
|
95
103
|
var onToggleSidebar = function onToggleSidebar() {
|
|
96
104
|
setSidebarOpen(!sidebarOpen);
|
|
@@ -113,43 +121,56 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
113
121
|
};
|
|
114
122
|
|
|
115
123
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
124
|
+
// The host's bottom padding of the sidebar is not for the bar, which
|
|
125
|
+
// must be exactly 48px: the conversation is padded for that height
|
|
126
|
+
className: (0, _classnames.default)('u-flex u-flex-column u-bdw-1', !isMobileBar && className, (_cx = {
|
|
127
|
+
'u-h-100': !isMobileBar,
|
|
128
|
+
'u-w-100': isMobileBar
|
|
129
|
+
}, (0, _defineProperty2.default)(_cx, styles['sidebar-container'], sidebarOpen), (0, _defineProperty2.default)(_cx, styles['sidebar-rail'], isRail), (0, _defineProperty2.default)(_cx, styles['sidebar-bar--mobile'], isMobileBar), (0, _defineProperty2.default)(_cx, 'u-left-0 u-pos-absolute', isMobile), _cx))
|
|
119
130
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
120
|
-
className:
|
|
131
|
+
className: (0, _classnames.default)('u-flex u-flex-items-center', {
|
|
132
|
+
'u-ph-1-half u-pv-1 u-flex-justify-between': sidebarOpen,
|
|
133
|
+
'u-ph-1 u-pv-1 u-flex-justify-center': isRail,
|
|
134
|
+
'u-ph-1 u-pv-half u-flex-justify-between': isMobileBar
|
|
135
|
+
})
|
|
121
136
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
122
|
-
className:
|
|
123
|
-
'u-bdrs-circle': isFloatingToggle
|
|
124
|
-
}, styles['menu-toggle-floating'], isFloatingToggle))
|
|
137
|
+
className: "u-flex u-flex-items-center"
|
|
125
138
|
}, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
126
|
-
size: "
|
|
127
|
-
edge: "start",
|
|
128
|
-
className: "u-bdrs-6",
|
|
139
|
+
size: "small",
|
|
129
140
|
onClick: onToggleSidebar,
|
|
130
141
|
"aria-label": t('assistant.sidebar.toggle_sidebar')
|
|
131
142
|
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
132
143
|
icon: _twakeIcons.Menu,
|
|
144
|
+
size: 16,
|
|
133
145
|
"aria-hidden": "true"
|
|
134
|
-
}))
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
146
|
+
})), isMobileBar && (0, _cozyFlags.default)('cozy.assistant.create-assistant.enabled') &&
|
|
147
|
+
/*#__PURE__*/
|
|
148
|
+
// A conversation keeps the assistant it started with: picking
|
|
149
|
+
// another one starts a new conversation, as from the sidebar
|
|
150
|
+
_react.default.createElement(_AssistantSelection.default, {
|
|
151
|
+
borderless: true,
|
|
152
|
+
className: "u-ml-half",
|
|
153
|
+
onSelect: createNewConversation
|
|
154
|
+
})), /*#__PURE__*/_react.default.createElement("div", null, sidebarOpen && (0, _cozyFlags.default)('cozy.assistant.search-conversation.enabled') && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
155
|
+
size: "small",
|
|
138
156
|
onClick: onToggleSearch,
|
|
139
157
|
"aria-label": t('assistant.sidebar.toggle_search')
|
|
140
158
|
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
141
159
|
icon: _twakeIcons.Magnifier,
|
|
160
|
+
size: 16,
|
|
142
161
|
"aria-hidden": "true"
|
|
143
162
|
})), sidebarOpen && isMobile && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
144
|
-
size: "
|
|
145
|
-
className: "u-bdrs-6",
|
|
163
|
+
size: "small",
|
|
146
164
|
onClick: onToggleSidebar,
|
|
147
165
|
"aria-label": t('assistant.sidebar.close_sidebar')
|
|
148
166
|
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
149
167
|
icon: _twakeIcons.CrossSmall,
|
|
168
|
+
size: 16,
|
|
150
169
|
"aria-hidden": "true"
|
|
151
|
-
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
152
|
-
className:
|
|
170
|
+
})))), !isMobileBar && /*#__PURE__*/_react.default.createElement("div", {
|
|
171
|
+
className: (0, _classnames.default)('u-ph-1 u-pb-half', {
|
|
172
|
+
'u-flex u-flex-justify-center': isRail
|
|
173
|
+
})
|
|
153
174
|
}, sidebarOpen ? /*#__PURE__*/_react.default.createElement(_Buttons.default, {
|
|
154
175
|
className: "u-w-100 u-bdrs-6",
|
|
155
176
|
label: t('assistant.sidebar.create_new'),
|
|
@@ -159,7 +180,7 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
159
180
|
fullWidth: true,
|
|
160
181
|
variant: "primary",
|
|
161
182
|
onClick: onCreateNewConversation
|
|
162
|
-
}) :
|
|
183
|
+
}) : /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
163
184
|
size: "medium",
|
|
164
185
|
className: "u-bg-primaryColor u-white u-bdrs-6",
|
|
165
186
|
onClick: onCreateNewConversation,
|
|
@@ -167,11 +188,15 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
167
188
|
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
168
189
|
icon: _twakeIcons.Plus,
|
|
169
190
|
"aria-hidden": "true"
|
|
170
|
-
}))), sidebarOpen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(
|
|
171
|
-
|
|
172
|
-
|
|
191
|
+
}))), sidebarOpen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _cozyFlags.default)('cozy.assistant.create-assistant.enabled') && /*#__PURE__*/_react.default.createElement("div", {
|
|
192
|
+
className: "u-ph-1 u-mt-1"
|
|
193
|
+
}, /*#__PURE__*/_react.default.createElement(_AssistantSidebarItem.default, null)), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
194
|
+
variant: "caption",
|
|
195
|
+
color: "textSecondary",
|
|
196
|
+
component: "h2",
|
|
197
|
+
className: "u-ph-1 u-mt-1 u-mb-half"
|
|
173
198
|
}, t('assistant.sidebar.recent_chats')), /*#__PURE__*/_react.default.createElement(_PrettyScrollbar.default, {
|
|
174
|
-
className: "u-flex-auto u-ov-auto u-pb-half"
|
|
199
|
+
className: "u-flex-auto u-ov-auto u-ph-1 u-pb-half"
|
|
175
200
|
}, /*#__PURE__*/_react.default.createElement(_ConversationList.default, {
|
|
176
201
|
conversations: conversations,
|
|
177
202
|
currentConversationId: currentConversationId,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
.sidebar-container
|
|
4
4
|
width 236px
|
|
5
5
|
min-width 236px
|
|
6
|
-
background-color var(--
|
|
6
|
+
background-color var(--defaultBackgroundColor)
|
|
7
7
|
z-index calc(var(--zIndex-modal) + 30)
|
|
8
8
|
|
|
9
9
|
+mobile()
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
width calc(100vw - 48px)
|
|
12
12
|
min-width calc(100vw - 48px)
|
|
13
13
|
|
|
14
|
+
.sidebar-rail
|
|
15
|
+
width 72px
|
|
16
|
+
min-width 72px
|
|
17
|
+
background-color var(--defaultBackgroundColor)
|
|
18
|
+
|
|
14
19
|
.sidebar-overlay--mobile
|
|
15
20
|
background-color var(--actionColorActive)
|
|
16
21
|
position fixed
|
|
@@ -20,13 +25,9 @@
|
|
|
20
25
|
bottom 0
|
|
21
26
|
z-index calc(var(--zIndex-modal) + 20)
|
|
22
27
|
|
|
23
|
-
.
|
|
24
|
-
//
|
|
25
|
-
// scrolling
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// element's opacity) precisely so it does not fade the icon too.
|
|
30
|
-
// unquote() keeps Stylus from parsing `in` as an operator.
|
|
31
|
-
background-color unquote('color-mix(in srgb, var(--paperBackgroundColor) 60%, transparent)')
|
|
32
|
-
box-shadow 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15)
|
|
28
|
+
.sidebar-bar--mobile
|
|
29
|
+
// Closed on mobile: an opaque 48px bar over the top of the conversation,
|
|
30
|
+
// the text scrolling under it. Above the conversation, below the open
|
|
31
|
+
// sidebar and its overlay.
|
|
32
|
+
background-color var(--paperBackgroundColor)
|
|
33
|
+
z-index calc(var(--zIndex-modal) + 15)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export namespace CHIP_CLASSES {
|
|
2
|
+
let icon: string;
|
|
3
|
+
let label: string;
|
|
4
|
+
}
|
|
5
|
+
export default SourceButton;
|
|
6
|
+
/**
|
|
7
|
+
* A knowledge source of the composer (web search, emails, Drive folder),
|
|
8
|
+
* as the 32px icon button of the design. `icon` is a twake-icons component,
|
|
9
|
+
* monochrome (tinted: primary when active, secondary text color otherwise)
|
|
10
|
+
* or multicolor with `preserveColor` (dimmed when inactive). Without
|
|
11
|
+
* onClick it is a static indicator, not a button.
|
|
12
|
+
*/
|
|
13
|
+
declare const SourceButton: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
|
|
14
|
+
import React from 'react';
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.CHIP_CLASSES = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _twakeIcons = require("@linagora/twake-icons");
|
|
21
|
+
|
|
22
|
+
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
23
|
+
|
|
24
|
+
var _excluded = ["icon", "label", "isActive", "preserveColor", "onClick", "className"];
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
var styles = {
|
|
31
|
+
"source-button": "styles__source-button___9t9wI",
|
|
32
|
+
"source-button-image": "styles__source-button-image___2batD",
|
|
33
|
+
"source-button-image--inactive": "styles__source-button-image--inactive___3hs2C",
|
|
34
|
+
"source-chip": "styles__source-chip___1h51w",
|
|
35
|
+
"source-chip-icon": "styles__source-chip-icon___3-N0x",
|
|
36
|
+
"source-chip-label": "styles__source-chip-label___2mLIx"
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The classes giving a cozy-ui Chip the spacing of the composer chips of the
|
|
40
|
+
* design (with `styles['source-chip']` on the chip itself).
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
var CHIP_CLASSES = {
|
|
44
|
+
icon: styles['source-chip-icon'],
|
|
45
|
+
label: styles['source-chip-label']
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* A knowledge source of the composer (web search, emails, Drive folder),
|
|
49
|
+
* as the 32px icon button of the design. `icon` is a twake-icons component,
|
|
50
|
+
* monochrome (tinted: primary when active, secondary text color otherwise)
|
|
51
|
+
* or multicolor with `preserveColor` (dimmed when inactive). Without
|
|
52
|
+
* onClick it is a static indicator, not a button.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
exports.CHIP_CLASSES = CHIP_CLASSES;
|
|
56
|
+
var SourceButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
57
|
+
var icon = _ref.icon,
|
|
58
|
+
label = _ref.label,
|
|
59
|
+
_ref$isActive = _ref.isActive,
|
|
60
|
+
isActive = _ref$isActive === void 0 ? true : _ref$isActive,
|
|
61
|
+
_ref$preserveColor = _ref.preserveColor,
|
|
62
|
+
preserveColor = _ref$preserveColor === void 0 ? false : _ref$preserveColor,
|
|
63
|
+
onClick = _ref.onClick,
|
|
64
|
+
className = _ref.className,
|
|
65
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
66
|
+
var content = preserveColor ? /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
67
|
+
icon: icon,
|
|
68
|
+
size: 20,
|
|
69
|
+
preserveColor: true,
|
|
70
|
+
className: (0, _classnames.default)((0, _defineProperty2.default)({}, styles['source-button-image--inactive'], !isActive))
|
|
71
|
+
}) : /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
72
|
+
icon: icon,
|
|
73
|
+
size: 20,
|
|
74
|
+
color: isActive ? 'var(--primaryColor)' : 'var(--secondaryTextColor)'
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
if (!onClick) {
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
|
|
79
|
+
ref: ref,
|
|
80
|
+
role: "img",
|
|
81
|
+
"aria-label": label,
|
|
82
|
+
title: label,
|
|
83
|
+
className: (0, _classnames.default)('u-flex u-flex-items-center u-flex-justify-center', styles['source-button'], className)
|
|
84
|
+
}, props), content);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return /*#__PURE__*/_react.default.createElement(_IconButton.default, (0, _extends2.default)({
|
|
88
|
+
ref: ref,
|
|
89
|
+
size: "small",
|
|
90
|
+
"aria-label": label,
|
|
91
|
+
title: label,
|
|
92
|
+
onClick: onClick,
|
|
93
|
+
className: (0, _classnames.default)(styles['source-button'], className)
|
|
94
|
+
}, props), content);
|
|
95
|
+
});
|
|
96
|
+
SourceButton.displayName = 'SourceButton';
|
|
97
|
+
var _default = SourceButton;
|
|
98
|
+
exports.default = _default;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export default TwakeKnowledgeSelector;
|
|
2
|
+
/**
|
|
3
|
+
* The knowledge sources of the composer. The Drive source is always on:
|
|
4
|
+
* on desktop it is a chip named after the knowledge base folder (the
|
|
5
|
+
* whole Drive without one), whose menu opens the folder or changes it;
|
|
6
|
+
* on mobile it is an icon button. Web search (a toggle) and emails are
|
|
7
|
+
* icon buttons behind their flags: emails show on the default assistant
|
|
8
|
+
* always, on a custom assistant once enabled in the wizard. Sources are
|
|
9
|
+
* enabled/disabled from the wizard, never from the composer.
|
|
10
|
+
*/
|
|
2
11
|
declare function TwakeKnowledgeSelector({ className, websearchEnabled, onToggleWebsearch }: {
|
|
3
12
|
className: any;
|
|
4
13
|
websearchEnabled: any;
|