@red-hat-developer-hub/backstage-plugin-lightspeed 2.9.0 → 2.9.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/alpha.d.ts +2 -0
  3. package/dist/components/PermissionRequiredIcon.esm.js +2 -1
  4. package/dist/components/PermissionRequiredIcon.esm.js.map +1 -1
  5. package/dist/components/PermissionRequiredState.esm.js +42 -7
  6. package/dist/components/PermissionRequiredState.esm.js.map +1 -1
  7. package/dist/components/notebooks/NotebookView.esm.js +11 -5
  8. package/dist/components/notebooks/NotebookView.esm.js.map +1 -1
  9. package/dist/components/notebooks/UploadResourceScreen.esm.js +33 -15
  10. package/dist/components/notebooks/UploadResourceScreen.esm.js.map +1 -1
  11. package/dist/images/bot-avatar.svg +15 -0
  12. package/dist/images/logo-black.svg +22 -0
  13. package/dist/images/logo-white.svg +16 -0
  14. package/dist/images/logo.svg +1 -0
  15. package/dist/images/permission-required.svg +319 -0
  16. package/dist/images/rounded-logo.svg +22 -0
  17. package/dist/images/user-avatar.svg +4 -0
  18. package/dist/index.esm.js +5 -0
  19. package/dist/index.esm.js.map +1 -1
  20. package/dist/translations/de.esm.js +2 -0
  21. package/dist/translations/de.esm.js.map +1 -1
  22. package/dist/translations/es.esm.js +2 -0
  23. package/dist/translations/es.esm.js.map +1 -1
  24. package/dist/translations/fr.esm.js +2 -0
  25. package/dist/translations/fr.esm.js.map +1 -1
  26. package/dist/translations/it.esm.js +2 -0
  27. package/dist/translations/it.esm.js.map +1 -1
  28. package/dist/translations/ja.esm.js +2 -0
  29. package/dist/translations/ja.esm.js.map +1 -1
  30. package/dist/translations/ref.esm.js +2 -0
  31. package/dist/translations/ref.esm.js.map +1 -1
  32. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## @red-hat-developer-hub/backstage-plugin-lightspeed
2
2
 
3
+ ## 2.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - b5bb972: fix(lightspeed): Update missing permission view with responsive layout and new illustration
8
+ - 5bc0a03: add processing resources loading state for first-time notebook uploads
9
+ - d0f4682: Updated dependency `@patternfly/chatbot` to `6.6.0`.
10
+ - 9a0f571: Fixes background color of the remove/delete buttons
11
+ - @red-hat-developer-hub/backstage-plugin-lightspeed-common@2.9.1
12
+
3
13
  ## 2.9.0
4
14
 
5
15
  ### Minor Changes
package/dist/alpha.d.ts CHANGED
@@ -70,6 +70,8 @@ declare const lightspeedTranslationRef: _backstage_frontend_plugin_api.Translati
70
70
  readonly "notebook.view.documents.add": string;
71
71
  readonly "notebook.view.upload.heading": string;
72
72
  readonly "notebook.view.upload.action": string;
73
+ readonly "notebook.view.processing.heading": string;
74
+ readonly "notebook.view.processing.description": string;
73
75
  readonly "notebook.view.input.placeholder": string;
74
76
  readonly "notebook.view.input.disabledTooltip": string;
75
77
  readonly "notebook.view.sidebar.collapse": string;
@@ -8,7 +8,8 @@ const PermissionRequiredIcon = () => {
8
8
  "img",
9
9
  {
10
10
  src: permissionRequired,
11
- alt: t("icon.permissionRequired.alt")
11
+ alt: t("icon.permissionRequired.alt"),
12
+ style: { width: "clamp(200px, 50cqi, 600px)" }
12
13
  }
13
14
  );
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionRequiredIcon.esm.js","sources":["../../src/components/PermissionRequiredIcon.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 { useTranslation } from '../hooks/useTranslation';\nimport permissionRequired from '../images/permission-required.svg';\n\nexport const PermissionRequiredIcon = () => {\n const { t } = useTranslation();\n\n return (\n <img\n src={permissionRequired as any}\n alt={t('icon.permissionRequired.alt')}\n />\n );\n};\n"],"names":[],"mappings":";;;;AAmBO,MAAM,yBAAyB,MAAM;AAC1C,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,kBAAA;AAAA,MACL,GAAA,EAAK,EAAE,6BAA6B;AAAA;AAAA,GACtC;AAEJ;;;;"}
1
+ {"version":3,"file":"PermissionRequiredIcon.esm.js","sources":["../../src/components/PermissionRequiredIcon.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 { useTranslation } from '../hooks/useTranslation';\nimport permissionRequired from '../images/permission-required.svg';\n\nexport const PermissionRequiredIcon = () => {\n const { t } = useTranslation();\n\n return (\n <img\n src={permissionRequired as any}\n alt={t('icon.permissionRequired.alt')}\n style={{ width: 'clamp(200px, 50cqi, 600px)' }}\n />\n );\n};\n"],"names":[],"mappings":";;;;AAmBO,MAAM,yBAAyB,MAAM;AAC1C,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,kBAAA;AAAA,MACL,GAAA,EAAK,EAAE,6BAA6B,CAAA;AAAA,MACpC,KAAA,EAAO,EAAE,KAAA,EAAO,4BAAA;AAA6B;AAAA,GAC/C;AAEJ;;;;"}
@@ -1,7 +1,6 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { Fragment as Fragment$1 } from 'react';
3
3
  import { EmptyState } from '@backstage/core-components';
4
- import { Typography } from '@material-ui/core';
5
4
  import { makeStyles, createStyles } from '@material-ui/core/styles';
6
5
  import { useTranslation } from '../hooks/useTranslation.esm.js';
7
6
  import { PermissionRequiredIcon } from './PermissionRequiredIcon.esm.js';
@@ -9,12 +8,48 @@ import { Trans } from './Trans.esm.js';
9
8
 
10
9
  const useStyles = makeStyles(
11
10
  (theme) => createStyles({
12
- permissionError: {
11
+ root: {
13
12
  display: "flex",
13
+ flexDirection: "column",
14
+ width: "100%",
14
15
  height: "100%",
16
+ minHeight: "100%",
17
+ flex: 1,
15
18
  alignItems: "center",
16
- padding: "100px",
17
- backgroundColor: theme.palette.background.default
19
+ justifyContent: "center",
20
+ backgroundColor: theme.palette.background.default,
21
+ containerType: "inline-size",
22
+ '& [class*="BackstageEmptyState-root"]': {
23
+ alignItems: "center",
24
+ padding: theme.spacing(4)
25
+ },
26
+ '& [class*="MuiTypography-h5"]': {
27
+ fontSize: "clamp(1.875rem, 3.75cqi, 3.125rem)",
28
+ fontWeight: 400
29
+ },
30
+ '& [class*="MuiTypography-body1"]': {
31
+ fontSize: "1em",
32
+ color: theme.palette.text.secondary,
33
+ "& b": {
34
+ fontWeight: 500,
35
+ color: theme.palette.text.primary
36
+ }
37
+ },
38
+ "@container (max-width: 899px)": {
39
+ '& [class*="BackstageEmptyState-root"]': {
40
+ textAlign: "center"
41
+ },
42
+ '& [class*="MuiGrid-grid-md-6"]': {
43
+ maxWidth: "100%",
44
+ flexBasis: "100%"
45
+ },
46
+ '& [class*="BackstageEmptyState-imageContainer"]': {
47
+ order: -1,
48
+ display: "flex",
49
+ justifyContent: "center",
50
+ marginBottom: theme.spacing(-4)
51
+ }
52
+ }
18
53
  }
19
54
  })
20
55
  );
@@ -29,11 +64,11 @@ const PermissionRequiredState = ({
29
64
  /* @__PURE__ */ jsx("b", { children: perm }),
30
65
  i < permissions.length - 1 && " and "
31
66
  ] }, perm)) });
32
- return /* @__PURE__ */ jsx("div", { className: classes.permissionError, children: /* @__PURE__ */ jsx(
67
+ return /* @__PURE__ */ jsx("div", { className: classes.root, children: /* @__PURE__ */ jsx(
33
68
  EmptyState,
34
69
  {
35
70
  title: t("permission.required.title"),
36
- description: /* @__PURE__ */ jsx(Typography, { variant: "subtitle1", children: /* @__PURE__ */ jsx(
71
+ description: /* @__PURE__ */ jsx(
37
72
  Trans,
38
73
  {
39
74
  message: "permission.required.description",
@@ -42,7 +77,7 @@ const PermissionRequiredState = ({
42
77
  "<permissions/>": permissionsList
43
78
  }
44
79
  }
45
- ) }),
80
+ ),
46
81
  missing: { customImage: /* @__PURE__ */ jsx(PermissionRequiredIcon, {}) },
47
82
  action
48
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionRequiredState.esm.js","sources":["../../src/components/PermissionRequiredState.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 { Fragment } from 'react';\n\nimport { EmptyState } from '@backstage/core-components';\n\nimport { Typography } from '@material-ui/core';\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\n\nimport { useTranslation } from '../hooks/useTranslation';\nimport { PermissionRequiredIcon } from './PermissionRequiredIcon';\nimport { Trans } from './Trans';\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n permissionError: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n padding: '100px',\n backgroundColor: theme.palette.background.default,\n },\n }),\n);\n\ninterface PermissionRequiredStateProps {\n subject: string;\n permissions: string[];\n action: JSX.Element;\n}\n\nconst PermissionRequiredState = ({\n subject,\n permissions,\n action,\n}: PermissionRequiredStateProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const permissionsList = (\n <>\n {permissions.map((perm, i) => (\n <Fragment key={perm}>\n <b>{perm}</b>\n {i < permissions.length - 1 && ' and '}\n </Fragment>\n ))}\n </>\n );\n\n return (\n <div className={classes.permissionError}>\n <EmptyState\n title={t('permission.required.title')}\n description={\n <Typography variant=\"subtitle1\">\n <Trans\n message=\"permission.required.description\"\n components={{\n '<subject/>': <>{subject}</>,\n '<permissions/>': permissionsList,\n }}\n />\n </Typography>\n }\n missing={{ customImage: <PermissionRequiredIcon /> }}\n action={action}\n />\n </div>\n );\n};\nexport default PermissionRequiredState;\n"],"names":["Fragment"],"mappings":";;;;;;;;;AA2BA,MAAM,SAAA,GAAY,UAAA;AAAA,EAAW,WAC3B,YAAA,CAAa;AAAA,IACX,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,MAAA;AAAA,MACT,MAAA,EAAQ,MAAA;AAAA,MACR,UAAA,EAAY,QAAA;AAAA,MACZ,OAAA,EAAS,OAAA;AAAA,MACT,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW;AAAA;AAC5C,GACD;AACH,CAAA;AAQA,MAAM,0BAA0B,CAAC;AAAA,EAC/B,OAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAAoC;AAClC,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM,eAAA,mCAED,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBACtB,IAAA,CAACA,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAG,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,IACR,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK;AAAA,GAAA,EAAA,EAFlB,IAGf,CACD,CAAA,EACH,CAAA;AAGF,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,eAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,2BAA2B,CAAA;AAAA,MACpC,WAAA,kBACE,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,WAAA,EAClB,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,iCAAA;AAAA,UACR,UAAA,EAAY;AAAA,YACV,YAAA,kCAAiB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,YACzB,gBAAA,EAAkB;AAAA;AACpB;AAAA,OACF,EACF,CAAA;AAAA,MAEF,OAAA,EAAS,EAAE,WAAA,kBAAa,GAAA,CAAC,0BAAuB,CAAA,EAAG;AAAA,MACnD;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PermissionRequiredState.esm.js","sources":["../../src/components/PermissionRequiredState.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 { Fragment } from 'react';\n\nimport { EmptyState } from '@backstage/core-components';\n\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\n\nimport { useTranslation } from '../hooks/useTranslation';\nimport { PermissionRequiredIcon } from './PermissionRequiredIcon';\nimport { Trans } from './Trans';\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n minHeight: '100%',\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.background.default,\n containerType: 'inline-size',\n '& [class*=\"BackstageEmptyState-root\"]': {\n alignItems: 'center',\n padding: theme.spacing(4),\n },\n '& [class*=\"MuiTypography-h5\"]': {\n fontSize: 'clamp(1.875rem, 3.75cqi, 3.125rem)',\n fontWeight: 400,\n },\n '& [class*=\"MuiTypography-body1\"]': {\n fontSize: '1em',\n color: theme.palette.text.secondary,\n '& b': {\n fontWeight: 500,\n color: theme.palette.text.primary,\n },\n },\n '@container (max-width: 899px)': {\n '& [class*=\"BackstageEmptyState-root\"]': {\n textAlign: 'center',\n },\n '& [class*=\"MuiGrid-grid-md-6\"]': {\n maxWidth: '100%',\n flexBasis: '100%',\n },\n '& [class*=\"BackstageEmptyState-imageContainer\"]': {\n order: -1,\n display: 'flex',\n justifyContent: 'center',\n marginBottom: theme.spacing(-4),\n },\n },\n },\n }),\n);\n\ninterface PermissionRequiredStateProps {\n subject: string;\n permissions: string[];\n action: JSX.Element;\n}\n\nconst PermissionRequiredState = ({\n subject,\n permissions,\n action,\n}: PermissionRequiredStateProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const permissionsList = (\n <>\n {permissions.map((perm, i) => (\n <Fragment key={perm}>\n <b>{perm}</b>\n {i < permissions.length - 1 && ' and '}\n </Fragment>\n ))}\n </>\n );\n\n return (\n <div className={classes.root}>\n <EmptyState\n title={t('permission.required.title')}\n description={\n <Trans\n message=\"permission.required.description\"\n components={{\n '<subject/>': <>{subject}</>,\n '<permissions/>': permissionsList,\n }}\n />\n }\n missing={{ customImage: <PermissionRequiredIcon /> }}\n action={action}\n />\n </div>\n );\n};\nexport default PermissionRequiredState;\n"],"names":["Fragment"],"mappings":";;;;;;;;AA0BA,MAAM,SAAA,GAAY,UAAA;AAAA,EAAW,WAC3B,YAAA,CAAa;AAAA,IACX,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,MAAA;AAAA,MACT,aAAA,EAAe,QAAA;AAAA,MACf,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,SAAA,EAAW,MAAA;AAAA,MACX,IAAA,EAAM,CAAA;AAAA,MACN,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,OAAA;AAAA,MAC1C,aAAA,EAAe,aAAA;AAAA,MACf,uCAAA,EAAyC;AAAA,QACvC,UAAA,EAAY,QAAA;AAAA,QACZ,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,OAC1B;AAAA,MACA,+BAAA,EAAiC;AAAA,QAC/B,QAAA,EAAU,oCAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACd;AAAA,MACA,kCAAA,EAAoC;AAAA,QAClC,QAAA,EAAU,KAAA;AAAA,QACV,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,SAAA;AAAA,QAC1B,KAAA,EAAO;AAAA,UACL,UAAA,EAAY,GAAA;AAAA,UACZ,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK;AAAA;AAC5B,OACF;AAAA,MACA,+BAAA,EAAiC;AAAA,QAC/B,uCAAA,EAAyC;AAAA,UACvC,SAAA,EAAW;AAAA,SACb;AAAA,QACA,gCAAA,EAAkC;AAAA,UAChC,QAAA,EAAU,MAAA;AAAA,UACV,SAAA,EAAW;AAAA,SACb;AAAA,QACA,iDAAA,EAAmD;AAAA,UACjD,KAAA,EAAO,EAAA;AAAA,UACP,OAAA,EAAS,MAAA;AAAA,UACT,cAAA,EAAgB,QAAA;AAAA,UAChB,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,EAAE;AAAA;AAChC;AACF;AACF,GACD;AACH,CAAA;AAQA,MAAM,0BAA0B,CAAC;AAAA,EAC/B,OAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAAoC;AAClC,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM,eAAA,mCAED,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBACtB,IAAA,CAACA,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAG,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,IACR,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK;AAAA,GAAA,EAAA,EAFlB,IAGf,CACD,CAAA,EACH,CAAA;AAGF,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,IAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,2BAA2B,CAAA;AAAA,MACpC,WAAA,kBACE,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,iCAAA;AAAA,UACR,UAAA,EAAY;AAAA,YACV,YAAA,kCAAiB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,YACzB,gBAAA,EAAkB;AAAA;AACpB;AAAA,OACF;AAAA,MAEF,OAAA,EAAS,EAAE,WAAA,kBAAa,GAAA,CAAC,0BAAuB,CAAA,EAAG;AAAA,MACnD;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
@@ -421,9 +421,9 @@ const NotebookView = ({
421
421
  const handleRemoveToastAlert = (key) => {
422
422
  setToastAlerts((prev) => prev.filter((a) => a.key !== key));
423
423
  };
424
- const hasDocuments = documents.length > 0 || uploadingFileNames.length > 0;
425
424
  const totalDocumentCount = documents.length + uploadingFileNames.length;
426
425
  const hasUploadsInProgress = pendingUploads.length > 0 || isDocumentsFetching;
426
+ const hasNoDocuments = documents.length === 0;
427
427
  const isAddDisabled = totalDocumentCount >= NOTEBOOK_MAX_FILES || hasUploadsInProgress;
428
428
  const panelContent = /* @__PURE__ */ jsx(
429
429
  DrawerPanelContent,
@@ -452,8 +452,14 @@ const NotebookView = ({
452
452
  );
453
453
  const renderNotebookDisclaimerAlert = () => /* @__PURE__ */ jsx("div", { className: classes.notebookDisclaimerStrip, children: /* @__PURE__ */ jsx("div", { className: classes.notebookDisclaimerInner, children: /* @__PURE__ */ jsx(Alert, { isInline: true, variant: "info", title: t("aria.important"), children: t("disclaimer.withoutValidation") }) }) });
454
454
  const renderMainContent = () => {
455
- if (!hasDocuments && messages.length === 0) {
456
- return /* @__PURE__ */ jsx(Typography, { component: "span", className: classes.notebookEmptyUpload, children: /* @__PURE__ */ jsx(UploadResourceScreen, { onUploadClick: handleOpenUploadModal }) });
455
+ if (hasNoDocuments && messages.length === 0) {
456
+ return /* @__PURE__ */ jsx(Typography, { component: "span", className: classes.notebookEmptyUpload, children: /* @__PURE__ */ jsx(
457
+ UploadResourceScreen,
458
+ {
459
+ onUploadClick: handleOpenUploadModal,
460
+ isProcessing: uploadingFileNames.length > 0
461
+ }
462
+ ) });
457
463
  }
458
464
  if (messages.length > 0) {
459
465
  return /* @__PURE__ */ jsx(ChatbotContent, { className: classes.chatContent, children: /* @__PURE__ */ jsx(
@@ -587,9 +593,9 @@ const NotebookView = ({
587
593
  }
588
594
  ) }),
589
595
  /* @__PURE__ */ jsx("div", { className: classes.mainContent, children: renderMainContent() }),
590
- !hasDocuments && messages.length === 0 && renderNotebookDisclaimerAlert(),
596
+ hasNoDocuments && messages.length === 0 && renderNotebookDisclaimerAlert(),
591
597
  /* @__PURE__ */ jsxs(ChatbotFooter, { className: classes.footer, children: [
592
- documents.length === 0 ? /* @__PURE__ */ jsx(
598
+ hasNoDocuments ? /* @__PURE__ */ jsx(
593
599
  Tooltip,
594
600
  {
595
601
  content: t("notebook.view.input.disabledTooltip"),
@@ -1 +1 @@
1
- {"version":3,"file":"NotebookView.esm.js","sources":["../../../src/components/notebooks/NotebookView.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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\n\nimport { makeStyles, Typography } from '@material-ui/core';\nimport {\n ChatbotContent,\n ChatbotFooter,\n ChatbotFootnote,\n MessageBar,\n MessageProps,\n} from '@patternfly/chatbot';\nimport {\n Alert,\n AlertActionCloseButton,\n AlertGroup,\n AlertVariant,\n Button,\n Drawer,\n DrawerContent,\n DrawerContentBody,\n DrawerPanelContent,\n Tooltip,\n type AlertProps,\n} from '@patternfly/react-core';\nimport { TimesIcon } from '@patternfly/react-icons';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport {\n NOTEBOOK_MAX_FILES,\n TEMP_CONVERSATION_ID,\n UNTITLED_NOTEBOOK_NAME,\n} from '../../const';\nimport { useCreateNotebookMessage } from '../../hooks/notebooks/useCreateNotebookMessage';\nimport {\n useDocumentStatusPolling,\n type PendingUpload,\n} from '../../hooks/notebooks/useDocumentStatusPolling';\nimport { useConversationMessages } from '../../hooks/useConversationMessages';\nimport { CreateMessageVariables } from '../../hooks/useCreateCoversationMessage';\nimport { useNotebookWelcomePrompts } from '../../hooks/useNotebookWelcomePrompts';\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { NotebookSessionMetadata, SessionDocument } from '../../types';\nimport { LightspeedChatBox } from '../LightspeedChatBox';\nimport { AddDocumentModal } from './AddDocumentModal';\nimport { DeleteDocumentModal } from './DeleteDocumentModal';\nimport { DocumentSidebar } from './DocumentSidebar';\nimport { OverwriteConfirmModal } from './OverwriteConfirmModal';\nimport { AddCircleFilledIcon, SidebarExpandIcon } from './SidebarCollapseIcon';\nimport { UploadResourceScreen } from './UploadResourceScreen';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n height: '100%',\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n },\n drawerContainer: {\n flex: 1,\n minHeight: 0,\n '& .pf-v6-c-drawer__panel, & .pf-v5-c-drawer__panel': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__panel-main, & .pf-v5-c-drawer__panel-main': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__panel-body, & .pf-v5-c-drawer__panel-body': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__splitter, & .pf-v5-c-drawer__splitter': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n },\n expandStrip: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: theme.spacing(1.5),\n gap: theme.spacing(1),\n borderRight: '1px solid var(--pf-t--global--border--color--default)',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n addIconButton: {\n padding: 0,\n minWidth: 0,\n lineHeight: 1,\n },\n mainArea: {\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n minWidth: 0,\n },\n topBar: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${theme.spacing(1.5)}px ${theme.spacing(2)}px`,\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n closeButton: {\n textTransform: 'none',\n },\n mainContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n },\n drawerContentBody: {\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n height: '100%',\n },\n contentColumn: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n overflow: 'hidden',\n },\n notebookDisclaimerStrip: {\n width: '100%',\n maxWidth: 'unset',\n margin: 0,\n padding: `0 0 ${theme.spacing(1)}px`,\n boxSizing: 'border-box',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n '& .pf-v6-c-alert, & .pf-v5-c-alert': {\n backgroundColor:\n 'var(--pf-t--global--background--color--secondary--default) !important',\n },\n '& .pf-v6-c-alert__content, & .pf-v5-c-alert__content': {\n backgroundColor: 'transparent !important',\n },\n '& .pf-v6-c-alert__body, & .pf-v5-c-alert__body': {\n backgroundColor: 'transparent !important',\n },\n '& .pf-v6-c-alert__description, & .pf-v5-c-alert__description': {\n backgroundColor: 'transparent !important',\n },\n },\n notebookDisclaimerInner: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n },\n toastAlertGroup: {\n '--pf-v6-c-alert-group--m-toast--InsetInlineEnd': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--InsetBlockStart': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--MaxWidth': '350px',\n '--pf-v6-c-alert-group--m-toast--ZIndex': '9999',\n },\n toastAlert: {\n maxWidth: '350px',\n '& .pf-v6-c-alert__title': {\n margin: 0,\n },\n },\n welcomeContainer: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n overflow: 'auto',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookEmptyUpload: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookContentArea: {\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto 0 auto`,\n padding: 0,\n },\n notebookHeading: {\n fontSize: '2rem',\n fontWeight: 500,\n lineHeight: 1.25,\n padding: `${theme.spacing(1)}px 0`,\n },\n notebookSummary: {\n fontSize: '1rem',\n lineHeight: 2,\n color: 'var(--pf-t--global--text--color--regular)',\n paddingTop: theme.spacing(0.5),\n },\n promptSuggestions: {\n display: 'flex',\n flexWrap: 'wrap' as const,\n gap: theme.spacing(1),\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto ${theme.spacing(3)}px auto`,\n justifyContent: 'flex-start',\n },\n promptPill: {\n appearance: 'none' as const,\n background: 'transparent',\n border: `1px solid var(--pf-t--global--border--color--default)`,\n borderRadius: '999px',\n padding: `${theme.spacing(1)}px ${theme.spacing(2.5)}px`,\n fontSize: '0.875rem',\n color: 'var(--pf-t--global--text--color--regular)',\n cursor: 'pointer',\n transition: 'background-color 0.15s, border-color 0.15s',\n '&:hover': {\n backgroundColor:\n 'var(--pf-t--global--background--color--secondary--default)',\n borderColor: 'var(--pf-t--global--border--color--hover)',\n },\n },\n footer: {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n '&>.pf-chatbot__footer-container': {\n width: '95% !important',\n maxWidth: 'unset !important',\n },\n '& .pf-chatbot__message-bar': {\n backgroundColor:\n theme.palette.type === 'light'\n ? theme.palette.grey[100]\n : 'var(--pf-t--global--background--color--secondary--default)',\n },\n },\n chatContent: {\n minHeight: 0,\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'auto',\n },\n}));\n\ntype NotebookViewProps = {\n sessionId: string;\n notebookName?: string;\n documents?: SessionDocument[];\n isDocumentsFetching?: boolean;\n metadata?: NotebookSessionMetadata;\n topicSummary?: string;\n userName?: string;\n avatar?: string;\n profileLoading: boolean;\n topicRestrictionEnabled: boolean;\n onClose: () => void;\n};\n\nexport const NotebookView = ({\n sessionId,\n notebookName = UNTITLED_NOTEBOOK_NAME,\n documents = [],\n isDocumentsFetching = false,\n metadata,\n topicSummary,\n userName,\n avatar,\n profileLoading,\n topicRestrictionEnabled,\n onClose,\n}: NotebookViewProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const configApi = useApi(configApiRef);\n const notebooksApi = useApi(notebooksApiRef);\n const { mutateAsync: notebookCreateMessage } = useCreateNotebookMessage();\n\n // Use notebook-specific model from config instead of chat's selected model\n const notebookModel =\n configApi.getOptionalString('lightspeed.notebooks.queryDefaults.model') ||\n '';\n\n const [conversationId, setConversationId] = useState(\n metadata?.conversation_id ?? TEMP_CONVERSATION_ID,\n );\n const [isSendButtonDisabled, setIsSendButtonDisabled] = useState(false);\n const [announcement, setAnnouncement] = useState<string | undefined>(\n undefined,\n );\n const [deletingDocumentIds, setDeletingDocumentIds] = useState<Set<string>>(\n new Set(),\n );\n const [deleteDocumentTarget, setDeleteDocumentTarget] = useState<{\n id: string;\n name: string;\n } | null>(null);\n\n const handleDeleteDocument = useCallback((documentId: string) => {\n setDeleteDocumentTarget({ id: documentId, name: documentId });\n }, []);\n\n const onComplete = useCallback(\n (message: string) => {\n setIsSendButtonDisabled(false);\n setAnnouncement(`Message from Bot: ${message}`);\n queryClient.invalidateQueries({\n queryKey: ['conversationMessages', conversationId],\n });\n },\n [queryClient, conversationId],\n );\n\n const onStart = useCallback((conv_id: string) => {\n setConversationId(conv_id);\n }, []);\n\n const createMessageAdapter = useCallback(\n async (vars: CreateMessageVariables) => {\n return notebookCreateMessage({\n prompt: vars.prompt,\n sessionId,\n });\n },\n [notebookCreateMessage, sessionId],\n );\n\n const { conversationMessages, handleInputPrompt, scrollToBottomRef } =\n useConversationMessages(\n conversationId,\n userName,\n notebookModel,\n '',\n avatar,\n onComplete,\n onStart,\n createMessageAdapter,\n );\n\n const [messages, setMessages] =\n useState<MessageProps[]>(conversationMessages);\n\n useEffect(() => {\n setMessages(conversationMessages);\n }, [conversationMessages]);\n\n const sendMessage = useCallback(\n (message: string | number) => {\n setAnnouncement(\n t('conversation.announcement.userMessage' as any, {\n prompt: message.toString(),\n }),\n );\n handleInputPrompt(message.toString(), []);\n setIsSendButtonDisabled(true);\n },\n [handleInputPrompt, t],\n );\n\n const notebookPrompts = useNotebookWelcomePrompts();\n const welcomePrompts = notebookPrompts.map(title => ({\n title,\n onClick: () => sendMessage(title),\n }));\n\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);\n const [uploadingFileNames, setUploadingFileNames] = useState<string[]>([]);\n const [pendingUploads, setPendingUploads] = useState<PendingUpload[]>([]);\n const [toastAlerts, setToastAlerts] = useState<Partial<AlertProps>[]>([]);\n const processedIds = useRef<Set<string>>(new Set());\n const [completedFileNames, setCompletedFileNames] = useState<Set<string>>(\n new Set(),\n );\n const [filesToOverwrite, setFilesToOverwrite] = useState<File[]>([]);\n const [isOverwriteModalOpen, setIsOverwriteModalOpen] = useState(false);\n const [filesToAddToModal, setFilesToAddToModal] = useState<File[]>([]);\n\n const confirmDeleteDocument = useCallback(async () => {\n if (!deleteDocumentTarget) return;\n const { id: documentId, name: documentName } = deleteDocumentTarget;\n setDeleteDocumentTarget(null);\n setDeletingDocumentIds(prev => new Set(prev).add(documentId));\n try {\n await notebooksApi.deleteDocument(sessionId, documentId);\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n setToastAlerts(prev => [\n {\n key: Date.now() + documentId,\n title: (t as Function)('notebook.document.delete.success', {\n documentName,\n }) as string,\n variant: 'success',\n },\n ...prev,\n ]);\n } finally {\n setDeletingDocumentIds(prev => {\n const next = new Set(prev);\n next.delete(documentId);\n return next;\n });\n }\n }, [deleteDocumentTarget, notebooksApi, sessionId, queryClient, t]);\n\n const handleOpenUploadModal = () => setIsUploadModalOpen(true);\n const handleCloseUploadModal = () => setIsUploadModalOpen(false);\n\n const handleFilesUploading = (files: File[]) => {\n setUploadingFileNames(prev => {\n const newNames = files\n .map(f => f.name)\n .filter(name => !prev.includes(name));\n return [...prev, ...newNames];\n });\n };\n\n const handleUploadStarted = (info: {\n fileName: string;\n documentId: string;\n }) => {\n processedIds.current.delete(info.documentId);\n setPendingUploads(prev => [\n ...prev,\n { fileName: info.fileName, documentId: info.documentId },\n ]);\n };\n\n const handleUploadFailed = (fileName: string) => {\n setUploadingFileNames(prev => prev.filter(n => n !== fileName));\n setToastAlerts(prev => [\n {\n key: Date.now() + fileName,\n title: (t as Function)('notebook.upload.failed', {\n fileName,\n }) as string,\n variant: 'danger',\n },\n ...prev,\n ]);\n };\n\n const handleDuplicatesFound = (files: File[]) => {\n setFilesToOverwrite(files);\n setIsOverwriteModalOpen(true);\n };\n\n const handleOverwriteConfirm = () => {\n const files = filesToOverwrite;\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n\n if (files.length === 0) return;\n\n setFilesToAddToModal(files);\n };\n\n const handleFilesAddedToModal = () => {\n setFilesToAddToModal([]);\n };\n\n const handleOverwriteCancel = () => {\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n };\n\n const pollingResults = useDocumentStatusPolling(sessionId, pendingUploads);\n\n useEffect(() => {\n const completedOrFailed = pollingResults.filter(\n r =>\n (r.status === 'completed' ||\n r.status === 'failed' ||\n r.status === 'cancelled') &&\n !processedIds.current.has(r.documentId),\n );\n\n if (completedOrFailed.length === 0) return;\n\n const idsToRemove = new Set<string>();\n const namesToRemove = new Set<string>();\n const newAlerts: Partial<AlertProps>[] = [];\n\n const newCompletedNames = new Set<string>();\n\n for (const result of completedOrFailed) {\n processedIds.current.add(result.documentId);\n idsToRemove.add(result.documentId);\n namesToRemove.add(result.fileName);\n if (result.status === 'completed') {\n newCompletedNames.add(result.fileName);\n }\n\n if (result.status !== 'completed') {\n const errorDetail = result.error ? ` ${result.error}` : '';\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: `${\n (t as Function)('notebook.upload.failed', {\n fileName: result.fileName,\n }) as string\n }${errorDetail}`,\n variant: 'danger',\n });\n }\n }\n\n setPendingUploads(prev => prev.filter(u => !idsToRemove.has(u.documentId)));\n setUploadingFileNames(prev =>\n prev.filter(name => !namesToRemove.has(name)),\n );\n if (newCompletedNames.size > 0) {\n setCompletedFileNames(prev => new Set([...prev, ...newCompletedNames]));\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n }\n setToastAlerts(prev => [...newAlerts, ...prev]);\n }, [pollingResults, t, queryClient, sessionId]);\n\n const handleRemoveToastAlert = (key: React.Key) => {\n setToastAlerts(prev => prev.filter(a => a.key !== key));\n };\n\n const hasDocuments = documents.length > 0 || uploadingFileNames.length > 0;\n const totalDocumentCount = documents.length + uploadingFileNames.length;\n const hasUploadsInProgress = pendingUploads.length > 0 || isDocumentsFetching;\n const isAddDisabled =\n totalDocumentCount >= NOTEBOOK_MAX_FILES || hasUploadsInProgress;\n\n const panelContent = (\n <DrawerPanelContent\n isResizable\n defaultSize=\"310px\"\n minSize=\"232px\"\n maxSize=\"50%\"\n resizeAriaLabel={t('notebook.view.sidebar.resize')}\n >\n <DocumentSidebar\n notebookName={notebookName}\n documents={documents}\n uploadingFileNames={uploadingFileNames}\n completedFileNames={completedFileNames}\n deletingDocumentIds={deletingDocumentIds}\n collapsed={sidebarCollapsed}\n hasUploadsInProgress={hasUploadsInProgress}\n onToggleCollapse={() => setSidebarCollapsed(prev => !prev)}\n onAddDocument={handleOpenUploadModal}\n onDeleteDocument={handleDeleteDocument}\n />\n </DrawerPanelContent>\n );\n\n const renderNotebookDisclaimerAlert = () => (\n <div className={classes.notebookDisclaimerStrip}>\n <div className={classes.notebookDisclaimerInner}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n </div>\n );\n\n const renderMainContent = () => {\n if (!hasDocuments && messages.length === 0) {\n return (\n <Typography component=\"span\" className={classes.notebookEmptyUpload}>\n <UploadResourceScreen onUploadClick={handleOpenUploadModal} />\n </Typography>\n );\n }\n if (messages.length > 0) {\n return (\n <ChatbotContent className={classes.chatContent}>\n <LightspeedChatBox\n userName={userName}\n messages={messages}\n profileLoading={profileLoading}\n announcement={announcement}\n ref={scrollToBottomRef}\n welcomePrompts={[]}\n conversationId={conversationId}\n isStreaming={isSendButtonDisabled}\n topicRestrictionEnabled={topicRestrictionEnabled}\n />\n </ChatbotContent>\n );\n }\n return (\n <div className={classes.welcomeContainer}>\n <div style={{ flex: 1 }} />\n {renderNotebookDisclaimerAlert()}\n <div className={classes.notebookContentArea}>\n <Typography className={classes.notebookHeading}>\n {notebookName}\n </Typography>\n {topicSummary && (\n <Typography className={classes.notebookSummary}>\n {topicSummary}\n </Typography>\n )}\n </div>\n {welcomePrompts.length > 0 && (\n <div className={classes.promptSuggestions}>\n {welcomePrompts.map(prompt => (\n <button\n key={prompt.title}\n type=\"button\"\n className={classes.promptPill}\n onClick={prompt.onClick}\n >\n {prompt.title}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={classes.root}>\n {toastAlerts.length > 0 && (\n <AlertGroup\n hasAnimations\n isToast\n isLiveRegion\n className={classes.toastAlertGroup}\n >\n {toastAlerts.map(({ key, title, variant }) => (\n <Alert\n key={key}\n variant={AlertVariant[variant ?? 'success']}\n title={title}\n className={classes.toastAlert}\n timeout={2000}\n onTimeout={() => handleRemoveToastAlert(key as React.Key)}\n actionClose={\n <AlertActionCloseButton\n title={title as string}\n variantLabel={`${variant ?? 'success'} alert`}\n onClose={() => handleRemoveToastAlert(key as React.Key)}\n />\n }\n />\n ))}\n </AlertGroup>\n )}\n <Drawer\n isExpanded={!sidebarCollapsed}\n isInline\n position=\"start\"\n className={classes.drawerContainer}\n >\n <DrawerContent\n panelContent={!sidebarCollapsed ? panelContent : undefined}\n >\n <DrawerContentBody className={classes.drawerContentBody}>\n <div className={classes.mainArea}>\n {sidebarCollapsed && (\n <div className={classes.expandStrip}>\n <Tooltip\n content={t('notebook.view.sidebar.expand')}\n position=\"right\"\n >\n <Button\n variant=\"plain\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label={t('notebook.view.sidebar.expand')}\n size=\"sm\"\n >\n <SidebarExpandIcon />\n </Button>\n </Tooltip>\n <Tooltip\n content={(() => {\n if (hasUploadsInProgress)\n return t('notebook.view.documents.uploadsInProgress');\n if (isAddDisabled)\n return t('notebook.view.documents.maxReached');\n return t('notebook.view.documents.add');\n })()}\n position=\"right\"\n >\n <Typography component=\"span\">\n <Button\n variant=\"plain\"\n className={classes.addIconButton}\n onClick={\n isAddDisabled ? undefined : handleOpenUploadModal\n }\n aria-label={t('notebook.view.documents.add')}\n isDisabled={isAddDisabled}\n >\n <AddCircleFilledIcon disabled={isAddDisabled} />\n </Button>\n </Typography>\n </Tooltip>\n </div>\n )}\n\n <div className={classes.contentColumn}>\n <div className={classes.topBar}>\n <Button\n variant=\"link\"\n className={classes.closeButton}\n onClick={onClose}\n icon={<TimesIcon />}\n iconPosition=\"end\"\n >\n {t('notebook.view.close')}\n </Button>\n </div>\n\n <div className={classes.mainContent}>{renderMainContent()}</div>\n\n {!hasDocuments &&\n messages.length === 0 &&\n renderNotebookDisclaimerAlert()}\n\n <ChatbotFooter className={classes.footer}>\n {documents.length === 0 ? (\n <Tooltip\n content={t('notebook.view.input.disabledTooltip')}\n position=\"top\"\n >\n <div>\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton={false}\n hasStopButton={false}\n isSendButtonDisabled\n isDisabled\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n </div>\n </Tooltip>\n ) : (\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton\n hasStopButton={false}\n isSendButtonDisabled={isSendButtonDisabled}\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n )}\n <ChatbotFootnote label={t('footer.accuracy.label')} />\n </ChatbotFooter>\n </div>\n </div>\n </DrawerContentBody>\n </DrawerContent>\n </Drawer>\n\n <AddDocumentModal\n isOpen={isUploadModalOpen}\n onClose={handleCloseUploadModal}\n sessionId={sessionId}\n existingDocumentNames={documents.map(d => d.title)}\n hasUploadsInProgress={hasUploadsInProgress}\n onFilesUploading={handleFilesUploading}\n onUploadStarted={handleUploadStarted}\n onUploadFailed={handleUploadFailed}\n onDuplicatesFound={handleDuplicatesFound}\n filesToAdd={filesToAddToModal}\n onFilesAdded={handleFilesAddedToModal}\n />\n\n <OverwriteConfirmModal\n isOpen={isOverwriteModalOpen}\n onClose={handleOverwriteCancel}\n onConfirm={handleOverwriteConfirm}\n fileNames={filesToOverwrite.map(f => f.name)}\n />\n\n <DeleteDocumentModal\n isOpen={deleteDocumentTarget !== null}\n onClose={() => setDeleteDocumentTarget(null)}\n onConfirm={confirmDeleteDocument}\n documentName={deleteDocumentTarget?.name ?? ''}\n />\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotebookView.esm.js","sources":["../../../src/components/notebooks/NotebookView.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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\n\nimport { makeStyles, Typography } from '@material-ui/core';\nimport {\n ChatbotContent,\n ChatbotFooter,\n ChatbotFootnote,\n MessageBar,\n MessageProps,\n} from '@patternfly/chatbot';\nimport {\n Alert,\n AlertActionCloseButton,\n AlertGroup,\n AlertVariant,\n Button,\n Drawer,\n DrawerContent,\n DrawerContentBody,\n DrawerPanelContent,\n Tooltip,\n type AlertProps,\n} from '@patternfly/react-core';\nimport { TimesIcon } from '@patternfly/react-icons';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport {\n NOTEBOOK_MAX_FILES,\n TEMP_CONVERSATION_ID,\n UNTITLED_NOTEBOOK_NAME,\n} from '../../const';\nimport { useCreateNotebookMessage } from '../../hooks/notebooks/useCreateNotebookMessage';\nimport {\n useDocumentStatusPolling,\n type PendingUpload,\n} from '../../hooks/notebooks/useDocumentStatusPolling';\nimport { useConversationMessages } from '../../hooks/useConversationMessages';\nimport { CreateMessageVariables } from '../../hooks/useCreateCoversationMessage';\nimport { useNotebookWelcomePrompts } from '../../hooks/useNotebookWelcomePrompts';\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { NotebookSessionMetadata, SessionDocument } from '../../types';\nimport { LightspeedChatBox } from '../LightspeedChatBox';\nimport { AddDocumentModal } from './AddDocumentModal';\nimport { DeleteDocumentModal } from './DeleteDocumentModal';\nimport { DocumentSidebar } from './DocumentSidebar';\nimport { OverwriteConfirmModal } from './OverwriteConfirmModal';\nimport { AddCircleFilledIcon, SidebarExpandIcon } from './SidebarCollapseIcon';\nimport { UploadResourceScreen } from './UploadResourceScreen';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n height: '100%',\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n },\n drawerContainer: {\n flex: 1,\n minHeight: 0,\n '& .pf-v6-c-drawer__panel, & .pf-v5-c-drawer__panel': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__panel-main, & .pf-v5-c-drawer__panel-main': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__panel-body, & .pf-v5-c-drawer__panel-body': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default) !important',\n },\n '& .pf-v6-c-drawer__splitter, & .pf-v5-c-drawer__splitter': {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n },\n expandStrip: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: theme.spacing(1.5),\n gap: theme.spacing(1),\n borderRight: '1px solid var(--pf-t--global--border--color--default)',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n addIconButton: {\n padding: 0,\n minWidth: 0,\n lineHeight: 1,\n },\n mainArea: {\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n minWidth: 0,\n },\n topBar: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${theme.spacing(1.5)}px ${theme.spacing(2)}px`,\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n closeButton: {\n textTransform: 'none',\n },\n mainContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n },\n drawerContentBody: {\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n height: '100%',\n },\n contentColumn: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n overflow: 'hidden',\n },\n notebookDisclaimerStrip: {\n width: '100%',\n maxWidth: 'unset',\n margin: 0,\n padding: `0 0 ${theme.spacing(1)}px`,\n boxSizing: 'border-box',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n '& .pf-v6-c-alert, & .pf-v5-c-alert': {\n backgroundColor:\n 'var(--pf-t--global--background--color--secondary--default) !important',\n },\n '& .pf-v6-c-alert__content, & .pf-v5-c-alert__content': {\n backgroundColor: 'transparent !important',\n },\n '& .pf-v6-c-alert__body, & .pf-v5-c-alert__body': {\n backgroundColor: 'transparent !important',\n },\n '& .pf-v6-c-alert__description, & .pf-v5-c-alert__description': {\n backgroundColor: 'transparent !important',\n },\n },\n notebookDisclaimerInner: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n },\n toastAlertGroup: {\n '--pf-v6-c-alert-group--m-toast--InsetInlineEnd': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--InsetBlockStart': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--MaxWidth': '350px',\n '--pf-v6-c-alert-group--m-toast--ZIndex': '9999',\n },\n toastAlert: {\n maxWidth: '350px',\n '& .pf-v6-c-alert__title': {\n margin: 0,\n },\n },\n welcomeContainer: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n overflow: 'auto',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookEmptyUpload: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookContentArea: {\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto 0 auto`,\n padding: 0,\n },\n notebookHeading: {\n fontSize: '2rem',\n fontWeight: 500,\n lineHeight: 1.25,\n padding: `${theme.spacing(1)}px 0`,\n },\n notebookSummary: {\n fontSize: '1rem',\n lineHeight: 2,\n color: 'var(--pf-t--global--text--color--regular)',\n paddingTop: theme.spacing(0.5),\n },\n promptSuggestions: {\n display: 'flex',\n flexWrap: 'wrap' as const,\n gap: theme.spacing(1),\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto ${theme.spacing(3)}px auto`,\n justifyContent: 'flex-start',\n },\n promptPill: {\n appearance: 'none' as const,\n background: 'transparent',\n border: `1px solid var(--pf-t--global--border--color--default)`,\n borderRadius: '999px',\n padding: `${theme.spacing(1)}px ${theme.spacing(2.5)}px`,\n fontSize: '0.875rem',\n color: 'var(--pf-t--global--text--color--regular)',\n cursor: 'pointer',\n transition: 'background-color 0.15s, border-color 0.15s',\n '&:hover': {\n backgroundColor:\n 'var(--pf-t--global--background--color--secondary--default)',\n borderColor: 'var(--pf-t--global--border--color--hover)',\n },\n },\n footer: {\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n '&>.pf-chatbot__footer-container': {\n width: '95% !important',\n maxWidth: 'unset !important',\n },\n '& .pf-chatbot__message-bar': {\n backgroundColor:\n theme.palette.type === 'light'\n ? theme.palette.grey[100]\n : 'var(--pf-t--global--background--color--secondary--default)',\n },\n },\n chatContent: {\n minHeight: 0,\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'auto',\n },\n}));\n\ntype NotebookViewProps = {\n sessionId: string;\n notebookName?: string;\n documents?: SessionDocument[];\n isDocumentsFetching?: boolean;\n metadata?: NotebookSessionMetadata;\n topicSummary?: string;\n userName?: string;\n avatar?: string;\n profileLoading: boolean;\n topicRestrictionEnabled: boolean;\n onClose: () => void;\n};\n\nexport const NotebookView = ({\n sessionId,\n notebookName = UNTITLED_NOTEBOOK_NAME,\n documents = [],\n isDocumentsFetching = false,\n metadata,\n topicSummary,\n userName,\n avatar,\n profileLoading,\n topicRestrictionEnabled,\n onClose,\n}: NotebookViewProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const configApi = useApi(configApiRef);\n const notebooksApi = useApi(notebooksApiRef);\n const { mutateAsync: notebookCreateMessage } = useCreateNotebookMessage();\n\n // Use notebook-specific model from config instead of chat's selected model\n const notebookModel =\n configApi.getOptionalString('lightspeed.notebooks.queryDefaults.model') ||\n '';\n\n const [conversationId, setConversationId] = useState(\n metadata?.conversation_id ?? TEMP_CONVERSATION_ID,\n );\n const [isSendButtonDisabled, setIsSendButtonDisabled] = useState(false);\n const [announcement, setAnnouncement] = useState<string | undefined>(\n undefined,\n );\n const [deletingDocumentIds, setDeletingDocumentIds] = useState<Set<string>>(\n new Set(),\n );\n const [deleteDocumentTarget, setDeleteDocumentTarget] = useState<{\n id: string;\n name: string;\n } | null>(null);\n\n const handleDeleteDocument = useCallback((documentId: string) => {\n setDeleteDocumentTarget({ id: documentId, name: documentId });\n }, []);\n\n const onComplete = useCallback(\n (message: string) => {\n setIsSendButtonDisabled(false);\n setAnnouncement(`Message from Bot: ${message}`);\n queryClient.invalidateQueries({\n queryKey: ['conversationMessages', conversationId],\n });\n },\n [queryClient, conversationId],\n );\n\n const onStart = useCallback((conv_id: string) => {\n setConversationId(conv_id);\n }, []);\n\n const createMessageAdapter = useCallback(\n async (vars: CreateMessageVariables) => {\n return notebookCreateMessage({\n prompt: vars.prompt,\n sessionId,\n });\n },\n [notebookCreateMessage, sessionId],\n );\n\n const { conversationMessages, handleInputPrompt, scrollToBottomRef } =\n useConversationMessages(\n conversationId,\n userName,\n notebookModel,\n '',\n avatar,\n onComplete,\n onStart,\n createMessageAdapter,\n );\n\n const [messages, setMessages] =\n useState<MessageProps[]>(conversationMessages);\n\n useEffect(() => {\n setMessages(conversationMessages);\n }, [conversationMessages]);\n\n const sendMessage = useCallback(\n (message: string | number) => {\n setAnnouncement(\n t('conversation.announcement.userMessage' as any, {\n prompt: message.toString(),\n }),\n );\n handleInputPrompt(message.toString(), []);\n setIsSendButtonDisabled(true);\n },\n [handleInputPrompt, t],\n );\n\n const notebookPrompts = useNotebookWelcomePrompts();\n const welcomePrompts = notebookPrompts.map(title => ({\n title,\n onClick: () => sendMessage(title),\n }));\n\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);\n const [uploadingFileNames, setUploadingFileNames] = useState<string[]>([]);\n const [pendingUploads, setPendingUploads] = useState<PendingUpload[]>([]);\n const [toastAlerts, setToastAlerts] = useState<Partial<AlertProps>[]>([]);\n const processedIds = useRef<Set<string>>(new Set());\n const [completedFileNames, setCompletedFileNames] = useState<Set<string>>(\n new Set(),\n );\n const [filesToOverwrite, setFilesToOverwrite] = useState<File[]>([]);\n const [isOverwriteModalOpen, setIsOverwriteModalOpen] = useState(false);\n const [filesToAddToModal, setFilesToAddToModal] = useState<File[]>([]);\n\n const confirmDeleteDocument = useCallback(async () => {\n if (!deleteDocumentTarget) return;\n const { id: documentId, name: documentName } = deleteDocumentTarget;\n setDeleteDocumentTarget(null);\n setDeletingDocumentIds(prev => new Set(prev).add(documentId));\n try {\n await notebooksApi.deleteDocument(sessionId, documentId);\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n setToastAlerts(prev => [\n {\n key: Date.now() + documentId,\n title: (t as Function)('notebook.document.delete.success', {\n documentName,\n }) as string,\n variant: 'success',\n },\n ...prev,\n ]);\n } finally {\n setDeletingDocumentIds(prev => {\n const next = new Set(prev);\n next.delete(documentId);\n return next;\n });\n }\n }, [deleteDocumentTarget, notebooksApi, sessionId, queryClient, t]);\n\n const handleOpenUploadModal = () => setIsUploadModalOpen(true);\n const handleCloseUploadModal = () => setIsUploadModalOpen(false);\n\n const handleFilesUploading = (files: File[]) => {\n setUploadingFileNames(prev => {\n const newNames = files\n .map(f => f.name)\n .filter(name => !prev.includes(name));\n return [...prev, ...newNames];\n });\n };\n\n const handleUploadStarted = (info: {\n fileName: string;\n documentId: string;\n }) => {\n processedIds.current.delete(info.documentId);\n setPendingUploads(prev => [\n ...prev,\n { fileName: info.fileName, documentId: info.documentId },\n ]);\n };\n\n const handleUploadFailed = (fileName: string) => {\n setUploadingFileNames(prev => prev.filter(n => n !== fileName));\n setToastAlerts(prev => [\n {\n key: Date.now() + fileName,\n title: (t as Function)('notebook.upload.failed', {\n fileName,\n }) as string,\n variant: 'danger',\n },\n ...prev,\n ]);\n };\n\n const handleDuplicatesFound = (files: File[]) => {\n setFilesToOverwrite(files);\n setIsOverwriteModalOpen(true);\n };\n\n const handleOverwriteConfirm = () => {\n const files = filesToOverwrite;\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n\n if (files.length === 0) return;\n\n setFilesToAddToModal(files);\n };\n\n const handleFilesAddedToModal = () => {\n setFilesToAddToModal([]);\n };\n\n const handleOverwriteCancel = () => {\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n };\n\n const pollingResults = useDocumentStatusPolling(sessionId, pendingUploads);\n\n useEffect(() => {\n const completedOrFailed = pollingResults.filter(\n r =>\n (r.status === 'completed' ||\n r.status === 'failed' ||\n r.status === 'cancelled') &&\n !processedIds.current.has(r.documentId),\n );\n\n if (completedOrFailed.length === 0) return;\n\n const idsToRemove = new Set<string>();\n const namesToRemove = new Set<string>();\n const newAlerts: Partial<AlertProps>[] = [];\n\n const newCompletedNames = new Set<string>();\n\n for (const result of completedOrFailed) {\n processedIds.current.add(result.documentId);\n idsToRemove.add(result.documentId);\n namesToRemove.add(result.fileName);\n if (result.status === 'completed') {\n newCompletedNames.add(result.fileName);\n }\n\n if (result.status !== 'completed') {\n const errorDetail = result.error ? ` ${result.error}` : '';\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: `${\n (t as Function)('notebook.upload.failed', {\n fileName: result.fileName,\n }) as string\n }${errorDetail}`,\n variant: 'danger',\n });\n }\n }\n\n setPendingUploads(prev => prev.filter(u => !idsToRemove.has(u.documentId)));\n setUploadingFileNames(prev =>\n prev.filter(name => !namesToRemove.has(name)),\n );\n if (newCompletedNames.size > 0) {\n setCompletedFileNames(prev => new Set([...prev, ...newCompletedNames]));\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n }\n setToastAlerts(prev => [...newAlerts, ...prev]);\n }, [pollingResults, t, queryClient, sessionId]);\n\n const handleRemoveToastAlert = (key: React.Key) => {\n setToastAlerts(prev => prev.filter(a => a.key !== key));\n };\n\n const totalDocumentCount = documents.length + uploadingFileNames.length;\n const hasUploadsInProgress = pendingUploads.length > 0 || isDocumentsFetching;\n const hasNoDocuments = documents.length === 0;\n const isAddDisabled =\n totalDocumentCount >= NOTEBOOK_MAX_FILES || hasUploadsInProgress;\n\n const panelContent = (\n <DrawerPanelContent\n isResizable\n defaultSize=\"310px\"\n minSize=\"232px\"\n maxSize=\"50%\"\n resizeAriaLabel={t('notebook.view.sidebar.resize')}\n >\n <DocumentSidebar\n notebookName={notebookName}\n documents={documents}\n uploadingFileNames={uploadingFileNames}\n completedFileNames={completedFileNames}\n deletingDocumentIds={deletingDocumentIds}\n collapsed={sidebarCollapsed}\n hasUploadsInProgress={hasUploadsInProgress}\n onToggleCollapse={() => setSidebarCollapsed(prev => !prev)}\n onAddDocument={handleOpenUploadModal}\n onDeleteDocument={handleDeleteDocument}\n />\n </DrawerPanelContent>\n );\n\n const renderNotebookDisclaimerAlert = () => (\n <div className={classes.notebookDisclaimerStrip}>\n <div className={classes.notebookDisclaimerInner}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n </div>\n );\n\n const renderMainContent = () => {\n if (hasNoDocuments && messages.length === 0) {\n return (\n <Typography component=\"span\" className={classes.notebookEmptyUpload}>\n <UploadResourceScreen\n onUploadClick={handleOpenUploadModal}\n isProcessing={uploadingFileNames.length > 0}\n />\n </Typography>\n );\n }\n if (messages.length > 0) {\n return (\n <ChatbotContent className={classes.chatContent}>\n <LightspeedChatBox\n userName={userName}\n messages={messages}\n profileLoading={profileLoading}\n announcement={announcement}\n ref={scrollToBottomRef}\n welcomePrompts={[]}\n conversationId={conversationId}\n isStreaming={isSendButtonDisabled}\n topicRestrictionEnabled={topicRestrictionEnabled}\n />\n </ChatbotContent>\n );\n }\n return (\n <div className={classes.welcomeContainer}>\n <div style={{ flex: 1 }} />\n {renderNotebookDisclaimerAlert()}\n <div className={classes.notebookContentArea}>\n <Typography className={classes.notebookHeading}>\n {notebookName}\n </Typography>\n {topicSummary && (\n <Typography className={classes.notebookSummary}>\n {topicSummary}\n </Typography>\n )}\n </div>\n {welcomePrompts.length > 0 && (\n <div className={classes.promptSuggestions}>\n {welcomePrompts.map(prompt => (\n <button\n key={prompt.title}\n type=\"button\"\n className={classes.promptPill}\n onClick={prompt.onClick}\n >\n {prompt.title}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={classes.root}>\n {toastAlerts.length > 0 && (\n <AlertGroup\n hasAnimations\n isToast\n isLiveRegion\n className={classes.toastAlertGroup}\n >\n {toastAlerts.map(({ key, title, variant }) => (\n <Alert\n key={key}\n variant={AlertVariant[variant ?? 'success']}\n title={title}\n className={classes.toastAlert}\n timeout={2000}\n onTimeout={() => handleRemoveToastAlert(key as React.Key)}\n actionClose={\n <AlertActionCloseButton\n title={title as string}\n variantLabel={`${variant ?? 'success'} alert`}\n onClose={() => handleRemoveToastAlert(key as React.Key)}\n />\n }\n />\n ))}\n </AlertGroup>\n )}\n <Drawer\n isExpanded={!sidebarCollapsed}\n isInline\n position=\"start\"\n className={classes.drawerContainer}\n >\n <DrawerContent\n panelContent={!sidebarCollapsed ? panelContent : undefined}\n >\n <DrawerContentBody className={classes.drawerContentBody}>\n <div className={classes.mainArea}>\n {sidebarCollapsed && (\n <div className={classes.expandStrip}>\n <Tooltip\n content={t('notebook.view.sidebar.expand')}\n position=\"right\"\n >\n <Button\n variant=\"plain\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label={t('notebook.view.sidebar.expand')}\n size=\"sm\"\n >\n <SidebarExpandIcon />\n </Button>\n </Tooltip>\n <Tooltip\n content={(() => {\n if (hasUploadsInProgress)\n return t('notebook.view.documents.uploadsInProgress');\n if (isAddDisabled)\n return t('notebook.view.documents.maxReached');\n return t('notebook.view.documents.add');\n })()}\n position=\"right\"\n >\n <Typography component=\"span\">\n <Button\n variant=\"plain\"\n className={classes.addIconButton}\n onClick={\n isAddDisabled ? undefined : handleOpenUploadModal\n }\n aria-label={t('notebook.view.documents.add')}\n isDisabled={isAddDisabled}\n >\n <AddCircleFilledIcon disabled={isAddDisabled} />\n </Button>\n </Typography>\n </Tooltip>\n </div>\n )}\n\n <div className={classes.contentColumn}>\n <div className={classes.topBar}>\n <Button\n variant=\"link\"\n className={classes.closeButton}\n onClick={onClose}\n icon={<TimesIcon />}\n iconPosition=\"end\"\n >\n {t('notebook.view.close')}\n </Button>\n </div>\n\n <div className={classes.mainContent}>{renderMainContent()}</div>\n\n {hasNoDocuments &&\n messages.length === 0 &&\n renderNotebookDisclaimerAlert()}\n\n <ChatbotFooter className={classes.footer}>\n {hasNoDocuments ? (\n <Tooltip\n content={t('notebook.view.input.disabledTooltip')}\n position=\"top\"\n >\n <div>\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton={false}\n hasStopButton={false}\n isSendButtonDisabled\n isDisabled\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n </div>\n </Tooltip>\n ) : (\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton\n hasStopButton={false}\n isSendButtonDisabled={isSendButtonDisabled}\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n )}\n <ChatbotFootnote label={t('footer.accuracy.label')} />\n </ChatbotFooter>\n </div>\n </div>\n </DrawerContentBody>\n </DrawerContent>\n </Drawer>\n\n <AddDocumentModal\n isOpen={isUploadModalOpen}\n onClose={handleCloseUploadModal}\n sessionId={sessionId}\n existingDocumentNames={documents.map(d => d.title)}\n hasUploadsInProgress={hasUploadsInProgress}\n onFilesUploading={handleFilesUploading}\n onUploadStarted={handleUploadStarted}\n onUploadFailed={handleUploadFailed}\n onDuplicatesFound={handleDuplicatesFound}\n filesToAdd={filesToAddToModal}\n onFilesAdded={handleFilesAddedToModal}\n />\n\n <OverwriteConfirmModal\n isOpen={isOverwriteModalOpen}\n onClose={handleOverwriteCancel}\n onConfirm={handleOverwriteConfirm}\n fileNames={filesToOverwrite.map(f => f.name)}\n />\n\n <DeleteDocumentModal\n isOpen={deleteDocumentTarget !== null}\n onClose={() => setDeleteDocumentTarget(null)}\n onConfirm={confirmDeleteDocument}\n documentName={deleteDocumentTarget?.name ?? ''}\n />\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { Typography, makeStyles } from '@material-ui/core';
3
- import { Button } from '@patternfly/react-core';
3
+ import { Spinner, Button } from '@patternfly/react-core';
4
4
  import { AddCircleOIcon } from '@patternfly/react-icons';
5
5
  import { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';
6
6
  import { useTranslation } from '../../hooks/useTranslation.esm.js';
@@ -19,12 +19,21 @@ const useStyles = makeStyles((theme) => ({
19
19
  fontSize: 48,
20
20
  color: "var(--pf-t--global--icon--color--subtle)"
21
21
  },
22
+ headingRow: {
23
+ display: "flex",
24
+ alignItems: "center",
25
+ gap: theme.spacing(1)
26
+ },
22
27
  heading: {
23
28
  fontWeight: 500,
24
29
  fontSize: "1.5rem",
25
30
  lineHeight: "2rem",
26
31
  letterSpacing: "-0.25px"
27
32
  },
33
+ description: {
34
+ color: "var(--pf-t--global--text--color--subtle)",
35
+ maxWidth: 400
36
+ },
28
37
  uploadButton: {
29
38
  textTransform: "none",
30
39
  borderRadius: 999,
@@ -33,24 +42,33 @@ const useStyles = makeStyles((theme) => ({
33
42
  }
34
43
  }));
35
44
  const UploadResourceScreen = ({
36
- onUploadClick
45
+ onUploadClick,
46
+ isProcessing = false
37
47
  }) => {
38
48
  const classes = useStyles();
39
49
  const { t } = useTranslation();
40
50
  return /* @__PURE__ */ jsxs("div", { className: classes.container, children: [
41
51
  /* @__PURE__ */ jsx(CatalogIcon, { className: classes.icon }),
42
- /* @__PURE__ */ jsx(Typography, { className: classes.heading, children: t("notebook.view.upload.heading") }),
43
- /* @__PURE__ */ jsx(
44
- Button,
45
- {
46
- variant: "secondary",
47
- className: classes.uploadButton,
48
- icon: /* @__PURE__ */ jsx(AddCircleOIcon, {}),
49
- iconPosition: "end",
50
- onClick: onUploadClick,
51
- children: t("notebook.view.upload.action")
52
- }
53
- )
52
+ isProcessing ? /* @__PURE__ */ jsxs(Fragment, { children: [
53
+ /* @__PURE__ */ jsxs("div", { className: classes.headingRow, children: [
54
+ /* @__PURE__ */ jsx(Spinner, { size: "md" }),
55
+ /* @__PURE__ */ jsx(Typography, { className: classes.heading, children: t("notebook.view.processing.heading") })
56
+ ] }),
57
+ /* @__PURE__ */ jsx(Typography, { className: classes.description, children: t("notebook.view.processing.description") })
58
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
59
+ /* @__PURE__ */ jsx(Typography, { className: classes.heading, children: t("notebook.view.upload.heading") }),
60
+ /* @__PURE__ */ jsx(
61
+ Button,
62
+ {
63
+ variant: "secondary",
64
+ className: classes.uploadButton,
65
+ icon: /* @__PURE__ */ jsx(AddCircleOIcon, {}),
66
+ iconPosition: "end",
67
+ onClick: onUploadClick,
68
+ children: t("notebook.view.upload.action")
69
+ }
70
+ )
71
+ ] })
54
72
  ] });
55
73
  };
56
74
 
@@ -1 +1 @@
1
- {"version":3,"file":"UploadResourceScreen.esm.js","sources":["../../../src/components/notebooks/UploadResourceScreen.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, Typography } from '@material-ui/core';\nimport { Button } from '@patternfly/react-core';\nimport { AddCircleOIcon } from '@patternfly/react-icons';\nimport { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';\n\nimport { useTranslation } from '../../hooks/useTranslation';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n textAlign: 'center',\n gap: theme.spacing(2),\n },\n icon: {\n fontSize: 48,\n color: 'var(--pf-t--global--icon--color--subtle)',\n },\n heading: {\n fontWeight: 500,\n fontSize: '1.5rem',\n lineHeight: '2rem',\n letterSpacing: '-0.25px',\n },\n uploadButton: {\n textTransform: 'none',\n borderRadius: 999,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n}));\n\ntype UploadResourceScreenProps = {\n onUploadClick: () => void;\n};\n\nexport const UploadResourceScreen = ({\n onUploadClick,\n}: UploadResourceScreenProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.container}>\n <CatalogIcon className={classes.icon} />\n <Typography className={classes.heading}>\n {t('notebook.view.upload.heading')}\n </Typography>\n <Button\n variant=\"secondary\"\n className={classes.uploadButton}\n icon={<AddCircleOIcon />}\n iconPosition=\"end\"\n onClick={onUploadClick}\n >\n {t('notebook.view.upload.action')}\n </Button>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GACtB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,UAAA,EAAY,MAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,GAAA;AAAA,IACd,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC5B,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AAEjC,CAAA,CAAE,CAAA;AAMK,MAAM,uBAAuB,CAAC;AAAA,EACnC;AACF,CAAA,KAAiC;AAC/B,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,SAAA,EACtB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAM,CAAA;AAAA,wBACrC,UAAA,EAAA,EAAW,SAAA,EAAW,QAAQ,OAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,8BAA8B,CAAA,EACnC,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,WAAA;AAAA,QACR,WAAW,OAAA,CAAQ,YAAA;AAAA,QACnB,IAAA,sBAAO,cAAA,EAAA,EAAe,CAAA;AAAA,QACtB,YAAA,EAAa,KAAA;AAAA,QACb,OAAA,EAAS,aAAA;AAAA,QAER,YAAE,6BAA6B;AAAA;AAAA;AAClC,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"UploadResourceScreen.esm.js","sources":["../../../src/components/notebooks/UploadResourceScreen.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, Typography } from '@material-ui/core';\nimport { Button, Spinner } from '@patternfly/react-core';\nimport { AddCircleOIcon } from '@patternfly/react-icons';\nimport { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';\n\nimport { useTranslation } from '../../hooks/useTranslation';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n textAlign: 'center',\n gap: theme.spacing(2),\n },\n icon: {\n fontSize: 48,\n color: 'var(--pf-t--global--icon--color--subtle)',\n },\n headingRow: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n },\n heading: {\n fontWeight: 500,\n fontSize: '1.5rem',\n lineHeight: '2rem',\n letterSpacing: '-0.25px',\n },\n description: {\n color: 'var(--pf-t--global--text--color--subtle)',\n maxWidth: 400,\n },\n uploadButton: {\n textTransform: 'none',\n borderRadius: 999,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n}));\n\ntype UploadResourceScreenProps = {\n onUploadClick: () => void;\n isProcessing?: boolean;\n};\n\nexport const UploadResourceScreen = ({\n onUploadClick,\n isProcessing = false,\n}: UploadResourceScreenProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.container}>\n <CatalogIcon className={classes.icon} />\n {isProcessing ? (\n <>\n <div className={classes.headingRow}>\n <Spinner size=\"md\" />\n <Typography className={classes.heading}>\n {t('notebook.view.processing.heading')}\n </Typography>\n </div>\n <Typography className={classes.description}>\n {t('notebook.view.processing.description')}\n </Typography>\n </>\n ) : (\n <>\n <Typography className={classes.heading}>\n {t('notebook.view.upload.heading')}\n </Typography>\n <Button\n variant=\"secondary\"\n className={classes.uploadButton}\n icon={<AddCircleOIcon />}\n iconPosition=\"end\"\n onClick={onUploadClick}\n >\n {t('notebook.view.upload.action')}\n </Button>\n </>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GACtB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GACtB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,UAAA,EAAY,MAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,0CAAA;AAAA,IACP,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,GAAA;AAAA,IACd,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC5B,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AAEjC,CAAA,CAAE,CAAA;AAOK,MAAM,uBAAuB,CAAC;AAAA,EACnC,aAAA;AAAA,EACA,YAAA,GAAe;AACjB,CAAA,KAAiC;AAC/B,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,SAAA,EACtB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAM,CAAA;AAAA,IACrC,+BACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,UAAA,EACtB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAK,IAAA,EAAK,CAAA;AAAA,4BAClB,UAAA,EAAA,EAAW,SAAA,EAAW,QAAQ,OAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,kCAAkC,CAAA,EACvC;AAAA,OAAA,EACF,CAAA;AAAA,0BACC,UAAA,EAAA,EAAW,SAAA,EAAW,QAAQ,WAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,sCAAsC,CAAA,EAC3C;AAAA,KAAA,EACF,oBAEA,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAW,SAAA,EAAW,OAAA,CAAQ,OAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,8BAA8B,CAAA,EACnC,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,WAAW,OAAA,CAAQ,YAAA;AAAA,UACnB,IAAA,sBAAO,cAAA,EAAA,EAAe,CAAA;AAAA,UACtB,YAAA,EAAa,KAAA;AAAA,UACb,OAAA,EAAS,aAAA;AAAA,UAER,YAAE,6BAA6B;AAAA;AAAA;AAClC,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -0,0 +1,15 @@
1
+ <svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="23.5" cy="23.5" r="22.75" fill="white" stroke="#E0E0E0" stroke-width="1.5"/>
3
+ <path d="M24.5067 18.9867C24.0533 18.9867 23.68 18.6133 23.68 18.16V8.82667C23.68 8.37333 24.0533 8 24.5067 8C24.96 8 25.3333 8.37333 25.3333 8.82667V18.16C25.3333 18.6133 24.96 18.9867 24.5067 18.9867Z" fill="#EE0000"/>
4
+ <path d="M19.1733 24.3203H9.84C9.38667 24.3203 9.01334 23.947 9.01334 23.4937C9.01334 23.0403 9.38667 22.667 9.84 22.667H19.1733C19.6267 22.667 20 23.0403 20 23.4937C20 23.947 19.6267 24.3203 19.1733 24.3203Z" fill="#EE0000"/>
5
+ <path d="M24.5067 38.9867C24.0533 38.9867 23.68 38.6133 23.68 38.16V28.8267C23.68 28.3733 24.0533 28 24.5067 28C24.96 28 25.3333 28.3733 25.3333 28.8267V38.16C25.3333 38.6133 24.96 38.9867 24.5067 38.9867Z" fill="#EE0000"/>
6
+ <path d="M38.6133 23.813C38.6533 23.7197 38.6667 23.6263 38.6667 23.533C38.6667 23.533 38.6667 23.5063 38.6667 23.493C38.6667 23.4797 38.6667 23.4663 38.6667 23.453C38.6667 23.3597 38.6533 23.2663 38.6133 23.173C38.5867 23.1063 38.5467 23.053 38.5067 22.9997C38.48 22.973 38.4667 22.933 38.44 22.893L35.7733 20.2263C35.4533 19.9063 34.92 19.9063 34.6 20.2263C34.28 20.5463 34.28 21.0797 34.6 21.3997L35.84 22.6397H23.1867C22.7333 22.6397 22.36 23.013 22.36 23.4663C22.36 23.9197 22.7333 24.293 23.1867 24.293H35.84L34.6 25.533C34.28 25.853 34.28 26.3863 34.6 26.7063C34.76 26.8663 34.9733 26.9463 35.1867 26.9463C35.4 26.9463 35.6133 26.8663 35.7733 26.7063L38.44 24.0397C38.44 24.0397 38.48 23.973 38.5067 23.933C38.5467 23.8797 38.5867 23.8263 38.6133 23.7597V23.813Z" fill="black"/>
7
+ <path d="M20.5067 20.3197C20.2933 20.3197 20.08 20.2397 19.92 20.0797L14.5867 14.7463C14.2667 14.4263 14.2667 13.893 14.5867 13.573C14.9067 13.253 15.44 13.253 15.76 13.573L21.0933 18.9063C21.4133 19.2263 21.4133 19.7597 21.0933 20.0797C20.9333 20.2397 20.72 20.3197 20.5067 20.3197Z" fill="black"/>
8
+ <path d="M15.1733 33.6537C14.96 33.6537 14.7467 33.5737 14.5867 33.4137C14.2667 33.0937 14.2667 32.5603 14.5867 32.2403L19.92 26.907C20.24 26.587 20.7733 26.587 21.0933 26.907C21.4133 27.227 21.4133 27.7603 21.0933 28.0803L15.76 33.4137C15.6 33.5737 15.3867 33.6537 15.1733 33.6537Z" fill="black"/>
9
+ <path d="M21.0667 16.3205C20.68 16.3205 20.3333 16.0538 20.2533 15.6538L19.6933 12.9871C19.6 12.5338 19.88 12.0938 20.3333 12.0005C20.7867 11.8938 21.2267 12.1871 21.32 12.6405L21.88 15.3071C21.9733 15.7605 21.6933 16.2005 21.24 16.2938C21.1867 16.2938 21.12 16.3071 21.0667 16.3071V16.3205Z" fill="#EE0000"/>
10
+ <path d="M16.5067 20.8938C16.5067 20.8938 16.3867 20.8938 16.3333 20.8805L13.6667 20.3205C13.2133 20.2271 12.9333 19.7871 13.0267 19.3338C13.12 18.8805 13.56 18.5871 14.0133 18.6938L16.68 19.2538C17.1333 19.3471 17.4133 19.7871 17.32 20.2405C17.24 20.6271 16.8933 20.9071 16.5067 20.9071V20.8938Z" fill="#EE0000"/>
11
+ <path d="M20.5067 34.9868C20.5067 34.9868 20.3867 34.9868 20.3333 34.9735C19.88 34.8801 19.6 34.4401 19.6933 33.9868L20.2533 31.3201C20.3467 30.8668 20.7867 30.5735 21.24 30.6801C21.6933 30.7735 21.9733 31.2135 21.88 31.6668L21.32 34.3335C21.24 34.7201 20.8933 35.0001 20.5067 35.0001V34.9868Z" fill="#EE0000"/>
12
+ <path d="M13.84 28.3202C13.4533 28.3202 13.1067 28.0536 13.0267 27.6536C12.9333 27.2002 13.2133 26.7602 13.6667 26.6669L16.3333 26.1069C16.7867 26.0002 17.2267 26.2936 17.32 26.7469C17.4133 27.2002 17.1333 27.6402 16.68 27.7336L14.0133 28.2936C14.0133 28.2936 13.8933 28.3069 13.84 28.3069V28.3202Z" fill="#EE0000"/>
13
+ <path d="M9.84 18.9996C9.62667 18.9996 9.41333 18.9063 9.25333 18.7463C9.17333 18.6662 9.12 18.5863 9.06667 18.4796C9.02667 18.3729 9 18.2663 9 18.1596C9 17.9463 9.09333 17.7329 9.25333 17.5729C9.56 17.2663 10.12 17.2529 10.4267 17.5729C10.5867 17.7329 10.68 17.9463 10.68 18.1596C10.68 18.2663 10.6533 18.3729 10.6133 18.4796C10.5733 18.5863 10.5067 18.6662 10.4267 18.7463C10.2667 18.9063 10.0533 18.9996 9.84 18.9996Z" fill="black"/>
14
+ <path d="M9.84 29.6666C9.62667 29.6666 9.41333 29.5732 9.25333 29.4132C9.09333 29.2666 9 29.0399 9 28.8266C9 28.6132 9.09333 28.3999 9.25333 28.2399C9.56 27.9332 10.1067 27.9199 10.4267 28.2399C10.5867 28.3999 10.68 28.6132 10.68 28.8266C10.68 29.0399 10.5867 29.2666 10.4267 29.4132C10.2667 29.5732 10.0533 29.6666 9.84 29.6666Z" fill="black"/>
15
+ </svg>
@@ -0,0 +1,22 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_2455_5384)">
3
+ <path d="M15 0H5C2.23889 0 0 2.23889 0 5V15C0 17.7611 2.23889 20 5 20H15C17.7611 20 20 17.7611 20 15V5C20 2.23889 17.7611 0 15 0ZM19.3056 15C19.3056 17.3722 17.3722 19.3056 15 19.3056H5C2.62778 19.3056 0.694444 17.3722 0.694444 15V5C0.694444 2.62778 2.62778 0.694444 5 0.694444H15C17.3722 0.694444 19.3056 2.62778 19.3056 5V15Z" fill="#151515"/>
4
+ <path d="M10.5556 8.12223C10.7445 8.12223 10.9 7.96667 10.9 7.77778V3.88889C10.9 3.7 10.7445 3.54445 10.5556 3.54445C10.3667 3.54445 10.2111 3.7 10.2111 3.88889V7.77778C10.2111 7.96667 10.3667 8.12223 10.5556 8.12223Z" fill="#151515"/>
5
+ <path d="M8.67778 10C8.67778 9.81112 8.52223 9.65556 8.33334 9.65556H4.44445C4.25556 9.65556 4.10001 9.81112 4.10001 10C4.10001 10.1889 4.25556 10.3445 4.44445 10.3445H8.33334C8.52223 10.3445 8.67778 10.1889 8.67778 10Z" fill="#151515"/>
6
+ <path d="M10.5556 11.8778C10.3667 11.8778 10.2111 12.0333 10.2111 12.2222V16.1111C10.2111 16.3 10.3667 16.4556 10.5556 16.4556C10.7445 16.4556 10.9 16.3 10.9 16.1111V12.2222C10.9 12.0333 10.7445 11.8778 10.5556 11.8778Z" fill="#151515"/>
7
+ <path d="M16.4333 9.86666C16.4333 9.86666 16.4056 9.81666 16.3889 9.79443C16.3778 9.78332 16.3722 9.76666 16.3611 9.74999L15.25 8.63888C15.1167 8.50555 14.8945 8.50555 14.7611 8.63888C14.6278 8.77221 14.6278 8.99443 14.7611 9.12777L15.2778 9.64444H10.0056C9.81667 9.64444 9.66112 9.79999 9.66112 9.98888C9.66112 10.1778 9.81667 10.3333 10.0056 10.3333H15.2778L14.7611 10.85C14.6278 10.9833 14.6278 11.2055 14.7611 11.3389C14.8278 11.4055 14.9167 11.4389 15.0056 11.4389C15.0945 11.4389 15.1833 11.4055 15.25 11.3389L16.3611 10.2278C16.3611 10.2278 16.3778 10.2 16.3889 10.1833C16.4056 10.1611 16.4222 10.1389 16.4333 10.1111C16.45 10.0722 16.4556 10.0333 16.4556 9.99443C16.4556 9.99443 16.4556 9.98332 16.4556 9.97777C16.4556 9.97221 16.4556 9.96666 16.4556 9.9611C16.4556 9.92221 16.45 9.88332 16.4333 9.84443V9.86666Z" fill="#151515"/>
8
+ <path d="M8.64444 8.57778C8.71111 8.64445 8.8 8.67778 8.88889 8.67778C8.97778 8.67778 9.06666 8.64445 9.13333 8.57778C9.26666 8.44445 9.26666 8.22223 9.13333 8.08889L6.91111 5.86667C6.77777 5.73334 6.55555 5.73334 6.42222 5.86667C6.28889 6 6.28889 6.22223 6.42222 6.35556L8.64444 8.57778Z" fill="#151515"/>
9
+ <path d="M9.13333 11.4222C9 11.2889 8.77778 11.2889 8.64444 11.4222L6.42222 13.6444C6.28889 13.7778 6.28889 14 6.42222 14.1333C6.48889 14.2 6.57778 14.2333 6.66666 14.2333C6.75555 14.2333 6.84444 14.2 6.91111 14.1333L9.13333 11.9111C9.26666 11.7778 9.26666 11.5556 9.13333 11.4222Z" fill="#151515"/>
10
+ <path d="M9.22778 5.48333C9.18889 5.29444 9.00556 5.17222 8.81667 5.21666C8.62778 5.25555 8.51112 5.43888 8.55 5.62777L8.78334 6.73888C8.81667 6.89999 8.96112 7.01666 9.12223 7.01666C9.14445 7.01666 9.17223 7.01666 9.19445 7.0111C9.38334 6.97222 9.5 6.78888 9.46112 6.59999L9.22778 5.48888V5.48333Z" fill="#151515"/>
11
+ <path d="M6.03888 8.67221L7.15 8.90554C7.15 8.90554 7.2 8.9111 7.22222 8.9111C7.38333 8.9111 7.52777 8.79999 7.56111 8.63332C7.6 8.44443 7.48333 8.2611 7.29444 8.22221L6.18333 7.98888C5.99444 7.94443 5.81111 8.06666 5.77222 8.25554C5.73333 8.44443 5.85 8.62777 6.03888 8.66666V8.67221Z" fill="#151515"/>
12
+ <path d="M9.19445 12.9945C9.00556 12.9556 8.82223 13.0722 8.78334 13.2611L8.55 14.3722C8.51112 14.5611 8.62778 14.7445 8.81667 14.7834C8.83889 14.7834 8.86667 14.7889 8.88889 14.7889C9.05 14.7889 9.19445 14.6778 9.22778 14.5111L9.46112 13.4C9.5 13.2111 9.38334 13.0278 9.19445 12.9889V12.9945Z" fill="#151515"/>
13
+ <path d="M7.56111 11.3611C7.52222 11.1722 7.33888 11.05 7.15 11.0944L6.03888 11.3277C5.85 11.3666 5.73333 11.55 5.77222 11.7389C5.80555 11.9 5.95 12.0166 6.11111 12.0166C6.13333 12.0166 6.16111 12.0166 6.18333 12.0111L7.29444 11.7777C7.48333 11.7389 7.6 11.5555 7.56111 11.3666V11.3611Z" fill="#151515"/>
14
+ <path d="M4.19999 8.02226C4.26666 8.08892 4.35555 8.12781 4.44444 8.12781C4.53333 8.12781 4.62221 8.08892 4.68888 8.02226C4.72221 7.98892 4.74999 7.95559 4.76666 7.91115C4.78333 7.8667 4.79444 7.82226 4.79444 7.77781C4.79444 7.68892 4.75555 7.60003 4.68888 7.53337C4.5611 7.40003 4.32777 7.40559 4.19999 7.53337C4.13333 7.60003 4.09444 7.68892 4.09444 7.77781C4.09444 7.82226 4.10555 7.8667 4.12221 7.91115C4.14444 7.95559 4.16666 7.98892 4.19999 8.02226Z" fill="#151515"/>
15
+ <path d="M4.19999 11.9778C4.13333 12.0445 4.09444 12.1334 4.09444 12.2223C4.09444 12.3111 4.13333 12.4056 4.19999 12.4667C4.26666 12.5334 4.35555 12.5723 4.44444 12.5723C4.53333 12.5723 4.62221 12.5334 4.68888 12.4667C4.75555 12.4056 4.79444 12.3111 4.79444 12.2223C4.79444 12.1334 4.75555 12.0445 4.68888 11.9778C4.55555 11.8445 4.32777 11.85 4.19999 11.9778Z" fill="#151515"/>
16
+ </g>
17
+ <defs>
18
+ <clipPath id="clip0_2455_5384">
19
+ <rect width="100" height="100" fill="white"/>
20
+ </clipPath>
21
+ </defs>
22
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m17.684 0.63159h-11.368c-3.1393 0-5.6842 2.5449-5.6842 5.6842v11.368c0 3.1393 2.5449 5.6842 5.6842 5.6842h11.368c3.1393 0 5.6842-2.5449 5.6842-5.6842v-11.368c0-3.1393-2.5449-5.6842-5.6842-5.6842zm4.8948 17.053c0 2.699-2.1958 4.8948-4.8948 4.8948h-11.368c-2.6989 0-4.8947-2.1958-4.8947-4.8948v-11.368c0-2.699 2.1958-4.8947 4.8947-4.8947h11.368c2.699 0 4.8948 2.1958 4.8948 4.8947v11.368z" fill="#fff"/>
4
+ <path d="m12.632 9.8685c0.2177 0 0.3947-0.17702 0.3947-0.39474v-4.421c0-0.21773-0.177-0.39474-0.3947-0.39474-0.2178 0-0.3948 0.17701-0.3948 0.39474v4.421c0 0.21772 0.177 0.39474 0.3948 0.39474z" fill="#fff"/>
5
+ <path d="m10.5 12c0-0.2178-0.1771-0.3948-0.3948-0.3948h-4.421c-0.21773 0-0.39474 0.177-0.39474 0.3948 0 0.2177 0.17701 0.3947 0.39474 0.3947h4.421c0.2177 0 0.3948-0.177 0.3948-0.3947z" fill="#fff"/>
6
+ <path d="m12.632 14.132c-0.2178 0-0.3948 0.177-0.3948 0.3947v4.4211c0 0.2177 0.177 0.3947 0.3948 0.3947 0.2177 0 0.3947-0.177 0.3947-0.3947v-4.4211c0-0.2177-0.177-0.3947-0.3947-0.3947z" fill="#fff"/>
7
+ <path d="m19.312 11.849c-0.0127-0.0303-0.034-0.0548-0.0534-0.0807-0.0114-0.0155-0.0174-0.0335-0.0314-0.0475l-1.2631-1.2632c-0.1542-0.1542-0.4046-0.1542-0.5588 0-0.1536 0.1542-0.1536 0.4046 0 0.5588l0.5894 0.5891h-5.9942c-0.2178 0-0.3948 0.177-0.3948 0.3947s0.177 0.3947 0.3948 0.3947h5.9942l-0.5894 0.5891c-0.1536 0.1542-0.1536 0.4046 0 0.5588 0.0771 0.0771 0.1782 0.1153 0.2794 0.1153 0.1011 0 0.2023-0.0382 0.2794-0.1153l1.2631-1.2632c0.014-0.014 0.02-0.032 0.0314-0.0475 0.0193-0.0259 0.0407-0.0504 0.0533-0.0807 0.0177-0.0427 0.025-0.0881 0.0271-0.1335 3e-4 -0.0063 0.0036-0.0115 0.0036-0.0177s-0.0033-0.0114-0.0036-0.0176c-0.0021-0.0455-0.0094-0.0909-0.027-0.1336z" fill="#fff"/>
8
+ <path d="m10.457 10.385c0.0771 0.0771 0.1783 0.1153 0.2794 0.1153 0.1012 0 0.2023-0.0382 0.2794-0.1153 0.1536-0.1542 0.1536-0.4046 0-0.5588l-2.5263-2.5263c-0.15419-0.15419-0.4046-0.15419-0.5588 0-0.15358 0.1542-0.15358 0.40461 0 0.55881l2.5263 2.5263z" fill="#fff"/>
9
+ <path d="m11.016 13.615c-0.1542-0.1542-0.4046-0.1542-0.5588 0l-2.5263 2.5263c-0.15358 0.1542-0.15358 0.4046 0 0.5588 0.0771 0.0771 0.17825 0.1154 0.2794 0.1154 0.10114 0 0.2023-0.0383 0.2794-0.1154l2.5263-2.5263c0.1536-0.1542 0.1536-0.4046 0-0.5588z" fill="#fff"/>
10
+ <path d="m11.123 6.8654c-0.045-0.2134-0.2541-0.35156-0.4681-0.30407-0.2134 0.04502-0.3491 0.25473-0.3041 0.46813l0.2683 1.2632c0.0395 0.18565 0.2035 0.31271 0.3855 0.31271 0.0271 0 0.0549-0.00247 0.0826-0.00864 0.2134-0.04502 0.3491-0.25473 0.3041-0.46813l-0.2683-1.2632z" fill="#fff"/>
11
+ <path d="m7.4969 10.491 1.2632 0.2683c0.02776 0.0062 0.05551 0.0086 0.08265 0.0086 0.18195 0 0.34601-0.127 0.38548-0.3127 0.04503-0.2134-0.09066-0.4231-0.30407-0.4681l-1.2632-0.2683c-0.21402-0.04872-0.42249 0.09067-0.46813 0.3041-0.04503 0.2134 0.09066 0.4231 0.30407 0.4681z" fill="#fff"/>
12
+ <path d="m11.087 15.404c-0.2146-0.0469-0.4225 0.0906-0.4681 0.304l-0.2683 1.2632c-0.045 0.2134 0.0907 0.4231 0.3041 0.4681 0.0277 0.0062 0.0555 0.0087 0.0826 0.0087 0.182 0 0.346-0.1271 0.3855-0.3127l0.2683-1.2632c0.045-0.2134-0.0907-0.4231-0.3041-0.4681z" fill="#fff"/>
13
+ <path d="m9.2282 13.544c-0.04502-0.2134-0.25288-0.3522-0.46813-0.304l-1.2632 0.2683c-0.2134 0.045-0.34909 0.2547-0.30407 0.4681 0.03947 0.1856 0.20353 0.3127 0.38548 0.3127 0.02714 0 0.05489-0.0025 0.08265-0.0086l1.2632-0.2683c0.2134-0.0451 0.34909-0.2548 0.30407-0.4682z" fill="#fff"/>
14
+ <path d="m5.406 9.7512c0.07586 0.07586 0.17701 0.12027 0.27816 0.12027 0.10116 0 0.20169-0.04441 0.27755-0.12027 0.03824-0.03763 0.06969-0.07587 0.08881-0.12583 0.01851-0.05057 0.03146-0.10115 0.03146-0.15172 0-0.10116-0.04441-0.2023-0.12028-0.27817-0.14494-0.15172-0.41015-0.14494-0.55571 0-0.07587 0.07587-0.11965 0.17701-0.11965 0.27817 0 0.05058 0.01233 0.10115 0.03145 0.15172 0.02529 0.04996 0.05058 0.0882 0.08821 0.12583z" fill="#fff"/>
15
+ <path d="m5.406 14.248c-0.07587 0.0759-0.11965 0.177-0.11965 0.2782 0 0.1011 0.04379 0.2085 0.11965 0.2775 0.07587 0.0759 0.17701 0.1203 0.27817 0.1203 0.10115 0 0.20168-0.0444 0.27754-0.1203 0.07587-0.069 0.12027-0.1764 0.12027-0.2775 0-0.1012-0.0444-0.2023-0.12027-0.2782-0.15111-0.1517-0.41015-0.1449-0.55571 0z" fill="#fff"/>
16
+ </svg>