@ensembleapp/client-sdk 0.0.55 → 0.0.57
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/RealtimeVoicePanel-IZD3FICH.js +417 -0
- package/dist/RealtimeVoicePanel-IZD3FICH.js.map +1 -0
- package/dist/VoiceCharts-5TTAROFU.js +295 -0
- package/dist/VoiceCharts-5TTAROFU.js.map +1 -0
- package/dist/chunk-LFKJR7WX.js +1013 -0
- package/dist/chunk-LFKJR7WX.js.map +1 -0
- package/dist/chunk-LQHHZ2OJ.js +4177 -0
- package/dist/chunk-LQHHZ2OJ.js.map +1 -0
- package/dist/chunk-YLJ4XMA6.js +35 -0
- package/dist/chunk-YLJ4XMA6.js.map +1 -0
- package/dist/index.d.ts +18 -2
- package/dist/index.js +4913 -8745
- package/dist/index.js.map +1 -1
- package/dist/widget/widget.global.js +229 -99
- package/dist/widget/widget.global.js.map +1 -1
- package/lib/chat/ChatWidget.css +111 -0
- package/package.json +7 -2
package/lib/chat/ChatWidget.css
CHANGED
|
@@ -651,3 +651,114 @@
|
|
|
651
651
|
.chat-widget__collapsed--animating .chat-widget__collapsed-preview {
|
|
652
652
|
animation: chat-widget-slide-up 300ms ease-out forwards;
|
|
653
653
|
}
|
|
654
|
+
|
|
655
|
+
.chat-widget .chat-widget__voice { display: flex; flex-direction: column; min-height: 0; min-width: 0; border-bottom: 1px solid var(--chat-border); }
|
|
656
|
+
|
|
657
|
+
.chat-widget .chat-widget__avatar-stage { display: block; position: relative; flex: 1; min-height: 0; min-width: 0; overflow: hidden; background: #080c14; }
|
|
658
|
+
.chat-widget .chat-widget__avatar-stage video { display: block; position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; }
|
|
659
|
+
.chat-widget .chat-widget__avatar-stage audio { display: none; }
|
|
660
|
+
.chat-widget .chat-widget__call-footer { display: flex; flex-direction: column; flex: 0 0 auto; gap: 8px; padding: 16px; margin-top: auto; border-top: 1px solid var(--chat-border); }
|
|
661
|
+
.chat-widget .chat-widget__call-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
|
|
662
|
+
.chat-widget .chat-widget__call-controls > [role="status"] { flex-basis: 100%; text-align: center; font-size: 12px; color: var(--chat-text-muted); }
|
|
663
|
+
.chat-widget .chat-widget__call-controls button { flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--chat-border); border-radius: 8px; white-space: nowrap; cursor: pointer; }
|
|
664
|
+
.chat-widget .chat-widget__call-controls button:disabled { opacity: 0.5; }
|
|
665
|
+
.chat-widget .chat-widget__call-controls button:hover { background: var(--chat-border); }
|
|
666
|
+
|
|
667
|
+
.chat-widget .chat-widget__voice { position: relative; }
|
|
668
|
+
.chat-widget--avatar .chat-widget__call-footer {
|
|
669
|
+
position: absolute;
|
|
670
|
+
left: 0; right: 0; bottom: 0;
|
|
671
|
+
border-top: 0;
|
|
672
|
+
color: #fff;
|
|
673
|
+
background: linear-gradient(transparent, rgba(0,0,0,.8));
|
|
674
|
+
padding-top: 48px;
|
|
675
|
+
z-index: 1;
|
|
676
|
+
}
|
|
677
|
+
.chat-widget--avatar .chat-widget__call-controls button {
|
|
678
|
+
color: #fff; background: rgba(15,23,42,.75); border-color: rgba(255,255,255,.3);
|
|
679
|
+
backdrop-filter: blur(8px);
|
|
680
|
+
}
|
|
681
|
+
.chat-widget--avatar .chat-widget__call-controls > [role="status"] { color: #fff; }
|
|
682
|
+
/* Voice opens beside the existing chat without changing its dimensions. */
|
|
683
|
+
.chat-widget--avatar { overflow: visible; }
|
|
684
|
+
.chat-widget--avatar > .chat-widget__voice {
|
|
685
|
+
position: absolute;
|
|
686
|
+
top: 0;
|
|
687
|
+
bottom: 0;
|
|
688
|
+
right: calc(100% + 12px);
|
|
689
|
+
width: clamp(240px, calc(100vw - 100% - 52px), 520px);
|
|
690
|
+
border: 1px solid var(--chat-border);
|
|
691
|
+
border-radius: var(--chat-radius);
|
|
692
|
+
overflow: hidden;
|
|
693
|
+
background: var(--chat-background);
|
|
694
|
+
}
|
|
695
|
+
.chat-widget .chat-widget__connect-voice {
|
|
696
|
+
display: inline-flex;
|
|
697
|
+
align-items: center;
|
|
698
|
+
justify-content: center;
|
|
699
|
+
width: 32px;
|
|
700
|
+
height: 32px;
|
|
701
|
+
padding: 4px;
|
|
702
|
+
border: 0;
|
|
703
|
+
background: transparent;
|
|
704
|
+
color: var(--chat-primary);
|
|
705
|
+
cursor: pointer;
|
|
706
|
+
}
|
|
707
|
+
.chat-widget .chat-widget__connect-voice:disabled { opacity: .5; cursor: default; }
|
|
708
|
+
@media (max-width: 800px) {
|
|
709
|
+
.chat-widget--avatar > .chat-widget__voice {
|
|
710
|
+
position: fixed;
|
|
711
|
+
inset: 20px;
|
|
712
|
+
width: auto;
|
|
713
|
+
z-index: 20;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/* The connected voice view replaces only the presentation, not the chat session. */
|
|
718
|
+
.chat-widget .chat-widget__voice-view { display: grid; flex: 1; min-height: 0; grid-template-rows: minmax(0, 1fr) minmax(0, 0fr); overflow: hidden; transition: grid-template-rows 320ms ease; }
|
|
719
|
+
.chat-widget .chat-widget__voice-view:fullscreen { width: 100%; height: 100%; background: var(--chat-background); color: var(--chat-text); }
|
|
720
|
+
.chat-widget .chat-widget__voice-fullscreen { position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; background: rgba(15,23,42,.75); color: #fff; cursor: pointer; }
|
|
721
|
+
.chat-widget .chat-widget__voice-fullscreen:hover { background: rgba(15,23,42,.95); }
|
|
722
|
+
.chat-widget .chat-widget__voice-fullscreen:focus-visible { outline: 2px solid #67e8f9; outline-offset: 2px; }
|
|
723
|
+
.chat-widget .chat-widget__voice-view[hidden] { display: none; }
|
|
724
|
+
.chat-widget .chat-widget__voice-scene { position: relative; flex: 1; min-height: 0; background: #080c14; }
|
|
725
|
+
.chat-widget .chat-widget__voice-scene > .chat-widget__avatar-stage { position: absolute; inset: 0; }
|
|
726
|
+
.chat-widget .chat-widget__voice-overlay { position: absolute; bottom: 0; left: 0; right: 0; z-index: 1; padding-top: 32px; background: linear-gradient(transparent, rgba(0,0,0,.8)); color: #fff; }
|
|
727
|
+
.chat-widget .chat-widget__voice-overlay .chat-widget__call-footer { border: 0; padding: 10px; margin: 0; }
|
|
728
|
+
.chat-widget .chat-widget__voice-overlay button { color: #fff; background: rgba(15,23,42,.75); }
|
|
729
|
+
.chat-widget .chat-widget__voice-overlay [role="status"] { color: #fff; }
|
|
730
|
+
.chat-widget .chat-widget__subtitles { position: relative; font-size: 16px; line-height: 24px; max-height: 48px; width: calc(100% - 48px); max-width: 640px; overflow: hidden; margin: 0 auto 8px; text-align: center; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
731
|
+
.chat-widget .chat-widget__subtitle-current { color: #67e8f9; }
|
|
732
|
+
.chat-widget .chat-widget__voice-view--content { grid-template-rows: minmax(0, .48fr) minmax(0, .52fr); }
|
|
733
|
+
.chat-widget .chat-widget__voice-view--content .chat-widget__avatar-stage video { object-fit: contain; }
|
|
734
|
+
.chat-widget .chat-widget__voice-content-wrap { min-height: 0; overflow: hidden; opacity: 0; transform: translateY(16px); transition: opacity 250ms ease, transform 320ms ease; }
|
|
735
|
+
.chat-widget .chat-widget__voice-view--content .chat-widget__voice-content-wrap { opacity: 1; transform: translateY(0); }
|
|
736
|
+
.chat-widget .chat-widget__voice-content { position: relative; height: 100%; box-sizing: border-box; overflow: auto; padding: 24px; border-top: 1px solid var(--chat-border); }
|
|
737
|
+
.chat-widget .chat-widget__dismiss-content { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; padding: 6px; border-radius: 50%; color: var(--chat-text-secondary); background: var(--chat-background-secondary); cursor: pointer; z-index: 1; }
|
|
738
|
+
.chat-widget .chat-widget__table-card { min-width: 0; }
|
|
739
|
+
.chat-widget .chat-widget__table-card h3 { margin: 0 24px 16px 0; font-size: 1.1em; font-weight: 600; }
|
|
740
|
+
.chat-widget .chat-widget__table-scroll { overflow-x: auto; }
|
|
741
|
+
.chat-widget .chat-widget__table-card table { width: 100%; border-collapse: collapse; text-align: left; }
|
|
742
|
+
.chat-widget .chat-widget__table-card th, .chat-widget .chat-widget__table-card td { padding: 10px 12px; border: 1px solid var(--chat-border); vertical-align: top; }
|
|
743
|
+
.chat-widget .chat-widget__table-card th { background: var(--chat-background-secondary); font-weight: 600; }
|
|
744
|
+
.chat-widget .chat-widget__voice-content .chat-widget__table-card { font-size: 18px; line-height: 1.5; }
|
|
745
|
+
.chat-widget .chat-widget__voice-content .chat-widget__table-card th, .chat-widget .chat-widget__voice-content .chat-widget__table-card td { padding: 14px 16px; }
|
|
746
|
+
@media (prefers-reduced-motion: reduce) {
|
|
747
|
+
.chat-widget .chat-widget__voice-view, .chat-widget .chat-widget__voice-content-wrap { transition: none; transform: none; }
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/* shadcn/Recharts widgets use SDK theme tokens without requiring host Tailwind styles. */
|
|
751
|
+
.chat-widget .chat-widget__chart-card { margin: 0; min-width: 0; }
|
|
752
|
+
.chat-widget .chat-widget__chart-card h3 { margin: 0 24px 8px 0; font-size: 1.1em; font-weight: 600; }
|
|
753
|
+
.chat-widget .chat-widget__chart-card figcaption p { margin: 4px 0; color: var(--chat-text-secondary); font-size: 14px; }
|
|
754
|
+
.chat-widget .chat-widget__chart { margin-top: 12px; }
|
|
755
|
+
.chat-widget .chat-widget__chart svg:focus-visible { outline: 2px solid var(--chat-primary); }
|
|
756
|
+
.chat-widget .chat-widget__chart-tooltip { padding: 10px 12px; background: var(--chat-background); color: var(--chat-text); border: 1px solid var(--chat-border); border-radius: 8px; box-shadow: 0 4px 12px #0003; font-size: 13px; }
|
|
757
|
+
.chat-widget .chat-widget__chart-tooltip > div { display: grid; gap: 6px; }
|
|
758
|
+
.chat-widget .chat-widget__chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; margin-top: 8px; font-size: 13px; }
|
|
759
|
+
.chat-widget .chat-widget__chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
|
|
760
|
+
.chat-widget .chat-widget__chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
|
|
761
|
+
.chat-widget .chat-widget__chart-data { margin-top: 12px; font-size: 14px; }
|
|
762
|
+
.chat-widget .chat-widget__chart-data summary { cursor: pointer; color: var(--chat-text-secondary); }
|
|
763
|
+
.chat-widget .chat-widget__chart-data table { width: 100%; border-collapse: collapse; margin-top: 8px; }
|
|
764
|
+
.chat-widget .chat-widget__chart-data th, .chat-widget .chat-widget__chart-data td { padding: 8px 12px; border: 1px solid var(--chat-border); text-align: left; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ensembleapp/client-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.57",
|
|
4
4
|
"description": "React client SDK for chat functionality",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -40,11 +40,13 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@ai-sdk/provider-utils": "^4.0.19",
|
|
42
42
|
"@ai-sdk/react": "^3.0.41",
|
|
43
|
+
"@livekit/components-react": "^2.9.24",
|
|
43
44
|
"camelcase-css": "^2.0.1",
|
|
44
45
|
"clsx": "^2.1.1",
|
|
45
46
|
"didyoumean": "^1.2.2",
|
|
46
47
|
"dlv": "^1.1.3",
|
|
47
48
|
"fast-glob": "^3.3.3",
|
|
49
|
+
"livekit-client": "^2.22.4",
|
|
48
50
|
"lucide-react": "^0.553.0",
|
|
49
51
|
"micromatch": "^4.0.8",
|
|
50
52
|
"object-hash": "^3.0.0",
|
|
@@ -52,6 +54,7 @@
|
|
|
52
54
|
"postcss-import": "^15.1.0",
|
|
53
55
|
"postcss-nested": "^6.2.0",
|
|
54
56
|
"react-markdown": "^10.1.0",
|
|
57
|
+
"recharts": "^2.15.4",
|
|
55
58
|
"remark-gfm": "^4.0.1",
|
|
56
59
|
"tailwind-merge": "^2.5.4",
|
|
57
60
|
"zod": "^4.0.4"
|
|
@@ -59,6 +62,7 @@
|
|
|
59
62
|
"devDependencies": {
|
|
60
63
|
"@repo/agent-sdk": "workspace:*",
|
|
61
64
|
"@repo/eslint-config": "workspace:*",
|
|
65
|
+
"@repo/ui": "workspace:*",
|
|
62
66
|
"@types/jest": "^30.0.0",
|
|
63
67
|
"@types/minimatch": "^6.0.0",
|
|
64
68
|
"@types/object-hash": "^3.0.6",
|
|
@@ -73,7 +77,8 @@
|
|
|
73
77
|
"tailwindcss": "^3.4.14",
|
|
74
78
|
"ts-jest": "^29.4.11",
|
|
75
79
|
"tsup": "^8.3.5",
|
|
76
|
-
"typescript": "^5.8.2"
|
|
80
|
+
"typescript": "^5.8.2",
|
|
81
|
+
"@repo/shared-common": "workspace:*"
|
|
77
82
|
},
|
|
78
83
|
"publishConfig": {
|
|
79
84
|
"access": "public"
|