@green-on-grey/ui-kit 0.0.0-stage → 0.1.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/LICENSE +201 -0
- package/README.md +75 -2
- package/bin/ui-kit-check.d.mts +6 -0
- package/bin/ui-kit-check.mjs +130 -0
- package/dist/chat/Chat.d.ts +5 -0
- package/dist/chat/ConversationList.d.ts +19 -0
- package/dist/chat/MessageView.d.ts +11 -0
- package/dist/chat/index.d.ts +4 -0
- package/dist/chat/types.d.ts +104 -0
- package/dist/chat/useRecorder.d.ts +9 -0
- package/dist/chat.js +575 -0
- package/dist/chat.js.map +1 -0
- package/dist/components/Button.d.ts +15 -0
- package/dist/components/Icon.d.ts +83 -0
- package/dist/components/Markdown.d.ts +3 -0
- package/dist/components/Menu.d.ts +10 -0
- package/dist/components/Tabs.d.ts +11 -0
- package/dist/components/TopBar.d.ts +32 -0
- package/dist/components/ui.d.ts +50 -0
- package/dist/i18n-BJ8rsBp6.js +7 -0
- package/dist/i18n-BJ8rsBp6.js.map +1 -0
- package/dist/i18n.d.ts +5 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/locales/index.d.ts +276 -0
- package/dist/locales.js +279 -0
- package/dist/locales.js.map +1 -0
- package/dist/login/LoginScreen.d.ts +24 -0
- package/dist/login/index.d.ts +1 -0
- package/dist/login.js +48 -0
- package/dist/login.js.map +1 -0
- package/dist/manifest.json +266 -0
- package/dist/styles.css +1288 -0
- package/dist/tokens.css +80 -0
- package/dist/ui-CGgZtEVm.js +307 -0
- package/dist/ui-CGgZtEVm.js.map +1 -0
- package/package.json +75 -4
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/** Strings of the components in the five languages of the products. A product adds
|
|
2
|
+
* them to its i18next instance under the namespace `uikit`. */
|
|
3
|
+
export declare const resources: {
|
|
4
|
+
en: {
|
|
5
|
+
loading: string;
|
|
6
|
+
cancel: string;
|
|
7
|
+
create: string;
|
|
8
|
+
close: string;
|
|
9
|
+
delete: string;
|
|
10
|
+
remove: string;
|
|
11
|
+
topbar: {
|
|
12
|
+
sections: string;
|
|
13
|
+
profile: string;
|
|
14
|
+
};
|
|
15
|
+
chat: {
|
|
16
|
+
title: string;
|
|
17
|
+
conversations: string;
|
|
18
|
+
conversation: string;
|
|
19
|
+
topics: string;
|
|
20
|
+
archive: string;
|
|
21
|
+
noTopics: string;
|
|
22
|
+
newTopic: string;
|
|
23
|
+
topicTitle: string;
|
|
24
|
+
topicHint: string;
|
|
25
|
+
loadOlder: string;
|
|
26
|
+
emptyTitle: string;
|
|
27
|
+
placeholder: string;
|
|
28
|
+
send: string;
|
|
29
|
+
attach: string;
|
|
30
|
+
typing: string;
|
|
31
|
+
moreSteps: string;
|
|
32
|
+
hideSteps: string;
|
|
33
|
+
unread: string;
|
|
34
|
+
retry: string;
|
|
35
|
+
tooLarge: string;
|
|
36
|
+
stop: string;
|
|
37
|
+
voice: {
|
|
38
|
+
hold: string;
|
|
39
|
+
stop: string;
|
|
40
|
+
recording: string;
|
|
41
|
+
review: string;
|
|
42
|
+
notRecognized: string;
|
|
43
|
+
micDenied: string;
|
|
44
|
+
unsupported: string;
|
|
45
|
+
};
|
|
46
|
+
confirm: {
|
|
47
|
+
title: string;
|
|
48
|
+
text: string;
|
|
49
|
+
approve: string;
|
|
50
|
+
reject: string;
|
|
51
|
+
};
|
|
52
|
+
wait: {
|
|
53
|
+
starting: string;
|
|
54
|
+
queued: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
ru: {
|
|
59
|
+
loading: string;
|
|
60
|
+
cancel: string;
|
|
61
|
+
create: string;
|
|
62
|
+
close: string;
|
|
63
|
+
delete: string;
|
|
64
|
+
remove: string;
|
|
65
|
+
topbar: {
|
|
66
|
+
sections: string;
|
|
67
|
+
profile: string;
|
|
68
|
+
};
|
|
69
|
+
chat: {
|
|
70
|
+
title: string;
|
|
71
|
+
conversations: string;
|
|
72
|
+
conversation: string;
|
|
73
|
+
topics: string;
|
|
74
|
+
archive: string;
|
|
75
|
+
noTopics: string;
|
|
76
|
+
newTopic: string;
|
|
77
|
+
topicTitle: string;
|
|
78
|
+
topicHint: string;
|
|
79
|
+
loadOlder: string;
|
|
80
|
+
emptyTitle: string;
|
|
81
|
+
placeholder: string;
|
|
82
|
+
send: string;
|
|
83
|
+
attach: string;
|
|
84
|
+
typing: string;
|
|
85
|
+
moreSteps: string;
|
|
86
|
+
hideSteps: string;
|
|
87
|
+
unread: string;
|
|
88
|
+
retry: string;
|
|
89
|
+
tooLarge: string;
|
|
90
|
+
stop: string;
|
|
91
|
+
voice: {
|
|
92
|
+
hold: string;
|
|
93
|
+
stop: string;
|
|
94
|
+
recording: string;
|
|
95
|
+
review: string;
|
|
96
|
+
notRecognized: string;
|
|
97
|
+
micDenied: string;
|
|
98
|
+
unsupported: string;
|
|
99
|
+
};
|
|
100
|
+
confirm: {
|
|
101
|
+
title: string;
|
|
102
|
+
text: string;
|
|
103
|
+
approve: string;
|
|
104
|
+
reject: string;
|
|
105
|
+
};
|
|
106
|
+
wait: {
|
|
107
|
+
starting: string;
|
|
108
|
+
queued: string;
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
de: {
|
|
113
|
+
loading: string;
|
|
114
|
+
cancel: string;
|
|
115
|
+
create: string;
|
|
116
|
+
close: string;
|
|
117
|
+
delete: string;
|
|
118
|
+
remove: string;
|
|
119
|
+
topbar: {
|
|
120
|
+
sections: string;
|
|
121
|
+
profile: string;
|
|
122
|
+
};
|
|
123
|
+
chat: {
|
|
124
|
+
title: string;
|
|
125
|
+
conversations: string;
|
|
126
|
+
conversation: string;
|
|
127
|
+
topics: string;
|
|
128
|
+
archive: string;
|
|
129
|
+
noTopics: string;
|
|
130
|
+
newTopic: string;
|
|
131
|
+
topicTitle: string;
|
|
132
|
+
topicHint: string;
|
|
133
|
+
loadOlder: string;
|
|
134
|
+
emptyTitle: string;
|
|
135
|
+
placeholder: string;
|
|
136
|
+
send: string;
|
|
137
|
+
attach: string;
|
|
138
|
+
typing: string;
|
|
139
|
+
moreSteps: string;
|
|
140
|
+
hideSteps: string;
|
|
141
|
+
unread: string;
|
|
142
|
+
retry: string;
|
|
143
|
+
tooLarge: string;
|
|
144
|
+
stop: string;
|
|
145
|
+
voice: {
|
|
146
|
+
hold: string;
|
|
147
|
+
stop: string;
|
|
148
|
+
recording: string;
|
|
149
|
+
review: string;
|
|
150
|
+
notRecognized: string;
|
|
151
|
+
micDenied: string;
|
|
152
|
+
unsupported: string;
|
|
153
|
+
};
|
|
154
|
+
confirm: {
|
|
155
|
+
title: string;
|
|
156
|
+
text: string;
|
|
157
|
+
approve: string;
|
|
158
|
+
reject: string;
|
|
159
|
+
};
|
|
160
|
+
wait: {
|
|
161
|
+
starting: string;
|
|
162
|
+
queued: string;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
es: {
|
|
167
|
+
loading: string;
|
|
168
|
+
cancel: string;
|
|
169
|
+
create: string;
|
|
170
|
+
close: string;
|
|
171
|
+
delete: string;
|
|
172
|
+
remove: string;
|
|
173
|
+
topbar: {
|
|
174
|
+
sections: string;
|
|
175
|
+
profile: string;
|
|
176
|
+
};
|
|
177
|
+
chat: {
|
|
178
|
+
title: string;
|
|
179
|
+
conversations: string;
|
|
180
|
+
conversation: string;
|
|
181
|
+
topics: string;
|
|
182
|
+
archive: string;
|
|
183
|
+
noTopics: string;
|
|
184
|
+
newTopic: string;
|
|
185
|
+
topicTitle: string;
|
|
186
|
+
topicHint: string;
|
|
187
|
+
loadOlder: string;
|
|
188
|
+
emptyTitle: string;
|
|
189
|
+
placeholder: string;
|
|
190
|
+
send: string;
|
|
191
|
+
attach: string;
|
|
192
|
+
typing: string;
|
|
193
|
+
moreSteps: string;
|
|
194
|
+
hideSteps: string;
|
|
195
|
+
unread: string;
|
|
196
|
+
retry: string;
|
|
197
|
+
tooLarge: string;
|
|
198
|
+
stop: string;
|
|
199
|
+
voice: {
|
|
200
|
+
hold: string;
|
|
201
|
+
stop: string;
|
|
202
|
+
recording: string;
|
|
203
|
+
review: string;
|
|
204
|
+
notRecognized: string;
|
|
205
|
+
micDenied: string;
|
|
206
|
+
unsupported: string;
|
|
207
|
+
};
|
|
208
|
+
confirm: {
|
|
209
|
+
title: string;
|
|
210
|
+
text: string;
|
|
211
|
+
approve: string;
|
|
212
|
+
reject: string;
|
|
213
|
+
};
|
|
214
|
+
wait: {
|
|
215
|
+
starting: string;
|
|
216
|
+
queued: string;
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
zh: {
|
|
221
|
+
loading: string;
|
|
222
|
+
cancel: string;
|
|
223
|
+
create: string;
|
|
224
|
+
close: string;
|
|
225
|
+
delete: string;
|
|
226
|
+
remove: string;
|
|
227
|
+
topbar: {
|
|
228
|
+
sections: string;
|
|
229
|
+
profile: string;
|
|
230
|
+
};
|
|
231
|
+
chat: {
|
|
232
|
+
title: string;
|
|
233
|
+
conversations: string;
|
|
234
|
+
conversation: string;
|
|
235
|
+
topics: string;
|
|
236
|
+
archive: string;
|
|
237
|
+
noTopics: string;
|
|
238
|
+
newTopic: string;
|
|
239
|
+
topicTitle: string;
|
|
240
|
+
topicHint: string;
|
|
241
|
+
loadOlder: string;
|
|
242
|
+
emptyTitle: string;
|
|
243
|
+
placeholder: string;
|
|
244
|
+
send: string;
|
|
245
|
+
attach: string;
|
|
246
|
+
typing: string;
|
|
247
|
+
moreSteps: string;
|
|
248
|
+
hideSteps: string;
|
|
249
|
+
unread: string;
|
|
250
|
+
retry: string;
|
|
251
|
+
tooLarge: string;
|
|
252
|
+
stop: string;
|
|
253
|
+
voice: {
|
|
254
|
+
hold: string;
|
|
255
|
+
stop: string;
|
|
256
|
+
recording: string;
|
|
257
|
+
review: string;
|
|
258
|
+
notRecognized: string;
|
|
259
|
+
micDenied: string;
|
|
260
|
+
unsupported: string;
|
|
261
|
+
};
|
|
262
|
+
confirm: {
|
|
263
|
+
title: string;
|
|
264
|
+
text: string;
|
|
265
|
+
approve: string;
|
|
266
|
+
reject: string;
|
|
267
|
+
};
|
|
268
|
+
wait: {
|
|
269
|
+
starting: string;
|
|
270
|
+
queued: string;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
export type KitLanguage = keyof typeof resources;
|
|
276
|
+
export { UIKIT_NS } from "../i18n";
|
package/dist/locales.js
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { t as e } from "./i18n-BJ8rsBp6.js";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region src/locales/index.ts
|
|
4
|
+
var t = {
|
|
5
|
+
en: {
|
|
6
|
+
loading: "Loading…",
|
|
7
|
+
cancel: "Cancel",
|
|
8
|
+
create: "Create",
|
|
9
|
+
close: "Close",
|
|
10
|
+
delete: "Delete",
|
|
11
|
+
remove: "Remove",
|
|
12
|
+
topbar: {
|
|
13
|
+
sections: "Sections",
|
|
14
|
+
profile: "Profile"
|
|
15
|
+
},
|
|
16
|
+
chat: {
|
|
17
|
+
title: "Chat",
|
|
18
|
+
conversations: "Conversations",
|
|
19
|
+
conversation: "Conversation",
|
|
20
|
+
topics: "Topics",
|
|
21
|
+
archive: "Archive",
|
|
22
|
+
noTopics: "No topics yet",
|
|
23
|
+
newTopic: "New topic",
|
|
24
|
+
topicTitle: "Topic",
|
|
25
|
+
topicHint: "A topic has its own history and the same memory and space.",
|
|
26
|
+
loadOlder: "Earlier messages",
|
|
27
|
+
emptyTitle: "Hi, I am {name}",
|
|
28
|
+
placeholder: "Message {name}…",
|
|
29
|
+
send: "Send",
|
|
30
|
+
attach: "Attach files",
|
|
31
|
+
typing: "The agent is typing",
|
|
32
|
+
moreSteps: "{count, plural, one {# more step} other {# more steps}}",
|
|
33
|
+
hideSteps: "Hide steps",
|
|
34
|
+
unread: "{count, plural, one {# unread answer} other {# unread answers}}",
|
|
35
|
+
retry: "Retry",
|
|
36
|
+
tooLarge: "The file is too large.",
|
|
37
|
+
stop: "Stop",
|
|
38
|
+
voice: {
|
|
39
|
+
hold: "Hold to record",
|
|
40
|
+
stop: "Stop recording",
|
|
41
|
+
recording: "Recording… {seconds} s",
|
|
42
|
+
review: "Check the transcript before sending",
|
|
43
|
+
notRecognized: "The speech was not recognized",
|
|
44
|
+
micDenied: "No access to the microphone",
|
|
45
|
+
unsupported: "Voice input is not supported in this browser"
|
|
46
|
+
},
|
|
47
|
+
confirm: {
|
|
48
|
+
title: "Confirm the action",
|
|
49
|
+
text: "The agent wants to perform: {action}",
|
|
50
|
+
approve: "Execute",
|
|
51
|
+
reject: "Reject"
|
|
52
|
+
},
|
|
53
|
+
wait: {
|
|
54
|
+
starting: "The agent is starting…",
|
|
55
|
+
queued: "{count, plural, =0 {In the queue · you are next} one {In the queue · # ahead of you} other {In the queue · # ahead of you}}"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
ru: {
|
|
60
|
+
loading: "Загрузка…",
|
|
61
|
+
cancel: "Отмена",
|
|
62
|
+
create: "Создать",
|
|
63
|
+
close: "Закрыть",
|
|
64
|
+
delete: "Удалить",
|
|
65
|
+
remove: "Убрать",
|
|
66
|
+
topbar: {
|
|
67
|
+
sections: "Разделы",
|
|
68
|
+
profile: "Профиль"
|
|
69
|
+
},
|
|
70
|
+
chat: {
|
|
71
|
+
title: "Чат",
|
|
72
|
+
conversations: "Разговоры",
|
|
73
|
+
conversation: "Разговор",
|
|
74
|
+
topics: "Темы",
|
|
75
|
+
archive: "Архив",
|
|
76
|
+
noTopics: "Тем пока нет",
|
|
77
|
+
newTopic: "Новая тема",
|
|
78
|
+
topicTitle: "Тема",
|
|
79
|
+
topicHint: "У темы своя история, а память и пространство — те же.",
|
|
80
|
+
loadOlder: "Более ранние сообщения",
|
|
81
|
+
emptyTitle: "Привет, я {name}",
|
|
82
|
+
placeholder: "Сообщение для {name}…",
|
|
83
|
+
send: "Отправить",
|
|
84
|
+
attach: "Прикрепить файлы",
|
|
85
|
+
typing: "Агент печатает",
|
|
86
|
+
moreSteps: "{count, plural, one {ещё # шаг} few {ещё # шага} many {ещё # шагов} other {ещё # шага}}",
|
|
87
|
+
hideSteps: "Скрыть шаги",
|
|
88
|
+
unread: "{count, plural, one {# непрочитанный ответ} few {# непрочитанных ответа} many {# непрочитанных ответов} other {# непрочитанных ответа}}",
|
|
89
|
+
retry: "Повторить",
|
|
90
|
+
tooLarge: "Файл слишком большой.",
|
|
91
|
+
stop: "Остановить",
|
|
92
|
+
voice: {
|
|
93
|
+
hold: "Удерживайте для записи",
|
|
94
|
+
stop: "Остановить запись",
|
|
95
|
+
recording: "Запись… {seconds} с",
|
|
96
|
+
review: "Проверьте расшифровку перед отправкой",
|
|
97
|
+
notRecognized: "Речь не распознана",
|
|
98
|
+
micDenied: "Нет доступа к микрофону",
|
|
99
|
+
unsupported: "Голосовой ввод не поддерживается этим браузером"
|
|
100
|
+
},
|
|
101
|
+
confirm: {
|
|
102
|
+
title: "Подтвердите действие",
|
|
103
|
+
text: "Агент хочет выполнить: {action}",
|
|
104
|
+
approve: "Выполнить",
|
|
105
|
+
reject: "Отклонить"
|
|
106
|
+
},
|
|
107
|
+
wait: {
|
|
108
|
+
starting: "Агент запускается…",
|
|
109
|
+
queued: "{count, plural, =0 {В очереди · вы следующий} other {В очереди · перед вами #}}"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
de: {
|
|
114
|
+
loading: "Wird geladen…",
|
|
115
|
+
cancel: "Abbrechen",
|
|
116
|
+
create: "Erstellen",
|
|
117
|
+
close: "Schließen",
|
|
118
|
+
delete: "Löschen",
|
|
119
|
+
remove: "Entfernen",
|
|
120
|
+
topbar: {
|
|
121
|
+
sections: "Bereiche",
|
|
122
|
+
profile: "Profil"
|
|
123
|
+
},
|
|
124
|
+
chat: {
|
|
125
|
+
title: "Chat",
|
|
126
|
+
conversations: "Gespräche",
|
|
127
|
+
conversation: "Gespräch",
|
|
128
|
+
topics: "Themen",
|
|
129
|
+
archive: "Archiv",
|
|
130
|
+
noTopics: "Noch keine Themen",
|
|
131
|
+
newTopic: "Neues Thema",
|
|
132
|
+
topicTitle: "Thema",
|
|
133
|
+
topicHint: "Ein Thema hat einen eigenen Verlauf, aber dasselbe Gedächtnis und denselben Arbeitsbereich.",
|
|
134
|
+
loadOlder: "Frühere Nachrichten",
|
|
135
|
+
emptyTitle: "Hallo, ich bin {name}",
|
|
136
|
+
placeholder: "Nachricht an {name}…",
|
|
137
|
+
send: "Senden",
|
|
138
|
+
attach: "Dateien anhängen",
|
|
139
|
+
typing: "Der Agent schreibt",
|
|
140
|
+
moreSteps: "{count, plural, one {# weiterer Schritt} other {# weitere Schritte}}",
|
|
141
|
+
hideSteps: "Schritte ausblenden",
|
|
142
|
+
unread: "{count, plural, one {# ungelesene Antwort} other {# ungelesene Antworten}}",
|
|
143
|
+
retry: "Wiederholen",
|
|
144
|
+
tooLarge: "Die Datei ist zu groß.",
|
|
145
|
+
stop: "Stoppen",
|
|
146
|
+
voice: {
|
|
147
|
+
hold: "Zum Aufnehmen gedrückt halten",
|
|
148
|
+
stop: "Aufnahme beenden",
|
|
149
|
+
recording: "Aufnahme… {seconds} s",
|
|
150
|
+
review: "Prüfen Sie die Transkription vor dem Senden",
|
|
151
|
+
notRecognized: "Die Sprache wurde nicht erkannt",
|
|
152
|
+
micDenied: "Kein Zugriff auf das Mikrofon",
|
|
153
|
+
unsupported: "Spracheingabe wird von diesem Browser nicht unterstützt"
|
|
154
|
+
},
|
|
155
|
+
confirm: {
|
|
156
|
+
title: "Aktion bestätigen",
|
|
157
|
+
text: "Der Agent möchte ausführen: {action}",
|
|
158
|
+
approve: "Ausführen",
|
|
159
|
+
reject: "Ablehnen"
|
|
160
|
+
},
|
|
161
|
+
wait: {
|
|
162
|
+
starting: "Der Agent startet…",
|
|
163
|
+
queued: "{count, plural, =0 {In der Warteschlange · Sie sind als Nächstes dran} other {In der Warteschlange · # vor Ihnen}}"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
es: {
|
|
168
|
+
loading: "Cargando…",
|
|
169
|
+
cancel: "Cancelar",
|
|
170
|
+
create: "Crear",
|
|
171
|
+
close: "Cerrar",
|
|
172
|
+
delete: "Eliminar",
|
|
173
|
+
remove: "Quitar",
|
|
174
|
+
topbar: {
|
|
175
|
+
sections: "Secciones",
|
|
176
|
+
profile: "Perfil"
|
|
177
|
+
},
|
|
178
|
+
chat: {
|
|
179
|
+
title: "Chat",
|
|
180
|
+
conversations: "Conversaciones",
|
|
181
|
+
conversation: "Conversación",
|
|
182
|
+
topics: "Temas",
|
|
183
|
+
archive: "Archivo",
|
|
184
|
+
noTopics: "Aún no hay temas",
|
|
185
|
+
newTopic: "Nuevo tema",
|
|
186
|
+
topicTitle: "Tema",
|
|
187
|
+
topicHint: "Un tema tiene su propio historial y la misma memoria y espacio.",
|
|
188
|
+
loadOlder: "Mensajes anteriores",
|
|
189
|
+
emptyTitle: "Hola, soy {name}",
|
|
190
|
+
placeholder: "Mensaje para {name}…",
|
|
191
|
+
send: "Enviar",
|
|
192
|
+
attach: "Adjuntar archivos",
|
|
193
|
+
typing: "El agente está escribiendo",
|
|
194
|
+
moreSteps: "{count, plural, one {# paso más} other {# pasos más}}",
|
|
195
|
+
hideSteps: "Ocultar pasos",
|
|
196
|
+
unread: "{count, plural, one {# respuesta sin leer} other {# respuestas sin leer}}",
|
|
197
|
+
retry: "Reintentar",
|
|
198
|
+
tooLarge: "El archivo es demasiado grande.",
|
|
199
|
+
stop: "Detener",
|
|
200
|
+
voice: {
|
|
201
|
+
hold: "Mantenga pulsado para grabar",
|
|
202
|
+
stop: "Detener la grabación",
|
|
203
|
+
recording: "Grabando… {seconds} s",
|
|
204
|
+
review: "Revise la transcripción antes de enviar",
|
|
205
|
+
notRecognized: "No se reconoció la voz",
|
|
206
|
+
micDenied: "Sin acceso al micrófono",
|
|
207
|
+
unsupported: "Este navegador no admite la entrada de voz"
|
|
208
|
+
},
|
|
209
|
+
confirm: {
|
|
210
|
+
title: "Confirme la acción",
|
|
211
|
+
text: "El agente quiere ejecutar: {action}",
|
|
212
|
+
approve: "Ejecutar",
|
|
213
|
+
reject: "Rechazar"
|
|
214
|
+
},
|
|
215
|
+
wait: {
|
|
216
|
+
starting: "El agente se está iniciando…",
|
|
217
|
+
queued: "{count, plural, =0 {En cola · usted es el siguiente} other {En cola · # por delante}}"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
zh: {
|
|
222
|
+
loading: "加载中…",
|
|
223
|
+
cancel: "取消",
|
|
224
|
+
create: "创建",
|
|
225
|
+
close: "关闭",
|
|
226
|
+
delete: "删除",
|
|
227
|
+
remove: "移除",
|
|
228
|
+
topbar: {
|
|
229
|
+
sections: "栏目",
|
|
230
|
+
profile: "个人资料"
|
|
231
|
+
},
|
|
232
|
+
chat: {
|
|
233
|
+
title: "聊天",
|
|
234
|
+
conversations: "对话",
|
|
235
|
+
conversation: "对话",
|
|
236
|
+
topics: "话题",
|
|
237
|
+
archive: "归档",
|
|
238
|
+
noTopics: "暂无话题",
|
|
239
|
+
newTopic: "新话题",
|
|
240
|
+
topicTitle: "话题",
|
|
241
|
+
topicHint: "话题有独立的历史记录,记忆和空间与主对话相同。",
|
|
242
|
+
loadOlder: "更早的消息",
|
|
243
|
+
emptyTitle: "你好,我是 {name}",
|
|
244
|
+
placeholder: "给 {name} 发消息…",
|
|
245
|
+
send: "发送",
|
|
246
|
+
attach: "附加文件",
|
|
247
|
+
typing: "智能体正在输入",
|
|
248
|
+
moreSteps: "{count, plural, other {另外 # 个步骤}}",
|
|
249
|
+
hideSteps: "隐藏步骤",
|
|
250
|
+
unread: "{count} 条未读回复",
|
|
251
|
+
retry: "重试",
|
|
252
|
+
tooLarge: "文件太大。",
|
|
253
|
+
stop: "停止",
|
|
254
|
+
voice: {
|
|
255
|
+
hold: "按住录音",
|
|
256
|
+
stop: "停止录音",
|
|
257
|
+
recording: "录音中… {seconds} 秒",
|
|
258
|
+
review: "发送前请检查转写文本",
|
|
259
|
+
notRecognized: "未能识别语音",
|
|
260
|
+
micDenied: "无法访问麦克风",
|
|
261
|
+
unsupported: "此浏览器不支持语音输入"
|
|
262
|
+
},
|
|
263
|
+
confirm: {
|
|
264
|
+
title: "确认操作",
|
|
265
|
+
text: "代理想要执行:{action}",
|
|
266
|
+
approve: "执行",
|
|
267
|
+
reject: "拒绝"
|
|
268
|
+
},
|
|
269
|
+
wait: {
|
|
270
|
+
starting: "代理正在启动…",
|
|
271
|
+
queued: "{count, plural, =0 {排队中 · 您是下一位} other {排队中 · 前面还有 # 位}}"
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
//#endregion
|
|
277
|
+
export { e as UIKIT_NS, t as resources };
|
|
278
|
+
|
|
279
|
+
//# sourceMappingURL=locales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locales.js","names":["loading","cancel","create","close","remove","topbar","chat","loading","cancel","create","close","remove","topbar","chat","loading","cancel","create","close","remove","topbar","chat","loading","cancel","create","close","remove","topbar","chat","UIKIT_NS","resources","\"delete\"","\"sections\"","\"profile\"","\"title\"","\"conversations\"","\"conversation\"","\"topics\"","\"archive\"","\"noTopics\"","\"newTopic\"","\"topicTitle\"","\"topicHint\"","\"loadOlder\"","\"emptyTitle\"","\"placeholder\"","\"send\"","\"attach\"","\"typing\"","\"moreSteps\"","\"hideSteps\"","\"unread\"","\"retry\"","\"tooLarge\"","\"stop\"","\"voice\"","\"hold\"","\"recording\"","\"review\"","\"notRecognized\"","\"micDenied\"","\"unsupported\"","\"confirm\"","\"text\"","\"approve\"","\"reject\"","\"wait\"","\"starting\"","\"queued\""],"sources":["../src/locales/en.json","../src/locales/ru.json","../src/locales/de.json","../src/locales/es.json","../src/locales/zh.json","../src/locales/index.ts"],"sourcesContent":["{\n \"loading\": \"Loading…\",\n \"cancel\": \"Cancel\",\n \"create\": \"Create\",\n \"close\": \"Close\",\n \"delete\": \"Delete\",\n \"remove\": \"Remove\",\n \"topbar\": {\n \"sections\": \"Sections\",\n \"profile\": \"Profile\"\n },\n \"chat\": {\n \"title\": \"Chat\",\n \"conversations\": \"Conversations\",\n \"conversation\": \"Conversation\",\n \"topics\": \"Topics\",\n \"archive\": \"Archive\",\n \"noTopics\": \"No topics yet\",\n \"newTopic\": \"New topic\",\n \"topicTitle\": \"Topic\",\n \"topicHint\": \"A topic has its own history and the same memory and space.\",\n \"loadOlder\": \"Earlier messages\",\n \"emptyTitle\": \"Hi, I am {name}\",\n \"placeholder\": \"Message {name}…\",\n \"send\": \"Send\",\n \"attach\": \"Attach files\",\n \"typing\": \"The agent is typing\",\n \"moreSteps\": \"{count, plural, one {# more step} other {# more steps}}\",\n \"hideSteps\": \"Hide steps\",\n \"unread\": \"{count, plural, one {# unread answer} other {# unread answers}}\",\n \"retry\": \"Retry\",\n \"tooLarge\": \"The file is too large.\",\n \"stop\": \"Stop\",\n \"voice\": {\n \"hold\": \"Hold to record\",\n \"stop\": \"Stop recording\",\n \"recording\": \"Recording… {seconds} s\",\n \"review\": \"Check the transcript before sending\",\n \"notRecognized\": \"The speech was not recognized\",\n \"micDenied\": \"No access to the microphone\",\n \"unsupported\": \"Voice input is not supported in this browser\"\n },\n \"confirm\": {\n \"title\": \"Confirm the action\",\n \"text\": \"The agent wants to perform: {action}\",\n \"approve\": \"Execute\",\n \"reject\": \"Reject\"\n },\n \"wait\": {\n \"starting\": \"The agent is starting…\",\n \"queued\": \"{count, plural, =0 {In the queue · you are next} one {In the queue · # ahead of you} other {In the queue · # ahead of you}}\"\n }\n }\n}\n","{\n \"loading\": \"Загрузка…\",\n \"cancel\": \"Отмена\",\n \"create\": \"Создать\",\n \"close\": \"Закрыть\",\n \"delete\": \"Удалить\",\n \"remove\": \"Убрать\",\n \"topbar\": {\n \"sections\": \"Разделы\",\n \"profile\": \"Профиль\"\n },\n \"chat\": {\n \"title\": \"Чат\",\n \"conversations\": \"Разговоры\",\n \"conversation\": \"Разговор\",\n \"topics\": \"Темы\",\n \"archive\": \"Архив\",\n \"noTopics\": \"Тем пока нет\",\n \"newTopic\": \"Новая тема\",\n \"topicTitle\": \"Тема\",\n \"topicHint\": \"У темы своя история, а память и пространство — те же.\",\n \"loadOlder\": \"Более ранние сообщения\",\n \"emptyTitle\": \"Привет, я {name}\",\n \"placeholder\": \"Сообщение для {name}…\",\n \"send\": \"Отправить\",\n \"attach\": \"Прикрепить файлы\",\n \"typing\": \"Агент печатает\",\n \"moreSteps\": \"{count, plural, one {ещё # шаг} few {ещё # шага} many {ещё # шагов} other {ещё # шага}}\",\n \"hideSteps\": \"Скрыть шаги\",\n \"unread\": \"{count, plural, one {# непрочитанный ответ} few {# непрочитанных ответа} many {# непрочитанных ответов} other {# непрочитанных ответа}}\",\n \"retry\": \"Повторить\",\n \"tooLarge\": \"Файл слишком большой.\",\n \"stop\": \"Остановить\",\n \"voice\": {\n \"hold\": \"Удерживайте для записи\",\n \"stop\": \"Остановить запись\",\n \"recording\": \"Запись… {seconds} с\",\n \"review\": \"Проверьте расшифровку перед отправкой\",\n \"notRecognized\": \"Речь не распознана\",\n \"micDenied\": \"Нет доступа к микрофону\",\n \"unsupported\": \"Голосовой ввод не поддерживается этим браузером\"\n },\n \"confirm\": {\n \"title\": \"Подтвердите действие\",\n \"text\": \"Агент хочет выполнить: {action}\",\n \"approve\": \"Выполнить\",\n \"reject\": \"Отклонить\"\n },\n \"wait\": {\n \"starting\": \"Агент запускается…\",\n \"queued\": \"{count, plural, =0 {В очереди · вы следующий} other {В очереди · перед вами #}}\"\n }\n }\n}\n","{\n \"loading\": \"Wird geladen…\",\n \"cancel\": \"Abbrechen\",\n \"create\": \"Erstellen\",\n \"close\": \"Schließen\",\n \"delete\": \"Löschen\",\n \"remove\": \"Entfernen\",\n \"topbar\": {\n \"sections\": \"Bereiche\",\n \"profile\": \"Profil\"\n },\n \"chat\": {\n \"title\": \"Chat\",\n \"conversations\": \"Gespräche\",\n \"conversation\": \"Gespräch\",\n \"topics\": \"Themen\",\n \"archive\": \"Archiv\",\n \"noTopics\": \"Noch keine Themen\",\n \"newTopic\": \"Neues Thema\",\n \"topicTitle\": \"Thema\",\n \"topicHint\": \"Ein Thema hat einen eigenen Verlauf, aber dasselbe Gedächtnis und denselben Arbeitsbereich.\",\n \"loadOlder\": \"Frühere Nachrichten\",\n \"emptyTitle\": \"Hallo, ich bin {name}\",\n \"placeholder\": \"Nachricht an {name}…\",\n \"send\": \"Senden\",\n \"attach\": \"Dateien anhängen\",\n \"typing\": \"Der Agent schreibt\",\n \"moreSteps\": \"{count, plural, one {# weiterer Schritt} other {# weitere Schritte}}\",\n \"hideSteps\": \"Schritte ausblenden\",\n \"unread\": \"{count, plural, one {# ungelesene Antwort} other {# ungelesene Antworten}}\",\n \"retry\": \"Wiederholen\",\n \"tooLarge\": \"Die Datei ist zu groß.\",\n \"stop\": \"Stoppen\",\n \"voice\": {\n \"hold\": \"Zum Aufnehmen gedrückt halten\",\n \"stop\": \"Aufnahme beenden\",\n \"recording\": \"Aufnahme… {seconds} s\",\n \"review\": \"Prüfen Sie die Transkription vor dem Senden\",\n \"notRecognized\": \"Die Sprache wurde nicht erkannt\",\n \"micDenied\": \"Kein Zugriff auf das Mikrofon\",\n \"unsupported\": \"Spracheingabe wird von diesem Browser nicht unterstützt\"\n },\n \"confirm\": {\n \"title\": \"Aktion bestätigen\",\n \"text\": \"Der Agent möchte ausführen: {action}\",\n \"approve\": \"Ausführen\",\n \"reject\": \"Ablehnen\"\n },\n \"wait\": {\n \"starting\": \"Der Agent startet…\",\n \"queued\": \"{count, plural, =0 {In der Warteschlange · Sie sind als Nächstes dran} other {In der Warteschlange · # vor Ihnen}}\"\n }\n }\n}\n","{\n \"loading\": \"Cargando…\",\n \"cancel\": \"Cancelar\",\n \"create\": \"Crear\",\n \"close\": \"Cerrar\",\n \"delete\": \"Eliminar\",\n \"remove\": \"Quitar\",\n \"topbar\": {\n \"sections\": \"Secciones\",\n \"profile\": \"Perfil\"\n },\n \"chat\": {\n \"title\": \"Chat\",\n \"conversations\": \"Conversaciones\",\n \"conversation\": \"Conversación\",\n \"topics\": \"Temas\",\n \"archive\": \"Archivo\",\n \"noTopics\": \"Aún no hay temas\",\n \"newTopic\": \"Nuevo tema\",\n \"topicTitle\": \"Tema\",\n \"topicHint\": \"Un tema tiene su propio historial y la misma memoria y espacio.\",\n \"loadOlder\": \"Mensajes anteriores\",\n \"emptyTitle\": \"Hola, soy {name}\",\n \"placeholder\": \"Mensaje para {name}…\",\n \"send\": \"Enviar\",\n \"attach\": \"Adjuntar archivos\",\n \"typing\": \"El agente está escribiendo\",\n \"moreSteps\": \"{count, plural, one {# paso más} other {# pasos más}}\",\n \"hideSteps\": \"Ocultar pasos\",\n \"unread\": \"{count, plural, one {# respuesta sin leer} other {# respuestas sin leer}}\",\n \"retry\": \"Reintentar\",\n \"tooLarge\": \"El archivo es demasiado grande.\",\n \"stop\": \"Detener\",\n \"voice\": {\n \"hold\": \"Mantenga pulsado para grabar\",\n \"stop\": \"Detener la grabación\",\n \"recording\": \"Grabando… {seconds} s\",\n \"review\": \"Revise la transcripción antes de enviar\",\n \"notRecognized\": \"No se reconoció la voz\",\n \"micDenied\": \"Sin acceso al micrófono\",\n \"unsupported\": \"Este navegador no admite la entrada de voz\"\n },\n \"confirm\": {\n \"title\": \"Confirme la acción\",\n \"text\": \"El agente quiere ejecutar: {action}\",\n \"approve\": \"Ejecutar\",\n \"reject\": \"Rechazar\"\n },\n \"wait\": {\n \"starting\": \"El agente se está iniciando…\",\n \"queued\": \"{count, plural, =0 {En cola · usted es el siguiente} other {En cola · # por delante}}\"\n }\n }\n}\n","{\n \"loading\": \"加载中…\",\n \"cancel\": \"取消\",\n \"create\": \"创建\",\n \"close\": \"关闭\",\n \"delete\": \"删除\",\n \"remove\": \"移除\",\n \"topbar\": {\n \"sections\": \"栏目\",\n \"profile\": \"个人资料\"\n },\n \"chat\": {\n \"title\": \"聊天\",\n \"conversations\": \"对话\",\n \"conversation\": \"对话\",\n \"topics\": \"话题\",\n \"archive\": \"归档\",\n \"noTopics\": \"暂无话题\",\n \"newTopic\": \"新话题\",\n \"topicTitle\": \"话题\",\n \"topicHint\": \"话题有独立的历史记录,记忆和空间与主对话相同。\",\n \"loadOlder\": \"更早的消息\",\n \"emptyTitle\": \"你好,我是 {name}\",\n \"placeholder\": \"给 {name} 发消息…\",\n \"send\": \"发送\",\n \"attach\": \"附加文件\",\n \"typing\": \"智能体正在输入\",\n \"moreSteps\": \"{count, plural, other {另外 # 个步骤}}\",\n \"hideSteps\": \"隐藏步骤\",\n \"unread\": \"{count} 条未读回复\",\n \"retry\": \"重试\",\n \"tooLarge\": \"文件太大。\",\n \"stop\": \"停止\",\n \"voice\": {\n \"hold\": \"按住录音\",\n \"stop\": \"停止录音\",\n \"recording\": \"录音中… {seconds} 秒\",\n \"review\": \"发送前请检查转写文本\",\n \"notRecognized\": \"未能识别语音\",\n \"micDenied\": \"无法访问麦克风\",\n \"unsupported\": \"此浏览器不支持语音输入\"\n },\n \"confirm\": {\n \"title\": \"确认操作\",\n \"text\": \"代理想要执行:{action}\",\n \"approve\": \"执行\",\n \"reject\": \"拒绝\"\n },\n \"wait\": {\n \"starting\": \"代理正在启动…\",\n \"queued\": \"{count, plural, =0 {排队中 · 您是下一位} other {排队中 · 前面还有 # 位}}\"\n }\n }\n}\n","import en from \"./en.json\";\nimport ru from \"./ru.json\";\nimport de from \"./de.json\";\nimport es from \"./es.json\";\nimport zh from \"./zh.json\";\n\n/** Strings of the components in the five languages of the products. A product adds\n * them to its i18next instance under the namespace `uikit`. */\nexport const resources = { en, ru, de, es, zh };\nexport type KitLanguage = keyof typeof resources;\nexport { UIKIT_NS } from \"../i18n\";\n"],"mappings":";;;AKQA,IAAa6B,IAAY;CAAE,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;CAAI,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;CAAI,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;CAAI,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;CAAI,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;AAAG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface LoginLanguage {
|
|
3
|
+
code: string;
|
|
4
|
+
label: string;
|
|
5
|
+
active: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** The sign-in screen (FTR.NAB.CMN-0005 R6, design §5): dark in both themes, the
|
|
8
|
+
* logo, the name in capitals, the motto, one button of the provider of the
|
|
9
|
+
* deployment, the languages. The texts and the logo are of the product. */
|
|
10
|
+
export declare function LoginScreen({ logo, logoAlt, name, tagline, signIn, note, error, languages, onLanguage }: {
|
|
11
|
+
logo: string;
|
|
12
|
+
logoAlt: string;
|
|
13
|
+
name: string;
|
|
14
|
+
tagline: ReactNode;
|
|
15
|
+
signIn: {
|
|
16
|
+
href: string;
|
|
17
|
+
label: ReactNode;
|
|
18
|
+
icon: ReactNode;
|
|
19
|
+
};
|
|
20
|
+
note?: ReactNode;
|
|
21
|
+
error?: ReactNode;
|
|
22
|
+
languages: LoginLanguage[];
|
|
23
|
+
onLanguage: (code: string) => void;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LoginScreen, type LoginLanguage } from "./LoginScreen";
|
package/dist/login.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
//#region src/login/LoginScreen.tsx
|
|
3
|
+
function n({ logo: n, logoAlt: r, name: i, tagline: a, signIn: o, note: s, error: c, languages: l, onLanguage: u }) {
|
|
4
|
+
return /* @__PURE__ */ e("div", {
|
|
5
|
+
className: "login",
|
|
6
|
+
children: /* @__PURE__ */ t("div", {
|
|
7
|
+
className: "box",
|
|
8
|
+
children: [
|
|
9
|
+
/* @__PURE__ */ e("img", {
|
|
10
|
+
src: n,
|
|
11
|
+
alt: r
|
|
12
|
+
}),
|
|
13
|
+
/* @__PURE__ */ e("h1", { children: i }),
|
|
14
|
+
/* @__PURE__ */ e("div", {
|
|
15
|
+
className: "tag",
|
|
16
|
+
children: a
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ t("a", {
|
|
19
|
+
className: "btn primary",
|
|
20
|
+
href: o.href,
|
|
21
|
+
children: [o.icon, o.label]
|
|
22
|
+
}),
|
|
23
|
+
s && /* @__PURE__ */ e("div", {
|
|
24
|
+
className: "sub",
|
|
25
|
+
children: s
|
|
26
|
+
}),
|
|
27
|
+
c && /* @__PURE__ */ e("div", {
|
|
28
|
+
className: "err-text",
|
|
29
|
+
role: "alert",
|
|
30
|
+
children: c
|
|
31
|
+
}),
|
|
32
|
+
/* @__PURE__ */ e("div", {
|
|
33
|
+
className: "chips",
|
|
34
|
+
children: l.map((t) => /* @__PURE__ */ e("button", {
|
|
35
|
+
lang: t.code,
|
|
36
|
+
className: `chip${t.active ? " on" : ""}`,
|
|
37
|
+
onClick: () => u(t.code),
|
|
38
|
+
children: t.label
|
|
39
|
+
}, t.code))
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { n as LoginScreen };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","names":["LoginScreen","logo","logoAlt","name","tagline","signIn","note","error","languages","l","onLanguage"],"sources":["../src/login/LoginScreen.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport interface LoginLanguage { code: string; label: string; active: boolean }\n\n/** The sign-in screen (FTR.NAB.CMN-0005 R6, design §5): dark in both themes, the\n * logo, the name in capitals, the motto, one button of the provider of the\n * deployment, the languages. The texts and the logo are of the product. */\nexport function LoginScreen({ logo, logoAlt, name, tagline, signIn, note, error, languages, onLanguage }: {\n logo: string; logoAlt: string; name: string; tagline: ReactNode;\n signIn: { href: string; label: ReactNode; icon: ReactNode };\n note?: ReactNode; error?: ReactNode;\n languages: LoginLanguage[]; onLanguage: (code: string) => void;\n}) {\n return (\n <div className=\"login\">\n <div className=\"box\">\n <img src={logo} alt={logoAlt} />\n <h1>{name}</h1>\n <div className=\"tag\">{tagline}</div>\n <a className=\"btn primary\" href={signIn.href}>\n {signIn.icon}\n {signIn.label}\n </a>\n {note && <div className=\"sub\">{note}</div>}\n {error && <div className=\"err-text\" role=\"alert\">{error}</div>}\n <div className=\"chips\">\n {languages.map((l) => (\n <button key={l.code} lang={l.code} className={`chip${l.active ? \" on\" : \"\"}`} onClick={() => onLanguage(l.code)}>\n {l.label}\n </button>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;AAOA,SAAgBA,EAAY,EAAE,SAAM,YAAS,SAAM,YAAS,WAAQ,SAAM,UAAO,cAAW,iBAKzF;CACD,OACE,kBAAC,OAAD;EAAK,WAAU;EACb,UAAA,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA;IACE,kBAAC,OAAD;KAAK,KAAKC;KAAM,KAAKC;IAAU,CAAA;IAC/B,kBAAC,MAAD,EAAA,UAAKC,EAAS,CAAA;IACd,kBAAC,OAAD;KAAK,WAAU;KAAO,UAAAC;IAAa,CAAA;IACnC,kBAAC,KAAD;KAAG,WAAU;KAAc,MAAMC,EAAO;KAAxC,UAAA,CACGA,EAAO,MACPA,EAAO,KACP;;IACFC,KAAQ,kBAAC,OAAD;KAAK,WAAU;KAAO,UAAAA;IAAU,CAAA;IACxCC,KAAS,kBAAC,OAAD;KAAK,WAAU;KAAW,MAAK;KAAS,UAAAA;IAAW,CAAA;IAC7D,kBAAC,OAAD;KAAK,WAAU;KACZ,UAAAC,EAAU,KAAK,MACd,kBAAC,UAAD;MAAqB,MAAMC,EAAE;MAAM,WAAW,OAAOA,EAAE,SAAS,QAAQ;MAAM,eAAeC,EAAWD,EAAE,IAAI;MAC3G,UAAAA,EAAE;KACG,GAFKA,EAAE,IAEP,CACT;IACE,CAAA;GACF;;CACF,CAAA;AAET"}
|