@agentiffai/design 1.3.6 → 1.3.8
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/copilotkit/index.cjs +429 -195
- package/dist/copilotkit/index.cjs.map +1 -1
- package/dist/copilotkit/index.d.cts +54 -5
- package/dist/copilotkit/index.d.ts +54 -5
- package/dist/copilotkit/index.js +401 -167
- package/dist/copilotkit/index.js.map +1 -1
- package/dist/index.cjs +1411 -424
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +137 -1
- package/dist/index.d.ts +137 -1
- package/dist/index.js +1471 -486
- package/dist/index.js.map +1 -1
- package/dist/layout/index.cjs +10 -4
- package/dist/layout/index.cjs.map +1 -1
- package/dist/layout/index.js +10 -4
- package/dist/layout/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var button = require('@react-aria/button');
|
|
4
4
|
var react = require('react');
|
|
5
|
-
var
|
|
5
|
+
var styled8 = require('styled-components');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var reactCore = require('@copilotkit/react-core');
|
|
7
8
|
var reactUi = require('@copilotkit/react-ui');
|
|
8
9
|
var textfield = require('@react-aria/textfield');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
12
|
|
|
12
|
-
var
|
|
13
|
+
var styled8__default = /*#__PURE__*/_interopDefault(styled8);
|
|
13
14
|
|
|
14
15
|
// src/components/copilotkit/Button/Button.tsx
|
|
15
16
|
|
|
@@ -170,7 +171,7 @@ var tokens = {
|
|
|
170
171
|
|
|
171
172
|
// src/components/copilotkit/Button/Button.styles.ts
|
|
172
173
|
var variantStyles = {
|
|
173
|
-
primary:
|
|
174
|
+
primary: styled8.css`
|
|
174
175
|
background-color: ${tokens.colors.primary};
|
|
175
176
|
color: ${tokens.colors.text.primary};
|
|
176
177
|
border: none;
|
|
@@ -190,7 +191,7 @@ var variantStyles = {
|
|
|
190
191
|
outline-offset: 2px;
|
|
191
192
|
}
|
|
192
193
|
`,
|
|
193
|
-
secondary:
|
|
194
|
+
secondary: styled8.css`
|
|
194
195
|
background-color: transparent;
|
|
195
196
|
color: ${tokens.colors.text.primary};
|
|
196
197
|
border: 1px solid ${tokens.colors.border.default};
|
|
@@ -209,7 +210,7 @@ var variantStyles = {
|
|
|
209
210
|
outline-offset: 2px;
|
|
210
211
|
}
|
|
211
212
|
`,
|
|
212
|
-
icon:
|
|
213
|
+
icon: styled8.css`
|
|
213
214
|
background-color: transparent;
|
|
214
215
|
color: ${tokens.colors.text.primary};
|
|
215
216
|
border: none;
|
|
@@ -232,26 +233,26 @@ var variantStyles = {
|
|
|
232
233
|
`
|
|
233
234
|
};
|
|
234
235
|
var sizeStyles = {
|
|
235
|
-
small:
|
|
236
|
+
small: styled8.css`
|
|
236
237
|
padding: ${tokens.spacing.xs} ${tokens.spacing.sm};
|
|
237
238
|
font-size: ${tokens.typography.fontSize.sm};
|
|
238
239
|
min-width: 60px;
|
|
239
240
|
height: 28px;
|
|
240
241
|
`,
|
|
241
|
-
medium:
|
|
242
|
+
medium: styled8.css`
|
|
242
243
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
243
244
|
font-size: ${tokens.typography.fontSize.base};
|
|
244
245
|
min-width: 80px;
|
|
245
246
|
height: 36px;
|
|
246
247
|
`,
|
|
247
|
-
large:
|
|
248
|
+
large: styled8.css`
|
|
248
249
|
padding: ${tokens.spacing.md} ${tokens.spacing.lg};
|
|
249
250
|
font-size: ${tokens.typography.fontSize.lg};
|
|
250
251
|
min-width: 100px;
|
|
251
252
|
height: 44px;
|
|
252
253
|
`
|
|
253
254
|
};
|
|
254
|
-
var StyledButton =
|
|
255
|
+
var StyledButton = styled8__default.default.button`
|
|
255
256
|
/* Base styles */
|
|
256
257
|
display: inline-flex;
|
|
257
258
|
align-items: center;
|
|
@@ -272,19 +273,19 @@ var StyledButton = styled4__default.default.button`
|
|
|
272
273
|
${({ $size, $variant }) => $variant !== "icon" && sizeStyles[$size]}
|
|
273
274
|
|
|
274
275
|
/* Icon variant size overrides */
|
|
275
|
-
${({ $variant, $size }) => $variant === "icon" &&
|
|
276
|
+
${({ $variant, $size }) => $variant === "icon" && styled8.css`
|
|
276
277
|
width: ${$size === "small" ? "28px" : $size === "large" ? "44px" : "36px"};
|
|
277
278
|
height: ${$size === "small" ? "28px" : $size === "large" ? "44px" : "36px"};
|
|
278
279
|
border-radius: ${tokens.borderRadius.sm};
|
|
279
280
|
`}
|
|
280
281
|
|
|
281
282
|
/* Pressed state */
|
|
282
|
-
${({ $isPressed }) => $isPressed &&
|
|
283
|
+
${({ $isPressed }) => $isPressed && styled8.css`
|
|
283
284
|
transform: scale(0.98);
|
|
284
285
|
`}
|
|
285
286
|
|
|
286
287
|
/* Loading state */
|
|
287
|
-
${({ $isLoading }) => $isLoading &&
|
|
288
|
+
${({ $isLoading }) => $isLoading && styled8.css`
|
|
288
289
|
cursor: wait;
|
|
289
290
|
opacity: 0.7;
|
|
290
291
|
`}
|
|
@@ -334,15 +335,15 @@ function Button({
|
|
|
334
335
|
);
|
|
335
336
|
}
|
|
336
337
|
Button.displayName = "Button";
|
|
337
|
-
var ActionsContainer =
|
|
338
|
+
var ActionsContainer = styled8__default.default.div`
|
|
338
339
|
display: flex;
|
|
339
340
|
gap: ${tokens.spacing.sm};
|
|
340
341
|
align-items: center;
|
|
341
342
|
|
|
342
|
-
${({ $layout }) => $layout === "horizontal" ?
|
|
343
|
+
${({ $layout }) => $layout === "horizontal" ? styled8.css`
|
|
343
344
|
flex-direction: row;
|
|
344
345
|
flex-wrap: wrap;
|
|
345
|
-
` :
|
|
346
|
+
` : styled8.css`
|
|
346
347
|
flex-direction: column;
|
|
347
348
|
align-items: stretch;
|
|
348
349
|
|
|
@@ -368,7 +369,7 @@ function Actions({ actions, layout = "horizontal", className }) {
|
|
|
368
369
|
)) });
|
|
369
370
|
}
|
|
370
371
|
Actions.displayName = "Actions";
|
|
371
|
-
var dotPulse =
|
|
372
|
+
var dotPulse = styled8.keyframes`
|
|
372
373
|
0%, 100% {
|
|
373
374
|
opacity: 0.3;
|
|
374
375
|
transform: scale(0.8);
|
|
@@ -378,7 +379,7 @@ var dotPulse = styled4.keyframes`
|
|
|
378
379
|
transform: scale(1);
|
|
379
380
|
}
|
|
380
381
|
`;
|
|
381
|
-
var fadeIn =
|
|
382
|
+
var fadeIn = styled8.keyframes`
|
|
382
383
|
from {
|
|
383
384
|
opacity: 0;
|
|
384
385
|
}
|
|
@@ -386,7 +387,7 @@ var fadeIn = styled4.keyframes`
|
|
|
386
387
|
opacity: 1;
|
|
387
388
|
}
|
|
388
389
|
`;
|
|
389
|
-
var blink =
|
|
390
|
+
var blink = styled8.keyframes`
|
|
390
391
|
0%, 49% {
|
|
391
392
|
opacity: 1;
|
|
392
393
|
}
|
|
@@ -394,7 +395,7 @@ var blink = styled4.keyframes`
|
|
|
394
395
|
opacity: 0;
|
|
395
396
|
}
|
|
396
397
|
`;
|
|
397
|
-
var ResponseContainer =
|
|
398
|
+
var ResponseContainer = styled8__default.default.div`
|
|
398
399
|
display: inline-flex;
|
|
399
400
|
align-items: center;
|
|
400
401
|
gap: ${tokens.spacing.sm};
|
|
@@ -406,13 +407,13 @@ var ResponseContainer = styled4__default.default.div`
|
|
|
406
407
|
max-width: fit-content;
|
|
407
408
|
margin: 0 auto;
|
|
408
409
|
`;
|
|
409
|
-
var LoadingDots =
|
|
410
|
+
var LoadingDots = styled8__default.default.div`
|
|
410
411
|
display: flex;
|
|
411
412
|
align-items: center;
|
|
412
413
|
gap: ${tokens.spacing.xs};
|
|
413
414
|
padding: 0 ${tokens.spacing.xs};
|
|
414
415
|
`;
|
|
415
|
-
var Dot =
|
|
416
|
+
var Dot = styled8__default.default.span`
|
|
416
417
|
width: ${tokens.spacing.xs};
|
|
417
418
|
height: ${tokens.spacing.xs};
|
|
418
419
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -420,7 +421,7 @@ var Dot = styled4__default.default.span`
|
|
|
420
421
|
animation: ${dotPulse} 1.4s ease-in-out infinite;
|
|
421
422
|
animation-delay: ${(props) => props.delay}s;
|
|
422
423
|
`;
|
|
423
|
-
var TypingIndicator =
|
|
424
|
+
var TypingIndicator = styled8__default.default.div`
|
|
424
425
|
display: flex;
|
|
425
426
|
align-items: center;
|
|
426
427
|
gap: ${tokens.spacing.xs};
|
|
@@ -433,14 +434,14 @@ var TypingIndicator = styled4__default.default.div`
|
|
|
433
434
|
animation: ${dotPulse} 1.4s ease-in-out infinite;
|
|
434
435
|
}
|
|
435
436
|
`;
|
|
436
|
-
var Message =
|
|
437
|
+
var Message = styled8__default.default.span`
|
|
437
438
|
font-size: ${tokens.typography.fontSize.sm};
|
|
438
439
|
color: ${tokens.colors.text.primary};
|
|
439
440
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
440
441
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
441
442
|
white-space: nowrap;
|
|
442
443
|
`;
|
|
443
|
-
var StreamingText =
|
|
444
|
+
var StreamingText = styled8__default.default.div`
|
|
444
445
|
font-size: ${tokens.typography.fontSize.sm};
|
|
445
446
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
446
447
|
color: ${tokens.colors.text.primary};
|
|
@@ -491,7 +492,7 @@ var Response = ({
|
|
|
491
492
|
}
|
|
492
493
|
return null;
|
|
493
494
|
};
|
|
494
|
-
var dotPulse2 =
|
|
495
|
+
var dotPulse2 = styled8.keyframes`
|
|
495
496
|
0%, 100% {
|
|
496
497
|
opacity: 0.3;
|
|
497
498
|
transform: scale(0.8);
|
|
@@ -501,7 +502,7 @@ var dotPulse2 = styled4.keyframes`
|
|
|
501
502
|
transform: scale(1);
|
|
502
503
|
}
|
|
503
504
|
`;
|
|
504
|
-
var shake =
|
|
505
|
+
var shake = styled8.keyframes`
|
|
505
506
|
0%, 100% {
|
|
506
507
|
transform: translateX(0);
|
|
507
508
|
}
|
|
@@ -512,7 +513,7 @@ var shake = styled4.keyframes`
|
|
|
512
513
|
transform: translateX(5px);
|
|
513
514
|
}
|
|
514
515
|
`;
|
|
515
|
-
var AgentStateContainer =
|
|
516
|
+
var AgentStateContainer = styled8__default.default.div`
|
|
516
517
|
display: inline-flex;
|
|
517
518
|
flex-direction: column;
|
|
518
519
|
align-items: center;
|
|
@@ -526,35 +527,35 @@ var AgentStateContainer = styled4__default.default.div`
|
|
|
526
527
|
max-width: fit-content;
|
|
527
528
|
margin: 0 auto;
|
|
528
529
|
`;
|
|
529
|
-
var StateContent =
|
|
530
|
+
var StateContent = styled8__default.default.div`
|
|
530
531
|
display: flex;
|
|
531
532
|
flex-direction: column;
|
|
532
533
|
gap: ${tokens.spacing.sm};
|
|
533
534
|
align-items: center;
|
|
534
535
|
width: 100%;
|
|
535
536
|
`;
|
|
536
|
-
var IdleIndicator =
|
|
537
|
+
var IdleIndicator = styled8__default.default.div`
|
|
537
538
|
width: ${tokens.spacing.xs};
|
|
538
539
|
height: ${tokens.spacing.xs};
|
|
539
540
|
background-color: ${tokens.colors.status.idle};
|
|
540
541
|
border-radius: ${tokens.borderRadius.full};
|
|
541
542
|
animation: ${dotPulse2} 2s infinite ease-in-out;
|
|
542
543
|
`;
|
|
543
|
-
var ErrorIndicator =
|
|
544
|
+
var ErrorIndicator = styled8__default.default.div`
|
|
544
545
|
width: ${tokens.spacing.xs};
|
|
545
546
|
height: ${tokens.spacing.xs};
|
|
546
547
|
background-color: ${tokens.colors.error};
|
|
547
548
|
border-radius: ${tokens.borderRadius.full};
|
|
548
549
|
animation: ${shake} 0.5s ease-in-out;
|
|
549
550
|
`;
|
|
550
|
-
var StateLabel =
|
|
551
|
+
var StateLabel = styled8__default.default.span`
|
|
551
552
|
font-size: ${tokens.typography.fontSize.sm};
|
|
552
553
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
553
554
|
color: ${tokens.colors.text.primary};
|
|
554
555
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
555
556
|
white-space: nowrap;
|
|
556
557
|
`;
|
|
557
|
-
|
|
558
|
+
styled8__default.default.p`
|
|
558
559
|
font-size: ${tokens.typography.fontSize.sm};
|
|
559
560
|
color: ${tokens.colors.text.tertiary};
|
|
560
561
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
@@ -562,7 +563,7 @@ styled4__default.default.p`
|
|
|
562
563
|
text-align: center;
|
|
563
564
|
white-space: nowrap;
|
|
564
565
|
`;
|
|
565
|
-
var ProgressBar =
|
|
566
|
+
var ProgressBar = styled8__default.default.div`
|
|
566
567
|
width: 100%;
|
|
567
568
|
height: ${tokens.spacing.xs};
|
|
568
569
|
background-color: ${tokens.colors.surface.elevated};
|
|
@@ -570,7 +571,7 @@ var ProgressBar = styled4__default.default.div`
|
|
|
570
571
|
overflow: hidden;
|
|
571
572
|
margin-top: ${tokens.spacing.xs};
|
|
572
573
|
`;
|
|
573
|
-
var ProgressBarFill =
|
|
574
|
+
var ProgressBarFill = styled8__default.default.div`
|
|
574
575
|
height: 100%;
|
|
575
576
|
width: ${(props) => Math.min(Math.max(props.progress, 0), 100)}%;
|
|
576
577
|
background: linear-gradient(135deg, ${tokens.colors.accent} 0%, ${tokens.colors.primary} 100%);
|
|
@@ -599,11 +600,11 @@ var AgentState = ({ state, message, progress, className }) => {
|
|
|
599
600
|
}
|
|
600
601
|
return null;
|
|
601
602
|
};
|
|
602
|
-
var Container =
|
|
603
|
+
var Container = styled8__default.default.div`
|
|
603
604
|
margin: ${tokens.spacing.sm} 0;
|
|
604
605
|
padding: 0 ${tokens.spacing.sm};
|
|
605
606
|
`;
|
|
606
|
-
var ToolName =
|
|
607
|
+
var ToolName = styled8__default.default.div`
|
|
607
608
|
font-size: ${tokens.typography.fontSize.xs};
|
|
608
609
|
color: ${tokens.colors.text.tertiary};
|
|
609
610
|
margin-bottom: ${tokens.spacing.xs};
|
|
@@ -653,7 +654,7 @@ var ActionExecutionAdapter = ({ message, inProgress }) => {
|
|
|
653
654
|
] });
|
|
654
655
|
};
|
|
655
656
|
ActionExecutionAdapter.displayName = "ActionExecutionAdapter";
|
|
656
|
-
var dotPulse3 =
|
|
657
|
+
var dotPulse3 = styled8.keyframes`
|
|
657
658
|
0%, 100% {
|
|
658
659
|
opacity: 0.3;
|
|
659
660
|
transform: scale(0.8);
|
|
@@ -663,7 +664,7 @@ var dotPulse3 = styled4.keyframes`
|
|
|
663
664
|
transform: scale(1);
|
|
664
665
|
}
|
|
665
666
|
`;
|
|
666
|
-
var pulse =
|
|
667
|
+
var pulse = styled8.keyframes`
|
|
667
668
|
0%, 100% {
|
|
668
669
|
opacity: 0.5;
|
|
669
670
|
transform: scale(1);
|
|
@@ -673,7 +674,7 @@ var pulse = styled4.keyframes`
|
|
|
673
674
|
transform: scale(1.2);
|
|
674
675
|
}
|
|
675
676
|
`;
|
|
676
|
-
var wave =
|
|
677
|
+
var wave = styled8.keyframes`
|
|
677
678
|
0%, 40%, 100% {
|
|
678
679
|
transform: translateY(0);
|
|
679
680
|
}
|
|
@@ -710,7 +711,7 @@ var getSizeValue = (size = "md") => {
|
|
|
710
711
|
};
|
|
711
712
|
}
|
|
712
713
|
};
|
|
713
|
-
var Container2 =
|
|
714
|
+
var Container2 = styled8__default.default.div`
|
|
714
715
|
display: inline-flex;
|
|
715
716
|
align-items: center;
|
|
716
717
|
gap: ${tokens.spacing.md};
|
|
@@ -722,7 +723,7 @@ var Container2 = styled4__default.default.div`
|
|
|
722
723
|
max-width: fit-content;
|
|
723
724
|
margin: 0 auto;
|
|
724
725
|
`;
|
|
725
|
-
var Avatar =
|
|
726
|
+
var Avatar = styled8__default.default.div`
|
|
726
727
|
width: ${(props) => getSizeValue(props.size).avatar};
|
|
727
728
|
height: ${(props) => getSizeValue(props.size).avatar};
|
|
728
729
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -733,23 +734,23 @@ var Avatar = styled4__default.default.div`
|
|
|
733
734
|
flex-shrink: 0;
|
|
734
735
|
box-shadow: ${tokens.shadows.glow.primary};
|
|
735
736
|
`;
|
|
736
|
-
var HeadphonesIcon =
|
|
737
|
+
var HeadphonesIcon = styled8__default.default.svg`
|
|
737
738
|
width: ${(props) => getSizeValue(props.size).icon};
|
|
738
739
|
height: ${(props) => getSizeValue(props.size).icon};
|
|
739
740
|
color: ${tokens.colors.text.primary};
|
|
740
741
|
`;
|
|
741
|
-
var Content =
|
|
742
|
+
var Content = styled8__default.default.div`
|
|
742
743
|
display: flex;
|
|
743
744
|
align-items: center;
|
|
744
745
|
gap: ${tokens.spacing.sm};
|
|
745
746
|
`;
|
|
746
|
-
var LoadingDots2 =
|
|
747
|
+
var LoadingDots2 = styled8__default.default.div`
|
|
747
748
|
display: flex;
|
|
748
749
|
align-items: center;
|
|
749
750
|
gap: ${(props) => props.variant === "wave" ? "2px" : `${tokens.spacing.xs}`};
|
|
750
751
|
padding: 0 ${tokens.spacing.xs};
|
|
751
752
|
`;
|
|
752
|
-
var Dot2 =
|
|
753
|
+
var Dot2 = styled8__default.default.span`
|
|
753
754
|
width: ${(props) => getSizeValue(props.size).dotSize};
|
|
754
755
|
height: ${(props) => getSizeValue(props.size).dotSize};
|
|
755
756
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -767,7 +768,7 @@ var Dot2 = styled4__default.default.span`
|
|
|
767
768
|
}}
|
|
768
769
|
1.4s ease-in-out infinite;
|
|
769
770
|
`;
|
|
770
|
-
var Message2 =
|
|
771
|
+
var Message2 = styled8__default.default.span`
|
|
771
772
|
font-size: ${(props) => getSizeValue(props.size).fontSize};
|
|
772
773
|
color: ${tokens.colors.text.secondary};
|
|
773
774
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
@@ -827,7 +828,7 @@ function AssistantThinking({
|
|
|
827
828
|
);
|
|
828
829
|
}
|
|
829
830
|
AssistantThinking.displayName = "AssistantThinking";
|
|
830
|
-
var Container3 =
|
|
831
|
+
var Container3 = styled8__default.default.div`
|
|
831
832
|
font-family: ${(props) => props.$variant === "code" ? tokens.typography.fontFamily.monospace : tokens.typography.fontFamily.primary};
|
|
832
833
|
white-space: pre-wrap;
|
|
833
834
|
word-break: break-word;
|
|
@@ -836,7 +837,7 @@ var Container3 = styled4__default.default.div`
|
|
|
836
837
|
text-rendering: optimizeSpeed;
|
|
837
838
|
contain: content;
|
|
838
839
|
`;
|
|
839
|
-
var Cursor =
|
|
840
|
+
var Cursor = styled8__default.default.span`
|
|
840
841
|
display: inline-block;
|
|
841
842
|
width: 2px;
|
|
842
843
|
height: 1em;
|
|
@@ -860,17 +861,15 @@ var StreamingTextBase = ({
|
|
|
860
861
|
content,
|
|
861
862
|
isStreaming = false,
|
|
862
863
|
typingSpeed: _typingSpeed = 50,
|
|
863
|
-
//
|
|
864
|
+
// Reserved for future use
|
|
864
865
|
cursor = true,
|
|
865
866
|
variant = "default",
|
|
866
867
|
onStreamComplete,
|
|
867
868
|
className
|
|
868
869
|
}) => {
|
|
869
|
-
const [displayedText, setDisplayedText] = react.useState(content);
|
|
870
870
|
const wasStreamingRef = react.useRef(isStreaming);
|
|
871
871
|
const completionCalledRef = react.useRef(false);
|
|
872
872
|
react.useEffect(() => {
|
|
873
|
-
setDisplayedText(content);
|
|
874
873
|
if (wasStreamingRef.current && !isStreaming && !completionCalledRef.current) {
|
|
875
874
|
completionCalledRef.current = true;
|
|
876
875
|
onStreamComplete?.();
|
|
@@ -879,45 +878,48 @@ var StreamingTextBase = ({
|
|
|
879
878
|
completionCalledRef.current = false;
|
|
880
879
|
}
|
|
881
880
|
wasStreamingRef.current = isStreaming;
|
|
882
|
-
}, [
|
|
881
|
+
}, [isStreaming, onStreamComplete]);
|
|
883
882
|
const showCursor = isStreaming && cursor;
|
|
884
883
|
return /* @__PURE__ */ jsxRuntime.jsxs(Container3, { $variant: variant, className, children: [
|
|
885
|
-
|
|
884
|
+
content,
|
|
886
885
|
showCursor && /* @__PURE__ */ jsxRuntime.jsx(Cursor, {})
|
|
887
886
|
] });
|
|
888
887
|
};
|
|
889
888
|
var StreamingText2 = react.memo(StreamingTextBase);
|
|
890
889
|
StreamingText2.displayName = "StreamingText";
|
|
891
|
-
var MessageContainer =
|
|
890
|
+
var MessageContainer = styled8__default.default.div`
|
|
892
891
|
display: flex;
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
padding: ${tokens.spacing.
|
|
892
|
+
flex-direction: column;
|
|
893
|
+
gap: ${tokens.spacing.xs};
|
|
894
|
+
padding: ${tokens.spacing.xs} 0;
|
|
896
895
|
max-width: 100%;
|
|
897
896
|
/* GPU acceleration hint for smooth rendering during streaming */
|
|
898
897
|
will-change: contents;
|
|
899
898
|
contain: content;
|
|
900
899
|
`;
|
|
901
|
-
var AvatarContainer =
|
|
900
|
+
var AvatarContainer = styled8__default.default.div`
|
|
901
|
+
display: flex;
|
|
902
|
+
align-items: center;
|
|
903
|
+
gap: ${tokens.spacing.xs};
|
|
902
904
|
flex-shrink: 0;
|
|
903
905
|
`;
|
|
904
|
-
var Avatar2 =
|
|
905
|
-
width:
|
|
906
|
-
height:
|
|
906
|
+
var Avatar2 = styled8__default.default.img`
|
|
907
|
+
width: 20px;
|
|
908
|
+
height: 20px;
|
|
907
909
|
border-radius: ${tokens.borderRadius.full};
|
|
908
910
|
object-fit: cover;
|
|
909
911
|
background-color: transparent;
|
|
910
912
|
`;
|
|
911
|
-
var AvatarInitials =
|
|
912
|
-
width:
|
|
913
|
-
height:
|
|
913
|
+
var AvatarInitials = styled8__default.default.div`
|
|
914
|
+
width: 20px;
|
|
915
|
+
height: 20px;
|
|
914
916
|
border-radius: ${tokens.borderRadius.full};
|
|
915
917
|
overflow: hidden;
|
|
916
918
|
display: flex;
|
|
917
919
|
align-items: center;
|
|
918
920
|
justify-content: center;
|
|
919
921
|
background-color: ${tokens.colors.secondary};
|
|
920
|
-
padding:
|
|
922
|
+
padding: 2px;
|
|
921
923
|
box-sizing: border-box;
|
|
922
924
|
|
|
923
925
|
img {
|
|
@@ -926,16 +928,20 @@ var AvatarInitials = styled4__default.default.div`
|
|
|
926
928
|
object-fit: contain;
|
|
927
929
|
}
|
|
928
930
|
`;
|
|
929
|
-
var
|
|
930
|
-
|
|
931
|
+
var AvatarLabel = styled8__default.default.span`
|
|
932
|
+
font-size: ${tokens.typography.fontSize.xs};
|
|
933
|
+
font-weight: ${tokens.typography.fontWeight.medium};
|
|
934
|
+
color: ${tokens.colors.text.secondary};
|
|
935
|
+
`;
|
|
936
|
+
var ContentContainer = styled8__default.default.div`
|
|
937
|
+
width: 100%;
|
|
931
938
|
min-width: 0;
|
|
932
939
|
`;
|
|
933
|
-
var MessageContent =
|
|
940
|
+
var MessageContent = styled8__default.default.div`
|
|
934
941
|
/* Use solid color instead of backdrop-filter for performance during streaming */
|
|
935
942
|
background-color: ${tokens.colors.surface.elevated};
|
|
936
|
-
padding: ${tokens.spacing.sm}
|
|
943
|
+
padding: ${tokens.spacing.sm};
|
|
937
944
|
border-radius: ${tokens.borderRadius.lg};
|
|
938
|
-
border-top-left-radius: ${tokens.borderRadius.sm};
|
|
939
945
|
color: ${tokens.colors.text.primary};
|
|
940
946
|
font-size: ${tokens.typography.fontSize.sm};
|
|
941
947
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
@@ -945,17 +951,16 @@ var MessageContent = styled4__default.default.div`
|
|
|
945
951
|
/* Optimize text rendering */
|
|
946
952
|
text-rendering: optimizeSpeed;
|
|
947
953
|
`;
|
|
948
|
-
var LoadingDots3 =
|
|
954
|
+
var LoadingDots3 = styled8__default.default.div`
|
|
949
955
|
display: flex;
|
|
950
956
|
gap: ${tokens.spacing.xs};
|
|
951
|
-
padding: ${tokens.spacing.sm}
|
|
957
|
+
padding: ${tokens.spacing.sm};
|
|
952
958
|
/* Use solid color instead of backdrop-filter for performance */
|
|
953
959
|
background-color: ${tokens.colors.surface.elevated};
|
|
954
960
|
border-radius: ${tokens.borderRadius.lg};
|
|
955
|
-
border-top-left-radius: ${tokens.borderRadius.sm};
|
|
956
961
|
width: fit-content;
|
|
957
962
|
`;
|
|
958
|
-
var pulse2 =
|
|
963
|
+
var pulse2 = styled8.keyframes`
|
|
959
964
|
0%, 100% {
|
|
960
965
|
opacity: 0.4;
|
|
961
966
|
}
|
|
@@ -963,7 +968,7 @@ var pulse2 = styled4.keyframes`
|
|
|
963
968
|
opacity: 1;
|
|
964
969
|
}
|
|
965
970
|
`;
|
|
966
|
-
var LoadingDot =
|
|
971
|
+
var LoadingDot = styled8__default.default.div`
|
|
967
972
|
width: ${tokens.spacing.sm};
|
|
968
973
|
height: ${tokens.spacing.sm};
|
|
969
974
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -972,7 +977,7 @@ var LoadingDot = styled4__default.default.div`
|
|
|
972
977
|
animation: ${pulse2} 1.4s ease-in-out infinite;
|
|
973
978
|
animation-delay: ${(props) => props.delay}s;
|
|
974
979
|
`;
|
|
975
|
-
var FileAttachmentContainer =
|
|
980
|
+
var FileAttachmentContainer = styled8__default.default.div`
|
|
976
981
|
display: flex;
|
|
977
982
|
align-items: center;
|
|
978
983
|
gap: ${tokens.spacing.sm};
|
|
@@ -1008,7 +1013,7 @@ var FileAttachmentContainer = styled4__default.default.div`
|
|
|
1008
1013
|
}
|
|
1009
1014
|
`}
|
|
1010
1015
|
`;
|
|
1011
|
-
var FileIconContainer =
|
|
1016
|
+
var FileIconContainer = styled8__default.default.div`
|
|
1012
1017
|
flex-shrink: 0;
|
|
1013
1018
|
width: ${tokens.spacing.xl};
|
|
1014
1019
|
height: ${tokens.spacing.xl};
|
|
@@ -1018,14 +1023,14 @@ var FileIconContainer = styled4__default.default.div`
|
|
|
1018
1023
|
font-size: ${tokens.typography.fontSize["2xl"]};
|
|
1019
1024
|
line-height: 1;
|
|
1020
1025
|
`;
|
|
1021
|
-
var FileInfo =
|
|
1026
|
+
var FileInfo = styled8__default.default.div`
|
|
1022
1027
|
flex: 1;
|
|
1023
1028
|
min-width: 0;
|
|
1024
1029
|
display: flex;
|
|
1025
1030
|
flex-direction: column;
|
|
1026
1031
|
gap: 2px;
|
|
1027
1032
|
`;
|
|
1028
|
-
var FileTitle =
|
|
1033
|
+
var FileTitle = styled8__default.default.div`
|
|
1029
1034
|
font-size: ${tokens.typography.fontSize.sm};
|
|
1030
1035
|
font-weight: ${tokens.typography.fontWeight.medium};
|
|
1031
1036
|
color: ${tokens.colors.text.primary};
|
|
@@ -1035,7 +1040,7 @@ var FileTitle = styled4__default.default.div`
|
|
|
1035
1040
|
text-overflow: ellipsis;
|
|
1036
1041
|
white-space: nowrap;
|
|
1037
1042
|
`;
|
|
1038
|
-
var FileMetadata =
|
|
1043
|
+
var FileMetadata = styled8__default.default.div`
|
|
1039
1044
|
display: flex;
|
|
1040
1045
|
align-items: center;
|
|
1041
1046
|
gap: ${tokens.spacing.xs};
|
|
@@ -1045,7 +1050,7 @@ var FileMetadata = styled4__default.default.div`
|
|
|
1045
1050
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
1046
1051
|
overflow: hidden;
|
|
1047
1052
|
`;
|
|
1048
|
-
var FileSubtitle =
|
|
1053
|
+
var FileSubtitle = styled8__default.default.span`
|
|
1049
1054
|
color: ${tokens.colors.text.tertiary};
|
|
1050
1055
|
white-space: nowrap;
|
|
1051
1056
|
overflow: hidden;
|
|
@@ -1101,13 +1106,13 @@ var FileAttachment = ({
|
|
|
1101
1106
|
}
|
|
1102
1107
|
);
|
|
1103
1108
|
};
|
|
1104
|
-
var AttachmentsContainer =
|
|
1109
|
+
var AttachmentsContainer = styled8__default.default.div`
|
|
1105
1110
|
display: flex;
|
|
1106
1111
|
flex-direction: column;
|
|
1107
1112
|
gap: ${tokens.spacing.sm};
|
|
1108
1113
|
margin-top: ${tokens.spacing.sm};
|
|
1109
1114
|
`;
|
|
1110
|
-
var ActionButton =
|
|
1115
|
+
var ActionButton = styled8__default.default.button`
|
|
1111
1116
|
display: inline-flex;
|
|
1112
1117
|
align-items: center;
|
|
1113
1118
|
gap: ${tokens.spacing.xs};
|
|
@@ -1131,19 +1136,19 @@ var ActionButton = styled4__default.default.button`
|
|
|
1131
1136
|
transform: scale(0.98);
|
|
1132
1137
|
}
|
|
1133
1138
|
`;
|
|
1134
|
-
var ActionsContainer2 =
|
|
1139
|
+
var ActionsContainer2 = styled8__default.default.div`
|
|
1135
1140
|
display: flex;
|
|
1136
1141
|
gap: ${tokens.spacing.xs};
|
|
1137
1142
|
flex-wrap: wrap;
|
|
1138
1143
|
margin-top: ${tokens.spacing.sm};
|
|
1139
1144
|
`;
|
|
1140
|
-
var MessageTime =
|
|
1145
|
+
var MessageTime = styled8__default.default.time`
|
|
1141
1146
|
font-size: ${tokens.typography.fontSize.xs};
|
|
1142
1147
|
color: ${tokens.colors.text.tertiary};
|
|
1143
1148
|
margin-top: ${tokens.spacing.xs};
|
|
1144
1149
|
display: block;
|
|
1145
1150
|
`;
|
|
1146
|
-
var StreamingIndicator =
|
|
1151
|
+
var StreamingIndicator = styled8__default.default.span`
|
|
1147
1152
|
display: inline-block;
|
|
1148
1153
|
width: ${tokens.spacing.xs};
|
|
1149
1154
|
height: ${tokens.spacing.xs};
|
|
@@ -1207,7 +1212,10 @@ var AssistantMessageBase = ({
|
|
|
1207
1212
|
] });
|
|
1208
1213
|
};
|
|
1209
1214
|
return /* @__PURE__ */ jsxRuntime.jsxs(MessageContainer, { className, children: [
|
|
1210
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1215
|
+
/* @__PURE__ */ jsxRuntime.jsxs(AvatarContainer, { children: [
|
|
1216
|
+
avatarUrl ? /* @__PURE__ */ jsxRuntime.jsx(Avatar2, { src: avatarUrl, alt: "Assistant avatar" }) : /* @__PURE__ */ jsxRuntime.jsx(AvatarInitials, { children: /* @__PURE__ */ jsxRuntime.jsx(Avatar2, { src: "/assets/avatar-transparent-bg.png", alt: "AI Assistant" }) }),
|
|
1217
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarLabel, { children: "Assistant" })
|
|
1218
|
+
] }),
|
|
1211
1219
|
/* @__PURE__ */ jsxRuntime.jsx(ContentContainer, { children: renderContent() })
|
|
1212
1220
|
] });
|
|
1213
1221
|
};
|
|
@@ -1217,7 +1225,78 @@ var TOOL_CALL_MARKER_REGEX = /<!--TOOL_CALL:([^:]+):(.+?)-->/g;
|
|
|
1217
1225
|
function stripToolCallMarkers(content) {
|
|
1218
1226
|
return content.replace(TOOL_CALL_MARKER_REGEX, "").trim();
|
|
1219
1227
|
}
|
|
1220
|
-
var
|
|
1228
|
+
var ERROR_PATTERNS = [
|
|
1229
|
+
/\bfailed\b/i,
|
|
1230
|
+
/\berror\b/i,
|
|
1231
|
+
/\bunable to\b/i,
|
|
1232
|
+
/\bcouldn't\b/i,
|
|
1233
|
+
/\bcan't\b/i,
|
|
1234
|
+
/\bcannot\b/i,
|
|
1235
|
+
/\bsomething went wrong\b/i,
|
|
1236
|
+
/\btry again\b/i,
|
|
1237
|
+
/\bunexpected\b/i,
|
|
1238
|
+
/\btimed out\b/i,
|
|
1239
|
+
/\bconnection\b.*\b(lost|failed|refused)\b/i
|
|
1240
|
+
];
|
|
1241
|
+
var CORRELATION_ID_PATTERNS = [
|
|
1242
|
+
/reference:\s*([a-f0-9-]+)/i,
|
|
1243
|
+
/correlation[_\s]?id:\s*([a-f0-9-]+)/i,
|
|
1244
|
+
/\[([a-f0-9]{8,})\]/i
|
|
1245
|
+
];
|
|
1246
|
+
function inferErrorCategory(content) {
|
|
1247
|
+
const lowerContent = content.toLowerCase();
|
|
1248
|
+
if (lowerContent.includes("network") || lowerContent.includes("internet") || lowerContent.includes("connection") || lowerContent.includes("offline") || lowerContent.includes("timed out")) {
|
|
1249
|
+
return "Network";
|
|
1250
|
+
}
|
|
1251
|
+
if (lowerContent.includes("unauthorized") || lowerContent.includes("authentication") || lowerContent.includes("login") || lowerContent.includes("session expired") || lowerContent.includes("credentials")) {
|
|
1252
|
+
return "Auth";
|
|
1253
|
+
}
|
|
1254
|
+
if (lowerContent.includes("oauth") || lowerContent.includes("reconnect") || lowerContent.includes("authorization") || lowerContent.includes("token") && lowerContent.includes("expired")) {
|
|
1255
|
+
return "OAuth";
|
|
1256
|
+
}
|
|
1257
|
+
if (lowerContent.includes("workflow") || lowerContent.includes("execution") || lowerContent.includes("failed to start") || lowerContent.includes("automation")) {
|
|
1258
|
+
return "Workflow";
|
|
1259
|
+
}
|
|
1260
|
+
return "Unknown";
|
|
1261
|
+
}
|
|
1262
|
+
function extractCorrelationId(content) {
|
|
1263
|
+
for (const pattern of CORRELATION_ID_PATTERNS) {
|
|
1264
|
+
const match = content.match(pattern);
|
|
1265
|
+
if (match?.[1]) {
|
|
1266
|
+
return match[1];
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
return void 0;
|
|
1270
|
+
}
|
|
1271
|
+
function detectErrorInMessage(content) {
|
|
1272
|
+
const hasError = ERROR_PATTERNS.some((pattern) => pattern.test(content));
|
|
1273
|
+
if (!hasError) {
|
|
1274
|
+
return { hasError: false };
|
|
1275
|
+
}
|
|
1276
|
+
return {
|
|
1277
|
+
hasError: true,
|
|
1278
|
+
category: inferErrorCategory(content),
|
|
1279
|
+
correlationId: extractCorrelationId(content),
|
|
1280
|
+
errorMessage: content
|
|
1281
|
+
};
|
|
1282
|
+
}
|
|
1283
|
+
function buildChatSnippet(messages, errorMessageContent, maxMessages = 5, maxLength = 1500) {
|
|
1284
|
+
const recentMessages = messages.filter((msg) => msg.content && msg.content !== errorMessageContent).slice(-maxMessages);
|
|
1285
|
+
const formattedMessages = recentMessages.map((msg) => {
|
|
1286
|
+
const role = msg.role === "user" ? "User" : "Assistant";
|
|
1287
|
+
const content = msg.content || "";
|
|
1288
|
+
const truncatedContent = content.length > 300 ? content.slice(0, 300) + "..." : content;
|
|
1289
|
+
return `[${role}]: ${truncatedContent}`;
|
|
1290
|
+
});
|
|
1291
|
+
const errorSnippet = errorMessageContent.length > 500 ? errorMessageContent.slice(0, 500) + "..." : errorMessageContent;
|
|
1292
|
+
formattedMessages.push(`[Assistant - Error]: ${errorSnippet}`);
|
|
1293
|
+
let result = formattedMessages.join("\n\n");
|
|
1294
|
+
if (result.length > maxLength) {
|
|
1295
|
+
result = result.slice(0, maxLength) + "\n...[truncated]";
|
|
1296
|
+
}
|
|
1297
|
+
return result;
|
|
1298
|
+
}
|
|
1299
|
+
var GenerativeUIContainer = styled8__default.default.div`
|
|
1221
1300
|
margin-top: ${tokens.spacing.sm};
|
|
1222
1301
|
margin-bottom: ${tokens.spacing.sm};
|
|
1223
1302
|
`;
|
|
@@ -1266,7 +1345,142 @@ var AssistantMessageAdapterBase = ({
|
|
|
1266
1345
|
};
|
|
1267
1346
|
var AssistantMessageAdapter = react.memo(AssistantMessageAdapterBase);
|
|
1268
1347
|
AssistantMessageAdapter.displayName = "AssistantMessageAdapter";
|
|
1269
|
-
|
|
1348
|
+
function createAssistantMessageAdapter(ThinkingIndicator, ToolCallsComponent) {
|
|
1349
|
+
const CustomAssistantMessageAdapter = ({
|
|
1350
|
+
message,
|
|
1351
|
+
isLoading,
|
|
1352
|
+
isGenerating,
|
|
1353
|
+
isCurrentMessage
|
|
1354
|
+
}) => {
|
|
1355
|
+
const showThinking = isLoading || isGenerating && !message?.content;
|
|
1356
|
+
const shouldShowToolCalls = isCurrentMessage && ToolCallsComponent;
|
|
1357
|
+
const rawContent = message?.content || "";
|
|
1358
|
+
const content = stripToolCallMarkers(rawContent);
|
|
1359
|
+
let generativeUIOutput = null;
|
|
1360
|
+
const msgWithUI = message;
|
|
1361
|
+
if (msgWithUI && typeof msgWithUI.generativeUI === "function") {
|
|
1362
|
+
try {
|
|
1363
|
+
generativeUIOutput = msgWithUI.generativeUI();
|
|
1364
|
+
} catch (e) {
|
|
1365
|
+
console.warn("[AssistantMessageAdapter] Error rendering generativeUI:", e);
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
const attachments = [];
|
|
1369
|
+
if (showThinking) {
|
|
1370
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1371
|
+
ThinkingIndicator ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { isLoading, isGenerating }) : /* @__PURE__ */ jsxRuntime.jsx(AssistantThinking, { message: "Thinking..." }),
|
|
1372
|
+
shouldShowToolCalls && /* @__PURE__ */ jsxRuntime.jsx(ToolCallsComponent, {})
|
|
1373
|
+
] });
|
|
1374
|
+
}
|
|
1375
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1376
|
+
shouldShowToolCalls && /* @__PURE__ */ jsxRuntime.jsx(ToolCallsComponent, {}),
|
|
1377
|
+
generativeUIOutput && /* @__PURE__ */ jsxRuntime.jsx(GenerativeUIContainer, { children: generativeUIOutput }),
|
|
1378
|
+
content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1379
|
+
AssistantMessage,
|
|
1380
|
+
{
|
|
1381
|
+
content,
|
|
1382
|
+
avatarInitials: "AI",
|
|
1383
|
+
isLoading: false,
|
|
1384
|
+
isStreaming: isGenerating,
|
|
1385
|
+
attachments,
|
|
1386
|
+
enableMarkdown: true
|
|
1387
|
+
}
|
|
1388
|
+
)
|
|
1389
|
+
] });
|
|
1390
|
+
};
|
|
1391
|
+
CustomAssistantMessageAdapter.displayName = "CustomAssistantMessageAdapter";
|
|
1392
|
+
return react.memo(CustomAssistantMessageAdapter);
|
|
1393
|
+
}
|
|
1394
|
+
function createAssistantMessageAdapterWithErrorReporting(onReportIssue, ThinkingIndicator, ToolCallsComponent) {
|
|
1395
|
+
const ErrorReportingAssistantMessageAdapter = ({
|
|
1396
|
+
message,
|
|
1397
|
+
isLoading,
|
|
1398
|
+
isGenerating,
|
|
1399
|
+
isCurrentMessage
|
|
1400
|
+
}) => {
|
|
1401
|
+
const { visibleMessages } = reactCore.useCopilotChat();
|
|
1402
|
+
const showThinking = isLoading || isGenerating && !message?.content;
|
|
1403
|
+
const shouldShowToolCalls = isCurrentMessage && ToolCallsComponent;
|
|
1404
|
+
const rawContent = message?.content || "";
|
|
1405
|
+
const content = stripToolCallMarkers(rawContent);
|
|
1406
|
+
const errorContext = react.useMemo(() => detectErrorInMessage(content), [content]);
|
|
1407
|
+
const chatSnippet = react.useMemo(() => {
|
|
1408
|
+
if (!errorContext.hasError) return "";
|
|
1409
|
+
return buildChatSnippet(visibleMessages, content);
|
|
1410
|
+
}, [visibleMessages, content, errorContext.hasError]);
|
|
1411
|
+
const actions = react.useMemo(() => {
|
|
1412
|
+
if (!errorContext.hasError || !onReportIssue || isGenerating) {
|
|
1413
|
+
return [];
|
|
1414
|
+
}
|
|
1415
|
+
return [
|
|
1416
|
+
{
|
|
1417
|
+
label: "Report Issue",
|
|
1418
|
+
onClick: () => {
|
|
1419
|
+
onReportIssue({
|
|
1420
|
+
errorCategory: errorContext.category,
|
|
1421
|
+
correlationId: errorContext.correlationId,
|
|
1422
|
+
// Include conversation history leading to the error
|
|
1423
|
+
chatSnippet
|
|
1424
|
+
});
|
|
1425
|
+
},
|
|
1426
|
+
icon: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1427
|
+
"svg",
|
|
1428
|
+
{
|
|
1429
|
+
width: "14",
|
|
1430
|
+
height: "14",
|
|
1431
|
+
viewBox: "0 0 24 24",
|
|
1432
|
+
fill: "none",
|
|
1433
|
+
stroke: "currentColor",
|
|
1434
|
+
strokeWidth: "2",
|
|
1435
|
+
strokeLinecap: "round",
|
|
1436
|
+
strokeLinejoin: "round",
|
|
1437
|
+
children: [
|
|
1438
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
1439
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
|
|
1440
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
|
|
1441
|
+
]
|
|
1442
|
+
}
|
|
1443
|
+
)
|
|
1444
|
+
}
|
|
1445
|
+
];
|
|
1446
|
+
}, [errorContext, chatSnippet, isGenerating]);
|
|
1447
|
+
let generativeUIOutput = null;
|
|
1448
|
+
const msgWithUI = message;
|
|
1449
|
+
if (msgWithUI && typeof msgWithUI.generativeUI === "function") {
|
|
1450
|
+
try {
|
|
1451
|
+
generativeUIOutput = msgWithUI.generativeUI();
|
|
1452
|
+
} catch (e) {
|
|
1453
|
+
console.warn("[AssistantMessageAdapter] Error rendering generativeUI:", e);
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
const attachments = [];
|
|
1457
|
+
if (showThinking) {
|
|
1458
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1459
|
+
ThinkingIndicator ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { isLoading, isGenerating }) : /* @__PURE__ */ jsxRuntime.jsx(AssistantThinking, { message: "Thinking..." }),
|
|
1460
|
+
shouldShowToolCalls && /* @__PURE__ */ jsxRuntime.jsx(ToolCallsComponent, {})
|
|
1461
|
+
] });
|
|
1462
|
+
}
|
|
1463
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1464
|
+
shouldShowToolCalls && /* @__PURE__ */ jsxRuntime.jsx(ToolCallsComponent, {}),
|
|
1465
|
+
generativeUIOutput && /* @__PURE__ */ jsxRuntime.jsx(GenerativeUIContainer, { children: generativeUIOutput }),
|
|
1466
|
+
content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1467
|
+
AssistantMessage,
|
|
1468
|
+
{
|
|
1469
|
+
content,
|
|
1470
|
+
avatarInitials: "AI",
|
|
1471
|
+
isLoading: false,
|
|
1472
|
+
isStreaming: isGenerating,
|
|
1473
|
+
attachments,
|
|
1474
|
+
enableMarkdown: true,
|
|
1475
|
+
actions
|
|
1476
|
+
}
|
|
1477
|
+
)
|
|
1478
|
+
] });
|
|
1479
|
+
};
|
|
1480
|
+
ErrorReportingAssistantMessageAdapter.displayName = "ErrorReportingAssistantMessageAdapter";
|
|
1481
|
+
return react.memo(ErrorReportingAssistantMessageAdapter);
|
|
1482
|
+
}
|
|
1483
|
+
var ChatInputContainer = styled8__default.default.div`
|
|
1270
1484
|
display: flex;
|
|
1271
1485
|
flex-direction: column;
|
|
1272
1486
|
width: 100%;
|
|
@@ -1282,7 +1496,7 @@ var ChatInputContainer = styled4__default.default.div`
|
|
|
1282
1496
|
padding: ${tokens.spacing.md};
|
|
1283
1497
|
}
|
|
1284
1498
|
`;
|
|
1285
|
-
var SuggestionsWrapper =
|
|
1499
|
+
var SuggestionsWrapper = styled8__default.default.div`
|
|
1286
1500
|
display: flex;
|
|
1287
1501
|
flex-direction: row;
|
|
1288
1502
|
flex-wrap: wrap;
|
|
@@ -1291,7 +1505,7 @@ var SuggestionsWrapper = styled4__default.default.div`
|
|
|
1291
1505
|
width: 100%;
|
|
1292
1506
|
box-sizing: border-box;
|
|
1293
1507
|
`;
|
|
1294
|
-
var SuggestionButton =
|
|
1508
|
+
var SuggestionButton = styled8__default.default.button`
|
|
1295
1509
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
1296
1510
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
1297
1511
|
font-size: 13px;
|
|
@@ -1330,7 +1544,7 @@ var SuggestionButton = styled4__default.default.button`
|
|
|
1330
1544
|
opacity: 0.4;
|
|
1331
1545
|
}
|
|
1332
1546
|
`;
|
|
1333
|
-
var InputWrapper =
|
|
1547
|
+
var InputWrapper = styled8__default.default.div`
|
|
1334
1548
|
display: flex;
|
|
1335
1549
|
align-items: flex-end; /* Align button to bottom when textarea expands */
|
|
1336
1550
|
gap: ${tokens.spacing.sm};
|
|
@@ -1348,7 +1562,7 @@ var InputWrapper = styled4__default.default.div`
|
|
|
1348
1562
|
background-color: rgba(50, 50, 52, 0.6);
|
|
1349
1563
|
}
|
|
1350
1564
|
`;
|
|
1351
|
-
var InputField =
|
|
1565
|
+
var InputField = styled8__default.default.textarea`
|
|
1352
1566
|
flex: 1;
|
|
1353
1567
|
border: none;
|
|
1354
1568
|
outline: none;
|
|
@@ -1373,7 +1587,7 @@ var InputField = styled4__default.default.textarea`
|
|
|
1373
1587
|
cursor: not-allowed;
|
|
1374
1588
|
}
|
|
1375
1589
|
`;
|
|
1376
|
-
var SubmitButton =
|
|
1590
|
+
var SubmitButton = styled8__default.default.button`
|
|
1377
1591
|
display: flex;
|
|
1378
1592
|
align-items: center;
|
|
1379
1593
|
justify-content: center;
|
|
@@ -1609,7 +1823,7 @@ var InputAdapter = ({
|
|
|
1609
1823
|
);
|
|
1610
1824
|
};
|
|
1611
1825
|
InputAdapter.displayName = "InputAdapter";
|
|
1612
|
-
var StyledUserMessage =
|
|
1826
|
+
var StyledUserMessage = styled8__default.default.button`
|
|
1613
1827
|
/* Base styles */
|
|
1614
1828
|
display: inline-flex;
|
|
1615
1829
|
align-items: center;
|
|
@@ -1679,7 +1893,7 @@ var StyledUserMessage = styled4__default.default.button`
|
|
|
1679
1893
|
}
|
|
1680
1894
|
}
|
|
1681
1895
|
|
|
1682
|
-
${({ $isPressed }) => $isPressed &&
|
|
1896
|
+
${({ $isPressed }) => $isPressed && styled8.css`
|
|
1683
1897
|
transform: translateY(0) scale(0.98);
|
|
1684
1898
|
box-shadow: ${tokens.shadows.sm};
|
|
1685
1899
|
|
|
@@ -1745,7 +1959,7 @@ function UserMessageBase({
|
|
|
1745
1959
|
}
|
|
1746
1960
|
var UserMessage = react.memo(UserMessageBase);
|
|
1747
1961
|
UserMessage.displayName = "UserMessage";
|
|
1748
|
-
var UserMessageWrapper =
|
|
1962
|
+
var UserMessageWrapper = styled8__default.default.div`
|
|
1749
1963
|
display: flex;
|
|
1750
1964
|
justify-content: flex-end;
|
|
1751
1965
|
width: 100%;
|
|
@@ -1765,7 +1979,7 @@ var UserMessageAdapterBase = ({
|
|
|
1765
1979
|
};
|
|
1766
1980
|
var UserMessageAdapter = react.memo(UserMessageAdapterBase);
|
|
1767
1981
|
UserMessageAdapter.displayName = "UserMessageAdapter";
|
|
1768
|
-
var pulse3 =
|
|
1982
|
+
var pulse3 = styled8.keyframes`
|
|
1769
1983
|
0%, 100% {
|
|
1770
1984
|
opacity: 1;
|
|
1771
1985
|
transform: scale(1);
|
|
@@ -1775,7 +1989,7 @@ var pulse3 = styled4.keyframes`
|
|
|
1775
1989
|
transform: scale(1.1);
|
|
1776
1990
|
}
|
|
1777
1991
|
`;
|
|
1778
|
-
var Container4 =
|
|
1992
|
+
var Container4 = styled8__default.default.div`
|
|
1779
1993
|
display: inline-flex;
|
|
1780
1994
|
align-items: center;
|
|
1781
1995
|
gap: ${(props) => {
|
|
@@ -1791,7 +2005,7 @@ var Container4 = styled4__default.default.div`
|
|
|
1791
2005
|
}};
|
|
1792
2006
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
1793
2007
|
`;
|
|
1794
|
-
var StatusDot =
|
|
2008
|
+
var StatusDot = styled8__default.default.div`
|
|
1795
2009
|
width: ${(props) => {
|
|
1796
2010
|
if (props.variant === "badge") {
|
|
1797
2011
|
switch (props.size) {
|
|
@@ -1852,7 +2066,7 @@ var StatusDot = styled4__default.default.div`
|
|
|
1852
2066
|
animation: ${(props) => props.status === "streaming" ? pulse3 : "none"} 2s ease-in-out infinite;
|
|
1853
2067
|
flex-shrink: 0;
|
|
1854
2068
|
`;
|
|
1855
|
-
var Label =
|
|
2069
|
+
var Label = styled8__default.default.span`
|
|
1856
2070
|
font-size: ${(props) => {
|
|
1857
2071
|
if (props.variant === "badge") {
|
|
1858
2072
|
switch (props.size) {
|
|
@@ -1879,7 +2093,7 @@ var Label = styled4__default.default.span`
|
|
|
1879
2093
|
color: ${tokens.colors.text.secondary};
|
|
1880
2094
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
1881
2095
|
`;
|
|
1882
|
-
var BadgeContainer =
|
|
2096
|
+
var BadgeContainer = styled8__default.default.div`
|
|
1883
2097
|
display: inline-flex;
|
|
1884
2098
|
align-items: center;
|
|
1885
2099
|
gap: ${(props) => {
|
|
@@ -1956,7 +2170,7 @@ var StreamStatusIndicator = ({
|
|
|
1956
2170
|
return /* @__PURE__ */ jsxRuntime.jsx(Container4, { size, className, role: "status", "aria-label": getStatusLabel(status), children: content });
|
|
1957
2171
|
};
|
|
1958
2172
|
StreamStatusIndicator.displayName = "StreamStatusIndicator";
|
|
1959
|
-
var HeaderContainer =
|
|
2173
|
+
var HeaderContainer = styled8__default.default.header`
|
|
1960
2174
|
display: flex;
|
|
1961
2175
|
align-items: center;
|
|
1962
2176
|
justify-content: space-between;
|
|
@@ -1972,14 +2186,14 @@ var HeaderContainer = styled4__default.default.header`
|
|
|
1972
2186
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
1973
2187
|
}
|
|
1974
2188
|
`;
|
|
1975
|
-
var HeaderContent =
|
|
2189
|
+
var HeaderContent = styled8__default.default.div`
|
|
1976
2190
|
display: flex;
|
|
1977
2191
|
flex-direction: column;
|
|
1978
2192
|
gap: ${tokens.spacing.xs};
|
|
1979
2193
|
flex: 1;
|
|
1980
2194
|
min-width: 0;
|
|
1981
2195
|
`;
|
|
1982
|
-
var HeaderTitle =
|
|
2196
|
+
var HeaderTitle = styled8__default.default.h1`
|
|
1983
2197
|
margin: 0;
|
|
1984
2198
|
font-size: ${tokens.typography.fontSize.base};
|
|
1985
2199
|
font-weight: ${tokens.typography.fontWeight.semibold};
|
|
@@ -1990,7 +2204,7 @@ var HeaderTitle = styled4__default.default.h1`
|
|
|
1990
2204
|
text-overflow: ellipsis;
|
|
1991
2205
|
white-space: nowrap;
|
|
1992
2206
|
`;
|
|
1993
|
-
var HeaderSubtitle =
|
|
2207
|
+
var HeaderSubtitle = styled8__default.default.p`
|
|
1994
2208
|
margin: 0;
|
|
1995
2209
|
font-size: ${tokens.typography.fontSize.sm};
|
|
1996
2210
|
color: ${tokens.colors.text.secondary};
|
|
@@ -2000,13 +2214,13 @@ var HeaderSubtitle = styled4__default.default.p`
|
|
|
2000
2214
|
text-overflow: ellipsis;
|
|
2001
2215
|
white-space: nowrap;
|
|
2002
2216
|
`;
|
|
2003
|
-
var HeaderActions =
|
|
2217
|
+
var HeaderActions = styled8__default.default.div`
|
|
2004
2218
|
display: flex;
|
|
2005
2219
|
align-items: center;
|
|
2006
2220
|
gap: ${tokens.spacing.xs};
|
|
2007
2221
|
margin-left: ${tokens.spacing.md};
|
|
2008
2222
|
`;
|
|
2009
|
-
var ActionButton2 =
|
|
2223
|
+
var ActionButton2 = styled8__default.default.button`
|
|
2010
2224
|
display: inline-flex;
|
|
2011
2225
|
align-items: center;
|
|
2012
2226
|
justify-content: center;
|
|
@@ -2123,7 +2337,7 @@ var Header = ({
|
|
|
2123
2337
|
] });
|
|
2124
2338
|
};
|
|
2125
2339
|
Header.displayName = "Header";
|
|
2126
|
-
var MessagesContainer =
|
|
2340
|
+
var MessagesContainer = styled8__default.default.div`
|
|
2127
2341
|
display: flex;
|
|
2128
2342
|
flex-direction: column;
|
|
2129
2343
|
flex: 1;
|
|
@@ -2135,18 +2349,14 @@ var MessagesContainer = styled4__default.default.div`
|
|
|
2135
2349
|
${tokens.colors.background.darker},
|
|
2136
2350
|
${tokens.colors.background.darkest}
|
|
2137
2351
|
);
|
|
2138
|
-
padding
|
|
2139
|
-
|
|
2352
|
+
/* Minimal horizontal padding to maximize message width */
|
|
2353
|
+
padding: ${tokens.spacing.sm} ${tokens.spacing.xs};
|
|
2354
|
+
gap: ${tokens.spacing.sm};
|
|
2140
2355
|
box-sizing: border-box;
|
|
2141
2356
|
|
|
2142
2357
|
/* Ensure proper scrolling behavior for child components */
|
|
2143
2358
|
position: relative;
|
|
2144
2359
|
min-height: 0;
|
|
2145
|
-
|
|
2146
|
-
/* Desktop padding */
|
|
2147
|
-
@media (min-width: ${tokens.breakpoints.mobile}px) {
|
|
2148
|
-
padding: ${tokens.spacing.md};
|
|
2149
|
-
}
|
|
2150
2360
|
`;
|
|
2151
2361
|
var Messages = ({
|
|
2152
2362
|
children,
|
|
@@ -2156,7 +2366,7 @@ var Messages = ({
|
|
|
2156
2366
|
return /* @__PURE__ */ jsxRuntime.jsx(MessagesContainer, { className, role: "region", "aria-label": ariaLabel, children });
|
|
2157
2367
|
};
|
|
2158
2368
|
Messages.displayName = "Messages";
|
|
2159
|
-
var WindowContainer =
|
|
2369
|
+
var WindowContainer = styled8__default.default.div`
|
|
2160
2370
|
display: flex;
|
|
2161
2371
|
flex-direction: column;
|
|
2162
2372
|
/* Glassmorphism effect */
|
|
@@ -2175,7 +2385,7 @@ var WindowContainer = styled4__default.default.div`
|
|
|
2175
2385
|
height: ${({ $height }) => $height};
|
|
2176
2386
|
|
|
2177
2387
|
/* Fullscreen state */
|
|
2178
|
-
${({ $isFullscreen }) => $isFullscreen &&
|
|
2388
|
+
${({ $isFullscreen }) => $isFullscreen && styled8.css`
|
|
2179
2389
|
width: 100vw;
|
|
2180
2390
|
height: 100vh;
|
|
2181
2391
|
border-radius: 0;
|
|
@@ -2187,7 +2397,7 @@ var WindowContainer = styled4__default.default.div`
|
|
|
2187
2397
|
`}
|
|
2188
2398
|
|
|
2189
2399
|
/* Minimized state */
|
|
2190
|
-
${({ $isMinimized }) => $isMinimized &&
|
|
2400
|
+
${({ $isMinimized }) => $isMinimized && styled8.css`
|
|
2191
2401
|
height: 60px;
|
|
2192
2402
|
width: 300px;
|
|
2193
2403
|
box-shadow: ${tokens.shadows.sm};
|
|
@@ -2206,7 +2416,7 @@ var WindowContainer = styled4__default.default.div`
|
|
|
2206
2416
|
|
|
2207
2417
|
/* Responsive behavior for smaller screens */
|
|
2208
2418
|
@media (max-width: ${tokens.breakpoints.tablet}px) {
|
|
2209
|
-
${({ $isFullscreen, $isMinimized }) => !$isFullscreen && !$isMinimized &&
|
|
2419
|
+
${({ $isFullscreen, $isMinimized }) => !$isFullscreen && !$isMinimized && styled8.css`
|
|
2210
2420
|
width: 100vw;
|
|
2211
2421
|
height: 100vh;
|
|
2212
2422
|
border-radius: 0;
|
|
@@ -2249,7 +2459,7 @@ var Window = ({
|
|
|
2249
2459
|
);
|
|
2250
2460
|
};
|
|
2251
2461
|
Window.displayName = "Window";
|
|
2252
|
-
var GlobalSidebarStyles =
|
|
2462
|
+
var GlobalSidebarStyles = styled8.createGlobalStyle`
|
|
2253
2463
|
/* Override CopilotKit's default positioning - start off-screen */
|
|
2254
2464
|
.copilotKitSidebar {
|
|
2255
2465
|
position: fixed !important;
|
|
@@ -2357,7 +2567,7 @@ var GlobalSidebarStyles = styled4.createGlobalStyle`
|
|
|
2357
2567
|
}
|
|
2358
2568
|
}
|
|
2359
2569
|
`;
|
|
2360
|
-
var StyledChatButton =
|
|
2570
|
+
var StyledChatButton = styled8__default.default.button`
|
|
2361
2571
|
position: fixed;
|
|
2362
2572
|
bottom: 8px;
|
|
2363
2573
|
right: 8px;
|
|
@@ -2409,7 +2619,7 @@ var CustomCopilotSidebar = ({
|
|
|
2409
2619
|
};
|
|
2410
2620
|
return /* @__PURE__ */ jsxRuntime.jsx(Header, { title: "AI Assistant", subtitle: "How can I help you today?", onClose: handleClose });
|
|
2411
2621
|
};
|
|
2412
|
-
const
|
|
2622
|
+
const WindowAdapter2 = (props) => {
|
|
2413
2623
|
return /* @__PURE__ */ jsxRuntime.jsx(Window, { children: props.children });
|
|
2414
2624
|
};
|
|
2415
2625
|
const MessagesAdapter = (props) => {
|
|
@@ -2465,7 +2675,7 @@ var CustomCopilotSidebar = ({
|
|
|
2465
2675
|
UserMessage: UserMessageAdapter,
|
|
2466
2676
|
Input: InputAdapter,
|
|
2467
2677
|
Header: HeaderAdapter,
|
|
2468
|
-
Window:
|
|
2678
|
+
Window: WindowAdapter2,
|
|
2469
2679
|
Messages: MessagesAdapter,
|
|
2470
2680
|
Button: CustomButton,
|
|
2471
2681
|
instructions,
|
|
@@ -2487,12 +2697,12 @@ var CustomCopilotSidebar = ({
|
|
|
2487
2697
|
] });
|
|
2488
2698
|
};
|
|
2489
2699
|
CustomCopilotSidebar.displayName = "CustomCopilotSidebar";
|
|
2490
|
-
var GlobalSidebarStyles2 =
|
|
2700
|
+
var GlobalSidebarStyles2 = styled8.createGlobalStyle`
|
|
2491
2701
|
/* Override CopilotKit's content wrapper to respect safe areas in landscape */
|
|
2492
2702
|
@media (orientation: landscape) {
|
|
2493
2703
|
.copilotKitSidebarContentWrapper {
|
|
2494
|
-
right:
|
|
2495
|
-
left:
|
|
2704
|
+
right: var(--safe-area-right, 0px) !important;
|
|
2705
|
+
left: var(--safe-area-left, 0px) !important;
|
|
2496
2706
|
}
|
|
2497
2707
|
}
|
|
2498
2708
|
|
|
@@ -2521,18 +2731,18 @@ var GlobalSidebarStyles2 = styled4.createGlobalStyle`
|
|
|
2521
2731
|
/* Override CopilotKit defaults for mobile */
|
|
2522
2732
|
position: fixed !important;
|
|
2523
2733
|
/* TOP: Account for status bar safe area (Android notch/status bar) */
|
|
2524
|
-
top: calc(${tokens.spacing.sm} +
|
|
2734
|
+
top: calc(${tokens.spacing.sm} + var(--safe-area-top, 0px)) !important;
|
|
2525
2735
|
/* RIGHT: Account for landscape notch on right side */
|
|
2526
|
-
right: calc(${tokens.spacing.sm} +
|
|
2736
|
+
right: calc(${tokens.spacing.sm} + var(--safe-area-right, 0px)) !important;
|
|
2527
2737
|
/* BOTTOM: Account for horizontal navbar (52px) + safe area for Android nav buttons */
|
|
2528
|
-
bottom: calc(52px + ${tokens.spacing.sm} +
|
|
2738
|
+
bottom: calc(52px + ${tokens.spacing.sm} + var(--safe-area-bottom, 0px)) !important;
|
|
2529
2739
|
/* LEFT: Account for landscape notch on left side */
|
|
2530
|
-
left: calc(${tokens.spacing.sm} +
|
|
2531
|
-
width: calc(100vw - ${tokens.spacing.lg} -
|
|
2740
|
+
left: calc(${tokens.spacing.sm} + var(--safe-area-left, 0px)) !important;
|
|
2741
|
+
width: calc(100vw - ${tokens.spacing.lg} - var(--safe-area-left, 0px) - var(--safe-area-right, 0px)) !important;
|
|
2532
2742
|
/* Adjust height to account for top, bottom safe areas, and navbar */
|
|
2533
|
-
height: calc(100vh - ${tokens.spacing.lg} -
|
|
2534
|
-
max-width: calc(100vw - ${tokens.spacing.lg} -
|
|
2535
|
-
max-height: calc(100vh - ${tokens.spacing.lg} -
|
|
2743
|
+
height: calc(100vh - ${tokens.spacing.lg} - var(--safe-area-top, 0px) - 52px - var(--safe-area-bottom, 0px)) !important;
|
|
2744
|
+
max-width: calc(100vw - ${tokens.spacing.lg} - var(--safe-area-left, 0px) - var(--safe-area-right, 0px)) !important;
|
|
2745
|
+
max-height: calc(100vh - ${tokens.spacing.lg} - var(--safe-area-top, 0px) - 52px - var(--safe-area-bottom, 0px)) !important;
|
|
2536
2746
|
margin: 0 !important;
|
|
2537
2747
|
border-radius: ${tokens.borderRadius.xl} !important;
|
|
2538
2748
|
|
|
@@ -2569,17 +2779,17 @@ var GlobalSidebarStyles2 = styled4.createGlobalStyle`
|
|
|
2569
2779
|
.copilotKitSidebar [role="dialog"] {
|
|
2570
2780
|
inset: auto !important;
|
|
2571
2781
|
/* TOP: Account for status bar safe area */
|
|
2572
|
-
top: calc(${tokens.spacing.sm} +
|
|
2782
|
+
top: calc(${tokens.spacing.sm} + var(--safe-area-top, 0px)) !important;
|
|
2573
2783
|
/* RIGHT: Account for landscape notch on right side */
|
|
2574
|
-
right: calc(${tokens.spacing.sm} +
|
|
2784
|
+
right: calc(${tokens.spacing.sm} + var(--safe-area-right, 0px)) !important;
|
|
2575
2785
|
/* BOTTOM: Account for horizontal navbar (52px) + safe area */
|
|
2576
|
-
bottom: calc(52px + ${tokens.spacing.sm} +
|
|
2786
|
+
bottom: calc(52px + ${tokens.spacing.sm} + var(--safe-area-bottom, 0px)) !important;
|
|
2577
2787
|
left: auto !important;
|
|
2578
2788
|
width: 28rem !important;
|
|
2579
2789
|
/* Adjust height to account for top, bottom safe areas, and navbar */
|
|
2580
|
-
height: calc(100vh - ${tokens.spacing.lg} -
|
|
2790
|
+
height: calc(100vh - ${tokens.spacing.lg} - var(--safe-area-top, 0px) - 52px - var(--safe-area-bottom, 0px)) !important;
|
|
2581
2791
|
max-width: 28rem !important;
|
|
2582
|
-
max-height: calc(100vh - ${tokens.spacing.lg} -
|
|
2792
|
+
max-height: calc(100vh - ${tokens.spacing.lg} - var(--safe-area-top, 0px) - 52px - var(--safe-area-bottom, 0px)) !important;
|
|
2583
2793
|
}
|
|
2584
2794
|
}
|
|
2585
2795
|
|
|
@@ -2612,8 +2822,8 @@ var GlobalSidebarStyles2 = styled4.createGlobalStyle`
|
|
|
2612
2822
|
left: auto !important;
|
|
2613
2823
|
right: 1.5rem !important;
|
|
2614
2824
|
/* Use top/bottom ONLY - let browser calculate height (more reliable than explicit height) */
|
|
2615
|
-
top:
|
|
2616
|
-
bottom: calc(52px +
|
|
2825
|
+
top: var(--safe-area-top, 0px) !important;
|
|
2826
|
+
bottom: calc(52px + var(--safe-area-bottom, 0px)) !important;
|
|
2617
2827
|
/* Remove explicit height - let top/bottom define it */
|
|
2618
2828
|
height: auto !important;
|
|
2619
2829
|
max-height: none !important;
|
|
@@ -2767,10 +2977,10 @@ var GlobalSidebarStyles2 = styled4.createGlobalStyle`
|
|
|
2767
2977
|
box-shadow: none !important;
|
|
2768
2978
|
}
|
|
2769
2979
|
`;
|
|
2770
|
-
var StyledChatButton2 =
|
|
2980
|
+
var StyledChatButton2 = styled8__default.default.button`
|
|
2771
2981
|
position: fixed;
|
|
2772
|
-
bottom: calc(${tokens.spacing.sm} +
|
|
2773
|
-
right: calc(${tokens.spacing.sm} +
|
|
2982
|
+
bottom: calc(${tokens.spacing.sm} + var(--safe-area-bottom, 0px));
|
|
2983
|
+
right: calc(${tokens.spacing.sm} + var(--safe-area-right, 0px));
|
|
2774
2984
|
width: 36px;
|
|
2775
2985
|
height: 36px;
|
|
2776
2986
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -2801,17 +3011,11 @@ var StyledChatButton2 = styled4__default.default.button`
|
|
|
2801
3011
|
fill: ${tokens.colors.text.primary};
|
|
2802
3012
|
}
|
|
2803
3013
|
`;
|
|
2804
|
-
|
|
2805
|
-
children
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
className,
|
|
2810
|
-
disabled = false,
|
|
2811
|
-
disabledReason = "Start a free trial to enable AI chat",
|
|
2812
|
-
onError,
|
|
2813
|
-
renderError
|
|
2814
|
-
}) {
|
|
3014
|
+
var WindowAdapter = (props) => {
|
|
3015
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Window, { children: props.children });
|
|
3016
|
+
};
|
|
3017
|
+
WindowAdapter.displayName = "WindowAdapter";
|
|
3018
|
+
function createHeaderAdapter(onSetOpen) {
|
|
2815
3019
|
const HeaderAdapterWithClose = (_props) => {
|
|
2816
3020
|
const { setOpen } = reactUi.useChatContext();
|
|
2817
3021
|
const handleClose = () => {
|
|
@@ -2820,9 +3024,10 @@ function CustomCopilotSidebar2({
|
|
|
2820
3024
|
};
|
|
2821
3025
|
return /* @__PURE__ */ jsxRuntime.jsx(Header, { title: "AI Assistant", onClose: handleClose });
|
|
2822
3026
|
};
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
3027
|
+
HeaderAdapterWithClose.displayName = "HeaderAdapterWithClose";
|
|
3028
|
+
return HeaderAdapterWithClose;
|
|
3029
|
+
}
|
|
3030
|
+
function createButtonAdapter(disabled, disabledReason, onSetOpen) {
|
|
2826
3031
|
const CustomButton = (_props) => {
|
|
2827
3032
|
const { open, setOpen } = reactUi.useChatContext();
|
|
2828
3033
|
const handleClick = () => {
|
|
@@ -2859,16 +3064,45 @@ function CustomCopilotSidebar2({
|
|
|
2859
3064
|
}
|
|
2860
3065
|
);
|
|
2861
3066
|
};
|
|
3067
|
+
CustomButton.displayName = "CustomButton";
|
|
3068
|
+
return CustomButton;
|
|
3069
|
+
}
|
|
3070
|
+
function CustomCopilotSidebar2({
|
|
3071
|
+
children,
|
|
3072
|
+
defaultOpen = false,
|
|
3073
|
+
onSetOpen,
|
|
3074
|
+
instructions,
|
|
3075
|
+
className,
|
|
3076
|
+
disabled = false,
|
|
3077
|
+
disabledReason = "Start a free trial to enable AI chat",
|
|
3078
|
+
onError,
|
|
3079
|
+
renderError,
|
|
3080
|
+
ThinkingIndicator,
|
|
3081
|
+
ToolCallsComponent,
|
|
3082
|
+
onReportIssue
|
|
3083
|
+
}) {
|
|
3084
|
+
const HeaderAdapterWithClose = react.useMemo(
|
|
3085
|
+
() => createHeaderAdapter(onSetOpen),
|
|
3086
|
+
[onSetOpen]
|
|
3087
|
+
);
|
|
3088
|
+
const CustomButton = react.useMemo(
|
|
3089
|
+
() => createButtonAdapter(disabled, disabledReason, onSetOpen),
|
|
3090
|
+
[disabled, disabledReason, onSetOpen]
|
|
3091
|
+
);
|
|
3092
|
+
const AssistantMessageAdapterMemo = react.useMemo(
|
|
3093
|
+
() => onReportIssue ? createAssistantMessageAdapterWithErrorReporting(onReportIssue, ThinkingIndicator, ToolCallsComponent) : ThinkingIndicator || ToolCallsComponent ? createAssistantMessageAdapter(ThinkingIndicator, ToolCallsComponent) : AssistantMessageAdapter,
|
|
3094
|
+
[ThinkingIndicator, ToolCallsComponent, onReportIssue]
|
|
3095
|
+
);
|
|
2862
3096
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2863
3097
|
/* @__PURE__ */ jsxRuntime.jsx(GlobalSidebarStyles2, {}),
|
|
2864
3098
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2865
3099
|
reactUi.CopilotSidebar,
|
|
2866
3100
|
{
|
|
2867
|
-
AssistantMessage:
|
|
3101
|
+
AssistantMessage: AssistantMessageAdapterMemo,
|
|
2868
3102
|
UserMessage: UserMessageAdapter,
|
|
2869
3103
|
Input: InputAdapter,
|
|
2870
3104
|
Header: HeaderAdapterWithClose,
|
|
2871
|
-
Window:
|
|
3105
|
+
Window: WindowAdapter,
|
|
2872
3106
|
Button: CustomButton,
|
|
2873
3107
|
RenderActionExecutionMessage: ActionExecutionAdapter,
|
|
2874
3108
|
instructions,
|
|
@@ -2889,7 +3123,7 @@ function CustomCopilotSidebar2({
|
|
|
2889
3123
|
] });
|
|
2890
3124
|
}
|
|
2891
3125
|
CustomCopilotSidebar2.displayName = "CustomCopilotSidebar";
|
|
2892
|
-
var FooterContainer =
|
|
3126
|
+
var FooterContainer = styled8__default.default.footer`
|
|
2893
3127
|
display: flex;
|
|
2894
3128
|
align-items: center;
|
|
2895
3129
|
justify-content: center;
|
|
@@ -2898,7 +3132,7 @@ var FooterContainer = styled4__default.default.footer`
|
|
|
2898
3132
|
border-top: 1px solid ${tokens.colors.border.default};
|
|
2899
3133
|
min-height: 44px;
|
|
2900
3134
|
`;
|
|
2901
|
-
var FooterContent =
|
|
3135
|
+
var FooterContent = styled8__default.default.div`
|
|
2902
3136
|
display: flex;
|
|
2903
3137
|
align-items: center;
|
|
2904
3138
|
justify-content: space-between;
|
|
@@ -2911,13 +3145,13 @@ var FooterContent = styled4__default.default.div`
|
|
|
2911
3145
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
2912
3146
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
2913
3147
|
`;
|
|
2914
|
-
var FooterBranding =
|
|
3148
|
+
var FooterBranding = styled8__default.default.div`
|
|
2915
3149
|
display: flex;
|
|
2916
3150
|
align-items: center;
|
|
2917
3151
|
gap: ${tokens.spacing.xs};
|
|
2918
3152
|
flex-shrink: 0;
|
|
2919
3153
|
`;
|
|
2920
|
-
var FooterStatus =
|
|
3154
|
+
var FooterStatus = styled8__default.default.div`
|
|
2921
3155
|
display: flex;
|
|
2922
3156
|
align-items: center;
|
|
2923
3157
|
gap: ${tokens.spacing.xs};
|
|
@@ -2927,7 +3161,7 @@ var FooterStatus = styled4__default.default.div`
|
|
|
2927
3161
|
font-size: ${tokens.typography.fontSize.xs};
|
|
2928
3162
|
opacity: 0.8;
|
|
2929
3163
|
`;
|
|
2930
|
-
var FooterLink =
|
|
3164
|
+
var FooterLink = styled8__default.default.a`
|
|
2931
3165
|
color: ${tokens.colors.primary};
|
|
2932
3166
|
text-decoration: none;
|
|
2933
3167
|
transition: opacity ${tokens.transitions.fast};
|
|
@@ -2975,13 +3209,13 @@ var Footer = ({
|
|
|
2975
3209
|
] }) });
|
|
2976
3210
|
};
|
|
2977
3211
|
Footer.displayName = "Footer";
|
|
2978
|
-
var InputContainer =
|
|
3212
|
+
var InputContainer = styled8__default.default.div`
|
|
2979
3213
|
display: flex;
|
|
2980
3214
|
flex-direction: column;
|
|
2981
3215
|
width: 100%;
|
|
2982
3216
|
position: relative;
|
|
2983
3217
|
`;
|
|
2984
|
-
var InputWrapper2 =
|
|
3218
|
+
var InputWrapper2 = styled8__default.default.div`
|
|
2985
3219
|
display: flex;
|
|
2986
3220
|
align-items: flex-end;
|
|
2987
3221
|
gap: ${tokens.spacing.sm};
|
|
@@ -3001,7 +3235,7 @@ var InputWrapper2 = styled4__default.default.div`
|
|
|
3001
3235
|
border-color: ${tokens.colors.border.subtle};
|
|
3002
3236
|
}
|
|
3003
3237
|
`;
|
|
3004
|
-
var TextArea =
|
|
3238
|
+
var TextArea = styled8__default.default.textarea`
|
|
3005
3239
|
flex: 1;
|
|
3006
3240
|
min-height: ${tokens.spacing.lg};
|
|
3007
3241
|
max-height: ${(props) => `${(props.$maxRows || 5) * 24}px`};
|
|
@@ -3047,7 +3281,7 @@ var TextArea = styled4__default.default.textarea`
|
|
|
3047
3281
|
background: ${tokens.colors.scrollbar.thumbHover};
|
|
3048
3282
|
}
|
|
3049
3283
|
`;
|
|
3050
|
-
var SendButton =
|
|
3284
|
+
var SendButton = styled8__default.default.button`
|
|
3051
3285
|
display: flex;
|
|
3052
3286
|
align-items: center;
|
|
3053
3287
|
justify-content: center;
|
|
@@ -3177,7 +3411,7 @@ var Input = ({
|
|
|
3177
3411
|
)
|
|
3178
3412
|
] }) });
|
|
3179
3413
|
};
|
|
3180
|
-
var MessagesListContainer =
|
|
3414
|
+
var MessagesListContainer = styled8__default.default.div`
|
|
3181
3415
|
display: flex;
|
|
3182
3416
|
flex-direction: column;
|
|
3183
3417
|
width: 100%;
|
|
@@ -3217,7 +3451,7 @@ var MessagesListContainer = styled4__default.default.div`
|
|
|
3217
3451
|
/* Ensure proper rendering on mobile */
|
|
3218
3452
|
-webkit-overflow-scrolling: touch;
|
|
3219
3453
|
`;
|
|
3220
|
-
var MessagesListContent =
|
|
3454
|
+
var MessagesListContent = styled8__default.default.div`
|
|
3221
3455
|
display: flex;
|
|
3222
3456
|
flex-direction: column;
|
|
3223
3457
|
gap: ${tokens.spacing.sm};
|
|
@@ -3333,19 +3567,19 @@ var MessagesList = ({
|
|
|
3333
3567
|
}
|
|
3334
3568
|
);
|
|
3335
3569
|
};
|
|
3336
|
-
var StyledUserMessage2 =
|
|
3570
|
+
var StyledUserMessage2 = styled8__default.default.div`
|
|
3337
3571
|
display: flex;
|
|
3338
3572
|
justify-content: flex-end;
|
|
3339
3573
|
align-items: flex-start;
|
|
3340
|
-
margin: ${tokens.spacing.
|
|
3341
|
-
padding: 0
|
|
3574
|
+
margin: ${tokens.spacing.xs} 0;
|
|
3575
|
+
padding: 0;
|
|
3342
3576
|
width: 100%;
|
|
3343
3577
|
`;
|
|
3344
|
-
var MessageBubble =
|
|
3578
|
+
var MessageBubble = styled8__default.default.div`
|
|
3345
3579
|
display: flex;
|
|
3346
3580
|
flex-direction: column;
|
|
3347
|
-
max-width:
|
|
3348
|
-
padding: ${tokens.spacing.sm}
|
|
3581
|
+
max-width: 85%;
|
|
3582
|
+
padding: ${tokens.spacing.sm};
|
|
3349
3583
|
border-radius: ${tokens.borderRadius.lg};
|
|
3350
3584
|
|
|
3351
3585
|
/* User message colors - dark blue from brand */
|
|
@@ -3368,7 +3602,7 @@ var MessageBubble = styled4__default.default.div`
|
|
|
3368
3602
|
opacity: 0.9;
|
|
3369
3603
|
}
|
|
3370
3604
|
`;
|
|
3371
|
-
var MessageContent2 =
|
|
3605
|
+
var MessageContent2 = styled8__default.default.p`
|
|
3372
3606
|
margin: 0;
|
|
3373
3607
|
font-size: ${tokens.typography.fontSize.sm};
|
|
3374
3608
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
@@ -3377,13 +3611,13 @@ var MessageContent2 = styled4__default.default.p`
|
|
|
3377
3611
|
word-break: break-word;
|
|
3378
3612
|
white-space: pre-wrap;
|
|
3379
3613
|
`;
|
|
3380
|
-
var MessageTime2 =
|
|
3614
|
+
var MessageTime2 = styled8__default.default.time`
|
|
3381
3615
|
font-size: ${tokens.typography.fontSize.xs};
|
|
3382
3616
|
opacity: 0.7;
|
|
3383
3617
|
margin-top: ${tokens.spacing.xs};
|
|
3384
3618
|
text-align: right;
|
|
3385
3619
|
`;
|
|
3386
|
-
var ActionButton3 =
|
|
3620
|
+
var ActionButton3 = styled8__default.default.button`
|
|
3387
3621
|
display: inline-flex;
|
|
3388
3622
|
align-items: center;
|
|
3389
3623
|
gap: ${tokens.spacing.xs};
|
|
@@ -3407,12 +3641,12 @@ var ActionButton3 = styled4__default.default.button`
|
|
|
3407
3641
|
transform: scale(0.98);
|
|
3408
3642
|
}
|
|
3409
3643
|
`;
|
|
3410
|
-
var ActionsContainer3 =
|
|
3644
|
+
var ActionsContainer3 = styled8__default.default.div`
|
|
3411
3645
|
display: flex;
|
|
3412
3646
|
gap: ${tokens.spacing.xs};
|
|
3413
3647
|
flex-wrap: wrap;
|
|
3414
3648
|
`;
|
|
3415
|
-
var StreamingIndicator2 =
|
|
3649
|
+
var StreamingIndicator2 = styled8__default.default.span`
|
|
3416
3650
|
display: inline-block;
|
|
3417
3651
|
width: ${tokens.spacing.xs};
|
|
3418
3652
|
height: ${tokens.spacing.xs};
|
|
@@ -3433,7 +3667,7 @@ var StreamingIndicator2 = styled4__default.default.span`
|
|
|
3433
3667
|
}
|
|
3434
3668
|
}
|
|
3435
3669
|
`;
|
|
3436
|
-
var Avatar3 =
|
|
3670
|
+
var Avatar3 = styled8__default.default.img`
|
|
3437
3671
|
width: ${tokens.spacing.xl};
|
|
3438
3672
|
height: ${tokens.spacing.xl};
|
|
3439
3673
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -3466,7 +3700,7 @@ var UserMessage2 = ({
|
|
|
3466
3700
|
avatarUrl && /* @__PURE__ */ jsxRuntime.jsx(Avatar3, { src: avatarUrl, alt: username || "User" })
|
|
3467
3701
|
] });
|
|
3468
3702
|
};
|
|
3469
|
-
var ErrorContainer =
|
|
3703
|
+
var ErrorContainer = styled8__default.default.div`
|
|
3470
3704
|
display: flex;
|
|
3471
3705
|
align-items: flex-start;
|
|
3472
3706
|
gap: ${tokens.spacing.sm};
|
|
@@ -3480,7 +3714,7 @@ var ErrorContainer = styled4__default.default.div`
|
|
|
3480
3714
|
width: ${(props) => props.variant === "banner" ? "100%" : "auto"};
|
|
3481
3715
|
max-width: ${(props) => props.variant === "banner" ? "100%" : "600px"};
|
|
3482
3716
|
`;
|
|
3483
|
-
var IconContainer =
|
|
3717
|
+
var IconContainer = styled8__default.default.div`
|
|
3484
3718
|
flex-shrink: 0;
|
|
3485
3719
|
width: 20px;
|
|
3486
3720
|
height: 20px;
|
|
@@ -3497,29 +3731,29 @@ var ErrorIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
|
|
|
3497
3731
|
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" })
|
|
3498
3732
|
}
|
|
3499
3733
|
);
|
|
3500
|
-
var Content2 =
|
|
3734
|
+
var Content2 = styled8__default.default.div`
|
|
3501
3735
|
flex: 1;
|
|
3502
3736
|
display: flex;
|
|
3503
3737
|
flex-direction: column;
|
|
3504
3738
|
gap: ${tokens.spacing.sm};
|
|
3505
3739
|
`;
|
|
3506
|
-
var ErrorMessage =
|
|
3740
|
+
var ErrorMessage = styled8__default.default.div`
|
|
3507
3741
|
font-size: ${tokens.typography.fontSize.sm};
|
|
3508
3742
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
3509
3743
|
color: ${tokens.colors.text.primary};
|
|
3510
3744
|
`;
|
|
3511
|
-
var ErrorDetails =
|
|
3745
|
+
var ErrorDetails = styled8__default.default.div`
|
|
3512
3746
|
font-size: ${tokens.typography.fontSize.xs};
|
|
3513
3747
|
line-height: 1.4;
|
|
3514
3748
|
color: ${tokens.colors.text.secondary};
|
|
3515
3749
|
margin-top: ${tokens.spacing.xs};
|
|
3516
3750
|
`;
|
|
3517
|
-
var Actions2 =
|
|
3751
|
+
var Actions2 = styled8__default.default.div`
|
|
3518
3752
|
display: flex;
|
|
3519
3753
|
gap: ${tokens.spacing.sm};
|
|
3520
3754
|
margin-top: ${tokens.spacing.sm};
|
|
3521
3755
|
`;
|
|
3522
|
-
var Button2 =
|
|
3756
|
+
var Button2 = styled8__default.default.button`
|
|
3523
3757
|
display: inline-flex;
|
|
3524
3758
|
align-items: center;
|
|
3525
3759
|
gap: ${tokens.spacing.xs};
|
|
@@ -3548,7 +3782,7 @@ var Button2 = styled4__default.default.button`
|
|
|
3548
3782
|
cursor: not-allowed;
|
|
3549
3783
|
}
|
|
3550
3784
|
`;
|
|
3551
|
-
var CloseButton =
|
|
3785
|
+
var CloseButton = styled8__default.default.button`
|
|
3552
3786
|
flex-shrink: 0;
|
|
3553
3787
|
width: 24px;
|
|
3554
3788
|
height: 24px;
|
|
@@ -3607,7 +3841,7 @@ var StreamErrorMessage = ({
|
|
|
3607
3841
|
] });
|
|
3608
3842
|
};
|
|
3609
3843
|
StreamErrorMessage.displayName = "StreamErrorMessage";
|
|
3610
|
-
var SuggestionsContainer =
|
|
3844
|
+
var SuggestionsContainer = styled8__default.default.div`
|
|
3611
3845
|
display: flex;
|
|
3612
3846
|
flex-wrap: nowrap; /* Single row */
|
|
3613
3847
|
gap: ${tokens.spacing.sm};
|
|
@@ -3640,7 +3874,7 @@ var SuggestionsContainer = styled4__default.default.div`
|
|
|
3640
3874
|
display: none; /* Chrome/Safari/Opera */
|
|
3641
3875
|
}
|
|
3642
3876
|
`;
|
|
3643
|
-
var StyledSuggestion =
|
|
3877
|
+
var StyledSuggestion = styled8__default.default.button`
|
|
3644
3878
|
/* Base styles */
|
|
3645
3879
|
display: inline-flex;
|
|
3646
3880
|
align-items: center;
|
|
@@ -3673,7 +3907,7 @@ var StyledSuggestion = styled4__default.default.button`
|
|
|
3673
3907
|
box-shadow: none;
|
|
3674
3908
|
}
|
|
3675
3909
|
|
|
3676
|
-
${({ $isPressed }) => $isPressed &&
|
|
3910
|
+
${({ $isPressed }) => $isPressed && styled8.css`
|
|
3677
3911
|
transform: scale(0.98);
|
|
3678
3912
|
`}
|
|
3679
3913
|
|