@stack-spot/ai-chat-widget 1.18.0-beta.0 → 1.18.0-beta.10

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 (87) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/app-metadata.json +6 -6
  3. package/dist/components/ComponentNavigator.d.ts +22 -5
  4. package/dist/components/ComponentNavigator.d.ts.map +1 -1
  5. package/dist/components/ComponentNavigator.js.map +1 -1
  6. package/dist/components/ListResource.d.ts +29 -0
  7. package/dist/components/ListResource.d.ts.map +1 -0
  8. package/dist/components/{ListGroup.js → ListResource.js} +6 -5
  9. package/dist/components/ListResource.js.map +1 -0
  10. package/dist/components/Selector/index.js +2 -2
  11. package/dist/components/Selector/index.js.map +1 -1
  12. package/dist/components/WorkspaceTabNavigator.d.ts +6 -4
  13. package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -1
  14. package/dist/components/WorkspaceTabNavigator.js +9 -9
  15. package/dist/components/WorkspaceTabNavigator.js.map +1 -1
  16. package/dist/components/form/DescribedCheckboxGroup.js +1 -1
  17. package/dist/components/form/DescribedCheckboxGroup.js.map +1 -1
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/state/ChatEntry.d.ts +4 -0
  23. package/dist/state/ChatEntry.d.ts.map +1 -1
  24. package/dist/state/ChatEntry.js.map +1 -1
  25. package/dist/views/Agents/AgentsPanel.js +1 -1
  26. package/dist/views/Agents/AgentsPanel.js.map +1 -1
  27. package/dist/views/Agents/AgentsTab.js.map +1 -1
  28. package/dist/views/Agents/dictionary.d.ts +1 -1
  29. package/dist/views/Agents/dictionary.d.ts.map +1 -1
  30. package/dist/views/Agents/dictionary.js +2 -2
  31. package/dist/views/Agents/dictionary.js.map +1 -1
  32. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  33. package/dist/views/Chat/ChatMessage.js +5 -5
  34. package/dist/views/Chat/ChatMessage.js.map +1 -1
  35. package/dist/views/Chat/StepsList.js +2 -2
  36. package/dist/views/Chat/StepsList.js.map +1 -1
  37. package/dist/views/ChatHistory/utils.d.ts.map +1 -1
  38. package/dist/views/ChatHistory/utils.js +7 -3
  39. package/dist/views/ChatHistory/utils.js.map +1 -1
  40. package/dist/views/KnowledgeSources.js +3 -3
  41. package/dist/views/KnowledgeSources.js.map +1 -1
  42. package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -1
  43. package/dist/views/MessageInput/AgentSelector.js +8 -5
  44. package/dist/views/MessageInput/AgentSelector.js.map +1 -1
  45. package/dist/views/MessageInput/ButtonGroup.js +2 -2
  46. package/dist/views/MessageInput/ButtonGroup.js.map +1 -1
  47. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -1
  48. package/dist/views/MessageInput/QuickCommandSelector.js +5 -3
  49. package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -1
  50. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  51. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  52. package/dist/views/MessageInput/dictionary.js +6 -6
  53. package/dist/views/MessageInput/dictionary.js.map +1 -1
  54. package/dist/views/Stacks.js +3 -3
  55. package/dist/views/Stacks.js.map +1 -1
  56. package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -1
  57. package/dist/views/Workspaces/WorkspacesTab.js +6 -6
  58. package/dist/views/Workspaces/WorkspacesTab.js.map +1 -1
  59. package/dist/views/Workspaces/index.js +4 -13
  60. package/dist/views/Workspaces/index.js.map +1 -1
  61. package/package.json +3 -3
  62. package/src/app-metadata.json +6 -6
  63. package/src/components/ComponentNavigator.tsx +32 -7
  64. package/src/components/ListResource.tsx +60 -0
  65. package/src/components/Selector/index.tsx +2 -2
  66. package/src/components/WorkspaceTabNavigator.tsx +28 -23
  67. package/src/components/form/DescribedCheckboxGroup.tsx +12 -12
  68. package/src/index.ts +2 -0
  69. package/src/state/ChatEntry.ts +4 -0
  70. package/src/views/Agents/AgentsPanel.tsx +1 -1
  71. package/src/views/Agents/AgentsTab.tsx +2 -2
  72. package/src/views/Agents/dictionary.ts +2 -2
  73. package/src/views/Chat/ChatMessage.tsx +6 -5
  74. package/src/views/Chat/StepsList.tsx +2 -2
  75. package/src/views/ChatHistory/utils.ts +9 -4
  76. package/src/views/KnowledgeSources.tsx +5 -5
  77. package/src/views/MessageInput/AgentSelector.tsx +17 -6
  78. package/src/views/MessageInput/ButtonGroup.tsx +3 -3
  79. package/src/views/MessageInput/QuickCommandSelector.tsx +11 -5
  80. package/src/views/MessageInput/dictionary.ts +6 -6
  81. package/src/views/Stacks.tsx +5 -5
  82. package/src/views/Workspaces/WorkspacesTab.tsx +19 -16
  83. package/src/views/Workspaces/index.tsx +4 -13
  84. package/dist/components/ListGroup.d.ts +0 -46
  85. package/dist/components/ListGroup.d.ts.map +0 -1
  86. package/dist/components/ListGroup.js.map +0 -1
  87. package/src/components/ListGroup.tsx +0 -76
@@ -1,21 +1,20 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Button, Flex, IconBox, Image, Text } from '@citric/core';
3
- import { Agent, Circle, KnowledgeSource, Stack } from '@citric/icons';
3
+ import { Agent, KnowledgeSource, Spaces, Stack } from '@citric/icons';
4
4
  import { Avatar } from '@citric/ui';
5
5
  import { workspaceAiClient } from '@stack-spot/portal-network';
6
6
  import { useTranslate } from '@stack-spot/portal-translate';
7
7
  import { useTransition } from 'react';
8
8
  import { useComponentNavigation } from '../../components/ComponentNavigator.js';
9
- import { ListGroup } from '../../components/ListGroup.js';
9
+ import { Loading } from '../../components/FallbackBoundary/Loading.js';
10
+ import { ListResource } from '../../components/ListResource.js';
10
11
  import { CardSpace, WorkspaceTabNavigator } from '../../components/WorkspaceTabNavigator.js';
11
12
  import { AgentsTab } from '../Agents/AgentsTab.js';
12
13
  import { KnowledgeSourcesTab } from '../KnowledgeSources.js';
13
14
  import { StacksTab } from '../Stacks.js';
14
15
  const SpaceCard = ({ workspaceId }) => {
15
16
  const workspace = workspaceAiClient.workspaceAi.useQuery({ id: workspaceId });
16
- return _jsxs(Flex, { flexDirection: "column", sx: { gap: '8px' }, children: [_jsxs(Flex, { alignItems: "center", sx: { gap: '4px' }, children: [workspace.logo
17
- ? _jsx(Image, { src: workspace.logo })
18
- : _jsx(Avatar, { size: "xxs", appearance: "square", sx: { bg: 'light.500' }, children: _jsx(IconBox, { children: _jsx(Circle, {}) }) }), _jsxs(Text, { appearance: "body2", weight: "medium", children: [workspace.name, " "] })] }), _jsx(Text, { colorScheme: "light.700", children: workspace.description })] });
17
+ return _jsx(Flex, { flexDirection: "column", sx: { gap: '8px' }, children: _jsxs(Flex, { flexDirection: "column", sx: { gap: '4px' }, children: [_jsxs(Flex, { alignContent: "center", alignItems: "center", sx: { gap: '8px', m: 1 }, children: [_jsx(Avatar, { size: "xxs", appearance: "square", sx: { bg: 'light.600', r: 'xxs' }, children: workspace.logo ? _jsx(Image, { src: workspace.logo }) : _jsxs(IconBox, { children: [" ", _jsx(Spaces, {}), " "] }) }), _jsxs(Text, { appearance: "body2", weight: "medium", children: [workspace.name, " "] })] }), _jsx(Text, { colorScheme: "light.700", children: workspace.description })] }) });
19
18
  };
20
19
  const showSubmitButton = false;
21
20
  export const WorkspaceResources = ({ workspaceId, allKS, agent, stack }) => {
@@ -36,7 +35,8 @@ export const WorkspaceResources = ({ workspaceId, allKS, agent, stack }) => {
36
35
  navigate({ component: 'stack', props: { visibility: 'workspace', stack, workspaceId, showSubmitButton }, fullScreen: true });
37
36
  });
38
37
  };
39
- return (_jsxs(_Fragment, { children: [workspaceId && _jsx(SpaceCard, { workspaceId: workspaceId }), _jsx(ListGroup, { list: resourceTypes, keygen: w => w.id, onClick: (resource) => { handleNavigate(resource); }, renderLabel: r => _jsx(CardSpace, { name: r.displayName, icon: r.icon, onClick: () => handleNavigate(r) }), style: { gap: '6px', display: 'flex', flexDirection: 'column', opacity: isPending ? '0.5' : '1' } })] }));
38
+ return (_jsxs(_Fragment, { children: [workspaceId && _jsx(SpaceCard, { workspaceId: workspaceId }), isPending ? _jsx(Loading, {}) :
39
+ _jsx(ListResource, { list: resourceTypes, keygen: w => w.id, renderLabel: r => _jsx(CardSpace, { name: r.displayName, icon: r.icon, onClick: () => handleNavigate(r) }), style: { gap: '6px', display: 'flex', flexDirection: 'column' } })] }));
40
40
  };
41
41
  const workspaceTabComponents = {
42
42
  workspaceResource: WorkspaceResources,
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspacesTab.js","sourceRoot":"","sources":["../../../src/views/Workspaces/WorkspacesTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspacesTab.js","sourceRoot":"","sources":["../../../src/views/Workspaces/WorkspacesTab.tsx"],"names":[],"mappings":"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"}
@@ -51,24 +51,15 @@ const WorkspacesPanel = () => {
51
51
  };
52
52
  const dictionary = {
53
53
  en: {
54
- title: 'Spaces',
55
- description: 'By selecting a space, its Knowledge Sources (KSs), Agents, Quick Commands and Stacks Ai will be consulted to generate the answers.',
56
- apply: 'Apply',
54
+ title: 'Spot',
55
+ description: 'By selecting a spot, its Knowledge Sources (KSs), Agents, Quick Commands and Stacks Ai will be consulted to generate the answers.',
57
56
  noSearchResults: "Your search didn't yield results.",
58
- noSearchResultsDescription: 'Please, try another search term.',
59
- noData: 'There are no spaces yet.',
60
- noDataDescription: 'Use the AI portal to create new spaces.',
61
57
  all: 'All',
62
58
  favorites: 'Favorites',
63
59
  },
64
60
  pt: {
65
- title: 'Spaces',
66
- description: 'Ao selecionar um space, seus Knowledge Sources (KSs), Agentes, Quick Commands e Stacks Ai serão consultados para gerar as respostas.',
67
- apply: 'Aplicar',
68
- noSearchResults: 'Sua busca não produziu resultados',
69
- noSearchResultsDescription: 'Por favor, tente outra busca.',
70
- noData: 'Ainda não há spaces.',
71
- noDataDescription: 'Use o Portal AI para criar novos spaces.',
61
+ title: 'Spot',
62
+ description: 'Ao selecionar um spot, seus Knowledge Sources (KSs), Agentes, Quick Commands e Stacks Ai serão consultados para gerar as respostas.',
72
63
  all: 'Todos',
73
64
  favorites: 'Favoritos',
74
65
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/Workspaces/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/Workspaces/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.18.0-beta.0",
3
+ "version": "1.18.0-beta.10",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,8 +12,8 @@
12
12
  "peerDependencies": {
13
13
  "@citric/core": "^6.4.0",
14
14
  "@stack-spot/portal-components": "^2.22.1",
15
- "@citric/icons": "^5.9.0",
16
- "@stack-spot/portal-network": "^0.119.0",
15
+ "@citric/icons": "^5.11.0",
16
+ "@stack-spot/portal-network": "^0.119.1",
17
17
  "@citric/ui": "^6.7.0",
18
18
  "@stack-spot/portal-theme": "^1.0.0",
19
19
  "@stack-spot/portal-translate": "^1.1.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.17.1",
4
- "date": "Tue Apr 29 2025 18:56:41 GMT-0300 (Brasilia Standard Time)",
3
+ "version": "1.18.0-beta.10",
4
+ "date": "Fri May 02 2025 11:09:02 GMT-0300 (Brasilia Standard Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -93,11 +93,11 @@
93
93
  },
94
94
  {
95
95
  "name": "@citric/icons",
96
- "version": "5.9.0(react@18.2.0)"
96
+ "version": "5.11.0(react@18.2.0)"
97
97
  },
98
98
  {
99
99
  "name": "@citric/ui",
100
- "version": "6.7.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)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(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))"
100
+ "version": "6.7.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)))(@citric/icons@5.11.0(react@18.2.0))(lodash@4.17.21)(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))"
101
101
  },
102
102
  {
103
103
  "name": "@dagrejs/dagre",
@@ -109,11 +109,11 @@
109
109
  },
110
110
  {
111
111
  "name": "@stack-spot/portal-components",
112
- "version": "2.22.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.7.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)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(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-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)"
112
+ "version": "2.22.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.11.0(react@18.2.0))(@citric/ui@6.7.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)))(@citric/icons@5.11.0(react@18.2.0))(lodash@4.17.21)(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-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)"
113
113
  },
114
114
  {
115
115
  "name": "@stack-spot/portal-network",
116
- "version": "0.119.0(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(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))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
116
+ "version": "0.119.1(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(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))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
117
117
  },
118
118
  {
119
119
  "name": "@stack-spot/portal-theme",
@@ -3,25 +3,50 @@ import { ArrowLeft } from '@citric/icons'
3
3
  import { IconButton } from '@citric/ui'
4
4
  import { createContext, useCallback, useContext, useMemo, useState } from 'react'
5
5
 
6
+ /**
7
+ * Map of string keys to React components.
8
+ */
6
9
  export type NavigationMap = Record<string, React.ComponentType<any>>
7
10
 
8
- export type NavigationItem<T extends NavigationMap, K extends keyof T = keyof T> = {
11
+ /**
12
+ * Navigation component describing which component to render and its props.
13
+ */
14
+ export type NavigationComponent<T extends NavigationMap, K extends keyof T = keyof T> = {
15
+ /** Component key to render. */
9
16
  component: K,
17
+
18
+ /** Props for the component. */
10
19
  props?: T[K] extends React.ComponentType<infer P> ? P : never,
20
+
21
+ /** Render in fullscreen mode. */
11
22
  fullScreen?: boolean,
12
23
  }
13
24
 
14
25
  export interface NavigationContextType<T extends NavigationMap> {
15
- navigate: <K extends keyof T>(item: NavigationItem<T, K>) => Promise<void>,
26
+ /** Navigate to a new component. */
27
+ navigate: <K extends keyof T>(item: NavigationComponent<T, K>) => Promise<void>,
28
+
29
+ /** Go back to previous component. */
16
30
  goBack: () => void,
31
+
32
+ /** True if can go back. */
17
33
  canGoBack: boolean,
18
- currentItem: NavigationItem<T>,
34
+
35
+ /** Current component. */
36
+ currentItem: NavigationComponent<T>,
19
37
  }
20
38
 
21
39
  export interface ComponentNavigatorProps<T extends NavigationMap, K extends keyof T> {
22
- initialItem: NavigationItem<T, K>,
40
+ /** Initial component to render. */
41
+ initialItem: NavigationComponent<T, K>,
42
+
43
+ /** Map of available components. */
23
44
  components: T,
24
- renderTitle?: (item: NavigationItem<T, keyof T>) => React.ReactNode,
45
+
46
+ /** Optional title renderer. */
47
+ renderTitle?: (item: NavigationComponent<T, keyof T>) => React.ReactNode,
48
+
49
+ /** Optional CSS class. */
25
50
  className?: string,
26
51
  }
27
52
 
@@ -33,10 +58,10 @@ export function ComponentNavigator<T extends NavigationMap, K extends keyof T>({
33
58
  renderTitle,
34
59
  className,
35
60
  }: ComponentNavigatorProps<T, K>) {
36
- const [navigationStack, setNavigationStack] = useState<NavigationItem<T>[]>([initialItem])
61
+ const [navigationStack, setNavigationStack] = useState<NavigationComponent<T>[]>([initialItem])
37
62
  const currentItem = navigationStack[navigationStack.length - 1]
38
63
 
39
- const navigate = useCallback((item: NavigationItem<T>) => { setNavigationStack((prev) => [...prev, item]) }, [])
64
+ const navigate = useCallback((item: NavigationComponent<T>) => { setNavigationStack((prev) => [...prev, item]) }, [])
40
65
  const canGoBack = navigationStack.length > 1
41
66
  const goBack = useCallback(() => {
42
67
  if (canGoBack) {
@@ -0,0 +1,60 @@
1
+ import { Box, Flex, Text } from '@citric/core'
2
+ import { WithStyle } from '@stack-spot/portal-theme'
3
+ import { useMemo } from 'react'
4
+
5
+ /**
6
+ *
7
+ * @template T Type of list item.
8
+ */
9
+ interface ListGroupProps<T> extends WithStyle {
10
+
11
+ /** Items to show. */
12
+ list: T[],
13
+
14
+ /** Render the label for an item. */
15
+ renderLabel: (item: T) => React.ReactNode,
16
+
17
+ /** Optional: element before label. */
18
+ renderBeforeElement?: (item: T) => React.ReactNode,
19
+
20
+ /** Optional: element after label. */
21
+ renderAfterElement?: (item: T) => React.ReactNode,
22
+
23
+ /** Optional: custom class name per item. */
24
+ optionClassName?: (item: T) => string | undefined,
25
+
26
+ /** Optional: custom style per item. */
27
+ optionStyle?: (item: T) => React.CSSProperties | undefined,
28
+
29
+ /** Unique key for each item. */
30
+ keygen: (item: T) => React.Key,
31
+ }
32
+
33
+ /**
34
+ * Renders a customizable list of items.
35
+ *
36
+ * @template T Type of list item.
37
+ */
38
+ export function ListResource<T>({ list, renderLabel, renderBeforeElement, renderAfterElement, className, keygen, style }
39
+ : ListGroupProps<T>) {
40
+ const items = useMemo(() =>
41
+ list.map((listItem) => {
42
+ const label = renderLabel(listItem)
43
+ const content = typeof label === 'string' ? <Text>{label}</Text> : label
44
+ return (
45
+ <li key={keygen(listItem)}>
46
+ <Flex alignItems="center">
47
+ {renderBeforeElement?.(listItem)}
48
+ {content}
49
+ {renderAfterElement?.(listItem)}
50
+ </Flex>
51
+ </li>
52
+ )
53
+ }), [list])
54
+
55
+ return (
56
+ <Box as="ul" m={0} p={0} w={12} style={style} className={className}>
57
+ {items}
58
+ </Box>
59
+ )
60
+ }
@@ -269,7 +269,7 @@ const dictionary = {
269
269
  account: 'Account',
270
270
  shared: 'Shared',
271
271
  builtIn: 'Built-in',
272
- workspace: 'Space',
272
+ workspace: 'Spot',
273
273
  error: 'Could not load the $0s.',
274
274
  noData: 'You don\'t have any $0 yet.',
275
275
  noResults: 'There are no $0s to show here.',
@@ -281,7 +281,7 @@ const dictionary = {
281
281
  personal: 'Pessoal',
282
282
  account: 'Conta',
283
283
  shared: 'Compartilhado',
284
- workspace: 'Space',
284
+ workspace: 'Spot',
285
285
  builtIn: 'Embutido',
286
286
  error: 'Não foi possível carregar os $0s.',
287
287
  noData: 'Você ainda não possui $0s.',
@@ -1,5 +1,5 @@
1
- import { Box, Flex, IconBox, Text } from '@citric/core'
2
- import { ArrowRight, Circle, Search, Times } from '@citric/icons'
1
+ import { Box, Flex, IconBox, Image, Text } from '@citric/core'
2
+ import { ArrowRight, Search, Spaces, Times } from '@citric/icons'
3
3
  import { Avatar, IconButton } from '@citric/ui'
4
4
  import { Placeholder } from '@stack-spot/portal-components/Placeholder'
5
5
  import { workspaceAiClient } from '@stack-spot/portal-network'
@@ -8,11 +8,18 @@ import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
8
8
  import { memo, useMemo, useState } from 'react'
9
9
  import { useRightPanel } from '../right-panel/hooks'
10
10
  import { ButtonFavorite } from './ButtonFavorite'
11
- import { ComponentNavigator, ComponentNavigatorProps, NavigationItem, NavigationMap, useComponentNavigation } from './ComponentNavigator'
11
+ import { ComponentNavigator, ComponentNavigatorProps, NavigationComponent, NavigationMap, useComponentNavigation } from './ComponentNavigator'
12
12
  import { IconInput } from './IconInput'
13
- import { ListGroup } from './ListGroup'
13
+ import { ListResource } from './ListResource'
14
14
 
15
- export const CardSpace = ({ onClick, name, icon }: { onClick: VoidFunction, name: string, icon: React.ReactElement }) =>
15
+ interface CardSpaceProps {
16
+ onClick: VoidFunction,
17
+ name: string,
18
+ icon: React.ReactElement,
19
+ logoUrl?: string | null,
20
+ }
21
+
22
+ export const CardSpace = ({ onClick, name, icon, logoUrl }: CardSpaceProps) =>
16
23
  <Flex
17
24
  onClick={onClick}
18
25
  flex={1}
@@ -24,13 +31,11 @@ export const CardSpace = ({ onClick, name, icon }: { onClick: VoidFunction, name
24
31
  p={3}
25
32
  sx={{ cursor: 'pointer' }}
26
33
  >
27
- <Flex alignContent="center" alignItems="center" sx={{ gap: '8px' }} >
28
- <Avatar size="xxs" appearance="square" sx={{ bg: 'light.600', r: 'xxs' }}>
29
- <IconBox>
30
- {icon}
31
- </IconBox>
34
+ <Flex alignContent="center" alignItems="center" sx={{ gap: '8px', m: 1 }} >
35
+ <Avatar size="xxs" appearance="square" sx={{ bg: 'light.600', r: 'xxs' }}>
36
+ {logoUrl ? <Image src={logoUrl} /> : <IconBox> {icon} </IconBox>}
32
37
  </Avatar>
33
- <Text>{name}</Text>
38
+ <Text appearance="body2">{name}</Text>
34
39
  </Flex>
35
40
  <IconButton><ArrowRight /></IconButton>
36
41
  </Flex>
@@ -89,14 +94,13 @@ const WorkspaceSourcesTab = ({ visibility, onClick }: WorkspaceSourcesTabProps)
89
94
  <Box w={12}>
90
95
  <IconInput icon={<Search />} value={filter} onChange={setFilter} className="search" />
91
96
  </Box>
97
+
92
98
  {!!filtered.length &&
93
- <ListGroup
99
+ <ListResource
94
100
  list={filtered}
95
101
  keygen={w => w.id}
96
- onClick={onClick}
97
102
  style={{ gap: '6px', display: 'flex', flexDirection: 'column' }}
98
- renderLabel={w => <CardSpace name={w.name} icon={<Circle />} onClick={() => onClick(w)} />}
99
- renderDescription={w => w.description}
103
+ renderLabel={w => <CardSpace name={w.name} logoUrl={w.logo} icon={<Spaces />} onClick={() => onClick(w)} />}
100
104
  renderAfterElement={(w) =>
101
105
  <ButtonFavorite favorite={{ idOrSlug: w?.id, listFavorites, onAddFavorite, onRemoveFavorite }} />}
102
106
  optionClassName={w => (filter && !w.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
@@ -106,29 +110,30 @@ const WorkspaceSourcesTab = ({ visibility, onClick }: WorkspaceSourcesTabProps)
106
110
  className="option-list"
107
111
  />
108
112
  }
109
- {!!workspaces.length && !filtered.length &&
110
- <Placeholder title={t.noSearchResults} description={t.noSearchResultsDescription} className="no-data-placeholder" />}
111
- {!workspaces.length && <Placeholder title={t.noData} description={t.noDataDescription} />}
113
+ <Box w={12}>
114
+ {!!workspaces.length && !filtered.length &&
115
+ <Placeholder title={t.noSearchResults} description={t.noSearchResultsDescription} className="no-data-placeholder" />}
116
+ {!workspaces.length && <Placeholder title={t.noData} description={t.noDataDescription} />}
117
+ </Box>
112
118
  </>
113
119
  )
114
120
  }
115
121
 
116
122
 
117
- const WorkspaceHeader = <T extends NavigationMap, K extends keyof T>({ data }: { data: NavigationItem<T, K> }) => {
123
+ const WorkspaceHeader = <T extends NavigationMap, K extends keyof T>({ data }: { data: NavigationComponent<T, K> }) => {
118
124
  const { close: closeRightPanel } = useRightPanel()
119
125
  const workspaceId = (data.props as any)['workspaceId']
120
126
  if (!workspaceId) return
121
127
 
122
128
  const workspace = workspaceAiClient.workspaceAi.useQuery({ id: workspaceId })
123
129
  return <Flex justifyContent="space-between" alignItems="center" flex={1}>
124
- {data.component === 'workspaceResource' ? 'Spaces' : workspace.name}
130
+ {data.component === 'workspaceResource' ? 'Spots' : workspace.name}
125
131
  {data.fullScreen && <IconButton title={'t.close'} aria-label={'t.close'} onClick={closeRightPanel}> <Times /> </IconButton>}
126
132
  </Flex>
127
133
  }
128
134
 
129
-
130
135
  interface WorkspaceTabNavigatorProps {
131
- getNavigateParam: (workspace: WorkspaceResponse) => NavigationItem<NavigationMap, string>,
136
+ getNavigateParam: (workspace: WorkspaceResponse) => NavigationComponent<NavigationMap, string>,
132
137
  visibility?: WorkspaceVisibilityLevelEnum,
133
138
  className?: string,
134
139
  }
@@ -164,7 +169,7 @@ const dictionary = {
164
169
  noSearchResultsDescription: 'Por favor, tente outra busca.',
165
170
  noData: 'Ainda não há spaces.',
166
171
  noDataDescription: 'Use o Portal AI para criar novos spaces.',
167
- apply: 'Apply',
172
+ apply: 'Aplicar',
168
173
  },
169
174
  } satisfies Dictionary
170
175
 
@@ -11,17 +11,17 @@ import { CheckProps } from './types'
11
11
  * The description in placed under the label and checkbox as an accordion.
12
12
  */
13
13
  export function DescribedCheckboxGroup<T>({
14
- keygen,
15
- onChange,
16
- options,
17
- renderDescription,
18
- renderLabel,
19
- renderBeforeElement,
20
- renderAfterElement,
21
- optionClassName,
22
- optionStyle,
23
- value,
24
- className,
14
+ keygen,
15
+ onChange,
16
+ options,
17
+ renderDescription,
18
+ renderLabel,
19
+ renderBeforeElement,
20
+ renderAfterElement,
21
+ optionClassName,
22
+ optionStyle,
23
+ value,
24
+ className,
25
25
  style }: CheckProps<T>) {
26
26
  const t = useTranslate(dictionary)
27
27
  const allSelected = options.length > 0 && options.every(option => value.includes(option))
@@ -67,7 +67,7 @@ export function DescribedCheckboxGroup<T>({
67
67
  }), [options, value])
68
68
 
69
69
  return <RadioCheckBox style={style} className={className}>
70
- <Flex as="li" alignItems="center" sx={{ pl: 4 }}>
70
+ <Flex as="li" alignItems="center" ml={3} pl={1}>
71
71
  <Checkbox
72
72
  checked={allSelected}
73
73
  onChange={handleSelectAll}
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /* Attention: in order for the package "page" to work without linking the lib, we must export types separately, using the "type" keyword */
2
2
 
3
+ export { ProgressBar } from './components/ProgressBar'
3
4
  export { QuickStartButton } from './components/QuickStartButton'
4
5
  export { AIWidgetProvider } from './context/AIWidgetProvider'
5
6
  export * from './context/hooks'
@@ -7,6 +8,7 @@ export { getFeaturesWithDefaults } from './features'
7
8
  export type { AIWidgetFeatures, ChatFeatures } from './features'
8
9
  export { StackspotAIWidget } from './StackspotAIWidget'
9
10
  export { ChatEntry } from './state/ChatEntry'
11
+ export type { ChatAction } from './state/ChatEntry'
10
12
  export { ChatState } from './state/ChatState'
11
13
  export type { MessageInterceptor } from './state/ChatState'
12
14
  export { ChatTabsController } from './state/ChatTabsController'
@@ -144,6 +144,10 @@ export interface TextChatEntry {
144
144
  maxLength?: number,
145
145
  pattern?: string,
146
146
  },
147
+ /**
148
+ * Valid for input types.
149
+ */
150
+ initialValue?: string[],
147
151
  }
148
152
 
149
153
  type ChatEntryListener = (value: TextChatEntry) => void
@@ -30,7 +30,7 @@ export const AgentsPanel = () => {
30
30
  { title: t.builtin, content: <AgentsTab key="builtin" visibility="BUILT-IN" agent={agent} /> },
31
31
  { title: t.personal, content: <AgentsTab key="personal" visibility="PERSONAL" agent={agent} /> },
32
32
  { title: t.shared, content: <AgentsTab key="shared" visibility="SHARED" agent={agent} /> },
33
- { title: t.spaces, content: <AgentsTabWorkspace key="workspace" visibility="WORKSPACE" agent={agent} /> },
33
+ { title: t.spots, content: <AgentsTabWorkspace key="workspace" visibility="WORKSPACE" agent={agent} /> },
34
34
  { title: t.account, content: <AgentsTab key="account" visibility="ACCOUNT" agent={agent} /> },
35
35
 
36
36
  ], [t, isTrial, agent])
@@ -7,7 +7,7 @@ import { AgentResponse, VisibilityLevel } from '@stack-spot/portal-network/api/a
7
7
  import { WorkspaceResponse } from '@stack-spot/portal-network/api/workspace-ai'
8
8
  import { useCallback, useMemo, useState } from 'react'
9
9
  import { ButtonFavorite } from '../../components/ButtonFavorite'
10
- import { NavigationItem } from '../../components/ComponentNavigator'
10
+ import { NavigationComponent } from '../../components/ComponentNavigator'
11
11
  import { DescribedRadioGroup } from '../../components/form/DescribedRadioGroup'
12
12
  import { IconInput } from '../../components/IconInput'
13
13
  import { WorkspaceTabNavigator } from '../../components/WorkspaceTabNavigator'
@@ -119,7 +119,7 @@ export const AgentsTab = ({ visibility, workspaceId, agent, showSubmitButton = t
119
119
  export function AgentsTabWorkspace({ agent, visibility, showSubmitButton }: AgentTabProps) {
120
120
  const workspaceTabComponents = useMemo(() => ({ agent: AgentsTab }), [agent])
121
121
 
122
- const buildNavigateParams = (workspace: WorkspaceResponse): NavigationItem<typeof workspaceTabComponents> => ({
122
+ const buildNavigateParams = (workspace: WorkspaceResponse): NavigationComponent<typeof workspaceTabComponents> => ({
123
123
  component: 'agent',
124
124
  props: { visibility, workspaceId: workspace.id, agent, showSubmitButton },
125
125
  })
@@ -17,7 +17,7 @@ const dictionary = {
17
17
  description: 'Description',
18
18
  favorites: 'Favorites',
19
19
  tools: 'Tools',
20
- spaces: 'Spaces',
20
+ spots: 'Spots',
21
21
  },
22
22
  pt: {
23
23
  title: 'Agentes',
@@ -35,7 +35,7 @@ const dictionary = {
35
35
  description: 'Descrição',
36
36
  favorites: 'Favoritos',
37
37
  tools: 'Ferramentas',
38
- spaces: 'Spaces',
38
+ spots: 'Spots',
39
39
 
40
40
  },
41
41
  } satisfies Dictionary
@@ -61,7 +61,8 @@ const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }
61
61
 
62
62
  const renderInputs = () => {
63
63
  if (entry.type === 'input-text') {
64
- return <Input name={entry.name}
64
+ return <Input name={entry.name}
65
+ value={value[0] ?? ''}
65
66
  sx={{ maxWidth: '500px' }}
66
67
  autoFocus
67
68
  {...entry.validations} onChange={(data) => setValue([data.target.value])} required={entry.required} />
@@ -113,7 +114,7 @@ const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }
113
114
 
114
115
  if (entry.type === 'input-checkbox') {
115
116
  return <Flex className="checkbox-group">
116
- {entry.options?.map((option) => (<Flex w={6} key={option.label} alignItems="center" className="checkbox-item">
117
+ {entry.options?.map((option) => (<Flex as="label" w={6} key={option.label} alignItems="center" className="checkbox-item">
117
118
  <Checkbox name={entry.name} key={option.label} onChange={(data) => {
118
119
  if (data.target.checked) {
119
120
  setValue([...value, option.label])
@@ -159,8 +160,8 @@ const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }
159
160
  export const ChatMessage = ({ message, username, isLast }: Props) => {
160
161
  const t = useTranslate(dictionary)
161
162
  const [liked, setLiked] = useState<boolean | undefined>()
162
- const [value, setValue] = useState<string[]>([])
163
- const [labels, setLabels] = useState<string[]>([])
163
+ const [value, setValue] = useState<string[]>(message.getValue()?.initialValue ?? [])
164
+ const [labels, setLabels] = useState<string[]>(message.getValue()?.initialValue ?? [])
164
165
  const entry = useChatEntry(message)
165
166
  const dateFormatter = useDateFormatter()
166
167
  const userInfo = entry.agentType === 'user' ? <Avatar size="xs">{username}</Avatar> : <AgentInfo agent={entry.agent} />
@@ -267,7 +268,7 @@ export const ChatMessage = ({ message, username, isLast }: Props) => {
267
268
  }
268
269
 
269
270
  return (entry.content || entry.error || !!entry.steps?.length) && (
270
- <li className={entry.agentType} ref={ref}>
271
+ <li key={entry.messageId} className={entry.agentType} ref={ref}>
271
272
  <div className="chat-message" ref={chatRef} onKeyDown={handleKeyDown} tabIndex={0}>
272
273
  <div className={`user-info ${entry.agentType}`}>{userInfo}</div>
273
274
  {(entry.content || entry.steps) && <div className={listToClass(['message-content', entry.card && 'card', entry.type])}>
@@ -1,5 +1,5 @@
1
1
  import { Button, IconBox, Text } from '@citric/core'
2
- import { CheckCircleFill, Circle, PlayFill, TimesCircleFill } from '@citric/icons'
2
+ import { CheckCircleFill, PlayFill, Spaces, TimesCircleFill } from '@citric/icons'
3
3
  import { LoadingCircular } from '@citric/ui'
4
4
  import { AnimatedHeight } from '@stack-spot/portal-components/AnimatedHeight'
5
5
  import { ChatStep, StepChatStep } from '@stack-spot/portal-network'
@@ -27,7 +27,7 @@ function getStatusIcon(status: ChatStep['status']) {
27
27
  switch (status) {
28
28
  case 'error': return <IconBox {...iconBoxProps}><TimesCircleFill /></IconBox>
29
29
  case 'success': return <IconBox {...iconBoxProps}><CheckCircleFill /></IconBox>
30
- case 'pending': return <IconBox {...iconBoxProps}><Circle /></IconBox>
30
+ case 'pending': return <IconBox {...iconBoxProps}><Spaces /></IconBox>
31
31
  case 'running': return <LoadingCircular className="loading" colorScheme="inverse" size="xs" />
32
32
  }
33
33
  }
@@ -44,14 +44,19 @@ export async function findWorkspace(id: string | null): Promise<ChatProperties['
44
44
  */
45
45
  export async function getAllAgents(): Promise<LabeledWithImage[]> {
46
46
  try {
47
- const [agents, publicAgents, workspaceAgents] = await Promise.all([
48
- agentClient.agents.query({}),
47
+ const [agentsAccount, agentsPersonal, agentsShared, publicAgents, workspaceAgents] = await Promise.all([
48
+ agentClient.agents.query({ visibility: 'ACCOUNT' }),
49
+ agentClient.agents.query({ visibility: 'PERSONAL' }),
50
+ agentClient.agents.query({ visibility: 'SHARED' }),
49
51
  agentClient.publicAgents.query({}),
52
+
50
53
  workspaceAiClient.workspacesContentsByType.query({ contentType: 'agent' }),
51
54
  ])
52
-
55
+
56
+ const workspaceAgentsAsArray = workspaceAgents.flatMap(({ agents }) => agents)
53
57
  const builtInAgents = publicAgents.map((a) => ({ id: a.id, label: a.name, image: a.avatar, slug: a.slug, builtIn: true }))
54
- return [...agents, ... workspaceAgents.agents].map(a => ({ id: a.id, label: a.name, image: a.avatar, slug: a.slug, builtIn: false }))
58
+ return [...agentsAccount, ...agentsPersonal, ...agentsShared, ...workspaceAgentsAsArray]
59
+ .map(a => ({ id: a?.id, label: a?.name, image: a?.avatar, slug: a?.slug, builtIn: false }))
55
60
  .concat(builtInAgents)
56
61
  } catch (error) {
57
62
  // eslint-disable-next-line no-console