@stack-spot/ai-chat-widget 1.0.0-dev.1768586708953 → 1.0.0-dev.1768591614779
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/dist/StackspotAIWidget.d.ts.map +1 -1
- package/dist/StackspotAIWidget.js +2 -1
- package/dist/StackspotAIWidget.js.map +1 -1
- package/dist/app-metadata.json +2 -2
- package/dist/components/FreemiumSensitiveDataInfo.d.ts +2 -0
- package/dist/components/FreemiumSensitiveDataInfo.d.ts.map +1 -0
- package/dist/components/FreemiumSensitiveDataInfo.js +24 -0
- package/dist/components/FreemiumSensitiveDataInfo.js.map +1 -0
- package/dist/components/TabManager.d.ts.map +1 -1
- package/dist/components/TabManager.js +10 -3
- package/dist/components/TabManager.js.map +1 -1
- package/package.json +1 -1
- package/src/StackspotAIWidget.tsx +4 -2
- package/src/app-metadata.json +2 -2
- package/src/components/FreemiumSensitiveDataInfo.tsx +36 -0
- package/src/components/TabManager.tsx +13 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackspotAIWidget.d.ts","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"StackspotAIWidget.d.ts","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAgBxD,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAE,aAAa;IAC7D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,uMAiBzB,aAAa,4CAkDjB,CAAA"}
|
|
@@ -22,6 +22,7 @@ import { Stacks } from './views/Stacks.js';
|
|
|
22
22
|
import { Steps } from './views/Steps/index.js';
|
|
23
23
|
import { Tools } from './views/Tools.js';
|
|
24
24
|
import { Workspaces } from './views/Workspaces/index.js';
|
|
25
|
+
import { FreemiumSensitiveDataInfo } from './components/FreemiumSensitiveDataInfo.js';
|
|
25
26
|
/**
|
|
26
27
|
* Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
|
|
27
28
|
* of the Chat Widget will be instantiated and used.
|
|
@@ -38,6 +39,6 @@ export const StackspotAIWidget = ({ username, initialAgents, minimizedActions =
|
|
|
38
39
|
? _jsx(MinimizedHeader, { ...minimizedActions })
|
|
39
40
|
: _jsx(ChatTabSelection, { buttons: tabButtons }) }), _jsxs("div", { className: "chat-container", ref: chatWindowRef, children: [_jsxs("div", { className: "chat-content", children: [prefix, isCurrentChatEmpty
|
|
40
41
|
? (children ?? _jsx(Home, { username: username, initialAgents: initialAgents, urlCreateAgent: urlCreateAgent }))
|
|
41
|
-
: _jsx(Chat, { username: username, beforeMessage: beforeMessage, afterMessage: afterMessage, customRenderer: customRenderer })] }), features.messageInput && _jsx(MessageInput, { chatWindowRef: chatWindowRef, customInputMessage: customInputMessage }), suffix] })] }), _jsx(Stacks, {}), !isTrial && _jsx(Workspaces, {}), _jsx(KnowledgeSources, {}), _jsx(KSDocument, {}), _jsx(Agents, {}), _jsx(Editor, {}), _jsx(ChatHistory, {}), _jsx(Steps, {}), _jsx(Tools, {}), _jsx(Resources, {}), _jsx("div", { className: "chat-right-panel", ref: rightPanelRef, children: _jsx(RightPanel, {}) })] }) }) })), [isCurrentChatEmpty, username, isMinimized, children, initialAgents, suffix, className, tabButtons]);
|
|
42
|
+
: _jsx(Chat, { username: username, beforeMessage: beforeMessage, afterMessage: afterMessage, customRenderer: customRenderer })] }), features.messageInput && _jsx(MessageInput, { chatWindowRef: chatWindowRef, customInputMessage: customInputMessage }), suffix, _jsx(FreemiumSensitiveDataInfo, {})] })] }), _jsx(Stacks, {}), !isTrial && _jsx(Workspaces, {}), _jsx(KnowledgeSources, {}), _jsx(KSDocument, {}), _jsx(Agents, {}), _jsx(Editor, {}), _jsx(ChatHistory, {}), _jsx(Steps, {}), _jsx(Tools, {}), _jsx(Resources, {}), _jsx("div", { className: "chat-right-panel", ref: rightPanelRef, children: _jsx(RightPanel, {}) })] }) }) })), [isCurrentChatEmpty, username, isMinimized, children, initialAgents, suffix, className, tabButtons]);
|
|
42
43
|
};
|
|
43
44
|
//# sourceMappingURL=StackspotAIWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackspotAIWidget.js","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAa,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"StackspotAIWidget.js","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAa,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AA8ClF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EACE,QAAQ,EACR,aAAa,EACb,gBAAgB,GAAG,EAAE,EACrB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,cAAc,GACA,EAChB,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;IACjD,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAEhD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACnB,KAAC,gBAAgB,cACf,KAAC,kBAAkB,IAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,YACjE,eAAK,SAAS,EAAE,WAAW,CAAC,CAAC,gBAAgB,EAAE,WAAW,IAAI,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,EAAC,IAAI,EAAC,KAAK,EAAE,KAAK,aACjH,eAAK,SAAS,EAAC,aAAa,EAAC,GAAG,EAAE,aAAa,aAC5C,SAAS,IAAI,4BACX,WAAW;oCACV,CAAC,CAAC,KAAC,eAAe,OAAK,gBAAgB,GAAI;oCAC3C,CAAC,CAAC,KAAC,gBAAgB,IAAC,OAAO,EAAE,UAAU,GAAI,GAE5C,EAEH,eAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,aAAa,aAChD,eAAK,SAAS,EAAC,cAAc,aAC1B,MAAM,EACN,kBAAkB;gDACjB,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,GAAI,CAAC;gDAC1G,CAAC,CAAC,KAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,GAAI,IAEtH,EACL,QAAQ,CAAC,YAAY,IAAI,KAAC,YAAY,IAAC,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,GAAI,EAC/G,MAAM,EACP,KAAC,yBAAyB,KAAG,IACzB,IACF,EACN,KAAC,MAAM,KAAG,EACT,CAAC,OAAO,IAAI,KAAC,UAAU,KAAG,EAC3B,KAAC,gBAAgB,KAAG,EACpB,KAAC,UAAU,KAAG,EACd,KAAC,MAAM,KAAG,EACV,KAAC,MAAM,KAAG,EACV,KAAC,WAAW,KAAG,EACf,KAAC,KAAK,KAAG,EACT,KAAC,KAAK,KAAG,EACT,KAAC,SAAS,KAAG,EACb,cAAK,SAAS,EAAC,kBAAkB,EAAC,GAAG,EAAE,aAAa,YAAE,KAAC,UAAU,KAAG,GAAM,IACtE,GACa,GACJ,CACpB,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AACzG,CAAC,CAAA"}
|
package/dist/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "1.0.0-dev.
|
|
4
|
-
"date": "Fri Jan 16 2026
|
|
3
|
+
"version": "1.0.0-dev.1768591614779",
|
|
4
|
+
"date": "Fri Jan 16 2026 19:27:01 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FreemiumSensitiveDataInfo.d.ts","sourceRoot":"","sources":["../../src/components/FreemiumSensitiveDataInfo.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,2DAkBrC,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Column, Icon, Link, Row, Text } from '@stack-spot/citric-react';
|
|
3
|
+
import { useTranslate } from '@stack-spot/portal-translate';
|
|
4
|
+
import { checkIsTrial } from '../utils/check-is-trial.js';
|
|
5
|
+
export const FreemiumSensitiveDataInfo = () => {
|
|
6
|
+
const isTrial = checkIsTrial();
|
|
7
|
+
const t = useTranslate(dictionary);
|
|
8
|
+
if (isTrial)
|
|
9
|
+
return;
|
|
10
|
+
return (_jsxs(Row, { gap: 8, pb: 3, pt: 3, w: "100%", justifyContent: "center", alignItems: "center", children: [_jsx(Column, { children: _jsx(Icon, { icon: "InfoCircle", color: "light.700" }) }), _jsxs("div", { children: [_jsx(Text, { style: { lineHeight: '14px', marginRight: '2px' }, color: "light.700", appearance: "microtext1", children: t.information }), _jsx(Link, { target: "_blank", color: "light.700", style: { lineHeight: '14px' }, appearance: "microtext1", href: t.policiesLink, children: t.seePolices })] })] }));
|
|
11
|
+
};
|
|
12
|
+
const dictionary = {
|
|
13
|
+
en: {
|
|
14
|
+
information: 'For personal use only. Avoid entering corporate or sensitive data.',
|
|
15
|
+
seePolices: 'View Terms and Conditions',
|
|
16
|
+
policiesLink: 'https://stackspot.com/en/stackspot-terms-and-conditions-ai',
|
|
17
|
+
},
|
|
18
|
+
pt: {
|
|
19
|
+
information: 'Conta para uso pessoal. Evite inserir dados corporativos ou sensíveis.',
|
|
20
|
+
seePolices: 'Ver Termos e Condições',
|
|
21
|
+
policiesLink: 'https://stackspot.com/pt/termos-e-condicoes-da-plataforma-stackspot-ai',
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=FreemiumSensitiveDataInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FreemiumSensitiveDataInfo.js","sourceRoot":"","sources":["../../src/components/FreemiumSensitiveDataInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,IAAI,OAAO;QAAE,OAAM;IAEnB,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAC,MAAM,EAAC,cAAc,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,aAC7E,KAAC,MAAM,cACL,KAAC,IAAI,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,WAAW,GAAG,GACrC,EACT,0BACE,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAC,WAAW,EAAC,UAAU,EAAC,YAAY,YAAE,CAAC,CAAC,WAAW,GAAQ,EACzH,KAAC,IAAI,IAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAC,YAAY,EAAC,IAAI,EAAE,CAAC,CAAC,YAAY,YAChH,CAAC,CAAC,UAAU,GACR,IACH,IACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,WAAW,EAAE,oEAAoE;QACjF,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,4DAA4D;KAC3E;IACD,EAAE,EAAE;QACF,WAAW,EAAE,wEAAwE;QACrF,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,wEAAwE;KACvF;CACO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabManager.d.ts","sourceRoot":"","sources":["../../src/components/TabManager.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,UAAU,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,GAAG;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;IACxB;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;CAC7C;AAqGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,GAAG,EACjD,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAY,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"TabManager.d.ts","sourceRoot":"","sources":["../../src/components/TabManager.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,UAAU,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,GAAG;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;IACxB;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;CAC7C;AAqGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,GAAG,EACjD,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAY,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,2CAgFvF"}
|
|
@@ -5,7 +5,7 @@ import { Button, IconButton } from '@stack-spot/citric-react';
|
|
|
5
5
|
import { listToClass, theme } from '@stack-spot/portal-theme';
|
|
6
6
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
7
7
|
import { last } from 'lodash';
|
|
8
|
-
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
8
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
9
|
import { styled } from 'styled-components';
|
|
10
10
|
import { FadingOverflow } from './FadingOverflow.js';
|
|
11
11
|
// The size of extra buttons placed after the tabs.
|
|
@@ -115,6 +115,7 @@ export function TabManager({ active, tabs, keygen, onRemove, onSelect, renderLab
|
|
|
115
115
|
const t = useTranslate(dictionary);
|
|
116
116
|
const tabList = useRef(null);
|
|
117
117
|
const lastNumberOfTabs = useRef(tabs.length);
|
|
118
|
+
const [ariaMessage, setAriaMessage] = useState('');
|
|
118
119
|
const onClickTab = useCallback((event) => {
|
|
119
120
|
const target = event.target;
|
|
120
121
|
if (target.tagName === 'LI')
|
|
@@ -125,7 +126,11 @@ export function TabManager({ active, tabs, keygen, onRemove, onSelect, renderLab
|
|
|
125
126
|
? renderLabel(tab)
|
|
126
127
|
: `${t.tab} ${idx + 1}`;
|
|
127
128
|
return (_jsxs("li", { className: keygen(tab) === active ? 'active' : undefined, onClick: onClickTab, children: [_jsx("button", { className: "label", "aria-label": `${t.chat} ${tabLabel}`, onClick: () => onSelect(tab), children: _jsx(FadingOverflow, { children: renderLabel(tab) }) }), tabs.length > 1 &&
|
|
128
|
-
_jsx(IconButton, { appearance: "text", icon: "TimesMini", "aria-label": `${tabLabel}`, title: t.close, onClick: () =>
|
|
129
|
+
_jsx(IconButton, { appearance: "text", icon: "TimesMini", "aria-label": `${tabLabel}`, title: t.close, onClick: () => {
|
|
130
|
+
onRemove(tab), setAriaMessage(`${t.chat} ${tabLabel} ${t.closed}`);
|
|
131
|
+
// Clears the message after a short time to prevent it from repeating
|
|
132
|
+
setTimeout(() => setAriaMessage(''), 1000);
|
|
133
|
+
} })] }, keygen(tab)));
|
|
129
134
|
}), [tabs, active]);
|
|
130
135
|
const extras = useMemo(() => buttons.map(({ ariaLabel, title, label, onClick, group, icon, appearance, size, className, style, disabled }) => label
|
|
131
136
|
? _jsxs(Button, { style: { marginRight: '4px', ...style }, colorScheme: "light", size: "md", title: title || label, onClick: onClick, disabled: disabled, children: [_jsx(Icon, { group: group, icon: icon }), label] }, ariaLabel)
|
|
@@ -138,18 +143,20 @@ export function TabManager({ active, tabs, keygen, onRemove, onSelect, renderLab
|
|
|
138
143
|
}
|
|
139
144
|
lastNumberOfTabs.current = tabs.length;
|
|
140
145
|
}, [tabs]);
|
|
141
|
-
return (_jsxs(Tabs, { "$numberOfExtraButtons": buttons.length, className: "tabs", children: [_jsx(FadingOverflow, { className: "list-overflow", scroll: "arrows", enableHorizontalScrollWithVerticalWheel: true, children: _jsx("ul", { ref: tabList, children: tabItems }) }), extras] }));
|
|
146
|
+
return (_jsxs(Tabs, { "$numberOfExtraButtons": buttons.length, className: "tabs", children: [_jsx("div", { "aria-live": "polite", "aria-atomic": "true", style: { position: 'absolute', left: '-9999px', width: '1px', height: '1px', overflow: 'hidden' }, children: ariaMessage }), _jsx(FadingOverflow, { className: "list-overflow", scroll: "arrows", enableHorizontalScrollWithVerticalWheel: true, children: _jsx("ul", { ref: tabList, children: tabItems }) }), extras] }));
|
|
142
147
|
}
|
|
143
148
|
const dictionary = {
|
|
144
149
|
en: {
|
|
145
150
|
close: 'Close',
|
|
146
151
|
tab: 'Tab',
|
|
147
152
|
chat: 'Chat',
|
|
153
|
+
closed: 'Closed',
|
|
148
154
|
},
|
|
149
155
|
pt: {
|
|
150
156
|
close: 'Fechar',
|
|
151
157
|
tab: 'Aba',
|
|
152
158
|
chat: 'Chat',
|
|
159
|
+
closed: 'Fechado',
|
|
153
160
|
},
|
|
154
161
|
};
|
|
155
162
|
//# sourceMappingURL=TabManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabManager.js","sourceRoot":"","sources":["../../src/components/TabManager.tsx"],"names":[],"mappings":";AAAA,2CAA2C;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TabManager.js","sourceRoot":"","sources":["../../src/components/TabManager.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -24,6 +24,7 @@ import { Stacks } from './views/Stacks'
|
|
|
24
24
|
import { Steps } from './views/Steps'
|
|
25
25
|
import { Tools } from './views/Tools'
|
|
26
26
|
import { Workspaces } from './views/Workspaces'
|
|
27
|
+
import { FreemiumSensitiveDataInfo } from './components/FreemiumSensitiveDataInfo'
|
|
27
28
|
|
|
28
29
|
export interface AIWidgetProps extends WithStyle, CustomMessage {
|
|
29
30
|
/**
|
|
@@ -99,13 +100,13 @@ export const StackspotAIWidget = (
|
|
|
99
100
|
const isCurrentChatEmpty = currentChat.length === 0
|
|
100
101
|
const isTrial = checkIsTrial()
|
|
101
102
|
const features = useCurrentChatState('features')
|
|
102
|
-
|
|
103
|
+
|
|
103
104
|
return useMemo(() => (
|
|
104
105
|
<FallbackBoundary>
|
|
105
106
|
<RightPanelProvider chatWindow={chatWindowRef} panel={rightPanelRef}>
|
|
106
107
|
<div className={listToClass(['ai-chat-widget', isMinimized && 'minimized', className])} translate="no" style={style}>
|
|
107
108
|
<div className="chat-window" ref={chatWindowRef}>
|
|
108
|
-
{hasHeader
|
|
109
|
+
{hasHeader && <>
|
|
109
110
|
{isMinimized
|
|
110
111
|
? <MinimizedHeader {...minimizedActions} />
|
|
111
112
|
: <ChatTabSelection buttons={tabButtons} />
|
|
@@ -122,6 +123,7 @@ export const StackspotAIWidget = (
|
|
|
122
123
|
</div>
|
|
123
124
|
{features.messageInput && <MessageInput chatWindowRef={chatWindowRef} customInputMessage={customInputMessage} />}
|
|
124
125
|
{suffix}
|
|
126
|
+
<FreemiumSensitiveDataInfo />
|
|
125
127
|
</div>
|
|
126
128
|
</div>
|
|
127
129
|
<Stacks />
|
package/src/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "1.0.0-dev.
|
|
4
|
-
"date": "Fri Jan 16 2026
|
|
3
|
+
"version": "1.0.0-dev.1768591614779",
|
|
4
|
+
"date": "Fri Jan 16 2026 19:27:01 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Column, Icon, Link, Row, Text } from '@stack-spot/citric-react'
|
|
2
|
+
import { useTranslate } from '@stack-spot/portal-translate'
|
|
3
|
+
import { checkIsTrial } from '../utils/check-is-trial'
|
|
4
|
+
|
|
5
|
+
export const FreemiumSensitiveDataInfo = () => {
|
|
6
|
+
const isTrial = checkIsTrial()
|
|
7
|
+
const t = useTranslate(dictionary)
|
|
8
|
+
if (isTrial) return
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Row gap={8} pb={3} pt={3} w="100%" justifyContent="center" alignItems="center">
|
|
12
|
+
<Column>
|
|
13
|
+
<Icon icon="InfoCircle" color="light.700" />
|
|
14
|
+
</Column>
|
|
15
|
+
<div>
|
|
16
|
+
<Text style={{ lineHeight: '14px', marginRight: '2px' }} color="light.700" appearance="microtext1">{t.information}</Text>
|
|
17
|
+
<Link target="_blank" color="light.700" style={{ lineHeight: '14px' }} appearance="microtext1" href={t.policiesLink}>
|
|
18
|
+
{t.seePolices}
|
|
19
|
+
</Link>
|
|
20
|
+
</div>
|
|
21
|
+
</Row>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const dictionary = {
|
|
26
|
+
en: {
|
|
27
|
+
information: 'For personal use only. Avoid entering corporate or sensitive data.',
|
|
28
|
+
seePolices: 'View Terms and Conditions',
|
|
29
|
+
policiesLink: 'https://stackspot.com/en/stackspot-terms-and-conditions-ai',
|
|
30
|
+
},
|
|
31
|
+
pt: {
|
|
32
|
+
information: 'Conta para uso pessoal. Evite inserir dados corporativos ou sensíveis.',
|
|
33
|
+
seePolices: 'Ver Termos e Condições',
|
|
34
|
+
policiesLink: 'https://stackspot.com/pt/termos-e-condicoes-da-plataforma-stackspot-ai',
|
|
35
|
+
},
|
|
36
|
+
} as const
|
|
@@ -5,7 +5,7 @@ import { Button, IconButton } from '@stack-spot/citric-react'
|
|
|
5
5
|
import { listToClass, theme } from '@stack-spot/portal-theme'
|
|
6
6
|
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
7
7
|
import { last } from 'lodash'
|
|
8
|
-
import { useCallback, useEffect, useMemo, useRef } from 'react'
|
|
8
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
9
9
|
import { styled } from 'styled-components'
|
|
10
10
|
import { ButtonAction } from '../types'
|
|
11
11
|
import { FadingOverflow } from './FadingOverflow'
|
|
@@ -152,6 +152,7 @@ export function TabManager<T, Key extends React.Key>(
|
|
|
152
152
|
const t = useTranslate(dictionary)
|
|
153
153
|
const tabList = useRef<HTMLUListElement>(null)
|
|
154
154
|
const lastNumberOfTabs = useRef(tabs.length)
|
|
155
|
+
const [ariaMessage, setAriaMessage] = useState('')
|
|
155
156
|
|
|
156
157
|
const onClickTab = useCallback((event: React.MouseEvent<HTMLElement, MouseEvent>) => {
|
|
157
158
|
const target = event.target as HTMLElement
|
|
@@ -170,7 +171,10 @@ export function TabManager<T, Key extends React.Key>(
|
|
|
170
171
|
</button>
|
|
171
172
|
{tabs.length > 1 &&
|
|
172
173
|
<IconButton appearance="text" icon="TimesMini" aria-label={`${tabLabel}`}
|
|
173
|
-
title={t.close}
|
|
174
|
+
title={t.close} onClick={() => { onRemove(tab), setAriaMessage(`${t.chat} ${tabLabel} ${t.closed}`)
|
|
175
|
+
|
|
176
|
+
// Clears the message after a short time to prevent it from repeating
|
|
177
|
+
setTimeout(() => setAriaMessage(''), 1000)}} />}
|
|
174
178
|
</li>
|
|
175
179
|
)}), [tabs, active])
|
|
176
180
|
|
|
@@ -212,6 +216,11 @@ export function TabManager<T, Key extends React.Key>(
|
|
|
212
216
|
|
|
213
217
|
return (
|
|
214
218
|
<Tabs $numberOfExtraButtons={buttons.length} className="tabs">
|
|
219
|
+
<div
|
|
220
|
+
aria-live="polite" aria-atomic="true"
|
|
221
|
+
style={{ position: 'absolute', left: '-9999px', width: '1px', height: '1px', overflow: 'hidden' }}>
|
|
222
|
+
{ariaMessage}
|
|
223
|
+
</div>
|
|
215
224
|
<FadingOverflow className="list-overflow" scroll="arrows" enableHorizontalScrollWithVerticalWheel>
|
|
216
225
|
<ul ref={tabList}>{tabItems}</ul>
|
|
217
226
|
</FadingOverflow>
|
|
@@ -225,11 +234,13 @@ const dictionary = {
|
|
|
225
234
|
close: 'Close',
|
|
226
235
|
tab: 'Tab',
|
|
227
236
|
chat: 'Chat',
|
|
237
|
+
closed: 'Closed',
|
|
228
238
|
},
|
|
229
239
|
pt: {
|
|
230
240
|
close: 'Fechar',
|
|
231
241
|
tab: 'Aba',
|
|
232
242
|
chat: 'Chat',
|
|
243
|
+
closed: 'Fechado',
|
|
233
244
|
},
|
|
234
245
|
} satisfies Dictionary
|
|
235
246
|
|