@phonghq/go-chat 1.0.0 → 1.0.2
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/README.md +4 -0
- package/dist/assets/icons/IconArrowLeft.vue.d.ts +2 -0
- package/dist/assets/icons/IconArrowLeft.vue.js +29 -0
- package/dist/assets/icons/IconPhone.vue.d.ts +2 -0
- package/dist/assets/icons/IconPhone.vue.js +19 -0
- package/dist/assets/icons/IconPlan.vue.d.ts +2 -0
- package/dist/assets/icons/IconPlan.vue.js +19 -0
- package/dist/assets/icons/IconPlus.vue.d.ts +2 -0
- package/dist/assets/icons/IconPlus.vue.js +22 -0
- package/dist/assets/icons/IconSearch.vue.d.ts +32 -0
- package/dist/assets/icons/IconSearch.vue.js +68 -0
- package/dist/assets/icons/call/IconMic.vue.d.ts +14 -0
- package/dist/assets/icons/call/IconMic.vue.js +123 -0
- package/dist/assets/icons/call/IconPhone.vue.d.ts +2 -0
- package/dist/assets/icons/call/IconPhone.vue.js +35 -0
- package/dist/assets/icons/call/IconPhoneCancel.vue.d.ts +2 -0
- package/dist/assets/icons/call/IconPhoneCancel.vue.js +35 -0
- package/dist/assets/icons/call/IconSpeaker.vue.d.ts +14 -0
- package/dist/assets/icons/call/IconSpeaker.vue.js +62 -0
- package/dist/assets/icons/customer-appointment/IconFilter.vue.d.ts +2 -0
- package/dist/assets/icons/customer-appointment/IconFilter.vue.js +53 -0
- package/dist/assets/icons/customer-detail/IconArrow.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconArrow.vue.js +22 -0
- package/dist/assets/icons/customer-detail/IconCheck.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconCheck.vue.js +27 -0
- package/dist/assets/icons/customer-detail/IconDate.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconDate.vue.js +43 -0
- package/dist/assets/icons/customer-detail/IconGroup.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconGroup.vue.js +48 -0
- package/dist/assets/icons/customer-detail/IconMessage.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconMessage.vue.js +28 -0
- package/dist/assets/icons/customer-detail/IconNote.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconNote.vue.js +29 -0
- package/dist/assets/icons/customer-detail/IconPhone.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconPhone.vue.js +21 -0
- package/dist/assets/icons/customer-detail/IconPin.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconPin.vue.js +29 -0
- package/dist/assets/icons/customer-detail/IconSearch.vue.d.ts +2 -0
- package/dist/assets/icons/customer-detail/IconSearch.vue.js +29 -0
- package/dist/chat/App.vue.d.ts +5 -0
- package/dist/chat/App.vue.js +502 -0
- package/dist/chat/main.d.ts +3 -0
- package/dist/chat/main.js +2 -0
- package/dist/chat/page/customer-appointment/CustomerAppointment.vue.d.ts +2 -0
- package/dist/chat/page/customer-appointment/CustomerAppointment.vue.js +207 -0
- package/dist/chat/page/customer-check-in/CollapseCheckIn.vue.d.ts +12 -0
- package/dist/chat/page/customer-check-in/CollapseCheckIn.vue.js +80 -0
- package/dist/chat/page/customer-check-in/CustomerCheckIn.vue.d.ts +2 -0
- package/dist/chat/page/customer-check-in/CustomerCheckIn.vue.js +136 -0
- package/dist/chat/page/customer-detail/CustomerDetail.vue.d.ts +7 -0
- package/dist/chat/page/customer-detail/CustomerDetail.vue.js +235 -0
- package/dist/chat/page/customer-detail/SubInformation.vue.d.ts +16 -0
- package/dist/chat/page/customer-detail/SubInformation.vue.js +102 -0
- package/dist/chat/page/error/Error.vue.d.ts +2 -0
- package/dist/chat/page/error/Error.vue.js +64 -0
- package/dist/chat/page/home/ChatList.vue.d.ts +20 -0
- package/dist/chat/page/home/ChatList.vue.js +380 -0
- package/dist/chat/page/home/ChatMessage.vue.d.ts +16 -0
- package/dist/chat/page/home/ChatMessage.vue.js +271 -0
- package/dist/chat/page/home/Home.vue.d.ts +14 -0
- package/dist/chat/page/home/Home.vue.js +327 -0
- package/dist/chat/page/home/HomeHeader.vue.d.ts +10 -0
- package/dist/chat/page/home/HomeHeader.vue.js +122 -0
- package/dist/chat/page/home/InputChat.vue.d.ts +19 -0
- package/dist/chat/page/home/InputChat.vue.js +226 -0
- package/dist/chat/page/home/NewCustomer.vue.d.ts +6 -0
- package/dist/chat/page/home/NewCustomer.vue.js +82 -0
- package/dist/components/ListenEvent.vue.d.ts +2 -0
- package/dist/components/ListenEvent.vue.js +45 -0
- package/dist/components/chat/ScrollEvent/ScrollEvent.vue.d.ts +22 -0
- package/dist/components/chat/ScrollEvent/ScrollEvent.vue.js +197 -0
- package/dist/components/chat/call/Calling.vue.d.ts +7 -0
- package/dist/components/chat/call/Calling.vue.js +291 -0
- package/dist/components/chat/card/CardCustomerDetail.vue.d.ts +13 -0
- package/dist/components/chat/card/CardCustomerDetail.vue.js +28 -0
- package/dist/components/chat/common/collapse/CollapseBase.vue.d.ts +20 -0
- package/dist/components/chat/common/collapse/CollapseBase.vue.js +59 -0
- package/dist/components/chat/common/input/InputSearch.vue.d.ts +16 -0
- package/dist/components/chat/common/input/InputSearch.vue.js +71 -0
- package/dist/components/chat/common/popover/PopoverBase.vue.d.ts +35 -0
- package/dist/components/chat/common/popover/PopoverBase.vue.js +148 -0
- package/dist/components/chat/common/spin/BaseSpin.vue.d.ts +2 -0
- package/dist/components/chat/common/spin/BaseSpin.vue.js +12 -0
- package/dist/components/chat/customer/Avatar.vue.d.ts +11 -0
- package/dist/components/chat/customer/Avatar.vue.js +79 -0
- package/dist/components/chat/layout/mobile/Footer.vue.d.ts +2 -0
- package/dist/components/chat/layout/mobile/Footer.vue.js +109 -0
- package/dist/components/common/CustomLoading.vue.d.ts +2 -0
- package/dist/components/common/CustomLoading.vue.js +19 -0
- package/dist/components/common/Notification/NotificationDescription.vue.d.ts +7 -0
- package/dist/components/common/Notification/NotificationDescription.vue.js +38 -0
- package/dist/components/common/button/ButtonBase.vue.d.ts +22 -0
- package/dist/components/common/button/ButtonBase.vue.js +78 -0
- package/dist/components/common/button/ButtonToggle.vue.d.ts +20 -0
- package/dist/components/common/button/ButtonToggle.vue.js +70 -0
- package/dist/components/common/checkbox/CCheckboxNumber.vue.d.ts +16 -0
- package/dist/components/common/checkbox/CCheckboxNumber.vue.js +48 -0
- package/dist/components/common/collapse/BaseCollapse.vue.d.ts +12 -0
- package/dist/components/common/collapse/BaseCollapse.vue.js +36 -0
- package/dist/components/common/collapse/BaseCollapseItem.vue.d.ts +4 -0
- package/dist/components/common/collapse/BaseCollapseItem.vue.js +22 -0
- package/dist/components/common/drawer/DrawerBase.vue.d.ts +39 -0
- package/dist/components/common/drawer/DrawerBase.vue.js +126 -0
- package/dist/components/common/dropdown/DropdownBase.vue.d.ts +21 -0
- package/dist/components/common/dropdown/DropdownBase.vue.js +91 -0
- package/dist/components/common/input/CInputSearch.vue.d.ts +14 -0
- package/dist/components/common/input/CInputSearch.vue.js +62 -0
- package/dist/components/common/modal/ModalBase.vue.d.ts +35 -0
- package/dist/components/common/modal/ModalBase.vue.js +164 -0
- package/dist/components/common/popover/PopoverBase.vue.d.ts +3 -0
- package/dist/components/common/popover/PopoverBase.vue.js +36 -0
- package/dist/components/common/slider/BaseSlider.vue.d.ts +11 -0
- package/dist/components/common/slider/BaseSlider.vue.js +70 -0
- package/dist/components/common/spin/CSpin.vue.d.ts +9 -0
- package/dist/components/common/spin/CSpin.vue.js +41 -0
- package/dist/components/common/tooltip/TooltipBase.vue.d.ts +2 -0
- package/dist/components/common/tooltip/TooltipBase.vue.js +8 -0
- package/dist/components/layout/Blank.vue.d.ts +9 -0
- package/dist/components/layout/Blank.vue.js +19 -0
- package/dist/components/layout/Default.vue.d.ts +9 -0
- package/dist/components/layout/Default.vue.js +21 -0
- package/dist/components/modal/Confirm.vue.d.ts +2 -0
- package/dist/components/modal/Confirm.vue.js +164 -0
- package/dist/components/ui/button/CButton.vue.d.ts +19 -0
- package/dist/components/ui/button/CButton.vue.js +49 -0
- package/dist/components/ui/button/c-button.d.ts +7 -0
- package/dist/components/ui/button/c-button.js +26 -0
- package/dist/components/ui/checkbox/Checkbox.vue.d.ts +18 -0
- package/dist/components/ui/checkbox/Checkbox.vue.js +79 -0
- package/dist/components/ui/checkbox/index.d.ts +1 -0
- package/dist/components/ui/checkbox/index.js +1 -0
- package/dist/components/ui/collapsible/Collapsible.vue.d.ts +16 -0
- package/dist/components/ui/collapsible/Collapsible.vue.js +47 -0
- package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +10 -0
- package/dist/components/ui/collapsible/CollapsibleContent.vue.js +41 -0
- package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +10 -0
- package/dist/components/ui/collapsible/CollapsibleTrigger.vue.js +35 -0
- package/dist/components/ui/collapsible/index.d.ts +3 -0
- package/dist/components/ui/collapsible/index.js +3 -0
- package/dist/components/ui/dialog/Dialog.vue.d.ts +14 -0
- package/dist/components/ui/dialog/Dialog.vue.js +42 -0
- package/dist/components/ui/dialog/DialogClose.vue.d.ts +10 -0
- package/dist/components/ui/dialog/DialogClose.vue.js +35 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +29 -0
- package/dist/components/ui/dialog/DialogContent.vue.js +84 -0
- package/dist/components/ui/dialog/DialogDescription.vue.d.ts +14 -0
- package/dist/components/ui/dialog/DialogDescription.vue.js +43 -0
- package/dist/components/ui/dialog/DialogFooter.vue.d.ts +13 -0
- package/dist/components/ui/dialog/DialogFooter.vue.js +26 -0
- package/dist/components/ui/dialog/DialogHeader.vue.d.ts +13 -0
- package/dist/components/ui/dialog/DialogHeader.vue.js +26 -0
- package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +30 -0
- package/dist/components/ui/dialog/DialogScrollContent.vue.js +99 -0
- package/dist/components/ui/dialog/DialogTitle.vue.d.ts +14 -0
- package/dist/components/ui/dialog/DialogTitle.vue.js +43 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +10 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.js +35 -0
- package/dist/components/ui/dialog/index.d.ts +9 -0
- package/dist/components/ui/dialog/index.js +9 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +26 -0
- package/dist/components/ui/drawer/Drawer.vue.js +48 -0
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +33 -0
- package/dist/components/ui/drawer/DrawerContent.vue.js +81 -0
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +14 -0
- package/dist/components/ui/drawer/DrawerDescription.vue.js +42 -0
- package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +13 -0
- package/dist/components/ui/drawer/DrawerFooter.vue.js +26 -0
- package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +13 -0
- package/dist/components/ui/drawer/DrawerHeader.vue.js +26 -0
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +7 -0
- package/dist/components/ui/drawer/DrawerOverlay.vue.js +37 -0
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +14 -0
- package/dist/components/ui/drawer/DrawerTitle.vue.js +42 -0
- package/dist/components/ui/drawer/index.d.ts +8 -0
- package/dist/components/ui/drawer/index.js +8 -0
- package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/DropdownMenu.vue.js +41 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +20 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.js +79 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +28 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.js +61 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +10 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.js +35 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +15 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.js +43 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +15 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.js +43 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.js +41 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.js +80 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.js +37 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +13 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.js +26 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.js +41 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +30 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.js +46 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.js +58 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +10 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.js +41 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
- package/dist/components/ui/dropdown-menu/index.js +15 -0
- package/dist/components/ui/popover/Popover.vue.d.ts +14 -0
- package/dist/components/ui/popover/Popover.vue.js +41 -0
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +28 -0
- package/dist/components/ui/popover/PopoverContent.vue.js +60 -0
- package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +10 -0
- package/dist/components/ui/popover/PopoverTrigger.vue.js +35 -0
- package/dist/components/ui/popover/index.d.ts +3 -0
- package/dist/components/ui/popover/index.js +3 -0
- package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +18 -0
- package/dist/components/ui/radio-group/RadioGroup.vue.js +46 -0
- package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +7 -0
- package/dist/components/ui/radio-group/RadioGroupItem.vue.js +71 -0
- package/dist/components/ui/radio-group/index.d.ts +2 -0
- package/dist/components/ui/radio-group/index.js +2 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +13 -0
- package/dist/components/ui/slider/Slider.vue.js +155 -0
- package/dist/components/ui/slider/index.d.ts +1 -0
- package/dist/components/ui/slider/index.js +1 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +18 -0
- package/dist/components/ui/switch/Switch.vue.js +61 -0
- package/dist/components/ui/switch/index.d.ts +1 -0
- package/dist/components/ui/switch/index.js +1 -0
- package/dist/composable/useCallHelper.d.ts +23 -0
- package/dist/composable/useCallHelper.js +170 -0
- package/dist/composable/useInitData.d.ts +11 -0
- package/dist/composable/useInitData.js +84 -0
- package/dist/composable/useModalConfirm.d.ts +5 -0
- package/dist/composable/useModalConfirm.js +39 -0
- package/dist/constant/color.d.ts +22 -0
- package/dist/constant/color.js +43 -0
- package/dist/constant/datetime.d.ts +5 -0
- package/dist/constant/datetime.js +5 -0
- package/dist/constant/general.d.ts +8 -0
- package/dist/constant/general.js +9 -0
- package/dist/constant/message.d.ts +8 -0
- package/dist/constant/message.js +8 -0
- package/dist/constant/mqtt.d.ts +4 -0
- package/dist/constant/mqtt.js +11 -0
- package/dist/constant/user.d.ts +8 -0
- package/dist/constant/user.js +9 -0
- package/dist/go-chat.es.js +64024 -2699
- package/dist/go-chat.umd.js +15 -3
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +5 -0
- package/dist/plugins/axios-gci.d.ts +3 -0
- package/dist/plugins/axios-gci.js +25 -0
- package/dist/plugins/axios.d.ts +3 -0
- package/dist/plugins/axios.js +85 -0
- package/dist/plugins/mqtt.d.ts +10 -0
- package/dist/plugins/mqtt.js +128 -0
- package/dist/plugins/sdk.d.ts +19 -0
- package/dist/plugins/sdk.js +83 -0
- package/dist/plugins/websocket.d.ts +4 -0
- package/dist/plugins/websocket.js +65 -0
- package/dist/style.css +1 -1
- package/dist/types/chat/user.d.ts +88 -0
- package/dist/types/chat/user.js +1 -0
- package/dist/types/conversation.d.ts +18 -0
- package/dist/types/conversation.js +1 -0
- package/dist/utils/chat/auth.d.ts +45 -0
- package/dist/utils/chat/auth.js +51 -0
- package/dist/utils/chat/call.d.ts +5 -0
- package/dist/utils/chat/call.js +61 -0
- package/dist/utils/chat/chat-router.d.ts +3 -0
- package/dist/utils/chat/chat-router.js +9 -0
- package/dist/utils/chat/conversation.d.ts +3 -0
- package/dist/utils/chat/conversation.js +7 -0
- package/dist/utils/chat/message.d.ts +17 -0
- package/dist/utils/chat/message.js +42 -0
- package/dist/utils/chat/user.d.ts +193 -0
- package/dist/utils/chat/user.js +33 -0
- package/dist/utils/debounce.d.ts +1 -0
- package/dist/utils/debounce.js +9 -0
- package/dist/utils/json.d.ts +2 -0
- package/dist/utils/json.js +18 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.js +5 -0
- package/dist/utils/string-helper.d.ts +1 -0
- package/dist/utils/string-helper.js +27 -0
- package/package.json +8 -7
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
const instance = axios.create({
|
|
3
|
+
timeout: 20000,
|
|
4
|
+
headers: {
|
|
5
|
+
'Content-Type': 'application/json'
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
export const setAxiosGciInstance = (token, domain, id) => {
|
|
9
|
+
instance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
|
|
10
|
+
instance.defaults.baseURL = domain;
|
|
11
|
+
instance.defaults.headers.common['G-ClientID'] = id || '';
|
|
12
|
+
};
|
|
13
|
+
instance.interceptors.response.use((response) => {
|
|
14
|
+
console.log(response);
|
|
15
|
+
const data = response?.data;
|
|
16
|
+
if (data?.status == 'OK' && data?.result?.status == 'OK' && data?.result?.data) {
|
|
17
|
+
return Promise.resolve(data?.result?.data);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return Promise.reject(data?.message ?? 'Error');
|
|
21
|
+
}
|
|
22
|
+
}, async (error) => {
|
|
23
|
+
return Promise.reject(error.response?.data || error);
|
|
24
|
+
});
|
|
25
|
+
export default instance;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
const baseURL = 'https://go-chat.dev01.dtsmart.dev/';
|
|
3
|
+
// const baseURL = 'http://192.168.1.152:8085/'
|
|
4
|
+
const instance = axios.create({
|
|
5
|
+
baseURL,
|
|
6
|
+
timeout: 20000,
|
|
7
|
+
headers: {
|
|
8
|
+
'Content-Type': 'application/json'
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export const setAxiosInstance = (token, domain) => {
|
|
12
|
+
instance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
|
|
13
|
+
instance.defaults.baseURL = domain || baseURL;
|
|
14
|
+
};
|
|
15
|
+
instance.interceptors.request.use((config) => {
|
|
16
|
+
const token = config?.token || localStorage.getItem('chat_token');
|
|
17
|
+
if (token) {
|
|
18
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
19
|
+
}
|
|
20
|
+
return config;
|
|
21
|
+
}, (error) => Promise.reject(error));
|
|
22
|
+
let isRefreshing = false;
|
|
23
|
+
let failedQueue = [];
|
|
24
|
+
const processQueue = (error, token = null) => {
|
|
25
|
+
failedQueue.forEach((prom) => {
|
|
26
|
+
if (token) {
|
|
27
|
+
prom.resolve(token);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
prom.reject(error);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
failedQueue = [];
|
|
34
|
+
};
|
|
35
|
+
instance.interceptors.response.use((response) => {
|
|
36
|
+
const data = response?.data;
|
|
37
|
+
if (data.files) {
|
|
38
|
+
return Promise.resolve(data.files);
|
|
39
|
+
}
|
|
40
|
+
if (data?.status && data?.data) {
|
|
41
|
+
return Promise.resolve(data.data);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return Promise.reject(data?.messages ?? 'Error');
|
|
45
|
+
}
|
|
46
|
+
}, async (error) => {
|
|
47
|
+
const originalRequest = error.config;
|
|
48
|
+
if (error.response?.status === 403 && !originalRequest._retry) {
|
|
49
|
+
originalRequest._retry = true;
|
|
50
|
+
if (isRefreshing) {
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
failedQueue.push({
|
|
53
|
+
resolve: (token) => {
|
|
54
|
+
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
55
|
+
resolve(instance(originalRequest));
|
|
56
|
+
},
|
|
57
|
+
reject: (err) => reject(err)
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
isRefreshing = true;
|
|
62
|
+
const authStore = null;
|
|
63
|
+
try {
|
|
64
|
+
const body = {
|
|
65
|
+
refresh_token: localStorage.getItem('refresh_token') || ''
|
|
66
|
+
};
|
|
67
|
+
const res = await authStore.refreshToken(body);
|
|
68
|
+
const newToken = res.data.token;
|
|
69
|
+
localStorage.setItem('chat_token', newToken);
|
|
70
|
+
instance.defaults.headers.common['Authorization'] = 'Bearer ' + newToken;
|
|
71
|
+
console.log(newToken, 'asgfasf');
|
|
72
|
+
processQueue(null, newToken);
|
|
73
|
+
return instance(originalRequest);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
processQueue(err, null);
|
|
77
|
+
return Promise.reject(err);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
isRefreshing = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return Promise.reject(error.response?.data || error);
|
|
84
|
+
});
|
|
85
|
+
export default instance;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference path="../../env.d.ts" />
|
|
2
|
+
import mqtt from 'mqtt/dist/mqtt.min';
|
|
3
|
+
export declare const connectMqtt: () => Promise<void>;
|
|
4
|
+
export declare const disconnectMqtt: () => void;
|
|
5
|
+
export declare const subscribeToTopic: (topic: string) => void;
|
|
6
|
+
export declare const unsubscribeFromTopic: (topic: string) => void;
|
|
7
|
+
export declare const publishMessage: (topic: string, payload: any) => void;
|
|
8
|
+
export declare const addHandleMqttMessage: (key: string, topic: string, callBack: any) => void;
|
|
9
|
+
export declare const removeHandleMqttMessage: (key: string) => void;
|
|
10
|
+
export declare const getMqttInstance: () => mqtt.MqttClient | null;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import mqtt from 'mqtt/dist/mqtt.min';
|
|
2
|
+
const mqttOptions = { qos: 1, retain: false };
|
|
3
|
+
// const mqttClient = ref<MqttClient | null>(null)
|
|
4
|
+
let mqttClient = null;
|
|
5
|
+
const subscribedTopics = new Set();
|
|
6
|
+
let dataCallBack = [];
|
|
7
|
+
export const connectMqtt = () => {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
console.log(mqttClient);
|
|
10
|
+
if (mqttClient && mqttClient?.connected) {
|
|
11
|
+
console.log('MQTT already connected');
|
|
12
|
+
return resolve();
|
|
13
|
+
}
|
|
14
|
+
const userInfo = JSON.parse(localStorage.getItem('user') || '{}');
|
|
15
|
+
const clientId = userInfo?.id;
|
|
16
|
+
const MQTT_OPTIONS = {
|
|
17
|
+
clientId: `${clientId}_${Date.now()}_${Math.floor(Math.random() * 1000)}`,
|
|
18
|
+
host: 'mqtt-digital-signage.dev01.dtsmart.dev',
|
|
19
|
+
port: 443,
|
|
20
|
+
protocol: 'wss',
|
|
21
|
+
username: 'admin123',
|
|
22
|
+
password: 'admin123',
|
|
23
|
+
clean: true,
|
|
24
|
+
reconnectPeriod: 1000,
|
|
25
|
+
path: '/mqtt'
|
|
26
|
+
};
|
|
27
|
+
const { host, port, path, ...options } = MQTT_OPTIONS;
|
|
28
|
+
const connectUrl = `wss://${host}:${port}${path}`;
|
|
29
|
+
mqttClient = mqtt.connect(connectUrl, options);
|
|
30
|
+
mqttClient?.on('connect', () => {
|
|
31
|
+
console.log('MQTT Connected Successfully');
|
|
32
|
+
subscribedTopics.forEach((topic) => mqttClient?.subscribe(topic));
|
|
33
|
+
mqttClient?.on('message', (topic, message) => {
|
|
34
|
+
try {
|
|
35
|
+
let data = message;
|
|
36
|
+
if (message instanceof Uint8Array) {
|
|
37
|
+
const decoder = new TextDecoder('utf-8');
|
|
38
|
+
data = JSON.parse(decoder.decode(message));
|
|
39
|
+
}
|
|
40
|
+
dataCallBack
|
|
41
|
+
.filter((e) => e.topic === topic)
|
|
42
|
+
.forEach((e) => {
|
|
43
|
+
e.callBack(topic, data);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.error('Error parsing message:', e);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
resolve();
|
|
51
|
+
});
|
|
52
|
+
mqttClient?.on('close', () => {
|
|
53
|
+
console.log('MQTT Disconnected');
|
|
54
|
+
});
|
|
55
|
+
mqttClient?.on('error', (err) => {
|
|
56
|
+
console.error('MQTT Error:', err);
|
|
57
|
+
reject(err);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
export const disconnectMqtt = () => {
|
|
62
|
+
if (mqttClient) {
|
|
63
|
+
mqttClient?.end(false, {}, () => {
|
|
64
|
+
console.log('MQTT Disconnected');
|
|
65
|
+
mqttClient = null;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
export const subscribeToTopic = (topic) => {
|
|
70
|
+
if (subscribedTopics.has(topic)) {
|
|
71
|
+
console.log(`Already subscribed to ${topic}`);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (mqttClient?.connected || true) {
|
|
75
|
+
mqttClient?.subscribe(topic, mqttOptions, (err) => {
|
|
76
|
+
if (!err) {
|
|
77
|
+
subscribedTopics.add(topic);
|
|
78
|
+
console.log(`Subscribed to ${topic}`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.error(`Failed to subscribe ${topic}`, err);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
export const unsubscribeFromTopic = (topic) => {
|
|
87
|
+
if (mqttClient?.connected || true) {
|
|
88
|
+
mqttClient?.unsubscribe(topic, (err) => {
|
|
89
|
+
if (!err) {
|
|
90
|
+
subscribedTopics.delete(topic);
|
|
91
|
+
console.log(`Unsubscribed from ${topic}`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
console.error(`Failed to unsubscribe ${topic}`, err);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
subscribedTopics.delete(topic);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
export const publishMessage = (topic, payload) => {
|
|
103
|
+
if (mqttClient?.connected && payload) {
|
|
104
|
+
const message = typeof payload !== 'string' ? JSON.stringify(payload) : payload;
|
|
105
|
+
mqttClient?.publish(topic, message, { qos: 1, retain: false }, (err) => {
|
|
106
|
+
if (!err) {
|
|
107
|
+
// console.log(`Published message to ${topic}`)
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.error(`Failed to publish message to ${topic}`, err);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
console.warn('MQTT not connected, cannot publish');
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
export const addHandleMqttMessage = (key, topic, callBack) => {
|
|
119
|
+
removeHandleMqttMessage(key);
|
|
120
|
+
dataCallBack.push({ key, callBack, topic });
|
|
121
|
+
};
|
|
122
|
+
export const removeHandleMqttMessage = (key) => {
|
|
123
|
+
const index = dataCallBack.findIndex((e) => e.key === key);
|
|
124
|
+
if (index > -1) {
|
|
125
|
+
dataCallBack.splice(index, 1);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
export const getMqttInstance = () => mqttClient;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GapMiniAppSdk } from 'gap-miniapp-sdk';
|
|
2
|
+
declare const baseSdk: import("gap-nodejs-sdk/dist/api/base_api").default;
|
|
3
|
+
declare const gapMiniAppSdk: {
|
|
4
|
+
getInstance: () => GapMiniAppSdk;
|
|
5
|
+
getAccessToken: () => Promise<{
|
|
6
|
+
domain: string;
|
|
7
|
+
gClient: string;
|
|
8
|
+
token: string;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
declare const sdkInit: (data: {
|
|
12
|
+
id?: string;
|
|
13
|
+
token?: string;
|
|
14
|
+
domain?: string;
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
status: boolean;
|
|
17
|
+
tenant_error?: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
export { sdkInit, gapMiniAppSdk, baseSdk };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import Gap, { GapApiVersion } from 'gap-nodejs-sdk';
|
|
2
|
+
import { GapMiniAppSdk } from 'gap-miniapp-sdk';
|
|
3
|
+
import logger from '../utils/logger';
|
|
4
|
+
import { loginTenant, setDataLogin } from '../utils/chat/auth';
|
|
5
|
+
import { setAxiosGciInstance } from '../plugins/axios-gci';
|
|
6
|
+
const baseSdk = new Gap.BaseApi(GapApiVersion.V1);
|
|
7
|
+
const gapMiniAppSdk = (function () {
|
|
8
|
+
let instance;
|
|
9
|
+
// let domain = '';
|
|
10
|
+
// let gClient = '';
|
|
11
|
+
// let token = '';
|
|
12
|
+
// if (process.env.NODE_ENV === "development") {
|
|
13
|
+
// domain = import.meta.env.VITE_DOMAIN;
|
|
14
|
+
// gClient = import.meta.env.VITE_GCLIENT_ID;
|
|
15
|
+
// token = import.meta.env.VITE_TOKEN;
|
|
16
|
+
// }
|
|
17
|
+
function createInstance() {
|
|
18
|
+
return new GapMiniAppSdk(logger);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
getInstance: function () {
|
|
22
|
+
if (!instance) {
|
|
23
|
+
instance = createInstance();
|
|
24
|
+
}
|
|
25
|
+
return instance;
|
|
26
|
+
},
|
|
27
|
+
getAccessToken: async function () {
|
|
28
|
+
let domain = '';
|
|
29
|
+
let gClient = '';
|
|
30
|
+
let token = '';
|
|
31
|
+
try {
|
|
32
|
+
let userAgent;
|
|
33
|
+
if (gapMiniAppSdk.getInstance().detectPlatform()) {
|
|
34
|
+
userAgent = gapMiniAppSdk.getInstance().detectPlatform();
|
|
35
|
+
}
|
|
36
|
+
if (userAgent) {
|
|
37
|
+
gapMiniAppSdk.getInstance().setPlatformExecutor(userAgent);
|
|
38
|
+
const response = await gapMiniAppSdk.getInstance().getAccessToken();
|
|
39
|
+
if (response &&
|
|
40
|
+
typeof response.token !== 'undefined' &&
|
|
41
|
+
response.token != '') {
|
|
42
|
+
domain = response.domain;
|
|
43
|
+
gClient = response.gClientId;
|
|
44
|
+
token = response.token;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error(error);
|
|
50
|
+
}
|
|
51
|
+
return { domain, gClient, token };
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
})();
|
|
55
|
+
const sdkInit = (data) => {
|
|
56
|
+
return new Promise(async (resolve, reject) => {
|
|
57
|
+
let status = false;
|
|
58
|
+
try {
|
|
59
|
+
let { domain, gClient, token } = await gapMiniAppSdk.getAccessToken();
|
|
60
|
+
domain = data.domain || domain || '';
|
|
61
|
+
gClient = data.id || gClient || '';
|
|
62
|
+
token = data.token || token || '';
|
|
63
|
+
if (!domain || !gClient || !token) {
|
|
64
|
+
resolve({ status, tenant_error: true });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
setAxiosGciInstance(token, domain, gClient);
|
|
68
|
+
await loginTenant({ tenant_id: gClient });
|
|
69
|
+
status = true;
|
|
70
|
+
setDataLogin(gClient, token, domain);
|
|
71
|
+
localStorage.setItem('chat_id', gClient);
|
|
72
|
+
localStorage.setItem('chat_accessToken', token);
|
|
73
|
+
localStorage.setItem('chat_domain', domain);
|
|
74
|
+
resolve({ status });
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
resolve({ status, tenant_error: true });
|
|
78
|
+
console.error(error);
|
|
79
|
+
// reject(error)
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
export { sdkInit, gapMiniAppSdk, baseSdk };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { tryParseJson } from '../utils/json';
|
|
2
|
+
let socket = null;
|
|
3
|
+
let dataCallBack = [];
|
|
4
|
+
export function initWebSocket(server) {
|
|
5
|
+
// Create WebSocket connection.
|
|
6
|
+
socket = new WebSocket('wss://web-socket.dev01.dtsmart.dev');
|
|
7
|
+
// socket.addEventListener('open', (event: any) => {
|
|
8
|
+
// console.log('fffffff')
|
|
9
|
+
// socket.send('Hello Server!')
|
|
10
|
+
// })
|
|
11
|
+
//
|
|
12
|
+
// socket.addEventListener('message', (event: any) => {
|
|
13
|
+
// console.log('Message from server ', event.data)
|
|
14
|
+
// })
|
|
15
|
+
socket.onopen = (event) => {
|
|
16
|
+
console.log('Connected!');
|
|
17
|
+
};
|
|
18
|
+
socket.onmessage = (event) => {
|
|
19
|
+
const data = tryParseJson(event.data);
|
|
20
|
+
dataCallBack.forEach((e) => {
|
|
21
|
+
e.callBack(data);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
socket.onclose = (event) => {
|
|
25
|
+
console.log('Disconnected:', event.reason);
|
|
26
|
+
};
|
|
27
|
+
socket.onerror = (event) => {
|
|
28
|
+
console.error('Socket error:', event);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const socketSend = (data) => {
|
|
32
|
+
let request = typeof data == 'string' ? data : JSON.stringify(data);
|
|
33
|
+
socket.send(request);
|
|
34
|
+
};
|
|
35
|
+
export const getWebSocket = async () => {
|
|
36
|
+
const url = 'https://web-socket.dev01.dtsmart.dev/ws/connect';
|
|
37
|
+
try {
|
|
38
|
+
const response = await fetch(url, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
body: JSON.stringify({
|
|
41
|
+
clientId: 'test1'
|
|
42
|
+
}),
|
|
43
|
+
headers: {
|
|
44
|
+
Authorization: 'Bearer -Qixt-ZztiBA5Dxl-EIWG7f2TDhK-ZCj'
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
throw new Error(`Response status: ${response.status}`);
|
|
49
|
+
}
|
|
50
|
+
const result = await response.json();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error(error.message);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export const addHandleWebSK = (key, callBack) => {
|
|
57
|
+
removeHandleWebSK(key);
|
|
58
|
+
dataCallBack.push({ key, callBack });
|
|
59
|
+
};
|
|
60
|
+
export const removeHandleWebSK = (key) => {
|
|
61
|
+
const index = dataCallBack.findIndex((e) => e.key === key);
|
|
62
|
+
if (index > -1) {
|
|
63
|
+
dataCallBack.splice(index, 1);
|
|
64
|
+
}
|
|
65
|
+
};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap";[data-v-7dfd7567],[data-v-7dfd7567]:before,[data-v-7dfd7567]:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }[data-v-7dfd7567]::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }[data-v-7dfd7567],[data-v-7dfd7567]:before,[data-v-7dfd7567]:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}[data-v-7dfd7567]:before,[data-v-7dfd7567]:after{--tw-content: ""}html[data-v-7dfd7567],[data-v-7dfd7567]:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body[data-v-7dfd7567]{margin:0;line-height:inherit}hr[data-v-7dfd7567]{height:0;color:inherit;border-top-width:1px}abbr[data-v-7dfd7567]:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1[data-v-7dfd7567],h2[data-v-7dfd7567],h3[data-v-7dfd7567],h4[data-v-7dfd7567],h5[data-v-7dfd7567],h6[data-v-7dfd7567]{font-size:inherit;font-weight:inherit}a[data-v-7dfd7567]{color:inherit;text-decoration:inherit}b[data-v-7dfd7567],strong[data-v-7dfd7567]{font-weight:bolder}code[data-v-7dfd7567],kbd[data-v-7dfd7567],samp[data-v-7dfd7567],pre[data-v-7dfd7567]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small[data-v-7dfd7567]{font-size:80%}sub[data-v-7dfd7567],sup[data-v-7dfd7567]{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub[data-v-7dfd7567]{bottom:-.25em}sup[data-v-7dfd7567]{top:-.5em}table[data-v-7dfd7567]{text-indent:0;border-color:inherit;border-collapse:collapse}button[data-v-7dfd7567],input[data-v-7dfd7567],optgroup[data-v-7dfd7567],select[data-v-7dfd7567],textarea[data-v-7dfd7567]{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button[data-v-7dfd7567],select[data-v-7dfd7567]{text-transform:none}button[data-v-7dfd7567],input[data-v-7dfd7567]:where([type=button]),input[data-v-7dfd7567]:where([type=reset]),input[data-v-7dfd7567]:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}[data-v-7dfd7567]:-moz-focusring{outline:auto}[data-v-7dfd7567]:-moz-ui-invalid{box-shadow:none}progress[data-v-7dfd7567]{vertical-align:baseline}[data-v-7dfd7567]::-webkit-inner-spin-button,[data-v-7dfd7567]::-webkit-outer-spin-button{height:auto}[type=search][data-v-7dfd7567]{-webkit-appearance:textfield;outline-offset:-2px}[data-v-7dfd7567]::-webkit-search-decoration{-webkit-appearance:none}[data-v-7dfd7567]::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary[data-v-7dfd7567]{display:list-item}blockquote[data-v-7dfd7567],dl[data-v-7dfd7567],dd[data-v-7dfd7567],h1[data-v-7dfd7567],h2[data-v-7dfd7567],h3[data-v-7dfd7567],h4[data-v-7dfd7567],h5[data-v-7dfd7567],h6[data-v-7dfd7567],hr[data-v-7dfd7567],figure[data-v-7dfd7567],p[data-v-7dfd7567],pre[data-v-7dfd7567]{margin:0}fieldset[data-v-7dfd7567]{margin:0;padding:0}legend[data-v-7dfd7567]{padding:0}ol[data-v-7dfd7567],ul[data-v-7dfd7567],menu[data-v-7dfd7567]{list-style:none;margin:0;padding:0}dialog[data-v-7dfd7567]{padding:0}textarea[data-v-7dfd7567]{resize:vertical}input[data-v-7dfd7567]::-moz-placeholder,textarea[data-v-7dfd7567]::-moz-placeholder{opacity:1;color:#9ca3af}input[data-v-7dfd7567]::placeholder,textarea[data-v-7dfd7567]::placeholder{opacity:1;color:#9ca3af}button[data-v-7dfd7567],[role=button][data-v-7dfd7567]{cursor:pointer}[data-v-7dfd7567]:disabled{cursor:default}img[data-v-7dfd7567],svg[data-v-7dfd7567],video[data-v-7dfd7567],canvas[data-v-7dfd7567],audio[data-v-7dfd7567],iframe[data-v-7dfd7567],embed[data-v-7dfd7567],object[data-v-7dfd7567]{display:block;vertical-align:middle}img[data-v-7dfd7567],video[data-v-7dfd7567]{max-width:100%;height:auto}[hidden][data-v-7dfd7567]{display:none}[data-v-7dfd7567]{border-color:hsl(var(--border))}body[data-v-7dfd7567]{background-color:hsl(var(--background));color:hsl(var(--foreground))}.container[data-v-7dfd7567]{width:100%}@media (min-width: 640px){.container[data-v-7dfd7567]{max-width:640px}}@media (min-width: 768px){.container[data-v-7dfd7567]{max-width:768px}}@media (min-width: 1024px){.container[data-v-7dfd7567]{max-width:1024px}}@media (min-width: 1280px){.container[data-v-7dfd7567]{max-width:1280px}}@media (min-width: 1536px){.container[data-v-7dfd7567]{max-width:1536px}}.pointer-events-none[data-v-7dfd7567]{pointer-events:none}.visible[data-v-7dfd7567]{visibility:visible}.fixed[data-v-7dfd7567]{position:fixed}.absolute[data-v-7dfd7567]{position:absolute}.relative[data-v-7dfd7567]{position:relative}.inset-0[data-v-7dfd7567]{top:0;right:0;bottom:0;left:0}.inset-y-0[data-v-7dfd7567]{top:0;bottom:0}.bottom-0[data-v-7dfd7567]{bottom:0}.bottom-1\/2[data-v-7dfd7567]{bottom:50%}.left-0[data-v-7dfd7567]{left:0}.left-0\.5[data-v-7dfd7567]{left:.125rem}.left-1\/2[data-v-7dfd7567]{left:50%}.left-2[data-v-7dfd7567]{left:.5rem}.right-0[data-v-7dfd7567]{right:0}.top-0[data-v-7dfd7567]{top:0}.top-1\.5[data-v-7dfd7567]{top:.375rem}.top-1\/2[data-v-7dfd7567]{top:50%}.z-50[data-v-7dfd7567]{z-index:50}.m-auto[data-v-7dfd7567]{margin:auto}.-mx-1[data-v-7dfd7567]{margin-left:-.25rem;margin-right:-.25rem}.my-1[data-v-7dfd7567]{margin-top:.25rem;margin-bottom:.25rem}.my-8[data-v-7dfd7567]{margin-top:2rem;margin-bottom:2rem}.mb-0[data-v-7dfd7567]{margin-bottom:0}.mb-0\.5[data-v-7dfd7567]{margin-bottom:.125rem}.mb-1[data-v-7dfd7567]{margin-bottom:.25rem}.mb-2[data-v-7dfd7567]{margin-bottom:.5rem}.mb-3[data-v-7dfd7567]{margin-bottom:.75rem}.ml-auto[data-v-7dfd7567]{margin-left:auto}.mr-2[data-v-7dfd7567]{margin-right:.5rem}.mt-auto[data-v-7dfd7567]{margin-top:auto}.block[data-v-7dfd7567]{display:block}.\!inline-block[data-v-7dfd7567]{display:inline-block!important}.flex[data-v-7dfd7567]{display:flex}.inline-flex[data-v-7dfd7567]{display:inline-flex}.grid[data-v-7dfd7567]{display:grid}.hidden[data-v-7dfd7567]{display:none}.aspect-square[data-v-7dfd7567]{aspect-ratio:1 / 1}.h-2[data-v-7dfd7567]{height:.5rem}.h-2\.5[data-v-7dfd7567]{height:.625rem}.h-3\.5[data-v-7dfd7567]{height:.875rem}.h-4[data-v-7dfd7567]{height:1rem}.h-5[data-v-7dfd7567]{height:1.25rem}.h-6[data-v-7dfd7567]{height:1.5rem}.h-full[data-v-7dfd7567]{height:100%}.h-px[data-v-7dfd7567]{height:1px}.w-11[data-v-7dfd7567]{width:2.75rem}.w-2[data-v-7dfd7567]{width:.5rem}.w-2\.5[data-v-7dfd7567]{width:.625rem}.w-3\.5[data-v-7dfd7567]{width:.875rem}.w-4[data-v-7dfd7567]{width:1rem}.w-5[data-v-7dfd7567]{width:1.25rem}.w-6[data-v-7dfd7567]{width:1.5rem}.w-auto[data-v-7dfd7567]{width:auto}.w-fit[data-v-7dfd7567]{width:-moz-fit-content;width:fit-content}.w-full[data-v-7dfd7567]{width:100%}.min-w-32[data-v-7dfd7567]{min-width:8rem}.min-w-\[100px\][data-v-7dfd7567]{min-width:100px}.max-w-lg[data-v-7dfd7567]{max-width:32rem}.shrink-0[data-v-7dfd7567]{flex-shrink:0}.grow[data-v-7dfd7567]{flex-grow:1}.-translate-x-1\/2[data-v-7dfd7567]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2[data-v-7dfd7567]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2[data-v-7dfd7567]{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform[data-v-7dfd7567]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default[data-v-7dfd7567]{cursor:default}.cursor-pointer[data-v-7dfd7567]{cursor:pointer}.touch-none[data-v-7dfd7567]{touch-action:none}.select-none[data-v-7dfd7567]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize[data-v-7dfd7567]{resize:both}.flex-row-reverse[data-v-7dfd7567]{flex-direction:row-reverse}.flex-col[data-v-7dfd7567]{flex-direction:column}.flex-col-reverse[data-v-7dfd7567]{flex-direction:column-reverse}.place-content-center[data-v-7dfd7567]{place-content:center}.place-items-center[data-v-7dfd7567]{place-items:center}.items-center[data-v-7dfd7567]{align-items:center}.justify-center[data-v-7dfd7567]{justify-content:center}.justify-between[data-v-7dfd7567]{justify-content:space-between}.gap-1\.5[data-v-7dfd7567]{gap:.375rem}.gap-2[data-v-7dfd7567]{gap:.5rem}.gap-4[data-v-7dfd7567]{gap:1rem}.gap-y-1\.5[data-v-7dfd7567]{row-gap:.375rem}.overflow-hidden[data-v-7dfd7567]{overflow:hidden}.overflow-y-auto[data-v-7dfd7567]{overflow-y:auto}.rounded-\[8px\][data-v-7dfd7567]{border-radius:8px}.rounded-full[data-v-7dfd7567]{border-radius:9999px}.rounded-lg[data-v-7dfd7567]{border-radius:8px}.rounded-md[data-v-7dfd7567]{border-radius:calc(var(--radius) - 2px)}.rounded-sm[data-v-7dfd7567]{border-radius:calc(var(--radius) - 4px)}.rounded-xl[data-v-7dfd7567]{border-radius:.75rem}.rounded-t-\[10px\][data-v-7dfd7567]{border-top-left-radius:10px;border-top-right-radius:10px}.border[data-v-7dfd7567]{border-width:1px}.border-2[data-v-7dfd7567]{border-width:2px}.border-\[\#DDDDE8\][data-v-7dfd7567]{--tw-border-opacity: 1;border-color:rgb(221 221 232 / var(--tw-border-opacity))}.border-border[data-v-7dfd7567]{border-color:hsl(var(--border))}.border-danger[data-v-7dfd7567]{border-color:var(--color-error)}.border-primary[data-v-7dfd7567]{border-color:var(--color-primary)}.bg-black\/60[data-v-7dfd7567]{background-color:#0009}.bg-black\/80[data-v-7dfd7567]{background-color:#000c}.bg-danger[data-v-7dfd7567]{background-color:var(--color-error)}.bg-muted[data-v-7dfd7567]{background-color:hsl(var(--muted))}.bg-popover[data-v-7dfd7567]{background-color:hsl(var(--popover))}.bg-primary[data-v-7dfd7567]{background-color:var(--color-primary)}.bg-success[data-v-7dfd7567]{background-color:var(--color-success)}.bg-white[data-v-7dfd7567]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-1[data-v-7dfd7567]{padding:.25rem}.p-4[data-v-7dfd7567]{padding:1rem}.p-8[data-v-7dfd7567]{padding:2rem}.px-2[data-v-7dfd7567]{padding-left:.5rem;padding-right:.5rem}.py-1\.5[data-v-7dfd7567]{padding-top:.375rem;padding-bottom:.375rem}.py-10[data-v-7dfd7567]{padding-top:2.5rem;padding-bottom:2.5rem}.py-2[data-v-7dfd7567]{padding-top:.5rem;padding-bottom:.5rem}.pb-7[data-v-7dfd7567]{padding-bottom:1.75rem}.pl-10[data-v-7dfd7567]{padding-left:2.5rem}.pl-8[data-v-7dfd7567]{padding-left:2rem}.pr-2[data-v-7dfd7567]{padding-right:.5rem}.pt-4[data-v-7dfd7567]{padding-top:1rem}.text-center[data-v-7dfd7567]{text-align:center}.text-2xl[data-v-7dfd7567]{font-size:1.5rem}.text-6xl[data-v-7dfd7567]{font-size:4rem}.text-base[data-v-7dfd7567]{font-size:1rem}.text-lg[data-v-7dfd7567]{font-size:1.125rem}.text-sm[data-v-7dfd7567]{font-size:.875rem}.text-xs[data-v-7dfd7567]{font-size:.75rem}.font-medium[data-v-7dfd7567]{font-weight:500}.font-semibold[data-v-7dfd7567]{font-weight:600}.tracking-tight[data-v-7dfd7567]{letter-spacing:-.025em}.tracking-widest[data-v-7dfd7567]{letter-spacing:.1em}.text-blue[data-v-7dfd7567]{color:var(--color-blue)}.text-muted-foreground[data-v-7dfd7567]{color:hsl(var(--muted-foreground))}.text-popover-foreground[data-v-7dfd7567]{color:hsl(var(--popover-foreground))}.text-primary[data-v-7dfd7567]{color:var(--color-primary)}.text-white[data-v-7dfd7567]{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0[data-v-7dfd7567]{opacity:0}.opacity-60[data-v-7dfd7567]{opacity:.6}.shadow-3xl[data-v-7dfd7567]{--tw-shadow: 1px 1px 8px 0px #DEDEDE;--tw-shadow-colored: 1px 1px 8px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-custom[data-v-7dfd7567]{--tw-shadow: 0px 3.77749px 18.8874px rgba(0, 0, 0, .15);--tw-shadow-colored: 0px 3.77749px 18.8874px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none[data-v-7dfd7567]{outline:2px solid transparent;outline-offset:2px}.ring-0[data-v-7dfd7567]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background[data-v-7dfd7567]{--tw-ring-offset-color: hsl(var(--background))}.transition[data-v-7dfd7567]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-7dfd7567]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform[data-v-7dfd7567]{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200[data-v-7dfd7567]{transition-duration:.2s}@keyframes enter-7dfd7567{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit-7dfd7567{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200[data-v-7dfd7567]{animation-duration:.2s}.sc-full[data-v-7dfd7567]{width:100%;height:100%}.flex-center[data-v-7dfd7567]{display:flex;justify-content:center;align-items:center}.flex-col[data-v-7dfd7567]{flex-direction:column;display:flex}.hover\:bg-danger[data-v-7dfd7567]:hover{background-color:var(--color-error)}.hover\:bg-danger-hover[data-v-7dfd7567]:hover{background-color:var(--color-error_hover)}.hover\:bg-primary-hover[data-v-7dfd7567]:hover{background-color:var(--color-primary_hover)}.hover\:bg-success-hover[data-v-7dfd7567]:hover{background-color:var(--color-success_hover)}.hover\:text-white[data-v-7dfd7567]:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:duration-100[data-v-7dfd7567]:hover{transition-duration:.1s;animation-duration:.1s}.focus\:bg-accent[data-v-7dfd7567]:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground[data-v-7dfd7567]:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none[data-v-7dfd7567]:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none[data-v-7dfd7567]:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2[data-v-7dfd7567]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring[data-v-7dfd7567]:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2[data-v-7dfd7567]:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background[data-v-7dfd7567]:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none[data-v-7dfd7567]:disabled{pointer-events:none}.disabled\:cursor-not-allowed[data-v-7dfd7567]:disabled{cursor:not-allowed}.disabled\:opacity-50[data-v-7dfd7567]:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled][data-v-7dfd7567]{pointer-events:none}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical][data-v-7dfd7567]{height:100%}.data-\[orientation\=vertical\]\:w-2[data-orientation=vertical][data-v-7dfd7567]{width:.5rem}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical][data-v-7dfd7567]{width:100%}.data-\[state\=checked\]\:translate-x-5[data-state=checked][data-v-7dfd7567]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-1[data-state=unchecked][data-v-7dfd7567]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical][data-v-7dfd7567]{flex-direction:column}.data-\[state\=checked\]\:bg-primary[data-state=checked][data-v-7dfd7567]{background-color:var(--color-primary)}.data-\[state\=open\]\:bg-accent[data-state=open][data-v-7dfd7567]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-\[\#D1D1D1\][data-state=unchecked][data-v-7dfd7567]{--tw-bg-opacity: 1;background-color:rgb(209 209 209 / var(--tw-bg-opacity))}.data-\[disabled\]\:opacity-50[data-disabled][data-v-7dfd7567]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open][data-v-7dfd7567]{animation-name:enter-7dfd7567;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed][data-v-7dfd7567]{animation-name:exit-7dfd7567;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed][data-v-7dfd7567]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open][data-v-7dfd7567]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed][data-v-7dfd7567]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open][data-v-7dfd7567]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom][data-v-7dfd7567]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left][data-v-7dfd7567]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right][data-v-7dfd7567]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top][data-v-7dfd7567]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed][data-v-7dfd7567]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed][data-v-7dfd7567]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open][data-v-7dfd7567]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open][data-v-7dfd7567]{--tw-enter-translate-y: -48%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical][data-v-7dfd7567]{flex-direction:column;display:flex}@media (min-width: 640px){.sm\:flex-row[data-v-7dfd7567]{flex-direction:row}.sm\:justify-end[data-v-7dfd7567]{justify-content:flex-end}.sm\:gap-x-2[data-v-7dfd7567]{-moz-column-gap:.5rem;column-gap:.5rem}.sm\:rounded-lg[data-v-7dfd7567]{border-radius:8px}.sm\:text-left[data-v-7dfd7567]{text-align:left}}@media (min-width: 768px){.md\:block[data-v-7dfd7567]{display:block}.md\:w-full[data-v-7dfd7567]{width:100%}}.\[\&\>svg\]\:size-4>svg[data-v-7dfd7567]{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg[data-v-7dfd7567]{flex-shrink:0}.\[\&_\.loader\:\:before\]\:border-white .loader[data-v-7dfd7567]:before{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap";.loader[data-v-e1710a65]{width:48px;height:48px;border:5px solid var(--chat-color-primary);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation-e1710a65 .7s linear infinite}@keyframes rotation-e1710a65{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loader-line[data-v-eb1aab70]{width:100%;height:3px;overflow:hidden;background-color:#ddd;border-radius:20px}.loader-line[data-v-eb1aab70]:before{content:"";position:absolute;left:-50%;height:3px;width:40%;background-color:#4c70f0;animation:lineAnim-eb1aab70 1s linear infinite;border-radius:20px}@keyframes lineAnim-eb1aab70{0%{left:-40%}50%{left:20%;width:80%}to{left:100%;width:100%}}.v3-body-inner{scroll-behavior:smooth;scrollbar-color:#393d3f rgba(0,0,0,.1);scrollbar-width:thin}.v3-body-inner::-webkit-scrollbar{width:8px}.v3-body-inner::-webkit-scrollbar-track{background-color:transparent}.v3-body-inner::-webkit-scrollbar-thumb{display:none;background:#0000004d;border-radius:5px}.v3-body-inner:hover::-webkit-scrollbar-thumb{display:block}.v3-emoji-picker{height:320px;width:280px;box-shadow:0 2px 10px #0003;border-radius:10px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;text-align:left}.v3-emoji-picker *{box-sizing:border-box}.v3-emoji-picker .v3-header{padding:15px 15px 13px;border-bottom:1px solid}.v3-emoji-picker .v3-header .v3-groups{display:flex}.v3-emoji-picker .v3-header .v3-groups .v3-group{flex-grow:1;padding:0;margin:0;border:none;background:none;font-size:23px;cursor:pointer;position:relative;display:block;opacity:.7;transition:.2s}.v3-emoji-picker .v3-header .v3-groups .v3-group.v3-is-hidden{display:none}.v3-emoji-picker .v3-header .v3-groups .v3-group:first-child,.v3-emoji-picker .v3-header .v3-groups .v3-group:last-child{flex-grow:0}.v3-emoji-picker .v3-header .v3-groups .v3-group:hover{opacity:1}.v3-emoji-picker .v3-header .v3-groups .v3-group span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-header .v3-groups .v3-group span img{display:block;width:1em;height:auto}.v3-emoji-picker .v3-spacing{height:11px}.v3-emoji-picker .v3-search input{width:100%;display:block;height:26px;padding:0 10px;border:1px solid;border-radius:3px;font-size:12px;transition:.2s}.v3-emoji-picker .v3-search input:focus{outline:none}.v3-emoji-picker .v3-body{padding:0 0 15px 11px;min-height:0;flex-grow:1}.v3-emoji-picker .v3-body .v3-body-inner{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;height:100%;padding-right:11px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5{margin:0;top:0;padding:7px 0 3px 4px;z-index:2}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5.v3-sticky{position:sticky}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis{display:flex;font-size:18px;flex-wrap:wrap}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button{cursor:pointer;border:none;background:none;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;flex-basis:12.5%;max-width:12.5%;flex-grow:1;padding:0;font-size:22px;position:relative}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:after{content:"";width:100%;padding-bottom:100%}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{max-width:100%;padding:4px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span,.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{position:absolute;top:0;left:0;width:100%;height:100%}.v3-emoji-picker .v3-body .v3-body-inner.is-mac .v3-emojis button{font-family:"Apple Color Emoji"}.v3-emoji-picker .v3-footer{font-size:14px;border-top:1px solid #dddddd;padding:15px;display:flex;align-items:center;justify-content:space-between;position:relative}.v3-emoji-picker .v3-footer .v3-tone,.v3-emoji-picker .v3-footer .v3-foot-left{display:flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone img,.v3-emoji-picker .v3-footer .v3-foot-left img{width:20px;display:block}.v3-emoji-picker .v3-footer .v3-tone>span:first-child,.v3-emoji-picker .v3-footer .v3-foot-left>span:first-child{margin-right:6px}.v3-emoji-picker .v3-footer .v3-foot-left>span.v3-text{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v3-emoji-picker .v3-footer .v3-tone{border:none;padding:0;background:none;cursor:pointer;display:inline-flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone>span{display:inline-flex;vertical-align:top}.v3-emoji-picker .v3-footer .v3-tone .v3-text{font-size:13px}.v3-emoji-picker .v3-footer .v3-tone .v3-icon{display:inline-flex;height:15px;width:15px;vertical-align:middle;align-self:center;border:2px solid rgba(0,0,0,.2)}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-neutral{background-color:#ffd225}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fb{background-color:#ffdfbd}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fc{background-color:#e9c197}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fd{background-color:#c88e62}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fe{background-color:#a86637}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3ff{background-color:#60463a}.v3-emoji-picker .v3-footer .v3-tone .is-mac span{font-family:"Apple Color Emoji"}.v3-skin-tones{position:absolute;height:100%;width:60%;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;opacity:0;visibility:hidden;transition:.2s;border-radius:0 0 10px 10px}.v3-skin-tones.v3-is-open{opacity:1;visibility:visible}.v3-skin-tones .v3-skin-tone{display:inline-block;height:15px;width:25px;border:none;padding:0;cursor:pointer;transition:0ms}.v3-skin-tones .v3-skin-tone:hover{transform:scale(1.1);transition:.2s}.v3-skin-tones .v3-skin-tone-neutral{color:#ffd225;background-color:#ffd225}.v3-skin-tones .v3-skin-tone-1f3fb{color:#ffdfbd;background-color:#ffdfbd}.v3-skin-tones .v3-skin-tone-1f3fc{color:#e9c197;background-color:#e9c197}.v3-skin-tones .v3-skin-tone-1f3fd{color:#c88e62;background-color:#c88e62}.v3-skin-tones .v3-skin-tone-1f3fe{color:#a86637;background-color:#a86637}.v3-skin-tones .v3-skin-tone-1f3ff{color:#60463a;background-color:#60463a}.v3-input-emoji-picker *{box-sizing:border-box}.v3-input-emoji-picker .v3-input-picker-root{position:relative}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-input,.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{width:100%;height:40px;border:1px solid #999;padding-left:15px}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{min-height:80px;resize:vertical}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea+.v3-input-picker-wrap .v3-input-picker-icon{top:auto;bottom:5px}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon{display:inline-flex;position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:24px;border:none;background:none;padding:0 5px;cursor:pointer}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon img{display:block;width:1em;height:1em}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-emoji-picker{opacity:0;visibility:hidden;transition:.2s}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap.v3-picker-is-open .v3-emoji-picker{opacity:1;visibility:visible;z-index:999}.v3-emoji-picker{--v3-picker-bg: #ffffff;--v3-picker-fg: #000000;--v3-picker-border: #dddddd;--v3-picker-input-bg: var(--v3-picker-bg);--v3-picker-input-border: #cccccc;--v3-picker-input-focus-border: #000000;--v3-group-image-filter: none;--v3-picker-emoji-hover: #f7f7f7;background:var(--v3-picker-bg);color:var(--v3-picker-fg)}.v3-emoji-picker .v3-footer,.v3-emoji-picker .v3-header{border-color:var(--v3-picker-border)}.v3-emoji-picker .v3-groups{filter:var(--v3-group-image-filter)}.v3-emoji-picker .v3-tone{color:var(--v3-picker-fg)}.v3-emoji-picker .v3-search input{background:var(--v3-picker-input-bg);border-color:var(--v3-picker-input-border);color:inherit}.v3-emoji-picker .v3-search input:focus{border-color:var(--v3-picker-input-focus-border)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5,.v3-emoji-picker .v3-skin-tones{background:var(--v3-picker-bg)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:hover{background:var(--v3-picker-emoji-hover, #f7f7f7)}@media (prefers-color-scheme: dark){.v3-emoji-picker.v3-color-theme-auto{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}}.v3-emoji-picker.v3-color-theme-dark{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}[data-v-6183f7a3],[data-v-6183f7a3]:before,[data-v-6183f7a3]:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }[data-v-6183f7a3]::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }[data-v-6183f7a3],[data-v-6183f7a3]:before,[data-v-6183f7a3]:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}[data-v-6183f7a3]:before,[data-v-6183f7a3]:after{--tw-content: ""}html[data-v-6183f7a3],[data-v-6183f7a3]:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body[data-v-6183f7a3]{margin:0;line-height:inherit}hr[data-v-6183f7a3]{height:0;color:inherit;border-top-width:1px}abbr[data-v-6183f7a3]:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1[data-v-6183f7a3],h2[data-v-6183f7a3],h3[data-v-6183f7a3],h4[data-v-6183f7a3],h5[data-v-6183f7a3],h6[data-v-6183f7a3]{font-size:inherit;font-weight:inherit}a[data-v-6183f7a3]{color:inherit;text-decoration:inherit}b[data-v-6183f7a3],strong[data-v-6183f7a3]{font-weight:bolder}code[data-v-6183f7a3],kbd[data-v-6183f7a3],samp[data-v-6183f7a3],pre[data-v-6183f7a3]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small[data-v-6183f7a3]{font-size:80%}sub[data-v-6183f7a3],sup[data-v-6183f7a3]{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub[data-v-6183f7a3]{bottom:-.25em}sup[data-v-6183f7a3]{top:-.5em}table[data-v-6183f7a3]{text-indent:0;border-color:inherit;border-collapse:collapse}button[data-v-6183f7a3],input[data-v-6183f7a3],optgroup[data-v-6183f7a3],select[data-v-6183f7a3],textarea[data-v-6183f7a3]{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button[data-v-6183f7a3],select[data-v-6183f7a3]{text-transform:none}button[data-v-6183f7a3],input[data-v-6183f7a3]:where([type=button]),input[data-v-6183f7a3]:where([type=reset]),input[data-v-6183f7a3]:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}[data-v-6183f7a3]:-moz-focusring{outline:auto}[data-v-6183f7a3]:-moz-ui-invalid{box-shadow:none}progress[data-v-6183f7a3]{vertical-align:baseline}[data-v-6183f7a3]::-webkit-inner-spin-button,[data-v-6183f7a3]::-webkit-outer-spin-button{height:auto}[type=search][data-v-6183f7a3]{-webkit-appearance:textfield;outline-offset:-2px}[data-v-6183f7a3]::-webkit-search-decoration{-webkit-appearance:none}[data-v-6183f7a3]::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary[data-v-6183f7a3]{display:list-item}blockquote[data-v-6183f7a3],dl[data-v-6183f7a3],dd[data-v-6183f7a3],h1[data-v-6183f7a3],h2[data-v-6183f7a3],h3[data-v-6183f7a3],h4[data-v-6183f7a3],h5[data-v-6183f7a3],h6[data-v-6183f7a3],hr[data-v-6183f7a3],figure[data-v-6183f7a3],p[data-v-6183f7a3],pre[data-v-6183f7a3]{margin:0}fieldset[data-v-6183f7a3]{margin:0;padding:0}legend[data-v-6183f7a3]{padding:0}ol[data-v-6183f7a3],ul[data-v-6183f7a3],menu[data-v-6183f7a3]{list-style:none;margin:0;padding:0}dialog[data-v-6183f7a3]{padding:0}textarea[data-v-6183f7a3]{resize:vertical}input[data-v-6183f7a3]::-moz-placeholder,textarea[data-v-6183f7a3]::-moz-placeholder{opacity:1;color:#9ca3af}input[data-v-6183f7a3]::placeholder,textarea[data-v-6183f7a3]::placeholder{opacity:1;color:#9ca3af}button[data-v-6183f7a3],[role=button][data-v-6183f7a3]{cursor:pointer}[data-v-6183f7a3]:disabled{cursor:default}img[data-v-6183f7a3],svg[data-v-6183f7a3],video[data-v-6183f7a3],canvas[data-v-6183f7a3],audio[data-v-6183f7a3],iframe[data-v-6183f7a3],embed[data-v-6183f7a3],object[data-v-6183f7a3]{display:block;vertical-align:middle}img[data-v-6183f7a3],video[data-v-6183f7a3]{max-width:100%;height:auto}[hidden][data-v-6183f7a3]{display:none}.container[data-v-6183f7a3]{width:100%}@media (min-width: 640px){.container[data-v-6183f7a3]{max-width:640px}}@media (min-width: 768px){.container[data-v-6183f7a3]{max-width:768px}}@media (min-width: 1024px){.container[data-v-6183f7a3]{max-width:1024px}}@media (min-width: 1280px){.container[data-v-6183f7a3]{max-width:1280px}}@media (min-width: 1536px){.container[data-v-6183f7a3]{max-width:1536px}}.chat-box-white[data-v-6183f7a3]{border-radius:1.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));box-shadow:0 4px 10px #e9e9e940}.chat-padding-page[data-v-6183f7a3]{padding:1rem 2.25rem}.chat-mobile .chat-padding-page[data-v-6183f7a3]{padding-left:1rem;padding-right:1rem}.chat-input[data-v-6183f7a3]{border-radius:99px;outline:2px solid transparent;outline-offset:2px}.chat-input[data-v-6183f7a3]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.chat-input[data-v-6183f7a3]::placeholder{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.chat-input[data-v-6183f7a3]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.pointer-events-none[data-v-6183f7a3]{pointer-events:none}.visible[data-v-6183f7a3]{visibility:visible}.fixed[data-v-6183f7a3]{position:fixed}.absolute[data-v-6183f7a3]{position:absolute}.relative[data-v-6183f7a3]{position:relative}.inset-0[data-v-6183f7a3]{top:0;right:0;bottom:0;left:0}.inset-y-0[data-v-6183f7a3]{top:0;bottom:0}.bottom-0[data-v-6183f7a3]{bottom:0}.bottom-1\/2[data-v-6183f7a3]{bottom:50%}.bottom-6[data-v-6183f7a3]{bottom:1.5rem}.left-0[data-v-6183f7a3]{left:0}.left-0\.5[data-v-6183f7a3]{left:.125rem}.left-1\/2[data-v-6183f7a3]{left:50%}.left-2[data-v-6183f7a3]{left:.5rem}.left-4[data-v-6183f7a3]{left:1rem}.left-\[-20px\][data-v-6183f7a3]{left:-20px}.right-0[data-v-6183f7a3]{right:0}.top-0[data-v-6183f7a3]{top:0}.top-1\.5[data-v-6183f7a3]{top:.375rem}.top-1\/2[data-v-6183f7a3]{top:50%}.top-2[data-v-6183f7a3]{top:.5rem}.z-50[data-v-6183f7a3]{z-index:50}.z-\[2000\][data-v-6183f7a3]{z-index:2000}.m-auto[data-v-6183f7a3]{margin:auto}.-mx-1[data-v-6183f7a3]{margin-left:-.25rem;margin-right:-.25rem}.mx-6[data-v-6183f7a3]{margin-left:1.5rem;margin-right:1.5rem}.mx-auto[data-v-6183f7a3]{margin-left:auto;margin-right:auto}.my-1[data-v-6183f7a3]{margin-top:.25rem;margin-bottom:.25rem}.my-2[data-v-6183f7a3]{margin-top:.5rem;margin-bottom:.5rem}.my-8[data-v-6183f7a3]{margin-top:2rem;margin-bottom:2rem}.mb-0[data-v-6183f7a3]{margin-bottom:0}.mb-0\.5[data-v-6183f7a3]{margin-bottom:.125rem}.mb-1[data-v-6183f7a3]{margin-bottom:.25rem}.mb-2[data-v-6183f7a3]{margin-bottom:.5rem}.mb-3[data-v-6183f7a3]{margin-bottom:.75rem}.mb-4[data-v-6183f7a3]{margin-bottom:1rem}.mb-5[data-v-6183f7a3]{margin-bottom:1.25rem}.mb-6[data-v-6183f7a3]{margin-bottom:1.5rem}.mb-8[data-v-6183f7a3]{margin-bottom:2rem}.ml-1[data-v-6183f7a3]{margin-left:.25rem}.ml-2[data-v-6183f7a3]{margin-left:.5rem}.ml-3[data-v-6183f7a3]{margin-left:.75rem}.ml-auto[data-v-6183f7a3]{margin-left:auto}.mr-2[data-v-6183f7a3]{margin-right:.5rem}.mt-1[data-v-6183f7a3]{margin-top:.25rem}.mt-10[data-v-6183f7a3]{margin-top:2.5rem}.mt-2[data-v-6183f7a3]{margin-top:.5rem}.mt-3[data-v-6183f7a3]{margin-top:.75rem}.mt-4[data-v-6183f7a3]{margin-top:1rem}.mt-5[data-v-6183f7a3]{margin-top:1.25rem}.mt-auto[data-v-6183f7a3]{margin-top:auto}.block[data-v-6183f7a3]{display:block}.\!inline-block[data-v-6183f7a3]{display:inline-block!important}.flex[data-v-6183f7a3]{display:flex}.inline-flex[data-v-6183f7a3]{display:inline-flex}.grid[data-v-6183f7a3]{display:grid}.hidden[data-v-6183f7a3]{display:none}.aspect-square[data-v-6183f7a3]{aspect-ratio:1 / 1}.h-11[data-v-6183f7a3]{height:2.75rem}.h-12[data-v-6183f7a3]{height:3rem}.h-14[data-v-6183f7a3]{height:3.5rem}.h-16[data-v-6183f7a3]{height:4rem}.h-2[data-v-6183f7a3]{height:.5rem}.h-2\.5[data-v-6183f7a3]{height:.625rem}.h-20[data-v-6183f7a3]{height:5rem}.h-24[data-v-6183f7a3]{height:6rem}.h-3\.5[data-v-6183f7a3]{height:.875rem}.h-32[data-v-6183f7a3]{height:8rem}.h-4[data-v-6183f7a3]{height:1rem}.h-40[data-v-6183f7a3]{height:10rem}.h-5[data-v-6183f7a3]{height:1.25rem}.h-6[data-v-6183f7a3]{height:1.5rem}.h-8[data-v-6183f7a3]{height:2rem}.h-9[data-v-6183f7a3]{height:2.25rem}.h-\[45px\][data-v-6183f7a3]{height:45px}.h-\[80px\][data-v-6183f7a3]{height:80px}.h-full[data-v-6183f7a3]{height:100%}.h-max[data-v-6183f7a3]{height:-moz-max-content;height:max-content}.h-px[data-v-6183f7a3]{height:1px}.h-screen[data-v-6183f7a3]{height:100vh}.\!w-\[300px\][data-v-6183f7a3]{width:300px!important}.w-1[data-v-6183f7a3]{width:.25rem}.w-10[data-v-6183f7a3]{width:2.5rem}.w-11[data-v-6183f7a3]{width:2.75rem}.w-12[data-v-6183f7a3]{width:3rem}.w-14[data-v-6183f7a3]{width:3.5rem}.w-16[data-v-6183f7a3]{width:4rem}.w-2[data-v-6183f7a3]{width:.5rem}.w-2\.5[data-v-6183f7a3]{width:.625rem}.w-20[data-v-6183f7a3]{width:5rem}.w-24[data-v-6183f7a3]{width:6rem}.w-3\.5[data-v-6183f7a3]{width:.875rem}.w-32[data-v-6183f7a3]{width:8rem}.w-4[data-v-6183f7a3]{width:1rem}.w-40[data-v-6183f7a3]{width:10rem}.w-5[data-v-6183f7a3]{width:1.25rem}.w-6[data-v-6183f7a3]{width:1.5rem}.w-8[data-v-6183f7a3]{width:2rem}.w-9[data-v-6183f7a3]{width:2.25rem}.w-\[130px\][data-v-6183f7a3]{width:130px}.w-\[38\%\][data-v-6183f7a3]{width:38%}.w-\[45px\][data-v-6183f7a3]{width:45px}.w-auto[data-v-6183f7a3]{width:auto}.w-fit[data-v-6183f7a3]{width:-moz-fit-content;width:fit-content}.w-full[data-v-6183f7a3]{width:100%}.w-max[data-v-6183f7a3]{width:-moz-max-content;width:max-content}.min-w-32[data-v-6183f7a3]{min-width:8rem}.min-w-72[data-v-6183f7a3]{min-width:18rem}.min-w-\[100px\][data-v-6183f7a3]{min-width:100px}.max-w-\[350px\][data-v-6183f7a3]{max-width:350px}.max-w-\[500px\][data-v-6183f7a3]{max-width:500px}.max-w-lg[data-v-6183f7a3]{max-width:32rem}.max-w-md[data-v-6183f7a3]{max-width:28rem}.max-w-xs[data-v-6183f7a3]{max-width:20rem}.flex-1[data-v-6183f7a3]{flex:1 1 0%}.shrink-0[data-v-6183f7a3]{flex-shrink:0}.grow[data-v-6183f7a3]{flex-grow:1}.-translate-x-1\/2[data-v-6183f7a3]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2[data-v-6183f7a3]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2[data-v-6183f7a3]{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-2px\][data-v-6183f7a3]{--tw-translate-y: -2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-4px\][data-v-6183f7a3]{--tw-translate-y: -4px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0[data-v-6183f7a3]{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90[data-v-6183f7a3]{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform[data-v-6183f7a3]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default[data-v-6183f7a3]{cursor:default}.cursor-pointer[data-v-6183f7a3]{cursor:pointer}.\!touch-none[data-v-6183f7a3]{touch-action:none!important}.touch-none[data-v-6183f7a3]{touch-action:none}.\!touch-pan-x[data-v-6183f7a3]{--tw-pan-x: pan-x !important;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)!important}.select-none[data-v-6183f7a3]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize[data-v-6183f7a3]{resize:both}.grid-cols-3[data-v-6183f7a3]{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4[data-v-6183f7a3]{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row-reverse[data-v-6183f7a3]{flex-direction:row-reverse}.flex-col[data-v-6183f7a3]{flex-direction:column}.flex-col-reverse[data-v-6183f7a3]{flex-direction:column-reverse}.place-content-center[data-v-6183f7a3]{place-content:center}.place-items-center[data-v-6183f7a3]{place-items:center}.items-end[data-v-6183f7a3]{align-items:flex-end}.items-center[data-v-6183f7a3]{align-items:center}.justify-center[data-v-6183f7a3]{justify-content:center}.justify-between[data-v-6183f7a3]{justify-content:space-between}.gap-1[data-v-6183f7a3]{gap:.25rem}.gap-1\.5[data-v-6183f7a3]{gap:.375rem}.gap-2[data-v-6183f7a3]{gap:.5rem}.gap-4[data-v-6183f7a3]{gap:1rem}.gap-8[data-v-6183f7a3]{gap:2rem}.gap-y-1\.5[data-v-6183f7a3]{row-gap:.375rem}.gap-y-3[data-v-6183f7a3]{row-gap:.75rem}.space-y-4[data-v-6183f7a3]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto[data-v-6183f7a3]{overflow:auto}.overflow-hidden[data-v-6183f7a3]{overflow:hidden}.overflow-y-auto[data-v-6183f7a3]{overflow-y:auto}.truncate[data-v-6183f7a3]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl[data-v-6183f7a3]{border-radius:1rem}.rounded-\[6px\][data-v-6183f7a3]{border-radius:6px}.rounded-\[8px\][data-v-6183f7a3]{border-radius:8px}.rounded-\[99px\][data-v-6183f7a3]{border-radius:99px}.rounded-full[data-v-6183f7a3]{border-radius:9999px}.rounded-lg[data-v-6183f7a3]{border-radius:8px}.rounded-md[data-v-6183f7a3]{border-radius:calc(var(--radius) - 2px)}.rounded-sm[data-v-6183f7a3]{border-radius:calc(var(--radius) - 4px)}.rounded-xl[data-v-6183f7a3]{border-radius:.75rem}.rounded-t-3xl[data-v-6183f7a3]{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-\[10px\][data-v-6183f7a3]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-bl-none[data-v-6183f7a3]{border-bottom-left-radius:0}.rounded-br-none[data-v-6183f7a3]{border-bottom-right-radius:0}.rounded-tl-none[data-v-6183f7a3]{border-top-left-radius:0}.rounded-tr-none[data-v-6183f7a3]{border-top-right-radius:0}.border[data-v-6183f7a3]{border-width:1px}.border-2[data-v-6183f7a3]{border-width:2px}.border-4[data-v-6183f7a3]{border-width:4px}.border-b[data-v-6183f7a3]{border-bottom-width:1px}.border-l[data-v-6183f7a3]{border-left-width:1px}.border-t[data-v-6183f7a3]{border-top-width:1px}.border-dashed[data-v-6183f7a3]{border-style:dashed}.border-\[\#DDDDE8\][data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(221 221 232 / var(--tw-border-opacity))}.border-chat-gray-5[data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(224 224 224 / var(--tw-border-opacity))}.border-chat-haze-100[data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(237 239 241 / var(--tw-border-opacity))}.border-chat-haze-200[data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(215 220 224 / var(--tw-border-opacity))}.border-chat-haze-300[data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(179 190 198 / var(--tw-border-opacity))}.border-chat-haze-400[data-v-6183f7a3]{--tw-border-opacity: 1;border-color:rgb(138 154 166 / var(--tw-border-opacity))}.\!bg-\[\#F9FAFC\][data-v-6183f7a3]{--tw-bg-opacity: 1 !important;background-color:rgb(249 250 252 / var(--tw-bg-opacity))!important}.\!bg-white[data-v-6183f7a3]{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity))!important}.bg-\[\#002E6B\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(0 46 107 / var(--tw-bg-opacity))}.bg-\[\#004AB3\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(0 74 179 / var(--tw-bg-opacity))}.bg-\[\#22C55E\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-\[\#C7DEFF\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(199 222 255 / var(--tw-bg-opacity))}.bg-\[\#D0DFEC\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(208 223 236 / var(--tw-bg-opacity))}.bg-\[\#E4E4E4D4\][data-v-6183f7a3]{background-color:#e4e4e4d4}.bg-\[\#E60000\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(230 0 0 / var(--tw-bg-opacity))}.bg-\[\#EDF5FF\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(237 245 255 / var(--tw-bg-opacity))}.bg-\[\#EF4444\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-\[\#F7F8F9\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity))}.bg-\[\#F9FAFC\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(249 250 252 / var(--tw-bg-opacity))}.bg-\[\#f3f3f3\][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-black\/10[data-v-6183f7a3]{background-color:#0000001a}.bg-black\/60[data-v-6183f7a3]{background-color:#0009}.bg-black\/80[data-v-6183f7a3]{background-color:#000c}.bg-chat-haze-200[data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(215 220 224 / var(--tw-bg-opacity))}.bg-chat-haze-300[data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(179 190 198 / var(--tw-bg-opacity))}.bg-chat-haze-400[data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(138 154 166 / var(--tw-bg-opacity))}.bg-white[data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.object-cover[data-v-6183f7a3]{-o-object-fit:cover;object-fit:cover}.p-1[data-v-6183f7a3]{padding:.25rem}.p-4[data-v-6183f7a3]{padding:1rem}.p-6[data-v-6183f7a3]{padding:1.5rem}.p-8[data-v-6183f7a3]{padding:2rem}.px-2[data-v-6183f7a3]{padding-left:.5rem;padding-right:.5rem}.px-3[data-v-6183f7a3]{padding-left:.75rem;padding-right:.75rem}.px-4[data-v-6183f7a3]{padding-left:1rem;padding-right:1rem}.px-6[data-v-6183f7a3]{padding-left:1.5rem;padding-right:1.5rem}.px-8[data-v-6183f7a3]{padding-left:2rem;padding-right:2rem}.px-\[10px\][data-v-6183f7a3]{padding-left:10px;padding-right:10px}.py-1\.5[data-v-6183f7a3]{padding-top:.375rem;padding-bottom:.375rem}.py-10[data-v-6183f7a3]{padding-top:2.5rem;padding-bottom:2.5rem}.py-2[data-v-6183f7a3]{padding-top:.5rem;padding-bottom:.5rem}.py-3[data-v-6183f7a3]{padding-top:.75rem;padding-bottom:.75rem}.py-6[data-v-6183f7a3]{padding-top:1.5rem;padding-bottom:1.5rem}.py-\[1px\][data-v-6183f7a3]{padding-top:1px;padding-bottom:1px}.py-\[5px\][data-v-6183f7a3]{padding-top:5px;padding-bottom:5px}.pb-2[data-v-6183f7a3]{padding-bottom:.5rem}.pb-4[data-v-6183f7a3]{padding-bottom:1rem}.pb-7[data-v-6183f7a3]{padding-bottom:1.75rem}.pl-10[data-v-6183f7a3]{padding-left:2.5rem}.pl-4[data-v-6183f7a3]{padding-left:1rem}.pl-8[data-v-6183f7a3]{padding-left:2rem}.pr-2[data-v-6183f7a3]{padding-right:.5rem}.pr-4[data-v-6183f7a3]{padding-right:1rem}.pt-4[data-v-6183f7a3]{padding-top:1rem}.pt-6[data-v-6183f7a3]{padding-top:1.5rem}.text-center[data-v-6183f7a3]{text-align:center}.text-right[data-v-6183f7a3]{text-align:right}.text-base[data-v-6183f7a3]{font-size:1rem}.text-lg[data-v-6183f7a3]{font-size:1.125rem}.text-sm[data-v-6183f7a3]{font-size:.875rem}.text-xl[data-v-6183f7a3]{font-size:1.25rem}.text-xs[data-v-6183f7a3]{font-size:.75rem}.font-bold[data-v-6183f7a3]{font-weight:700}.font-medium[data-v-6183f7a3]{font-weight:500}.font-normal[data-v-6183f7a3]{font-weight:400}.font-semibold[data-v-6183f7a3]{font-weight:600}.tracking-tight[data-v-6183f7a3]{letter-spacing:-.025em}.tracking-widest[data-v-6183f7a3]{letter-spacing:.1em}.text-\[\#004AB3\][data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(0 74 179 / var(--tw-text-opacity))}.text-\[\#0051E6\][data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(0 81 230 / var(--tw-text-opacity))}.text-\[\#141B34\][data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(20 27 52 / var(--tw-text-opacity))}.text-\[\#266699\][data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(38 102 153 / var(--tw-text-opacity))}.text-chat-gray-3[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(130 130 130 / var(--tw-text-opacity))}.text-chat-gray-4[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-chat-haze-200[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(215 220 224 / var(--tw-text-opacity))}.text-chat-haze-300[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(179 190 198 / var(--tw-text-opacity))}.text-chat-haze-400[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(138 154 166 / var(--tw-text-opacity))}.text-chat-haze-500[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(108 126 139 / var(--tw-text-opacity))}.text-chat-haze-600[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(86 102 115 / var(--tw-text-opacity))}.text-chat-haze-900[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(54 62 68 / var(--tw-text-opacity))}.text-chat-primary[data-v-6183f7a3]{color:var(--chat-color-primary)}.text-chat-success[data-v-6183f7a3]{color:var(--chat-color-success)}.text-white[data-v-6183f7a3]{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0[data-v-6183f7a3]{opacity:0}.opacity-60[data-v-6183f7a3],.opacity-\[0\.6\][data-v-6183f7a3]{opacity:.6}.shadow-3xl[data-v-6183f7a3]{--tw-shadow: 1px 1px 8px 0px #DEDEDE;--tw-shadow-colored: 1px 1px 8px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-custom[data-v-6183f7a3]{--tw-shadow: 0px 3.77749px 18.8874px rgba(0, 0, 0, .15);--tw-shadow-colored: 0px 3.77749px 18.8874px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none[data-v-6183f7a3]{outline:2px solid transparent;outline-offset:2px}.ring-0[data-v-6183f7a3]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.transition[data-v-6183f7a3]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all[data-v-6183f7a3]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-6183f7a3]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform[data-v-6183f7a3]{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200[data-v-6183f7a3]{transition-duration:.2s}@keyframes enter-6183f7a3{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit-6183f7a3{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200[data-v-6183f7a3]{animation-duration:.2s}.sc-full[data-v-6183f7a3]{width:100%;height:100%}.flex-center[data-v-6183f7a3]{display:flex;justify-content:center;align-items:center}.flex-col[data-v-6183f7a3]{flex-direction:column;display:flex}.go-chat-main[data-v-6183f7a3]{width:100%;height:100%;font-size:16px;font-family:Poppins,sans-serif;color:var(--color-text)}.first\:border-none[data-v-6183f7a3]:first-child{border-style:none}@media (hover: hover) and (pointer: fine){.hover\:bg-\[\#EDF5FF\][data-v-6183f7a3]:hover{--tw-bg-opacity: 1;background-color:rgb(237 245 255 / var(--tw-bg-opacity))}.hover\:text-white[data-v-6183f7a3]:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:duration-100[data-v-6183f7a3]:hover{transition-duration:.1s;animation-duration:.1s}}.focus\:outline-none[data-v-6183f7a3]:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none[data-v-6183f7a3]:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2[data-v-6183f7a3]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-offset-2[data-v-6183f7a3]:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none[data-v-6183f7a3]:disabled{pointer-events:none}.disabled\:cursor-not-allowed[data-v-6183f7a3]:disabled{cursor:not-allowed}.disabled\:opacity-50[data-v-6183f7a3]:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled][data-v-6183f7a3]{pointer-events:none}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical][data-v-6183f7a3]{height:100%}.data-\[orientation\=vertical\]\:w-2[data-orientation=vertical][data-v-6183f7a3]{width:.5rem}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical][data-v-6183f7a3]{width:100%}.data-\[state\=checked\]\:translate-x-5[data-state=checked][data-v-6183f7a3]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-1[data-state=unchecked][data-v-6183f7a3]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical][data-v-6183f7a3]{flex-direction:column}.data-\[state\=unchecked\]\:bg-\[\#D1D1D1\][data-state=unchecked][data-v-6183f7a3]{--tw-bg-opacity: 1;background-color:rgb(209 209 209 / var(--tw-bg-opacity))}.data-\[disabled\]\:opacity-50[data-disabled][data-v-6183f7a3]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open][data-v-6183f7a3]{animation-name:enter-6183f7a3;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed][data-v-6183f7a3]{animation-name:exit-6183f7a3;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed][data-v-6183f7a3]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open][data-v-6183f7a3]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed][data-v-6183f7a3]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open][data-v-6183f7a3]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom][data-v-6183f7a3]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left][data-v-6183f7a3]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right][data-v-6183f7a3]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top][data-v-6183f7a3]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed][data-v-6183f7a3]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed][data-v-6183f7a3]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open][data-v-6183f7a3]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open][data-v-6183f7a3]{--tw-enter-translate-y: -48%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical][data-v-6183f7a3]{flex-direction:column;display:flex}@media (min-width: 640px){.sm\:flex-row[data-v-6183f7a3]{flex-direction:row}.sm\:justify-end[data-v-6183f7a3]{justify-content:flex-end}.sm\:gap-x-2[data-v-6183f7a3]{-moz-column-gap:.5rem;column-gap:.5rem}.sm\:rounded-lg[data-v-6183f7a3]{border-radius:8px}.sm\:text-left[data-v-6183f7a3]{text-align:left}}@media (min-width: 768px){.md\:block[data-v-6183f7a3]{display:block}.md\:w-full[data-v-6183f7a3]{width:100%}}.\[\&\>svg\]\:size-4>svg[data-v-6183f7a3]{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg[data-v-6183f7a3]{flex-shrink:0}.\[\&_\.loader\:\:before\]\:border-white .loader[data-v-6183f7a3]:before{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}
|