@eeacms/volto-eea-chatbot 2.0.0 → 2.0.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.
Files changed (81) hide show
  1. package/.eslintrc.js +6 -6
  2. package/CHANGELOG.md +12 -1
  3. package/jest-addon.config.js +1 -0
  4. package/package.json +1 -1
  5. package/src/ChatBlock/ChatBlockEdit.jsx +2 -1
  6. package/src/ChatBlock/chat/AIMessage.tsx +20 -16
  7. package/src/ChatBlock/chat/ChatMessage.tsx +1 -1
  8. package/src/ChatBlock/chat/ChatWindow.tsx +10 -11
  9. package/src/ChatBlock/chat/UserMessage.tsx +4 -4
  10. package/src/ChatBlock/components/AutoResizeTextarea.jsx +1 -1
  11. package/src/ChatBlock/components/ChatMessageFeedback.jsx +2 -2
  12. package/src/ChatBlock/components/EmptyState.jsx +1 -1
  13. package/src/ChatBlock/components/FeedbackModal.jsx +1 -1
  14. package/src/ChatBlock/components/HalloumiFeedback.jsx +2 -2
  15. package/src/ChatBlock/components/Source.jsx +2 -2
  16. package/src/ChatBlock/components/UserActionsToolbar.jsx +3 -3
  17. package/src/ChatBlock/components/WebResultIcon.tsx +2 -2
  18. package/src/ChatBlock/components/markdown/ClaimModal.jsx +3 -3
  19. package/src/ChatBlock/components/markdown/ClaimSegments.jsx +4 -4
  20. package/src/ChatBlock/components/markdown/{index.js → index.jsx} +1 -1
  21. package/src/ChatBlock/hooks/useChatController.ts +7 -4
  22. package/src/ChatBlock/hooks/useChatStreaming.ts +4 -4
  23. package/src/ChatBlock/hooks/useToolDisplayTiming.ts +1 -1
  24. package/src/ChatBlock/index.js +8 -0
  25. package/src/ChatBlock/packets/MultiToolRenderer.tsx +11 -12
  26. package/src/ChatBlock/packets/RendererComponent.tsx +6 -3
  27. package/src/ChatBlock/packets/renderers/CustomToolRenderer.tsx +3 -3
  28. package/src/ChatBlock/packets/renderers/FetchToolRenderer.tsx +3 -3
  29. package/src/ChatBlock/packets/renderers/ImageToolRenderer.tsx +3 -3
  30. package/src/ChatBlock/packets/renderers/MessageTextRenderer.tsx +8 -8
  31. package/src/ChatBlock/packets/renderers/ReasoningRenderer.tsx +5 -5
  32. package/src/ChatBlock/packets/renderers/SearchToolRenderer.tsx +10 -10
  33. package/src/ChatBlock/services/messageProcessor.ts +6 -3
  34. package/src/ChatBlock/services/packetUtils.ts +2 -2
  35. package/src/ChatBlock/services/streamingService.ts +8 -2
  36. package/src/ChatBlock/utils/citations.ts +1 -1
  37. package/src/halloumi/filtering.test.js +199 -1
  38. package/src/ChatBlock/tests/AIMessage.test.jsx +0 -95
  39. package/src/ChatBlock/tests/AutoResizeTextarea.test.jsx +0 -49
  40. package/src/ChatBlock/tests/BlinkingDot.test.jsx +0 -71
  41. package/src/ChatBlock/tests/ChatMessage.test.jsx +0 -75
  42. package/src/ChatBlock/tests/ChatMessageFeedback.test.jsx +0 -73
  43. package/src/ChatBlock/tests/Citation.test.jsx +0 -107
  44. package/src/ChatBlock/tests/ClaimModal.test.jsx +0 -136
  45. package/src/ChatBlock/tests/ClaimSegments.test.jsx +0 -206
  46. package/src/ChatBlock/tests/CustomToolRenderer.test.jsx +0 -241
  47. package/src/ChatBlock/tests/EmptyState.test.jsx +0 -137
  48. package/src/ChatBlock/tests/FeedbackModal.test.jsx +0 -138
  49. package/src/ChatBlock/tests/FetchToolRenderer.test.jsx +0 -161
  50. package/src/ChatBlock/tests/HalloumiFeedback.test.jsx +0 -94
  51. package/src/ChatBlock/tests/ImageToolRenderer.test.jsx +0 -178
  52. package/src/ChatBlock/tests/MessageTextRenderer.test.jsx +0 -227
  53. package/src/ChatBlock/tests/MultiToolRenderer.test.jsx +0 -134
  54. package/src/ChatBlock/tests/QualityCheckToggle.test.jsx +0 -105
  55. package/src/ChatBlock/tests/ReasoningRenderer.test.jsx +0 -163
  56. package/src/ChatBlock/tests/RelatedQuestions.test.jsx +0 -215
  57. package/src/ChatBlock/tests/RenderClaimView.test.jsx +0 -191
  58. package/src/ChatBlock/tests/RendererComponent.test.jsx +0 -139
  59. package/src/ChatBlock/tests/SearchToolRenderer.test.jsx +0 -295
  60. package/src/ChatBlock/tests/Source.test.jsx +0 -79
  61. package/src/ChatBlock/tests/SourceChip.test.jsx +0 -108
  62. package/src/ChatBlock/tests/Spinner.test.jsx +0 -18
  63. package/src/ChatBlock/tests/UserActionsToolbar.test.jsx +0 -135
  64. package/src/ChatBlock/tests/UserMessage.test.jsx +0 -83
  65. package/src/ChatBlock/tests/WebResultIcon.test.jsx +0 -61
  66. package/src/ChatBlock/tests/citations.test.js +0 -114
  67. package/src/ChatBlock/tests/index.test.js +0 -51
  68. package/src/ChatBlock/tests/messageProcessor.test.jsx +0 -438
  69. package/src/ChatBlock/tests/packetUtils.test.js +0 -158
  70. package/src/ChatBlock/tests/schema.test.js +0 -166
  71. package/src/ChatBlock/tests/streamingService.test.js +0 -467
  72. package/src/ChatBlock/tests/useChatController.test.jsx +0 -268
  73. package/src/ChatBlock/tests/useChatStreaming.test.jsx +0 -163
  74. package/src/ChatBlock/tests/useDeepCompareMemoize.test.js +0 -107
  75. package/src/ChatBlock/tests/useMarked.test.jsx +0 -107
  76. package/src/ChatBlock/tests/useQualityMarkers.test.jsx +0 -150
  77. package/src/ChatBlock/tests/useScrollonStream.test.jsx +0 -121
  78. package/src/ChatBlock/tests/useToolDisplayTiming.test.jsx +0 -151
  79. package/src/ChatBlock/tests/utils.test.jsx +0 -241
  80. package/src/ChatBlock/tests/withOnyxData.test.jsx +0 -81
  81. /package/src/ChatBlock/{schema.js → schema.jsx} +0 -0
package/.eslintrc.js CHANGED
@@ -16,16 +16,16 @@ if (configFile) {
16
16
  voltoPath = `./${jsConfig.baseUrl}/${pathsConfig['@plone/volto'][0]}`;
17
17
  }
18
18
 
19
- const AddonConfigurationRegistry = require(`${voltoPath}/addon-registry.js`);
20
- const reg = new AddonConfigurationRegistry(projectRootPath);
19
+ const { AddonRegistry } = require('@plone/registry/addon-registry');
20
+ const { registry } = AddonRegistry.init(projectRootPath);
21
21
 
22
22
  // Extends ESlint configuration for adding aliases to `src` directories in Volto addons
23
- const addonAliases = Object.keys(reg.packages).map((o) => [
23
+ const addonAliases = Object.keys(registry.packages).map((o) => [
24
24
  o,
25
- reg.packages[o].modulePath,
25
+ registry.packages[o].modulePath,
26
26
  ]);
27
27
 
28
- const addonExtenders = reg.getEslintExtenders().map((m) => require(m));
28
+ const addonExtenders = registry.getEslintExtenders().map((m) => require(m));
29
29
 
30
30
  const defaultConfig = {
31
31
  extends: `${voltoPath}/.eslintrc`,
@@ -34,7 +34,7 @@ const defaultConfig = {
34
34
  alias: {
35
35
  map: [
36
36
  ['@plone/volto', '@plone/volto/src'],
37
- ['@plone/volto-slate', '@plone/volto/packages/volto-slate/src'],
37
+ ['@plone/volto-slate', '@plone/volto-slate/src'],
38
38
  ...addonAliases,
39
39
  ['@package', `${__dirname}/src`],
40
40
  ['@root', `${__dirname}/src`],
package/CHANGELOG.md CHANGED
@@ -4,7 +4,16 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- ### [2.0.0](https://github.com/eea/volto-eea-chatbot/compare/1.0.13...2.0.0) - 16 March 2026
7
+ ### [2.0.2](https://github.com/eea/volto-eea-chatbot/compare/2.0.1...2.0.2) - 8 April 2026
8
+
9
+ ### [2.0.1](https://github.com/eea/volto-eea-chatbot/compare/2.0.0...2.0.1) - 2 April 2026
10
+
11
+ #### :bug: Bug Fixes
12
+
13
+ - fix: Add bbb replacement for danswerChat [Tiberiu Ichim - [`6e6cbfc`](https://github.com/eea/volto-eea-chatbot/commit/6e6cbfc07ea10d2b92fa63a97e50a43a196eb739)]
14
+ - fix: make test [Alin V. (Claudiu) - [`ee005a0`](https://github.com/eea/volto-eea-chatbot/commit/ee005a0ec5edd7c2fdc7e213b995ff6b0d3a2128)]
15
+
16
+ ## [2.0.0](https://github.com/eea/volto-eea-chatbot/compare/1.0.13...2.0.0) - 16 March 2026
8
17
 
9
18
  #### :rocket: New Features
10
19
 
@@ -26,6 +35,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
26
35
  #### :house: Internal changes
27
36
 
28
37
  - style: Automated code fix [eea-jenkins - [`8a8c3c4`](https://github.com/eea/volto-eea-chatbot/commit/8a8c3c4172a4f669661378cf1b5a3569d85609e6)]
38
+ - chore: [JENKINSFILE] add package version in sonarqube [valentinab25 - [`535d986`](https://github.com/eea/volto-eea-chatbot/commit/535d986b7adc77743a668bc4ac63f835eef58df3)]
29
39
 
30
40
  #### :hammer_and_wrench: Others
31
41
 
@@ -36,6 +46,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
36
46
  #### :house: Internal changes
37
47
 
38
48
  - style: Automated code fix [eea-jenkins - [`fdcd884`](https://github.com/eea/volto-eea-chatbot/commit/fdcd8848fd4c3f990ca5ea021f407487aebd6010)]
49
+ - chore: [JENKINSFILE] use sonarqube branches [EEA Jenkins - [`3d428d7`](https://github.com/eea/volto-eea-chatbot/commit/3d428d72f32c3d05452b0961c76f5db1c416e05c)]
39
50
 
40
51
  #### :hammer_and_wrench: Others
41
52
 
@@ -423,6 +423,7 @@ module.exports = {
423
423
  'schema\\.[jt]s?$',
424
424
  'index\\.[jt]s?$',
425
425
  'config\\.[jt]sx?$',
426
+ '/types/',
426
427
  ],
427
428
  moduleNameMapper: {
428
429
  '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-eea-chatbot",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "@eeacms/volto-eea-chatbot: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { compose } from 'redux';
3
3
  import superagent from 'superagent';
4
- import { BlockDataForm, SidebarPortal } from '@plone/volto/components';
4
+ import SidebarPortal from '@plone/volto/components/manage/Sidebar/SidebarPortal';
5
+ import BlockDataForm from '@plone/volto/components/manage/Form/BlockDataForm';
5
6
 
6
7
  import ChatBlockView from './ChatBlockView';
7
8
  import { ChatBlockSchema } from './schema';
@@ -1,7 +1,7 @@
1
- import type { ChatMessageProps } from '../types/interfaces';
1
+ import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
2
  import { useState, useMemo, useEffect } from 'react';
3
3
  import cx from 'classnames';
4
- import visit from 'unist-util-visit';
4
+ import { visit } from 'unist-util-visit';
5
5
  import loadable from '@loadable/component';
6
6
  import {
7
7
  Tab,
@@ -14,29 +14,33 @@ import {
14
14
  useDeepCompareMemoize,
15
15
  useQualityMarkers,
16
16
  useScrollonStream,
17
- } from '../hooks';
18
- import { MultiToolRenderer, RendererComponent } from '../packets';
19
- import { addCitations } from '../utils/citations';
20
- import SVGIcon from '../components/Icon';
21
- import BotIcon from '../../icons/bot.svg';
22
- import ClearIcon from '../../icons/clear.svg';
17
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/hooks';
18
+ import {
19
+ MultiToolRenderer,
20
+ RendererComponent,
21
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/packets';
22
+ import { addCitations } from '@eeacms/volto-eea-chatbot/ChatBlock/utils/citations';
23
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
24
+ import BotIcon from '@eeacms/volto-eea-chatbot/icons/bot.svg';
25
+ import ClearIcon from '@eeacms/volto-eea-chatbot/icons/clear.svg';
23
26
 
24
27
  // Lazy load heavy components
25
- const SourceDetails: any = loadable(() => import('../components/Source'));
28
+ const SourceDetails: any = loadable(
29
+ () => import('@eeacms/volto-eea-chatbot/ChatBlock/components/Source'),
30
+ );
26
31
  const UserActionsToolbar: any = loadable(
27
- () => import('../components/UserActionsToolbar'),
32
+ () =>
33
+ import('@eeacms/volto-eea-chatbot/ChatBlock/components/UserActionsToolbar'),
28
34
  );
29
35
  const RelatedQuestions: any = loadable(
30
- () => import('../components/RelatedQuestions'),
36
+ () =>
37
+ import('@eeacms/volto-eea-chatbot/ChatBlock/components/RelatedQuestions'),
31
38
  );
32
39
  const HalloumiFeedback: any = loadable(
33
- () => import('../components/HalloumiFeedback'),
40
+ () =>
41
+ import('@eeacms/volto-eea-chatbot/ChatBlock/components/HalloumiFeedback'),
34
42
  );
35
43
 
36
- function capitalize(str: string) {
37
- return str.charAt(0).toUpperCase() + str.slice(1);
38
- }
39
-
40
44
  function addQualityMarkersPlugin() {
41
45
  return function (tree: any) {
42
46
  visit(tree, 'element', function (node: any) {
@@ -1,5 +1,5 @@
1
1
  import { Message as SemanticMessage } from 'semantic-ui-react';
2
- import type { ChatMessageProps } from '../types/interfaces';
2
+ import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
3
3
  import { UserMessage, AIMessage } from '.';
4
4
 
5
5
  export function ChatMessage(props: ChatMessageProps) {
@@ -5,21 +5,21 @@ import React, {
5
5
  useMemo,
6
6
  useCallback,
7
7
  } from 'react';
8
- import type { Persona } from '../types/interfaces';
8
+ import type { Persona } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
9
9
  import { Button, Form, Segment, Checkbox } from 'semantic-ui-react';
10
10
  import { injectLazyLibs } from '@plone/volto/helpers/Loadable';
11
11
  import { trackEvent } from '@eeacms/volto-matomo/utils';
12
12
 
13
13
  import { ChatMessage } from '.';
14
- import { PacketType } from '../types/streamingModels';
15
- import AutoResizeTextarea from '../components/AutoResizeTextarea';
16
- import QualityCheckToggle from '../components/QualityCheckToggle';
17
- import EmptyState from '../components/EmptyState';
18
- import { useChatController } from '../hooks';
19
- import SVGIcon from '../components/Icon';
20
- import PenIcon from '../../icons/square-pen.svg';
14
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
15
+ import AutoResizeTextarea from '@eeacms/volto-eea-chatbot/ChatBlock/components/AutoResizeTextarea';
16
+ import QualityCheckToggle from '@eeacms/volto-eea-chatbot/ChatBlock/components/QualityCheckToggle';
17
+ import EmptyState from '@eeacms/volto-eea-chatbot/ChatBlock/components/EmptyState';
18
+ import { useChatController } from '@eeacms/volto-eea-chatbot/ChatBlock/hooks';
19
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
20
+ import PenIcon from '@eeacms/volto-eea-chatbot/icons/square-pen.svg';
21
21
 
22
- import '../style.less';
22
+ import '@eeacms/volto-eea-chatbot/ChatBlock/style.less';
23
23
 
24
24
  interface ChatWindowProps {
25
25
  block_id?: string;
@@ -182,9 +182,8 @@ function ChatWindow({
182
182
  style={{ maxHeight: height }}
183
183
  >
184
184
  {messages.map((message, index) => (
185
- <React.Fragment>
185
+ <React.Fragment key={message.messageId}>
186
186
  <ChatMessage
187
- key={message.messageId}
188
187
  prevMessage={messages[index - 1]}
189
188
  message={message}
190
189
  isLoading={isStreaming}
@@ -1,8 +1,8 @@
1
- import type { ChatMessageProps } from '../types/interfaces';
1
+ import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
2
  import loadable from '@loadable/component';
3
- import SVGIcon from '../components/Icon';
4
- import { components } from '../components/markdown';
5
- import UserIcon from '../../icons/user.svg';
3
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
4
+ import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
5
+ import UserIcon from '@eeacms/volto-eea-chatbot/icons/user.svg';
6
6
 
7
7
  const Markdown: any = loadable(() => import('react-markdown'));
8
8
 
@@ -4,7 +4,7 @@ import { trackEvent } from '@eeacms/volto-matomo/utils';
4
4
  import TextareaAutosize from 'react-textarea-autosize';
5
5
 
6
6
  import SVGIcon from './Icon';
7
- import SendIcon from '../../icons/send.svg';
7
+ import SendIcon from '@eeacms/volto-eea-chatbot/icons/send.svg';
8
8
 
9
9
  export default React.forwardRef(function AutoResizeTextarea(props, ref) {
10
10
  const { onSubmit, isStreaming, enableMatomoTracking, persona, ...rest } =
@@ -2,8 +2,8 @@ import { useState } from 'react';
2
2
  import { Button, Icon } from 'semantic-ui-react';
3
3
  import FeedbackModal from './FeedbackModal';
4
4
  import SVGIcon from './Icon';
5
- import ThumbsUpIcon from '../../icons/thumbs-up.svg';
6
- import ThumbsDownIcon from '../../icons/thumbs-down.svg';
5
+ import ThumbsUpIcon from '@eeacms/volto-eea-chatbot/icons/thumbs-up.svg';
6
+ import ThumbsDownIcon from '@eeacms/volto-eea-chatbot/icons/thumbs-down.svg';
7
7
 
8
8
  const Toast = ({ message, type, isActive }) => (
9
9
  <div className={`feedback-toast ${type} ${isActive ? 'active' : ''}`}>
@@ -1,5 +1,5 @@
1
1
  import { Button } from 'semantic-ui-react';
2
- import { debounce } from '../utils';
2
+ import { debounce } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
3
3
 
4
4
  function StarterMessage({ msg, onClick }) {
5
5
  if (!(msg.name || msg.message)) return null;
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react';
2
2
  import { trackEvent } from '@eeacms/volto-matomo/utils';
3
3
  import { Modal, Button, TextArea, Form, Icon } from 'semantic-ui-react';
4
- import { createChatMessageFeedback } from '../utils';
4
+ import { createChatMessageFeedback } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
5
5
 
6
6
  const FeedbackModal = ({
7
7
  modalOpen,
@@ -6,8 +6,8 @@ import Spinner from './Spinner';
6
6
  import SVGIcon from './Icon';
7
7
  import { getSupportedBgColor } from './markdown/colors';
8
8
 
9
- import GlassesIcon from '../../icons/glasses.svg';
10
- import RotateIcon from '../../icons/rotate.svg';
9
+ import GlassesIcon from '@eeacms/volto-eea-chatbot/icons/glasses.svg';
10
+ import RotateIcon from '@eeacms/volto-eea-chatbot/icons/rotate.svg';
11
11
 
12
12
  const VERIFY_CLAIM_MESSAGES = [
13
13
  'Going through each claim and verify against the referenced documents...',
@@ -1,8 +1,8 @@
1
1
  import { Popup } from 'semantic-ui-react';
2
2
  import SVGIcon from './Icon';
3
3
 
4
- import FileIcon from '../../icons/file.svg';
5
- import GlobeIcon from '../../icons/globe.svg';
4
+ import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
5
+ import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
6
6
 
7
7
  import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable';
8
8
 
@@ -1,11 +1,11 @@
1
1
  import cx from 'classnames';
2
2
  import { Button } from 'semantic-ui-react';
3
- import { useCopyToClipboard } from '../utils';
3
+ import { useCopyToClipboard } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
4
4
  import SVGIcon from './Icon';
5
5
  import ChatMessageFeedback from './ChatMessageFeedback';
6
6
 
7
- import CopyIcon from '../../icons/copy.svg';
8
- import CheckIcon from '../../icons/check.svg';
7
+ import CopyIcon from '@eeacms/volto-eea-chatbot/icons/copy.svg';
8
+ import CheckIcon from '@eeacms/volto-eea-chatbot/icons/check.svg';
9
9
 
10
10
  const UserActionsToolbar = ({
11
11
  className,
@@ -1,7 +1,7 @@
1
1
  import { useState } from 'react';
2
2
  import SVGIcon from './Icon';
3
- import FileIcon from '../../icons/file.svg';
4
- import GlobeIcon from '../../icons/globe.svg';
3
+ import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
4
+ import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
5
5
 
6
6
  interface WebResultIconProps {
7
7
  url: string;
@@ -1,11 +1,11 @@
1
1
  import { Modal, ModalContent, ModalHeader } from 'semantic-ui-react';
2
2
  import cx from 'classnames';
3
- import { convertToPercentage } from '../../utils';
4
- import SVGIcon from '../Icon';
3
+ import { convertToPercentage } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
4
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
5
5
  import { getSupportedBgColor } from './colors';
6
6
  import { ClaimSegments } from './ClaimSegments';
7
7
 
8
- import BotIcon from '../../../icons/bot.svg';
8
+ import BotIcon from '@eeacms/volto-eea-chatbot/icons/bot.svg';
9
9
 
10
10
  const stripHtml = (html) => {
11
11
  const tmp = document.createElement('div');
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Tab, TabPane } from 'semantic-ui-react';
3
- import SVGIcon from '../Icon';
3
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
4
4
  import { RenderClaimView } from './RenderClaimView';
5
- import LinkIcon from '../../../icons/external-link.svg';
6
- import FileIcon from '../../../icons/file.svg';
7
- import GlobeIcon from '../../../icons/globe.svg';
5
+ import LinkIcon from '@eeacms/volto-eea-chatbot/icons/external-link.svg';
6
+ import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
7
+ import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
8
8
 
9
9
  const VISIBLE_SEGMENTS = 50; // Number of citations to show by default
10
10
 
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ClaimModal } from './ClaimModal';
3
3
  import { Citation } from './Citation';
4
- import { transformEmailsToLinks } from '../../utils';
4
+ import { transformEmailsToLinks } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
5
5
 
6
6
  export function components(message, markers, citedSources) {
7
7
  return {
@@ -1,9 +1,12 @@
1
- import type { Message } from '../types/interfaces';
1
+ import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
2
  import { useState, useCallback, useRef, useEffect } from 'react';
3
3
  import { useChatStreaming } from './useChatStreaming';
4
- import { createChatSession, sendMessage } from '../services/streamingService';
5
- import { PacketType } from '../types/streamingModels';
6
- import { ResearchType } from '../types/interfaces';
4
+ import {
5
+ createChatSession,
6
+ sendMessage,
7
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
8
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
9
+ import { ResearchType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
7
10
 
8
11
  interface UseChatControllerProps {
9
12
  personaId: number;
@@ -1,8 +1,8 @@
1
- import type { Message } from '../types/interfaces';
2
- import type { SendMessageParams } from '../services/streamingService';
1
+ import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
+ import type { SendMessageParams } from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
3
3
  import { useState, useCallback, useRef } from 'react';
4
- import { sendMessage } from '../services/streamingService';
5
- import { MessageProcessor } from '../services/messageProcessor';
4
+ import { sendMessage } from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
5
+ import { MessageProcessor } from '@eeacms/volto-eea-chatbot/ChatBlock/services/messageProcessor';
6
6
 
7
7
  interface UseChatStreamingProps {
8
8
  onMessageUpdate?: (message: Message, processor: MessageProcessor) => void;
@@ -1,4 +1,4 @@
1
- import type { Packet } from '../types/streamingModels';
1
+ import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
2
  import { useMemo, useState, useCallback, useEffect } from 'react';
3
3
 
4
4
  interface ToolState {
@@ -28,5 +28,13 @@ export default function installChatBlock(config) {
28
28
  },
29
29
  variations: [],
30
30
  };
31
+
32
+ if (!config.blocks.blocksConfig.danswerChat) {
33
+ config.blocks.blocksConfig.danswerChat = {
34
+ ...config.blocks.blocksConfig.eeaChatbot,
35
+ id: 'danswerChat',
36
+ };
37
+ }
38
+
31
39
  return config;
32
40
  }
@@ -1,13 +1,13 @@
1
- import type { Packet } from '../types/streamingModels';
2
- import type { Message } from '../types/interfaces';
1
+ import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
+ import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
3
3
  import React, { useState, useEffect, useMemo } from 'react';
4
4
  import cx from 'classnames';
5
- import { PacketType } from '../types/streamingModels';
5
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
6
6
  import { RendererComponent } from './RendererComponent';
7
- import { useToolDisplayTiming } from '../hooks/useToolDisplayTiming';
8
- import SVGIcon from '../components/Icon';
9
- import DoneIcon from '../../icons/done.svg';
10
- import ChevronIcon from '../../icons/chevron.svg';
7
+ import { useToolDisplayTiming } from '@eeacms/volto-eea-chatbot/ChatBlock/hooks/useToolDisplayTiming';
8
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
9
+ import DoneIcon from '@eeacms/volto-eea-chatbot/icons/done.svg';
10
+ import ChevronIcon from '@eeacms/volto-eea-chatbot/icons/chevron.svg';
11
11
 
12
12
  interface MultiToolRendererProps {
13
13
  toolGroups: { ind: number; packets: Packet[] }[];
@@ -30,11 +30,10 @@ export function MultiToolRenderer({
30
30
  // Filter tool groups based on allowed tool types
31
31
  const filteredToolGroups = useMemo(
32
32
  () =>
33
- toolGroups.filter(
34
- (group) =>
35
- group.packets?.some(
36
- (packet) => showTools?.includes(packet.obj.type as PacketType),
37
- ),
33
+ toolGroups.filter((group) =>
34
+ group.packets?.some((packet) =>
35
+ showTools?.includes(packet.obj.type as PacketType),
36
+ ),
38
37
  ),
39
38
  [toolGroups, showTools],
40
39
  );
@@ -1,6 +1,9 @@
1
- import type { Packet } from '../types/streamingModels';
2
- import type { RendererResult, Message } from '../types/interfaces';
3
- import { PacketType } from '../types/streamingModels';
1
+ import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
+ import type {
3
+ RendererResult,
4
+ Message,
5
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
6
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
4
7
  import {
5
8
  MessageTextRenderer,
6
9
  SearchToolRenderer,
@@ -2,10 +2,10 @@ import type {
2
2
  CustomToolPacket,
3
3
  CustomToolStart,
4
4
  CustomToolDelta,
5
- } from '../../types/streamingModels';
6
- import type { MessageRenderer } from '../../types/interfaces';
5
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
6
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
7
7
  import { useEffect } from 'react';
8
- import { PacketType } from '../../types/streamingModels';
8
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
9
9
 
10
10
  export const CustomToolRenderer: MessageRenderer<CustomToolPacket> = ({
11
11
  packets,
@@ -1,10 +1,10 @@
1
1
  import type {
2
2
  FetchToolPacket,
3
3
  FetchToolStart,
4
- } from '../../types/streamingModels';
5
- import type { MessageRenderer } from '../../types/interfaces';
4
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
5
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
6
6
  import { useEffect } from 'react';
7
- import { PacketType } from '../../types/streamingModels';
7
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
8
8
 
9
9
  export const FetchToolRenderer: MessageRenderer<FetchToolPacket> = ({
10
10
  packets,
@@ -3,9 +3,9 @@ import type {
3
3
  ImageGenerationToolPacket,
4
4
  ImageGenerationToolDelta,
5
5
  GeneratedImage,
6
- } from '../../types/streamingModels';
7
- import type { MessageRenderer } from '../../types/interfaces';
8
- import { PacketType } from '../../types/streamingModels';
6
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
7
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
8
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
9
9
 
10
10
  export const ImageToolRenderer: MessageRenderer<ImageGenerationToolPacket> = ({
11
11
  packets,
@@ -1,11 +1,11 @@
1
- import type { ChatPacket } from '../../types/streamingModels';
2
- import type { MessageRenderer } from '../../types/interfaces';
1
+ import type { ChatPacket } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
3
3
  import { useEffect, useMemo, useState } from 'react';
4
4
  import loadable from '@loadable/component';
5
- import { components } from '../../components/markdown';
6
- import { isFinalAnswerComplete } from '../../services/packetUtils';
7
- import { PacketType } from '../../types/streamingModels';
8
- import { BlinkingDot } from '../../components/BlinkingDot';
5
+ import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
6
+ import { isFinalAnswerComplete } from '@eeacms/volto-eea-chatbot/ChatBlock/services/packetUtils';
7
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
8
+ import { BlinkingDot } from '@eeacms/volto-eea-chatbot/ChatBlock/components/BlinkingDot';
9
9
 
10
10
  const Markdown: any = loadable(() => import('react-markdown'));
11
11
 
@@ -104,8 +104,8 @@ export const MessageTextRenderer: MessageRenderer<ChatPacket> = ({
104
104
  const resetCount = isStreamFinished
105
105
  ? packets.length // Show all if stream is finished
106
106
  : packets.length > 0
107
- ? 1
108
- : 0;
107
+ ? 1
108
+ : 0;
109
109
  setDisplayedPacketCount(resetCount);
110
110
  }
111
111
  }, [animate, packets.length, displayedPacketCount, isStreamFinished]);
@@ -1,13 +1,13 @@
1
1
  import type {
2
2
  ReasoningPacket,
3
3
  ReasoningDelta,
4
- } from '../../types/streamingModels';
5
- import type { MessageRenderer } from '../../types/interfaces';
4
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
5
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
6
6
  import { useEffect, useState, useRef, useMemo } from 'react';
7
7
  import loadable from '@loadable/component';
8
- import { PacketType } from '../../types/streamingModels';
9
- import { components } from '../../components/markdown';
10
- import { addCitations } from '../../utils/citations';
8
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
9
+ import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
10
+ import { addCitations } from '@eeacms/volto-eea-chatbot/ChatBlock/utils/citations';
11
11
 
12
12
  const Markdown: any = loadable(() => import('react-markdown'));
13
13
 
@@ -4,17 +4,17 @@ import type {
4
4
  SearchToolDelta,
5
5
  SectionEnd,
6
6
  OnyxDocument,
7
- } from '../../types/streamingModels';
8
- import type { MessageRenderer } from '../../types/interfaces';
7
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
8
+ import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
9
9
  import { useEffect, useState, useRef, useMemo } from 'react';
10
- import { PacketType } from '../../types/streamingModels';
11
- import { SourceChip } from '../../components/SourceChip';
12
- import { BlinkingDot } from '../../components/BlinkingDot';
13
- import SVGIcon from '../../components/Icon';
14
- import { WebResultIcon } from '../../components/WebResultIcon';
15
- import SearchIcon from '../../../icons/search.svg';
16
- import GlobeIcon from '../../../icons/globe.svg';
17
- import FileIcon from '../../../icons/file.svg';
10
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
11
+ import { SourceChip } from '@eeacms/volto-eea-chatbot/ChatBlock/components/SourceChip';
12
+ import { BlinkingDot } from '@eeacms/volto-eea-chatbot/ChatBlock/components/BlinkingDot';
13
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
14
+ import { WebResultIcon } from '@eeacms/volto-eea-chatbot/ChatBlock/components/WebResultIcon';
15
+ import SearchIcon from '@eeacms/volto-eea-chatbot/icons/search.svg';
16
+ import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
17
+ import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
18
18
 
19
19
  const INITIAL_RESULTS_TO_SHOW = 3;
20
20
  const RESULTS_PER_EXPANSION = 10;
@@ -5,14 +5,17 @@ import type {
5
5
  OnyxDocument,
6
6
  Packet,
7
7
  StreamingCitation,
8
- } from '../types/streamingModels';
9
- import type { Message, ToolCallMetadata } from '../types/interfaces';
8
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
9
+ import type {
10
+ Message,
11
+ ToolCallMetadata,
12
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
10
13
  import {
11
14
  getSynteticPacket,
12
15
  isToolPacket,
13
16
  isDisplayPacket,
14
17
  } from './packetUtils';
15
- import { PacketType } from '../types/streamingModels';
18
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
16
19
 
17
20
  /**
18
21
  * Process streaming packets into a message object
@@ -1,5 +1,5 @@
1
- import type { Packet } from '../types/streamingModels';
2
- import { PacketType } from '../types/streamingModels';
1
+ import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
3
3
 
4
4
  export function getSynteticPacket(ind: number, type: PacketType): Packet {
5
5
  return {