@stack-spot/ai-chat-widget 1.6.0 → 1.7.0-beta.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 (61) hide show
  1. package/dist/app-metadata.json +7 -7
  2. package/dist/components/Selector/index.d.ts +20 -0
  3. package/dist/components/Selector/index.d.ts.map +1 -0
  4. package/dist/components/Selector/index.js +134 -0
  5. package/dist/components/Selector/index.js.map +1 -0
  6. package/dist/components/Selector/styled.d.ts +2 -0
  7. package/dist/components/Selector/styled.d.ts.map +1 -0
  8. package/dist/components/Selector/styled.js +144 -0
  9. package/dist/components/Selector/styled.js.map +1 -0
  10. package/dist/regex.d.ts +1 -0
  11. package/dist/regex.d.ts.map +1 -1
  12. package/dist/regex.js +1 -0
  13. package/dist/regex.js.map +1 -1
  14. package/dist/views/Agents/AgentsTab.js +4 -4
  15. package/dist/views/Agents/AgentsTab.js.map +1 -1
  16. package/dist/views/Chat/AgentInfo.js +1 -1
  17. package/dist/views/Home/CustomAgent.js +3 -3
  18. package/dist/views/Home/CustomAgent.js.map +1 -1
  19. package/dist/views/Home/styled.js +1 -1
  20. package/dist/views/MessageInput/AgentSelector.d.ts +4 -0
  21. package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -0
  22. package/dist/views/MessageInput/AgentSelector.js +31 -0
  23. package/dist/views/MessageInput/AgentSelector.js.map +1 -0
  24. package/dist/views/MessageInput/ButtonAgent.d.ts +2 -0
  25. package/dist/views/MessageInput/ButtonAgent.d.ts.map +1 -0
  26. package/dist/views/MessageInput/ButtonAgent.js +17 -0
  27. package/dist/views/MessageInput/ButtonAgent.js.map +1 -0
  28. package/dist/views/MessageInput/ButtonGroup.d.ts +1 -1
  29. package/dist/views/MessageInput/ButtonGroup.d.ts.map +1 -1
  30. package/dist/views/MessageInput/ButtonGroup.js +4 -6
  31. package/dist/views/MessageInput/ButtonGroup.js.map +1 -1
  32. package/dist/views/MessageInput/QuickCommandSelector.d.ts +2 -11
  33. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -1
  34. package/dist/views/MessageInput/QuickCommandSelector.js +17 -130
  35. package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -1
  36. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  37. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  38. package/dist/views/MessageInput/dictionary.js +4 -2
  39. package/dist/views/MessageInput/dictionary.js.map +1 -1
  40. package/dist/views/MessageInput/index.d.ts.map +1 -1
  41. package/dist/views/MessageInput/index.js +4 -1
  42. package/dist/views/MessageInput/index.js.map +1 -1
  43. package/dist/views/MessageInput/styled.d.ts.map +1 -1
  44. package/dist/views/MessageInput/styled.js +51 -144
  45. package/dist/views/MessageInput/styled.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/app-metadata.json +7 -7
  48. package/src/components/Selector/index.tsx +245 -0
  49. package/src/components/Selector/styled.ts +145 -0
  50. package/src/regex.ts +1 -0
  51. package/src/views/Agents/AgentsTab.tsx +4 -4
  52. package/src/views/Chat/AgentInfo.tsx +1 -1
  53. package/src/views/Home/CustomAgent.tsx +3 -3
  54. package/src/views/Home/styled.ts +1 -1
  55. package/src/views/MessageInput/AgentSelector.tsx +35 -0
  56. package/src/views/MessageInput/ButtonAgent.tsx +36 -0
  57. package/src/views/MessageInput/ButtonGroup.tsx +3 -10
  58. package/src/views/MessageInput/QuickCommandSelector.tsx +21 -205
  59. package/src/views/MessageInput/dictionary.ts +4 -2
  60. package/src/views/MessageInput/index.tsx +8 -3
  61. package/src/views/MessageInput/styled.ts +51 -144
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.6.0",
4
- "date": "Tue Jan 14 2025 23:31:13 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "1.7.0-beta.1",
4
+ "date": "Tue Jan 21 2025 10:16:13 GMT-0300 (Brasilia Standard Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -89,15 +89,15 @@
89
89
  },
90
90
  {
91
91
  "name": "@citric/core",
92
- "version": "6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
92
+ "version": "6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
93
93
  },
94
94
  {
95
95
  "name": "@citric/icons",
96
- "version": "5.7.7(react@18.2.0)"
96
+ "version": "5.9.0(react@18.2.0)"
97
97
  },
98
98
  {
99
99
  "name": "@citric/ui",
100
- "version": "6.1.2(@citric/core@6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.7.7(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
100
+ "version": "6.5.5(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
101
101
  },
102
102
  {
103
103
  "name": "@monaco-editor/react",
@@ -105,7 +105,7 @@
105
105
  },
106
106
  {
107
107
  "name": "@stack-spot/portal-components",
108
- "version": "2.8.1(@citric/core@6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.7.7(react@18.2.0))(@citric/ui@6.1.2(@citric/core@6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.7.7(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-theme@1.1.0(@citric/core@6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.11)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
108
+ "version": "2.8.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(@citric/ui@6.5.5(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-theme@1.1.0(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.11)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
109
109
  },
110
110
  {
111
111
  "name": "@stack-spot/portal-network",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "name": "@stack-spot/portal-theme",
116
- "version": "1.1.0(@citric/core@6.2.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
116
+ "version": "1.1.0(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
117
117
  },
118
118
  {
119
119
  "name": "@stack-spot/portal-translate",
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ type SelectorShortcut = '/' | '@';
3
+ interface SelectorConfig<T> {
4
+ resourceName: string;
5
+ shortcut: SelectorShortcut;
6
+ icon: React.ReactElement;
7
+ regex: RegExp;
8
+ url: string;
9
+ imageProp?: keyof T;
10
+ data: () => T[];
11
+ isEnabled: boolean;
12
+ onSelect: (item: T) => void;
13
+ }
14
+ interface SelectorProps<T> {
15
+ selectorConfig: SelectorConfig<T>;
16
+ inputRef: React.RefObject<HTMLTextAreaElement | HTMLInputElement>;
17
+ }
18
+ export declare const Selector: <T>({ inputRef, selectorConfig }: SelectorProps<T>) => import("react/jsx-runtime").JSX.Element;
19
+ export {};
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Selector/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAShF,KAAK,gBAAgB,GAAG,GAAG,GAAG,GAAG,CAAA;AA2BjC,UAAU,cAAc,CAAC,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;CACnE;AAmGD,eAAO,MAAM,QAAQ,GAAI,CAAC,gCAAiC,aAAa,CAAC,CAAC,CAAC,4CA+D1E,CAAA"}
@@ -0,0 +1,134 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconBox, Image, Text } from '@citric/core';
3
+ import { Agent, ExternalLink } from '@citric/icons';
4
+ import { IconButton } from '@citric/ui';
5
+ import { useKeyboardControls } from '@stack-spot/portal-components';
6
+ import { useTranslate } from '@stack-spot/portal-translate';
7
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
8
+ import { useCurrentChatState } from '../../context/hooks.js';
9
+ import { getUrlToStackSpotAI } from '../../utils/url.js';
10
+ import { Fading } from '../Fading.js';
11
+ import { FallbackBoundary } from '../FallbackBoundary/index.js';
12
+ import { SelectorBox } from './styled.js';
13
+ const sections = [undefined, 'personal', 'workspace', 'account', 'shared'];
14
+ const ListItem = ({ item, selectorConfig, onSelect }) => {
15
+ const t = useTranslate(dictionary);
16
+ const { shortcut, url } = selectorConfig;
17
+ const hasImage = !!selectorConfig.imageProp;
18
+ const image = item[selectorConfig.imageProp];
19
+ const linkTitle = t.open.replace('%s', item.slug);
20
+ return (_jsxs("li", { children: [!!hasImage && (image ? _jsx(Image, { width: "32", height: "32", radius: "full", src: image }) : _jsx(IconBox, { size: "md", children: _jsx(Agent, {}) })), _jsxs("button", { className: "selector", onClick: () => onSelect(item), onKeyDown: (e) => e.key === 'Enter' && e.preventDefault(), onFocus: (e) => e.target.closest('li')?.classList.add('focus'), onBlur: (e) => e.target.closest('li')?.classList.remove('focus'), children: [_jsxs("p", { className: "selector-title", children: [!hasImage ? shortcut : '', item.slug] }), _jsx("p", { className: "selector-description", children: item.description })] }), _jsx(IconButton, { as: "a", title: linkTitle, "aria-label": linkTitle, href: `${getUrlToStackSpotAI()}${url}${item.slug}`, target: "_blank", children: _jsx(ExternalLink, {}) })] }));
21
+ };
22
+ const List = ({ selectorConfig, filter, visibility, onSelect }) => {
23
+ const t = useTranslate(dictionary);
24
+ const items = selectorConfig.data();
25
+ const filtered = useMemo(() => {
26
+ if (!filter && !visibility)
27
+ return items;
28
+ const lowerFilter = filter?.toLowerCase() ?? '';
29
+ return items.filter(item => item.slug.toLocaleLowerCase().startsWith(lowerFilter) && (!visibility || item?.visibility_level?.toLowerCase() === visibility));
30
+ }, [filter, items, visibility]);
31
+ if (!items.length)
32
+ return _jsx(Text, { className: "empty", colorScheme: "light.700", children: t.noData.replace('%', selectorConfig.resourceName) });
33
+ if (!filtered.length)
34
+ _jsx(Text, { className: "empty", colorScheme: "light.700", children: t.noResults.replace('%', selectorConfig.resourceName) });
35
+ return (_jsx("ul", { className: "selector-list", children: filtered.map((item) => (_jsx(ListItem, { item: item, selectorConfig: selectorConfig, onSelect: onSelect }, item.id))) }));
36
+ };
37
+ const SelectorContent = ({ filter, onClose, selectorConfig }) => {
38
+ const t = useTranslate(dictionary);
39
+ const ref = useRef(null);
40
+ const [visibility, setVisibility] = useState();
41
+ const { resourceName, icon, onSelect } = selectorConfig;
42
+ const onSelectItem = useCallback((slug) => {
43
+ onSelect(slug);
44
+ onClose();
45
+ }, []);
46
+ useKeyboardControls({
47
+ querySelectors: '.tabs button, button.selector',
48
+ disableTabBehavior: true,
49
+ onPressEscape: onClose,
50
+ onPressArrowLeft: () => ref.current?.querySelector('.tabs button.active')?.focus(),
51
+ onPressArrowRight: () => ref.current?.querySelector('button.selector')?.focus(),
52
+ ref,
53
+ }, []);
54
+ function createSectionItem(action) {
55
+ return (_jsx("li", { children: _jsx("button", { className: visibility === action ? 'active' : '', onFocus: () => setVisibility(action), children: t[action || 'all'] }) }, action ?? 'all'));
56
+ }
57
+ return (_jsxs("div", { ref: ref, children: [_jsxs("header", { children: [_jsx(IconBox, { children: icon }), _jsxs(Text, { as: "h3", className: "uppercase", children: [" ", resourceName, " "] })] }), _jsxs("div", { className: "body", children: [_jsx("ul", { className: "tabs", children: sections.map(createSectionItem) }), _jsx(FallbackBoundary, { message: t.error.replace('%s', selectorConfig.resourceName), mini: true, children: _jsx(List, { filter: filter, visibility: visibility, selectorConfig: selectorConfig, onSelect: onSelectItem }) })] })] }));
58
+ };
59
+ export const Selector = ({ inputRef, selectorConfig }) => {
60
+ const { shortcut, regex, isEnabled } = selectorConfig;
61
+ const [isClosed, setClosed] = useState(false);
62
+ const selectorRef = useRef(null);
63
+ const value = useCurrentChatState('nextMessage') ?? '';
64
+ const filter = useMemo(() => value === shortcut || regex.test(value) ? value.substring(1) : undefined, [value]);
65
+ const shouldRender = isEnabled && filter !== undefined && !isClosed;
66
+ // Resets the closed state whenever the message input is cleared
67
+ useEffect(() => {
68
+ if (!value)
69
+ setClosed(false);
70
+ }, [value]);
71
+ // Creates the following behavior while the user types in the message input:
72
+ // auto-complete on tab; move focus to the resource panel on press up or down; and close the resource panel on esc.
73
+ useEffect(() => {
74
+ function getFirst() {
75
+ return selectorRef.current?.querySelector('.selector');
76
+ }
77
+ function onKeyDown(event) {
78
+ const key = event.key;
79
+ if (!selectorRef.current)
80
+ return;
81
+ if (key === 'Tab') {
82
+ getFirst()?.click();
83
+ event.preventDefault();
84
+ }
85
+ else if (key === 'ArrowDown' || key === 'ArrowUp') {
86
+ getFirst()?.focus();
87
+ event.preventDefault();
88
+ }
89
+ if (key === 'Escape') {
90
+ setClosed(true);
91
+ }
92
+ }
93
+ inputRef.current?.addEventListener('keydown', onKeyDown);
94
+ return () => inputRef.current?.removeEventListener('keydown', onKeyDown);
95
+ }, []);
96
+ // Closes the panel when the user clicks outside the panel or the message input.
97
+ useEffect(() => {
98
+ if (!shouldRender)
99
+ return;
100
+ function onClickOut(e) {
101
+ const target = e.target;
102
+ if (!selectorRef.current?.contains(target) && !inputRef.current?.contains(target))
103
+ setClosed(true);
104
+ }
105
+ document.addEventListener('click', onClickOut);
106
+ return () => document.removeEventListener('click', onClickOut);
107
+ }, [shouldRender]);
108
+ return (_jsx(SelectorBox, { children: _jsx(Fading, { visible: shouldRender, ref: selectorRef, className: "box-selector", children: _jsx(SelectorContent, { selectorConfig: selectorConfig, filter: filter, onClose: () => setClosed(true), inputRef: inputRef }) }) }));
109
+ };
110
+ const dictionary = {
111
+ en: {
112
+ all: 'All',
113
+ personal: 'Personal',
114
+ account: 'Account',
115
+ shared: 'Shared',
116
+ workspace: 'Workspace',
117
+ error: 'Could not load the %ss.',
118
+ noData: 'You don\'t have any %s yet.',
119
+ noResults: 'There are no %ss to show here.',
120
+ open: 'Open this %s settings in a new tab.',
121
+ },
122
+ pt: {
123
+ all: 'Todos',
124
+ personal: 'Pessoal',
125
+ account: 'Conta',
126
+ shared: 'Compartilhado',
127
+ workspace: 'Workspace',
128
+ error: 'Não foi possível carregar os %ss.',
129
+ noData: 'Você ainda não possui %ss.',
130
+ noResults: 'Não há %ss para mostrar aqui.',
131
+ open: 'Abra as configurações deste %s em uma nova aba.',
132
+ },
133
+ };
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Selector/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const SelectorBox: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
+ //# sourceMappingURL=styled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/components/Selector/styled.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,wOA4IvB,CAAA"}
@@ -0,0 +1,144 @@
1
+ import { theme } from '@stack-spot/portal-theme';
2
+ import { styled } from 'styled-components';
3
+ export const SelectorBox = styled.div `
4
+ .box-selector {
5
+ position: absolute;
6
+ border-radius: 4px;
7
+ border: 1px solid ${theme.color.light[600]};
8
+ background-color: ${theme.color.light[400]};
9
+ box-shadow: 0px 2px 16px 0px #0000005C;
10
+ display: flex;
11
+ flex-direction: column;
12
+ width: 480px;
13
+ bottom: 74px;
14
+
15
+ .loading, .error {
16
+ padding-bottom: 26px;
17
+ p {
18
+ width: 200px;
19
+ text-align: center;
20
+ line-height: 20px;
21
+ }
22
+ }
23
+
24
+ .empty {
25
+ padding-bottom: 26px;
26
+ width: 200px;
27
+ text-align: center;
28
+ line-height: 20px;
29
+ margin: auto;
30
+ }
31
+
32
+ header {
33
+ display: flex;
34
+ flex-direction: row;
35
+ gap: 8px;
36
+ align-items: center;
37
+ padding: 8px;
38
+ margin-bottom: 4px;
39
+ font-family: 'San Francisco';
40
+ text-transform: uppercase;
41
+ font-weight: 500;
42
+ font-size: 11px;
43
+ background-color: ${theme.color.light[500]};
44
+ }
45
+
46
+ .body {
47
+ display: flex;
48
+ flex-direction: row;
49
+ align-items: center;
50
+ }
51
+
52
+ ul {
53
+ margin: 0;
54
+ padding: 0;
55
+ list-style: none;
56
+ }
57
+
58
+ ul.tabs {
59
+ display: flex;
60
+ flex-direction: column;
61
+
62
+ li {
63
+ display: flex;
64
+ flex-direction: column;
65
+ }
66
+
67
+ button {
68
+ box-sizing: border-box;
69
+ color: ${theme.color.light[700]};
70
+ text-align: left;
71
+ padding: 10px;
72
+ font-weight: 600;
73
+ font-size: 12px;
74
+ transition: background-color 0.3s;
75
+ border-left: 1px solid transparent;
76
+ border-top-right-radius: 4px;
77
+ border-bottom-right-radius: 4px;
78
+ background-color: transparent;
79
+ border: none;
80
+ cursor: pointer;
81
+ outline: none;
82
+
83
+ &:hover, &.active, &:focus {
84
+ background-color: ${theme.color.light[600]};
85
+ }
86
+
87
+ &.active {
88
+ border-left: 1px solid ${theme.color.light.contrastText};
89
+ color: ${theme.color.light.contrastText};
90
+ }
91
+ }
92
+ }
93
+
94
+ ul.selector-list {
95
+ align-self: stretch;
96
+ display: flex;
97
+ flex-direction: column;
98
+ gap: 2px;
99
+ overflow-y: auto;
100
+ flex: 1;
101
+ max-height: 170px;
102
+
103
+ li {
104
+ display: flex;
105
+ flex-direction: row;
106
+ align-items: center;
107
+ gap: 8px;
108
+ padding: 8px;
109
+ border-radius: 4px;
110
+
111
+ &:hover, &.focus {
112
+ background-color: ${theme.color.light[600]};
113
+ }
114
+
115
+ button.selector {
116
+ flex: 1;
117
+ border: none;
118
+ text-align: left;
119
+ background-color: transparent;
120
+ text-align: left;
121
+ outline: none;
122
+ overflow: hidden;
123
+ cursor: pointer;
124
+
125
+ .selector-title {
126
+ font-size: 11px;
127
+ margin: 0 0 4px 0;
128
+ color: ${theme.color.light.contrastText};
129
+ text-transform: uppercase;
130
+ text-overflow: ellipsis;
131
+ overflow: hidden;
132
+ }
133
+
134
+ .selector-description {
135
+ color: ${theme.color.light[700]};
136
+ font-size: 12px;
137
+ margin: 0;
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ `;
144
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/components/Selector/styled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;wBAIb,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmCpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0B/B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;8BAeT,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;mCAIjB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;mBAC9C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;8BAuBnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;qBAgB/B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;qBAO9B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;CAQ1C,CAAA"}
package/dist/regex.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const quickCommandRegex: RegExp;
2
+ export declare const agentRegex: RegExp;
2
3
  //# sourceMappingURL=regex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../src/regex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,QAAkB,CAAA"}
1
+ {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../src/regex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,QAAkB,CAAA;AAChD,eAAO,MAAM,UAAU,QAAiB,CAAA"}
package/dist/regex.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export const quickCommandRegex = /^\/[\w\d-_]+$/;
2
+ export const agentRegex = /^@[\w\d-_]+$/;
2
3
  //# sourceMappingURL=regex.js.map
package/dist/regex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"regex.js","sourceRoot":"","sources":["../src/regex.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"regex.js","sourceRoot":"","sources":["../src/regex.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAA;AAChD,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, Text } from '@citric/core';
3
- import { Search } from '@citric/icons';
2
+ import { Button, IconBox, Text } from '@citric/core';
3
+ import { Agent, Search } from '@citric/icons';
4
4
  import { Placeholder } from '@stack-spot/portal-components/Placeholder';
5
5
  import { MiniLogo } from '@stack-spot/portal-components/svg';
6
6
  import { agentClient } from '@stack-spot/portal-network';
@@ -19,7 +19,7 @@ export const AgentsTab = ({ visibility }) => {
19
19
  const [filter, setFilter] = useState('');
20
20
  const defaultAgent = useMemo(() => ({
21
21
  id: '',
22
- name: 'Stackspot AI',
22
+ name: 'StackSpot AI',
23
23
  description: t.defaultAgentDescription,
24
24
  llm_config: { model_slug: 'gpt4o' },
25
25
  }), []);
@@ -35,7 +35,7 @@ export const AgentsTab = ({ visibility }) => {
35
35
  }
36
36
  close();
37
37
  }
38
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "content", children: [_jsx(IconInput, { icon: _jsx(Search, {}), value: filter, onChange: setFilter, className: "search" }), !!filtered.length && _jsx(DescribedRadioGroup, { options: filtered, keygen: a => a.id, value: value, onChange: setValue, renderLabel: ({ name, avatar, id }) => (_jsxs(AgentLabel, { children: [id ? (avatar && _jsx("img", { src: avatar })) : _jsx(MiniLogo, {}), _jsx(Text, { children: name })] })), renderDescription: a => _jsx(AgentDescription, { agentId: a.id, description: a.description, llm: a.llm_config?.model_slug, numberOfKnowledgeSources: a.knowledge_sources_config?.knowledge_sources?.length ?? 0 }), optionClassName: a => (a === value && filter && !a.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
38
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "content", children: [_jsx(IconInput, { icon: _jsx(Search, {}), value: filter, onChange: setFilter, className: "search" }), !!filtered.length && _jsx(DescribedRadioGroup, { options: filtered, keygen: a => a.id, value: value, onChange: setValue, renderLabel: ({ name, avatar, id }) => (_jsxs(AgentLabel, { children: [id ? (avatar ? _jsx("img", { src: avatar }) : _jsx(IconBox, { size: "xs", children: _jsx(Agent, {}) })) : _jsx(MiniLogo, {}), _jsx(Text, { children: name })] })), renderDescription: a => _jsx(AgentDescription, { agentId: a.id, description: a.description, llm: a.llm_config?.model_slug, numberOfKnowledgeSources: a.knowledge_sources_config?.knowledge_sources?.length ?? 0 }), optionClassName: a => (a === value && filter && !a.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
39
39
  ? 'filtered-out'
40
40
  : '', className: "option-list" }), !!agents.length && !filtered.length &&
41
41
  _jsx(Placeholder, { title: t.noSearchResults, description: t.noSearchResultsDescription, className: "no-data-placeholder" }), !agents.length && _jsx(Placeholder, { title: t.noData, description: t.noDataDescription })] }), !!filtered.length && _jsx(Button, { onClick: submit, disabled: !value, children: t.apply })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsTab.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentsTab.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@ import { MiniLogo } from '@stack-spot/portal-components/svg';
6
6
  */
7
7
  export const AgentInfo = ({ agent }) => (_jsxs(_Fragment, { children: [agent?.image
8
8
  ? _jsx("img", { src: agent.image, className: "custom-agent-image" })
9
- : _jsx("div", { className: "default-image-wrapper", children: _jsx(MiniLogo, { className: "agent-image" }) }), _jsx(Text, { appearance: "body2", children: agent?.label || 'Stackspot AI' })] }));
9
+ : _jsx("div", { className: "default-image-wrapper", children: _jsx(MiniLogo, { className: "agent-image" }) }), _jsx(Text, { appearance: "body2", children: agent?.label || 'StackSpot AI' })] }));
10
10
  //# sourceMappingURL=AgentInfo.js.map
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Text } from '@citric/core';
3
- import { MiniLogo } from '@stack-spot/portal-components/svg';
2
+ import { IconBox, Text } from '@citric/core';
3
+ import { Agent } from '@citric/icons';
4
4
  import { agentClient } from '@stack-spot/portal-network';
5
5
  import { theme } from '@stack-spot/portal-theme';
6
6
  import { useMemo } from 'react';
@@ -19,6 +19,6 @@ export const CustomAgent = () => {
19
19
  function send(message) {
20
20
  chat.pushMessage(ChatEntry.createUserEntry(message));
21
21
  }
22
- return (_jsxs(HomeBox, { className: "home-page custom-agent", children: [image ? _jsx("img", { src: image, className: "avatar" }) : _jsx(MiniLogo, { className: "avatar" }), _jsx(Text, { appearance: "h3", children: label }), _jsx("div", { className: "shortcuts", children: suggestions?.length ? suggestions : null })] }));
22
+ return (_jsxs(HomeBox, { className: "home-page custom-agent", children: [image ? _jsx("img", { src: image, className: "avatar" }) : _jsx(IconBox, { className: "avatar", children: _jsx(Agent, {}) }), _jsx(Text, { appearance: "h3", children: label }), _jsx("div", { className: "shortcuts", children: suggestions?.length ? suggestions : null })] }));
23
23
  };
24
24
  //# sourceMappingURL=CustomAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomAgent.js","sourceRoot":"","sources":["../../../src/views/Home/CustomAgent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAG,EAAE,CAAC,CAAA;IACpE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACjF,KAAC,gBAAgB,IAEf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAClC,cAAc,UAJT,KAAK,CAKV,CACH,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAE/B,SAAS,IAAI,CAAC,OAAe;QAC3B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,aACxC,KAAK,CAAC,CAAC,CAAC,cAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,SAAS,EAAC,QAAQ,GAAG,EACjF,KAAC,IAAI,IAAC,UAAU,EAAC,IAAI,YAAE,KAAK,GAAQ,EACpC,cAAK,SAAS,EAAC,WAAW,YAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAO,IACnE,CACX,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"CustomAgent.js","sourceRoot":"","sources":["../../../src/views/Home/CustomAgent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAG,EAAE,CAAC,CAAA;IACpE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACjF,KAAC,gBAAgB,IAEf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAClC,cAAc,UAJT,KAAK,CAKV,CACH,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAE/B,SAAS,IAAI,CAAC,OAAe;QAC3B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,aACxC,KAAK,CAAC,CAAC,CAAC,cAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,YAAC,KAAC,KAAK,KAAG,GAAU,EACjG,KAAC,IAAI,IAAC,UAAU,EAAC,IAAI,YAAE,KAAK,GAAQ,EACpC,cAAK,SAAS,EAAC,WAAW,YAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAO,IACnE,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -31,7 +31,7 @@ export const HomeBox = styled.div `
31
31
  }
32
32
  }
33
33
 
34
- .avatar {
34
+ .avatar, .avatar svg {
35
35
  width: 74px;
36
36
  height: 74px;
37
37
  border-radius: 50%;
@@ -0,0 +1,4 @@
1
+ export declare const AgentSelector: ({ inputRef }: {
2
+ inputRef: React.RefObject<HTMLTextAreaElement | HTMLInputElement>;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=AgentSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSelector.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/AgentSelector.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,iBAAkB;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAA;CAAE,4CA0BhH,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Agent } from '@citric/icons';
3
+ import { agentClient } from '@stack-spot/portal-network';
4
+ import { useCallback } from 'react';
5
+ import { Selector } from '../../components/Selector/index.js';
6
+ import { useCurrentChat, useCurrentChatState } from '../../context/hooks.js';
7
+ import { agentRegex } from '../../regex.js';
8
+ export const AgentSelector = ({ inputRef }) => {
9
+ const chat = useCurrentChat();
10
+ const onSelectItem = useCallback((agent) => {
11
+ const newValue = `@${agent.slug}`;
12
+ chat.set('nextMessage', undefined);
13
+ chat.set('agent', { id: agent.id, label: agent.slug, image: agent.avatar, builtIn: false });
14
+ if (!inputRef.current)
15
+ return;
16
+ inputRef.current.value = newValue;
17
+ inputRef.current.focus();
18
+ }, []);
19
+ return _jsx(Selector, { inputRef: inputRef, selectorConfig: {
20
+ resourceName: 'Agent',
21
+ shortcut: '@',
22
+ icon: _jsx(Agent, {}),
23
+ imageProp: 'avatar',
24
+ regex: agentRegex,
25
+ url: '/agent/',
26
+ data: () => agentClient.agents.useQuery({}),
27
+ isEnabled: useCurrentChatState('features').agent,
28
+ onSelect: onSelectItem,
29
+ } });
30
+ };
31
+ //# sourceMappingURL=AgentSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSelector.js","sourceRoot":"","sources":["../../../src/views/MessageInput/AgentSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAyE,EAAE,EAAE;IACnH,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAoB,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAE3F,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAM;QAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAA;QACjC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,KAAC,QAAQ,IACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE;YACd,YAAY,EAAE,OAAO;YACrB,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,KAAC,KAAK,KAAG;YACf,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,GAAG,EAAE,CAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,SAAS,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK;YAChD,QAAQ,EAAE,YAAY;SACvB,GACD,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const ButtonAgent: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ButtonAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonAgent.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonAgent.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,+CA4BvB,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex, IconBox } from '@citric/core';
3
+ import { Agent, TimesMini } from '@citric/icons';
4
+ import { IconButton, Tooltip } from '@citric/ui';
5
+ import { MiniLogo } from '@stack-spot/portal-components/svg';
6
+ import { useCurrentChat, useCurrentChatState, useWidget } from '../../context/hooks.js';
7
+ import { useMessageInputDictionary } from './dictionary.js';
8
+ export const ButtonAgent = () => {
9
+ const t = useMessageInputDictionary();
10
+ const widget = useWidget();
11
+ const chat = useCurrentChat();
12
+ const agent = useCurrentChatState('agent');
13
+ const features = useCurrentChatState('features');
14
+ return (_jsx("div", { className: "button-group", children: features.agent && (_jsxs("div", { className: "group-agent", children: [_jsx(IconButton, { "aria-label": t.agent, title: t.agent, className: "agent", onClick: () => widget.set('panel', 'agent'), children: _jsx(MiniLogo, {}) }), agent?.id &&
15
+ _jsx(Tooltip, { text: t.remove, children: _jsxs(IconButton, { "aria-label": t.remove, className: "agent agent-selected", onClick: () => chat.set('agent', undefined), children: [agent?.image ? _jsx("img", { src: agent.image, className: "image" }) : _jsx(IconBox, { className: "image", size: "xs", children: _jsx(Agent, {}) }), _jsx(Flex, { className: "icon-remove", alignContent: "center", justifyContent: "center", children: _jsx(TimesMini, {}) })] }) })] })) }));
16
+ };
17
+ //# sourceMappingURL=ButtonAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonAgent.js","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonAgent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAEhD,OAAO,CACL,cAAK,SAAS,EAAC,cAAc,YAC1B,QAAQ,CAAC,KAAK,IAAI,CACjB,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAC,UAAU,kBAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,YAC5G,KAAC,QAAQ,KAAG,GACD,EACZ,KAAK,EAAE,EAAE;oBACR,KAAC,OAAO,IAAC,IAAI,EAAE,CAAC,CAAC,MAAM,YACrB,MAAC,UAAU,kBAAa,CAAC,CAAC,MAAM,EAAE,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,aAC3G,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,cAAK,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,YAAC,KAAC,KAAK,KAAG,GAAU,EACtH,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,YAAY,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,YACzE,KAAC,SAAS,KAAG,GACR,IACI,GACL,IAER,CACP,GACG,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -22,7 +22,7 @@ interface ButtonGroupProps {
22
22
  }
23
23
  /**
24
24
  * Renders the button group at right bottom side of the message input. This includes the send button as well as the buttons to open the
25
- * editor, change the agent, the stack, etc.
25
+ * editor, change the stack, etc.
26
26
  */
27
27
  export declare const ButtonGroup: ({ onSend, onCancel, expanded, setExpanded, isLoading }: ButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
28
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonGroup.tsx"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,2DAA4D,gBAAgB,4CAgFnG,CAAA"}
1
+ {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonGroup.tsx"],"names":[],"mappings":"AAOA,UAAU,gBAAgB;IACxB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,2DAA4D,gBAAgB,4CA0EnG,CAAA"}