@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.
@@ -2,14 +2,15 @@
2
2
 
3
3
  var button = require('@react-aria/button');
4
4
  var react = require('react');
5
- var styled4 = require('styled-components');
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 styled4__default = /*#__PURE__*/_interopDefault(styled4);
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: styled4.css`
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: styled4.css`
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: styled4.css`
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: styled4.css`
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: styled4.css`
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: styled4.css`
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 = styled4__default.default.button`
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" && styled4.css`
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 && styled4.css`
283
+ ${({ $isPressed }) => $isPressed && styled8.css`
283
284
  transform: scale(0.98);
284
285
  `}
285
286
 
286
287
  /* Loading state */
287
- ${({ $isLoading }) => $isLoading && styled4.css`
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 = styled4__default.default.div`
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" ? styled4.css`
343
+ ${({ $layout }) => $layout === "horizontal" ? styled8.css`
343
344
  flex-direction: row;
344
345
  flex-wrap: wrap;
345
- ` : styled4.css`
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 = styled4.keyframes`
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 = styled4.keyframes`
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 = styled4.keyframes`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.div`
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 = styled4.keyframes`
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 = styled4.keyframes`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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
- styled4__default.default.p`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4.keyframes`
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 = styled4.keyframes`
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 = styled4.keyframes`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.svg`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.span`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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
- // Not used - streaming shows chunks as they arrive
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
- }, [content, isStreaming, onStreamComplete]);
881
+ }, [isStreaming, onStreamComplete]);
883
882
  const showCursor = isStreaming && cursor;
884
883
  return /* @__PURE__ */ jsxRuntime.jsxs(Container3, { $variant: variant, className, children: [
885
- displayedText,
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 = styled4__default.default.div`
890
+ var MessageContainer = styled8__default.default.div`
892
891
  display: flex;
893
- gap: ${tokens.spacing.sm};
894
- align-items: flex-start;
895
- padding: ${tokens.spacing.sm} 0;
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 = styled4__default.default.div`
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 = styled4__default.default.img`
905
- width: ${tokens.spacing.xl};
906
- height: ${tokens.spacing.xl};
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 = styled4__default.default.div`
912
- width: ${tokens.spacing.xl};
913
- height: ${tokens.spacing.xl};
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: ${tokens.spacing.xs};
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 ContentContainer = styled4__default.default.div`
930
- flex: 1;
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 = styled4__default.default.div`
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} ${tokens.spacing.md};
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 = styled4__default.default.div`
954
+ var LoadingDots3 = styled8__default.default.div`
949
955
  display: flex;
950
956
  gap: ${tokens.spacing.xs};
951
- padding: ${tokens.spacing.sm} ${tokens.spacing.md};
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 = styled4.keyframes`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.div`
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 = styled4__default.default.button`
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 = styled4__default.default.div`
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 = styled4__default.default.time`
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 = styled4__default.default.span`
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.jsx(AvatarContainer, { children: 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" }) }) }),
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 GenerativeUIContainer = styled4__default.default.div`
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
- var ChatInputContainer = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.button`
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 = styled4__default.default.div`
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 = styled4__default.default.textarea`
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 = styled4__default.default.button`
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 = styled4__default.default.button`
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 && styled4.css`
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 = styled4__default.default.div`
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 = styled4.keyframes`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.div`
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 = styled4__default.default.header`
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 = styled4__default.default.div`
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 = styled4__default.default.h1`
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 = styled4__default.default.p`
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 = styled4__default.default.div`
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 = styled4__default.default.button`
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 = styled4__default.default.div`
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: ${tokens.spacing.sm};
2139
- gap: ${tokens.spacing.md};
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 = styled4__default.default.div`
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 && styled4.css`
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 && styled4.css`
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 && styled4.css`
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 = styled4.createGlobalStyle`
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 = styled4__default.default.button`
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 WindowAdapter = (props) => {
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: WindowAdapter,
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 = styled4.createGlobalStyle`
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: env(safe-area-inset-right, 0px) !important;
2495
- left: env(safe-area-inset-left, 0px) !important;
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} + env(safe-area-inset-top, 0px)) !important;
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} + env(safe-area-inset-right, 0px)) !important;
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} + env(safe-area-inset-bottom, 0px)) !important;
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} + env(safe-area-inset-left, 0px)) !important;
2531
- width: calc(100vw - ${tokens.spacing.lg} - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) !important;
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} - env(safe-area-inset-top, 0px) - 52px - env(safe-area-inset-bottom, 0px)) !important;
2534
- max-width: calc(100vw - ${tokens.spacing.lg} - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) !important;
2535
- max-height: calc(100vh - ${tokens.spacing.lg} - env(safe-area-inset-top, 0px) - 52px - env(safe-area-inset-bottom, 0px)) !important;
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} + env(safe-area-inset-top, 0px)) !important;
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} + env(safe-area-inset-right, 0px)) !important;
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} + env(safe-area-inset-bottom, 0px)) !important;
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} - env(safe-area-inset-top, 0px) - 52px - env(safe-area-inset-bottom, 0px)) !important;
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} - env(safe-area-inset-top, 0px) - 52px - env(safe-area-inset-bottom, 0px)) !important;
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: env(safe-area-inset-top, 0px) !important;
2616
- bottom: calc(52px + env(safe-area-inset-bottom, 0px)) !important;
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 = styled4__default.default.button`
2980
+ var StyledChatButton2 = styled8__default.default.button`
2771
2981
  position: fixed;
2772
- bottom: calc(${tokens.spacing.sm} + env(safe-area-inset-bottom, 0px));
2773
- right: calc(${tokens.spacing.sm} + env(safe-area-inset-right, 0px));
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
- function CustomCopilotSidebar2({
2805
- children,
2806
- defaultOpen = false,
2807
- onSetOpen,
2808
- instructions,
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
- const WindowAdapterLocal = (props) => {
2824
- return /* @__PURE__ */ jsxRuntime.jsx(Window, { children: props.children });
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: AssistantMessageAdapter,
3101
+ AssistantMessage: AssistantMessageAdapterMemo,
2868
3102
  UserMessage: UserMessageAdapter,
2869
3103
  Input: InputAdapter,
2870
3104
  Header: HeaderAdapterWithClose,
2871
- Window: WindowAdapterLocal,
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 = styled4__default.default.footer`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.a`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.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 = styled4__default.default.button`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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.sm} 0;
3341
- padding: 0 ${tokens.spacing.md};
3574
+ margin: ${tokens.spacing.xs} 0;
3575
+ padding: 0;
3342
3576
  width: 100%;
3343
3577
  `;
3344
- var MessageBubble = styled4__default.default.div`
3578
+ var MessageBubble = styled8__default.default.div`
3345
3579
  display: flex;
3346
3580
  flex-direction: column;
3347
- max-width: 70%;
3348
- padding: ${tokens.spacing.sm} ${tokens.spacing.md};
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 = styled4__default.default.p`
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 = styled4__default.default.time`
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 = styled4__default.default.button`
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 = styled4__default.default.div`
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 = styled4__default.default.span`
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 = styled4__default.default.img`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.div`
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 = styled4__default.default.button`
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 = styled4__default.default.button`
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 = styled4__default.default.div`
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 = styled4__default.default.button`
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 && styled4.css`
3910
+ ${({ $isPressed }) => $isPressed && styled8.css`
3677
3911
  transform: scale(0.98);
3678
3912
  `}
3679
3913