@terryavg/neptune-ai-chatbot 1.0.1 → 1.0.2

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 (59) hide show
  1. package/README.md +137 -2
  2. package/dist/chat-input-42V4ESQB.mjs +478 -0
  3. package/dist/chat-input-4T42R7FR.mjs +481 -0
  4. package/dist/chat-input-BJVIIYOP.mjs +484 -0
  5. package/dist/chat-input-HT47ZLQN.mjs +456 -0
  6. package/dist/chat-input-JFGPZBBQ.mjs +495 -0
  7. package/dist/chat-input-JQ7PSHNW.mjs +515 -0
  8. package/dist/chat-input-USWVSAYY.mjs +461 -0
  9. package/dist/chat-input-VTCTV5ED.mjs +495 -0
  10. package/dist/chat-input-WJMGLQJI.mjs +495 -0
  11. package/dist/chat-message-2VQW74CO.mjs +2230 -0
  12. package/dist/chat-message-35ZWSSQV.mjs +1926 -0
  13. package/dist/chat-message-3CUUWTZG.mjs +2429 -0
  14. package/dist/chat-message-3NHSJNKL.mjs +2241 -0
  15. package/dist/chat-message-3Z7B2WYC.mjs +2228 -0
  16. package/dist/chat-message-564AHZHH.mjs +2186 -0
  17. package/dist/chat-message-5QLTW4K7.mjs +2122 -0
  18. package/dist/chat-message-7EH2TDZG.mjs +1910 -0
  19. package/dist/chat-message-7QHJRHQG.mjs +1909 -0
  20. package/dist/chat-message-AAXNH5TF.mjs +2088 -0
  21. package/dist/chat-message-D36YF274.mjs +1910 -0
  22. package/dist/chat-message-DVCXEL4Z.mjs +2111 -0
  23. package/dist/chat-message-E6KB3AST.mjs +1906 -0
  24. package/dist/chat-message-G2NWPAXK.mjs +1904 -0
  25. package/dist/chat-message-H62Z3DW5.mjs +2368 -0
  26. package/dist/chat-message-HIEZ7B5R.mjs +2190 -0
  27. package/dist/chat-message-I6AKFPK6.mjs +2156 -0
  28. package/dist/chat-message-IKYSAVAB.mjs +1918 -0
  29. package/dist/chat-message-IZL6JHV2.mjs +2429 -0
  30. package/dist/chat-message-J7PVUQO6.mjs +1878 -0
  31. package/dist/chat-message-K6QILTW5.mjs +1897 -0
  32. package/dist/chat-message-MDORLI2R.mjs +2228 -0
  33. package/dist/chat-message-MFUY6KOE.mjs +1910 -0
  34. package/dist/chat-message-MYKOR5OF.mjs +1890 -0
  35. package/dist/chat-message-NKMTAMGG.mjs +1906 -0
  36. package/dist/chat-message-NNGD3FUH.mjs +2168 -0
  37. package/dist/chat-message-QAPRO542.mjs +1915 -0
  38. package/dist/chat-message-R4IJ3MXU.mjs +2146 -0
  39. package/dist/chat-message-U7UCBLHI.mjs +2145 -0
  40. package/dist/chat-message-UKXGFKUR.mjs +1903 -0
  41. package/dist/chat-message-UNIBCF3T.mjs +1900 -0
  42. package/dist/chat-message-UXLPL76T.mjs +1890 -0
  43. package/dist/chat-message-VB54UOHB.mjs +2306 -0
  44. package/dist/chat-message-WUNUZLKI.mjs +2228 -0
  45. package/dist/chat-message-WYN5UZRD.mjs +1927 -0
  46. package/dist/chat-message-Y5OJSR2O.mjs +2228 -0
  47. package/dist/chat-message-YPDHL6WW.mjs +2114 -0
  48. package/dist/chunk-26656QB3.mjs +406 -0
  49. package/dist/chunk-2RXQ2EZ2.mjs +295 -0
  50. package/dist/chunk-DVWFDUN4.mjs +407 -0
  51. package/dist/chunk-JLRHY3SB.mjs +405 -0
  52. package/dist/chunk-XFSEOBLD.mjs +432 -0
  53. package/dist/index.css +174 -43
  54. package/dist/index.d.mts +218 -1
  55. package/dist/index.d.ts +218 -1
  56. package/dist/index.js +2088 -1400
  57. package/dist/index.mjs +606 -413
  58. package/dist/styles.css +1 -1
  59. package/package.json +2 -1
package/dist/index.css CHANGED
@@ -899,6 +899,9 @@ video {
899
899
  .-mt-4 {
900
900
  margin-top: -1rem;
901
901
  }
902
+ .mb-0 {
903
+ margin-bottom: 0;
904
+ }
902
905
  .mb-1 {
903
906
  margin-bottom: .25rem;
904
907
  }
@@ -917,6 +920,9 @@ video {
917
920
  .ml-2 {
918
921
  margin-left: .5rem;
919
922
  }
923
+ .ml-3 {
924
+ margin-left: .75rem;
925
+ }
920
926
  .ml-6 {
921
927
  margin-left: 1.5rem;
922
928
  }
@@ -941,15 +947,15 @@ video {
941
947
  .mt-2 {
942
948
  margin-top: .5rem;
943
949
  }
950
+ .mt-28 {
951
+ margin-top: 7rem;
952
+ }
944
953
  .mt-3 {
945
954
  margin-top: .75rem;
946
955
  }
947
956
  .mt-4 {
948
957
  margin-top: 1rem;
949
958
  }
950
- .mt-8 {
951
- margin-top: 2rem;
952
- }
953
959
  .block {
954
960
  display: block;
955
961
  }
@@ -1028,6 +1034,9 @@ video {
1028
1034
  .h-screen {
1029
1035
  height: 100vh;
1030
1036
  }
1037
+ .max-h-24 {
1038
+ max-height: 6rem;
1039
+ }
1031
1040
  .max-h-32 {
1032
1041
  max-height: 8rem;
1033
1042
  }
@@ -1121,8 +1130,11 @@ video {
1121
1130
  .min-w-\[500px\] {
1122
1131
  min-width: 500px;
1123
1132
  }
1124
- .max-w-2xl {
1125
- max-width: 42rem;
1133
+ .min-w-\[80px\] {
1134
+ min-width: 80px;
1135
+ }
1136
+ .max-w-4xl {
1137
+ max-width: 56rem;
1126
1138
  }
1127
1139
  .max-w-6xl {
1128
1140
  max-width: 72rem;
@@ -1133,8 +1145,8 @@ video {
1133
1145
  .max-w-\[100\%\] {
1134
1146
  max-width: 100%;
1135
1147
  }
1136
- .max-w-\[90\%\] {
1137
- max-width: 90%;
1148
+ .max-w-\[120px\] {
1149
+ max-width: 120px;
1138
1150
  }
1139
1151
  .max-w-\[90vw\] {
1140
1152
  max-width: 90vw;
@@ -1154,6 +1166,9 @@ video {
1154
1166
  .max-w-sm {
1155
1167
  max-width: 24rem;
1156
1168
  }
1169
+ .max-w-xl {
1170
+ max-width: 36rem;
1171
+ }
1157
1172
  .max-w-xs {
1158
1173
  max-width: 20rem;
1159
1174
  }
@@ -1247,6 +1262,12 @@ video {
1247
1262
  .flex-col {
1248
1263
  flex-direction: column;
1249
1264
  }
1265
+ .flex-wrap {
1266
+ flex-wrap: wrap;
1267
+ }
1268
+ .items-start {
1269
+ align-items: flex-start;
1270
+ }
1250
1271
  .items-end {
1251
1272
  align-items: flex-end;
1252
1273
  }
@@ -1271,6 +1292,9 @@ video {
1271
1292
  .gap-1 {
1272
1293
  gap: .25rem;
1273
1294
  }
1295
+ .gap-1\.5 {
1296
+ gap: .375rem;
1297
+ }
1274
1298
  .gap-2 {
1275
1299
  gap: .5rem;
1276
1300
  }
@@ -1363,6 +1387,14 @@ video {
1363
1387
  .rounded-xl {
1364
1388
  border-radius: .75rem;
1365
1389
  }
1390
+ .rounded-b-lg {
1391
+ border-bottom-right-radius: .5rem;
1392
+ border-bottom-left-radius: .5rem;
1393
+ }
1394
+ .rounded-t-lg {
1395
+ border-top-left-radius: .5rem;
1396
+ border-top-right-radius: .5rem;
1397
+ }
1366
1398
  .rounded-t-sm {
1367
1399
  border-top-left-radius: .125rem;
1368
1400
  border-top-right-radius: .125rem;
@@ -1626,11 +1658,6 @@ video {
1626
1658
  --tw-gradient-to:rgba(239,246,255,0) var(--tw-gradient-to-position);
1627
1659
  --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);
1628
1660
  }
1629
- .from-blue-600 {
1630
- --tw-gradient-from:#2563eb var(--tw-gradient-from-position);
1631
- --tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);
1632
- --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);
1633
- }
1634
1661
  .from-emerald-50 {
1635
1662
  --tw-gradient-from:#ecfdf5 var(--tw-gradient-from-position);
1636
1663
  --tw-gradient-to:rgba(236,253,245,0) var(--tw-gradient-to-position);
@@ -1660,19 +1687,12 @@ video {
1660
1687
  .to-indigo-50 {
1661
1688
  --tw-gradient-to:#eef2ff var(--tw-gradient-to-position);
1662
1689
  }
1663
- .to-purple-600 {
1664
- --tw-gradient-to:#9333ea var(--tw-gradient-to-position);
1665
- }
1666
1690
  .to-teal-50 {
1667
1691
  --tw-gradient-to:#f0fdfa var(--tw-gradient-to-position);
1668
1692
  }
1669
1693
  .to-transparent {
1670
1694
  --tw-gradient-to:transparent var(--tw-gradient-to-position);
1671
1695
  }
1672
- .bg-clip-text {
1673
- -webkit-background-clip: text;
1674
- background-clip: text;
1675
- }
1676
1696
  .object-contain {
1677
1697
  -o-object-fit: contain;
1678
1698
  object-fit: contain;
@@ -1925,9 +1945,6 @@ video {
1925
1945
  --tw-text-opacity:1;
1926
1946
  color: rgb(185 28 28/var(--tw-text-opacity,1));
1927
1947
  }
1928
- .text-transparent {
1929
- color: transparent;
1930
- }
1931
1948
  .text-white {
1932
1949
  --tw-text-opacity:1;
1933
1950
  color: rgb(255 255 255/var(--tw-text-opacity,1));
@@ -1991,13 +2008,50 @@ video {
1991
2008
  --tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
1992
2009
  --tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);
1993
2010
  }
1994
- .drop-shadow {
1995
- --tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06));
1996
- }
1997
- .drop-shadow,
1998
2011
  .filter {
1999
2012
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2000
2013
  }
2014
+ .transition {
2015
+ transition-property:
2016
+ color,
2017
+ background-color,
2018
+ border-color,
2019
+ text-decoration-color,
2020
+ fill,
2021
+ stroke,
2022
+ opacity,
2023
+ box-shadow,
2024
+ transform,
2025
+ filter,
2026
+ -webkit-backdrop-filter;
2027
+ transition-property:
2028
+ color,
2029
+ background-color,
2030
+ border-color,
2031
+ text-decoration-color,
2032
+ fill,
2033
+ stroke,
2034
+ opacity,
2035
+ box-shadow,
2036
+ transform,
2037
+ filter,
2038
+ backdrop-filter;
2039
+ transition-property:
2040
+ color,
2041
+ background-color,
2042
+ border-color,
2043
+ text-decoration-color,
2044
+ fill,
2045
+ stroke,
2046
+ opacity,
2047
+ box-shadow,
2048
+ transform,
2049
+ filter,
2050
+ backdrop-filter,
2051
+ -webkit-backdrop-filter;
2052
+ transition-timing-function: cubic-bezier(.4, 0, .2, 1);
2053
+ transition-duration: .15s;
2054
+ }
2001
2055
  .transition-all {
2002
2056
  transition-property: all;
2003
2057
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
@@ -2048,20 +2102,89 @@ video {
2048
2102
  transform: translateY(0);
2049
2103
  }
2050
2104
  }
2051
- @keyframes smoothTextAppear {
2105
+ @keyframes fadeInBlur {
2106
+ 0% {
2107
+ opacity: 0;
2108
+ filter: blur(4px);
2109
+ }
2110
+ to {
2111
+ opacity: 1;
2112
+ filter: blur(0);
2113
+ }
2114
+ }
2115
+ @keyframes vapor-reveal {
2052
2116
  0% {
2053
2117
  opacity: .3;
2118
+ filter: blur(3px);
2119
+ transform: translateY(1px);
2054
2120
  }
2055
2121
  to {
2056
2122
  opacity: 1;
2123
+ filter: blur(0);
2124
+ transform: translateY(0);
2125
+ }
2126
+ }
2127
+ @keyframes appear {
2128
+ 0% {
2129
+ opacity: 0;
2130
+ transform: translateY(4px);
2131
+ background-color: rgba(59, 130, 246, .1);
2132
+ }
2133
+ to {
2134
+ opacity: 1;
2135
+ transform: translateY(0);
2136
+ background-color: transparent;
2137
+ }
2138
+ }
2139
+ .animate-appear {
2140
+ animation: appear .4s cubic-bezier(.2, .8, .2, 1) forwards;
2141
+ display: inline-block;
2142
+ }
2143
+ .cursor-blink:after {
2144
+ content: "\258b";
2145
+ margin-left: 2px;
2146
+ animation: blink 1s step-end infinite;
2147
+ }
2148
+ @keyframes blink {
2149
+ 0%, to {
2150
+ opacity: 1;
2057
2151
  }
2152
+ 50% {
2153
+ opacity: 0;
2154
+ }
2155
+ }
2156
+ .streaming-vapor > div > :last-child {
2157
+ animation: vapor-reveal .3s ease-out forwards;
2158
+ }
2159
+ .streaming-vapor > div > * {
2160
+ animation: none !important;
2161
+ }
2162
+ .prose p {
2163
+ margin-top: 0 !important;
2164
+ margin-bottom: 0 !important;
2165
+ }
2166
+ .streaming-vapor > div > :last-child {
2167
+ animation: vapor-reveal .3s ease-out forwards !important;
2058
2168
  }
2059
2169
  .animate-fade-in {
2060
2170
  animation: fadeIn .3s ease-out forwards;
2061
2171
  }
2062
- .streaming-content {
2063
- animation: smoothTextAppear .4s ease-out;
2064
- will-change: opacity;
2172
+ @keyframes inputSlideToBottom {
2173
+ 0% {
2174
+ align-items: center;
2175
+ }
2176
+ to {
2177
+ align-items: flex-end;
2178
+ padding-bottom: 1.5rem;
2179
+ }
2180
+ }
2181
+ .chat-input-transition {
2182
+ transition: all .6s cubic-bezier(.4, 0, .2, 1);
2183
+ }
2184
+ .chat-input-animating {
2185
+ animation: slideToBottom .6s cubic-bezier(.4, 0, .2, 1) forwards;
2186
+ z-index: 1000;
2187
+ position: relative;
2065
2188
  }
2066
2189
  :root {
2067
2190
  --foreground-rgb:0,0,0;
@@ -2217,7 +2340,7 @@ form.chat-input {
2217
2340
  background-color: var(--bg-secondary) !important;
2218
2341
  }
2219
2342
  .dark .text-gray-800 {
2220
- color: #e0e0e0;
2343
+ color: #efefef;
2221
2344
  }
2222
2345
  .dark .text-gray-500 {
2223
2346
  color: #a0a0a0;
@@ -2383,6 +2506,14 @@ form.chat-input {
2383
2506
  --tw-text-opacity:1;
2384
2507
  color: rgb(55 65 81/var(--tw-text-opacity,1));
2385
2508
  }
2509
+ .hover\:text-green-600:hover {
2510
+ --tw-text-opacity:1;
2511
+ color: rgb(22 163 74/var(--tw-text-opacity,1));
2512
+ }
2513
+ .hover\:text-red-600:hover {
2514
+ --tw-text-opacity:1;
2515
+ color: rgb(220 38 38/var(--tw-text-opacity,1));
2516
+ }
2386
2517
  .hover\:opacity-90:hover {
2387
2518
  opacity: .9;
2388
2519
  }
@@ -2491,10 +2622,6 @@ form.chat-input {
2491
2622
  --tw-bg-opacity:1 !important;
2492
2623
  background-color: rgb(17 24 39/var(--tw-bg-opacity,1)) !important;
2493
2624
  }
2494
- .dark\:bg-\[\#171717\]:is(.dark *) {
2495
- --tw-bg-opacity:1;
2496
- background-color: rgb(23 23 23/var(--tw-bg-opacity,1));
2497
- }
2498
2625
  .dark\:bg-amber-400:is(.dark *) {
2499
2626
  --tw-bg-opacity:1;
2500
2627
  background-color: rgb(251 191 36/var(--tw-bg-opacity,1));
@@ -2539,10 +2666,6 @@ form.chat-input {
2539
2666
  .dark\:bg-emerald-900\/30:is(.dark *) {
2540
2667
  background-color: rgba(6, 78, 59, .3);
2541
2668
  }
2542
- .dark\:bg-gray-100:is(.dark *) {
2543
- --tw-bg-opacity:1;
2544
- background-color: rgb(243 244 246/var(--tw-bg-opacity,1));
2545
- }
2546
2669
  .dark\:bg-gray-500:is(.dark *) {
2547
2670
  --tw-bg-opacity:1;
2548
2671
  background-color: rgb(107 114 128/var(--tw-bg-opacity,1));
@@ -2747,14 +2870,18 @@ form.chat-input {
2747
2870
  --tw-text-opacity:1;
2748
2871
  color: rgb(167 243 208/var(--tw-text-opacity,1));
2749
2872
  }
2750
- .dark\:hover\:text-gray-200:hover:is(.dark *) {
2751
- --tw-text-opacity:1;
2752
- color: rgb(229 231 235/var(--tw-text-opacity,1));
2753
- }
2754
2873
  .dark\:hover\:text-gray-300:hover:is(.dark *) {
2755
2874
  --tw-text-opacity:1;
2756
2875
  color: rgb(209 213 219/var(--tw-text-opacity,1));
2757
2876
  }
2877
+ .dark\:hover\:text-green-400:hover:is(.dark *) {
2878
+ --tw-text-opacity:1;
2879
+ color: rgb(74 222 128/var(--tw-text-opacity,1));
2880
+ }
2881
+ .dark\:hover\:text-red-400:hover:is(.dark *) {
2882
+ --tw-text-opacity:1;
2883
+ color: rgb(248 113 113/var(--tw-text-opacity,1));
2884
+ }
2758
2885
  .dark\:focus\:ring-indigo-400:focus:is(.dark *) {
2759
2886
  --tw-ring-opacity:1;
2760
2887
  --tw-ring-color:rgb(129 140 248/var(--tw-ring-opacity,1));
@@ -2802,4 +2929,8 @@ form.chat-input {
2802
2929
  display: none;
2803
2930
  }
2804
2931
  }
2932
+ .\[\&_p\]\:\!my-0 p {
2933
+ margin-top: 0 !important;
2934
+ margin-bottom: 0 !important;
2935
+ }
2805
2936
  /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
package/dist/index.d.mts CHANGED
@@ -1,18 +1,226 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
 
4
+ /**
5
+ * Configuration for local development debugging
6
+ */
4
7
  interface LocalDebugConfig {
8
+ /** Username for local authentication */
5
9
  username: string;
10
+ /** Password for local authentication */
6
11
  password: string;
12
+ /** Base URL for the local API server */
7
13
  baseUrl: string;
8
14
  }
15
+ /**
16
+ * Props for the NeptuneChatBot component
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <NeptuneChatBot
21
+ * agentId="your-agent-id"
22
+ * theme="dark"
23
+ * title="My Assistant"
24
+ * messageBubbleColor="#E5E3F8"
25
+ * />
26
+ * ```
27
+ */
9
28
  interface NeptuneChatBotProps {
29
+ /**
30
+ * Unique identifier for the AI agent
31
+ * @required
32
+ */
10
33
  agentId: string;
34
+ /**
35
+ * Enable debug mode to show console logs and debugging information
36
+ * @default false
37
+ */
11
38
  debug?: boolean;
39
+ /**
40
+ * Color theme for the chat interface
41
+ * @default "light"
42
+ */
12
43
  theme?: "light" | "dark";
44
+ /**
45
+ * Configuration for local development debugging
46
+ */
13
47
  localDebug?: LocalDebugConfig;
48
+ /**
49
+ * Title displayed in the chat header
50
+ * @default "Naia"
51
+ */
52
+ title?: string;
53
+ /**
54
+ * Background color for message bubbles in light mode
55
+ * @default "#E5E3F8"
56
+ * @example "#E5E3F8" or "rgba(229, 227, 248, 1)"
57
+ */
58
+ messageBubbleColor?: string;
59
+ /**
60
+ * Background color for message bubbles in dark mode
61
+ * @default "rgba(168, 140, 250, 0.3)"
62
+ */
63
+ messageBubbleColorDark?: string;
64
+ /**
65
+ * Accent color for buttons and interactive elements in light mode
66
+ * @default "#8B7FD9"
67
+ */
68
+ accentColor?: string;
69
+ /**
70
+ * Accent color for buttons and interactive elements in dark mode
71
+ * @default "#A88CFA"
72
+ */
73
+ accentColorDark?: string;
74
+ /**
75
+ * Color for the scroll-to-bottom button in light mode
76
+ * @default "#6366F1"
77
+ */
78
+ scrollButtonColor?: string;
79
+ /**
80
+ * Color for the scroll-to-bottom button in dark mode
81
+ * @default "#818CF8"
82
+ */
83
+ scrollButtonColorDark?: string;
84
+ /**
85
+ * Text displayed while the AI is generating a response
86
+ * @default "NAIA is working on it..."
87
+ */
88
+ streamingText?: string;
89
+ /**
90
+ * Color of the streaming indicator text in light mode
91
+ * @default "#2563EB"
92
+ */
93
+ streamingTextColor?: string;
94
+ /**
95
+ * Color of the streaming indicator text in dark mode
96
+ * @default "#818CF8"
97
+ */
98
+ streamingTextColorDark?: string;
99
+ /**
100
+ * Primary welcome message shown on the initial screen
101
+ * @default "Hi there!"
102
+ */
103
+ welcomeMessagePrimary?: string;
104
+ /**
105
+ * Secondary welcome message shown below the primary message
106
+ * @default "How can I help you today?"
107
+ */
108
+ welcomeMessageSecondary?: string;
109
+ /**
110
+ * Path to a custom icon image for the welcome screen (supports png, svg, etc.)
111
+ * @example "/logo.png" or "https://example.com/icon.svg"
112
+ */
113
+ welcomeIcon?: string;
114
+ /**
115
+ * Size of the welcome icon with CSS units
116
+ * @default "10rem"
117
+ * @example "10rem", "100px", "5em"
118
+ */
119
+ welcomeIconSize?: string;
120
+ /**
121
+ * Enable streaming responses from the AI
122
+ * @default true
123
+ */
124
+ streaming?: boolean;
125
+ /**
126
+ * Background color for the sidebar in light mode
127
+ * @default "#FAFAFA"
128
+ */
129
+ sidebarBackgroundColor?: string;
130
+ /**
131
+ * Background color for the sidebar in dark mode
132
+ * @default "#1F1F1F"
133
+ */
134
+ sidebarBackgroundColorDark?: string;
135
+ /**
136
+ * Background color for the chat input field in light mode
137
+ * @default "#FFFFFF"
138
+ */
139
+ inputBackgroundColor?: string;
140
+ /**
141
+ * Background color for the chat input field in dark mode
142
+ * @default "#303030"
143
+ */
144
+ inputBackgroundColorDark?: string;
145
+ /**
146
+ * Background color for the header in light mode
147
+ * @default "#FFFFFF"
148
+ */
149
+ headerBackgroundColor?: string;
150
+ /**
151
+ * Background color for the header in dark mode
152
+ * @default "#1F1F1F"
153
+ */
154
+ headerBackgroundColorDark?: string;
155
+ /**
156
+ * Base color for vector search results in light mode
157
+ * @default "#9333EA" (purple-600)
158
+ * @example "#3B82F6" for blue, "#10B981" for green
159
+ */
160
+ vectorColor?: string;
161
+ /**
162
+ * Base color for vector search results in dark mode
163
+ * @default "#A855F7" (purple-500)
164
+ * @example "#60A5FA" for blue, "#34D399" for green
165
+ */
166
+ vectorColorDark?: string;
167
+ /**
168
+ * Callback fired when a tool starts executing during streaming
169
+ * @param metadata - Event metadata containing tool information
170
+ * @example
171
+ * ```tsx
172
+ * onToolStart={(metadata) => {
173
+ * console.log('Tool started:', metadata.toolName);
174
+ * }}
175
+ * ```
176
+ */
177
+ onToolStart?: (metadata: any) => void;
178
+ /**
179
+ * Callback fired when tool input is available during streaming
180
+ * @param metadata - Event metadata containing tool input information
181
+ * @example
182
+ * ```tsx
183
+ * onToolInput={(metadata) => {
184
+ * console.log('Tool input received:', metadata);
185
+ * }}
186
+ * ```
187
+ */
188
+ onToolInput?: (metadata: any) => void;
189
+ /**
190
+ * Callback fired when a tool finishes executing during streaming
191
+ * @param metadata - Event metadata containing tool output information
192
+ * @example
193
+ * ```tsx
194
+ * onToolFinish={(metadata) => {
195
+ * console.log('Tool finished:', metadata);
196
+ * }}
197
+ * ```
198
+ */
199
+ onToolFinish?: (metadata: any) => void;
200
+ /**
201
+ * Callback fired for each text chunk received during streaming
202
+ * @param chunk - The text chunk received
203
+ * @example
204
+ * ```tsx
205
+ * onChunk={(chunk) => {
206
+ * console.log('Received chunk:', chunk);
207
+ * }}
208
+ * ```
209
+ */
210
+ onChunk?: (chunk: string) => void;
211
+ /**
212
+ * Callback fired when streaming finishes
213
+ * @param metadata - Final response metadata
214
+ * @example
215
+ * ```tsx
216
+ * onFinish={(metadata) => {
217
+ * console.log('Streaming finished:', metadata);
218
+ * }}
219
+ * ```
220
+ */
221
+ onFinish?: (metadata: any) => void;
14
222
  }
15
- declare function NeptuneChatBot({ agentId: propAgentId, debug: propDebug, theme: propTheme, localDebug: propLocalDebug, }: NeptuneChatBotProps): react_jsx_runtime.JSX.Element;
223
+ declare function NeptuneChatBot({ agentId: propAgentId, debug: propDebug, theme: propTheme, localDebug: propLocalDebug, title: propTitle, messageBubbleColor, messageBubbleColorDark, accentColor, accentColorDark, scrollButtonColor, scrollButtonColorDark, streamingText, streamingTextColor, streamingTextColorDark, welcomeMessagePrimary, welcomeMessageSecondary, welcomeIcon, welcomeIconSize, streaming, sidebarBackgroundColor, onToolStart, onToolInput, onToolFinish, onChunk, onFinish, sidebarBackgroundColorDark, inputBackgroundColor, inputBackgroundColorDark, headerBackgroundColor, headerBackgroundColorDark, vectorColor, vectorColorDark, }: NeptuneChatBotProps): react_jsx_runtime.JSX.Element;
16
224
 
17
225
  interface TextContent {
18
226
  type: "text";
@@ -48,9 +256,18 @@ interface Step {
48
256
  text?: string;
49
257
  tools?: ToolCall[];
50
258
  }
259
+ interface VectorResult {
260
+ rowId: string;
261
+ similarity: string;
262
+ template: string;
263
+ entityName: string;
264
+ data: Record<string, any>;
265
+ }
51
266
  interface MessageMetadata {
52
267
  logId?: string;
53
268
  steps?: Step[];
269
+ vectors?: VectorResult[];
270
+ feedbackPositive?: boolean | null;
54
271
  }
55
272
  interface Message {
56
273
  id: string;