@jupyter/chat 0.20.0-alpha.2 → 0.20.0-alpha.3
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/lib/widgets/chat-selector-popup.d.ts +102 -0
- package/lib/widgets/chat-selector-popup.js +293 -0
- package/lib/widgets/chat-widget.js +1 -0
- package/lib/widgets/index.d.ts +1 -0
- package/lib/widgets/index.js +1 -0
- package/lib/widgets/multichat-panel.d.ts +100 -73
- package/lib/widgets/multichat-panel.js +356 -159
- package/package.json +1 -1
- package/src/widgets/chat-selector-popup.tsx +440 -0
- package/src/widgets/chat-widget.tsx +1 -0
- package/src/widgets/index.ts +1 -0
- package/src/widgets/multichat-panel.tsx +434 -207
- package/style/base.css +1 -0
- package/style/chat-selector.css +161 -0
- package/style/chat.css +34 -2
package/style/base.css
CHANGED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Jupyter Development Team.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* Chat search input in toolbar */
|
|
7
|
+
.jp-chat-search-input {
|
|
8
|
+
padding: 4px 8px;
|
|
9
|
+
border: 1px solid var(--jp-border-color1);
|
|
10
|
+
border-radius: 3px;
|
|
11
|
+
background: var(--jp-layout-color1);
|
|
12
|
+
color: var(--jp-ui-font-color1);
|
|
13
|
+
font-size: var(--jp-ui-font-size1);
|
|
14
|
+
min-width: 150px;
|
|
15
|
+
outline: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.jp-chat-search-input:focus {
|
|
19
|
+
border-color: var(--jp-brand-color1);
|
|
20
|
+
box-shadow: inset 0 0 0 1px var(--jp-brand-color1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.jp-chat-search-input::placeholder {
|
|
24
|
+
color: var(--jp-ui-font-color2);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Chat selector popup */
|
|
28
|
+
.jp-chat-selector-popup {
|
|
29
|
+
background: var(--jp-layout-color1);
|
|
30
|
+
border: 1px solid var(--jp-border-color1);
|
|
31
|
+
border-radius: 4px;
|
|
32
|
+
box-shadow: 0 4px 12px rgb(0 0 0 / 15%);
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
z-index: 10;
|
|
37
|
+
position: fixed;
|
|
38
|
+
min-width: 150px;
|
|
39
|
+
max-width: 300px;
|
|
40
|
+
max-height: 400px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Popup list container */
|
|
44
|
+
.jp-chat-selector-popup-list {
|
|
45
|
+
list-style: none;
|
|
46
|
+
margin: 0;
|
|
47
|
+
padding: 4px 0;
|
|
48
|
+
overflow-y: auto;
|
|
49
|
+
max-height: 400px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Popup list item */
|
|
53
|
+
.jp-chat-selector-popup-item {
|
|
54
|
+
padding: 8px 12px;
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
transition: background-color 0.1s ease;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.jp-chat-selector-popup-item:hover {
|
|
60
|
+
background: var(--jp-layout-color2);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.jp-chat-selector-popup-item-active {
|
|
64
|
+
background: var(--jp-brand-color1);
|
|
65
|
+
color: var(--jp-ui-inverse-font-color1);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.jp-chat-selector-popup-item-active:hover {
|
|
69
|
+
background: var(--jp-brand-color1);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Item content layout */
|
|
73
|
+
.jp-chat-selector-popup-item-content {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
justify-content: space-between;
|
|
77
|
+
gap: 8px;
|
|
78
|
+
min-height: 32px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.jp-chat-selector-popup-item-text {
|
|
82
|
+
display: flex;
|
|
83
|
+
flex-direction: column;
|
|
84
|
+
gap: 2px;
|
|
85
|
+
flex: 1;
|
|
86
|
+
min-width: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Item label (chat name) */
|
|
90
|
+
.jp-chat-selector-popup-item-label {
|
|
91
|
+
font-size: var(--jp-ui-font-size1);
|
|
92
|
+
font-weight: 500;
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
gap: 6px;
|
|
96
|
+
min-width: 0;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.jp-chat-selector-popup-item-name {
|
|
100
|
+
overflow: hidden;
|
|
101
|
+
text-overflow: ellipsis;
|
|
102
|
+
white-space: nowrap;
|
|
103
|
+
flex: 1;
|
|
104
|
+
min-width: 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Cached indicator (bullet) */
|
|
108
|
+
.jp-chat-selector-popup-item-indicator {
|
|
109
|
+
font-size: 8px;
|
|
110
|
+
color: var(--jp-brand-color1);
|
|
111
|
+
line-height: 1;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.jp-chat-selector-popup-item-active .jp-chat-selector-popup-item-indicator {
|
|
115
|
+
color: var(--jp-layout-color3);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Close button */
|
|
119
|
+
.jp-chat-selector-popup-item-close:hover {
|
|
120
|
+
background: var(--jp-layout-color3);
|
|
121
|
+
color: var(--jp-ui-font-color0);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.jp-chat-selector-popup-item-active
|
|
125
|
+
.jp-chat-selector-popup-item-close
|
|
126
|
+
.jp-icon3[fill] {
|
|
127
|
+
fill: var(--jp-layout-color3);
|
|
128
|
+
opacity: 0.8;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.jp-chat-selector-popup-item-active .jp-chat-selector-popup-item-close:hover {
|
|
132
|
+
background: rgb(0 0 0 / 20%);
|
|
133
|
+
opacity: 1;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Empty state */
|
|
137
|
+
.jp-chat-selector-popup-empty {
|
|
138
|
+
padding: 12px;
|
|
139
|
+
text-align: center;
|
|
140
|
+
color: var(--jp-ui-font-color2);
|
|
141
|
+
font-style: italic;
|
|
142
|
+
font-size: var(--jp-ui-font-size1);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Scrollbar styling for the list */
|
|
146
|
+
.jp-chat-selector-popup-list::-webkit-scrollbar {
|
|
147
|
+
width: 8px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.jp-chat-selector-popup-list::-webkit-scrollbar-track {
|
|
151
|
+
background: var(--jp-layout-color1);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.jp-chat-selector-popup-list::-webkit-scrollbar-thumb {
|
|
155
|
+
background: var(--jp-scrollbar-thumb-color);
|
|
156
|
+
border-radius: 4px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.jp-chat-selector-popup-list::-webkit-scrollbar-thumb:hover {
|
|
160
|
+
background: var(--jp-scrollbar-thumb-hover-color);
|
|
161
|
+
}
|
package/style/chat.css
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
.jp-chat-widget {
|
|
7
|
+
min-height: 0;
|
|
8
|
+
flex-grow: 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
6
11
|
.jp-chat-message-container {
|
|
7
12
|
position: relative;
|
|
8
13
|
}
|
|
@@ -118,6 +123,33 @@
|
|
|
118
123
|
max-width: fit-content;
|
|
119
124
|
}
|
|
120
125
|
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
/* Sidepanel styles */
|
|
127
|
+
.jp-chat-sidepanel {
|
|
128
|
+
display: flex;
|
|
129
|
+
flex-direction: column;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.jp-chat-sidepanel .jp-chat-add svg path.jp-icon3 {
|
|
133
|
+
stroke: var(--jp-inverse-layout-color3);
|
|
134
|
+
stroke-width: 2;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.jp-chat-sidepanel-widget {
|
|
138
|
+
min-height: 0;
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
flex-grow: 1;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.jp-chat-sidepanel-widget-toolbar > .jp-chat-sidepanel-widget-title {
|
|
145
|
+
display: block;
|
|
146
|
+
align-content: center;
|
|
147
|
+
flex: 1 1 0%;
|
|
148
|
+
min-width: 0;
|
|
149
|
+
overflow: hidden;
|
|
150
|
+
text-overflow: ellipsis;
|
|
151
|
+
text-transform: uppercase;
|
|
152
|
+
color: var(--jp-ui-font-color1);
|
|
153
|
+
font-size: var(--jp-ui-font-size0);
|
|
154
|
+
font-weight: bold;
|
|
123
155
|
}
|