@agentiffai/design 1.3.18 → 1.3.19
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/{Window-pJb3Z5_P.d.cts → Window-DyRP81dS.d.cts} +42 -3
- package/dist/{Window-pJb3Z5_P.d.ts → Window-DyRP81dS.d.ts} +42 -3
- package/dist/copilotkit/index.cjs +424 -179
- package/dist/copilotkit/index.cjs.map +1 -1
- package/dist/copilotkit/index.d.cts +4 -30
- package/dist/copilotkit/index.d.ts +4 -30
- package/dist/copilotkit/index.js +351 -109
- package/dist/copilotkit/index.js.map +1 -1
- package/dist/index.cjs +1546 -1343
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1919 -1719
- package/dist/index.js.map +1 -1
- package/dist/layout/index.cjs +18 -2
- package/dist/layout/index.cjs.map +1 -1
- package/dist/layout/index.d.cts +8 -0
- package/dist/layout/index.d.ts +8 -0
- package/dist/layout/index.js +18 -2
- package/dist/layout/index.js.map +1 -1
- package/dist/workflow/index.cjs +6 -1
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.d.cts +2 -0
- package/dist/workflow/index.d.ts +2 -0
- package/dist/workflow/index.js +6 -1
- package/dist/workflow/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var button = require('@react-aria/button');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var styled9 = require('styled-components');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var reactCore = require('@copilotkit/react-core');
|
|
8
8
|
var reactUi = require('@copilotkit/react-ui');
|
|
@@ -10,7 +10,8 @@ var textfield = require('@react-aria/textfield');
|
|
|
10
10
|
|
|
11
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
14
|
+
var styled9__default = /*#__PURE__*/_interopDefault(styled9);
|
|
14
15
|
|
|
15
16
|
// src/components/copilotkit/Button/Button.tsx
|
|
16
17
|
|
|
@@ -173,7 +174,7 @@ var tokens = {
|
|
|
173
174
|
|
|
174
175
|
// src/components/copilotkit/Button/Button.styles.ts
|
|
175
176
|
var variantStyles = {
|
|
176
|
-
primary:
|
|
177
|
+
primary: styled9.css`
|
|
177
178
|
background-color: ${tokens.colors.primary};
|
|
178
179
|
color: ${tokens.colors.text.primary};
|
|
179
180
|
border: none;
|
|
@@ -193,7 +194,7 @@ var variantStyles = {
|
|
|
193
194
|
outline-offset: 2px;
|
|
194
195
|
}
|
|
195
196
|
`,
|
|
196
|
-
secondary:
|
|
197
|
+
secondary: styled9.css`
|
|
197
198
|
background-color: transparent;
|
|
198
199
|
color: ${tokens.colors.text.primary};
|
|
199
200
|
border: 1px solid ${tokens.colors.border.default};
|
|
@@ -212,7 +213,7 @@ var variantStyles = {
|
|
|
212
213
|
outline-offset: 2px;
|
|
213
214
|
}
|
|
214
215
|
`,
|
|
215
|
-
icon:
|
|
216
|
+
icon: styled9.css`
|
|
216
217
|
background-color: transparent;
|
|
217
218
|
color: ${tokens.colors.text.primary};
|
|
218
219
|
border: none;
|
|
@@ -235,26 +236,26 @@ var variantStyles = {
|
|
|
235
236
|
`
|
|
236
237
|
};
|
|
237
238
|
var sizeStyles = {
|
|
238
|
-
small:
|
|
239
|
+
small: styled9.css`
|
|
239
240
|
padding: ${tokens.spacing.xs} ${tokens.spacing.sm};
|
|
240
241
|
font-size: ${tokens.typography.fontSize.sm};
|
|
241
242
|
min-width: 60px;
|
|
242
243
|
height: 28px;
|
|
243
244
|
`,
|
|
244
|
-
medium:
|
|
245
|
+
medium: styled9.css`
|
|
245
246
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
246
247
|
font-size: ${tokens.typography.fontSize.base};
|
|
247
248
|
min-width: 80px;
|
|
248
249
|
height: 36px;
|
|
249
250
|
`,
|
|
250
|
-
large:
|
|
251
|
+
large: styled9.css`
|
|
251
252
|
padding: ${tokens.spacing.md} ${tokens.spacing.lg};
|
|
252
253
|
font-size: ${tokens.typography.fontSize.lg};
|
|
253
254
|
min-width: 100px;
|
|
254
255
|
height: 44px;
|
|
255
256
|
`
|
|
256
257
|
};
|
|
257
|
-
var StyledButton =
|
|
258
|
+
var StyledButton = styled9__default.default.button`
|
|
258
259
|
/* Base styles */
|
|
259
260
|
display: inline-flex;
|
|
260
261
|
align-items: center;
|
|
@@ -275,19 +276,19 @@ var StyledButton = styled8__default.default.button`
|
|
|
275
276
|
${({ $size, $variant }) => $variant !== "icon" && sizeStyles[$size]}
|
|
276
277
|
|
|
277
278
|
/* Icon variant size overrides */
|
|
278
|
-
${({ $variant, $size }) => $variant === "icon" &&
|
|
279
|
+
${({ $variant, $size }) => $variant === "icon" && styled9.css`
|
|
279
280
|
width: ${$size === "small" ? "28px" : $size === "large" ? "44px" : "36px"};
|
|
280
281
|
height: ${$size === "small" ? "28px" : $size === "large" ? "44px" : "36px"};
|
|
281
282
|
border-radius: ${tokens.borderRadius.sm};
|
|
282
283
|
`}
|
|
283
284
|
|
|
284
285
|
/* Pressed state */
|
|
285
|
-
${({ $isPressed }) => $isPressed &&
|
|
286
|
+
${({ $isPressed }) => $isPressed && styled9.css`
|
|
286
287
|
transform: scale(0.98);
|
|
287
288
|
`}
|
|
288
289
|
|
|
289
290
|
/* Loading state */
|
|
290
|
-
${({ $isLoading }) => $isLoading &&
|
|
291
|
+
${({ $isLoading }) => $isLoading && styled9.css`
|
|
291
292
|
cursor: wait;
|
|
292
293
|
opacity: 0.7;
|
|
293
294
|
`}
|
|
@@ -313,7 +314,7 @@ function Button({
|
|
|
313
314
|
isLoading = false,
|
|
314
315
|
...ariaProps
|
|
315
316
|
}) {
|
|
316
|
-
const ref =
|
|
317
|
+
const ref = React.useRef(null);
|
|
317
318
|
const { buttonProps, isPressed } = button.useButton(
|
|
318
319
|
{
|
|
319
320
|
...ariaProps,
|
|
@@ -337,15 +338,15 @@ function Button({
|
|
|
337
338
|
);
|
|
338
339
|
}
|
|
339
340
|
Button.displayName = "Button";
|
|
340
|
-
var ActionsContainer =
|
|
341
|
+
var ActionsContainer = styled9__default.default.div`
|
|
341
342
|
display: flex;
|
|
342
343
|
gap: ${tokens.spacing.sm};
|
|
343
344
|
align-items: center;
|
|
344
345
|
|
|
345
|
-
${({ $layout }) => $layout === "horizontal" ?
|
|
346
|
+
${({ $layout }) => $layout === "horizontal" ? styled9.css`
|
|
346
347
|
flex-direction: row;
|
|
347
348
|
flex-wrap: wrap;
|
|
348
|
-
` :
|
|
349
|
+
` : styled9.css`
|
|
349
350
|
flex-direction: column;
|
|
350
351
|
align-items: stretch;
|
|
351
352
|
|
|
@@ -371,7 +372,7 @@ function Actions({ actions, layout = "horizontal", className }) {
|
|
|
371
372
|
)) });
|
|
372
373
|
}
|
|
373
374
|
Actions.displayName = "Actions";
|
|
374
|
-
var dotPulse =
|
|
375
|
+
var dotPulse = styled9.keyframes`
|
|
375
376
|
0%, 100% {
|
|
376
377
|
opacity: 0.3;
|
|
377
378
|
transform: scale(0.8);
|
|
@@ -381,7 +382,7 @@ var dotPulse = styled8.keyframes`
|
|
|
381
382
|
transform: scale(1);
|
|
382
383
|
}
|
|
383
384
|
`;
|
|
384
|
-
var fadeIn =
|
|
385
|
+
var fadeIn = styled9.keyframes`
|
|
385
386
|
from {
|
|
386
387
|
opacity: 0;
|
|
387
388
|
}
|
|
@@ -389,7 +390,7 @@ var fadeIn = styled8.keyframes`
|
|
|
389
390
|
opacity: 1;
|
|
390
391
|
}
|
|
391
392
|
`;
|
|
392
|
-
var blink =
|
|
393
|
+
var blink = styled9.keyframes`
|
|
393
394
|
0%, 49% {
|
|
394
395
|
opacity: 1;
|
|
395
396
|
}
|
|
@@ -397,7 +398,7 @@ var blink = styled8.keyframes`
|
|
|
397
398
|
opacity: 0;
|
|
398
399
|
}
|
|
399
400
|
`;
|
|
400
|
-
var ResponseContainer =
|
|
401
|
+
var ResponseContainer = styled9__default.default.div`
|
|
401
402
|
display: inline-flex;
|
|
402
403
|
align-items: center;
|
|
403
404
|
gap: ${tokens.spacing.sm};
|
|
@@ -409,13 +410,13 @@ var ResponseContainer = styled8__default.default.div`
|
|
|
409
410
|
max-width: fit-content;
|
|
410
411
|
margin: 0 auto;
|
|
411
412
|
`;
|
|
412
|
-
var LoadingDots =
|
|
413
|
+
var LoadingDots = styled9__default.default.div`
|
|
413
414
|
display: flex;
|
|
414
415
|
align-items: center;
|
|
415
416
|
gap: ${tokens.spacing.xs};
|
|
416
417
|
padding: 0 ${tokens.spacing.xs};
|
|
417
418
|
`;
|
|
418
|
-
var Dot =
|
|
419
|
+
var Dot = styled9__default.default.span`
|
|
419
420
|
width: ${tokens.spacing.xs};
|
|
420
421
|
height: ${tokens.spacing.xs};
|
|
421
422
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -423,7 +424,7 @@ var Dot = styled8__default.default.span`
|
|
|
423
424
|
animation: ${dotPulse} 1.4s ease-in-out infinite;
|
|
424
425
|
animation-delay: ${(props) => props.delay}s;
|
|
425
426
|
`;
|
|
426
|
-
var TypingIndicator =
|
|
427
|
+
var TypingIndicator = styled9__default.default.div`
|
|
427
428
|
display: flex;
|
|
428
429
|
align-items: center;
|
|
429
430
|
gap: ${tokens.spacing.xs};
|
|
@@ -436,14 +437,14 @@ var TypingIndicator = styled8__default.default.div`
|
|
|
436
437
|
animation: ${dotPulse} 1.4s ease-in-out infinite;
|
|
437
438
|
}
|
|
438
439
|
`;
|
|
439
|
-
var Message =
|
|
440
|
+
var Message = styled9__default.default.span`
|
|
440
441
|
font-size: ${tokens.typography.fontSize.sm};
|
|
441
442
|
color: ${tokens.colors.text.primary};
|
|
442
443
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
443
444
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
444
445
|
white-space: nowrap;
|
|
445
446
|
`;
|
|
446
|
-
var StreamingText =
|
|
447
|
+
var StreamingText = styled9__default.default.div`
|
|
447
448
|
font-size: ${tokens.typography.fontSize.sm};
|
|
448
449
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
449
450
|
color: ${tokens.colors.text.primary};
|
|
@@ -494,7 +495,7 @@ var Response = ({
|
|
|
494
495
|
}
|
|
495
496
|
return null;
|
|
496
497
|
};
|
|
497
|
-
var dotPulse2 =
|
|
498
|
+
var dotPulse2 = styled9.keyframes`
|
|
498
499
|
0%, 100% {
|
|
499
500
|
opacity: 0.3;
|
|
500
501
|
transform: scale(0.8);
|
|
@@ -504,7 +505,7 @@ var dotPulse2 = styled8.keyframes`
|
|
|
504
505
|
transform: scale(1);
|
|
505
506
|
}
|
|
506
507
|
`;
|
|
507
|
-
var shake =
|
|
508
|
+
var shake = styled9.keyframes`
|
|
508
509
|
0%, 100% {
|
|
509
510
|
transform: translateX(0);
|
|
510
511
|
}
|
|
@@ -515,7 +516,7 @@ var shake = styled8.keyframes`
|
|
|
515
516
|
transform: translateX(5px);
|
|
516
517
|
}
|
|
517
518
|
`;
|
|
518
|
-
var AgentStateContainer =
|
|
519
|
+
var AgentStateContainer = styled9__default.default.div`
|
|
519
520
|
display: inline-flex;
|
|
520
521
|
flex-direction: column;
|
|
521
522
|
align-items: center;
|
|
@@ -529,35 +530,35 @@ var AgentStateContainer = styled8__default.default.div`
|
|
|
529
530
|
max-width: fit-content;
|
|
530
531
|
margin: 0 auto;
|
|
531
532
|
`;
|
|
532
|
-
var StateContent =
|
|
533
|
+
var StateContent = styled9__default.default.div`
|
|
533
534
|
display: flex;
|
|
534
535
|
flex-direction: column;
|
|
535
536
|
gap: ${tokens.spacing.sm};
|
|
536
537
|
align-items: center;
|
|
537
538
|
width: 100%;
|
|
538
539
|
`;
|
|
539
|
-
var IdleIndicator =
|
|
540
|
+
var IdleIndicator = styled9__default.default.div`
|
|
540
541
|
width: ${tokens.spacing.xs};
|
|
541
542
|
height: ${tokens.spacing.xs};
|
|
542
543
|
background-color: ${tokens.colors.status.idle};
|
|
543
544
|
border-radius: ${tokens.borderRadius.full};
|
|
544
545
|
animation: ${dotPulse2} 2s infinite ease-in-out;
|
|
545
546
|
`;
|
|
546
|
-
var ErrorIndicator =
|
|
547
|
+
var ErrorIndicator = styled9__default.default.div`
|
|
547
548
|
width: ${tokens.spacing.xs};
|
|
548
549
|
height: ${tokens.spacing.xs};
|
|
549
550
|
background-color: ${tokens.colors.error};
|
|
550
551
|
border-radius: ${tokens.borderRadius.full};
|
|
551
552
|
animation: ${shake} 0.5s ease-in-out;
|
|
552
553
|
`;
|
|
553
|
-
var StateLabel =
|
|
554
|
+
var StateLabel = styled9__default.default.span`
|
|
554
555
|
font-size: ${tokens.typography.fontSize.sm};
|
|
555
556
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
556
557
|
color: ${tokens.colors.text.primary};
|
|
557
558
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
558
559
|
white-space: nowrap;
|
|
559
560
|
`;
|
|
560
|
-
|
|
561
|
+
styled9__default.default.p`
|
|
561
562
|
font-size: ${tokens.typography.fontSize.sm};
|
|
562
563
|
color: ${tokens.colors.text.tertiary};
|
|
563
564
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
@@ -565,7 +566,7 @@ styled8__default.default.p`
|
|
|
565
566
|
text-align: center;
|
|
566
567
|
white-space: nowrap;
|
|
567
568
|
`;
|
|
568
|
-
var ProgressBar =
|
|
569
|
+
var ProgressBar = styled9__default.default.div`
|
|
569
570
|
width: 100%;
|
|
570
571
|
height: ${tokens.spacing.xs};
|
|
571
572
|
background-color: ${tokens.colors.surface.elevated};
|
|
@@ -573,7 +574,7 @@ var ProgressBar = styled8__default.default.div`
|
|
|
573
574
|
overflow: hidden;
|
|
574
575
|
margin-top: ${tokens.spacing.xs};
|
|
575
576
|
`;
|
|
576
|
-
var ProgressBarFill =
|
|
577
|
+
var ProgressBarFill = styled9__default.default.div`
|
|
577
578
|
height: 100%;
|
|
578
579
|
width: ${(props) => Math.min(Math.max(props.progress, 0), 100)}%;
|
|
579
580
|
background: linear-gradient(135deg, ${tokens.colors.accent} 0%, ${tokens.colors.primary} 100%);
|
|
@@ -602,11 +603,11 @@ var AgentState = ({ state, message, progress, className }) => {
|
|
|
602
603
|
}
|
|
603
604
|
return null;
|
|
604
605
|
};
|
|
605
|
-
var Container =
|
|
606
|
+
var Container = styled9__default.default.div`
|
|
606
607
|
margin: ${tokens.spacing.sm} 0;
|
|
607
608
|
padding: 0 ${tokens.spacing.sm};
|
|
608
609
|
`;
|
|
609
|
-
var ToolName =
|
|
610
|
+
var ToolName = styled9__default.default.div`
|
|
610
611
|
font-size: ${tokens.typography.fontSize.xs};
|
|
611
612
|
color: ${tokens.colors.text.tertiary};
|
|
612
613
|
margin-bottom: ${tokens.spacing.xs};
|
|
@@ -656,7 +657,7 @@ var ActionExecutionAdapter = ({ message, inProgress }) => {
|
|
|
656
657
|
] });
|
|
657
658
|
};
|
|
658
659
|
ActionExecutionAdapter.displayName = "ActionExecutionAdapter";
|
|
659
|
-
var dotPulse3 =
|
|
660
|
+
var dotPulse3 = styled9.keyframes`
|
|
660
661
|
0%, 100% {
|
|
661
662
|
opacity: 0.3;
|
|
662
663
|
transform: scale(0.8);
|
|
@@ -666,7 +667,7 @@ var dotPulse3 = styled8.keyframes`
|
|
|
666
667
|
transform: scale(1);
|
|
667
668
|
}
|
|
668
669
|
`;
|
|
669
|
-
var pulse =
|
|
670
|
+
var pulse = styled9.keyframes`
|
|
670
671
|
0%, 100% {
|
|
671
672
|
opacity: 0.5;
|
|
672
673
|
transform: scale(1);
|
|
@@ -676,7 +677,7 @@ var pulse = styled8.keyframes`
|
|
|
676
677
|
transform: scale(1.2);
|
|
677
678
|
}
|
|
678
679
|
`;
|
|
679
|
-
var wave =
|
|
680
|
+
var wave = styled9.keyframes`
|
|
680
681
|
0%, 40%, 100% {
|
|
681
682
|
transform: translateY(0);
|
|
682
683
|
}
|
|
@@ -713,7 +714,7 @@ var getSizeValue = (size = "md") => {
|
|
|
713
714
|
};
|
|
714
715
|
}
|
|
715
716
|
};
|
|
716
|
-
var Container2 =
|
|
717
|
+
var Container2 = styled9__default.default.div`
|
|
717
718
|
display: inline-flex;
|
|
718
719
|
align-items: center;
|
|
719
720
|
gap: ${tokens.spacing.md};
|
|
@@ -725,7 +726,7 @@ var Container2 = styled8__default.default.div`
|
|
|
725
726
|
max-width: fit-content;
|
|
726
727
|
margin: 0 auto;
|
|
727
728
|
`;
|
|
728
|
-
var Avatar =
|
|
729
|
+
var Avatar = styled9__default.default.div`
|
|
729
730
|
width: ${(props) => getSizeValue(props.size).avatar};
|
|
730
731
|
height: ${(props) => getSizeValue(props.size).avatar};
|
|
731
732
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -736,23 +737,23 @@ var Avatar = styled8__default.default.div`
|
|
|
736
737
|
flex-shrink: 0;
|
|
737
738
|
box-shadow: ${tokens.shadows.glow.primary};
|
|
738
739
|
`;
|
|
739
|
-
var HeadphonesIcon =
|
|
740
|
+
var HeadphonesIcon = styled9__default.default.svg`
|
|
740
741
|
width: ${(props) => getSizeValue(props.size).icon};
|
|
741
742
|
height: ${(props) => getSizeValue(props.size).icon};
|
|
742
743
|
color: ${tokens.colors.text.primary};
|
|
743
744
|
`;
|
|
744
|
-
var Content =
|
|
745
|
+
var Content = styled9__default.default.div`
|
|
745
746
|
display: flex;
|
|
746
747
|
align-items: center;
|
|
747
748
|
gap: ${tokens.spacing.sm};
|
|
748
749
|
`;
|
|
749
|
-
var LoadingDots2 =
|
|
750
|
+
var LoadingDots2 = styled9__default.default.div`
|
|
750
751
|
display: flex;
|
|
751
752
|
align-items: center;
|
|
752
753
|
gap: ${(props) => props.variant === "wave" ? "2px" : `${tokens.spacing.xs}`};
|
|
753
754
|
padding: 0 ${tokens.spacing.xs};
|
|
754
755
|
`;
|
|
755
|
-
var Dot2 =
|
|
756
|
+
var Dot2 = styled9__default.default.span`
|
|
756
757
|
width: ${(props) => getSizeValue(props.size).dotSize};
|
|
757
758
|
height: ${(props) => getSizeValue(props.size).dotSize};
|
|
758
759
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -770,7 +771,7 @@ var Dot2 = styled8__default.default.span`
|
|
|
770
771
|
}}
|
|
771
772
|
1.4s ease-in-out infinite;
|
|
772
773
|
`;
|
|
773
|
-
var Message2 =
|
|
774
|
+
var Message2 = styled9__default.default.span`
|
|
774
775
|
font-size: ${(props) => getSizeValue(props.size).fontSize};
|
|
775
776
|
color: ${tokens.colors.text.secondary};
|
|
776
777
|
font-weight: ${tokens.typography.fontWeight.regular};
|
|
@@ -784,7 +785,7 @@ function AssistantThinking({
|
|
|
784
785
|
variant = "dots",
|
|
785
786
|
size = "md"
|
|
786
787
|
}) {
|
|
787
|
-
const containerRef =
|
|
788
|
+
const containerRef = React.useRef(null);
|
|
788
789
|
const renderLoadingIndicator = () => {
|
|
789
790
|
switch (variant) {
|
|
790
791
|
case "dots":
|
|
@@ -830,11 +831,114 @@ function AssistantThinking({
|
|
|
830
831
|
);
|
|
831
832
|
}
|
|
832
833
|
AssistantThinking.displayName = "AssistantThinking";
|
|
834
|
+
var IconWrapper = styled9__default.default.span`
|
|
835
|
+
display: inline-flex;
|
|
836
|
+
align-items: center;
|
|
837
|
+
justify-content: center;
|
|
838
|
+
width: ${({ $size }) => $size}px;
|
|
839
|
+
height: ${({ $size }) => $size}px;
|
|
840
|
+
color: ${({ $color }) => $color};
|
|
841
|
+
line-height: 1;
|
|
842
|
+
|
|
843
|
+
img {
|
|
844
|
+
width: 100%;
|
|
845
|
+
height: 100%;
|
|
846
|
+
filter: ${({ $color }) => {
|
|
847
|
+
if ($color === "currentColor" || !$color) return "inherit";
|
|
848
|
+
if ($color === "white" || $color === tokens.colors.text.primary || $color === "#fff") {
|
|
849
|
+
return "brightness(0) saturate(100%) invert(100%)";
|
|
850
|
+
}
|
|
851
|
+
if ($color === tokens.colors.text.secondary || $color === "#b9bbbe") {
|
|
852
|
+
return "brightness(0) saturate(100%) invert(75%) sepia(8%) saturate(223%) hue-rotate(180deg) brightness(94%) contrast(86%)";
|
|
853
|
+
}
|
|
854
|
+
if ($color === tokens.colors.error || $color === "#ed4245" || $color === "#f04747") {
|
|
855
|
+
return "brightness(0) saturate(100%) invert(38%) sepia(97%) saturate(1459%) hue-rotate(334deg) brightness(95%) contrast(93%)";
|
|
856
|
+
}
|
|
857
|
+
return "none";
|
|
858
|
+
}};
|
|
859
|
+
}
|
|
860
|
+
`;
|
|
861
|
+
|
|
862
|
+
// src/components/layout/Icon/icons.ts
|
|
863
|
+
var ICON_BASE_PATH = "/assets/icon-set";
|
|
864
|
+
var iconFiles = {
|
|
865
|
+
"mic-fill": "Icon-mic-fill.svg",
|
|
866
|
+
"mic-off-fill": "Icon-mic-off-fill.svg",
|
|
867
|
+
"headphone-fill": "Icon-headphone-fill.svg",
|
|
868
|
+
"volume-mute-fill": "Icon-volume-mute-fill.svg",
|
|
869
|
+
"settings-3-line": "Icon-settings-3-line.svg",
|
|
870
|
+
"home-fill": "Icon-home-fill.svg",
|
|
871
|
+
"add-circle-fill": "Icon-add-circle-fill.svg",
|
|
872
|
+
"compass-discover-fill": "Icon-compass-discover-fill.svg",
|
|
873
|
+
"download-2-fill": "Icon-download-2-fill.svg",
|
|
874
|
+
"arrow-left-fill": "Icon-arrow-left-fill.svg",
|
|
875
|
+
"calendar-fill": "Icon-calendar-fill.svg",
|
|
876
|
+
"chat-1-fill": "Icon-chat-1-fill.svg",
|
|
877
|
+
"flow-chart": "Icon-flow-chart.svg",
|
|
878
|
+
"logout-circle-r-fill": "Icon-logout-circle-r-fill.svg",
|
|
879
|
+
"logout-circle-r-line": "Icon-logout-circle-r-line.svg",
|
|
880
|
+
"side-bar-fill": "Icon-side-bar-fill.svg",
|
|
881
|
+
"check-fill": "Icon-check-fill.svg",
|
|
882
|
+
"checkbox-circle-fill": "Icon-checkbox-circle-fill.svg",
|
|
883
|
+
"close-circle-fill": "Icon-close-circle-fill.svg",
|
|
884
|
+
"error-warning-fill": "Icon-error-warning-fill.svg",
|
|
885
|
+
"hammer-fill": "Icon-hammer-fill.svg",
|
|
886
|
+
"rocket-fill": "Icon-rocket-fill.svg",
|
|
887
|
+
"coupon-2-fill": "Icon-coupon-2-fill.svg",
|
|
888
|
+
"clipboard-fill": "Icon-clipboard-fill.svg"
|
|
889
|
+
};
|
|
890
|
+
function getIconPath(name) {
|
|
891
|
+
return `${ICON_BASE_PATH}/${iconFiles[name]}`;
|
|
892
|
+
}
|
|
893
|
+
function Icon({
|
|
894
|
+
name,
|
|
895
|
+
size = 20,
|
|
896
|
+
color = "currentColor",
|
|
897
|
+
className,
|
|
898
|
+
...imgProps
|
|
899
|
+
}) {
|
|
900
|
+
const iconPath = getIconPath(name);
|
|
901
|
+
return /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { $size: size, $color: color, className, "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: iconPath, alt: "", width: size, height: size, ...imgProps }) });
|
|
902
|
+
}
|
|
903
|
+
Icon.displayName = "Icon";
|
|
833
904
|
function parseMarkdown(text) {
|
|
834
905
|
if (!text) return [];
|
|
835
906
|
text = text.replace(/<!--TOOL_CALL:[^:]+:[\s\S]+?-->/g, "").replace(/__TOOL_CALL__:[^:]+:\{[^}]*(?:\{[^}]*\}[^}]*)*\}/g, "").replace(/<!--TOOL_CALL:[\s\S]*$/g, "").replace(/__TOOL_CALL__:[\s\S]*$/g, "");
|
|
836
907
|
const elements = [];
|
|
837
908
|
let key = 0;
|
|
909
|
+
const codeBlockRegex = /```(?:\w*)\n?([\s\S]*?)```/g;
|
|
910
|
+
let lastCodeEnd = 0;
|
|
911
|
+
let codeMatch;
|
|
912
|
+
while ((codeMatch = codeBlockRegex.exec(text)) !== null) {
|
|
913
|
+
if (codeMatch.index > lastCodeEnd) {
|
|
914
|
+
const beforeCode = text.slice(lastCodeEnd, codeMatch.index);
|
|
915
|
+
const parsed = parseMarkdownParagraphs(beforeCode, key);
|
|
916
|
+
elements.push(...parsed.elements);
|
|
917
|
+
key = parsed.nextKey;
|
|
918
|
+
}
|
|
919
|
+
const codeContent = (codeMatch[1] ?? "").replace(/\n$/, "");
|
|
920
|
+
elements.push(
|
|
921
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "code-block", children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: codeContent }) }, key++)
|
|
922
|
+
);
|
|
923
|
+
lastCodeEnd = codeMatch.index + codeMatch[0].length;
|
|
924
|
+
}
|
|
925
|
+
const remaining = text.slice(lastCodeEnd);
|
|
926
|
+
if (remaining) {
|
|
927
|
+
const parsed = parseMarkdownParagraphs(remaining, key);
|
|
928
|
+
elements.push(...parsed.elements);
|
|
929
|
+
key = parsed.nextKey;
|
|
930
|
+
}
|
|
931
|
+
return elements;
|
|
932
|
+
}
|
|
933
|
+
function isMarkdownTable(lines) {
|
|
934
|
+
if (lines.length < 2) return false;
|
|
935
|
+
const firstLine = (lines[0] ?? "").trim();
|
|
936
|
+
const secondLine = (lines[1] ?? "").trim();
|
|
937
|
+
return firstLine.startsWith("|") && secondLine.startsWith("|") && /^\|[\s-:|]+\|$/.test(secondLine);
|
|
938
|
+
}
|
|
939
|
+
function parseMarkdownParagraphs(text, startKey) {
|
|
940
|
+
const elements = [];
|
|
941
|
+
let key = startKey;
|
|
838
942
|
const paragraphs = text.split(/\n\n+/);
|
|
839
943
|
paragraphs.forEach((paragraph, pIndex) => {
|
|
840
944
|
if (pIndex > 0) {
|
|
@@ -842,16 +946,30 @@ function parseMarkdown(text) {
|
|
|
842
946
|
elements.push(/* @__PURE__ */ jsxRuntime.jsx("br", {}, key++));
|
|
843
947
|
}
|
|
844
948
|
const lines = paragraph.split("\n");
|
|
949
|
+
if (isMarkdownTable(lines)) {
|
|
950
|
+
elements.push(
|
|
951
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "code-block", children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: paragraph }) }, key++)
|
|
952
|
+
);
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
845
955
|
lines.forEach((line, lineIndex) => {
|
|
846
956
|
if (lineIndex > 0) {
|
|
847
957
|
elements.push(/* @__PURE__ */ jsxRuntime.jsx("br", {}, key++));
|
|
848
958
|
}
|
|
959
|
+
const headingMatch = line.match(/^(#{1,4})\s+(.+)$/);
|
|
960
|
+
if (headingMatch && headingMatch[1] && headingMatch[2]) {
|
|
961
|
+
const level = headingMatch[1].length;
|
|
962
|
+
const parsed2 = parseInlineMarkdown(headingMatch[2], key);
|
|
963
|
+
key = parsed2.nextKey;
|
|
964
|
+
elements.push(React__default.default.createElement(`h${level}`, { key: key++ }, ...parsed2.elements));
|
|
965
|
+
return;
|
|
966
|
+
}
|
|
849
967
|
const parsed = parseInlineMarkdown(line, key);
|
|
850
968
|
elements.push(...parsed.elements);
|
|
851
969
|
key = parsed.nextKey;
|
|
852
970
|
});
|
|
853
971
|
});
|
|
854
|
-
return elements;
|
|
972
|
+
return { elements, nextKey: key };
|
|
855
973
|
}
|
|
856
974
|
function parseInlineMarkdown(text, startKey) {
|
|
857
975
|
const elements = [];
|
|
@@ -884,7 +1002,7 @@ function parseInlineMarkdown(text, startKey) {
|
|
|
884
1002
|
}
|
|
885
1003
|
return { elements, nextKey: key };
|
|
886
1004
|
}
|
|
887
|
-
var Container3 =
|
|
1005
|
+
var Container3 = styled9__default.default.div`
|
|
888
1006
|
font-family: ${(props) => props.$variant === "code" ? tokens.typography.fontFamily.monospace : tokens.typography.fontFamily.primary};
|
|
889
1007
|
white-space: pre-wrap;
|
|
890
1008
|
word-break: break-word;
|
|
@@ -911,6 +1029,24 @@ var Container3 = styled8__default.default.div`
|
|
|
911
1029
|
font-size: 0.9em;
|
|
912
1030
|
}
|
|
913
1031
|
|
|
1032
|
+
pre.code-block {
|
|
1033
|
+
background: ${tokens.colors.surface.overlay};
|
|
1034
|
+
border-radius: ${tokens.borderRadius.md};
|
|
1035
|
+
padding: ${tokens.spacing.md};
|
|
1036
|
+
margin: ${tokens.spacing.sm} 0;
|
|
1037
|
+
overflow-x: auto;
|
|
1038
|
+
white-space: pre;
|
|
1039
|
+
-webkit-overflow-scrolling: touch;
|
|
1040
|
+
|
|
1041
|
+
code {
|
|
1042
|
+
background: none;
|
|
1043
|
+
padding: 0;
|
|
1044
|
+
border-radius: 0;
|
|
1045
|
+
font-size: 0.85em;
|
|
1046
|
+
line-height: 1.5;
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
914
1050
|
a {
|
|
915
1051
|
color: ${tokens.colors.primary};
|
|
916
1052
|
text-decoration: none;
|
|
@@ -919,8 +1055,19 @@ var Container3 = styled8__default.default.div`
|
|
|
919
1055
|
text-decoration: underline;
|
|
920
1056
|
}
|
|
921
1057
|
}
|
|
1058
|
+
|
|
1059
|
+
h1, h2, h3, h4 {
|
|
1060
|
+
margin: ${tokens.spacing.sm} 0 ${tokens.spacing.xs} 0;
|
|
1061
|
+
color: ${tokens.colors.text.primary};
|
|
1062
|
+
line-height: 1.3;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
h1 { font-size: 1.4em; font-weight: ${tokens.typography.fontWeight.bold}; }
|
|
1066
|
+
h2 { font-size: 1.2em; font-weight: ${tokens.typography.fontWeight.bold}; }
|
|
1067
|
+
h3 { font-size: 1.05em; font-weight: ${tokens.typography.fontWeight.semibold}; }
|
|
1068
|
+
h4 { font-size: 1em; font-weight: ${tokens.typography.fontWeight.semibold}; }
|
|
922
1069
|
`;
|
|
923
|
-
var Cursor =
|
|
1070
|
+
var Cursor = styled9__default.default.span`
|
|
924
1071
|
display: inline-block;
|
|
925
1072
|
width: 2px;
|
|
926
1073
|
height: 1em;
|
|
@@ -950,9 +1097,9 @@ var StreamingTextBase = ({
|
|
|
950
1097
|
onStreamComplete,
|
|
951
1098
|
className
|
|
952
1099
|
}) => {
|
|
953
|
-
const wasStreamingRef =
|
|
954
|
-
const completionCalledRef =
|
|
955
|
-
|
|
1100
|
+
const wasStreamingRef = React.useRef(isStreaming);
|
|
1101
|
+
const completionCalledRef = React.useRef(false);
|
|
1102
|
+
React.useEffect(() => {
|
|
956
1103
|
if (wasStreamingRef.current && !isStreaming && !completionCalledRef.current) {
|
|
957
1104
|
completionCalledRef.current = true;
|
|
958
1105
|
onStreamComplete?.();
|
|
@@ -963,7 +1110,7 @@ var StreamingTextBase = ({
|
|
|
963
1110
|
wasStreamingRef.current = isStreaming;
|
|
964
1111
|
}, [isStreaming, onStreamComplete]);
|
|
965
1112
|
const showCursor = isStreaming && cursor;
|
|
966
|
-
const renderedContent =
|
|
1113
|
+
const renderedContent = React.useMemo(() => {
|
|
967
1114
|
if (variant === "markdown") {
|
|
968
1115
|
return parseMarkdown(content);
|
|
969
1116
|
}
|
|
@@ -974,9 +1121,9 @@ var StreamingTextBase = ({
|
|
|
974
1121
|
showCursor && /* @__PURE__ */ jsxRuntime.jsx(Cursor, {})
|
|
975
1122
|
] });
|
|
976
1123
|
};
|
|
977
|
-
var StreamingText2 =
|
|
1124
|
+
var StreamingText2 = React.memo(StreamingTextBase);
|
|
978
1125
|
StreamingText2.displayName = "StreamingText";
|
|
979
|
-
var MessageContainer =
|
|
1126
|
+
var MessageContainer = styled9__default.default.div`
|
|
980
1127
|
display: flex;
|
|
981
1128
|
flex-direction: column;
|
|
982
1129
|
gap: ${tokens.spacing.xs};
|
|
@@ -986,20 +1133,20 @@ var MessageContainer = styled8__default.default.div`
|
|
|
986
1133
|
will-change: contents;
|
|
987
1134
|
contain: content;
|
|
988
1135
|
`;
|
|
989
|
-
var AvatarContainer =
|
|
1136
|
+
var AvatarContainer = styled9__default.default.div`
|
|
990
1137
|
display: flex;
|
|
991
1138
|
align-items: center;
|
|
992
1139
|
gap: ${tokens.spacing.xs};
|
|
993
1140
|
flex-shrink: 0;
|
|
994
1141
|
`;
|
|
995
|
-
var Avatar2 =
|
|
1142
|
+
var Avatar2 = styled9__default.default.img`
|
|
996
1143
|
width: 20px;
|
|
997
1144
|
height: 20px;
|
|
998
1145
|
border-radius: ${tokens.borderRadius.full};
|
|
999
1146
|
object-fit: cover;
|
|
1000
1147
|
background-color: transparent;
|
|
1001
1148
|
`;
|
|
1002
|
-
var AvatarInitials =
|
|
1149
|
+
var AvatarInitials = styled9__default.default.div`
|
|
1003
1150
|
width: 20px;
|
|
1004
1151
|
height: 20px;
|
|
1005
1152
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -1017,16 +1164,16 @@ var AvatarInitials = styled8__default.default.div`
|
|
|
1017
1164
|
object-fit: contain;
|
|
1018
1165
|
}
|
|
1019
1166
|
`;
|
|
1020
|
-
var AvatarLabel =
|
|
1167
|
+
var AvatarLabel = styled9__default.default.span`
|
|
1021
1168
|
font-size: ${tokens.typography.fontSize.xs};
|
|
1022
1169
|
font-weight: ${tokens.typography.fontWeight.medium};
|
|
1023
1170
|
color: ${tokens.colors.text.secondary};
|
|
1024
1171
|
`;
|
|
1025
|
-
var ContentContainer =
|
|
1172
|
+
var ContentContainer = styled9__default.default.div`
|
|
1026
1173
|
width: 100%;
|
|
1027
1174
|
min-width: 0;
|
|
1028
1175
|
`;
|
|
1029
|
-
var MessageContent =
|
|
1176
|
+
var MessageContent = styled9__default.default.div`
|
|
1030
1177
|
/* Use solid color instead of backdrop-filter for performance during streaming */
|
|
1031
1178
|
background-color: ${tokens.colors.surface.elevated};
|
|
1032
1179
|
padding: ${tokens.spacing.sm};
|
|
@@ -1040,7 +1187,7 @@ var MessageContent = styled8__default.default.div`
|
|
|
1040
1187
|
/* Optimize text rendering */
|
|
1041
1188
|
text-rendering: optimizeSpeed;
|
|
1042
1189
|
`;
|
|
1043
|
-
var LoadingDots3 =
|
|
1190
|
+
var LoadingDots3 = styled9__default.default.div`
|
|
1044
1191
|
display: flex;
|
|
1045
1192
|
gap: ${tokens.spacing.xs};
|
|
1046
1193
|
padding: ${tokens.spacing.sm};
|
|
@@ -1049,7 +1196,7 @@ var LoadingDots3 = styled8__default.default.div`
|
|
|
1049
1196
|
border-radius: ${tokens.borderRadius.lg};
|
|
1050
1197
|
width: fit-content;
|
|
1051
1198
|
`;
|
|
1052
|
-
var pulse2 =
|
|
1199
|
+
var pulse2 = styled9.keyframes`
|
|
1053
1200
|
0%, 100% {
|
|
1054
1201
|
opacity: 0.4;
|
|
1055
1202
|
}
|
|
@@ -1057,7 +1204,7 @@ var pulse2 = styled8.keyframes`
|
|
|
1057
1204
|
opacity: 1;
|
|
1058
1205
|
}
|
|
1059
1206
|
`;
|
|
1060
|
-
var LoadingDot =
|
|
1207
|
+
var LoadingDot = styled9__default.default.div`
|
|
1061
1208
|
width: ${tokens.spacing.sm};
|
|
1062
1209
|
height: ${tokens.spacing.sm};
|
|
1063
1210
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -1066,7 +1213,7 @@ var LoadingDot = styled8__default.default.div`
|
|
|
1066
1213
|
animation: ${pulse2} 1.4s ease-in-out infinite;
|
|
1067
1214
|
animation-delay: ${(props) => props.delay}s;
|
|
1068
1215
|
`;
|
|
1069
|
-
var FileAttachmentContainer =
|
|
1216
|
+
var FileAttachmentContainer = styled9__default.default.div`
|
|
1070
1217
|
display: flex;
|
|
1071
1218
|
align-items: center;
|
|
1072
1219
|
gap: ${tokens.spacing.sm};
|
|
@@ -1102,7 +1249,7 @@ var FileAttachmentContainer = styled8__default.default.div`
|
|
|
1102
1249
|
}
|
|
1103
1250
|
`}
|
|
1104
1251
|
`;
|
|
1105
|
-
var FileIconContainer =
|
|
1252
|
+
var FileIconContainer = styled9__default.default.div`
|
|
1106
1253
|
flex-shrink: 0;
|
|
1107
1254
|
width: ${tokens.spacing.xl};
|
|
1108
1255
|
height: ${tokens.spacing.xl};
|
|
@@ -1112,14 +1259,14 @@ var FileIconContainer = styled8__default.default.div`
|
|
|
1112
1259
|
font-size: ${tokens.typography.fontSize["2xl"]};
|
|
1113
1260
|
line-height: 1;
|
|
1114
1261
|
`;
|
|
1115
|
-
var FileInfo =
|
|
1262
|
+
var FileInfo = styled9__default.default.div`
|
|
1116
1263
|
flex: 1;
|
|
1117
1264
|
min-width: 0;
|
|
1118
1265
|
display: flex;
|
|
1119
1266
|
flex-direction: column;
|
|
1120
1267
|
gap: 2px;
|
|
1121
1268
|
`;
|
|
1122
|
-
var FileTitle =
|
|
1269
|
+
var FileTitle = styled9__default.default.div`
|
|
1123
1270
|
font-size: ${tokens.typography.fontSize.sm};
|
|
1124
1271
|
font-weight: ${tokens.typography.fontWeight.medium};
|
|
1125
1272
|
color: ${tokens.colors.text.primary};
|
|
@@ -1129,7 +1276,7 @@ var FileTitle = styled8__default.default.div`
|
|
|
1129
1276
|
text-overflow: ellipsis;
|
|
1130
1277
|
white-space: nowrap;
|
|
1131
1278
|
`;
|
|
1132
|
-
var FileMetadata =
|
|
1279
|
+
var FileMetadata = styled9__default.default.div`
|
|
1133
1280
|
display: flex;
|
|
1134
1281
|
align-items: center;
|
|
1135
1282
|
gap: ${tokens.spacing.xs};
|
|
@@ -1139,7 +1286,7 @@ var FileMetadata = styled8__default.default.div`
|
|
|
1139
1286
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
1140
1287
|
overflow: hidden;
|
|
1141
1288
|
`;
|
|
1142
|
-
var FileSubtitle =
|
|
1289
|
+
var FileSubtitle = styled9__default.default.span`
|
|
1143
1290
|
color: ${tokens.colors.text.tertiary};
|
|
1144
1291
|
white-space: nowrap;
|
|
1145
1292
|
overflow: hidden;
|
|
@@ -1159,7 +1306,7 @@ var FileAttachment = ({
|
|
|
1159
1306
|
className,
|
|
1160
1307
|
...ariaProps
|
|
1161
1308
|
}) => {
|
|
1162
|
-
const ref =
|
|
1309
|
+
const ref = React.useRef(null);
|
|
1163
1310
|
const isInteractive = !!(onClick || onPress);
|
|
1164
1311
|
const handlePress = (e) => {
|
|
1165
1312
|
if (onClick) onClick();
|
|
@@ -1195,13 +1342,13 @@ var FileAttachment = ({
|
|
|
1195
1342
|
}
|
|
1196
1343
|
);
|
|
1197
1344
|
};
|
|
1198
|
-
var AttachmentsContainer =
|
|
1345
|
+
var AttachmentsContainer = styled9__default.default.div`
|
|
1199
1346
|
display: flex;
|
|
1200
1347
|
flex-direction: column;
|
|
1201
1348
|
gap: ${tokens.spacing.sm};
|
|
1202
1349
|
margin-top: ${tokens.spacing.sm};
|
|
1203
1350
|
`;
|
|
1204
|
-
var ActionButton =
|
|
1351
|
+
var ActionButton = styled9__default.default.button`
|
|
1205
1352
|
display: inline-flex;
|
|
1206
1353
|
align-items: center;
|
|
1207
1354
|
gap: ${tokens.spacing.xs};
|
|
@@ -1225,19 +1372,19 @@ var ActionButton = styled8__default.default.button`
|
|
|
1225
1372
|
transform: scale(0.98);
|
|
1226
1373
|
}
|
|
1227
1374
|
`;
|
|
1228
|
-
var ActionsContainer2 =
|
|
1375
|
+
var ActionsContainer2 = styled9__default.default.div`
|
|
1229
1376
|
display: flex;
|
|
1230
1377
|
gap: ${tokens.spacing.xs};
|
|
1231
1378
|
flex-wrap: wrap;
|
|
1232
1379
|
margin-top: ${tokens.spacing.sm};
|
|
1233
1380
|
`;
|
|
1234
|
-
var MessageTime =
|
|
1381
|
+
var MessageTime = styled9__default.default.time`
|
|
1235
1382
|
font-size: ${tokens.typography.fontSize.xs};
|
|
1236
1383
|
color: ${tokens.colors.text.tertiary};
|
|
1237
1384
|
margin-top: ${tokens.spacing.xs};
|
|
1238
1385
|
display: block;
|
|
1239
1386
|
`;
|
|
1240
|
-
var StreamingIndicator =
|
|
1387
|
+
var StreamingIndicator = styled9__default.default.span`
|
|
1241
1388
|
display: inline-block;
|
|
1242
1389
|
width: ${tokens.spacing.xs};
|
|
1243
1390
|
height: ${tokens.spacing.xs};
|
|
@@ -1308,8 +1455,36 @@ var AssistantMessageBase = ({
|
|
|
1308
1455
|
/* @__PURE__ */ jsxRuntime.jsx(ContentContainer, { children: renderContent() })
|
|
1309
1456
|
] });
|
|
1310
1457
|
};
|
|
1311
|
-
var AssistantMessage =
|
|
1458
|
+
var AssistantMessage = React.memo(AssistantMessageBase);
|
|
1312
1459
|
AssistantMessage.displayName = "AssistantMessage";
|
|
1460
|
+
var REGISTRY_KEY = "__agentiffai_tool_call_registry__";
|
|
1461
|
+
var TOOL_CALL_TTL_MS = 5 * 60 * 1e3;
|
|
1462
|
+
function getRegistryMap() {
|
|
1463
|
+
const g = globalThis;
|
|
1464
|
+
if (!g[REGISTRY_KEY]) {
|
|
1465
|
+
g[REGISTRY_KEY] = /* @__PURE__ */ new Map();
|
|
1466
|
+
}
|
|
1467
|
+
return g[REGISTRY_KEY];
|
|
1468
|
+
}
|
|
1469
|
+
function registerToolCall(name) {
|
|
1470
|
+
getRegistryMap().set(name, Date.now());
|
|
1471
|
+
}
|
|
1472
|
+
function clearToolCalls() {
|
|
1473
|
+
getRegistryMap().clear();
|
|
1474
|
+
}
|
|
1475
|
+
function getActiveToolCalls() {
|
|
1476
|
+
const map = getRegistryMap();
|
|
1477
|
+
const now = Date.now();
|
|
1478
|
+
const active = [];
|
|
1479
|
+
for (const [name, timestamp] of map) {
|
|
1480
|
+
if (now - timestamp < TOOL_CALL_TTL_MS) {
|
|
1481
|
+
active.push(name);
|
|
1482
|
+
} else {
|
|
1483
|
+
map.delete(name);
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
return active;
|
|
1487
|
+
}
|
|
1313
1488
|
function stripToolCallMarkers(content) {
|
|
1314
1489
|
let stripped = content;
|
|
1315
1490
|
stripped = stripped.replace(/<!--TOOL_CALL:[^:]+:[\s\S]+?-->/g, "");
|
|
@@ -1318,6 +1493,25 @@ function stripToolCallMarkers(content) {
|
|
|
1318
1493
|
stripped = stripped.replace(/__TOOL_CALL__:[\s\S]*$/g, "");
|
|
1319
1494
|
return stripped.trim();
|
|
1320
1495
|
}
|
|
1496
|
+
function extractToolCallNames(content) {
|
|
1497
|
+
if (!content.includes("TOOL_CALL")) return [];
|
|
1498
|
+
const names = /* @__PURE__ */ new Set();
|
|
1499
|
+
const patterns = [
|
|
1500
|
+
/<!--TOOL_CALL:([^:]+):/g,
|
|
1501
|
+
/__TOOL_CALL__:([^:]+):/g
|
|
1502
|
+
];
|
|
1503
|
+
for (const pattern of patterns) {
|
|
1504
|
+
let match;
|
|
1505
|
+
while ((match = pattern.exec(content)) !== null) {
|
|
1506
|
+
if (match[1]) names.add(match[1]);
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
return Array.from(names);
|
|
1510
|
+
}
|
|
1511
|
+
function formatToolName2(name) {
|
|
1512
|
+
if (name === "update-workflow") return "Workflow";
|
|
1513
|
+
return name.split(/[-_]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
1514
|
+
}
|
|
1321
1515
|
var ERROR_PATTERNS = [
|
|
1322
1516
|
/\bfailed\b/i,
|
|
1323
1517
|
/\berror\b/i,
|
|
@@ -1389,10 +1583,31 @@ function buildChatSnippet(messages, errorMessageContent, maxMessages = 5, maxLen
|
|
|
1389
1583
|
}
|
|
1390
1584
|
return result;
|
|
1391
1585
|
}
|
|
1392
|
-
var GenerativeUIContainer =
|
|
1586
|
+
var GenerativeUIContainer = styled9__default.default.div`
|
|
1393
1587
|
margin-top: ${tokens.spacing.sm};
|
|
1394
1588
|
margin-bottom: ${tokens.spacing.sm};
|
|
1395
1589
|
`;
|
|
1590
|
+
var ToolCallIndicator = styled9__default.default.div`
|
|
1591
|
+
display: flex;
|
|
1592
|
+
align-items: center;
|
|
1593
|
+
gap: ${tokens.spacing.sm};
|
|
1594
|
+
padding: ${tokens.spacing.xs} ${tokens.spacing.sm};
|
|
1595
|
+
margin-bottom: ${tokens.spacing.sm};
|
|
1596
|
+
border-radius: ${tokens.borderRadius.md};
|
|
1597
|
+
background: ${tokens.colors.text.primary}08;
|
|
1598
|
+
border: 1px solid ${tokens.colors.border.default};
|
|
1599
|
+
font-size: ${tokens.typography.fontSize.xs};
|
|
1600
|
+
color: ${tokens.colors.text.secondary};
|
|
1601
|
+
`;
|
|
1602
|
+
var ToolCallIcon = styled9__default.default.span`
|
|
1603
|
+
display: flex;
|
|
1604
|
+
align-items: center;
|
|
1605
|
+
color: ${tokens.colors.primary};
|
|
1606
|
+
`;
|
|
1607
|
+
var ToolCallName = styled9__default.default.span`
|
|
1608
|
+
font-weight: ${tokens.typography.fontWeight.medium};
|
|
1609
|
+
color: ${tokens.colors.text.primary};
|
|
1610
|
+
`;
|
|
1396
1611
|
var AssistantMessageAdapterBase = ({
|
|
1397
1612
|
message,
|
|
1398
1613
|
isLoading,
|
|
@@ -1406,8 +1621,8 @@ var AssistantMessageAdapterBase = ({
|
|
|
1406
1621
|
// markdownTagRenderers,
|
|
1407
1622
|
// ImageRenderer,
|
|
1408
1623
|
}) => {
|
|
1409
|
-
const lastGenerativeUIRef =
|
|
1410
|
-
const rawContent = message?.content || "";
|
|
1624
|
+
const lastGenerativeUIRef = React.useRef(null);
|
|
1625
|
+
const rawContent = Array.isArray(message?.content) ? message.content.join("") : message?.content || "";
|
|
1411
1626
|
const content = stripToolCallMarkers(rawContent);
|
|
1412
1627
|
let generativeUIOutput = null;
|
|
1413
1628
|
const msgWithUI = message;
|
|
@@ -1446,18 +1661,23 @@ var AssistantMessageAdapterBase = ({
|
|
|
1446
1661
|
)
|
|
1447
1662
|
] });
|
|
1448
1663
|
};
|
|
1449
|
-
var AssistantMessageAdapter =
|
|
1664
|
+
var AssistantMessageAdapter = React.memo(AssistantMessageAdapterBase);
|
|
1450
1665
|
AssistantMessageAdapter.displayName = "AssistantMessageAdapter";
|
|
1451
1666
|
function createAssistantMessageAdapter(ThinkingIndicator, _ToolCallsComponent) {
|
|
1452
1667
|
const CustomAssistantMessageAdapter = ({
|
|
1453
1668
|
message,
|
|
1454
1669
|
isLoading,
|
|
1455
1670
|
isGenerating
|
|
1456
|
-
// isCurrentMessage and ToolCallsComponent are no longer used but kept for backwards compat
|
|
1457
1671
|
}) => {
|
|
1458
|
-
const lastGenerativeUIRef =
|
|
1459
|
-
const rawContent = message?.content || "";
|
|
1672
|
+
const lastGenerativeUIRef = React.useRef(null);
|
|
1673
|
+
const rawContent = Array.isArray(message?.content) ? message.content.join("") : message?.content || "";
|
|
1460
1674
|
const content = stripToolCallMarkers(rawContent);
|
|
1675
|
+
const toolCallNames = React.useMemo(() => {
|
|
1676
|
+
const fromContent = extractToolCallNames(rawContent);
|
|
1677
|
+
if (fromContent.length > 0) return fromContent;
|
|
1678
|
+
if (isLoading || isGenerating || rawContent.length > 80) return getActiveToolCalls();
|
|
1679
|
+
return [];
|
|
1680
|
+
}, [rawContent, isLoading, isGenerating]);
|
|
1461
1681
|
let generativeUIOutput = null;
|
|
1462
1682
|
const msgWithUI = message;
|
|
1463
1683
|
if (msgWithUI && typeof msgWithUI.generativeUI === "function") {
|
|
@@ -1477,10 +1697,18 @@ function createAssistantMessageAdapter(ThinkingIndicator, _ToolCallsComponent) {
|
|
|
1477
1697
|
const attachments = [];
|
|
1478
1698
|
const hasGenerativeUI = generativeUIOutput !== null;
|
|
1479
1699
|
const showThinking = (isLoading || isGenerating && !content) && !hasGenerativeUI;
|
|
1700
|
+
const toolCallIndicators = toolCallNames.map((name) => /* @__PURE__ */ jsxRuntime.jsxs(ToolCallIndicator, { children: [
|
|
1701
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallIcon, { children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "hammer-fill", size: 14 }) }),
|
|
1702
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallName, { children: formatToolName2(name) })
|
|
1703
|
+
] }, name));
|
|
1480
1704
|
if (showThinking) {
|
|
1481
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1705
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1706
|
+
toolCallIndicators,
|
|
1707
|
+
ThinkingIndicator ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { isLoading, isGenerating }) : /* @__PURE__ */ jsxRuntime.jsx(AssistantThinking, { message: "Thinking..." })
|
|
1708
|
+
] });
|
|
1482
1709
|
}
|
|
1483
1710
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1711
|
+
toolCallIndicators,
|
|
1484
1712
|
generativeUIOutput && /* @__PURE__ */ jsxRuntime.jsx(GenerativeUIContainer, { children: generativeUIOutput }),
|
|
1485
1713
|
content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1486
1714
|
AssistantMessage,
|
|
@@ -1496,25 +1724,30 @@ function createAssistantMessageAdapter(ThinkingIndicator, _ToolCallsComponent) {
|
|
|
1496
1724
|
] });
|
|
1497
1725
|
};
|
|
1498
1726
|
CustomAssistantMessageAdapter.displayName = "CustomAssistantMessageAdapter";
|
|
1499
|
-
return
|
|
1727
|
+
return React.memo(CustomAssistantMessageAdapter);
|
|
1500
1728
|
}
|
|
1501
1729
|
function createAssistantMessageAdapterWithErrorReporting(onReportIssue, ThinkingIndicator, _ToolCallsComponent) {
|
|
1502
1730
|
const ErrorReportingAssistantMessageAdapter = ({
|
|
1503
1731
|
message,
|
|
1504
1732
|
isLoading,
|
|
1505
1733
|
isGenerating
|
|
1506
|
-
// isCurrentMessage and ToolCallsComponent are no longer used but kept for backwards compat
|
|
1507
1734
|
}) => {
|
|
1508
|
-
const lastGenerativeUIRef =
|
|
1735
|
+
const lastGenerativeUIRef = React.useRef(null);
|
|
1509
1736
|
const { visibleMessages } = reactCore.useCopilotChat();
|
|
1510
|
-
const rawContent = message?.content || "";
|
|
1737
|
+
const rawContent = Array.isArray(message?.content) ? message.content.join("") : message?.content || "";
|
|
1511
1738
|
const content = stripToolCallMarkers(rawContent);
|
|
1512
|
-
const
|
|
1513
|
-
|
|
1739
|
+
const toolCallNames = React.useMemo(() => {
|
|
1740
|
+
const fromContent = extractToolCallNames(rawContent);
|
|
1741
|
+
if (fromContent.length > 0) return fromContent;
|
|
1742
|
+
if (isLoading || isGenerating || rawContent.length > 80) return getActiveToolCalls();
|
|
1743
|
+
return [];
|
|
1744
|
+
}, [rawContent, isLoading, isGenerating]);
|
|
1745
|
+
const errorContext = React.useMemo(() => detectErrorInMessage(content), [content]);
|
|
1746
|
+
const chatSnippet = React.useMemo(() => {
|
|
1514
1747
|
if (!errorContext.hasError) return "";
|
|
1515
1748
|
return buildChatSnippet(visibleMessages, content);
|
|
1516
1749
|
}, [visibleMessages, content, errorContext.hasError]);
|
|
1517
|
-
const actions =
|
|
1750
|
+
const actions = React.useMemo(() => {
|
|
1518
1751
|
if (!errorContext.hasError || !onReportIssue || isGenerating) {
|
|
1519
1752
|
return [];
|
|
1520
1753
|
}
|
|
@@ -1570,9 +1803,19 @@ function createAssistantMessageAdapterWithErrorReporting(onReportIssue, Thinking
|
|
|
1570
1803
|
const hasGenerativeUI = generativeUIOutput !== null;
|
|
1571
1804
|
const showThinking = (isLoading || isGenerating && !content) && !hasGenerativeUI;
|
|
1572
1805
|
if (showThinking) {
|
|
1573
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1806
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1807
|
+
toolCallNames.map((name) => /* @__PURE__ */ jsxRuntime.jsxs(ToolCallIndicator, { children: [
|
|
1808
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallIcon, { children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }) }) }),
|
|
1809
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallName, { children: formatToolName2(name) })
|
|
1810
|
+
] }, name)),
|
|
1811
|
+
ThinkingIndicator ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { isLoading, isGenerating }) : /* @__PURE__ */ jsxRuntime.jsx(AssistantThinking, { message: "Thinking..." })
|
|
1812
|
+
] });
|
|
1574
1813
|
}
|
|
1575
1814
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1815
|
+
toolCallNames.map((name) => /* @__PURE__ */ jsxRuntime.jsxs(ToolCallIndicator, { children: [
|
|
1816
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallIcon, { children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }) }) }),
|
|
1817
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToolCallName, { children: formatToolName2(name) })
|
|
1818
|
+
] }, name)),
|
|
1576
1819
|
generativeUIOutput && /* @__PURE__ */ jsxRuntime.jsx(GenerativeUIContainer, { children: generativeUIOutput }),
|
|
1577
1820
|
content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1578
1821
|
AssistantMessage,
|
|
@@ -1589,9 +1832,9 @@ function createAssistantMessageAdapterWithErrorReporting(onReportIssue, Thinking
|
|
|
1589
1832
|
] });
|
|
1590
1833
|
};
|
|
1591
1834
|
ErrorReportingAssistantMessageAdapter.displayName = "ErrorReportingAssistantMessageAdapter";
|
|
1592
|
-
return
|
|
1835
|
+
return React.memo(ErrorReportingAssistantMessageAdapter);
|
|
1593
1836
|
}
|
|
1594
|
-
var ChatInputContainer =
|
|
1837
|
+
var ChatInputContainer = styled9__default.default.div`
|
|
1595
1838
|
display: flex;
|
|
1596
1839
|
flex-direction: column;
|
|
1597
1840
|
width: 100%;
|
|
@@ -1607,7 +1850,7 @@ var ChatInputContainer = styled8__default.default.div`
|
|
|
1607
1850
|
padding: ${tokens.spacing.md};
|
|
1608
1851
|
}
|
|
1609
1852
|
`;
|
|
1610
|
-
var SuggestionsWrapper =
|
|
1853
|
+
var SuggestionsWrapper = styled9__default.default.div`
|
|
1611
1854
|
display: flex;
|
|
1612
1855
|
flex-direction: row;
|
|
1613
1856
|
flex-wrap: wrap;
|
|
@@ -1616,7 +1859,7 @@ var SuggestionsWrapper = styled8__default.default.div`
|
|
|
1616
1859
|
width: 100%;
|
|
1617
1860
|
box-sizing: border-box;
|
|
1618
1861
|
`;
|
|
1619
|
-
var SuggestionButton =
|
|
1862
|
+
var SuggestionButton = styled9__default.default.button`
|
|
1620
1863
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
1621
1864
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
1622
1865
|
font-size: 13px;
|
|
@@ -1655,7 +1898,7 @@ var SuggestionButton = styled8__default.default.button`
|
|
|
1655
1898
|
opacity: 0.4;
|
|
1656
1899
|
}
|
|
1657
1900
|
`;
|
|
1658
|
-
var InputWrapper =
|
|
1901
|
+
var InputWrapper = styled9__default.default.div`
|
|
1659
1902
|
display: flex;
|
|
1660
1903
|
align-items: flex-end; /* Align button to bottom when textarea expands */
|
|
1661
1904
|
gap: ${tokens.spacing.sm};
|
|
@@ -1673,7 +1916,7 @@ var InputWrapper = styled8__default.default.div`
|
|
|
1673
1916
|
background-color: rgba(50, 50, 52, 0.6);
|
|
1674
1917
|
}
|
|
1675
1918
|
`;
|
|
1676
|
-
var InputField =
|
|
1919
|
+
var InputField = styled9__default.default.textarea`
|
|
1677
1920
|
flex: 1;
|
|
1678
1921
|
border: none;
|
|
1679
1922
|
outline: none;
|
|
@@ -1698,7 +1941,7 @@ var InputField = styled8__default.default.textarea`
|
|
|
1698
1941
|
cursor: not-allowed;
|
|
1699
1942
|
}
|
|
1700
1943
|
`;
|
|
1701
|
-
var SubmitButton =
|
|
1944
|
+
var SubmitButton = styled9__default.default.button`
|
|
1702
1945
|
display: flex;
|
|
1703
1946
|
align-items: center;
|
|
1704
1947
|
justify-content: center;
|
|
@@ -1747,18 +1990,18 @@ var ChatInput = ({
|
|
|
1747
1990
|
// Note: Additional AriaTextFieldProps are accepted but not spread to textarea
|
|
1748
1991
|
// since useTextField is not compatible with textarea elements
|
|
1749
1992
|
}) => {
|
|
1750
|
-
const [internalValue, setInternalValue] =
|
|
1751
|
-
const inputRef =
|
|
1993
|
+
const [internalValue, setInternalValue] = React.useState(value);
|
|
1994
|
+
const inputRef = React.useRef(null);
|
|
1752
1995
|
const currentValue = value !== void 0 ? value : internalValue;
|
|
1753
1996
|
const setValue = onChange || setInternalValue;
|
|
1754
|
-
const autoResize =
|
|
1997
|
+
const autoResize = React.useCallback(() => {
|
|
1755
1998
|
const textarea = inputRef.current;
|
|
1756
1999
|
if (textarea) {
|
|
1757
2000
|
textarea.style.height = "auto";
|
|
1758
2001
|
textarea.style.height = `${textarea.scrollHeight}px`;
|
|
1759
2002
|
}
|
|
1760
2003
|
}, []);
|
|
1761
|
-
|
|
2004
|
+
React.useEffect(() => {
|
|
1762
2005
|
autoResize();
|
|
1763
2006
|
}, [currentValue, autoResize]);
|
|
1764
2007
|
const handleDirectChange = (e) => {
|
|
@@ -1827,7 +2070,7 @@ var SuggestionButtonComponent = ({
|
|
|
1827
2070
|
onSelect,
|
|
1828
2071
|
isDisabled = false
|
|
1829
2072
|
}) => {
|
|
1830
|
-
const ref =
|
|
2073
|
+
const ref = React.useRef(null);
|
|
1831
2074
|
const { buttonProps } = button.useButton(
|
|
1832
2075
|
{
|
|
1833
2076
|
onPress: () => onSelect(suggestion.text),
|
|
@@ -1843,7 +2086,7 @@ var SubmitButtonComponent = ({
|
|
|
1843
2086
|
isDisabled = false,
|
|
1844
2087
|
ariaLabel = "Send message"
|
|
1845
2088
|
}) => {
|
|
1846
|
-
const ref =
|
|
2089
|
+
const ref = React.useRef(null);
|
|
1847
2090
|
const { buttonProps } = button.useButton(
|
|
1848
2091
|
{
|
|
1849
2092
|
onPress,
|
|
@@ -1884,8 +2127,8 @@ var InputAdapter = ({
|
|
|
1884
2127
|
onSend,
|
|
1885
2128
|
isVisible: _isVisible = true
|
|
1886
2129
|
}) => {
|
|
1887
|
-
const [value, setValue] =
|
|
1888
|
-
const [isSubmitting, setIsSubmitting] =
|
|
2130
|
+
const [value, setValue] = React.useState("");
|
|
2131
|
+
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
1889
2132
|
const handleSubmit = async (message) => {
|
|
1890
2133
|
if (!message.trim()) {
|
|
1891
2134
|
console.log("[InputAdapter] handleSubmit: empty message, ignoring");
|
|
@@ -1934,7 +2177,7 @@ var InputAdapter = ({
|
|
|
1934
2177
|
);
|
|
1935
2178
|
};
|
|
1936
2179
|
InputAdapter.displayName = "InputAdapter";
|
|
1937
|
-
var StyledUserMessage =
|
|
2180
|
+
var StyledUserMessage = styled9__default.default.button`
|
|
1938
2181
|
/* Base styles */
|
|
1939
2182
|
display: inline-flex;
|
|
1940
2183
|
align-items: center;
|
|
@@ -2004,7 +2247,7 @@ var StyledUserMessage = styled8__default.default.button`
|
|
|
2004
2247
|
}
|
|
2005
2248
|
}
|
|
2006
2249
|
|
|
2007
|
-
${({ $isPressed }) => $isPressed &&
|
|
2250
|
+
${({ $isPressed }) => $isPressed && styled9.css`
|
|
2008
2251
|
transform: translateY(0) scale(0.98);
|
|
2009
2252
|
box-shadow: ${tokens.shadows.sm};
|
|
2010
2253
|
|
|
@@ -2044,7 +2287,7 @@ function UserMessageBase({
|
|
|
2044
2287
|
onPress,
|
|
2045
2288
|
...ariaProps
|
|
2046
2289
|
}) {
|
|
2047
|
-
const ref =
|
|
2290
|
+
const ref = React.useRef(null);
|
|
2048
2291
|
if (!onPress) {
|
|
2049
2292
|
return /* @__PURE__ */ jsxRuntime.jsx(StyledUserMessage, { as: "div", className, $isPressed: isPressed, role: "presentation", children });
|
|
2050
2293
|
}
|
|
@@ -2068,9 +2311,9 @@ function UserMessageBase({
|
|
|
2068
2311
|
}
|
|
2069
2312
|
);
|
|
2070
2313
|
}
|
|
2071
|
-
var UserMessage =
|
|
2314
|
+
var UserMessage = React.memo(UserMessageBase);
|
|
2072
2315
|
UserMessage.displayName = "UserMessage";
|
|
2073
|
-
var UserMessageWrapper =
|
|
2316
|
+
var UserMessageWrapper = styled9__default.default.div`
|
|
2074
2317
|
display: flex;
|
|
2075
2318
|
justify-content: flex-end;
|
|
2076
2319
|
width: 100%;
|
|
@@ -2088,9 +2331,9 @@ var UserMessageAdapterBase = ({
|
|
|
2088
2331
|
const content = message?.content || "";
|
|
2089
2332
|
return /* @__PURE__ */ jsxRuntime.jsx(UserMessageWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(UserMessage, { children: content }) });
|
|
2090
2333
|
};
|
|
2091
|
-
var UserMessageAdapter =
|
|
2334
|
+
var UserMessageAdapter = React.memo(UserMessageAdapterBase);
|
|
2092
2335
|
UserMessageAdapter.displayName = "UserMessageAdapter";
|
|
2093
|
-
var pulse3 =
|
|
2336
|
+
var pulse3 = styled9.keyframes`
|
|
2094
2337
|
0%, 100% {
|
|
2095
2338
|
opacity: 1;
|
|
2096
2339
|
transform: scale(1);
|
|
@@ -2100,7 +2343,7 @@ var pulse3 = styled8.keyframes`
|
|
|
2100
2343
|
transform: scale(1.1);
|
|
2101
2344
|
}
|
|
2102
2345
|
`;
|
|
2103
|
-
var Container4 =
|
|
2346
|
+
var Container4 = styled9__default.default.div`
|
|
2104
2347
|
display: inline-flex;
|
|
2105
2348
|
align-items: center;
|
|
2106
2349
|
gap: ${(props) => {
|
|
@@ -2116,7 +2359,7 @@ var Container4 = styled8__default.default.div`
|
|
|
2116
2359
|
}};
|
|
2117
2360
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
2118
2361
|
`;
|
|
2119
|
-
var StatusDot =
|
|
2362
|
+
var StatusDot = styled9__default.default.div`
|
|
2120
2363
|
width: ${(props) => {
|
|
2121
2364
|
if (props.variant === "badge") {
|
|
2122
2365
|
switch (props.size) {
|
|
@@ -2177,7 +2420,7 @@ var StatusDot = styled8__default.default.div`
|
|
|
2177
2420
|
animation: ${(props) => props.status === "streaming" ? pulse3 : "none"} 2s ease-in-out infinite;
|
|
2178
2421
|
flex-shrink: 0;
|
|
2179
2422
|
`;
|
|
2180
|
-
var Label =
|
|
2423
|
+
var Label = styled9__default.default.span`
|
|
2181
2424
|
font-size: ${(props) => {
|
|
2182
2425
|
if (props.variant === "badge") {
|
|
2183
2426
|
switch (props.size) {
|
|
@@ -2204,7 +2447,7 @@ var Label = styled8__default.default.span`
|
|
|
2204
2447
|
color: ${tokens.colors.text.secondary};
|
|
2205
2448
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
2206
2449
|
`;
|
|
2207
|
-
var BadgeContainer =
|
|
2450
|
+
var BadgeContainer = styled9__default.default.div`
|
|
2208
2451
|
display: inline-flex;
|
|
2209
2452
|
align-items: center;
|
|
2210
2453
|
gap: ${(props) => {
|
|
@@ -2281,7 +2524,7 @@ var StreamStatusIndicator = ({
|
|
|
2281
2524
|
return /* @__PURE__ */ jsxRuntime.jsx(Container4, { size, className, role: "status", "aria-label": getStatusLabel(status), children: content });
|
|
2282
2525
|
};
|
|
2283
2526
|
StreamStatusIndicator.displayName = "StreamStatusIndicator";
|
|
2284
|
-
var HeaderContainer =
|
|
2527
|
+
var HeaderContainer = styled9__default.default.header`
|
|
2285
2528
|
display: flex;
|
|
2286
2529
|
align-items: center;
|
|
2287
2530
|
justify-content: space-between;
|
|
@@ -2297,14 +2540,14 @@ var HeaderContainer = styled8__default.default.header`
|
|
|
2297
2540
|
padding: ${tokens.spacing.sm} ${tokens.spacing.md};
|
|
2298
2541
|
}
|
|
2299
2542
|
`;
|
|
2300
|
-
var HeaderContent =
|
|
2543
|
+
var HeaderContent = styled9__default.default.div`
|
|
2301
2544
|
display: flex;
|
|
2302
2545
|
flex-direction: column;
|
|
2303
2546
|
gap: ${tokens.spacing.xs};
|
|
2304
2547
|
flex: 1;
|
|
2305
2548
|
min-width: 0;
|
|
2306
2549
|
`;
|
|
2307
|
-
var HeaderTitle =
|
|
2550
|
+
var HeaderTitle = styled9__default.default.h1`
|
|
2308
2551
|
margin: 0;
|
|
2309
2552
|
font-size: ${tokens.typography.fontSize.base};
|
|
2310
2553
|
font-weight: ${tokens.typography.fontWeight.semibold};
|
|
@@ -2315,7 +2558,7 @@ var HeaderTitle = styled8__default.default.h1`
|
|
|
2315
2558
|
text-overflow: ellipsis;
|
|
2316
2559
|
white-space: nowrap;
|
|
2317
2560
|
`;
|
|
2318
|
-
var HeaderSubtitle =
|
|
2561
|
+
var HeaderSubtitle = styled9__default.default.p`
|
|
2319
2562
|
margin: 0;
|
|
2320
2563
|
font-size: ${tokens.typography.fontSize.sm};
|
|
2321
2564
|
color: ${tokens.colors.text.secondary};
|
|
@@ -2325,13 +2568,13 @@ var HeaderSubtitle = styled8__default.default.p`
|
|
|
2325
2568
|
text-overflow: ellipsis;
|
|
2326
2569
|
white-space: nowrap;
|
|
2327
2570
|
`;
|
|
2328
|
-
var HeaderActions =
|
|
2571
|
+
var HeaderActions = styled9__default.default.div`
|
|
2329
2572
|
display: flex;
|
|
2330
2573
|
align-items: center;
|
|
2331
2574
|
gap: ${tokens.spacing.xs};
|
|
2332
2575
|
margin-left: ${tokens.spacing.md};
|
|
2333
2576
|
`;
|
|
2334
|
-
var ActionButton2 =
|
|
2577
|
+
var ActionButton2 = styled9__default.default.button`
|
|
2335
2578
|
display: inline-flex;
|
|
2336
2579
|
align-items: center;
|
|
2337
2580
|
justify-content: center;
|
|
@@ -2378,8 +2621,8 @@ var Header = ({
|
|
|
2378
2621
|
onMinimize,
|
|
2379
2622
|
className
|
|
2380
2623
|
}) => {
|
|
2381
|
-
const minimizeRef =
|
|
2382
|
-
const closeRef =
|
|
2624
|
+
const minimizeRef = React.useRef(null);
|
|
2625
|
+
const closeRef = React.useRef(null);
|
|
2383
2626
|
const { buttonProps: minimizeProps } = button.useButton(
|
|
2384
2627
|
{
|
|
2385
2628
|
onPress: onMinimize,
|
|
@@ -2448,7 +2691,7 @@ var Header = ({
|
|
|
2448
2691
|
] });
|
|
2449
2692
|
};
|
|
2450
2693
|
Header.displayName = "Header";
|
|
2451
|
-
var MessagesContainer =
|
|
2694
|
+
var MessagesContainer = styled9__default.default.div`
|
|
2452
2695
|
display: flex;
|
|
2453
2696
|
flex-direction: column;
|
|
2454
2697
|
flex: 1;
|
|
@@ -2477,7 +2720,7 @@ var Messages = ({
|
|
|
2477
2720
|
return /* @__PURE__ */ jsxRuntime.jsx(MessagesContainer, { className, role: "region", "aria-label": ariaLabel, children });
|
|
2478
2721
|
};
|
|
2479
2722
|
Messages.displayName = "Messages";
|
|
2480
|
-
var WindowContainer =
|
|
2723
|
+
var WindowContainer = styled9__default.default.div`
|
|
2481
2724
|
display: flex;
|
|
2482
2725
|
flex-direction: column;
|
|
2483
2726
|
/* Glassmorphism effect */
|
|
@@ -2496,7 +2739,7 @@ var WindowContainer = styled8__default.default.div`
|
|
|
2496
2739
|
height: ${({ $height }) => $height};
|
|
2497
2740
|
|
|
2498
2741
|
/* Fullscreen state */
|
|
2499
|
-
${({ $isFullscreen }) => $isFullscreen &&
|
|
2742
|
+
${({ $isFullscreen }) => $isFullscreen && styled9.css`
|
|
2500
2743
|
width: 100vw;
|
|
2501
2744
|
height: 100vh;
|
|
2502
2745
|
border-radius: 0;
|
|
@@ -2508,7 +2751,7 @@ var WindowContainer = styled8__default.default.div`
|
|
|
2508
2751
|
`}
|
|
2509
2752
|
|
|
2510
2753
|
/* Minimized state */
|
|
2511
|
-
${({ $isMinimized }) => $isMinimized &&
|
|
2754
|
+
${({ $isMinimized }) => $isMinimized && styled9.css`
|
|
2512
2755
|
height: 60px;
|
|
2513
2756
|
width: 300px;
|
|
2514
2757
|
box-shadow: ${tokens.shadows.sm};
|
|
@@ -2527,7 +2770,7 @@ var WindowContainer = styled8__default.default.div`
|
|
|
2527
2770
|
|
|
2528
2771
|
/* Responsive behavior for smaller screens */
|
|
2529
2772
|
@media (max-width: ${tokens.breakpoints.tablet}px) {
|
|
2530
|
-
${({ $isFullscreen, $isMinimized }) => !$isFullscreen && !$isMinimized &&
|
|
2773
|
+
${({ $isFullscreen, $isMinimized }) => !$isFullscreen && !$isMinimized && styled9.css`
|
|
2531
2774
|
width: 100vw;
|
|
2532
2775
|
height: 100vh;
|
|
2533
2776
|
border-radius: 0;
|
|
@@ -2570,7 +2813,7 @@ var Window = ({
|
|
|
2570
2813
|
);
|
|
2571
2814
|
};
|
|
2572
2815
|
Window.displayName = "Window";
|
|
2573
|
-
var GlobalSidebarStyles =
|
|
2816
|
+
var GlobalSidebarStyles = styled9.createGlobalStyle`
|
|
2574
2817
|
/* Override CopilotKit's default positioning - start off-screen */
|
|
2575
2818
|
.copilotKitSidebar {
|
|
2576
2819
|
position: fixed !important;
|
|
@@ -2678,7 +2921,7 @@ var GlobalSidebarStyles = styled8.createGlobalStyle`
|
|
|
2678
2921
|
}
|
|
2679
2922
|
}
|
|
2680
2923
|
`;
|
|
2681
|
-
var StyledChatButton =
|
|
2924
|
+
var StyledChatButton = styled9__default.default.button`
|
|
2682
2925
|
position: fixed;
|
|
2683
2926
|
bottom: 8px;
|
|
2684
2927
|
right: 8px;
|
|
@@ -2808,7 +3051,7 @@ var CustomCopilotSidebar = ({
|
|
|
2808
3051
|
] });
|
|
2809
3052
|
};
|
|
2810
3053
|
CustomCopilotSidebar.displayName = "CustomCopilotSidebar";
|
|
2811
|
-
var GlobalSidebarStyles2 =
|
|
3054
|
+
var GlobalSidebarStyles2 = styled9.createGlobalStyle`
|
|
2812
3055
|
/* Override CopilotKit's content wrapper to respect safe areas in landscape */
|
|
2813
3056
|
@media (orientation: landscape) {
|
|
2814
3057
|
.copilotKitSidebarContentWrapper {
|
|
@@ -3088,7 +3331,7 @@ var GlobalSidebarStyles2 = styled8.createGlobalStyle`
|
|
|
3088
3331
|
box-shadow: none !important;
|
|
3089
3332
|
}
|
|
3090
3333
|
`;
|
|
3091
|
-
var StyledChatButton2 =
|
|
3334
|
+
var StyledChatButton2 = styled9__default.default.button`
|
|
3092
3335
|
position: fixed;
|
|
3093
3336
|
bottom: calc(${tokens.spacing.sm} + var(--safe-area-bottom, 0px));
|
|
3094
3337
|
right: calc(${tokens.spacing.sm} + var(--safe-area-right, 0px));
|
|
@@ -3192,15 +3435,15 @@ function CustomCopilotSidebar2({
|
|
|
3192
3435
|
ToolCallsComponent,
|
|
3193
3436
|
onReportIssue
|
|
3194
3437
|
}) {
|
|
3195
|
-
const HeaderAdapterWithClose =
|
|
3438
|
+
const HeaderAdapterWithClose = React.useMemo(
|
|
3196
3439
|
() => createHeaderAdapter(onSetOpen),
|
|
3197
3440
|
[onSetOpen]
|
|
3198
3441
|
);
|
|
3199
|
-
const CustomButton =
|
|
3442
|
+
const CustomButton = React.useMemo(
|
|
3200
3443
|
() => createButtonAdapter(disabled, disabledReason, onSetOpen),
|
|
3201
3444
|
[disabled, disabledReason, onSetOpen]
|
|
3202
3445
|
);
|
|
3203
|
-
const AssistantMessageAdapterMemo =
|
|
3446
|
+
const AssistantMessageAdapterMemo = React.useMemo(
|
|
3204
3447
|
() => onReportIssue ? createAssistantMessageAdapterWithErrorReporting(onReportIssue, ThinkingIndicator) : ThinkingIndicator || ToolCallsComponent ? createAssistantMessageAdapter(ThinkingIndicator) : AssistantMessageAdapter,
|
|
3205
3448
|
[ThinkingIndicator, ToolCallsComponent, onReportIssue]
|
|
3206
3449
|
);
|
|
@@ -3234,7 +3477,7 @@ function CustomCopilotSidebar2({
|
|
|
3234
3477
|
] });
|
|
3235
3478
|
}
|
|
3236
3479
|
CustomCopilotSidebar2.displayName = "CustomCopilotSidebar";
|
|
3237
|
-
var FooterContainer =
|
|
3480
|
+
var FooterContainer = styled9__default.default.footer`
|
|
3238
3481
|
display: flex;
|
|
3239
3482
|
align-items: center;
|
|
3240
3483
|
justify-content: center;
|
|
@@ -3243,7 +3486,7 @@ var FooterContainer = styled8__default.default.footer`
|
|
|
3243
3486
|
border-top: 1px solid ${tokens.colors.border.default};
|
|
3244
3487
|
min-height: 44px;
|
|
3245
3488
|
`;
|
|
3246
|
-
var FooterContent =
|
|
3489
|
+
var FooterContent = styled9__default.default.div`
|
|
3247
3490
|
display: flex;
|
|
3248
3491
|
align-items: center;
|
|
3249
3492
|
justify-content: space-between;
|
|
@@ -3256,13 +3499,13 @@ var FooterContent = styled8__default.default.div`
|
|
|
3256
3499
|
font-family: ${tokens.typography.fontFamily.primary};
|
|
3257
3500
|
line-height: ${tokens.typography.lineHeight.tight};
|
|
3258
3501
|
`;
|
|
3259
|
-
var FooterBranding =
|
|
3502
|
+
var FooterBranding = styled9__default.default.div`
|
|
3260
3503
|
display: flex;
|
|
3261
3504
|
align-items: center;
|
|
3262
3505
|
gap: ${tokens.spacing.xs};
|
|
3263
3506
|
flex-shrink: 0;
|
|
3264
3507
|
`;
|
|
3265
|
-
var FooterStatus =
|
|
3508
|
+
var FooterStatus = styled9__default.default.div`
|
|
3266
3509
|
display: flex;
|
|
3267
3510
|
align-items: center;
|
|
3268
3511
|
gap: ${tokens.spacing.xs};
|
|
@@ -3272,7 +3515,7 @@ var FooterStatus = styled8__default.default.div`
|
|
|
3272
3515
|
font-size: ${tokens.typography.fontSize.xs};
|
|
3273
3516
|
opacity: 0.8;
|
|
3274
3517
|
`;
|
|
3275
|
-
var FooterLink =
|
|
3518
|
+
var FooterLink = styled9__default.default.a`
|
|
3276
3519
|
color: ${tokens.colors.primary};
|
|
3277
3520
|
text-decoration: none;
|
|
3278
3521
|
transition: opacity ${tokens.transitions.fast};
|
|
@@ -3320,13 +3563,13 @@ var Footer = ({
|
|
|
3320
3563
|
] }) });
|
|
3321
3564
|
};
|
|
3322
3565
|
Footer.displayName = "Footer";
|
|
3323
|
-
var InputContainer =
|
|
3566
|
+
var InputContainer = styled9__default.default.div`
|
|
3324
3567
|
display: flex;
|
|
3325
3568
|
flex-direction: column;
|
|
3326
3569
|
width: 100%;
|
|
3327
3570
|
position: relative;
|
|
3328
3571
|
`;
|
|
3329
|
-
var InputWrapper2 =
|
|
3572
|
+
var InputWrapper2 = styled9__default.default.div`
|
|
3330
3573
|
display: flex;
|
|
3331
3574
|
align-items: flex-end;
|
|
3332
3575
|
gap: ${tokens.spacing.sm};
|
|
@@ -3346,7 +3589,7 @@ var InputWrapper2 = styled8__default.default.div`
|
|
|
3346
3589
|
border-color: ${tokens.colors.border.subtle};
|
|
3347
3590
|
}
|
|
3348
3591
|
`;
|
|
3349
|
-
var TextArea =
|
|
3592
|
+
var TextArea = styled9__default.default.textarea`
|
|
3350
3593
|
flex: 1;
|
|
3351
3594
|
min-height: ${tokens.spacing.lg};
|
|
3352
3595
|
max-height: ${(props) => `${(props.$maxRows || 5) * 24}px`};
|
|
@@ -3392,7 +3635,7 @@ var TextArea = styled8__default.default.textarea`
|
|
|
3392
3635
|
background: ${tokens.colors.scrollbar.thumbHover};
|
|
3393
3636
|
}
|
|
3394
3637
|
`;
|
|
3395
|
-
var SendButton =
|
|
3638
|
+
var SendButton = styled9__default.default.button`
|
|
3396
3639
|
display: flex;
|
|
3397
3640
|
align-items: center;
|
|
3398
3641
|
justify-content: center;
|
|
@@ -3439,7 +3682,7 @@ var Input = ({
|
|
|
3439
3682
|
"aria-label": ariaLabel = "Message input",
|
|
3440
3683
|
...ariaProps
|
|
3441
3684
|
}) => {
|
|
3442
|
-
const textareaRef =
|
|
3685
|
+
const textareaRef = React.useRef(null);
|
|
3443
3686
|
const { inputProps } = textfield.useTextField(
|
|
3444
3687
|
{
|
|
3445
3688
|
...ariaProps,
|
|
@@ -3522,7 +3765,7 @@ var Input = ({
|
|
|
3522
3765
|
)
|
|
3523
3766
|
] }) });
|
|
3524
3767
|
};
|
|
3525
|
-
var MessagesListContainer =
|
|
3768
|
+
var MessagesListContainer = styled9__default.default.div`
|
|
3526
3769
|
display: flex;
|
|
3527
3770
|
flex-direction: column;
|
|
3528
3771
|
width: 100%;
|
|
@@ -3562,7 +3805,7 @@ var MessagesListContainer = styled8__default.default.div`
|
|
|
3562
3805
|
/* Ensure proper rendering on mobile */
|
|
3563
3806
|
-webkit-overflow-scrolling: touch;
|
|
3564
3807
|
`;
|
|
3565
|
-
var MessagesListContent =
|
|
3808
|
+
var MessagesListContent = styled9__default.default.div`
|
|
3566
3809
|
display: flex;
|
|
3567
3810
|
flex-direction: column;
|
|
3568
3811
|
gap: ${tokens.spacing.sm};
|
|
@@ -3625,11 +3868,11 @@ var MessagesList = ({
|
|
|
3625
3868
|
onScrollTop,
|
|
3626
3869
|
maxHeight = "600px"
|
|
3627
3870
|
}) => {
|
|
3628
|
-
const containerRef =
|
|
3629
|
-
const contentRef =
|
|
3630
|
-
const isUserScrollingRef =
|
|
3631
|
-
const scrollTimeoutRef =
|
|
3632
|
-
|
|
3871
|
+
const containerRef = React.useRef(null);
|
|
3872
|
+
const contentRef = React.useRef(null);
|
|
3873
|
+
const isUserScrollingRef = React.useRef(false);
|
|
3874
|
+
const scrollTimeoutRef = React.useRef(null);
|
|
3875
|
+
React.useEffect(() => {
|
|
3633
3876
|
if (autoScroll && !isUserScrollingRef.current && containerRef.current) {
|
|
3634
3877
|
const container = containerRef.current;
|
|
3635
3878
|
container.scrollTop = container.scrollHeight;
|
|
@@ -3650,7 +3893,7 @@ var MessagesList = ({
|
|
|
3650
3893
|
onScrollTop();
|
|
3651
3894
|
}
|
|
3652
3895
|
};
|
|
3653
|
-
|
|
3896
|
+
React.useEffect(() => {
|
|
3654
3897
|
return () => {
|
|
3655
3898
|
if (scrollTimeoutRef.current) {
|
|
3656
3899
|
clearTimeout(scrollTimeoutRef.current);
|
|
@@ -3678,7 +3921,7 @@ var MessagesList = ({
|
|
|
3678
3921
|
}
|
|
3679
3922
|
);
|
|
3680
3923
|
};
|
|
3681
|
-
var StyledUserMessage2 =
|
|
3924
|
+
var StyledUserMessage2 = styled9__default.default.div`
|
|
3682
3925
|
display: flex;
|
|
3683
3926
|
justify-content: flex-end;
|
|
3684
3927
|
align-items: flex-start;
|
|
@@ -3686,7 +3929,7 @@ var StyledUserMessage2 = styled8__default.default.div`
|
|
|
3686
3929
|
padding: 0;
|
|
3687
3930
|
width: 100%;
|
|
3688
3931
|
`;
|
|
3689
|
-
var MessageBubble =
|
|
3932
|
+
var MessageBubble = styled9__default.default.div`
|
|
3690
3933
|
display: flex;
|
|
3691
3934
|
flex-direction: column;
|
|
3692
3935
|
max-width: 85%;
|
|
@@ -3713,7 +3956,7 @@ var MessageBubble = styled8__default.default.div`
|
|
|
3713
3956
|
opacity: 0.9;
|
|
3714
3957
|
}
|
|
3715
3958
|
`;
|
|
3716
|
-
var MessageContent2 =
|
|
3959
|
+
var MessageContent2 = styled9__default.default.p`
|
|
3717
3960
|
margin: 0;
|
|
3718
3961
|
font-size: ${tokens.typography.fontSize.sm};
|
|
3719
3962
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
@@ -3722,13 +3965,13 @@ var MessageContent2 = styled8__default.default.p`
|
|
|
3722
3965
|
word-break: break-word;
|
|
3723
3966
|
white-space: pre-wrap;
|
|
3724
3967
|
`;
|
|
3725
|
-
var MessageTime2 =
|
|
3968
|
+
var MessageTime2 = styled9__default.default.time`
|
|
3726
3969
|
font-size: ${tokens.typography.fontSize.xs};
|
|
3727
3970
|
opacity: 0.7;
|
|
3728
3971
|
margin-top: ${tokens.spacing.xs};
|
|
3729
3972
|
text-align: right;
|
|
3730
3973
|
`;
|
|
3731
|
-
var ActionButton3 =
|
|
3974
|
+
var ActionButton3 = styled9__default.default.button`
|
|
3732
3975
|
display: inline-flex;
|
|
3733
3976
|
align-items: center;
|
|
3734
3977
|
gap: ${tokens.spacing.xs};
|
|
@@ -3752,12 +3995,12 @@ var ActionButton3 = styled8__default.default.button`
|
|
|
3752
3995
|
transform: scale(0.98);
|
|
3753
3996
|
}
|
|
3754
3997
|
`;
|
|
3755
|
-
var ActionsContainer3 =
|
|
3998
|
+
var ActionsContainer3 = styled9__default.default.div`
|
|
3756
3999
|
display: flex;
|
|
3757
4000
|
gap: ${tokens.spacing.xs};
|
|
3758
4001
|
flex-wrap: wrap;
|
|
3759
4002
|
`;
|
|
3760
|
-
var Avatar3 =
|
|
4003
|
+
var Avatar3 = styled9__default.default.img`
|
|
3761
4004
|
width: ${tokens.spacing.xl};
|
|
3762
4005
|
height: ${tokens.spacing.xl};
|
|
3763
4006
|
border-radius: ${tokens.borderRadius.full};
|
|
@@ -3796,7 +4039,7 @@ var UserMessage2 = ({
|
|
|
3796
4039
|
avatarUrl && /* @__PURE__ */ jsxRuntime.jsx(Avatar3, { src: avatarUrl, alt: username || "User" })
|
|
3797
4040
|
] });
|
|
3798
4041
|
};
|
|
3799
|
-
var ErrorContainer =
|
|
4042
|
+
var ErrorContainer = styled9__default.default.div`
|
|
3800
4043
|
display: flex;
|
|
3801
4044
|
align-items: flex-start;
|
|
3802
4045
|
gap: ${tokens.spacing.sm};
|
|
@@ -3810,7 +4053,7 @@ var ErrorContainer = styled8__default.default.div`
|
|
|
3810
4053
|
width: ${(props) => props.variant === "banner" ? "100%" : "auto"};
|
|
3811
4054
|
max-width: ${(props) => props.variant === "banner" ? "100%" : "600px"};
|
|
3812
4055
|
`;
|
|
3813
|
-
var IconContainer =
|
|
4056
|
+
var IconContainer = styled9__default.default.div`
|
|
3814
4057
|
flex-shrink: 0;
|
|
3815
4058
|
width: 20px;
|
|
3816
4059
|
height: 20px;
|
|
@@ -3827,29 +4070,29 @@ var ErrorIcon = () => /* @__PURE__ */ jsxRuntime.jsx(
|
|
|
3827
4070
|
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" })
|
|
3828
4071
|
}
|
|
3829
4072
|
);
|
|
3830
|
-
var Content2 =
|
|
4073
|
+
var Content2 = styled9__default.default.div`
|
|
3831
4074
|
flex: 1;
|
|
3832
4075
|
display: flex;
|
|
3833
4076
|
flex-direction: column;
|
|
3834
4077
|
gap: ${tokens.spacing.sm};
|
|
3835
4078
|
`;
|
|
3836
|
-
var ErrorMessage =
|
|
4079
|
+
var ErrorMessage = styled9__default.default.div`
|
|
3837
4080
|
font-size: ${tokens.typography.fontSize.sm};
|
|
3838
4081
|
line-height: ${tokens.typography.lineHeight.normal};
|
|
3839
4082
|
color: ${tokens.colors.text.primary};
|
|
3840
4083
|
`;
|
|
3841
|
-
var ErrorDetails =
|
|
4084
|
+
var ErrorDetails = styled9__default.default.div`
|
|
3842
4085
|
font-size: ${tokens.typography.fontSize.xs};
|
|
3843
4086
|
line-height: 1.4;
|
|
3844
4087
|
color: ${tokens.colors.text.secondary};
|
|
3845
4088
|
margin-top: ${tokens.spacing.xs};
|
|
3846
4089
|
`;
|
|
3847
|
-
var Actions2 =
|
|
4090
|
+
var Actions2 = styled9__default.default.div`
|
|
3848
4091
|
display: flex;
|
|
3849
4092
|
gap: ${tokens.spacing.sm};
|
|
3850
4093
|
margin-top: ${tokens.spacing.sm};
|
|
3851
4094
|
`;
|
|
3852
|
-
var Button2 =
|
|
4095
|
+
var Button2 = styled9__default.default.button`
|
|
3853
4096
|
display: inline-flex;
|
|
3854
4097
|
align-items: center;
|
|
3855
4098
|
gap: ${tokens.spacing.xs};
|
|
@@ -3878,7 +4121,7 @@ var Button2 = styled8__default.default.button`
|
|
|
3878
4121
|
cursor: not-allowed;
|
|
3879
4122
|
}
|
|
3880
4123
|
`;
|
|
3881
|
-
var CloseButton =
|
|
4124
|
+
var CloseButton = styled9__default.default.button`
|
|
3882
4125
|
flex-shrink: 0;
|
|
3883
4126
|
width: 24px;
|
|
3884
4127
|
height: 24px;
|
|
@@ -3937,7 +4180,7 @@ var StreamErrorMessage = ({
|
|
|
3937
4180
|
] });
|
|
3938
4181
|
};
|
|
3939
4182
|
StreamErrorMessage.displayName = "StreamErrorMessage";
|
|
3940
|
-
var SuggestionsContainer =
|
|
4183
|
+
var SuggestionsContainer = styled9__default.default.div`
|
|
3941
4184
|
display: flex;
|
|
3942
4185
|
flex-wrap: nowrap; /* Single row */
|
|
3943
4186
|
gap: ${tokens.spacing.sm};
|
|
@@ -3970,7 +4213,7 @@ var SuggestionsContainer = styled8__default.default.div`
|
|
|
3970
4213
|
display: none; /* Chrome/Safari/Opera */
|
|
3971
4214
|
}
|
|
3972
4215
|
`;
|
|
3973
|
-
var StyledSuggestion =
|
|
4216
|
+
var StyledSuggestion = styled9__default.default.button`
|
|
3974
4217
|
/* Base styles */
|
|
3975
4218
|
display: inline-flex;
|
|
3976
4219
|
align-items: center;
|
|
@@ -4003,7 +4246,7 @@ var StyledSuggestion = styled8__default.default.button`
|
|
|
4003
4246
|
box-shadow: none;
|
|
4004
4247
|
}
|
|
4005
4248
|
|
|
4006
|
-
${({ $isPressed }) => $isPressed &&
|
|
4249
|
+
${({ $isPressed }) => $isPressed && styled9.css`
|
|
4007
4250
|
transform: scale(0.98);
|
|
4008
4251
|
`}
|
|
4009
4252
|
|
|
@@ -4032,7 +4275,7 @@ function Suggestions({ suggestions, onSelect, className }) {
|
|
|
4032
4275
|
return /* @__PURE__ */ jsxRuntime.jsx(SuggestionsContainer, { className, role: "list", "aria-label": "Suggested prompts", children: suggestions.map((suggestion) => /* @__PURE__ */ jsxRuntime.jsx(SuggestionChip, { suggestion, onSelect }, suggestion)) });
|
|
4033
4276
|
}
|
|
4034
4277
|
function SuggestionChip({ suggestion, onSelect }) {
|
|
4035
|
-
const ref =
|
|
4278
|
+
const ref = React.useRef(null);
|
|
4036
4279
|
const { buttonProps, isPressed } = button.useButton(
|
|
4037
4280
|
{
|
|
4038
4281
|
onPress: () => onSelect(suggestion),
|
|
@@ -4069,5 +4312,7 @@ exports.Suggestions = Suggestions;
|
|
|
4069
4312
|
exports.UserMessage = UserMessage2;
|
|
4070
4313
|
exports.UserMessageAdapter = UserMessageAdapter;
|
|
4071
4314
|
exports.Window = Window;
|
|
4315
|
+
exports.clearToolCalls = clearToolCalls;
|
|
4316
|
+
exports.registerToolCall = registerToolCall;
|
|
4072
4317
|
//# sourceMappingURL=index.cjs.map
|
|
4073
4318
|
//# sourceMappingURL=index.cjs.map
|