@stack-spot/ai-chat-widget 1.4.1 → 1.5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.5.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.5.0...ai-chat-widget@v1.5.1) (2024-11-21)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * add title and aria-label in code editor icon ([8d71b11](https://github.com/stack-spot/portal-ai-chat-widget/commit/8d71b11e5b8960ca0a259e556ad8ef2e4672d578))
9
+
10
+ ## [1.5.0](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.4.1...ai-chat-widget@v1.5.0) (2024-11-05)
11
+
12
+
13
+ ### Features
14
+
15
+ * style feature ([5ef9a29](https://github.com/stack-spot/portal-ai-chat-widget/commit/5ef9a29cede82f6de7aaf90597c92022eb48fd2f))
16
+
17
+ ## [1.4.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.4.0...ai-chat-widget@v1.4.1) (2024-11-05)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * release ([b26e08a](https://github.com/stack-spot/portal-ai-chat-widget/commit/b26e08a29bad33faa47f48077f438ef67bcce731))
23
+
3
24
  ## [1.4.0](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget-v1.3.3...ai-chat-widget@v1.4.0) (2024-11-04)
4
25
 
5
26
 
@@ -1,6 +1,7 @@
1
+ import { WithStyle } from '@stack-spot/portal-theme';
1
2
  import './layout.css';
2
3
  import { MinimizedActions } from './types.js';
3
- export interface AIWidgetProps {
4
+ export interface AIWidgetProps extends WithStyle {
4
5
  /**
5
6
  * The name of the user currently logged in.
6
7
  */
@@ -18,5 +19,5 @@ export interface AIWidgetProps {
18
19
  * Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
19
20
  * of the Chat Widget will be instantiated and used.
20
21
  */
21
- export declare const StackspotAIWidget: ({ username, minimizedActions, children }: AIWidgetProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const StackspotAIWidget: ({ username, minimizedActions, children, className, style }: AIWidgetProps) => import("react/jsx-runtime").JSX.Element;
22
23
  //# sourceMappingURL=StackspotAIWidget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackspotAIWidget.d.ts","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"AAIA,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAc1C,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,6CACmB,aAAa,4CAoC7D,CAAA"}
1
+ {"version":3,"file":"StackspotAIWidget.d.ts","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAc1C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,+DAAqE,aAAa,4CAmC/G,CAAA"}
@@ -22,13 +22,13 @@ import { Workspaces } from './views/Workspaces.js';
22
22
  * Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
23
23
  * of the Chat Widget will be instantiated and used.
24
24
  */
25
- export const StackspotAIWidget = ({ username, minimizedActions = {}, children }) => {
25
+ export const StackspotAIWidget = ({ username, minimizedActions = {}, children, className, style }) => {
26
26
  const rightPanelRef = useRef(null);
27
27
  const chatWindowRef = useRef(null);
28
28
  const currentChat = useCurrentChatMessages();
29
29
  const isMinimized = useWidgetState('isMinimized');
30
30
  const isCurrentChatEmpty = currentChat.length === 0;
31
- return useMemo(() => (_jsx(TooltipProvider, { children: _jsx(RightPanelProvider, { chatWindow: chatWindowRef, panel: rightPanelRef, children: _jsxs("div", { className: listToClass(['ai-chat-widget', isMinimized && 'minimized']), translate: "no", children: [_jsxs("div", { className: "chat-window", ref: chatWindowRef, children: [isMinimized
31
+ return useMemo(() => (_jsx(TooltipProvider, { children: _jsx(RightPanelProvider, { chatWindow: chatWindowRef, panel: rightPanelRef, children: _jsxs("div", { className: listToClass(['ai-chat-widget', isMinimized && 'minimized', className]), translate: "no", style: style, children: [_jsxs("div", { className: "chat-window", ref: chatWindowRef, children: [isMinimized
32
32
  ? _jsx(MinimizedHeader, { ...minimizedActions })
33
33
  : _jsx(ChatTabSelection, {}), _jsxs("div", { className: "chat-container", children: [_jsx("div", { className: "chat-content", children: isCurrentChatEmpty ? (children ?? _jsx(Home, { username: username })) : _jsx(Chat, { username: username }) }), _jsx(MessageInput, {})] })] }), _jsx(Stacks, {}), _jsx(Workspaces, {}), _jsx(KnowledgeSources, {}), _jsx(KSDocument, {}), _jsx(Agents, {}), _jsx(Editor, {}), _jsx(ChatHistory, {}), _jsx("div", { className: "chat-right-panel", ref: rightPanelRef, children: _jsx(RightPanel, {}) })] }) }) })), [isCurrentChatEmpty, username, isMinimized, children]);
34
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StackspotAIWidget.js","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StackspotAIWidget.js","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.4.1",
4
- "date": "Mon Nov 04 2024 16:26:03 GMT-0300 (Horário Padrão de Brasília)",
3
+ "version": "1.5.1",
4
+ "date": "Thu Nov 21 2024 18:02:06 GMT+0000 (Coordinated Universal Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -68,7 +68,6 @@ export declare class WidgetState extends ObservableState<WidgetProperties> {
68
68
  chatFeatures: ChatFeatures;
69
69
  constructor({ chatTabs, initial, interceptors, features }?: Options);
70
70
  private getNextUntitledChatIndex;
71
- private getNextUntitledChatLabel;
72
71
  /**
73
72
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
74
73
  * @param properties the chat properties (initial state).
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetState.d.ts","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA2B,cAAc,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IACrF;;OAEG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,OAAO;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAID;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe,CAAC,gBAAgB,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC;;OAEG;IACH,YAAY,EAAE,kBAAkB,EAAE,CAAK;IACvC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;gBAEd,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAiB,EAAE,QAAQ,EAAE,GAAE,OAAY;IAc5E,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;IAKhC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAE,OAAO,CAAC,kCAAkC,CAAM,EAAE,OAAO,GAAE,SAAS,EAAO;CAYjH"}
1
+ {"version":3,"file":"WidgetState.d.ts","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA2B,cAAc,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IACrF;;OAEG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,OAAO;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAID;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe,CAAC,gBAAgB,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC;;OAEG;IACH,YAAY,EAAE,kBAAkB,EAAE,CAAK;IACvC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;gBAEd,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAiB,EAAE,QAAQ,EAAE,GAAE,OAAY;IAc5E,OAAO,CAAC,wBAAwB;IAUhC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAE,OAAO,CAAC,kCAAkC,CAAM,EAAE,OAAO,GAAE,SAAS,EAAO;CAYjH"}
@@ -7,7 +7,7 @@ import { getFeaturesWithDefaults } from '../features.js';
7
7
  import { ChatState } from './ChatState.js';
8
8
  import { ChatTabsController } from './ChatTabsController.js';
9
9
  import { ObservableState } from './ObservableState.js';
10
- const untitledChatPrefix = 'Chat';
10
+ const untitledChatPrefix = 'Chat ';
11
11
  /**
12
12
  * Holds the full state of the AI Chat Widget.
13
13
  *
@@ -39,19 +39,13 @@ export class WidgetState extends ObservableState {
39
39
  getNextUntitledChatIndex() {
40
40
  let max = 0;
41
41
  for (const chat of this.chatTabs.getAll()) {
42
- if (chat.get('label') === untitledChatPrefix && max < 1)
43
- max = 1;
44
- const [, match] = chat.get('label').match(`^${untitledChatPrefix} (\\d+)$`) ?? [];
45
- const index = match ? parseInt(match) : 0;
42
+ const [, match] = chat.get('label').match(`${untitledChatPrefix}(\\d+)`) ?? [];
43
+ const index = parseInt(match);
46
44
  if (index > max)
47
45
  max = index;
48
46
  }
49
47
  return max + 1;
50
48
  }
51
- getNextUntitledChatLabel() {
52
- const next = this.getNextUntitledChatIndex();
53
- return next > 1 ? `${untitledChatPrefix} ${next}` : untitledChatPrefix;
54
- }
55
49
  /**
56
50
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
57
51
  * @param properties the chat properties (initial state).
@@ -61,7 +55,7 @@ export class WidgetState extends ObservableState {
61
55
  createChat({ label, ...properties } = {}, entries = []) {
62
56
  const chat = new ChatState({
63
57
  id: ulid(),
64
- initial: { label: label || this.getNextUntitledChatLabel(), features: this.chatFeatures, ...properties },
58
+ initial: { label: label || `${untitledChatPrefix}${this.getNextUntitledChatIndex()}`, features: this.chatFeatures, ...properties },
65
59
  entries,
66
60
  interceptors: this.interceptors,
67
61
  untitled: !label,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetState.js","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetState.js","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAA;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAkC,uBAAuB,EAAkB,MAAM,aAAa,CAAA;AAErG,OAAO,EAAsC,SAAS,EAAsB,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA+CnD,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAElC;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAiC;IACvD,QAAQ,CAAoB;IACrC;;OAEG;IACH,YAAY,GAAyB,EAAE,CAAA;IACvC;;OAEG;IACH,YAAY,CAAc;IAE1B,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,EAAE,QAAQ,KAAc,EAAE;QAC1E,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QAC9D,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,kBAAkB,EAAE,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,YAAY;YACf,gCAAgC;YAChC,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,MAAM,CAAC;YAC/E,sBAAsB;SACvB,CAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IAEO,wBAAwB;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,kBAAkB,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,KAAK,GAAG,GAAG;gBAAE,GAAG,GAAG,KAAK,CAAA;QAC9B,CAAC;QACD,OAAO,GAAG,GAAG,CAAC,CAAA;IAChB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,KAAkD,EAAE,EAAE,UAAuB,EAAE;QAC9G,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC;YACzB,EAAE,EAAE,IAAI,EAAE;YACV,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,EAAE;YAClI,OAAO;YACP,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,CAAC,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -31,6 +31,6 @@ export const ButtonGroup = ({ onSend, onCancel, expanded, setExpanded, isLoading
31
31
  },
32
32
  // don't use the whole features object here, it would make every chat tab change rerun this effect.
33
33
  [features.agent, features.workspace, features.knowledgeSource, features.stack, features.editor]);
34
- return (_jsxs("div", { className: "button-group", children: [hasFeatureButtons && _jsxs(_Fragment, { children: [_jsxs("div", { ref: featureButtons, className: listToClass(['feature-buttons', expanded && 'expanded']), style: { width: expanded ? featureButtonsWidth.current : 0 }, children: [features.agent && (_jsx(IconButton, { "aria-label": t.agent, title: t.agent, className: "agent", onClick: () => widget.set('panel', 'agent'), children: agent?.image ? _jsx("img", { src: agent.image }) : _jsx(MiniLogo, {}) })), features.workspace && (_jsx(IconButton, { "aria-label": t.workspace, title: t.workspace, onClick: () => widget.set('panel', 'workspace'), children: _jsx(Workspace, {}) })), features.knowledgeSource && (_jsx(IconButton, { "aria-label": t.knowledgeSource, title: t.knowledgeSource, onClick: () => widget.set('panel', 'ks'), children: _jsx(KnowledgeSource, {}) })), features.stack && (_jsx(IconButton, { "aria-label": t.stack, title: t.stack, onClick: () => widget.set('panel', 'stack'), children: _jsx(Stack, {}) })), features.editor && (_jsx(IconButton, { "aria-label": t.stack, title: t.stack, onClick: () => widget.set('panel', 'editor'), children: _jsx(Code, {}) }))] }), _jsx(IconButton, { title: expanded ? t.collapse : t.expand, className: listToClass(['expand', !expanded && 'collapsed']), "aria-label": expanded ? t.collapse : t.expand, onClick: () => setExpanded(v => !v), children: _jsx(ChevronRight, {}) })] }), isLoading ? (_jsx(IconButton, { "aria-label": t.cancel, onClick: onCancel, className: "send", title: t.cancel, children: _jsx(Times, {}) })) : (_jsx(IconButton, { "aria-label": t.send, onClick: onSend, className: "send", title: t.send, children: _jsx(Send, {}) }))] }));
34
+ return (_jsxs("div", { className: "button-group", children: [hasFeatureButtons && _jsxs(_Fragment, { children: [_jsxs("div", { ref: featureButtons, className: listToClass(['feature-buttons', expanded && 'expanded']), style: { width: expanded ? featureButtonsWidth.current : 0 }, children: [features.agent && (_jsx(IconButton, { "aria-label": t.agent, title: t.agent, className: "agent", onClick: () => widget.set('panel', 'agent'), children: agent?.image ? _jsx("img", { src: agent.image }) : _jsx(MiniLogo, {}) })), features.workspace && (_jsx(IconButton, { "aria-label": t.workspace, title: t.workspace, onClick: () => widget.set('panel', 'workspace'), children: _jsx(Workspace, {}) })), features.knowledgeSource && (_jsx(IconButton, { "aria-label": t.knowledgeSource, title: t.knowledgeSource, onClick: () => widget.set('panel', 'ks'), children: _jsx(KnowledgeSource, {}) })), features.stack && (_jsx(IconButton, { "aria-label": t.stack, title: t.stack, onClick: () => widget.set('panel', 'stack'), children: _jsx(Stack, {}) })), features.editor && (_jsx(IconButton, { "aria-label": t.code, title: t.code, onClick: () => widget.set('panel', 'editor'), children: _jsx(Code, {}) }))] }), _jsx(IconButton, { title: expanded ? t.collapse : t.expand, className: listToClass(['expand', !expanded && 'collapsed']), "aria-label": expanded ? t.collapse : t.expand, onClick: () => setExpanded(v => !v), children: _jsx(ChevronRight, {}) })] }), isLoading ? (_jsx(IconButton, { "aria-label": t.cancel, onClick: onCancel, className: "send", title: t.cancel, children: _jsx(Times, {}) })) : (_jsx(IconButton, { "aria-label": t.send, onClick: onSend, className: "send", title: t.send, children: _jsx(Send, {}) }))] }));
35
35
  };
36
36
  //# sourceMappingURL=ButtonGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonGroup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/views/MessageInput/ButtonGroup.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const useMessageInputDictionary: () => Record<"cancel" | "placeholder" | "selected" | "stack" | "workspace" | "knowledgeSource" | "agent" | "send" | "collapse" | "expand" | "removeConfig" | "removeStack" | "removeWorkspace" | "removeKS" | "removeSelection", string>;
1
+ export declare const useMessageInputDictionary: () => Record<"cancel" | "code" | "placeholder" | "selected" | "stack" | "workspace" | "knowledgeSource" | "agent" | "send" | "collapse" | "expand" | "removeConfig" | "removeStack" | "removeWorkspace" | "removeKS" | "removeSelection", string>;
2
2
  //# sourceMappingURL=dictionary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,yBAAyB,0OAAiC,CAAA"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,yBAAyB,mPAAiC,CAAA"}
@@ -2,6 +2,7 @@ import { useTranslate } from '@stack-spot/portal-translate';
2
2
  const dictionary = {
3
3
  en: {
4
4
  stack: 'Select stack',
5
+ code: 'Open code editor',
5
6
  workspace: 'Select workspace',
6
7
  knowledgeSource: 'Select knowledge sources',
7
8
  agent: 'Select agent',
@@ -19,6 +20,7 @@ const dictionary = {
19
20
  },
20
21
  pt: {
21
22
  stack: 'Selecionar stack',
23
+ code: 'Abrir editor de código',
22
24
  workspace: 'Selecionar workspace',
23
25
  knowledgeSource: 'Selecionar knowledge sources',
24
26
  agent: 'Selecionar agente',
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,kBAAkB;QAC7B,eAAe,EAAE,0BAA0B;QAC3C,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kBAAkB;QAC/B,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE,kCAAkC;QACnD,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,+BAA+B;KACjD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,sBAAsB;QACjC,eAAe,EAAE,8BAA8B;QAC/C,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,gCAAgC;QAC9C,WAAW,EAAE,6BAA6B;QAC1C,eAAe,EAAE,iCAAiC;QAClD,QAAQ,EAAE,qCAAqC;QAC/C,QAAQ,EAAE,aAAa;QACvB,eAAe,EAAE,4BAA4B;KAC9C;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,kBAAkB;QAC7B,eAAe,EAAE,0BAA0B;QAC3C,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kBAAkB;QAC/B,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE,kCAAkC;QACnD,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,+BAA+B;KACjD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,sBAAsB;QACjC,eAAe,EAAE,8BAA8B;QAC/C,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,gCAAgC;QAC9C,WAAW,EAAE,6BAA6B;QAC1C,eAAe,EAAE,iCAAiC;QAClD,QAAQ,EAAE,qCAAqC;QAC/C,QAAQ,EAAE,aAAa;QACvB,eAAe,EAAE,4BAA4B;KAC9C;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.4.1",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "rimraf dist && pnpm generate:metadata && tsc && tsc-esm-fix --target='dist' && cpy src/layout.css dist --flat",
9
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
10
+ "generate:metadata": "pnpm app-metadata --lockfile ../../pnpm-lock.yaml --path packages/widget"
11
+ },
7
12
  "peerDependencies": {
8
13
  "@citric/core": "^6.0.0",
9
14
  "@citric/icons": "^5.4.0 || ^6.0.0",
@@ -48,10 +53,5 @@
48
53
  "react-syntax-highlighter": "^15.5.0",
49
54
  "remark-gfm": "^4.0.0",
50
55
  "ulid": "^2.3.0"
51
- },
52
- "scripts": {
53
- "build": "rimraf dist && pnpm generate:metadata && tsc && tsc-esm-fix --target='dist' && cpy src/layout.css dist --flat",
54
- "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
55
- "generate:metadata": "pnpm app-metadata --lockfile ../../pnpm-lock.yaml --path packages/widget"
56
56
  }
57
57
  }
@@ -1,4 +1,4 @@
1
- import { listToClass } from '@stack-spot/portal-theme'
1
+ import { listToClass, WithStyle } from '@stack-spot/portal-theme'
2
2
  import { useMemo, useRef } from 'react'
3
3
  import { TooltipProvider } from './components/Tooltip'
4
4
  import { useCurrentChatMessages, useWidgetState } from './context/hooks'
@@ -19,7 +19,7 @@ import { MinimizedHeader } from './views/MinimizedHeader'
19
19
  import { Stacks } from './views/Stacks'
20
20
  import { Workspaces } from './views/Workspaces'
21
21
 
22
- export interface AIWidgetProps {
22
+ export interface AIWidgetProps extends WithStyle {
23
23
  /**
24
24
  * The name of the user currently logged in.
25
25
  */
@@ -38,9 +38,7 @@ export interface AIWidgetProps {
38
38
  * Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
39
39
  * of the Chat Widget will be instantiated and used.
40
40
  */
41
- export const StackspotAIWidget = (
42
- { username, minimizedActions = {}, children }: AIWidgetProps,
43
- ) => {
41
+ export const StackspotAIWidget = ({ username, minimizedActions = {}, children, className, style }: AIWidgetProps) => {
44
42
  const rightPanelRef = useRef<HTMLDivElement>(null)
45
43
  const chatWindowRef = useRef<HTMLDivElement>(null)
46
44
  const currentChat = useCurrentChatMessages()
@@ -50,7 +48,7 @@ export const StackspotAIWidget = (
50
48
  return useMemo(() => (
51
49
  <TooltipProvider>
52
50
  <RightPanelProvider chatWindow={chatWindowRef} panel={rightPanelRef}>
53
- <div className={listToClass(['ai-chat-widget', isMinimized && 'minimized'])} translate="no">
51
+ <div className={listToClass(['ai-chat-widget', isMinimized && 'minimized', className])} translate="no" style={style}>
54
52
  <div className="chat-window" ref={chatWindowRef}>
55
53
  {isMinimized
56
54
  ? <MinimizedHeader {...minimizedActions} />
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.4.1",
4
- "date": "Mon Nov 04 2024 16:26:03 GMT-0300 (Horário Padrão de Brasília)",
3
+ "version": "1.5.1",
4
+ "date": "Thu Nov 21 2024 18:02:06 GMT+0000 (Coordinated Universal Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -54,7 +54,7 @@ interface Options {
54
54
  chatTabs?: ChatTabsController,
55
55
  }
56
56
 
57
- const untitledChatPrefix = 'Chat'
57
+ const untitledChatPrefix = 'Chat '
58
58
 
59
59
  /**
60
60
  * Holds the full state of the AI Chat Widget.
@@ -89,19 +89,13 @@ export class WidgetState extends ObservableState<WidgetProperties> {
89
89
  private getNextUntitledChatIndex() {
90
90
  let max = 0
91
91
  for (const chat of this.chatTabs.getAll()) {
92
- if (chat.get('label') === untitledChatPrefix && max < 1) max = 1
93
- const [, match] = chat.get('label').match(`^${untitledChatPrefix} (\\d+)$`) ?? []
94
- const index = match ? parseInt(match) : 0
92
+ const [, match] = chat.get('label').match(`${untitledChatPrefix}(\\d+)`) ?? []
93
+ const index = parseInt(match)
95
94
  if (index > max) max = index
96
95
  }
97
96
  return max + 1
98
97
  }
99
98
 
100
- private getNextUntitledChatLabel() {
101
- const next = this.getNextUntitledChatIndex()
102
- return next > 1 ? `${untitledChatPrefix} ${next}` : untitledChatPrefix
103
- }
104
-
105
99
  /**
106
100
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
107
101
  * @param properties the chat properties (initial state).
@@ -111,7 +105,7 @@ export class WidgetState extends ObservableState<WidgetProperties> {
111
105
  createChat({ label, ...properties }: Partial<ChatPropertiesWithOptionalFeatures> = {}, entries: ChatEntry[] = []) {
112
106
  const chat = new ChatState({
113
107
  id: ulid(),
114
- initial: { label: label || this.getNextUntitledChatLabel(), features: this.chatFeatures, ...properties },
108
+ initial: { label: label || `${untitledChatPrefix}${this.getNextUntitledChatIndex()}`, features: this.chatFeatures, ...properties },
115
109
  entries,
116
110
  interceptors: this.interceptors,
117
111
  untitled: !label,
@@ -88,7 +88,7 @@ export const ButtonGroup = ({ onSend, onCancel, expanded, setExpanded, isLoading
88
88
  </IconButton>
89
89
  )}
90
90
  {features.editor && (
91
- <IconButton aria-label={t.stack} title={t.stack} onClick={() => widget.set('panel', 'editor')}>
91
+ <IconButton aria-label={t.code} title={t.code} onClick={() => widget.set('panel', 'editor')}>
92
92
  <Code />
93
93
  </IconButton>
94
94
  )}
@@ -3,6 +3,7 @@ import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
3
3
  const dictionary = {
4
4
  en: {
5
5
  stack: 'Select stack',
6
+ code: 'Open code editor',
6
7
  workspace: 'Select workspace',
7
8
  knowledgeSource: 'Select knowledge sources',
8
9
  agent: 'Select agent',
@@ -20,6 +21,7 @@ const dictionary = {
20
21
  },
21
22
  pt: {
22
23
  stack: 'Selecionar stack',
24
+ code: 'Abrir editor de código',
23
25
  workspace: 'Selecionar workspace',
24
26
  knowledgeSource: 'Selecionar knowledge sources',
25
27
  agent: 'Selecionar agente',
package/tsconfig.json CHANGED
@@ -2,7 +2,11 @@
2
2
  "compilerOptions": {
3
3
  "target": "ES2023",
4
4
  "useDefineForClassFields": true,
5
- "lib": ["ES2023", "DOM", "DOM.Iterable"],
5
+ "lib": [
6
+ "ES2023",
7
+ "DOM",
8
+ "DOM.Iterable"
9
+ ],
6
10
  "moduleResolution": "Bundler",
7
11
  "jsx": "react-jsx",
8
12
  "skipLibCheck": true,
@@ -11,12 +15,13 @@
11
15
  "declarationMap": true,
12
16
  "module": "ESNext",
13
17
  "outDir": "dist",
14
- /* Linting */
15
18
  "strict": true,
16
19
  "noUnusedLocals": true,
17
20
  "noUnusedParameters": true,
18
21
  "noFallthroughCasesInSwitch": true,
19
22
  "stripInternal": true
20
23
  },
21
- "include": ["src"]
24
+ "include": [
25
+ "src"
26
+ ]
22
27
  }