@mobilon-dev/chotto 0.3.3 → 0.3.5
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 +21 -21
- package/README.md +303 -303
- package/dist/{ModalVideoRecorder-CXr2HQuY.js → ModalVideoRecorder-BFZoDkGK.js} +2 -2
- package/dist/chotto.css +1 -1
- package/dist/index-DRZepRE6.js +20957 -0
- package/dist/types/{helpers → apps/helpers}/index.d.ts +5 -5
- package/dist/types/apps/helpers/sortByTimestamp.d.ts +5 -0
- package/dist/types/apps/helpers/useModalSelectUser2.d.ts +1 -0
- package/dist/types/{transform → apps/transform}/transformToFeed.d.ts +1 -1
- package/dist/types/components/atoms/Modal/styles/types.d.ts +161 -0
- package/dist/types/components/atoms/ModalFullscreen/styles/types.d.ts +133 -0
- package/dist/types/components/atoms/ModalNoFooter/styles/types.d.ts +105 -0
- package/dist/types/components/atoms/Tooltip/styles/types.d.ts +61 -0
- package/dist/types/components/blocks/ChatItem/ChatItem.vue.d.ts +23 -19
- package/dist/types/components/blocks/ChatItem/styles/types.d.ts +293 -0
- package/dist/types/components/blocks/ChatList/ChatList.vue.d.ts +1 -1
- package/dist/types/components/blocks/ChatList/styles/types.d.ts +123 -0
- package/dist/types/components/blocks/ChatPanel/styles/types.d.ts +53 -0
- package/dist/types/components/blocks/FeedFoundItem/styles/types.d.ts +89 -0
- package/dist/types/components/blocks/FeedFoundObjects/FeedFoundObjects.vue.d.ts +2 -2
- package/dist/types/components/blocks/FeedFoundObjects/styles/types.d.ts +37 -0
- package/dist/types/components/blocks/FeedSearch/styles/types.d.ts +51 -0
- package/dist/types/components/blocks/MessageKeyboard/styles/types.d.ts +51 -0
- package/dist/types/components/blocks/index.d.ts +0 -1
- package/dist/types/components/compounds/ChatInput/styles/types.d.ts +159 -0
- package/dist/types/components/compounds/CommunicationPanel/styles/types.d.ts +401 -0
- package/dist/types/components/compounds/Feed/Feed.vue.d.ts +11 -2
- package/dist/types/components/compounds/Feed/messages/AudioMessage/styles/types.d.ts +437 -0
- package/dist/types/components/compounds/Feed/messages/BaseReplyMessage/BaseReplyMessage.vue.d.ts +5 -1
- package/dist/types/components/compounds/Feed/messages/BaseReplyMessage/styles/types.d.ts +73 -0
- package/dist/types/components/compounds/Feed/messages/CallMessage/styles/types.d.ts +305 -0
- package/dist/types/components/compounds/Feed/messages/DateMessage/styles/types.d.ts +34 -0
- package/dist/types/components/compounds/Feed/messages/DateMessageSticky/styles/types.d.ts +35 -0
- package/dist/types/components/compounds/Feed/messages/FileMessage/styles/types.d.ts +253 -0
- package/dist/types/components/compounds/Feed/messages/ImageMessage/styles/types.d.ts +237 -0
- package/dist/types/components/compounds/Feed/messages/ReplyAudioMessage/styles/types.d.ts +71 -0
- package/dist/types/components/compounds/Feed/messages/ReplyCallMessage/styles/types.d.ts +61 -0
- package/dist/types/components/compounds/Feed/messages/ReplyFileMessage/styles/types.d.ts +67 -0
- package/dist/types/components/compounds/Feed/messages/ReplyImageMessage/styles/types.d.ts +85 -0
- package/dist/types/components/compounds/Feed/messages/ReplyTextMessage/styles/types.d.ts +35 -0
- package/dist/types/components/compounds/Feed/messages/ReplyVideoMessage/styles/types.d.ts +81 -0
- package/dist/types/components/compounds/Feed/messages/SystemMessage/styles/types.d.ts +23 -0
- package/dist/types/components/compounds/Feed/messages/TextMessage/styles/types.d.ts +203 -0
- package/dist/types/components/compounds/Feed/messages/TypingMessage/styles/types.d.ts +93 -0
- package/dist/types/components/compounds/Feed/messages/VideoMessage/VideoMessage.vue.d.ts +1 -1
- package/dist/types/components/compounds/Feed/messages/VideoMessage/styles/types.d.ts +241 -0
- package/dist/types/components/compounds/Feed/styles/types.d.ts +119 -0
- package/dist/types/components/compounds/ModalVideoRecorder/styles/types.d.ts +71 -0
- package/dist/types/components/compounds/SideBar/styles/types.d.ts +279 -0
- package/dist/types/components/compounds/TemplateSelector/TemplateSelector.vue.d.ts +2 -0
- package/dist/types/components/compounds/TemplateSelector/styles/types.d.ts +311 -0
- package/dist/types/components/compounds/UserProfile/styles/types.d.ts +61 -0
- package/dist/types/components/containers/BaseContainer/styles/types.d.ts +39 -0
- package/dist/types/components/containers/FloatContainer/styles/types.d.ts +89 -0
- package/dist/types/components/containers/PlaceholderComponent/styles/types.d.ts +17 -0
- package/dist/types/components/containers/SplashScreen/styles/types.d.ts +17 -0
- package/dist/types/components/elements/AudioRecorder/styles/types.d.ts +79 -0
- package/dist/types/components/elements/ButtonCommandsSelector/styles/types.d.ts +23 -0
- package/dist/types/components/elements/ButtonContextMenu/styles/types.d.ts +15 -0
- package/dist/types/components/elements/ButtonEmojiPicker/styles/types.d.ts +33 -0
- package/dist/types/components/elements/ButtonTemplateSelector/styles/types.d.ts +29 -0
- package/dist/types/components/elements/ButtonWabaTemplateSelector/styles/types.d.ts +29 -0
- package/dist/types/components/elements/ChannelSelector/ChannelSelector.vue.d.ts +2 -2
- package/dist/types/components/elements/ChannelSelector/styles/types.d.ts +49 -0
- package/dist/types/components/elements/ChatFilter/styles/types.d.ts +43 -0
- package/dist/types/components/elements/ChatInfo/styles/types.d.ts +93 -0
- package/dist/types/components/elements/ChatTabs/styles/types.d.ts +65 -0
- package/dist/types/components/elements/ContactInfo/ContactInfo.vue.d.ts +2 -2
- package/dist/types/components/elements/ContactInfo/stories/ContactInfo.stories.d.ts +2 -2
- package/dist/types/components/elements/ContactInfo/styles/types.d.ts +219 -0
- package/dist/types/components/elements/ContextMenu/styles/types.d.ts +59 -0
- package/dist/types/components/elements/FeedKeyboard/styles/types.d.ts +55 -0
- package/dist/types/components/elements/FilePreview/styles/types.d.ts +141 -0
- package/dist/types/components/elements/FileUploader/styles/types.d.ts +23 -0
- package/dist/types/components/elements/ThemeMode/styles/types.d.ts +99 -0
- package/dist/types/components/elements/VideoRecorder/styles/types.d.ts +37 -0
- package/dist/types/components/elements/WABAAttachmentSection/styles/types.d.ts +59 -0
- package/dist/types/components/elements/WABAQuickReplyButtons/styles/types.d.ts +35 -0
- package/dist/types/components/elements/WABASeparatedQuickButtons/styles/types.d.ts +65 -0
- package/dist/types/components/elements/WABATemplateSelector/WABATemplateSelector.vue.d.ts +2 -0
- package/dist/types/components/elements/WABATemplateSelector/stories/WABATemplateSelector.stories.d.ts +2 -0
- package/dist/types/components/elements/WABATemplateSelector/styles/types.d.ts +363 -0
- package/dist/types/components/layouts/AdaptiveExtendedLayout/styles/types.d.ts +83 -0
- package/dist/types/components/layouts/BaseLayout/styles/types.d.ts +63 -0
- package/dist/types/components/layouts/ChatWrapper/styles/types.d.ts +43 -0
- package/dist/types/components/layouts/ExtendedLayout/styles/types.d.ts +79 -0
- package/dist/types/components/layouts/FeedLayout/styles/types.d.ts +33 -0
- package/dist/types/components/molecules/CreateDialog/CreateDialog.vue.d.ts +2 -2
- package/dist/types/components/molecules/CreateDialog/stories/CreateDialog.stories.d.ts +2 -2
- package/dist/types/components/molecules/CreateDialog/styles/types.d.ts +19 -0
- package/dist/types/components/molecules/EmbedPreview/styles/types.d.ts +29 -0
- package/dist/types/components/molecules/LinkPreview/styles/types.d.ts +55 -0
- package/dist/types/components/molecules/SelectUser/styles/types.d.ts +53 -0
- package/dist/types/components/molecules/SelectUser2/styles/types.d.ts +19 -0
- package/dist/types/components/molecules/index.d.ts +4 -0
- package/dist/types/hooks/index.d.ts +12 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/themes/index.d.ts +1 -2
- package/dist/types/themes/types.d.ts +64 -113
- package/dist/types/types/components.d.ts +33 -0
- package/dist/vuessages.es.js +65 -62
- package/dist/vuessages.umd.js +6 -6
- package/package.json +64 -63
- package/dist/CreateChat-Dv1RI_Uw.js +0 -31
- package/dist/CreateChat2-DR5H827U.js +0 -42
- package/dist/CreateDialog-lcy7szHJ.js +0 -77
- package/dist/SelectUser2-BpDHmoMk.js +0 -46
- package/dist/chat-background.svg +0 -3
- package/dist/index-BAlmGgQr.js +0 -20864
- package/dist/types/helpers/sortByTimestamp.d.ts +0 -1
- package/dist/types/helpers/useModalSelectUser2.d.ts +0 -1
- package/dist/types/themes/constants.d.ts +0 -18
- /package/dist/types/{BaseAdaptiveExtendedChatApp.vue.d.ts → apps/BaseAdaptiveExtendedChatApp/BaseAdaptiveExtendedChatApp.vue.d.ts} +0 -0
- /package/dist/types/{BaseBaseChatApp.vue.d.ts → apps/BaseBaseChatApp/BaseBaseChatApp.vue.d.ts} +0 -0
- /package/dist/types/{BaseExtendedChatApp.vue.d.ts → apps/BaseExtendedChatApp/BaseExtendedChatApp.vue.d.ts} +0 -0
- /package/dist/types/{BaseFeedChatApp.vue.d.ts → apps/BaseFeedChatApp/BaseFeedChatApp.vue.d.ts} +0 -0
- /package/dist/types/{FloatExtendedChatApp.vue.d.ts → apps/FloatExtendedChatApp/FloatExtendedChatApp.vue.d.ts} +0 -0
- /package/dist/types/{MobilonExtendedChatApp.vue.d.ts → apps/MobilonExtendedChatApp/MobilonExtendedChatApp.vue.d.ts} +0 -0
- /package/dist/types/{data → apps/data}/channels.d.ts +0 -0
- /package/dist/types/{data → apps/data}/chats.d.ts +0 -0
- /package/dist/types/{data → apps/data}/groupTemplates.d.ts +0 -0
- /package/dist/types/{data → apps/data}/index.d.ts +0 -0
- /package/dist/types/{data → apps/data}/messages.d.ts +0 -0
- /package/dist/types/{data → apps/data}/sidebarItems.d.ts +0 -0
- /package/dist/types/{data → apps/data}/templates.d.ts +0 -0
- /package/dist/types/{data → apps/data}/userProfile.d.ts +0 -0
- /package/dist/types/{data → apps/data}/users.d.ts +0 -0
- /package/dist/types/{data → apps/data}/wabaTemplates.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/formatTimestamp.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/playNotificationAudio.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/prepareTimeline.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/useCreateChat.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/useCreateChat2.d.ts +0 -0
- /package/dist/types/{helpers → apps/helpers}/useCreateDialog.d.ts +0 -0
- /package/dist/types/{stores → apps/stores}/useChatStore.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/generatePreview.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/getStatusMessage.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/getTypeFileByMime.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/throttle.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/uploadFile.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useDelayDebouncedRef.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useImmediateDebouncedRef.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useMessage.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useModal.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useSearchModel.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useTheme.d.ts +0 -0
- /package/dist/types/{helpers → hooks}/useVideoRecorder.d.ts +0 -0
package/LICENSE
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2024 mobilon-dev
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024 mobilon-dev
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
@@ -1,303 +1,303 @@
|
|
1
|
-
# Chotto UI
|
2
|
-
|
3
|
-
🚀 **Vue 3 UI библиотека компонентов для создания современных чат-интерфейсов и AI-ассистентов**
|
4
|
-
|
5
|
-
[](https://vuejs.org/)
|
6
|
-
[](https://www.typescriptlang.org/)
|
7
|
-
[](LICENSE)
|
8
|
-
|
9
|
-
## 📖 Документация и ресурсы
|
10
|
-
|
11
|
-
- 📚 **[Документация](https://mobilon-dev.github.io/chotto-docs/)** - Полное руководство по использованию
|
12
|
-
- 🎨 **[Storybook](https://mobilon-dev.github.io/chotto/)** - Интерактивные примеры 20+ компонентов
|
13
|
-
- 🎯 **[Демо-приложения](https://mobilon-dev.github.io/chotto-demo/)** - 7 готовых примеров использования
|
14
|
-
- 💬 **[Telegram чат разработчиков](https://t.me/chottodev)** - Сообщество и поддержка
|
15
|
-
|
16
|
-
## 🖼️ Скриншоты
|
17
|
-
|
18
|
-

|
19
|
-
|
20
|
-
## 🎥 Видео-обзоры
|
21
|
-
|
22
|
-
- [Chotto 01: Welcome](https://youtu.be/LbtXeR_P9fs) - Введение в библиотеку
|
23
|
-
- [Chotto 02: WABA templates](https://youtu.be/bwhcn6KAn28) - Работа с шаблонами WABA
|
24
|
-
|
25
|
-
## ✨ Возможности
|
26
|
-
|
27
|
-
### 🎨 **Богатый набор компонентов**
|
28
|
-
- **20+ готовых компонентов** для создания чат-интерфейсов
|
29
|
-
- **Модульная архитектура** - используйте только нужные компоненты
|
30
|
-
- **TypeScript поддержка** - полная типизация всех компонентов
|
31
|
-
|
32
|
-
### 💬 **Множественные типы сообщений**
|
33
|
-
- 📝 Текстовые сообщения с поддержкой Markdown
|
34
|
-
- 🖼️ Изображения с превью и галереей
|
35
|
-
- 🎵 Аудио сообщения с плеером
|
36
|
-
- 🎬 Видео сообщения с встроенным плеером
|
37
|
-
- 📎 Файлы с превью и загрузкой
|
38
|
-
- 📞 Звонки с транскрипцией
|
39
|
-
- 💬 Ответы на сообщения
|
40
|
-
- 📅 Разделители дат
|
41
|
-
- ⚙️ Системные уведомления
|
42
|
-
- ⌨️ Индикатор печати
|
43
|
-
|
44
|
-
### 🎯 **Продвинутые функции**
|
45
|
-
- 🔍 **Поиск по сообщениям** с подсветкой результатов
|
46
|
-
- 📱 **Адаптивные макеты** для всех устройств
|
47
|
-
- 🎨 **3 готовые темы**: светлая, темная, зеленая
|
48
|
-
- 🌍 **Многоязычность**: русский и английский
|
49
|
-
- 🔔 **Система уведомлений** в реальном времени
|
50
|
-
- 📊 **Просмотры сообщений** с счетчиками
|
51
|
-
- 🔗 **Предпросмотр ссылок** с метаданными
|
52
|
-
- 🎵 **Встроенные медиаплееры** (YouTube, Яндекс.Музыка, Rutube, VK)
|
53
|
-
- ⌨️ **Клавиатуры быстрых ответов**
|
54
|
-
- 📝 **Шаблоны сообщений** (WABA, групповые)
|
55
|
-
- 🎤 **Запись аудио и видео**
|
56
|
-
- 😊 **Поддержка эмодзи**
|
57
|
-
|
58
|
-
### 🏗️ **Гибкая архитектура**
|
59
|
-
- **Layouts** - определяют структуру интерфейса
|
60
|
-
- **Containers** - высокоуровневые обертки
|
61
|
-
- **Components** - переиспользуемые UI элементы
|
62
|
-
- **Messages** - типизированные компоненты сообщений
|
63
|
-
- **Modals** - диалоговые окна
|
64
|
-
|
65
|
-
## 🚀 Быстрый старт
|
66
|
-
|
67
|
-
### Установка
|
68
|
-
|
69
|
-
```bash
|
70
|
-
npm install @mobilon-dev/chotto
|
71
|
-
```
|
72
|
-
|
73
|
-
### Базовое использование
|
74
|
-
|
75
|
-
```vue
|
76
|
-
<template>
|
77
|
-
<div class="chat-app">
|
78
|
-
<BaseContainer height="90vh" width="90vw">
|
79
|
-
<ExtendedLayout>
|
80
|
-
<!-- Боковая панель -->
|
81
|
-
<template #first-col>
|
82
|
-
<SideBar :sidebar-items="sidebarItems" />
|
83
|
-
<ThemeMode :themes="themes" />
|
84
|
-
</template>
|
85
|
-
|
86
|
-
<!-- Список чатов -->
|
87
|
-
<template #second-col>
|
88
|
-
<ChatList
|
89
|
-
:chats="chats"
|
90
|
-
@select="selectChat"
|
91
|
-
/>
|
92
|
-
</template>
|
93
|
-
|
94
|
-
<!-- Область чата -->
|
95
|
-
<template #third-col>
|
96
|
-
<ChatWrapper>
|
97
|
-
<ChatInfo :chat="selectedChat" />
|
98
|
-
<Feed :objects="messages" />
|
99
|
-
<ChatInput @send="sendMessage" />
|
100
|
-
</ChatWrapper>
|
101
|
-
</template>
|
102
|
-
</ExtendedLayout>
|
103
|
-
</BaseContainer>
|
104
|
-
</div>
|
105
|
-
</template>
|
106
|
-
|
107
|
-
<script setup>
|
108
|
-
import {
|
109
|
-
BaseContainer,
|
110
|
-
ExtendedLayout,
|
111
|
-
SideBar,
|
112
|
-
ChatList,
|
113
|
-
ChatWrapper,
|
114
|
-
ChatInfo,
|
115
|
-
Feed,
|
116
|
-
ChatInput,
|
117
|
-
ThemeMode
|
118
|
-
} from '@mobilon-dev/chotto'
|
119
|
-
import '@mobilon-dev/chotto/themes/index.scss'
|
120
|
-
|
121
|
-
// Ваша логика...
|
122
|
-
</script>
|
123
|
-
```
|
124
|
-
|
125
|
-
## 🛠️ Разработка
|
126
|
-
|
127
|
-
### Требования
|
128
|
-
- Node.js 18+
|
129
|
-
- npm или yarn
|
130
|
-
|
131
|
-
### Установка зависимостей
|
132
|
-
```bash
|
133
|
-
npm install
|
134
|
-
```
|
135
|
-
|
136
|
-
### Запуск в режиме разработки
|
137
|
-
```bash
|
138
|
-
npm run dev
|
139
|
-
```
|
140
|
-
|
141
|
-
### Запуск Storybook
|
142
|
-
```bash
|
143
|
-
npm run storybook
|
144
|
-
```
|
145
|
-
|
146
|
-
### Сборка библиотеки
|
147
|
-
```bash
|
148
|
-
npm run build
|
149
|
-
```
|
150
|
-
|
151
|
-
### Проверка кода
|
152
|
-
```bash
|
153
|
-
npm run lint
|
154
|
-
npm run lint-fix
|
155
|
-
```
|
156
|
-
|
157
|
-
## 🏗️ Архитектура
|
158
|
-
|
159
|
-
```
|
160
|
-
src/
|
161
|
-
├── library/ # Основная библиотека компонентов
|
162
|
-
│ ├── layouts/ # Макеты (BaseLayout, ExtendedLayout, etc.)
|
163
|
-
│ ├── components/ # UI компоненты (ChatInput, ChatList, etc.)
|
164
|
-
│ ├── messages/ # Компоненты сообщений (TextMessage, ImageMessage, etc.)
|
165
|
-
│ ├── containers/ # Контейнеры (BaseContainer, FloatContainer)
|
166
|
-
│ └── modals/ # Модальные окна
|
167
|
-
├── helpers/ # Утилиты и хелперы
|
168
|
-
├── types/ # TypeScript типы
|
169
|
-
├── data/ # Mock данные для демонстрации
|
170
|
-
├── themes/ # Стили и темы (default, dark, green)
|
171
|
-
└── locale/ # Локализация (EN, RU)
|
172
|
-
```
|
173
|
-
|
174
|
-
Дополнительно в корне:
|
175
|
-
|
176
|
-
```
|
177
|
-
.storybook/ # Storybook конфигурация
|
178
|
-
docs/ # Сборка Storybook (output)
|
179
|
-
scripts/ # Скрипты (валидатор тем)
|
180
|
-
PUBLISH.md # Шаги публикации пакета
|
181
|
-
THEME_ARCHITECTURE_PROMPT.md # Черновик архитектуры тем
|
182
|
-
```
|
183
|
-
|
184
|
-
## 🎨 Темы и кастомизация
|
185
|
-
|
186
|
-
### Доступные темы
|
187
|
-
- **Default** - светлая тема
|
188
|
-
- **Dark** - темная тема
|
189
|
-
- **Green** - зеленая тема
|
190
|
-
|
191
|
-
### Кастомизация CSS переменных
|
192
|
-
```css
|
193
|
-
[data-theme="light"] {
|
194
|
-
--chotto-theme-primary-color: #10b981;
|
195
|
-
--chotto-theme-secondary-color: #6b7280;
|
196
|
-
--chotto-background-color: #ffffff;
|
197
|
-
/* ... другие переменные */
|
198
|
-
}
|
199
|
-
```
|
200
|
-
|
201
|
-
## 📱 Адаптивность
|
202
|
-
|
203
|
-
Библиотека поддерживает адаптивные макеты:
|
204
|
-
- **Desktop** - 3-колоночный макет
|
205
|
-
- **Tablet** - 2-колоночный макет
|
206
|
-
- **Mobile** - 1-колоночный макет
|
207
|
-
|
208
|
-
## 🌍 Локализация
|
209
|
-
|
210
|
-
Поддерживаемые языки:
|
211
|
-
- 🇷🇺 Русский
|
212
|
-
- 🇺🇸 Английский
|
213
|
-
|
214
|
-
```javascript
|
215
|
-
import { useLocale } from '@mobilon-dev/chotto'
|
216
|
-
|
217
|
-
const { t } = useLocale()
|
218
|
-
console.log(t('component.ChatInput.InputPlaceholder'))
|
219
|
-
```
|
220
|
-
|
221
|
-
## 📦 Типы сообщений
|
222
|
-
|
223
|
-
### Текстовые сообщения
|
224
|
-
```javascript
|
225
|
-
{
|
226
|
-
type: "message.text",
|
227
|
-
text: "Привет!",
|
228
|
-
position: "left",
|
229
|
-
status: "read",
|
230
|
-
time: "14:30",
|
231
|
-
avatar: "https://example.com/avatar.jpg"
|
232
|
-
}
|
233
|
-
```
|
234
|
-
|
235
|
-
### Медиа сообщения
|
236
|
-
```javascript
|
237
|
-
{
|
238
|
-
type: "message.image",
|
239
|
-
url: "https://example.com/image.jpg",
|
240
|
-
alt: "Описание изображения",
|
241
|
-
position: "right",
|
242
|
-
status: "sent"
|
243
|
-
}
|
244
|
-
```
|
245
|
-
|
246
|
-
## 🔌 Интеграция с бэкендом
|
247
|
-
|
248
|
-
### Data Provider
|
249
|
-
```javascript
|
250
|
-
const dataProvider = {
|
251
|
-
getFeed(chatId) {
|
252
|
-
// Загрузка сообщений
|
253
|
-
return fetch(`/api/chats/${chatId}/messages`)
|
254
|
-
},
|
255
|
-
addMessage(message) {
|
256
|
-
// Отправка сообщения
|
257
|
-
return fetch('/api/messages', {
|
258
|
-
method: 'POST',
|
259
|
-
body: JSON.stringify(message)
|
260
|
-
})
|
261
|
-
}
|
262
|
-
}
|
263
|
-
```
|
264
|
-
|
265
|
-
### Event Provider
|
266
|
-
```javascript
|
267
|
-
const eventor = {
|
268
|
-
push(event) {
|
269
|
-
// Обработка событий в реальном времени
|
270
|
-
console.log('New event:', event)
|
271
|
-
},
|
272
|
-
subscribe(callback) {
|
273
|
-
// Подписка на события
|
274
|
-
}
|
275
|
-
}
|
276
|
-
```
|
277
|
-
|
278
|
-
## 🤝 Сообщество
|
279
|
-
|
280
|
-
### Полезные ссылки
|
281
|
-
- [Telegram чат](https://t.me/chottodev) - Обсуждения и поддержка
|
282
|
-
- [Issues](https://github.com/mobilon-dev/chotto/issues) - Баги и предложения
|
283
|
-
- [Discussions](https://github.com/mobilon-dev/chotto/discussions) - Общие вопросы
|
284
|
-
|
285
|
-
### Похожие проекты
|
286
|
-
- [Sendbird UIKit](https://github.com/sendbird/sendbird-uikit-react)
|
287
|
-
- [React Chat Elements](https://github.com/detaysoft/react-chat-elements)
|
288
|
-
- [Vue Advanced Chat](https://github.com/advanced-chat/vue-advanced-chat)
|
289
|
-
- [Lobe Chat](https://github.com/lobehub/lobe-chat)
|
290
|
-
|
291
|
-
## 📄 Лицензия
|
292
|
-
|
293
|
-
MIT License - см. файл [LICENSE](LICENSE) для деталей.
|
294
|
-
|
295
|
-
## 🙏 Благодарности
|
296
|
-
|
297
|
-
Спасибо всем участникам сообщества за вклад в развитие проекта!
|
298
|
-
|
299
|
-
---
|
300
|
-
|
301
|
-
**Создавайте потрясающие чат-интерфейсы с Chotto UI! 🚀**
|
302
|
-
|
303
|
-
|
1
|
+
# Chotto UI
|
2
|
+
|
3
|
+
🚀 **Vue 3 UI библиотека компонентов для создания современных чат-интерфейсов и AI-ассистентов**
|
4
|
+
|
5
|
+
[](https://vuejs.org/)
|
6
|
+
[](https://www.typescriptlang.org/)
|
7
|
+
[](LICENSE)
|
8
|
+
|
9
|
+
## 📖 Документация и ресурсы
|
10
|
+
|
11
|
+
- 📚 **[Документация](https://mobilon-dev.github.io/chotto-docs/)** - Полное руководство по использованию
|
12
|
+
- 🎨 **[Storybook](https://mobilon-dev.github.io/chotto/)** - Интерактивные примеры 20+ компонентов
|
13
|
+
- 🎯 **[Демо-приложения](https://mobilon-dev.github.io/chotto-demo/)** - 7 готовых примеров использования
|
14
|
+
- 💬 **[Telegram чат разработчиков](https://t.me/chottodev)** - Сообщество и поддержка
|
15
|
+
|
16
|
+
## 🖼️ Скриншоты
|
17
|
+
|
18
|
+

|
19
|
+
|
20
|
+
## 🎥 Видео-обзоры
|
21
|
+
|
22
|
+
- [Chotto 01: Welcome](https://youtu.be/LbtXeR_P9fs) - Введение в библиотеку
|
23
|
+
- [Chotto 02: WABA templates](https://youtu.be/bwhcn6KAn28) - Работа с шаблонами WABA
|
24
|
+
|
25
|
+
## ✨ Возможности
|
26
|
+
|
27
|
+
### 🎨 **Богатый набор компонентов**
|
28
|
+
- **20+ готовых компонентов** для создания чат-интерфейсов
|
29
|
+
- **Модульная архитектура** - используйте только нужные компоненты
|
30
|
+
- **TypeScript поддержка** - полная типизация всех компонентов
|
31
|
+
|
32
|
+
### 💬 **Множественные типы сообщений**
|
33
|
+
- 📝 Текстовые сообщения с поддержкой Markdown
|
34
|
+
- 🖼️ Изображения с превью и галереей
|
35
|
+
- 🎵 Аудио сообщения с плеером
|
36
|
+
- 🎬 Видео сообщения с встроенным плеером
|
37
|
+
- 📎 Файлы с превью и загрузкой
|
38
|
+
- 📞 Звонки с транскрипцией
|
39
|
+
- 💬 Ответы на сообщения
|
40
|
+
- 📅 Разделители дат
|
41
|
+
- ⚙️ Системные уведомления
|
42
|
+
- ⌨️ Индикатор печати
|
43
|
+
|
44
|
+
### 🎯 **Продвинутые функции**
|
45
|
+
- 🔍 **Поиск по сообщениям** с подсветкой результатов
|
46
|
+
- 📱 **Адаптивные макеты** для всех устройств
|
47
|
+
- 🎨 **3 готовые темы**: светлая, темная, зеленая
|
48
|
+
- 🌍 **Многоязычность**: русский и английский
|
49
|
+
- 🔔 **Система уведомлений** в реальном времени
|
50
|
+
- 📊 **Просмотры сообщений** с счетчиками
|
51
|
+
- 🔗 **Предпросмотр ссылок** с метаданными
|
52
|
+
- 🎵 **Встроенные медиаплееры** (YouTube, Яндекс.Музыка, Rutube, VK)
|
53
|
+
- ⌨️ **Клавиатуры быстрых ответов**
|
54
|
+
- 📝 **Шаблоны сообщений** (WABA, групповые)
|
55
|
+
- 🎤 **Запись аудио и видео**
|
56
|
+
- 😊 **Поддержка эмодзи**
|
57
|
+
|
58
|
+
### 🏗️ **Гибкая архитектура**
|
59
|
+
- **Layouts** - определяют структуру интерфейса
|
60
|
+
- **Containers** - высокоуровневые обертки
|
61
|
+
- **Components** - переиспользуемые UI элементы
|
62
|
+
- **Messages** - типизированные компоненты сообщений
|
63
|
+
- **Modals** - диалоговые окна
|
64
|
+
|
65
|
+
## 🚀 Быстрый старт
|
66
|
+
|
67
|
+
### Установка
|
68
|
+
|
69
|
+
```bash
|
70
|
+
npm install @mobilon-dev/chotto
|
71
|
+
```
|
72
|
+
|
73
|
+
### Базовое использование
|
74
|
+
|
75
|
+
```vue
|
76
|
+
<template>
|
77
|
+
<div class="chat-app">
|
78
|
+
<BaseContainer height="90vh" width="90vw">
|
79
|
+
<ExtendedLayout>
|
80
|
+
<!-- Боковая панель -->
|
81
|
+
<template #first-col>
|
82
|
+
<SideBar :sidebar-items="sidebarItems" />
|
83
|
+
<ThemeMode :themes="themes" />
|
84
|
+
</template>
|
85
|
+
|
86
|
+
<!-- Список чатов -->
|
87
|
+
<template #second-col>
|
88
|
+
<ChatList
|
89
|
+
:chats="chats"
|
90
|
+
@select="selectChat"
|
91
|
+
/>
|
92
|
+
</template>
|
93
|
+
|
94
|
+
<!-- Область чата -->
|
95
|
+
<template #third-col>
|
96
|
+
<ChatWrapper>
|
97
|
+
<ChatInfo :chat="selectedChat" />
|
98
|
+
<Feed :objects="messages" />
|
99
|
+
<ChatInput @send="sendMessage" />
|
100
|
+
</ChatWrapper>
|
101
|
+
</template>
|
102
|
+
</ExtendedLayout>
|
103
|
+
</BaseContainer>
|
104
|
+
</div>
|
105
|
+
</template>
|
106
|
+
|
107
|
+
<script setup>
|
108
|
+
import {
|
109
|
+
BaseContainer,
|
110
|
+
ExtendedLayout,
|
111
|
+
SideBar,
|
112
|
+
ChatList,
|
113
|
+
ChatWrapper,
|
114
|
+
ChatInfo,
|
115
|
+
Feed,
|
116
|
+
ChatInput,
|
117
|
+
ThemeMode
|
118
|
+
} from '@mobilon-dev/chotto'
|
119
|
+
import '@mobilon-dev/chotto/themes/index.scss'
|
120
|
+
|
121
|
+
// Ваша логика...
|
122
|
+
</script>
|
123
|
+
```
|
124
|
+
|
125
|
+
## 🛠️ Разработка
|
126
|
+
|
127
|
+
### Требования
|
128
|
+
- Node.js 18+
|
129
|
+
- npm или yarn
|
130
|
+
|
131
|
+
### Установка зависимостей
|
132
|
+
```bash
|
133
|
+
npm install
|
134
|
+
```
|
135
|
+
|
136
|
+
### Запуск в режиме разработки
|
137
|
+
```bash
|
138
|
+
npm run dev
|
139
|
+
```
|
140
|
+
|
141
|
+
### Запуск Storybook
|
142
|
+
```bash
|
143
|
+
npm run storybook
|
144
|
+
```
|
145
|
+
|
146
|
+
### Сборка библиотеки
|
147
|
+
```bash
|
148
|
+
npm run build
|
149
|
+
```
|
150
|
+
|
151
|
+
### Проверка кода
|
152
|
+
```bash
|
153
|
+
npm run lint
|
154
|
+
npm run lint-fix
|
155
|
+
```
|
156
|
+
|
157
|
+
## 🏗️ Архитектура
|
158
|
+
|
159
|
+
```
|
160
|
+
src/
|
161
|
+
├── library/ # Основная библиотека компонентов
|
162
|
+
│ ├── layouts/ # Макеты (BaseLayout, ExtendedLayout, etc.)
|
163
|
+
│ ├── components/ # UI компоненты (ChatInput, ChatList, etc.)
|
164
|
+
│ ├── messages/ # Компоненты сообщений (TextMessage, ImageMessage, etc.)
|
165
|
+
│ ├── containers/ # Контейнеры (BaseContainer, FloatContainer)
|
166
|
+
│ └── modals/ # Модальные окна
|
167
|
+
├── helpers/ # Утилиты и хелперы
|
168
|
+
├── types/ # TypeScript типы
|
169
|
+
├── data/ # Mock данные для демонстрации
|
170
|
+
├── themes/ # Стили и темы (default, dark, green)
|
171
|
+
└── locale/ # Локализация (EN, RU)
|
172
|
+
```
|
173
|
+
|
174
|
+
Дополнительно в корне:
|
175
|
+
|
176
|
+
```
|
177
|
+
.storybook/ # Storybook конфигурация
|
178
|
+
docs/ # Сборка Storybook (output)
|
179
|
+
scripts/ # Скрипты (валидатор тем)
|
180
|
+
PUBLISH.md # Шаги публикации пакета
|
181
|
+
THEME_ARCHITECTURE_PROMPT.md # Черновик архитектуры тем
|
182
|
+
```
|
183
|
+
|
184
|
+
## 🎨 Темы и кастомизация
|
185
|
+
|
186
|
+
### Доступные темы
|
187
|
+
- **Default** - светлая тема
|
188
|
+
- **Dark** - темная тема
|
189
|
+
- **Green** - зеленая тема
|
190
|
+
|
191
|
+
### Кастомизация CSS переменных
|
192
|
+
```css
|
193
|
+
[data-theme="light"] {
|
194
|
+
--chotto-theme-primary-color: #10b981;
|
195
|
+
--chotto-theme-secondary-color: #6b7280;
|
196
|
+
--chotto-background-color: #ffffff;
|
197
|
+
/* ... другие переменные */
|
198
|
+
}
|
199
|
+
```
|
200
|
+
|
201
|
+
## 📱 Адаптивность
|
202
|
+
|
203
|
+
Библиотека поддерживает адаптивные макеты:
|
204
|
+
- **Desktop** - 3-колоночный макет
|
205
|
+
- **Tablet** - 2-колоночный макет
|
206
|
+
- **Mobile** - 1-колоночный макет
|
207
|
+
|
208
|
+
## 🌍 Локализация
|
209
|
+
|
210
|
+
Поддерживаемые языки:
|
211
|
+
- 🇷🇺 Русский
|
212
|
+
- 🇺🇸 Английский
|
213
|
+
|
214
|
+
```javascript
|
215
|
+
import { useLocale } from '@mobilon-dev/chotto'
|
216
|
+
|
217
|
+
const { t } = useLocale()
|
218
|
+
console.log(t('component.ChatInput.InputPlaceholder'))
|
219
|
+
```
|
220
|
+
|
221
|
+
## 📦 Типы сообщений
|
222
|
+
|
223
|
+
### Текстовые сообщения
|
224
|
+
```javascript
|
225
|
+
{
|
226
|
+
type: "message.text",
|
227
|
+
text: "Привет!",
|
228
|
+
position: "left",
|
229
|
+
status: "read",
|
230
|
+
time: "14:30",
|
231
|
+
avatar: "https://example.com/avatar.jpg"
|
232
|
+
}
|
233
|
+
```
|
234
|
+
|
235
|
+
### Медиа сообщения
|
236
|
+
```javascript
|
237
|
+
{
|
238
|
+
type: "message.image",
|
239
|
+
url: "https://example.com/image.jpg",
|
240
|
+
alt: "Описание изображения",
|
241
|
+
position: "right",
|
242
|
+
status: "sent"
|
243
|
+
}
|
244
|
+
```
|
245
|
+
|
246
|
+
## 🔌 Интеграция с бэкендом
|
247
|
+
|
248
|
+
### Data Provider
|
249
|
+
```javascript
|
250
|
+
const dataProvider = {
|
251
|
+
getFeed(chatId) {
|
252
|
+
// Загрузка сообщений
|
253
|
+
return fetch(`/api/chats/${chatId}/messages`)
|
254
|
+
},
|
255
|
+
addMessage(message) {
|
256
|
+
// Отправка сообщения
|
257
|
+
return fetch('/api/messages', {
|
258
|
+
method: 'POST',
|
259
|
+
body: JSON.stringify(message)
|
260
|
+
})
|
261
|
+
}
|
262
|
+
}
|
263
|
+
```
|
264
|
+
|
265
|
+
### Event Provider
|
266
|
+
```javascript
|
267
|
+
const eventor = {
|
268
|
+
push(event) {
|
269
|
+
// Обработка событий в реальном времени
|
270
|
+
console.log('New event:', event)
|
271
|
+
},
|
272
|
+
subscribe(callback) {
|
273
|
+
// Подписка на события
|
274
|
+
}
|
275
|
+
}
|
276
|
+
```
|
277
|
+
|
278
|
+
## 🤝 Сообщество
|
279
|
+
|
280
|
+
### Полезные ссылки
|
281
|
+
- [Telegram чат](https://t.me/chottodev) - Обсуждения и поддержка
|
282
|
+
- [Issues](https://github.com/mobilon-dev/chotto/issues) - Баги и предложения
|
283
|
+
- [Discussions](https://github.com/mobilon-dev/chotto/discussions) - Общие вопросы
|
284
|
+
|
285
|
+
### Похожие проекты
|
286
|
+
- [Sendbird UIKit](https://github.com/sendbird/sendbird-uikit-react)
|
287
|
+
- [React Chat Elements](https://github.com/detaysoft/react-chat-elements)
|
288
|
+
- [Vue Advanced Chat](https://github.com/advanced-chat/vue-advanced-chat)
|
289
|
+
- [Lobe Chat](https://github.com/lobehub/lobe-chat)
|
290
|
+
|
291
|
+
## 📄 Лицензия
|
292
|
+
|
293
|
+
MIT License - см. файл [LICENSE](LICENSE) для деталей.
|
294
|
+
|
295
|
+
## 🙏 Благодарности
|
296
|
+
|
297
|
+
Спасибо всем участникам сообщества за вклад в развитие проекта!
|
298
|
+
|
299
|
+
---
|
300
|
+
|
301
|
+
**Создавайте потрясающие чат-интерфейсы с Chotto UI! 🚀**
|
302
|
+
|
303
|
+
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { defineComponent as N, ref as l, computed as z, onMounted as $, createElementBlock as m, openBlock as f, Fragment as q, createElementVNode as o, withDirectives as E, vShow as I, createCommentVNode as g, normalizeClass as y, toDisplayString as A, nextTick as G, unref as k } from "vue";
|
2
|
-
import { _ as H } from "./index-
|
2
|
+
import { _ as H } from "./index-DRZepRE6.js";
|
3
3
|
const J = { class: "video-recorder__header" }, K = { class: "video-recorder__controls" }, P = { class: "video-recorder__recording-container" }, Q = { class: "video-recorder__recording-time" }, W = /* @__PURE__ */ N({
|
4
4
|
__name: "ModalVideoRecorder",
|
5
5
|
emits: ["change", "submit", "close"],
|
@@ -137,7 +137,7 @@ const J = { class: "video-recorder__header" }, K = { class: "video-recorder__con
|
|
137
137
|
])
|
138
138
|
], 64));
|
139
139
|
}
|
140
|
-
}), ee = /* @__PURE__ */ H(W, [["__scopeId", "data-v-
|
140
|
+
}), ee = /* @__PURE__ */ H(W, [["__scopeId", "data-v-f141fc68"]]);
|
141
141
|
export {
|
142
142
|
ee as default
|
143
143
|
};
|