@red-hat-developer-hub/backstage-plugin-lightspeed 2.8.0 → 2.8.2
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/CHANGELOG.md +16 -0
- package/dist/alpha/LightspeedFAB.esm.js +5 -2
- package/dist/alpha/LightspeedFAB.esm.js.map +1 -1
- package/dist/alpha.d.ts +9 -3
- package/dist/components/CollapsedHistoryStrip.esm.js +25 -22
- package/dist/components/CollapsedHistoryStrip.esm.js.map +1 -1
- package/dist/components/DeleteModal.esm.js +1 -1
- package/dist/components/DeleteModal.esm.js.map +1 -1
- package/dist/components/LightSpeedChat.esm.js +43 -14
- package/dist/components/LightSpeedChat.esm.js.map +1 -1
- package/dist/components/LightspeedChatBoxHeader.esm.js +6 -3
- package/dist/components/LightspeedChatBoxHeader.esm.js.map +1 -1
- package/dist/components/LightspeedChatContainer.esm.js +4 -2
- package/dist/components/LightspeedChatContainer.esm.js.map +1 -1
- package/dist/components/LightspeedDrawerProvider.esm.js +6 -3
- package/dist/components/LightspeedDrawerProvider.esm.js.map +1 -1
- package/dist/components/LightspeedFAB.esm.js +5 -2
- package/dist/components/LightspeedFAB.esm.js.map +1 -1
- package/dist/components/McpServersSettings.esm.js +3 -4
- package/dist/components/McpServersSettings.esm.js.map +1 -1
- package/dist/components/McpSettingsIcon.esm.js +14 -22
- package/dist/components/McpSettingsIcon.esm.js.map +1 -1
- package/dist/components/RenameConversationModal.esm.js +1 -1
- package/dist/components/RenameConversationModal.esm.js.map +1 -1
- package/dist/components/Router.esm.js +13 -4
- package/dist/components/Router.esm.js.map +1 -1
- package/dist/components/notebooks/AddDocumentModal.esm.js +1 -1
- package/dist/components/notebooks/AddDocumentModal.esm.js.map +1 -1
- package/dist/components/notebooks/DeleteDocumentModal.esm.js +131 -0
- package/dist/components/notebooks/DeleteDocumentModal.esm.js.map +1 -0
- package/dist/components/notebooks/DeleteNotebookModal.esm.js +1 -1
- package/dist/components/notebooks/DeleteNotebookModal.esm.js.map +1 -1
- package/dist/components/notebooks/FileListItem.esm.js +1 -1
- package/dist/components/notebooks/FileListItem.esm.js.map +1 -1
- package/dist/components/notebooks/NotebookView.esm.js +83 -48
- package/dist/components/notebooks/NotebookView.esm.js.map +1 -1
- package/dist/components/notebooks/OverwriteConfirmModal.esm.js +1 -1
- package/dist/components/notebooks/OverwriteConfirmModal.esm.js.map +1 -1
- package/dist/components/notebooks/RenameNotebookModal.esm.js +1 -1
- package/dist/components/notebooks/RenameNotebookModal.esm.js.map +1 -1
- package/dist/const.esm.js +6 -1
- package/dist/const.esm.js.map +1 -1
- package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js +2 -1
- package/dist/hooks/notebooks/useDocumentStatusPolling.esm.js.map +1 -1
- package/dist/hooks/useConversationMessages.esm.js +7 -3
- package/dist/hooks/useConversationMessages.esm.js.map +1 -1
- package/dist/hooks/useNotebookWelcomePrompts.esm.js +14 -0
- package/dist/hooks/useNotebookWelcomePrompts.esm.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/translations/de.esm.js +13 -4
- package/dist/translations/de.esm.js.map +1 -1
- package/dist/translations/es.esm.js +13 -6
- package/dist/translations/es.esm.js.map +1 -1
- package/dist/translations/fr.esm.js +13 -4
- package/dist/translations/fr.esm.js.map +1 -1
- package/dist/translations/it.esm.js +13 -6
- package/dist/translations/it.esm.js.map +1 -1
- package/dist/translations/ja.esm.js +13 -4
- package/dist/translations/ja.esm.js.map +1 -1
- package/dist/translations/ref.esm.js +13 -7
- package/dist/translations/ref.esm.js.map +1 -1
- package/dist/utils/generateClassName.esm.js +12 -0
- package/dist/utils/generateClassName.esm.js.map +1 -0
- package/dist/utils/lightspeed-chatbox-utils.esm.js +57 -3
- package/dist/utils/lightspeed-chatbox-utils.esm.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
## @red-hat-developer-hub/backstage-plugin-lightspeed
|
|
2
2
|
|
|
3
|
+
## 2.8.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 326f2cb: Scope all JSS class names with a `lightspeed-` prefix via seeded `StylesProvider` to prevent CSS collisions with other dynamically loaded plugins in RHDH.
|
|
8
|
+
- 326f2cb: UI improvements and bug fixes: unify MessageBar across display modes, fix message content overflow, rename chat section titles, update chat history panel icons, remove redundant success upload alerts, add delete resource confirmation modal, replace MCP settings icon with gear and add New badge.
|
|
9
|
+
- @red-hat-developer-hub/backstage-plugin-lightspeed-common@2.8.2
|
|
10
|
+
|
|
11
|
+
## 2.8.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- e5d33ba: Improved normalization of user chat input before send and display. A short intro followed by a numbered list, ASCII bullet lists (hyphen, asterisk, or plus, with optional indentation), or Unicode bullet lines is folded into one Markdown paragraph using hard line breaks and marker escaping where needed. That preserves intended line breaks (soft breaks no longer collapse list lines into one sentence) and keeps list-oriented prompts from splitting awkwardly in the chat UI. Excessive blank lines are tightened, CRLF is normalized, and whitespace-only prompts are not submitted.
|
|
16
|
+
- e6cd084: Fix notebook prompts and add Developer preview badge for Notebooks tab
|
|
17
|
+
- @red-hat-developer-hub/backstage-plugin-lightspeed-common@2.8.1
|
|
18
|
+
|
|
3
19
|
## 2.8.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { StylesProvider as StylesProvider$1 } from '@material-ui/core/styles';
|
|
2
3
|
import CloseIcon from '@mui/icons-material/Close';
|
|
3
4
|
import Fab from '@mui/material/Fab';
|
|
4
5
|
import Tooltip from '@mui/material/Tooltip';
|
|
5
|
-
import { makeStyles } from '@mui/styles';
|
|
6
|
+
import { makeStyles, StylesProvider } from '@mui/styles';
|
|
6
7
|
import { ChatbotDisplayMode } from '@patternfly/chatbot';
|
|
7
8
|
import { LightspeedFABIcon } from '../components/LightspeedIcon.esm.js';
|
|
8
9
|
import { DOCKED_CONTENT_OFFSET } from '../const.esm.js';
|
|
9
10
|
import { useLightspeedDrawerContext } from '../hooks/useLightspeedDrawerContext.esm.js';
|
|
10
11
|
import { useTranslation } from '../hooks/useTranslation.esm.js';
|
|
12
|
+
import { generateClassName, generateClassNameV4 } from '../utils/generateClassName.esm.js';
|
|
11
13
|
|
|
12
14
|
const useStyles = makeStyles((theme) => ({
|
|
13
15
|
fab: {
|
|
@@ -30,7 +32,7 @@ const useStyles = makeStyles((theme) => ({
|
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
}));
|
|
33
|
-
const
|
|
35
|
+
const LightspeedFABInner = () => {
|
|
34
36
|
const { t } = useTranslation();
|
|
35
37
|
const { isChatbotActive, toggleChatbot, displayMode } = useLightspeedDrawerContext();
|
|
36
38
|
const fabButton = useStyles();
|
|
@@ -66,6 +68,7 @@ const LightspeedFAB = () => {
|
|
|
66
68
|
}
|
|
67
69
|
);
|
|
68
70
|
};
|
|
71
|
+
const LightspeedFAB = () => /* @__PURE__ */ jsx(StylesProvider, { generateClassName, children: /* @__PURE__ */ jsx(StylesProvider$1, { generateClassName: generateClassNameV4, children: /* @__PURE__ */ jsx(LightspeedFABInner, {}) }) });
|
|
69
72
|
|
|
70
73
|
export { LightspeedFAB };
|
|
71
74
|
//# sourceMappingURL=LightspeedFAB.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightspeedFAB.esm.js","sources":["../../src/alpha/LightspeedFAB.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Close from '@mui/icons-material/Close';\nimport Fab from '@mui/material/Fab';\nimport Tooltip from '@mui/material/Tooltip';\nimport { makeStyles } from '@mui/styles';\nimport { ChatbotDisplayMode } from '@patternfly/chatbot';\n\nimport { LightspeedFABIcon } from '../components/LightspeedIcon';\nimport { DOCKED_CONTENT_OFFSET } from '../const';\nimport { useLightspeedDrawerContext } from '../hooks/useLightspeedDrawerContext';\nimport { useTranslation } from '../hooks/useTranslation';\n\nconst useStyles = makeStyles(theme => ({\n fab: {\n opacity: '1 !important',\n backgroundColor: `${theme?.palette?.primary?.main ?? '#1976d2'} !important`,\n color: `${theme?.palette?.primary?.contrastText ?? '#fff'} !important`,\n boxShadow: `${\n theme?.shadows?.[6] ??\n '0px 3px 5px -1px rgba(0,0,0,0.2), 0px 6px 10px 0px rgba(0,0,0,0.14), 0px 1px 18px 0px rgba(0,0,0,0.12)'\n } !important`,\n },\n 'fab-button': {\n bottom: `calc(${theme?.spacing?.(2) ?? '16px'} + 1.5em)`,\n right: `calc(${theme?.spacing?.(2) ?? '16px'} + 1.5em)`,\n alignItems: 'end',\n zIndex: 200,\n display: 'flex',\n position: 'fixed',\n\n // When ApplicationDrawer is docked, match main content inset\n 'body.docked-drawer-open &': {\n transition: 'margin-right 0.3s ease',\n marginRight: DOCKED_CONTENT_OFFSET,\n },\n },\n}));\n\
|
|
1
|
+
{"version":3,"file":"LightspeedFAB.esm.js","sources":["../../src/alpha/LightspeedFAB.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { StylesProvider as StylesProviderV4 } from '@material-ui/core/styles';\nimport Close from '@mui/icons-material/Close';\nimport Fab from '@mui/material/Fab';\nimport Tooltip from '@mui/material/Tooltip';\nimport { makeStyles, StylesProvider } from '@mui/styles';\nimport { ChatbotDisplayMode } from '@patternfly/chatbot';\n\nimport { LightspeedFABIcon } from '../components/LightspeedIcon';\nimport { DOCKED_CONTENT_OFFSET } from '../const';\nimport { useLightspeedDrawerContext } from '../hooks/useLightspeedDrawerContext';\nimport { useTranslation } from '../hooks/useTranslation';\nimport {\n generateClassName,\n generateClassNameV4,\n} from '../utils/generateClassName';\n\nconst useStyles = makeStyles(theme => ({\n fab: {\n opacity: '1 !important',\n backgroundColor: `${theme?.palette?.primary?.main ?? '#1976d2'} !important`,\n color: `${theme?.palette?.primary?.contrastText ?? '#fff'} !important`,\n boxShadow: `${\n theme?.shadows?.[6] ??\n '0px 3px 5px -1px rgba(0,0,0,0.2), 0px 6px 10px 0px rgba(0,0,0,0.14), 0px 1px 18px 0px rgba(0,0,0,0.12)'\n } !important`,\n },\n 'fab-button': {\n bottom: `calc(${theme?.spacing?.(2) ?? '16px'} + 1.5em)`,\n right: `calc(${theme?.spacing?.(2) ?? '16px'} + 1.5em)`,\n alignItems: 'end',\n zIndex: 200,\n display: 'flex',\n position: 'fixed',\n\n // When ApplicationDrawer is docked, match main content inset\n 'body.docked-drawer-open &': {\n transition: 'margin-right 0.3s ease',\n marginRight: DOCKED_CONTENT_OFFSET,\n },\n },\n}));\n\nconst LightspeedFABInner = () => {\n const { t } = useTranslation();\n const { isChatbotActive, toggleChatbot, displayMode } =\n useLightspeedDrawerContext();\n const fabButton = useStyles();\n\n if (displayMode === ChatbotDisplayMode.embedded) {\n return null;\n }\n\n return (\n <div\n className={fabButton['fab-button']}\n id=\"lightspeed-fab\"\n data-testid=\"lightspeed-fab\"\n >\n <Tooltip\n title={isChatbotActive ? t('tooltip.fab.close') : t('tooltip.fab.open')}\n placement=\"left\"\n >\n <Fab\n color=\"primary\"\n variant=\"circular\"\n size=\"small\"\n onClick={toggleChatbot}\n aria-label={\n isChatbotActive ? t('tooltip.fab.close') : t('tooltip.fab.open')\n }\n className={fabButton.fab}\n sx={{ borderRadius: '100% !important' }}\n >\n {isChatbotActive ? <Close fontSize=\"small\" /> : <LightspeedFABIcon />}\n </Fab>\n </Tooltip>\n </div>\n );\n};\n\n/**\n * @alpha\n * Lightspeed Floating action button to open/close the lightspeed chatbot\n */\nexport const LightspeedFAB = () => (\n <StylesProvider generateClassName={generateClassName}>\n <StylesProviderV4 generateClassName={generateClassNameV4}>\n <LightspeedFABInner />\n </StylesProviderV4>\n </StylesProvider>\n);\n"],"names":["Close","StylesProviderV4"],"mappings":";;;;;;;;;;;;;AAgCA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,cAAA;AAAA,IACT,iBAAiB,CAAA,EAAG,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,QAAQ,SAAS,CAAA,WAAA,CAAA;AAAA,IAC9D,OAAO,CAAA,EAAG,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,gBAAgB,MAAM,CAAA,WAAA,CAAA;AAAA,IACzD,WAAW,CAAA,EACT,KAAA,EAAO,OAAA,GAAU,CAAC,KAClB,wGACF,CAAA,WAAA;AAAA,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,QAAQ,CAAA,KAAA,EAAQ,KAAA,EAAO,OAAA,GAAU,CAAC,KAAK,MAAM,CAAA,SAAA,CAAA;AAAA,IAC7C,OAAO,CAAA,KAAA,EAAQ,KAAA,EAAO,OAAA,GAAU,CAAC,KAAK,MAAM,CAAA,SAAA,CAAA;AAAA,IAC5C,UAAA,EAAY,KAAA;AAAA,IACZ,MAAA,EAAQ,GAAA;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,QAAA,EAAU,OAAA;AAAA;AAAA,IAGV,2BAAA,EAA6B;AAAA,MAC3B,UAAA,EAAY,wBAAA;AAAA,MACZ,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA,CAAE,CAAA;AAEF,MAAM,qBAAqB,MAAM;AAC/B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,EAAE,eAAA,EAAiB,aAAA,EAAe,WAAA,KACtC,0BAAA,EAA2B;AAC7B,EAAA,MAAM,YAAY,SAAA,EAAU;AAE5B,EAAA,IAAI,WAAA,KAAgB,mBAAmB,QAAA,EAAU;AAC/C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,UAAU,YAAY,CAAA;AAAA,MACjC,EAAA,EAAG,gBAAA;AAAA,MACH,aAAA,EAAY,gBAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAO,eAAA,GAAkB,CAAA,CAAE,mBAAmB,CAAA,GAAI,EAAE,kBAAkB,CAAA;AAAA,UACtE,SAAA,EAAU,MAAA;AAAA,UAEV,QAAA,kBAAA,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,SAAA;AAAA,cACN,OAAA,EAAQ,UAAA;AAAA,cACR,IAAA,EAAK,OAAA;AAAA,cACL,OAAA,EAAS,aAAA;AAAA,cACT,cACE,eAAA,GAAkB,CAAA,CAAE,mBAAmB,CAAA,GAAI,EAAE,kBAAkB,CAAA;AAAA,cAEjE,WAAW,SAAA,CAAU,GAAA;AAAA,cACrB,EAAA,EAAI,EAAE,YAAA,EAAc,iBAAA,EAAkB;AAAA,cAErC,4CAAkB,GAAA,CAACA,SAAA,EAAA,EAAM,UAAS,OAAA,EAAQ,CAAA,uBAAM,iBAAA,EAAA,EAAkB;AAAA;AAAA;AACrE;AAAA;AACF;AAAA,GACF;AAEJ,CAAA;AAMO,MAAM,aAAA,GAAgB,sBAC3B,GAAA,CAAC,cAAA,EAAA,EAAe,iBAAA,EACd,QAAA,kBAAA,GAAA,CAACC,gBAAA,EAAA,EAAiB,iBAAA,EAAmB,mBAAA,EACnC,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,CAAA,EACtB,CAAA,EACF;;;;"}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -33,11 +33,15 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
|
|
|
33
33
|
readonly "prompts.openshift.message": string;
|
|
34
34
|
readonly "prompts.rhdh.title": string;
|
|
35
35
|
readonly "prompts.rhdh.message": string;
|
|
36
|
+
readonly "notebooks.prompts.coreConcepts.title": string;
|
|
37
|
+
readonly "notebooks.prompts.vulnerabilities.title": string;
|
|
38
|
+
readonly "notebooks.prompts.accessIssue.title": string;
|
|
36
39
|
readonly "page.title": string;
|
|
37
40
|
readonly "page.subtitle": string;
|
|
38
41
|
readonly "tabs.ariaLabel": string;
|
|
39
42
|
readonly "tabs.chat": string;
|
|
40
43
|
readonly "tabs.notebooks": string;
|
|
44
|
+
readonly "tabs.notebooks.devPreview": string;
|
|
41
45
|
readonly "tabs.notebooks.empty": string;
|
|
42
46
|
readonly "notebooks.title": string;
|
|
43
47
|
readonly "notebooks.empty.title": string;
|
|
@@ -73,7 +77,6 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
|
|
|
73
77
|
readonly "notebook.view.sidebar.resize": string;
|
|
74
78
|
readonly "notebook.view.documents.uploading": string;
|
|
75
79
|
readonly "notebook.view.documents.maxReached": string;
|
|
76
|
-
readonly "notebook.upload.success": string;
|
|
77
80
|
readonly "notebook.upload.failed": string;
|
|
78
81
|
readonly "notebook.upload.modal.title": string;
|
|
79
82
|
readonly "notebook.upload.modal.dragDropTitle": string;
|
|
@@ -90,6 +93,10 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
|
|
|
90
93
|
readonly "notebook.overwrite.modal.description": string;
|
|
91
94
|
readonly "notebook.overwrite.modal.action": string;
|
|
92
95
|
readonly "notebook.document.delete": string;
|
|
96
|
+
readonly "notebook.document.delete.title": string;
|
|
97
|
+
readonly "notebook.document.delete.description": string;
|
|
98
|
+
readonly "notebook.document.delete.action": string;
|
|
99
|
+
readonly "notebook.document.delete.success": string;
|
|
93
100
|
readonly "conversation.delete.confirm.title": string;
|
|
94
101
|
readonly "conversation.delete.confirm.message": string;
|
|
95
102
|
readonly "conversation.delete.confirm.action": string;
|
|
@@ -169,8 +176,6 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
|
|
|
169
176
|
readonly "tooltip.fab.close": string;
|
|
170
177
|
readonly "attach.menu.title": string;
|
|
171
178
|
readonly "attach.menu.description": string;
|
|
172
|
-
readonly "history.section.pinned": string;
|
|
173
|
-
readonly "history.section.recent": string;
|
|
174
179
|
readonly "modal.title.preview": string;
|
|
175
180
|
readonly "modal.title.edit": string;
|
|
176
181
|
readonly "icon.lightspeed.alt": string;
|
|
@@ -206,6 +211,7 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
|
|
|
206
211
|
readonly "settings.pinned.enabled.description": string;
|
|
207
212
|
readonly "settings.pinned.disabled.description": string;
|
|
208
213
|
readonly "settings.mcp.label": string;
|
|
214
|
+
readonly "settings.mcp.badge": string;
|
|
209
215
|
readonly "mcp.settings.title": string;
|
|
210
216
|
readonly "mcp.settings.selectedCount": string;
|
|
211
217
|
readonly "mcp.settings.closeAriaLabel": string;
|
|
@@ -4,23 +4,18 @@ import { Tooltip, Button } from '@patternfly/react-core';
|
|
|
4
4
|
import { useTranslation } from '../hooks/useTranslation.esm.js';
|
|
5
5
|
import { SidebarExpandIcon } from './notebooks/SidebarCollapseIcon.esm.js';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const PencilIcon = ({ className }) => /* @__PURE__ */ jsx(
|
|
8
8
|
"svg",
|
|
9
9
|
{
|
|
10
10
|
className,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{
|
|
20
|
-
d: "M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H14L12 5H5V19H19V12L21 10V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM16.175 5.775L17.6 7.2L12 12.8V14H13.2L18.8 8.4L20.225 9.825L14.275 15.775C14.1083 15.9417 13.9167 16.0667 13.7 16.15C13.4833 16.2333 13.2583 16.275 13.025 16.275H11C10.7167 16.275 10.4792 16.1792 10.2875 15.9875C10.0958 15.7958 10 15.5583 10 15.275V13.25C10 13.0167 10.0417 12.7917 10.125 12.575C10.2083 12.3583 10.3333 12.1667 10.5 12L16.175 5.775ZM20.225 9.825L16.175 5.775L18.175 3.775C18.5583 3.39167 19.0292 3.2 19.5875 3.2C20.1458 3.2 20.6167 3.39167 21 3.775L22.225 5C22.6083 5.38333 22.8 5.85417 22.8 6.4125C22.8 6.97083 22.6083 7.44167 22.225 7.825L20.225 9.825Z",
|
|
21
|
-
fill: "currentColor"
|
|
22
|
-
}
|
|
23
|
-
)
|
|
11
|
+
viewBox: "0 0 512 512",
|
|
12
|
+
fill: "currentColor",
|
|
13
|
+
"aria-hidden": "true",
|
|
14
|
+
role: "img",
|
|
15
|
+
width: "1em",
|
|
16
|
+
height: "1em",
|
|
17
|
+
style: { width: 16, height: 16 },
|
|
18
|
+
children: /* @__PURE__ */ jsx("path", { d: "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z" })
|
|
24
19
|
}
|
|
25
20
|
);
|
|
26
21
|
const useStyles = makeStyles((theme) => ({
|
|
@@ -38,23 +33,31 @@ const useStyles = makeStyles((theme) => ({
|
|
|
38
33
|
height: "100%"
|
|
39
34
|
},
|
|
40
35
|
iconButton: {
|
|
41
|
-
padding:
|
|
36
|
+
padding: "8px !important",
|
|
42
37
|
minWidth: 0,
|
|
43
38
|
lineHeight: 1,
|
|
44
|
-
borderRadius: "
|
|
39
|
+
borderRadius: "8px !important",
|
|
40
|
+
border: "1px solid var(--pf-t--global--border--color--default) !important",
|
|
45
41
|
color: "var(--pf-t--global--icon--color--regular)",
|
|
42
|
+
"& svg": {
|
|
43
|
+
width: 18,
|
|
44
|
+
height: 18
|
|
45
|
+
},
|
|
46
46
|
"&:hover": {
|
|
47
|
-
color: "var(--pf-t--global--icon--color--hover)",
|
|
48
|
-
backgroundColor: "var(--pf-t--global--background--color--action--plain--hover)"
|
|
47
|
+
color: "var(--pf-t--global--icon--color--hover) !important",
|
|
48
|
+
backgroundColor: "var(--pf-t--global--background--color--action--plain--hover) !important"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
newChatIconButton: {
|
|
52
|
-
padding:
|
|
52
|
+
padding: "8px !important",
|
|
53
53
|
minWidth: 0,
|
|
54
54
|
lineHeight: 1,
|
|
55
|
+
borderRadius: "8px !important",
|
|
56
|
+
border: "1px solid var(--pf-t--global--border--color--default) !important",
|
|
55
57
|
color: "var(--pf-t--global--color--brand--default)",
|
|
56
58
|
"&:hover": {
|
|
57
|
-
color: "var(--pf-t--global--color--brand--hover)"
|
|
59
|
+
color: "var(--pf-t--global--color--brand--hover) !important",
|
|
60
|
+
backgroundColor: "var(--pf-t--global--background--color--action--plain--hover) !important"
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
}));
|
|
@@ -84,11 +87,11 @@ const CollapsedHistoryStrip = ({
|
|
|
84
87
|
onClick: onNewChat,
|
|
85
88
|
"aria-label": t("tooltip.quickNewChat"),
|
|
86
89
|
isDisabled: newChatDisabled,
|
|
87
|
-
children: /* @__PURE__ */ jsx(
|
|
90
|
+
children: /* @__PURE__ */ jsx(PencilIcon, {})
|
|
88
91
|
}
|
|
89
92
|
) })
|
|
90
93
|
] });
|
|
91
94
|
};
|
|
92
95
|
|
|
93
|
-
export { CollapsedHistoryStrip,
|
|
96
|
+
export { CollapsedHistoryStrip, PencilIcon };
|
|
94
97
|
//# sourceMappingURL=CollapsedHistoryStrip.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsedHistoryStrip.esm.js","sources":["../../src/components/CollapsedHistoryStrip.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { makeStyles } from '@material-ui/core';\nimport { Button, Tooltip } from '@patternfly/react-core';\n\nimport { useTranslation } from '../hooks/useTranslation';\nimport { SidebarExpandIcon } from './notebooks/SidebarCollapseIcon';\n\ntype IconProps = {\n className?: string;\n};\n\nexport const
|
|
1
|
+
{"version":3,"file":"CollapsedHistoryStrip.esm.js","sources":["../../src/components/CollapsedHistoryStrip.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { makeStyles } from '@material-ui/core';\nimport { Button, Tooltip } from '@patternfly/react-core';\n\nimport { useTranslation } from '../hooks/useTranslation';\nimport { SidebarExpandIcon } from './notebooks/SidebarCollapseIcon';\n\ntype IconProps = {\n className?: string;\n};\n\nexport const PencilIcon = ({ className }: IconProps) => (\n <svg\n className={className}\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n role=\"img\"\n width=\"1em\"\n height=\"1em\"\n style={{ width: 16, height: 16 }}\n >\n <path d=\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\" />\n </svg>\n);\n\nconst useStyles = makeStyles(theme => ({\n strip: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: theme.spacing(1.5),\n gap: theme.spacing(1.5),\n borderRight: '1px solid var(--pf-t--global--border--color--default)',\n width: 48,\n minWidth: 48,\n flexShrink: 0,\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n height: '100%',\n },\n iconButton: {\n padding: '8px !important',\n minWidth: 0,\n lineHeight: 1,\n borderRadius: '8px !important',\n border: '1px solid var(--pf-t--global--border--color--default) !important',\n color: 'var(--pf-t--global--icon--color--regular)',\n '& svg': {\n width: 18,\n height: 18,\n },\n '&:hover': {\n color: 'var(--pf-t--global--icon--color--hover) !important',\n backgroundColor:\n 'var(--pf-t--global--background--color--action--plain--hover) !important',\n },\n },\n newChatIconButton: {\n padding: '8px !important',\n minWidth: 0,\n lineHeight: 1,\n borderRadius: '8px !important',\n border: '1px solid var(--pf-t--global--border--color--default) !important',\n color: 'var(--pf-t--global--color--brand--default)',\n '&:hover': {\n color: 'var(--pf-t--global--color--brand--hover) !important',\n backgroundColor:\n 'var(--pf-t--global--background--color--action--plain--hover) !important',\n },\n },\n}));\n\ntype CollapsedHistoryStripProps = {\n onExpand: () => void;\n onNewChat: () => void;\n newChatDisabled?: boolean;\n};\n\nexport const CollapsedHistoryStrip = ({\n onExpand,\n onNewChat,\n newChatDisabled = false,\n}: CollapsedHistoryStripProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.strip}>\n <Tooltip content={t('tooltip.expandHistoryPanel')} position=\"right\">\n <Button\n variant=\"plain\"\n className={classes.iconButton}\n onClick={onExpand}\n aria-label={t('tooltip.expandHistoryPanel')}\n >\n <SidebarExpandIcon />\n </Button>\n </Tooltip>\n <Tooltip content={t('tooltip.quickNewChat')} position=\"right\">\n <Button\n variant=\"plain\"\n className={classes.newChatIconButton}\n onClick={onNewChat}\n aria-label={t('tooltip.quickNewChat')}\n isDisabled={newChatDisabled}\n >\n <PencilIcon />\n </Button>\n </Tooltip>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModal.esm.js","sources":["../../src/components/DeleteModal.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\n\nimport { useDeleteConversation } from '../hooks';\nimport { useTranslation } from '../hooks/useTranslation';\n\nexport const DeleteModal = ({\n isOpen,\n conversationId,\n onClose,\n onConfirm,\n}: {\n isOpen: boolean;\n conversationId: string;\n onClose: () => void;\n onConfirm: () => void;\n}) => {\n const { t } = useTranslation();\n const {\n mutateAsync: deleteConversation,\n isError,\n error,\n isPending,\n } = useDeleteConversation();\n\n const handleDeleteConversation = async () => {\n try {\n await deleteConversation({\n conversation_id: conversationId,\n invalidateCache: false,\n });\n onConfirm();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(e);\n }\n };\n\n return (\n <Dialog\n open={isOpen}\n onClose={onClose}\n aria-labelledby=\"delete-modal\"\n aria-describedby=\"delete-modal-confiramtion\"\n >\n <DialogTitle sx={{ p: '16px 20px', fontStyle: 'inherit' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Typography component=\"span\" sx={{ fontWeight: 'bold' }}>\n {t('conversation.delete.confirm.title')}\n </Typography>\n\n <IconButton\n aria-label=\"close\"\n onClick={onClose}\n title={t('common.close')}\n size=\"large\"\n sx={{\n position: 'absolute',\n right: 1,\n top: 1,\n color: '
|
|
1
|
+
{"version":3,"file":"DeleteModal.esm.js","sources":["../../src/components/DeleteModal.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\n\nimport { useDeleteConversation } from '../hooks';\nimport { useTranslation } from '../hooks/useTranslation';\n\nexport const DeleteModal = ({\n isOpen,\n conversationId,\n onClose,\n onConfirm,\n}: {\n isOpen: boolean;\n conversationId: string;\n onClose: () => void;\n onConfirm: () => void;\n}) => {\n const { t } = useTranslation();\n const {\n mutateAsync: deleteConversation,\n isError,\n error,\n isPending,\n } = useDeleteConversation();\n\n const handleDeleteConversation = async () => {\n try {\n await deleteConversation({\n conversation_id: conversationId,\n invalidateCache: false,\n });\n onConfirm();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(e);\n }\n };\n\n return (\n <Dialog\n open={isOpen}\n onClose={onClose}\n aria-labelledby=\"delete-modal\"\n aria-describedby=\"delete-modal-confiramtion\"\n >\n <DialogTitle sx={{ p: '16px 20px', fontStyle: 'inherit' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Typography component=\"span\" sx={{ fontWeight: 'bold' }}>\n {t('conversation.delete.confirm.title')}\n </Typography>\n\n <IconButton\n aria-label=\"close\"\n onClick={onClose}\n title={t('common.close')}\n size=\"large\"\n sx={{\n position: 'absolute',\n right: 1,\n top: 1,\n color: 'text.primary',\n }}\n >\n <CloseIcon />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent id=\"delete-modal-body-confirmation\">\n {t('conversation.delete.confirm.message')}\n </DialogContent>\n {isError && (\n <Box maxWidth=\"650px\" marginLeft=\"20px\" marginRight=\"20px\">\n <Alert severity=\"error\">{String(error)}</Alert>\n </Box>\n )}\n <DialogActions style={{ justifyContent: 'left', padding: '20px' }}>\n <Button\n key=\"confirm\"\n variant=\"contained\"\n color=\"error\"\n onClick={handleDeleteConversation}\n style={{ marginRight: '16px' }}\n disabled={isPending}\n >\n {t('conversation.delete.confirm.action')}\n </Button>\n <Button key=\"cancel\" variant=\"outlined\" onClick={onClose}>\n {t('common.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import Tab from '@mui/material/Tab';
|
|
|
7
7
|
import Tabs from '@mui/material/Tabs';
|
|
8
8
|
import { ChatbotDisplayMode, ChatbotContent, ChatbotFooter, MessageBar, ChatbotFootnote, Settings, Chatbot, ChatbotHeader, ChatbotHeaderMain, ChatbotHeaderMenu, ChatbotHeaderTitle, FileDropZone, ChatbotAlert } from '@patternfly/chatbot';
|
|
9
9
|
import ChatbotConversationHistoryNav from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
|
|
10
|
-
import { DropdownItem, Tooltip, MenuToggle, Select, SelectList, SelectOption, AlertGroup, Alert, AlertVariant, AlertActionCloseButton, Title } from '@patternfly/react-core';
|
|
10
|
+
import { DropdownItem, Tooltip, MenuToggle, Select, SelectList, SelectOption, AlertGroup, Alert, AlertVariant, AlertActionCloseButton, Title, Label } from '@patternfly/react-core';
|
|
11
11
|
import { SortAmountDownAltIcon, SortAmountDownIcon, PlusIcon, SearchIcon } from '@patternfly/react-icons';
|
|
12
12
|
import { useQueryClient } from '@tanstack/react-query';
|
|
13
13
|
import { UNTITLED_NOTEBOOK_NAME, TEMP_CONVERSATION_ID, supportedFileTypes } from '../const.esm.js';
|
|
@@ -39,7 +39,7 @@ import { getAttachments } from '../utils/attachment-utils.esm.js';
|
|
|
39
39
|
import { getCategorizeMessages, getFootnoteProps } from '../utils/lightspeed-chatbox-utils.esm.js';
|
|
40
40
|
import Attachment from './Attachment.esm.js';
|
|
41
41
|
import { useFileAttachmentContext } from './AttachmentContext.esm.js';
|
|
42
|
-
import {
|
|
42
|
+
import { PencilIcon, CollapsedHistoryStrip } from './CollapsedHistoryStrip.esm.js';
|
|
43
43
|
import { DeleteModal } from './DeleteModal.esm.js';
|
|
44
44
|
import FilePreview from './FilePreview.esm.js';
|
|
45
45
|
import { LightspeedChatBox } from './LightspeedChatBox.esm.js';
|
|
@@ -270,7 +270,7 @@ const useStyles = makeStyles((theme) => ({
|
|
|
270
270
|
margin: "0 auto"
|
|
271
271
|
}
|
|
272
272
|
},
|
|
273
|
-
|
|
273
|
+
messageBar: {
|
|
274
274
|
border: "1px solid var(--pf-t--global--border--color--default)",
|
|
275
275
|
borderRadius: 24,
|
|
276
276
|
padding: theme.spacing(0.5),
|
|
@@ -294,6 +294,11 @@ const useStyles = makeStyles((theme) => ({
|
|
|
294
294
|
transform: "translateX(-50%)",
|
|
295
295
|
visibility: "hidden",
|
|
296
296
|
pointerEvents: "none"
|
|
297
|
+
},
|
|
298
|
+
"& .pf-chatbot__message-contents": {
|
|
299
|
+
overflowX: "hidden",
|
|
300
|
+
overflowWrap: "break-word",
|
|
301
|
+
wordBreak: "break-word"
|
|
297
302
|
}
|
|
298
303
|
},
|
|
299
304
|
chatbotContentHasOverflow: {
|
|
@@ -994,7 +999,7 @@ const LightspeedChat = ({
|
|
|
994
999
|
);
|
|
995
1000
|
const filterConversations = useCallback(
|
|
996
1001
|
(targetValue) => {
|
|
997
|
-
const pinnedChatsKey = t("conversation.category.pinnedChats") || "Pinned";
|
|
1002
|
+
const pinnedChatsKey = t("conversation.category.pinnedChats") || "Pinned chats";
|
|
998
1003
|
let isNoPinnedChatsSearchResults = false;
|
|
999
1004
|
let isNoRecentChatsSearchResults = false;
|
|
1000
1005
|
const filteredConversations = Object.entries(categorizedMessages).reduce(
|
|
@@ -1377,17 +1382,17 @@ const LightspeedChat = ({
|
|
|
1377
1382
|
/* @__PURE__ */ jsxs(
|
|
1378
1383
|
ChatbotFooter,
|
|
1379
1384
|
{
|
|
1380
|
-
className:
|
|
1385
|
+
className: `${classes.footer} ${classes.fullscreenFooter}`,
|
|
1381
1386
|
children: [
|
|
1382
1387
|
/* @__PURE__ */ jsx(FilePreview, {}),
|
|
1383
1388
|
/* @__PURE__ */ jsx(
|
|
1384
1389
|
MessageBar,
|
|
1385
1390
|
{
|
|
1386
|
-
className:
|
|
1391
|
+
className: classes.messageBar,
|
|
1387
1392
|
onSendMessage: sendMessage,
|
|
1388
1393
|
isSendButtonDisabled,
|
|
1389
1394
|
hasAttachButton: true,
|
|
1390
|
-
attachButtonPosition:
|
|
1395
|
+
attachButtonPosition: "start",
|
|
1391
1396
|
handleAttach,
|
|
1392
1397
|
hasMicrophoneButton: true,
|
|
1393
1398
|
value: draftMessage,
|
|
@@ -1399,7 +1404,7 @@ const LightspeedChat = ({
|
|
|
1399
1404
|
inputTestId: "attachment-input",
|
|
1400
1405
|
tooltipContent: t("tooltip.attach"),
|
|
1401
1406
|
"aria-label": t("tooltip.attach"),
|
|
1402
|
-
|
|
1407
|
+
icon: /* @__PURE__ */ jsx(PlusIcon, {})
|
|
1403
1408
|
},
|
|
1404
1409
|
microphone: {
|
|
1405
1410
|
tooltipContent: {
|
|
@@ -1411,7 +1416,7 @@ const LightspeedChat = ({
|
|
|
1411
1416
|
tooltipContent: t("tooltip.send")
|
|
1412
1417
|
}
|
|
1413
1418
|
},
|
|
1414
|
-
additionalActions:
|
|
1419
|
+
additionalActions: /* @__PURE__ */ jsx(
|
|
1415
1420
|
MessageBarModelSelector,
|
|
1416
1421
|
{
|
|
1417
1422
|
selectedModel,
|
|
@@ -1423,8 +1428,8 @@ const LightspeedChat = ({
|
|
|
1423
1428
|
},
|
|
1424
1429
|
disabled: isSendButtonDisabled
|
|
1425
1430
|
}
|
|
1426
|
-
)
|
|
1427
|
-
forceMultilineLayout:
|
|
1431
|
+
),
|
|
1432
|
+
forceMultilineLayout: true,
|
|
1428
1433
|
allowedFileTypes: supportedFileTypes,
|
|
1429
1434
|
onAttachRejected,
|
|
1430
1435
|
placeholder: t("chatbox.message.placeholder")
|
|
@@ -1582,7 +1587,7 @@ const LightspeedChat = ({
|
|
|
1582
1587
|
models,
|
|
1583
1588
|
isPinningChatsEnabled,
|
|
1584
1589
|
isModelSelectorDisabled: isSendButtonDisabled,
|
|
1585
|
-
hideModelSelector:
|
|
1590
|
+
hideModelSelector: true,
|
|
1586
1591
|
showChatTabOptions: !showNotebooksPanel,
|
|
1587
1592
|
setDisplayMode: setDisplayModeFromHeader,
|
|
1588
1593
|
displayMode,
|
|
@@ -1642,7 +1647,31 @@ const LightspeedChat = ({
|
|
|
1642
1647
|
Tab,
|
|
1643
1648
|
{
|
|
1644
1649
|
disableRipple: true,
|
|
1645
|
-
label:
|
|
1650
|
+
label: /* @__PURE__ */ jsxs(
|
|
1651
|
+
"span",
|
|
1652
|
+
{
|
|
1653
|
+
style: {
|
|
1654
|
+
display: "inline-flex",
|
|
1655
|
+
alignItems: "center",
|
|
1656
|
+
gap: 8
|
|
1657
|
+
},
|
|
1658
|
+
children: [
|
|
1659
|
+
t("tabs.notebooks"),
|
|
1660
|
+
/* @__PURE__ */ jsx(
|
|
1661
|
+
Label,
|
|
1662
|
+
{
|
|
1663
|
+
color: "purple",
|
|
1664
|
+
style: {
|
|
1665
|
+
alignSelf: "center",
|
|
1666
|
+
margin: 0,
|
|
1667
|
+
lineHeight: 1
|
|
1668
|
+
},
|
|
1669
|
+
children: t("tabs.notebooks.devPreview")
|
|
1670
|
+
}
|
|
1671
|
+
)
|
|
1672
|
+
]
|
|
1673
|
+
}
|
|
1674
|
+
),
|
|
1646
1675
|
"aria-label": t("tabs.notebooks")
|
|
1647
1676
|
}
|
|
1648
1677
|
)
|
|
@@ -1688,7 +1717,7 @@ const LightspeedChat = ({
|
|
|
1688
1717
|
onNewChat: newChatCreated ? void 0 : onNewChat,
|
|
1689
1718
|
newChatButtonText: t("button.newChat"),
|
|
1690
1719
|
newChatButtonProps: {
|
|
1691
|
-
icon: isFullscreenMode ? /* @__PURE__ */ jsx(
|
|
1720
|
+
icon: isFullscreenMode ? /* @__PURE__ */ jsx(PencilIcon, {}) : /* @__PURE__ */ jsx(PlusIcon, {})
|
|
1692
1721
|
},
|
|
1693
1722
|
handleTextInputChange: handleFilter,
|
|
1694
1723
|
searchInputPlaceholder: t("chatbox.search.placeholder"),
|