cozy-search 2.6.2 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/components/Assistant/AssistantAvatar.js +3 -1
  2. package/dist/components/Assistant/AssistantContainer.js +3 -1
  3. package/dist/components/Assistant/AssistantMenu.d.ts +16 -0
  4. package/dist/components/Assistant/AssistantMenu.js +160 -0
  5. package/dist/components/Assistant/AssistantSelection.d.ts +12 -1
  6. package/dist/components/Assistant/AssistantSelection.js +55 -115
  7. package/dist/components/Assistant/AssistantSelectionItem.js +3 -1
  8. package/dist/components/Assistant/AssistantSidebarItem.d.ts +9 -0
  9. package/dist/components/Assistant/AssistantSidebarItem.js +108 -0
  10. package/dist/components/Assistant/styles.styl +13 -0
  11. package/dist/components/Conversations/Conversation.js +74 -14
  12. package/dist/components/Conversations/ConversationBar.js +13 -5
  13. package/dist/components/Conversations/ConversationComposer.js +53 -23
  14. package/dist/components/Conversations/ConversationListItem.js +20 -40
  15. package/dist/components/Conversations/ConversationListItemWider.js +14 -11
  16. package/dist/components/Conversations/styles.styl +110 -23
  17. package/dist/components/CozyAssistantRuntimeProvider.js +15 -8
  18. package/dist/components/CreateAssistantSteps/BasicInfoStep.js +37 -1
  19. package/dist/components/CreateAssistantSteps/Provider.js +1 -0
  20. package/dist/components/CreateAssistantSteps/ProviderSelectionStep.js +1 -0
  21. package/dist/components/CreateAssistantSteps/styles.styl +14 -0
  22. package/dist/components/KnowledgeBase/FolderPickerDialog.js +3 -1
  23. package/dist/components/KnowledgeBase/KnowledgeBaseChip.d.ts +7 -5
  24. package/dist/components/KnowledgeBase/KnowledgeBaseChip.js +65 -31
  25. package/dist/components/KnowledgeBase/conversationAssistant.d.ts +2 -1
  26. package/dist/components/KnowledgeBase/conversationAssistant.js +6 -1
  27. package/dist/components/KnowledgeBase/conversationAssistant.spec.js +24 -0
  28. package/dist/components/KnowledgeBase/styles.styl +18 -0
  29. package/dist/components/Messages/AssistantMessage.js +25 -21
  30. package/dist/components/Messages/UserMessage.js +4 -1
  31. package/dist/components/Messages/styles.styl +41 -0
  32. package/dist/components/Search/SearchBarMobile.js +13 -5
  33. package/dist/components/Sidebar/index.js +55 -30
  34. package/dist/components/Sidebar/styles.styl +12 -11
  35. package/dist/components/TwakeKnowledges/SourceButton.d.ts +14 -0
  36. package/dist/components/TwakeKnowledges/SourceButton.js +98 -0
  37. package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.d.ts +9 -0
  38. package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.js +75 -50
  39. package/dist/components/TwakeKnowledges/styles.styl +29 -2
  40. package/dist/components/Views/AssistantView.js +9 -1
  41. package/dist/components/Views/CreateAssistantDialog.js +5 -1
  42. package/dist/components/Views/DeleteAssistantDialog.js +1 -0
  43. package/dist/components/Views/EditAssistantDialog.js +5 -1
  44. package/dist/hooks/useConversation.d.ts +2 -2
  45. package/dist/hooks/useConversation.js +25 -4
  46. package/dist/hooks/useConversation.spec.js +14 -2
  47. package/dist/hooks/useConversation.spec.jsx +21 -3
  48. package/dist/locales/en.json +5 -1
  49. package/dist/locales/fr.json +6 -2
  50. package/dist/locales/index.js +21 -5
  51. package/dist/locales/ru.json +5 -1
  52. package/dist/locales/vi.json +5 -1
  53. package/dist/stylesheet.css +253 -30
  54. package/package.json +2 -2
  55. package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.d.ts +0 -13
  56. package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.js +0 -80
  57. package/dist/components/TwakeKnowledges/WebSearchChip.d.ts +0 -5
  58. package/dist/components/TwakeKnowledges/WebSearchChip.js +0 -75
@@ -7,11 +7,21 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = require("@assistant-ui/react");
11
15
 
12
16
  var _classnames = _interopRequireDefault(require("classnames"));
13
17
 
14
- var _react2 = _interopRequireDefault(require("react"));
18
+ var _react2 = _interopRequireWildcard(require("react"));
19
+
20
+ var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
21
+
22
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
23
+
24
+ var _CozyTheme = require("cozy-ui/transpiled/react/providers/CozyTheme");
15
25
 
16
26
  var _twakeI18n = require("twake-i18n");
17
27
 
@@ -21,12 +31,26 @@ var _AssistantMessage = _interopRequireDefault(require("../Messages/AssistantMes
21
31
 
22
32
  var _UserMessage = _interopRequireDefault(require("../Messages/UserMessage"));
23
33
 
34
+ 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); }
35
+
36
+ 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; }
37
+
24
38
  var styles = {
25
39
  "composerContainer": "styles__composerContainer___3bNfY",
40
+ "composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
41
+ "composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
42
+ "composer-dock": "styles__composer-dock___2nPT8",
26
43
  "composerActions": "styles__composerActions___2xQEH",
44
+ "welcome": "styles__welcome___ozY_t",
45
+ "welcome-halo": "styles__welcome-halo___3jlz_",
46
+ "welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
47
+ "welcome-title": "styles__welcome-title___sBOKX",
27
48
  "conversationBar": "styles__conversationBar___2J-Us",
28
49
  "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
50
+ "viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
51
+ "viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
29
52
  "conversationViewport": "styles__conversationViewport___24jYX",
53
+ "conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
30
54
  "conversationBar-input": "styles__conversationBar-input___2DfdZ",
31
55
  "chatConversation": "styles__chatConversation___2EmkA",
32
56
  "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
@@ -45,37 +69,66 @@ var styles = {
45
69
  "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
46
70
  "conversation-list-item": "styles__conversation-list-item___rQapI",
47
71
  "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
48
- "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn",
49
- "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
72
+ "conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
50
73
  "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
51
- "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
52
74
  "conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
53
75
  "conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
54
- "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r",
55
- "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0"
76
+ "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
77
+ "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
56
78
  };
57
79
 
58
80
  var Conversation = function Conversation(_ref) {
81
+ var _cx3;
82
+
59
83
  var className = _ref.className;
60
84
 
61
85
  var _useI18n = (0, _twakeI18n.useI18n)(),
62
86
  t = _useI18n.t;
63
87
 
88
+ var _useCozyTheme = (0, _CozyTheme.useCozyTheme)(),
89
+ isLight = _useCozyTheme.isLight;
90
+
91
+ var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
92
+ isMobile = _useBreakpoints.isMobile;
93
+
64
94
  var isThreadEmpty = (0, _react.useThread)(function (state) {
65
95
  return state.messages.length === 0;
66
- });
96
+ }); // On mobile the conversation scrolls under the sidebar bar: once it has,
97
+ // a fade below the bar dissolves the text instead of cutting it (at the
98
+ // top of the scroll, the first message sits clear of the bar).
99
+
100
+ var _useState = (0, _react2.useState)(false),
101
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
102
+ isScrolled = _useState2[0],
103
+ setIsScrolled = _useState2[1];
104
+
67
105
  return /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Root, {
68
- className: (0, _classnames.default)('u-flex u-flex-column u-flex-items-center u-h-100', className, {
106
+ // The gutters: the messages and the composer are centered up to a max
107
+ // width, and keep a margin from the edges when the screen is narrower
108
+ className: (0, _classnames.default)('u-flex u-flex-column u-flex-items-center u-h-100 u-bxz u-pos-relative', isMobile ? 'u-ph-1' : 'u-ph-2', className, {
69
109
  'u-flex-justify-between': !isThreadEmpty,
70
110
  'u-flex-justify-center': isThreadEmpty
71
111
  })
72
- }, /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Empty, null, /*#__PURE__*/_react2.default.createElement("h2", {
73
- className: "u-w-100 u-maw-7 u-mh-auto u-mb-3 u-fw-normal u-ta-center"
74
- }, t('assistant.message.welcome'))), /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Viewport, {
112
+ }, /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Empty, null, /*#__PURE__*/_react2.default.createElement("div", {
113
+ className: (0, _classnames.default)('u-pos-relative u-w-100 u-maw-7 u-mh-auto u-mb-3 u-flex u-flex-items-center u-flex-justify-center', styles['welcome'])
114
+ }, /*#__PURE__*/_react2.default.createElement("div", {
115
+ "aria-hidden": "true",
116
+ className: (0, _classnames.default)(styles['welcome-halo'], (0, _defineProperty2.default)({}, styles['welcome-halo--dark'], !isLight))
117
+ }), /*#__PURE__*/_react2.default.createElement(_Typography.default, {
118
+ variant: "h3",
119
+ component: "h2",
120
+ className: (0, _classnames.default)('u-pos-relative u-fw-normal u-ta-center', styles['welcome-title'])
121
+ }, t('assistant.message.welcome')))), isMobile && !isThreadEmpty && /*#__PURE__*/_react2.default.createElement("div", {
122
+ "aria-hidden": "true",
123
+ className: (0, _classnames.default)(styles['viewport-fade-top'], (0, _defineProperty2.default)({}, styles['viewport-fade-top--visible'], isScrolled))
124
+ }), /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Viewport, {
75
125
  autoScroll: true,
76
- className: (0, _classnames.default)('u-w-100 u-bxz u-ov-auto u-mb-1', styles.conversationViewport, {
126
+ onScroll: function onScroll(event) {
127
+ return setIsScrolled(event.currentTarget.scrollTop > 0);
128
+ },
129
+ className: (0, _classnames.default)('u-w-100 u-bxz u-ov-auto', styles.conversationViewport, (_cx3 = {
77
130
  'u-flex-auto': !isThreadEmpty
78
- })
131
+ }, (0, _defineProperty2.default)(_cx3, styles['conversationViewport--filled'], !isThreadEmpty), (0, _defineProperty2.default)(_cx3, 'u-mb-1', isThreadEmpty), _cx3))
79
132
  }, /*#__PURE__*/_react2.default.createElement("div", {
80
133
  className: "u-maw-7 u-mh-auto"
81
134
  }, /*#__PURE__*/_react2.default.createElement(_react.ThreadPrimitive.Messages, {
@@ -83,7 +136,14 @@ var Conversation = function Conversation(_ref) {
83
136
  UserMessage: _UserMessage.default,
84
137
  AssistantMessage: _AssistantMessage.default
85
138
  }
86
- }))), /*#__PURE__*/_react2.default.createElement(_ConversationComposer.default, null));
139
+ }))), /*#__PURE__*/_react2.default.createElement("div", {
140
+ className: (0, _classnames.default)('u-w-100', (0, _defineProperty2.default)({}, styles['composer-dock'], !isThreadEmpty))
141
+ }, /*#__PURE__*/_react2.default.createElement(_ConversationComposer.default, null), /*#__PURE__*/_react2.default.createElement(_Typography.default, {
142
+ variant: "caption",
143
+ color: "textSecondary",
144
+ component: "p",
145
+ className: "u-w-100 u-maw-7 u-mh-auto u-mt-half u-mb-0 u-ta-center"
146
+ }, t('assistant.disclaimer'))));
87
147
  };
88
148
 
89
149
  var _default = Conversation;
@@ -35,10 +35,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
35
 
36
36
  var styles = {
37
37
  "composerContainer": "styles__composerContainer___3bNfY",
38
+ "composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
39
+ "composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
40
+ "composer-dock": "styles__composer-dock___2nPT8",
38
41
  "composerActions": "styles__composerActions___2xQEH",
42
+ "welcome": "styles__welcome___ozY_t",
43
+ "welcome-halo": "styles__welcome-halo___3jlz_",
44
+ "welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
45
+ "welcome-title": "styles__welcome-title___sBOKX",
39
46
  "conversationBar": "styles__conversationBar___2J-Us",
40
47
  "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
48
+ "viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
49
+ "viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
41
50
  "conversationViewport": "styles__conversationViewport___24jYX",
51
+ "conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
42
52
  "conversationBar-input": "styles__conversationBar-input___2DfdZ",
43
53
  "chatConversation": "styles__chatConversation___2EmkA",
44
54
  "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
@@ -57,14 +67,12 @@ var styles = {
57
67
  "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
58
68
  "conversation-list-item": "styles__conversation-list-item___rQapI",
59
69
  "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
60
- "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn",
61
- "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
70
+ "conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
62
71
  "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
63
- "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
64
72
  "conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
65
73
  "conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
66
- "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r",
67
- "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0"
74
+ "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
75
+ "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
68
76
  };
69
77
 
70
78
  var ConversationBar = function ConversationBar(_ref) {
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
12
14
  var _react = require("@assistant-ui/react");
@@ -23,6 +25,8 @@ var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"
23
25
 
24
26
  var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
25
27
 
28
+ var _CozyTheme = require("cozy-ui/transpiled/react/providers/CozyTheme");
29
+
26
30
  var _ConversationBar = _interopRequireDefault(require("./ConversationBar"));
27
31
 
28
32
  var _AssistantSelection = _interopRequireDefault(require("../Assistant/AssistantSelection"));
@@ -37,10 +41,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
37
41
 
38
42
  var styles = {
39
43
  "composerContainer": "styles__composerContainer___3bNfY",
44
+ "composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
45
+ "composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
46
+ "composer-dock": "styles__composer-dock___2nPT8",
40
47
  "composerActions": "styles__composerActions___2xQEH",
48
+ "welcome": "styles__welcome___ozY_t",
49
+ "welcome-halo": "styles__welcome-halo___3jlz_",
50
+ "welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
51
+ "welcome-title": "styles__welcome-title___sBOKX",
41
52
  "conversationBar": "styles__conversationBar___2J-Us",
42
53
  "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
54
+ "viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
55
+ "viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
43
56
  "conversationViewport": "styles__conversationViewport___24jYX",
57
+ "conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
44
58
  "conversationBar-input": "styles__conversationBar-input___2DfdZ",
45
59
  "chatConversation": "styles__chatConversation___2EmkA",
46
60
  "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
@@ -59,20 +73,23 @@ var styles = {
59
73
  "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
60
74
  "conversation-list-item": "styles__conversation-list-item___rQapI",
61
75
  "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
62
- "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn",
63
- "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
76
+ "conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
64
77
  "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
65
- "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
66
78
  "conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
67
79
  "conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
68
- "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r",
69
- "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0"
80
+ "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
81
+ "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
70
82
  };
71
83
 
72
84
  var ConversationComposer = function ConversationComposer() {
85
+ var _cx;
86
+
73
87
  var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
74
88
  isMobile = _useBreakpoints.isMobile;
75
89
 
90
+ var _useCozyTheme = (0, _CozyTheme.useCozyTheme)(),
91
+ isLight = _useCozyTheme.isLight;
92
+
76
93
  var composerRuntime = (0, _react.useComposerRuntime)();
77
94
  var isRunning = (0, _react.useThread)(function (state) {
78
95
  return state.isRunning;
@@ -115,17 +132,8 @@ var ConversationComposer = function ConversationComposer() {
115
132
  return !prev;
116
133
  });
117
134
  }, [isRunning, setWebsearchEnabled]);
118
- return /*#__PURE__*/_react2.default.createElement(_react.ComposerPrimitive.Root, {
119
- className: (0, _classnames.default)('u-w-100 u-maw-7 u-mh-auto u-bxz', styles['composerContainer'])
120
- }, /*#__PURE__*/_react2.default.createElement("div", {
121
- className: "u-flex u-flex-items-start u-flex-justify-between"
122
- }, /*#__PURE__*/_react2.default.createElement(_ConversationBar.default, {
123
- value: value,
124
- isEmpty: isEmpty,
125
- onKeyDown: handleKeyDown
126
- }), /*#__PURE__*/_react2.default.createElement("div", {
127
- className: "u-flex u-flex-items-center u-flex-shrink-0"
128
- }, /*#__PURE__*/_react2.default.createElement(_Buttons.default, (0, _extends2.default)({
135
+
136
+ var sendButton = /*#__PURE__*/_react2.default.createElement(_Buttons.default, (0, _extends2.default)({
129
137
  size: "small",
130
138
  className: "u-miw-auto u-w-2 u-h-2 u-bdrs-circle u-flex-shrink-0",
131
139
  classes: {
@@ -140,20 +148,42 @@ var ConversationComposer = function ConversationComposer() {
140
148
  } : {
141
149
  variant: 'primary',
142
150
  label: /*#__PURE__*/_react2.default.createElement(_twakeIcons.Icon, {
143
- icon: _twakeIcons.Paperplane,
144
- size: 12,
145
- rotate: -45
151
+ icon: _twakeIcons.ArrowUp,
152
+ size: 16
146
153
  }),
147
154
  onClick: handleSend
148
- })))), /*#__PURE__*/_react2.default.createElement("div", {
155
+ })); // On mobile the send button sits by the text, the sources are icons and
156
+ // the assistant chip picks the assistant; on desktop the send button ends
157
+ // the chips row and the assistant is picked from the sidebar.
158
+
159
+
160
+ return /*#__PURE__*/_react2.default.createElement(_react.ComposerPrimitive.Root, {
161
+ className: (0, _classnames.default)('u-w-100 u-maw-7 u-mh-auto u-bxz', styles['composerContainer'], (_cx = {}, (0, _defineProperty2.default)(_cx, styles['composerContainer--mobile'], isMobile), (0, _defineProperty2.default)(_cx, styles['composerContainer--mobile-dark'], isMobile && !isLight), _cx))
162
+ }, /*#__PURE__*/_react2.default.createElement("div", {
163
+ className: "u-flex u-flex-items-start u-flex-justify-between"
164
+ }, /*#__PURE__*/_react2.default.createElement(_ConversationBar.default, {
165
+ value: value,
166
+ isEmpty: isEmpty,
167
+ onKeyDown: handleKeyDown
168
+ }), isMobile && /*#__PURE__*/_react2.default.createElement("div", {
169
+ className: "u-flex u-flex-items-center u-flex-shrink-0"
170
+ }, sendButton)), /*#__PURE__*/_react2.default.createElement("div", {
149
171
  className: (0, _classnames.default)('u-flex u-flex-items-center u-flex-justify-between', styles['composerActions'])
172
+ }, /*#__PURE__*/_react2.default.createElement("div", {
173
+ className: "u-flex u-flex-items-center u-flex-wrap"
150
174
  }, (0, _cozyFlags.default)('cozy.assistant.create-assistant.enabled') && /*#__PURE__*/_react2.default.createElement(_AssistantSelection.default, {
151
- disabled: !isThreadEmpty
152
- }), /*#__PURE__*/_react2.default.createElement(_TwakeKnowledgeSelector.default, {
175
+ disabled: !isThreadEmpty,
176
+ selectable: isMobile,
177
+ borderless: isMobile,
178
+ className: "u-mr-half"
179
+ }), !isMobile && /*#__PURE__*/_react2.default.createElement(_TwakeKnowledgeSelector.default, {
180
+ websearchEnabled: websearchEnabled,
181
+ onToggleWebsearch: handleToggleWebsearch
182
+ })), isMobile ? /*#__PURE__*/_react2.default.createElement(_TwakeKnowledgeSelector.default, {
153
183
  className: "u-ml-auto",
154
184
  websearchEnabled: websearchEnabled,
155
185
  onToggleWebsearch: handleToggleWebsearch
156
- })));
186
+ }) : sendButton));
157
187
  };
158
188
 
159
189
  var _default = ConversationComposer;
@@ -13,28 +13,30 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
 
16
- var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider"));
17
-
18
16
  var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
19
17
 
20
18
  var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
21
19
 
22
- var _CozyTheme = require("cozy-ui-plus/dist/providers/CozyTheme");
23
-
24
- var _twakeI18n = require("twake-i18n");
25
-
26
20
  var _ConversationActions = _interopRequireDefault(require("./ConversationActions"));
27
21
 
28
- var _AssistantAvatar = _interopRequireDefault(require("../Assistant/AssistantAvatar"));
29
-
30
22
  var _helpers = require("../helpers");
31
23
 
32
24
  var styles = {
33
25
  "composerContainer": "styles__composerContainer___3bNfY",
26
+ "composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
27
+ "composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
28
+ "composer-dock": "styles__composer-dock___2nPT8",
34
29
  "composerActions": "styles__composerActions___2xQEH",
30
+ "welcome": "styles__welcome___ozY_t",
31
+ "welcome-halo": "styles__welcome-halo___3jlz_",
32
+ "welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
33
+ "welcome-title": "styles__welcome-title___sBOKX",
35
34
  "conversationBar": "styles__conversationBar___2J-Us",
36
35
  "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
36
+ "viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
37
+ "viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
37
38
  "conversationViewport": "styles__conversationViewport___24jYX",
39
+ "conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
38
40
  "conversationBar-input": "styles__conversationBar-input___2DfdZ",
39
41
  "chatConversation": "styles__chatConversation___2EmkA",
40
42
  "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
@@ -53,36 +55,28 @@ var styles = {
53
55
  "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
54
56
  "conversation-list-item": "styles__conversation-list-item___rQapI",
55
57
  "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
56
- "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn",
57
- "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
58
+ "conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
58
59
  "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
59
- "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
60
60
  "conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
61
61
  "conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
62
- "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r",
63
- "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0"
62
+ "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
63
+ "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
64
64
  };
65
65
 
66
+ /**
67
+ * A conversation of the sidebar: its name on one line, with its actions
68
+ * on hover.
69
+ */
66
70
  var ConversationListItem = function ConversationListItem(_ref) {
67
- var _conversation$cozyMet;
68
-
69
71
  var conversation = _ref.conversation,
70
72
  selected = _ref.selected,
71
73
  onOpenConversation = _ref.onOpenConversation;
72
-
73
- var _useI18n = (0, _twakeI18n.useI18n)(),
74
- t = _useI18n.t,
75
- lang = _useI18n.lang;
76
-
77
- var _useCozyTheme = (0, _CozyTheme.useCozyTheme)(),
78
- theme = _useCozyTheme.type;
79
-
80
74
  return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
81
75
  button: true,
82
76
  onClick: function onClick() {
83
77
  return onOpenConversation(conversation._id);
84
78
  },
85
- className: (0, _classnames.default)('u-ov-hidden u-flex-column u-pv-half u-ph-1', styles['conversation-list-item'], (0, _defineProperty2.default)({}, styles["conversation-list-item--selected--".concat(theme)], selected)),
79
+ className: (0, _classnames.default)('u-ov-hidden u-ph-half', styles['conversation-list-item'], (0, _defineProperty2.default)({}, styles['conversation-list-item--selected'], selected)),
86
80
  selected: selected
87
81
  }, /*#__PURE__*/_react.default.createElement(_ConversationActions.default, {
88
82
  buttonClassName: styles['conversation-list-item-action'],
@@ -93,23 +87,9 @@ var ConversationListItem = function ConversationListItem(_ref) {
93
87
  component: 'div',
94
88
  className: styles['conversation-list-item-text']
95
89
  },
96
- secondaryTypographyProps: {
97
- component: 'div',
98
- className: styles['conversation-list-item-text']
99
- },
100
90
  primary: /*#__PURE__*/_react.default.createElement("span", {
101
- className: (0, _classnames.default)('u-ellipsis u-db u-pb-half', styles['conversation-list-item-title'])
102
- }, (0, _helpers.getNameOfConversation)(conversation)),
103
- secondary: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
104
- className: (0, _classnames.default)('u-db u-ellipsis', styles['conversation-list-item-subtitle'])
105
- }, (0, _helpers.getDescriptionOfConversation)(conversation, t)), /*#__PURE__*/_react.default.createElement("span", {
106
- className: (0, _classnames.default)('u-flex u-flex-items-center', styles['conversation-list-item-subtitle'], styles['conversation-list-item-meta'])
107
- }, /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, {
108
- assistant: conversation.assistant,
109
- isSmall: true
110
- }), (0, _helpers.formatConversationDate)((_conversation$cozyMet = conversation.cozyMetadata) === null || _conversation$cozyMet === void 0 ? void 0 : _conversation$cozyMet.updatedAt, t, lang)))
111
- }), /*#__PURE__*/_react.default.createElement(_Divider.default, {
112
- className: styles['conversation-list-item-divider']
91
+ className: (0, _classnames.default)('u-ellipsis u-db', styles['conversation-list-item-title'])
92
+ }, (0, _helpers.getNameOfConversation)(conversation))
113
93
  }));
114
94
  }; // Memoized so a re-render of the conversation list only re-renders items
115
95
  // whose props actually changed (typically just the previously- and
@@ -21,8 +21,6 @@ var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/Lis
21
21
 
22
22
  var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
23
23
 
24
- var _CozyTheme = require("cozy-ui-plus/dist/providers/CozyTheme");
25
-
26
24
  var _twakeI18n = require("twake-i18n");
27
25
 
28
26
  var _ConversationActions = _interopRequireDefault(require("./ConversationActions"));
@@ -33,10 +31,20 @@ var _helpers = require("../helpers");
33
31
 
34
32
  var styles = {
35
33
  "composerContainer": "styles__composerContainer___3bNfY",
34
+ "composerContainer--mobile": "styles__composerContainer--mobile___nIYa-",
35
+ "composerContainer--mobile-dark": "styles__composerContainer--mobile-dark___12Go9",
36
+ "composer-dock": "styles__composer-dock___2nPT8",
36
37
  "composerActions": "styles__composerActions___2xQEH",
38
+ "welcome": "styles__welcome___ozY_t",
39
+ "welcome-halo": "styles__welcome-halo___3jlz_",
40
+ "welcome-halo--dark": "styles__welcome-halo--dark___fV9pN",
41
+ "welcome-title": "styles__welcome-title___sBOKX",
37
42
  "conversationBar": "styles__conversationBar___2J-Us",
38
43
  "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8",
44
+ "viewport-fade-top": "styles__viewport-fade-top___3j8Lv",
45
+ "viewport-fade-top--visible": "styles__viewport-fade-top--visible___32uyl",
39
46
  "conversationViewport": "styles__conversationViewport___24jYX",
47
+ "conversationViewport--filled": "styles__conversationViewport--filled___T2QFN",
40
48
  "conversationBar-input": "styles__conversationBar-input___2DfdZ",
41
49
  "chatConversation": "styles__chatConversation___2EmkA",
42
50
  "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
@@ -55,14 +63,12 @@ var styles = {
55
63
  "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB",
56
64
  "conversation-list-item": "styles__conversation-list-item___rQapI",
57
65
  "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm",
58
- "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn",
59
- "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY",
66
+ "conversation-list-item--selected": "styles__conversation-list-item--selected___2D5_3",
60
67
  "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c",
61
- "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1",
62
68
  "conversation-list-item-text": "styles__conversation-list-item-text___31VBM",
63
69
  "conversation-list-item-title": "styles__conversation-list-item-title___3je_6",
64
- "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r",
65
- "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0"
70
+ "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0",
71
+ "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r"
66
72
  };
67
73
 
68
74
  var ConversationListItemWider = function ConversationListItemWider(_ref) {
@@ -78,16 +84,13 @@ var ConversationListItemWider = function ConversationListItemWider(_ref) {
78
84
  t = _useI18n.t,
79
85
  lang = _useI18n.lang;
80
86
 
81
- var _useCozyTheme = (0, _CozyTheme.useCozyTheme)(),
82
- theme = _useCozyTheme.type;
83
-
84
87
  return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
85
88
  divider: divider,
86
89
  button: true,
87
90
  onClick: function onClick() {
88
91
  return onOpenConversation(conversation._id);
89
92
  },
90
- className: (0, _classnames.default)('u-bdrs-0 u-ov-hidden u-flex u-flex-items-center u-flex-justify-between u-w-100 u-pv-half u-ph-1', styles['conversation-list-item'], styles['conversation-list-item--wider'], (0, _defineProperty2.default)({}, styles["conversation-list-item--selected--".concat(theme)], selected)),
93
+ className: (0, _classnames.default)('u-bdrs-0 u-ov-hidden u-flex u-flex-items-center u-flex-justify-between u-w-100 u-pv-half u-ph-1', styles['conversation-list-item'], styles['conversation-list-item--wider'], (0, _defineProperty2.default)({}, styles['conversation-list-item--selected'], selected)),
91
94
  selected: selected
92
95
  }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, {
93
96
  assistant: conversation.assistant,