@vc-shell/framework 1.2.3-beta.0 → 1.2.3-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.
- package/core/plugins/ai-agent/components/VcAiAgentPanel.vue +2 -2
- package/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue +2 -82
- package/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue +107 -77
- package/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue +72 -0
- package/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue +136 -0
- package/core/plugins/ai-agent/composables/useAiAgentContext.ts +8 -3
- package/core/plugins/ai-agent/constants.ts +89 -89
- package/core/plugins/ai-agent/services/ai-agent-service.ts +23 -0
- package/core/plugins/ai-agent/types.ts +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue.d.ts +7 -0
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue.d.ts +15 -0
- package/dist/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts +3 -3
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/types.d.ts +1 -1
- package/dist/framework.js +3466 -3407
- package/dist/index.css +1 -1
- package/dist/locales/de.json +3 -0
- package/dist/locales/en.json +3 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -43,7 +43,7 @@ if (!aiAgentService) {
|
|
|
43
43
|
|
|
44
44
|
// Destructure service properties
|
|
45
45
|
const config = computed(
|
|
46
|
-
() => aiAgentService?.config.value ?? { url: "", title: "AI Assistant", width:
|
|
46
|
+
() => aiAgentService?.config.value ?? { url: "", title: "AI Assistant", width: 362, expandedWidth: 500 },
|
|
47
47
|
);
|
|
48
48
|
const isOpen = computed(() => aiAgentService?.isOpen.value ?? false);
|
|
49
49
|
const isExpanded = computed(() => aiAgentService?.isExpanded.value ?? false);
|
|
@@ -51,7 +51,7 @@ const totalItemsCount = computed(() => aiAgentService?.totalItemsCount.value ??
|
|
|
51
51
|
|
|
52
52
|
// Panel style with dynamic width
|
|
53
53
|
const panelStyle = computed(() => ({
|
|
54
|
-
width: isExpanded.value ? "50%" : `${config.value.width ??
|
|
54
|
+
width: isExpanded.value ? "50%" : `${config.value.width ?? 362}px`,
|
|
55
55
|
}));
|
|
56
56
|
|
|
57
57
|
// Panel control methods
|
|
@@ -1,88 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="vc-ai-agent-header">
|
|
3
3
|
<div class="vc-ai-agent-header__icon">
|
|
4
|
-
<
|
|
5
|
-
width="22"
|
|
6
|
-
height="24"
|
|
7
|
-
viewBox="0 0 22 24"
|
|
8
|
-
fill="none"
|
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
-
>
|
|
11
|
-
<path
|
|
12
|
-
d="M8.92406 0.537357C10.165 -0.179119 11.6939 -0.179119 12.9349 0.537357L19.8535 4.5319C21.0945 5.24838 21.8589 6.57248 21.8589 8.00543V15.9945C21.8589 17.4275 21.0945 18.7516 19.8535 19.4681L12.9349 23.4626C11.6939 24.1791 10.165 24.1791 8.92406 23.4626L2.00541 19.4681C0.764459 18.7516 0 17.4275 0 15.9945V8.00543C0 6.57248 0.764459 5.24838 2.00541 4.5319L8.92406 0.537357Z"
|
|
13
|
-
fill="white"
|
|
14
|
-
/>
|
|
15
|
-
<g
|
|
16
|
-
clip-path="url(#paint0_angular_1004_8813_clip_path)"
|
|
17
|
-
data-figma-skip-parse="true"
|
|
18
|
-
>
|
|
19
|
-
<g transform="matrix(0 -0.0359275 0.0356829 0 10.9297 12.0001)">
|
|
20
|
-
<foreignObject
|
|
21
|
-
x="-334.01"
|
|
22
|
-
y="-334.01"
|
|
23
|
-
width="668.02"
|
|
24
|
-
height="668.02"
|
|
25
|
-
><div
|
|
26
|
-
xmlns="http://www.w3.org/1999/xhtml"
|
|
27
|
-
style="
|
|
28
|
-
background: conic-gradient(
|
|
29
|
-
from 90deg,
|
|
30
|
-
rgba(255, 149, 51, 1) 0deg,
|
|
31
|
-
rgba(255, 79, 187, 1) 43.2deg,
|
|
32
|
-
rgba(155, 255, 79, 1) 143.654deg,
|
|
33
|
-
rgba(28, 145, 252, 1) 252.692deg,
|
|
34
|
-
rgba(154, 45, 248, 1) 316.8deg,
|
|
35
|
-
rgba(255, 149, 51, 1) 360deg
|
|
36
|
-
);
|
|
37
|
-
height: 100%;
|
|
38
|
-
width: 100%;
|
|
39
|
-
opacity: 1;
|
|
40
|
-
"
|
|
41
|
-
></div
|
|
42
|
-
></foreignObject>
|
|
43
|
-
</g>
|
|
44
|
-
</g>
|
|
45
|
-
<path
|
|
46
|
-
fill-rule="evenodd"
|
|
47
|
-
clip-rule="evenodd"
|
|
48
|
-
d="M16.4395 10.6925C17.4389 12.4342 17.5855 14.7605 17.0781 17.0412C16.5847 19.2587 15.479 21.3907 14.002 22.8459L12.9346 23.463C11.6937 24.1793 10.1647 24.1794 8.92383 23.463L4.81641 21.091C6.48014 21.2357 8.24755 21.0003 9.87402 20.4474C12.1457 19.6751 14.1798 18.2734 15.2773 16.3839C16.7064 13.9237 16.7787 11.8621 16.2246 10.339C16.296 10.4538 16.3694 10.5705 16.4395 10.6925ZM12.5723 6.5646C14.5851 6.56993 16.7106 7.56255 18.4668 9.09488C20.0162 10.4468 21.2529 12.1974 21.8594 14.0041V15.9943C21.8594 17.4272 21.0944 18.7514 19.8535 19.4679L15.4492 22.0109C16.4736 20.6151 17.2295 18.9083 17.6182 17.1613C18.1443 14.7966 18.0091 12.3169 16.9189 10.4171C15.5014 7.94691 13.7497 6.85357 12.1523 6.57339C12.2894 6.56875 12.4294 6.56423 12.5723 6.5646ZM0 11.2697C0.704632 12.7816 1.7891 14.1898 3.0791 15.3166C4.87894 16.8885 7.10461 17.9397 9.28906 17.9455C12.1367 17.9529 13.9586 16.9824 15 15.7394C14.9357 15.8599 14.8712 15.9836 14.7998 16.1066C13.7886 17.8473 11.8825 19.1804 9.69531 19.924C7.65984 20.6159 5.41309 20.7847 3.47656 20.3175L2.00586 19.4679C0.764906 18.7514 0 17.4272 0 15.9943V11.2697ZM5.95215 2.2521C5.01991 3.60523 4.37186 5.22291 4.0625 6.87613C3.62624 9.20794 3.85535 11.6456 4.94141 13.5382C6.36156 16.013 8.11707 17.1052 9.7168 17.383C9.57761 17.3878 9.43521 17.3931 9.29004 17.3927C7.27637 17.3873 5.17407 16.4121 3.44238 14.8996C1.82788 13.4893 0.56156 11.633 0 9.71988V8.00601C0 6.57306 0.764906 5.24885 2.00586 4.53238L5.95215 2.2521ZM11.3975 7.05093C12.0141 7.06601 12.6881 7.21751 13.376 7.5607C13.0837 7.49777 12.8006 7.49218 12.5459 7.55679L12.6816 8.09292C13.0083 8.00995 13.4967 8.1005 14.0215 8.41421C14.538 8.72301 15.057 9.23022 15.4326 9.91909C15.7285 10.4617 15.9343 11.1225 15.9805 11.8918C15.8889 11.6052 15.7517 11.3555 15.5674 11.1662L15.1709 11.5519C15.406 11.7933 15.5727 12.2611 15.5635 12.8722C15.5543 13.4739 15.3736 14.1772 14.9648 14.8468C14.642 15.3757 14.171 15.8854 13.5254 16.3107C13.73 16.0867 13.8799 15.8413 13.9521 15.5851L13.4189 15.4347C13.3275 15.7591 13.0058 16.1381 12.4717 16.4357C11.9461 16.7285 11.2471 16.9236 10.4629 16.9044C9.84516 16.8893 9.1696 16.7382 8.48047 16.3937C8.77503 16.4579 9.06081 16.4638 9.31738 16.3986L9.18066 15.8625C8.85403 15.9453 8.36539 15.8557 7.84082 15.5421C7.32436 15.2334 6.80623 14.7251 6.43066 14.0363C6.13467 13.4934 5.92691 12.8324 5.88086 12.0626C5.97253 12.3504 6.11088 12.6013 6.2959 12.7912L6.69141 12.4044C6.45639 12.163 6.28955 11.6951 6.29883 11.0841C6.30799 10.4824 6.48868 9.77922 6.89746 9.10952C7.21926 8.58233 7.68762 8.07306 8.33008 7.64859C8.12755 7.87138 7.97995 8.11577 7.9082 8.37027L8.44141 8.52066C8.53286 8.19625 8.8546 7.81729 9.38867 7.51968C9.91427 7.22684 10.6133 7.0318 11.3975 7.05093ZM8.92383 0.537258C10.1647 -0.179152 11.6937 -0.17902 12.9346 0.537258L16.832 2.78726C15.2289 2.68408 13.5406 2.93545 11.9824 3.47671C9.71315 4.26504 7.68197 5.68288 6.58496 7.57144C5.15353 10.0358 5.08346 12.1004 5.64062 13.6242C5.56755 13.507 5.49251 13.3876 5.4209 13.2628C4.41748 11.5142 4.18713 9.21872 4.60645 6.97769C4.99237 4.91536 5.92418 2.92968 7.26758 1.49331L8.92383 0.537258ZM12.1641 4.00015C14.0959 3.32907 16.2174 3.13043 18.084 3.51089L19.8535 4.53238C21.0944 5.24887 21.8594 6.57311 21.8594 8.00601V12.5626C21.1452 11.1171 20.0805 9.7689 18.8301 8.67788C17.0078 7.08795 14.7586 6.01663 12.5732 6.01089C9.72539 6.00349 7.90267 6.97374 6.86133 8.21695C6.92577 8.09606 6.9918 7.97218 7.06348 7.84878C8.07528 6.10725 9.97945 4.75906 12.1641 4.00015Z"
|
|
49
|
-
data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":1.0,"g":0.58431375026702881,"b":0.20000000298023224,"a":1.0},"position":0.0},{"color":{"r":1.0,"g":0.30980393290519714,"b":0.73333334922790527,"a":1.0},"position":0.11999999731779099},{"color":{"r":0.60888892412185669,"g":1.0,"b":0.30980393290519714,"a":1.0},"position":0.39903846383094788},{"color":{"r":0.10980392247438431,"g":0.56862747669219971,"b":0.98823529481887817,"a":1.0},"position":0.70192307233810425},{"color":{"r":0.60392159223556519,"g":0.17647059261798859,"b":0.97254902124404907,"a":1.0},"position":0.87999999523162842},{"color":{"r":1.0,"g":0.58431375026702881,"b":0.20000000298023224,"a":1.0},"position":1.0}],"stopsVar":[{"color":{"r":1.0,"g":0.58431375026702881,"b":0.20000000298023224,"a":1.0},"position":0.0},{"color":{"r":1.0,"g":0.30980393290519714,"b":0.73333334922790527,"a":1.0},"position":0.11999999731779099},{"color":{"r":0.60888892412185669,"g":1.0,"b":0.30980393290519714,"a":1.0},"position":0.39903846383094788},{"color":{"r":0.10980392247438431,"g":0.56862747669219971,"b":0.98823529481887817,"a":1.0},"position":0.70192307233810425},{"color":{"r":0.60392159223556519,"g":0.17647059261798859,"b":0.97254902124404907,"a":1.0},"position":0.87999999523162842},{"color":{"r":1.0,"g":0.58431375026702881,"b":0.20000000298023224,"a":1.0},"position":1.0}],"transform":{"m00":3.8149642949888984e-13,"m01":71.365898132324219,"m02":-24.753261566162109,"m10":-71.855010986328125,"m11":-5.4860135260525328e-14,"m12":47.927650451660156},"opacity":1.0,"blendMode":"NORMAL","visible":true}"
|
|
50
|
-
/>
|
|
51
|
-
<path
|
|
52
|
-
d="M16.0431 12.0324C16.0431 13.3654 16.5272 15.8012 13.4845 18.4291C14.5218 16.2507 12.419 17.1497 10.9259 17.1497C8.09967 17.1497 5.80859 14.8586 5.80859 12.0324C5.80859 9.20615 8.09967 6.91504 10.9259 6.91504C13.752 6.91504 16.0431 9.20615 16.0431 12.0324Z"
|
|
53
|
-
fill="white"
|
|
54
|
-
/>
|
|
55
|
-
<ellipse
|
|
56
|
-
cx="10.9283"
|
|
57
|
-
cy="12.0328"
|
|
58
|
-
rx="0.898978"
|
|
59
|
-
ry="0.898992"
|
|
60
|
-
fill="#6C6C6C"
|
|
61
|
-
/>
|
|
62
|
-
<ellipse
|
|
63
|
-
cx="13.4849"
|
|
64
|
-
cy="12.0328"
|
|
65
|
-
rx="0.898978"
|
|
66
|
-
ry="0.898992"
|
|
67
|
-
fill="#6C6C6C"
|
|
68
|
-
/>
|
|
69
|
-
<ellipse
|
|
70
|
-
cx="8.36968"
|
|
71
|
-
cy="12.0328"
|
|
72
|
-
rx="0.898978"
|
|
73
|
-
ry="0.898992"
|
|
74
|
-
fill="#6C6C6C"
|
|
75
|
-
/>
|
|
76
|
-
<defs>
|
|
77
|
-
<clipPath id="paint0_angular_1004_8813_clip_path">
|
|
78
|
-
<path
|
|
79
|
-
fill-rule="evenodd"
|
|
80
|
-
clip-rule="evenodd"
|
|
81
|
-
d="M16.4395 10.6925C17.4389 12.4342 17.5855 14.7605 17.0781 17.0412C16.5847 19.2587 15.479 21.3907 14.002 22.8459L12.9346 23.463C11.6937 24.1793 10.1647 24.1794 8.92383 23.463L4.81641 21.091C6.48014 21.2357 8.24755 21.0003 9.87402 20.4474C12.1457 19.6751 14.1798 18.2734 15.2773 16.3839C16.7064 13.9237 16.7787 11.8621 16.2246 10.339C16.296 10.4538 16.3694 10.5705 16.4395 10.6925ZM12.5723 6.5646C14.5851 6.56993 16.7106 7.56255 18.4668 9.09488C20.0162 10.4468 21.2529 12.1974 21.8594 14.0041V15.9943C21.8594 17.4272 21.0944 18.7514 19.8535 19.4679L15.4492 22.0109C16.4736 20.6151 17.2295 18.9083 17.6182 17.1613C18.1443 14.7966 18.0091 12.3169 16.9189 10.4171C15.5014 7.94691 13.7497 6.85357 12.1523 6.57339C12.2894 6.56875 12.4294 6.56423 12.5723 6.5646ZM0 11.2697C0.704632 12.7816 1.7891 14.1898 3.0791 15.3166C4.87894 16.8885 7.10461 17.9397 9.28906 17.9455C12.1367 17.9529 13.9586 16.9824 15 15.7394C14.9357 15.8599 14.8712 15.9836 14.7998 16.1066C13.7886 17.8473 11.8825 19.1804 9.69531 19.924C7.65984 20.6159 5.41309 20.7847 3.47656 20.3175L2.00586 19.4679C0.764906 18.7514 0 17.4272 0 15.9943V11.2697ZM5.95215 2.2521C5.01991 3.60523 4.37186 5.22291 4.0625 6.87613C3.62624 9.20794 3.85535 11.6456 4.94141 13.5382C6.36156 16.013 8.11707 17.1052 9.7168 17.383C9.57761 17.3878 9.43521 17.3931 9.29004 17.3927C7.27637 17.3873 5.17407 16.4121 3.44238 14.8996C1.82788 13.4893 0.56156 11.633 0 9.71988V8.00601C0 6.57306 0.764906 5.24885 2.00586 4.53238L5.95215 2.2521ZM11.3975 7.05093C12.0141 7.06601 12.6881 7.21751 13.376 7.5607C13.0837 7.49777 12.8006 7.49218 12.5459 7.55679L12.6816 8.09292C13.0083 8.00995 13.4967 8.1005 14.0215 8.41421C14.538 8.72301 15.057 9.23022 15.4326 9.91909C15.7285 10.4617 15.9343 11.1225 15.9805 11.8918C15.8889 11.6052 15.7517 11.3555 15.5674 11.1662L15.1709 11.5519C15.406 11.7933 15.5727 12.2611 15.5635 12.8722C15.5543 13.4739 15.3736 14.1772 14.9648 14.8468C14.642 15.3757 14.171 15.8854 13.5254 16.3107C13.73 16.0867 13.8799 15.8413 13.9521 15.5851L13.4189 15.4347C13.3275 15.7591 13.0058 16.1381 12.4717 16.4357C11.9461 16.7285 11.2471 16.9236 10.4629 16.9044C9.84516 16.8893 9.1696 16.7382 8.48047 16.3937C8.77503 16.4579 9.06081 16.4638 9.31738 16.3986L9.18066 15.8625C8.85403 15.9453 8.36539 15.8557 7.84082 15.5421C7.32436 15.2334 6.80623 14.7251 6.43066 14.0363C6.13467 13.4934 5.92691 12.8324 5.88086 12.0626C5.97253 12.3504 6.11088 12.6013 6.2959 12.7912L6.69141 12.4044C6.45639 12.163 6.28955 11.6951 6.29883 11.0841C6.30799 10.4824 6.48868 9.77922 6.89746 9.10952C7.21926 8.58233 7.68762 8.07306 8.33008 7.64859C8.12755 7.87138 7.97995 8.11577 7.9082 8.37027L8.44141 8.52066C8.53286 8.19625 8.8546 7.81729 9.38867 7.51968C9.91427 7.22684 10.6133 7.0318 11.3975 7.05093ZM8.92383 0.537258C10.1647 -0.179152 11.6937 -0.17902 12.9346 0.537258L16.832 2.78726C15.2289 2.68408 13.5406 2.93545 11.9824 3.47671C9.71315 4.26504 7.68197 5.68288 6.58496 7.57144C5.15353 10.0358 5.08346 12.1004 5.64062 13.6242C5.56755 13.507 5.49251 13.3876 5.4209 13.2628C4.41748 11.5142 4.18713 9.21872 4.60645 6.97769C4.99237 4.91536 5.92418 2.92968 7.26758 1.49331L8.92383 0.537258ZM12.1641 4.00015C14.0959 3.32907 16.2174 3.13043 18.084 3.51089L19.8535 4.53238C21.0944 5.24887 21.8594 6.57311 21.8594 8.00601V12.5626C21.1452 11.1171 20.0805 9.7689 18.8301 8.67788C17.0078 7.08795 14.7586 6.01663 12.5732 6.01089C9.72539 6.00349 7.90267 6.97374 6.86133 8.21695C6.92577 8.09606 6.9918 7.97218 7.06348 7.84878C8.07528 6.10725 9.97945 4.75906 12.1641 4.00015Z"
|
|
82
|
-
/>
|
|
83
|
-
</clipPath>
|
|
84
|
-
</defs>
|
|
85
|
-
</svg>
|
|
4
|
+
<VcVirtoOzLogo :width="22" :height="24" show-dots />
|
|
86
5
|
</div>
|
|
87
6
|
|
|
88
7
|
<div class="vc-ai-agent-header__wrapper">
|
|
@@ -123,6 +42,7 @@
|
|
|
123
42
|
|
|
124
43
|
<script lang="ts" setup>
|
|
125
44
|
import { VcIcon } from "../../../../../ui/components";
|
|
45
|
+
import VcVirtoOzLogo from "./VcVirtoOzLogo.vue";
|
|
126
46
|
|
|
127
47
|
defineProps<{
|
|
128
48
|
title?: string;
|
|
@@ -1,77 +1,107 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="vc-ai-agent-iframe">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="vc-ai-agent-iframe">
|
|
3
|
+
<!-- Loading overlay -->
|
|
4
|
+
<Transition name="fade">
|
|
5
|
+
<VcAiAgentLoader v-if="isLoading && url" :text="$t('AI_AGENT.LOADING')" />
|
|
6
|
+
</Transition>
|
|
7
|
+
|
|
8
|
+
<iframe
|
|
9
|
+
v-if="url"
|
|
10
|
+
ref="iframeRef"
|
|
11
|
+
:src="url"
|
|
12
|
+
class="vc-ai-agent-iframe__frame"
|
|
13
|
+
:class="{ 'vc-ai-agent-iframe__frame--loading': isLoading }"
|
|
14
|
+
sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox"
|
|
15
|
+
allow="clipboard-read; clipboard-write"
|
|
16
|
+
@load="onLoad"
|
|
17
|
+
/>
|
|
18
|
+
<div v-else class="vc-ai-agent-iframe__placeholder">
|
|
19
|
+
<VcIcon icon="lucide-sparkles" size="xl" class="vc-ai-agent-iframe__placeholder-icon" />
|
|
20
|
+
<p class="vc-ai-agent-iframe__placeholder-text">AI Agent URL not configured</p>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
|
|
25
|
+
<script lang="ts" setup>
|
|
26
|
+
import { ref, onMounted, watch } from "vue";
|
|
27
|
+
import { VcIcon } from "../../../../../ui/components";
|
|
28
|
+
import VcAiAgentLoader from "./VcAiAgentLoader.vue";
|
|
29
|
+
|
|
30
|
+
const props = defineProps<{
|
|
31
|
+
url: string;
|
|
32
|
+
}>();
|
|
33
|
+
|
|
34
|
+
const emit = defineEmits<{
|
|
35
|
+
(e: "iframe-ready", iframe: HTMLIFrameElement): void;
|
|
36
|
+
}>();
|
|
37
|
+
|
|
38
|
+
const iframeRef = ref<HTMLIFrameElement | null>(null);
|
|
39
|
+
const isLoading = ref(true);
|
|
40
|
+
|
|
41
|
+
// Emit iframe ref as soon as it's available in the DOM (before @load)
|
|
42
|
+
// This is critical because chatbot sends CHAT_READY before @load fires
|
|
43
|
+
watch(iframeRef, (iframe) => {
|
|
44
|
+
if (iframe) {
|
|
45
|
+
emit("iframe-ready", iframe);
|
|
46
|
+
}
|
|
47
|
+
}, { immediate: true });
|
|
48
|
+
|
|
49
|
+
const onLoad = () => {
|
|
50
|
+
// Hide loader after iframe loads
|
|
51
|
+
isLoading.value = false;
|
|
52
|
+
console.debug("[VcAiAgentIframe] Iframe loaded");
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
onMounted(() => {
|
|
56
|
+
// Emit again on mount in case watch didn't catch it
|
|
57
|
+
if (iframeRef.value) {
|
|
58
|
+
emit("iframe-ready", iframeRef.value);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Reset loading state when URL changes
|
|
63
|
+
watch(() => props.url, () => {
|
|
64
|
+
isLoading.value = true;
|
|
65
|
+
});
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<style lang="scss">
|
|
69
|
+
// Fade transition
|
|
70
|
+
.fade-enter-active,
|
|
71
|
+
.fade-leave-active {
|
|
72
|
+
transition: opacity 0.3s ease;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.fade-enter-from,
|
|
76
|
+
.fade-leave-to {
|
|
77
|
+
opacity: 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.vc-ai-agent-iframe {
|
|
81
|
+
@apply tw-w-full tw-h-full tw-flex tw-flex-col tw-relative;
|
|
82
|
+
|
|
83
|
+
&__frame {
|
|
84
|
+
@apply tw-w-full tw-h-full tw-border-0 tw-flex-1;
|
|
85
|
+
background-color: var(--ai-panel-iframe-bg, var(--additional-50));
|
|
86
|
+
transition: opacity 0.3s ease;
|
|
87
|
+
|
|
88
|
+
&--loading {
|
|
89
|
+
opacity: 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&__placeholder {
|
|
94
|
+
@apply tw-w-full tw-h-full tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-4;
|
|
95
|
+
background-color: var(--ai-panel-placeholder-bg, var(--neutrals-50));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&__placeholder-icon {
|
|
99
|
+
color: var(--ai-panel-placeholder-icon-color, var(--neutrals-300));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&__placeholder-text {
|
|
103
|
+
@apply tw-text-sm tw-m-0;
|
|
104
|
+
color: var(--ai-panel-placeholder-text-color, var(--neutrals-500));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
</style>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="vc-ai-agent-loader">
|
|
3
|
+
<div class="vc-ai-agent-loader__content">
|
|
4
|
+
<div class="vc-ai-agent-loader__logo">
|
|
5
|
+
<VcVirtoOzLogo :width="80" :height="87" animated />
|
|
6
|
+
</div>
|
|
7
|
+
<p v-if="text" class="vc-ai-agent-loader__text">{{ text }}</p>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script lang="ts" setup>
|
|
13
|
+
import VcVirtoOzLogo from "./VcVirtoOzLogo.vue";
|
|
14
|
+
|
|
15
|
+
export interface Props {
|
|
16
|
+
/** Loading text to display */
|
|
17
|
+
text?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
defineProps<Props>();
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<style lang="scss">
|
|
24
|
+
@keyframes virto-oz-float {
|
|
25
|
+
0%,
|
|
26
|
+
100% {
|
|
27
|
+
transform: translateY(0);
|
|
28
|
+
}
|
|
29
|
+
50% {
|
|
30
|
+
transform: translateY(-6px);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@keyframes virto-oz-glow {
|
|
35
|
+
0%,
|
|
36
|
+
100% {
|
|
37
|
+
filter: drop-shadow(0 4px 15px rgba(255, 149, 51, 0.4));
|
|
38
|
+
}
|
|
39
|
+
25% {
|
|
40
|
+
filter: drop-shadow(0 4px 15px rgba(255, 79, 187, 0.4));
|
|
41
|
+
}
|
|
42
|
+
50% {
|
|
43
|
+
filter: drop-shadow(0 4px 15px rgba(28, 145, 252, 0.4));
|
|
44
|
+
}
|
|
45
|
+
75% {
|
|
46
|
+
filter: drop-shadow(0 4px 15px rgba(154, 45, 248, 0.4));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.vc-ai-agent-loader {
|
|
51
|
+
@apply tw-absolute tw-inset-0 tw-flex tw-items-center tw-justify-center tw-z-10;
|
|
52
|
+
background: linear-gradient(
|
|
53
|
+
135deg,
|
|
54
|
+
var(--additional-50) 0%,
|
|
55
|
+
var(--neutrals-50) 100%
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
&__content {
|
|
59
|
+
@apply tw-flex tw-flex-col tw-items-center tw-gap-5;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&__logo {
|
|
63
|
+
animation: virto-oz-float 2.5s ease-in-out infinite,
|
|
64
|
+
virto-oz-glow 4s linear infinite;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&__text {
|
|
68
|
+
@apply tw-text-sm tw-m-0 tw-font-medium;
|
|
69
|
+
color: var(--neutrals-600);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
</style>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
:width="width"
|
|
4
|
+
:height="height"
|
|
5
|
+
viewBox="0 0 99 108"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
class="vc-virto-oz-logo"
|
|
9
|
+
>
|
|
10
|
+
<!-- White hexagon background -->
|
|
11
|
+
<path
|
|
12
|
+
d="M40.1199 2.41576C45.6989 -0.805254 52.5724 -0.805253 58.1514 2.41576L89.2556 20.3738C94.8345 23.5948 98.2713 29.5475 98.2713 35.9895V71.9055C98.2713 78.3475 94.8345 84.3002 89.2556 87.5212L58.1514 105.479C52.5724 108.7 45.6989 108.7 40.1199 105.479L9.01574 87.5212C3.43678 84.3002 0 78.3475 0 71.9055V35.9895C0 29.5475 3.43678 23.5948 9.01574 20.3738L40.1199 2.41576Z"
|
|
13
|
+
fill="white"
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+
<!-- Static gradient spiral pattern (using foreignObject with conic-gradient) -->
|
|
17
|
+
<g v-if="!animated" :clip-path="`url(#${clipPathId})`">
|
|
18
|
+
<g transform="matrix(0 -0.161514 0.160417 0 49.1357 53.9479)">
|
|
19
|
+
<foreignObject x="-334.01" y="-334.01" width="668.02" height="668.02">
|
|
20
|
+
<div
|
|
21
|
+
xmlns="http://www.w3.org/1999/xhtml"
|
|
22
|
+
style="background: conic-gradient(from 90deg, rgba(255, 149, 51, 1) 0deg, rgba(255, 79, 187, 1) 43.2deg, rgba(234, 255, 79, 1) 143.654deg, rgba(28, 145, 252, 1) 252.692deg, rgba(154, 45, 248, 1) 316.8deg, rgba(255, 149, 51, 1) 360deg); height: 100%; width: 100%; opacity: 1;"
|
|
23
|
+
/>
|
|
24
|
+
</foreignObject>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
|
|
28
|
+
<!-- Animated gradient spiral pattern (using linearGradient with animate) -->
|
|
29
|
+
<path
|
|
30
|
+
v-else
|
|
31
|
+
d="M72.9199 46.4165C73.2527 46.9495 73.5831 47.4996 73.9092 48.0679C78.4022 55.8976 79.0605 66.3551 76.7793 76.6079C74.5635 86.5668 69.6096 96.1504 62.9795 102.692L58.1514 105.48C52.5725 108.701 45.699 108.701 40.1201 105.48L21.665 94.8247C29.1398 95.4723 37.0781 94.4072 44.3848 91.9233C54.5984 88.4512 63.7463 82.1497 68.6807 73.6548C75.124 62.5619 75.4351 53.2694 72.9199 46.4165ZM56.5205 29.5093C65.5697 29.5331 75.1259 33.9964 83.0215 40.8853C89.9848 46.9608 95.5441 54.8286 98.2715 62.9478V71.9058C98.2715 78.3478 94.8348 84.301 89.2559 87.522L69.4658 98.9468C74.0688 92.6731 77.4601 84.9996 79.207 77.1479C81.5723 66.517 80.9666 55.3703 76.0654 46.8296C69.6817 35.7054 61.7917 30.789 54.6006 29.5396C55.2271 29.5179 55.867 29.5076 56.5205 29.5093ZM0 50.688C3.16812 57.476 8.04614 63.7935 13.8389 68.853C21.9305 75.9204 31.9368 80.6465 41.7578 80.6724C54.5833 80.706 62.7851 76.3308 67.4629 70.728C67.1684 71.2812 66.8584 71.8408 66.5303 72.4058C61.9844 80.2318 53.417 86.2251 43.584 89.5679C34.4355 92.6779 24.3375 93.4401 15.6328 91.3423L9.01562 87.522C3.43667 84.301 0 78.3478 0 71.9058V50.688ZM26.7559 10.1313C22.5672 16.2131 19.6599 23.483 18.2695 30.9126C16.3077 41.3962 17.3358 52.3558 22.2188 60.8647C28.6034 71.9905 36.4946 76.9061 43.6865 78.1548C43.0594 78.1765 42.4188 78.1868 41.7646 78.1851C32.7113 78.1612 23.2602 73.7801 15.4746 66.98C8.2197 60.6434 2.52684 52.3035 0 43.7075V35.9897C6.33247e-05 29.5479 3.43687 23.5955 9.01562 20.3745L26.7559 10.1313ZM51.2432 31.6978C54.0287 31.7659 57.0796 32.4389 60.1875 33.9976C58.8529 33.7029 57.5584 33.677 56.3965 33.9722L57.0088 36.3833C58.4774 36.0102 60.6741 36.4134 63.0332 37.8237C65.3553 39.212 67.6865 41.4953 69.375 44.5923C70.7081 47.0376 71.6489 50.015 71.8535 53.4839C71.4414 52.1828 70.818 51.0505 69.9824 50.1929L68.2012 51.9282C69.2585 53.0135 70.0076 55.1176 69.9658 57.8657C69.9246 60.5708 69.1121 63.731 67.2744 66.7417C65.8225 69.1203 63.7129 71.4251 60.8086 73.3374C61.7311 72.329 62.4012 71.2217 62.7266 70.0679L60.333 69.3931C59.9218 70.8514 58.4742 72.5523 56.0732 73.8901C53.71 75.207 50.5672 76.0837 47.041 75.9976C44.2551 75.9294 41.204 75.2549 38.0957 73.6958C39.4307 73.9907 40.7254 74.0184 41.8877 73.7231L41.2754 71.312C39.8069 71.6851 37.6101 71.2818 35.251 69.8716C32.9289 68.4834 30.5977 66.2 28.9092 63.103C27.5754 60.6565 26.6337 57.6775 26.4297 54.2065C26.8418 55.5096 27.4661 56.6438 28.3027 57.5024L30.084 55.7661C29.0267 54.6807 28.2775 52.5767 28.3193 49.8286C28.3606 47.1236 29.173 43.9633 31.0107 40.9526C32.4621 38.5751 34.5702 36.2706 37.4727 34.3589C36.5514 35.3666 35.8827 36.4736 35.5576 37.6265L37.9512 38.3013C38.3625 36.8429 39.8101 35.142 42.2109 33.8042C44.5742 32.4874 47.717 31.6116 51.2432 31.6978ZM40.1201 2.4165C45.6991 -0.804509 52.5724 -0.804509 58.1514 2.4165L75.6777 12.5356C68.4683 12.0708 60.8765 13.1991 53.8691 15.6333C43.6671 19.1774 34.5353 25.5492 29.6035 34.0396C23.1612 45.1305 22.8486 54.4223 25.3623 61.2749C25.0301 60.7429 24.7004 60.1936 24.375 59.6265C19.8639 51.765 18.8286 41.4457 20.7139 31.3706C22.4486 22.1007 26.633 13.1734 32.6709 6.71631L40.1201 2.4165ZM54.6855 17.9829C63.3703 14.966 72.9092 14.0715 81.3008 15.7817L89.2559 20.3745C94.8346 23.5955 98.2714 29.5479 98.2715 35.9897V56.4692C95.0606 49.9731 90.2759 43.9144 84.6562 39.0112C76.4636 31.8632 66.3524 27.0488 56.5273 27.0229C43.6978 26.9893 35.4935 31.3659 30.8164 36.9712C31.1117 36.4161 31.4247 35.8554 31.7539 35.2886C36.3024 27.4582 44.8633 21.395 54.6855 17.9829Z"
|
|
32
|
+
fill="url(#virto-oz-gradient-animated)"
|
|
33
|
+
/>
|
|
34
|
+
|
|
35
|
+
<!-- White center circle -->
|
|
36
|
+
<path
|
|
37
|
+
d="M72.1266 54.0945C72.1266 60.0873 74.3028 71.0379 60.6238 82.8517C65.2871 73.0587 55.8339 77.1002 49.1209 77.1002C36.4152 77.1002 26.1152 66.8002 26.1152 54.0945C26.1152 41.3889 36.4152 31.0889 49.1209 31.0889C61.8266 31.0889 72.1266 41.3889 72.1266 54.0945Z"
|
|
38
|
+
fill="white"
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<!-- Center dots (eyes) -->
|
|
42
|
+
<ellipse cx="49.12" cy="54.09" rx="4.05" ry="4.05" fill="#6C6C6C" />
|
|
43
|
+
<ellipse cx="60.62" cy="54.09" rx="4.05" ry="4.05" fill="#6C6C6C" />
|
|
44
|
+
<ellipse cx="37.62" cy="54.09" rx="4.05" ry="4.05" fill="#6C6C6C" />
|
|
45
|
+
|
|
46
|
+
<!-- Definitions -->
|
|
47
|
+
<defs>
|
|
48
|
+
<!-- Clip path for static conic gradient (spiral shape) -->
|
|
49
|
+
<clipPath v-if="!animated" :id="clipPathId">
|
|
50
|
+
<path
|
|
51
|
+
d="M72.9199 46.4165C73.2527 46.9495 73.5831 47.4996 73.9092 48.0679C78.4022 55.8976 79.0605 66.3551 76.7793 76.6079C74.5635 86.5668 69.6096 96.1504 62.9795 102.692L58.1514 105.48C52.5725 108.701 45.699 108.701 40.1201 105.48L21.665 94.8247C29.1398 95.4723 37.0781 94.4072 44.3848 91.9233C54.5984 88.4512 63.7463 82.1497 68.6807 73.6548C75.124 62.5619 75.4351 53.2694 72.9199 46.4165ZM56.5205 29.5093C65.5697 29.5331 75.1259 33.9964 83.0215 40.8853C89.9848 46.9608 95.5441 54.8286 98.2715 62.9478V71.9058C98.2715 78.3478 94.8348 84.301 89.2559 87.522L69.4658 98.9468C74.0688 92.6731 77.4601 84.9996 79.207 77.1479C81.5723 66.517 80.9666 55.3703 76.0654 46.8296C69.6817 35.7054 61.7917 30.789 54.6006 29.5396C55.2271 29.5179 55.867 29.5076 56.5205 29.5093ZM0 50.688C3.16812 57.476 8.04614 63.7935 13.8389 68.853C21.9305 75.9204 31.9368 80.6465 41.7578 80.6724C54.5833 80.706 62.7851 76.3308 67.4629 70.728C67.1684 71.2812 66.8584 71.8408 66.5303 72.4058C61.9844 80.2318 53.417 86.2251 43.584 89.5679C34.4355 92.6779 24.3375 93.4401 15.6328 91.3423L9.01562 87.522C3.43667 84.301 0 78.3478 0 71.9058V50.688ZM26.7559 10.1313C22.5672 16.2131 19.6599 23.483 18.2695 30.9126C16.3077 41.3962 17.3358 52.3558 22.2188 60.8647C28.6034 71.9905 36.4946 76.9061 43.6865 78.1548C43.0594 78.1765 42.4188 78.1868 41.7646 78.1851C32.7113 78.1612 23.2602 73.7801 15.4746 66.98C8.2197 60.6434 2.52684 52.3035 0 43.7075V35.9897C6.33247e-05 29.5479 3.43687 23.5955 9.01562 20.3745L26.7559 10.1313ZM51.2432 31.6978C54.0287 31.7659 57.0796 32.4389 60.1875 33.9976C58.8529 33.7029 57.5584 33.677 56.3965 33.9722L57.0088 36.3833C58.4774 36.0102 60.6741 36.4134 63.0332 37.8237C65.3553 39.212 67.6865 41.4953 69.375 44.5923C70.7081 47.0376 71.6489 50.015 71.8535 53.4839C71.4414 52.1828 70.818 51.0505 69.9824 50.1929L68.2012 51.9282C69.2585 53.0135 70.0076 55.1176 69.9658 57.8657C69.9246 60.5708 69.1121 63.731 67.2744 66.7417C65.8225 69.1203 63.7129 71.4251 60.8086 73.3374C61.7311 72.329 62.4012 71.2217 62.7266 70.0679L60.333 69.3931C59.9218 70.8514 58.4742 72.5523 56.0732 73.8901C53.71 75.207 50.5672 76.0837 47.041 75.9976C44.2551 75.9294 41.204 75.2549 38.0957 73.6958C39.4307 73.9907 40.7254 74.0184 41.8877 73.7231L41.2754 71.312C39.8069 71.6851 37.6101 71.2818 35.251 69.8716C32.9289 68.4834 30.5977 66.2 28.9092 63.103C27.5754 60.6565 26.6337 57.6775 26.4297 54.2065C26.8418 55.5096 27.4661 56.6438 28.3027 57.5024L30.084 55.7661C29.0267 54.6807 28.2775 52.5767 28.3193 49.8286C28.3606 47.1236 29.173 43.9633 31.0107 40.9526C32.4621 38.5751 34.5702 36.2706 37.4727 34.3589C36.5514 35.3666 35.8827 36.4736 35.5576 37.6265L37.9512 38.3013C38.3625 36.8429 39.8101 35.142 42.2109 33.8042C44.5742 32.4874 47.717 31.6116 51.2432 31.6978ZM40.1201 2.4165C45.6991 -0.804509 52.5724 -0.804509 58.1514 2.4165L75.6777 12.5356C68.4683 12.0708 60.8765 13.1991 53.8691 15.6333C43.6671 19.1774 34.5353 25.5492 29.6035 34.0396C23.1612 45.1305 22.8486 54.4223 25.3623 61.2749C25.0301 60.7429 24.7004 60.1936 24.375 59.6265C19.8639 51.765 18.8286 41.4457 20.7139 31.3706C22.4486 22.1007 26.633 13.1734 32.6709 6.71631L40.1201 2.4165ZM54.6855 17.9829C63.3703 14.966 72.9092 14.0715 81.3008 15.7817L89.2559 20.3745C94.8346 23.5955 98.2714 29.5479 98.2715 35.9897V56.4692C95.0606 49.9731 90.2759 43.9144 84.6562 39.0112C76.4636 31.8632 66.3524 27.0488 56.5273 27.0229C43.6978 26.9893 35.4935 31.3659 30.8164 36.9712C31.1117 36.4161 31.4247 35.8554 31.7539 35.2886C36.3024 27.4582 44.8633 21.395 54.6855 17.9829Z"
|
|
52
|
+
/>
|
|
53
|
+
</clipPath>
|
|
54
|
+
|
|
55
|
+
<!-- Animated gradient -->
|
|
56
|
+
<linearGradient
|
|
57
|
+
v-if="animated"
|
|
58
|
+
id="virto-oz-gradient-animated"
|
|
59
|
+
gradientUnits="userSpaceOnUse"
|
|
60
|
+
x1="0"
|
|
61
|
+
y1="0"
|
|
62
|
+
x2="99"
|
|
63
|
+
y2="108"
|
|
64
|
+
>
|
|
65
|
+
<stop offset="0%" stop-color="#FF9533">
|
|
66
|
+
<animate
|
|
67
|
+
attributeName="stop-color"
|
|
68
|
+
values="#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533"
|
|
69
|
+
dur="4s"
|
|
70
|
+
repeatCount="indefinite"
|
|
71
|
+
/>
|
|
72
|
+
</stop>
|
|
73
|
+
<stop offset="25%" stop-color="#FF4FBB">
|
|
74
|
+
<animate
|
|
75
|
+
attributeName="stop-color"
|
|
76
|
+
values="#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB"
|
|
77
|
+
dur="4s"
|
|
78
|
+
repeatCount="indefinite"
|
|
79
|
+
/>
|
|
80
|
+
</stop>
|
|
81
|
+
<stop offset="50%" stop-color="#EAFF4F">
|
|
82
|
+
<animate
|
|
83
|
+
attributeName="stop-color"
|
|
84
|
+
values="#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F"
|
|
85
|
+
dur="4s"
|
|
86
|
+
repeatCount="indefinite"
|
|
87
|
+
/>
|
|
88
|
+
</stop>
|
|
89
|
+
<stop offset="75%" stop-color="#1C91FC">
|
|
90
|
+
<animate
|
|
91
|
+
attributeName="stop-color"
|
|
92
|
+
values="#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC"
|
|
93
|
+
dur="4s"
|
|
94
|
+
repeatCount="indefinite"
|
|
95
|
+
/>
|
|
96
|
+
</stop>
|
|
97
|
+
<stop offset="100%" stop-color="#9A2DF8">
|
|
98
|
+
<animate
|
|
99
|
+
attributeName="stop-color"
|
|
100
|
+
values="#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8"
|
|
101
|
+
dur="4s"
|
|
102
|
+
repeatCount="indefinite"
|
|
103
|
+
/>
|
|
104
|
+
</stop>
|
|
105
|
+
</linearGradient>
|
|
106
|
+
</defs>
|
|
107
|
+
</svg>
|
|
108
|
+
</template>
|
|
109
|
+
|
|
110
|
+
<script lang="ts" setup>
|
|
111
|
+
import { computed } from "vue";
|
|
112
|
+
|
|
113
|
+
export interface Props {
|
|
114
|
+
/** Width in pixels */
|
|
115
|
+
width?: number;
|
|
116
|
+
/** Height in pixels */
|
|
117
|
+
height?: number;
|
|
118
|
+
/** Enable animated gradient */
|
|
119
|
+
animated?: boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
withDefaults(defineProps<Props>(), {
|
|
123
|
+
width: 22,
|
|
124
|
+
height: 24,
|
|
125
|
+
animated: false,
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// Generate unique ID for clip path to avoid conflicts when multiple logos are rendered
|
|
129
|
+
const clipPathId = computed(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);
|
|
130
|
+
</script>
|
|
131
|
+
|
|
132
|
+
<style lang="scss">
|
|
133
|
+
.vc-virto-oz-logo {
|
|
134
|
+
display: block;
|
|
135
|
+
}
|
|
136
|
+
</style>
|
|
@@ -130,9 +130,14 @@ function getTargetForChanges<T>(dataRef: Ref<T> | Ref<T[]>): T | undefined {
|
|
|
130
130
|
* });
|
|
131
131
|
* ```
|
|
132
132
|
*/
|
|
133
|
-
export function useAiAgentContext<
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
export function useAiAgentContext<
|
|
134
|
+
T extends {
|
|
135
|
+
id: string | undefined;
|
|
136
|
+
objectType: string | undefined;
|
|
137
|
+
name?: string | undefined;
|
|
138
|
+
[key: string]: unknown;
|
|
139
|
+
},
|
|
140
|
+
>(options: UseAiAgentContextOptions<T>): UseAiAgentContextReturn {
|
|
136
141
|
const { dataRef, suggestions } = options;
|
|
137
142
|
|
|
138
143
|
// Try to get the service (may not be available if plugin not installed)
|