@mirai/core 0.4.463 → 0.4.465
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/build/components/Chat/Chat.constants.js +5 -1
- package/build/components/Chat/Chat.constants.js.map +1 -1
- package/build/components/Chat/Chat.js +9 -5
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/Chat/components/Aura/Aura.js +103 -34
- package/build/components/Chat/components/Aura/Aura.js.map +1 -1
- package/build/components/Chat/components/Aura/Aura.l10n.js +15 -0
- package/build/components/Chat/components/Aura/Aura.l10n.js.map +1 -0
- package/build/components/Chat/components/Aura/Aura.module.css +109 -4
- package/build/components/Chat/components/{AiHalo/AiHalo.js → Aura/Aura.waveform.js} +27 -43
- package/build/components/Chat/components/Aura/Aura.waveform.js.map +1 -0
- package/build/components/Chat/components/Aura/helpers/elevenLabs.js +42 -0
- package/build/components/Chat/components/Aura/helpers/elevenLabs.js.map +1 -0
- package/build/components/Chat/components/Aura/helpers/index.js +17 -0
- package/build/components/Chat/components/Aura/helpers/index.js.map +1 -0
- package/build/components/Chat/components/Input/Input.js +3 -8
- package/build/components/Chat/components/Input/Input.js.map +1 -1
- package/build/components/Chat/components/Welcome/Welcome.js +37 -105
- package/build/components/Chat/components/Welcome/Welcome.js.map +1 -1
- package/build/components/Chat/components/Welcome/Welcome.l10n.js +14 -2
- package/build/components/Chat/components/Welcome/Welcome.l10n.js.map +1 -1
- package/build/components/Chat/components/Welcome/Welcome.module.css +29 -9
- package/build/components/Rates/hooks/useRates.js +13 -2
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/helpers/ICON.js +1 -0
- package/build/components/helpers/ICON.js.map +1 -1
- package/build/contexts/PerformanceManager/providers/analytics/ratesResponse.js +5 -5
- package/build/contexts/PerformanceManager/providers/analytics/ratesResponse.js.map +1 -1
- package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js +7 -7
- package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js.map +1 -1
- package/package.json +1 -1
- package/build/components/Chat/components/AiHalo/AiHalo.js.map +0 -1
- package/build/components/Chat/components/AiHalo/AiHalo.module.css +0 -92
- package/build/components/Chat/components/AiHalo/index.js +0 -13
- package/build/components/Chat/components/AiHalo/index.js.map +0 -1
- package/build/components/Chat/components/Welcome/Welcome.Destination.js +0 -133
- package/build/components/Chat/components/Welcome/Welcome.Destination.js.map +0 -1
- package/build/components/Chat/components/Welcome/Welcome.Destination.module.css +0 -93
- package/build/components/Chat/helpers/auraHelpers.js +0 -135
- package/build/components/Chat/helpers/auraHelpers.js.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VERBOSE_DATE_FORMAT = exports.NAME = exports.INTENT = exports.EVENT = exports.DELAY_RESPONSE = exports.DEFAULT_NAME = exports.DEFAULT_ACTIONS = exports.CHAT_STORAGE_KEY = exports.CHAT_STORAGE_CACHE = exports.BANNED_COMPONENTS = void 0;
|
|
6
|
+
exports.VERBOSE_DATE_FORMAT = exports.NAME = exports.INTENT = exports.INPUT_MODE = exports.EVENT = exports.DELAY_RESPONSE = exports.DEFAULT_NAME = exports.DEFAULT_ACTIONS = exports.CHAT_STORAGE_KEY = exports.CHAT_STORAGE_CACHE = exports.BANNED_COMPONENTS = void 0;
|
|
7
7
|
const BANNED_COMPONENTS = exports.BANNED_COMPONENTS = ['checkout', 'booking'];
|
|
8
8
|
const CHAT_STORAGE_CACHE = exports.CHAT_STORAGE_CACHE = 1000 * 60 * 60 * 8; // 8 hours
|
|
9
9
|
|
|
@@ -49,6 +49,10 @@ const DELAY_RESPONSE = exports.DELAY_RESPONSE = 500;
|
|
|
49
49
|
const EVENT = exports.EVENT = {
|
|
50
50
|
INPUT_COMPONENT: 'EVENT_INPUT_COMPONENT'
|
|
51
51
|
};
|
|
52
|
+
const INPUT_MODE = exports.INPUT_MODE = {
|
|
53
|
+
TEXT: 'text',
|
|
54
|
+
AUDIO: 'audio'
|
|
55
|
+
};
|
|
52
56
|
const INTENT = exports.INTENT = {
|
|
53
57
|
BOOK: 'BOOK',
|
|
54
58
|
BOOKING_CREATE: 'BOOKING_CREATE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.constants.js","names":["BANNED_COMPONENTS","exports","CHAT_STORAGE_CACHE","CHAT_STORAGE_KEY","DEFAULT_NAME","DEFAULT_ACTIONS","intent","text","options","DELAY_RESPONSE","EVENT","INPUT_COMPONENT","INTENT","BOOK","BOOKING_CREATE","BOOKING_CANCEL","BOOKING_QUERY","BOOKING_VIEW","BOOKING_SEND","OFFERS","HOTEL_INFO","GREETINGS","FAREWELLS","SIGNUP","LOGIN","PROFILE","NAME","VERBOSE_DATE_FORMAT","weekday","month","day"],"sources":["../../../src/components/Chat/Chat.constants.js"],"sourcesContent":["const BANNED_COMPONENTS = ['checkout', 'booking'];\n\nconst CHAT_STORAGE_CACHE = 1000 * 60 * 60 * 8; // 8 hours\n\nconst CHAT_STORAGE_KEY = 'MIRAI:LISA:CHAT';\n\nconst DEFAULT_NAME = 'Sarai';\n\nconst DEFAULT_ACTIONS = [\n {\n intent: 'BOOKING_CREATE',\n text: 'I’d like to make a **reservation**',\n options: [\n {\n text: 'I’d like to make a reservation for next weekend.',\n },\n {\n text: 'Can I make a **reservation** for tomorrow?',\n },\n {\n text: 'I need a booking for two adults.',\n },\n ],\n },\n {\n intent: 'HOTEL_INFO',\n text: 'I would like to know more about the hotel.',\n options: [\n {\n text: 'Where is the hotel located?',\n },\n {\n text: 'What is the hotel’s email and phone number?',\n },\n {\n text: 'What payment methods does the hotel accept?',\n },\n {\n text: 'What time is the hotel’s check-in?',\n },\n ],\n },\n {\n intent: 'LOGIN',\n text: 'I would like to manage my membership.',\n options: [\n {\n text: 'How can I log into the membership?',\n },\n {\n text: 'I want to change my personal details.',\n },\n {\n text: 'How can I sign up for the membership?',\n },\n ],\n },\n {\n intent: 'BOOKING_CANCEL',\n text: 'I need to cancel my booking',\n },\n];\n\nconst DELAY_RESPONSE = 500;\n\nconst EVENT = {\n INPUT_COMPONENT: 'EVENT_INPUT_COMPONENT',\n};\n\nconst INTENT = {\n BOOK: 'BOOK',\n BOOKING_CREATE: 'BOOKING_CREATE',\n BOOKING_CANCEL: 'BOOKING_CANCEL',\n BOOKING_QUERY: 'BOOKING_QUERY',\n BOOKING_VIEW: 'BOOKING_VIEW',\n BOOKING_SEND: 'BOOKING_SEND',\n OFFERS: 'OFFERS',\n HOTEL_INFO: 'HOTEL_INFO',\n GREETINGS: 'GREETINGS',\n FAREWELLS: 'FAREWELLS',\n SIGNUP: 'SIGNUP',\n LOGIN: 'LOGIN',\n PROFILE: 'PROFILE',\n};\n\nconst NAME = 'Sarai';\n\nconst VERBOSE_DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\nexport {\n BANNED_COMPONENTS,\n CHAT_STORAGE_CACHE,\n CHAT_STORAGE_KEY,\n DEFAULT_ACTIONS,\n DEFAULT_NAME,\n DELAY_RESPONSE,\n EVENT,\n INTENT,\n NAME,\n VERBOSE_DATE_FORMAT,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;AAEjD,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;AAE/C,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG,iBAAiB;AAE1C,MAAMC,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAG,OAAO;AAE5B,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,CACtB;EACEC,MAAM,EAAE,gBAAgB;EACxBC,IAAI,EAAE,oCAAoC;EAC1CC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,YAAY;EACpBC,IAAI,EAAE,4CAA4C;EAClDC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,uCAAuC;EAC7CC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,gBAAgB;EACxBC,IAAI,EAAE;AACR,CAAC,CACF;AAED,MAAME,cAAc,GAAAR,OAAA,CAAAQ,cAAA,GAAG,GAAG;AAE1B,MAAMC,KAAK,GAAAT,OAAA,CAAAS,KAAA,GAAG;EACZC,eAAe,EAAE;AACnB,CAAC;AAED,MAAMC,
|
|
1
|
+
{"version":3,"file":"Chat.constants.js","names":["BANNED_COMPONENTS","exports","CHAT_STORAGE_CACHE","CHAT_STORAGE_KEY","DEFAULT_NAME","DEFAULT_ACTIONS","intent","text","options","DELAY_RESPONSE","EVENT","INPUT_COMPONENT","INPUT_MODE","TEXT","AUDIO","INTENT","BOOK","BOOKING_CREATE","BOOKING_CANCEL","BOOKING_QUERY","BOOKING_VIEW","BOOKING_SEND","OFFERS","HOTEL_INFO","GREETINGS","FAREWELLS","SIGNUP","LOGIN","PROFILE","NAME","VERBOSE_DATE_FORMAT","weekday","month","day"],"sources":["../../../src/components/Chat/Chat.constants.js"],"sourcesContent":["const BANNED_COMPONENTS = ['checkout', 'booking'];\n\nconst CHAT_STORAGE_CACHE = 1000 * 60 * 60 * 8; // 8 hours\n\nconst CHAT_STORAGE_KEY = 'MIRAI:LISA:CHAT';\n\nconst DEFAULT_NAME = 'Sarai';\n\nconst DEFAULT_ACTIONS = [\n {\n intent: 'BOOKING_CREATE',\n text: 'I’d like to make a **reservation**',\n options: [\n {\n text: 'I’d like to make a reservation for next weekend.',\n },\n {\n text: 'Can I make a **reservation** for tomorrow?',\n },\n {\n text: 'I need a booking for two adults.',\n },\n ],\n },\n {\n intent: 'HOTEL_INFO',\n text: 'I would like to know more about the hotel.',\n options: [\n {\n text: 'Where is the hotel located?',\n },\n {\n text: 'What is the hotel’s email and phone number?',\n },\n {\n text: 'What payment methods does the hotel accept?',\n },\n {\n text: 'What time is the hotel’s check-in?',\n },\n ],\n },\n {\n intent: 'LOGIN',\n text: 'I would like to manage my membership.',\n options: [\n {\n text: 'How can I log into the membership?',\n },\n {\n text: 'I want to change my personal details.',\n },\n {\n text: 'How can I sign up for the membership?',\n },\n ],\n },\n {\n intent: 'BOOKING_CANCEL',\n text: 'I need to cancel my booking',\n },\n];\n\nconst DELAY_RESPONSE = 500;\n\nconst EVENT = {\n INPUT_COMPONENT: 'EVENT_INPUT_COMPONENT',\n};\n\nconst INPUT_MODE = {\n TEXT: 'text',\n AUDIO: 'audio',\n};\n\nconst INTENT = {\n BOOK: 'BOOK',\n BOOKING_CREATE: 'BOOKING_CREATE',\n BOOKING_CANCEL: 'BOOKING_CANCEL',\n BOOKING_QUERY: 'BOOKING_QUERY',\n BOOKING_VIEW: 'BOOKING_VIEW',\n BOOKING_SEND: 'BOOKING_SEND',\n OFFERS: 'OFFERS',\n HOTEL_INFO: 'HOTEL_INFO',\n GREETINGS: 'GREETINGS',\n FAREWELLS: 'FAREWELLS',\n SIGNUP: 'SIGNUP',\n LOGIN: 'LOGIN',\n PROFILE: 'PROFILE',\n};\n\nconst NAME = 'Sarai';\n\nconst VERBOSE_DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\nexport {\n BANNED_COMPONENTS,\n CHAT_STORAGE_CACHE,\n CHAT_STORAGE_KEY,\n DEFAULT_ACTIONS,\n DEFAULT_NAME,\n DELAY_RESPONSE,\n EVENT,\n INPUT_MODE,\n INTENT,\n NAME,\n VERBOSE_DATE_FORMAT,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;AAEjD,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;AAE/C,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG,iBAAiB;AAE1C,MAAMC,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAG,OAAO;AAE5B,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,CACtB;EACEC,MAAM,EAAE,gBAAgB;EACxBC,IAAI,EAAE,oCAAoC;EAC1CC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,YAAY;EACpBC,IAAI,EAAE,4CAA4C;EAClDC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,uCAAuC;EAC7CC,OAAO,EAAE,CACP;IACED,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC;AAEL,CAAC,EACD;EACED,MAAM,EAAE,gBAAgB;EACxBC,IAAI,EAAE;AACR,CAAC,CACF;AAED,MAAME,cAAc,GAAAR,OAAA,CAAAQ,cAAA,GAAG,GAAG;AAE1B,MAAMC,KAAK,GAAAT,OAAA,CAAAS,KAAA,GAAG;EACZC,eAAe,EAAE;AACnB,CAAC;AAED,MAAMC,UAAU,GAAAX,OAAA,CAAAW,UAAA,GAAG;EACjBC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,MAAM,GAAAd,OAAA,CAAAc,MAAA,GAAG;EACbC,IAAI,EAAE,MAAM;EACZC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE,cAAc;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,YAAY;EACxBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,IAAI,GAAA5B,OAAA,CAAA4B,IAAA,GAAG,OAAO;AAEpB,MAAMC,mBAAmB,GAAA7B,OAAA,CAAA6B,mBAAA,GAAG;EAAEC,OAAO,EAAE,OAAO;EAAEC,KAAK,EAAE,OAAO;EAAEC,GAAG,EAAE;AAAU,CAAC","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ var _Chat = require("./Chat.constants");
|
|
|
13
13
|
var _Chat2 = require("./Chat.l10n");
|
|
14
14
|
var style = _interopRequireWildcard(require("./Chat.module.css"));
|
|
15
15
|
var _components = require("./components");
|
|
16
|
+
var _Aura = require("./components/Aura/Aura");
|
|
16
17
|
var _helpers = require("./helpers");
|
|
17
18
|
var _Core = require("../../Core.constants");
|
|
18
19
|
var _helpers2 = require("../helpers");
|
|
@@ -57,6 +58,7 @@ const Chat = _ref => {
|
|
|
57
58
|
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.CHAT_OPEN, handleOpen);
|
|
58
59
|
}, [skeleton]);
|
|
59
60
|
const [busy, setBusy] = (0, _react.useState)(false);
|
|
61
|
+
const [inputMode, setInputMode] = (0, _react.useState)();
|
|
60
62
|
const [messages, setMessages] = (0, _react.useState)([]);
|
|
61
63
|
const [visible, setVisible] = (0, _react.useState)(false);
|
|
62
64
|
const handleInput = function (input) {
|
|
@@ -113,6 +115,7 @@ const Chat = _ref => {
|
|
|
113
115
|
};
|
|
114
116
|
const handleClose = () => {
|
|
115
117
|
setVisible(false);
|
|
118
|
+
setInputMode();
|
|
116
119
|
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
117
120
|
id: 'SARAI:CLOSE'
|
|
118
121
|
});
|
|
@@ -131,10 +134,9 @@ const Chat = _ref => {
|
|
|
131
134
|
}), /*#__PURE__*/_react.default.createElement(_components.Header, {
|
|
132
135
|
onClose: handleClose,
|
|
133
136
|
onRestart: () => setMessages([])
|
|
134
|
-
}), !
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
|
|
137
|
+
}), !inputMode ? /*#__PURE__*/_react.default.createElement(_components.Welcome, {
|
|
138
|
+
onInputMode: setInputMode
|
|
139
|
+
}) : inputMode === _Chat.INPUT_MODE.TEXT ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
|
|
138
140
|
scrollTo: new Date().getTime(),
|
|
139
141
|
snap: false,
|
|
140
142
|
className: style.messages
|
|
@@ -150,7 +152,9 @@ const Chat = _ref => {
|
|
|
150
152
|
hasAura: hasAura,
|
|
151
153
|
onValue: handleInput,
|
|
152
154
|
className: style.input
|
|
153
|
-
}))
|
|
155
|
+
})) : inputMode === _Chat.INPUT_MODE.AUDIO ? /*#__PURE__*/_react.default.createElement(_Aura.Aura, {
|
|
156
|
+
onCallEnd: () => setInputMode()
|
|
157
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
154
158
|
light: true,
|
|
155
159
|
tiny: true,
|
|
156
160
|
className: style.warning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_helpers","_Core","_helpers2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Chat","_ref","others","translate","useLocale","isMobile","useDevice","assistant","calendar","components","currency","hotel","id","locale","occupation","origin","session","skeleton","type","urlParams","mcp","useStore","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","busy","setBusy","useState","messages","setMessages","visible","setVisible","handleInput","input","shortcutMessage","undefined","nextMessages","text","timestamp","Date","getTime","setTimeout","context","TYPE","CHAIN","process","env","NODE_ENV","chain","response","ServiceSynapse","message","catch","synapse","audioNotification","DELAY_RESPONSE","source","SARAI_SOURCE","publish","CHAT_OPENED","event","METRICS","handleClose","hasAura","navigator","mediaDevices","enabled","isReady","every","item","BANNED_COMPONENTS","includes","entities","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","onRestart","Welcome","onInput","ScrollView","scrollTo","snap","map","index","Message","key","concat","disabled","Input","onValue","Text","light","tiny","warning","L10N","LABEL_WARNING_RESPONSES","name","DEFAULT_NAME","ButtonDispatcher","onPress","exports"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DEFAULT_NAME, DELAY_RESPONSE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Welcome } from './components';\nimport { audioNotification } from './helpers';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT } from '../helpers';\n\nconst Chat = ({ ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n assistant = {},\n calendar,\n components = {},\n currency,\n hotel,\n id,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams: { mcp } = {},\n } = {},\n } = useStore();\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n }, [skeleton]);\n\n const [busy, setBusy] = useState(false);\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if ((type === TYPE.CHAIN && !hotel.id) || (process.env.NODE_ENV === 'preproduction' && id === '100379008'))\n context.chain = { id: process.env.NODE_ENV === 'preproduction' && id === '100379008' ? '500659' : id };\n else context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: mcp === 'true',\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: 'SARAI:OPEN' });\n };\n\n const handleClose = () => {\n setVisible(false);\n Event.publish(EVENT.METRICS, { id: 'SARAI:CLOSE' });\n };\n\n const hasAura = navigator.mediaDevices && assistant.enabled;\n const isReady =\n !skeleton && Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) && assistant.enabled;\n // ? TODO: Get entities, from where... which strategy?\n const { entities = {} } = messages[messages.length - 1] || {};\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header onClose={handleClose} onRestart={() => setMessages([])} />\n\n {!messages.length ? (\n <Welcome onInput={handleInput} hasAura={hasAura} />\n ) : (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input\n disabled={busy}\n entities={entities}\n hasAura={hasAura}\n onValue={handleInput}\n className={style.input}\n />\n </>\n )}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_WARNING_RESPONSES, { name: assistant.name || DEFAULT_NAME })}\n </Text>\n </Modal>\n\n <ButtonDispatcher visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nexport { Chat };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAC,uBAAA,CAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAH,uBAAA,CAAAL,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAAmC,SAAAK,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,QAAAnB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAnB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAoB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAyB,cAAA1B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAF,CAAA,WAAA0B,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAH,MAAA,CAAAf,CAAA,OAAA4B,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA9B,CAAA,KAAAkB,OAAA,CAAAH,MAAA,CAAAf,CAAA,GAAA4B,OAAA,WAAA1B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAA8B,gBAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAH,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,IAAA+B,KAAA,EAAAjC,CAAA,EAAAsB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAApC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAAiC,eAAAhC,CAAA,QAAAM,CAAA,GAAA8B,YAAA,CAAApC,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA8B,aAAApC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAe,IAAA,CAAAd,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAiC,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AAAA,SAAA0C,0BAAA1C,CAAA,gBAAAA,CAAA,YAAAuC,SAAA,yBAAAvC,CAAA;AAAA,SAAA2C,SAAA,WAAAA,QAAA,GAAA5B,MAAA,CAAA6B,MAAA,GAAA7B,MAAA,CAAA6B,MAAA,CAAAC,IAAA,eAAA1C,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAA2B,SAAA,CAAAC,MAAA,EAAA5B,CAAA,UAAAC,CAAA,GAAA0B,SAAA,CAAA3B,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAwC,QAAA,CAAAnB,KAAA,OAAAE,SAAA;AAEnC,MAAMoB,IAAI,GAAGC,IAAA,IAAmB;EAAA,IAAbC,MAAM,GAAAL,QAAA,MAAAD,yBAAA,CAAAK,IAAA,GAAAA,IAAA;EACvB,MAAM;IAAEE;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IACJnB,KAAK,EAAE;MACLoB,SAAS,GAAG,CAAC,CAAC;MACdC,QAAQ;MACRC,UAAU,GAAG,CAAC,CAAC;MACfC,QAAQ;MACRC,KAAK;MACLC,EAAE;MACFC,MAAM;MACNC,UAAU;MACVC,MAAM;MACNC,OAAO;MACPC,QAAQ,GAAG,KAAK;MAChBC,IAAI;MACJC,SAAS,EAAE;QAAEC;MAAI,CAAC,GAAG,CAAC;IACxB,CAAC,GAAG,CAAC;EACP,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIL,QAAQ,EAAE;IAEdM,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;IAC5C,OAAO,MAAMJ,kBAAK,CAACK,WAAW,CAACH,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;EAC7D,CAAC,EAAE,CAACV,QAAQ,CAAC,CAAC;EAEd,MAAM,CAACY,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EAC5C,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAE7C,MAAMK,WAAW,GAAG,SAAAA,CAACC,KAAK,EAA8B;IAAA,IAA5BC,eAAe,GAAA1D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA2D,SAAA,GAAA3D,SAAA,MAAG,KAAK;IACjD,MAAM4D,YAAY,GAAG,CAAC,GAAGR,QAAQ,EAAE;MAAES,IAAI,EAAEJ,KAAK;MAAEK,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC;IAAE,CAAC,CAAC;IACpFX,WAAW,CAACO,YAAY,CAAC;IAEzBK,UAAU,CAAC,YAAY;MACrBf,OAAO,CAAC,IAAI,CAAC;MAEb,MAAMgB,OAAO,GAAG;QAAEtC,QAAQ;QAAEE,QAAQ;QAAEL,QAAQ;QAAEQ,MAAM;QAAEC,UAAU;QAAEC,MAAM;QAAEuB;MAAgB,CAAC;MAC7F,IAAKpB,IAAI,KAAK6B,UAAI,CAACC,KAAK,IAAI,CAACrC,KAAK,CAACC,EAAE,IAAMqC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,eAAe,IAAIvC,EAAE,KAAK,WAAY,EACxGkC,OAAO,CAACM,KAAK,GAAG;QAAExC,EAAE,EAAEqC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,eAAe,IAAIvC,EAAE,KAAK,WAAW,GAAG,QAAQ,GAAGA;MAAG,CAAC,CAAC,KACpGkC,OAAO,CAACnC,KAAK,GAAGA,KAAK;MAE1B,MAAM0C,QAAQ,GAAG,MAAMC,wBAAc,CAACC,OAAO,CAAC;QAC5CT,OAAO;QACPT,KAAK;QACLrB,OAAO;QACPI,GAAG,EAAEA,GAAG,KAAK;MACf,CAAC,CAAC,CAACoC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAElB,IAAIH,QAAQ,EAAE;QACZpB,WAAW,CAAC,CAAC,GAAGO,YAAY,EAAA7D,aAAA;UAAI8E,OAAO,EAAE;QAAI,GAAKJ,QAAQ,EAAG,CAAC;;QAE9D;QACA;QACA,IAAAK,0BAAiB,EAAC,CAAC;MACrB;MACA5B,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,EAAE6B,oBAAc,CAAC;EACpB,CAAC;EAED,MAAMhC,UAAU,GAAG,SAAAA,CAAA,EAAoC;IAAA,IAAnC;MAAEiC,MAAM,GAAGC;IAAa,CAAC,GAAAjF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA2D,SAAA,GAAA3D,SAAA,MAAG,CAAC,CAAC;IAChDuD,UAAU,CAAC,IAAI,CAAC;IAChBZ,kBAAK,CAACuC,OAAO,CAACrC,eAAK,CAACsC,WAAW,EAAE;MAAEC,KAAK,EAAEvC,eAAK,CAACsC,WAAW;MAAEH;IAAO,CAAC,CAAC;IACtErC,kBAAK,CAACuC,OAAO,CAACrC,eAAK,CAACwC,OAAO,EAAE;MAAErD,EAAE,EAAE;IAAa,CAAC,CAAC;EACpD,CAAC;EAED,MAAMsD,WAAW,GAAGA,CAAA,KAAM;IACxB/B,UAAU,CAAC,KAAK,CAAC;IACjBZ,kBAAK,CAACuC,OAAO,CAACrC,eAAK,CAACwC,OAAO,EAAE;MAAErD,EAAE,EAAE;IAAc,CAAC,CAAC;EACrD,CAAC;EAED,MAAMuD,OAAO,GAAGC,SAAS,CAACC,YAAY,IAAI9D,SAAS,CAAC+D,OAAO;EAC3D,MAAMC,OAAO,GACX,CAACtD,QAAQ,IAAIhD,MAAM,CAACI,IAAI,CAACoC,UAAU,CAAC,CAAC+D,KAAK,CAAEC,IAAI,IAAK,CAACC,uBAAiB,CAACC,QAAQ,CAACF,IAAI,CAAC,CAAC,IAAIlE,SAAS,CAAC+D,OAAO;EAC9G;EACA,MAAM;IAAEM,QAAQ,GAAG,CAAC;EAAE,CAAC,GAAG5C,QAAQ,CAACA,QAAQ,CAACnD,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;EAE7D,OAAO0F,OAAO,gBACZ/H,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAArI,MAAA,CAAAmB,OAAA,CAAAmH,QAAA,qBACEtI,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAACtI,GAAA,CAAAwI,KAAK,EAAAlF,QAAA,KAAKK,MAAM;IAAE8E,GAAG;IAACC,MAAM;IAAC/C,OAAO,EAAEA,OAAQ;IAACgD,SAAS,EAAE,IAAAC,UAAM,EAACvI,KAAK,CAACwI,SAAS,EAAElF,MAAM,CAACgF,SAAS;EAAE,iBACnG1I,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAAwI,MAAM;IAACC,OAAO,EAAEpB,WAAY;IAACqB,SAAS,EAAEA,CAAA,KAAMtD,WAAW,CAAC,EAAE;EAAE,CAAE,CAAC,EAEjE,CAACD,QAAQ,CAACnD,MAAM,gBACfrC,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAA2I,OAAO;IAACC,OAAO,EAAErD,WAAY;IAAC+B,OAAO,EAAEA;EAAQ,CAAE,CAAC,gBAEnD3H,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAArI,MAAA,CAAAmB,OAAA,CAAAmH,QAAA,qBACEtI,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAACtI,GAAA,CAAAmJ,UAAU;IAACC,QAAQ,EAAE,IAAIhD,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAE;IAACgD,IAAI,EAAE,KAAM;IAACV,SAAS,EAAEtI,KAAK,CAACoF;EAAS,GAChFA,QAAQ,CAAC6D,GAAG,CAAC,CAACtC,OAAO,EAAEuC,KAAK,kBAC3BtJ,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAAkJ,OAAO,EAAAlG,QAAA;IAACmG,GAAG,aAAAC,MAAA,CAAaH,KAAK,CAAG;IAACI,QAAQ,EAAErE,IAAI,IAAIiE,KAAK,GAAG9D,QAAQ,CAACnD,MAAM,GAAG;EAAE,GAAK0E,OAAO,CAAG,CAChG,CAAC,EACD1B,IAAI,iBAAIrF,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAAkJ,OAAO;IAAClE,IAAI;IAAC4B,OAAO;EAAA,CAAE,CACtB,CAAC,eACbjH,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAAsJ,KAAK;IACJD,QAAQ,EAAErE,IAAK;IACf+C,QAAQ,EAAEA,QAAS;IACnBT,OAAO,EAAEA,OAAQ;IACjBiC,OAAO,EAAEhE,WAAY;IACrB8C,SAAS,EAAEtI,KAAK,CAACyF;EAAM,CACxB,CACD,CACH,eACD7F,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAACtI,GAAA,CAAA8J,IAAI;IAACC,KAAK;IAACC,IAAI;IAACrB,SAAS,EAAEtI,KAAK,CAAC4J;EAAQ,GACvCrG,SAAS,CAACsG,WAAI,CAACC,uBAAuB,EAAE;IAAEC,IAAI,EAAEpG,SAAS,CAACoG,IAAI,IAAIC;EAAa,CAAC,CAC7E,CACD,CAAC,eAERpK,MAAA,CAAAmB,OAAA,CAAAkH,aAAA,CAAChI,WAAA,CAAAgK,gBAAgB;IAAC3E,OAAO,EAAEA,OAAQ;IAAC4E,OAAO,EAAEnF;EAAW,CAAE,CAC1D,CAAC,GACD,IAAI;AACV,CAAC;AAACoF,OAAA,CAAA/G,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_Aura","_helpers","_Core","_helpers2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Chat","_ref","others","translate","useLocale","isMobile","useDevice","assistant","calendar","components","currency","hotel","id","locale","occupation","origin","session","skeleton","type","urlParams","mcp","useStore","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","busy","setBusy","useState","inputMode","setInputMode","messages","setMessages","visible","setVisible","handleInput","input","shortcutMessage","undefined","nextMessages","text","timestamp","Date","getTime","setTimeout","context","TYPE","CHAIN","process","env","NODE_ENV","chain","response","ServiceSynapse","message","catch","synapse","audioNotification","DELAY_RESPONSE","source","SARAI_SOURCE","publish","CHAT_OPENED","event","METRICS","handleClose","hasAura","navigator","mediaDevices","enabled","isReady","every","item","BANNED_COMPONENTS","includes","entities","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","onRestart","Welcome","onInputMode","INPUT_MODE","TEXT","ScrollView","scrollTo","snap","map","index","Message","key","concat","disabled","Input","onValue","AUDIO","Aura","onCallEnd","Text","light","tiny","warning","L10N","LABEL_WARNING_RESPONSES","name","DEFAULT_NAME","ButtonDispatcher","onPress","exports"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DEFAULT_NAME, DELAY_RESPONSE, INPUT_MODE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Welcome } from './components';\nimport { Aura } from './components/Aura/Aura';\nimport { audioNotification } from './helpers';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT } from '../helpers';\n\nconst Chat = ({ ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n assistant = {},\n calendar,\n components = {},\n currency,\n hotel,\n id,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams: { mcp } = {},\n } = {},\n } = useStore();\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n }, [skeleton]);\n\n const [busy, setBusy] = useState(false);\n const [inputMode, setInputMode] = useState();\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if ((type === TYPE.CHAIN && !hotel.id) || (process.env.NODE_ENV === 'preproduction' && id === '100379008'))\n context.chain = { id: process.env.NODE_ENV === 'preproduction' && id === '100379008' ? '500659' : id };\n else context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: mcp === 'true',\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: 'SARAI:OPEN' });\n };\n\n const handleClose = () => {\n setVisible(false);\n setInputMode();\n Event.publish(EVENT.METRICS, { id: 'SARAI:CLOSE' });\n };\n\n const hasAura = navigator.mediaDevices && assistant.enabled;\n const isReady =\n !skeleton && Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) && assistant.enabled;\n // ? TODO: Get entities, from where... which strategy?\n const { entities = {} } = messages[messages.length - 1] || {};\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header onClose={handleClose} onRestart={() => setMessages([])} />\n\n {!inputMode ? (\n <Welcome onInputMode={setInputMode} />\n ) : inputMode === INPUT_MODE.TEXT ? (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input\n disabled={busy}\n entities={entities}\n hasAura={hasAura}\n onValue={handleInput}\n className={style.input}\n />\n </>\n ) : inputMode === INPUT_MODE.AUDIO ? (\n <Aura onCallEnd={() => setInputMode()} />\n ) : null}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_WARNING_RESPONSES, { name: assistant.name || DEFAULT_NAME })}\n </Text>\n </Modal>\n\n <ButtonDispatcher visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nexport { Chat };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAC,uBAAA,CAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAH,uBAAA,CAAAL,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA;AAAmC,SAAAK,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,QAAAnB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAnB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAoB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAyB,cAAA1B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAF,CAAA,WAAA0B,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAH,MAAA,CAAAf,CAAA,OAAA4B,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA9B,CAAA,KAAAkB,OAAA,CAAAH,MAAA,CAAAf,CAAA,GAAA4B,OAAA,WAAA1B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAA8B,gBAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAH,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,IAAA+B,KAAA,EAAAjC,CAAA,EAAAsB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAApC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAAiC,eAAAhC,CAAA,QAAAM,CAAA,GAAA8B,YAAA,CAAApC,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA8B,aAAApC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAe,IAAA,CAAAd,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAiC,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AAAA,SAAA0C,0BAAA1C,CAAA,gBAAAA,CAAA,YAAAuC,SAAA,yBAAAvC,CAAA;AAAA,SAAA2C,SAAA,WAAAA,QAAA,GAAA5B,MAAA,CAAA6B,MAAA,GAAA7B,MAAA,CAAA6B,MAAA,CAAAC,IAAA,eAAA1C,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAA2B,SAAA,CAAAC,MAAA,EAAA5B,CAAA,UAAAC,CAAA,GAAA0B,SAAA,CAAA3B,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAwC,QAAA,CAAAnB,KAAA,OAAAE,SAAA;AAEnC,MAAMoB,IAAI,GAAGC,IAAA,IAAmB;EAAA,IAAbC,MAAM,GAAAL,QAAA,MAAAD,yBAAA,CAAAK,IAAA,GAAAA,IAAA;EACvB,MAAM;IAAEE;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IACJnB,KAAK,EAAE;MACLoB,SAAS,GAAG,CAAC,CAAC;MACdC,QAAQ;MACRC,UAAU,GAAG,CAAC,CAAC;MACfC,QAAQ;MACRC,KAAK;MACLC,EAAE;MACFC,MAAM;MACNC,UAAU;MACVC,MAAM;MACNC,OAAO;MACPC,QAAQ,GAAG,KAAK;MAChBC,IAAI;MACJC,SAAS,EAAE;QAAEC;MAAI,CAAC,GAAG,CAAC;IACxB,CAAC,GAAG,CAAC;EACP,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIL,QAAQ,EAAE;IAEdM,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;IAC5C,OAAO,MAAMJ,kBAAK,CAACK,WAAW,CAACH,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;EAC7D,CAAC,EAAE,CAACV,QAAQ,CAAC,CAAC;EAEd,MAAM,CAACY,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC;EAC5C,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAJ,eAAQ,EAAC,EAAE,CAAC;EAC5C,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAN,eAAQ,EAAC,KAAK,CAAC;EAE7C,MAAMO,WAAW,GAAG,SAAAA,CAACC,KAAK,EAA8B;IAAA,IAA5BC,eAAe,GAAA5D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6D,SAAA,GAAA7D,SAAA,MAAG,KAAK;IACjD,MAAM8D,YAAY,GAAG,CAAC,GAAGR,QAAQ,EAAE;MAAES,IAAI,EAAEJ,KAAK;MAAEK,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC;IAAE,CAAC,CAAC;IACpFX,WAAW,CAACO,YAAY,CAAC;IAEzBK,UAAU,CAAC,YAAY;MACrBjB,OAAO,CAAC,IAAI,CAAC;MAEb,MAAMkB,OAAO,GAAG;QAAExC,QAAQ;QAAEE,QAAQ;QAAEL,QAAQ;QAAEQ,MAAM;QAAEC,UAAU;QAAEC,MAAM;QAAEyB;MAAgB,CAAC;MAC7F,IAAKtB,IAAI,KAAK+B,UAAI,CAACC,KAAK,IAAI,CAACvC,KAAK,CAACC,EAAE,IAAMuC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,eAAe,IAAIzC,EAAE,KAAK,WAAY,EACxGoC,OAAO,CAACM,KAAK,GAAG;QAAE1C,EAAE,EAAEuC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,eAAe,IAAIzC,EAAE,KAAK,WAAW,GAAG,QAAQ,GAAGA;MAAG,CAAC,CAAC,KACpGoC,OAAO,CAACrC,KAAK,GAAGA,KAAK;MAE1B,MAAM4C,QAAQ,GAAG,MAAMC,wBAAc,CAACC,OAAO,CAAC;QAC5CT,OAAO;QACPT,KAAK;QACLvB,OAAO;QACPI,GAAG,EAAEA,GAAG,KAAK;MACf,CAAC,CAAC,CAACsC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAElB,IAAIH,QAAQ,EAAE;QACZpB,WAAW,CAAC,CAAC,GAAGO,YAAY,EAAA/D,aAAA;UAAIgF,OAAO,EAAE;QAAI,GAAKJ,QAAQ,EAAG,CAAC;;QAE9D;QACA;QACA,IAAAK,0BAAiB,EAAC,CAAC;MACrB;MACA9B,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,EAAE+B,oBAAc,CAAC;EACpB,CAAC;EAED,MAAMlC,UAAU,GAAG,SAAAA,CAAA,EAAoC;IAAA,IAAnC;MAAEmC,MAAM,GAAGC;IAAa,CAAC,GAAAnF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6D,SAAA,GAAA7D,SAAA,MAAG,CAAC,CAAC;IAChDyD,UAAU,CAAC,IAAI,CAAC;IAChBd,kBAAK,CAACyC,OAAO,CAACvC,eAAK,CAACwC,WAAW,EAAE;MAAEC,KAAK,EAAEzC,eAAK,CAACwC,WAAW;MAAEH;IAAO,CAAC,CAAC;IACtEvC,kBAAK,CAACyC,OAAO,CAACvC,eAAK,CAAC0C,OAAO,EAAE;MAAEvD,EAAE,EAAE;IAAa,CAAC,CAAC;EACpD,CAAC;EAED,MAAMwD,WAAW,GAAGA,CAAA,KAAM;IACxB/B,UAAU,CAAC,KAAK,CAAC;IACjBJ,YAAY,CAAC,CAAC;IACdV,kBAAK,CAACyC,OAAO,CAACvC,eAAK,CAAC0C,OAAO,EAAE;MAAEvD,EAAE,EAAE;IAAc,CAAC,CAAC;EACrD,CAAC;EAED,MAAMyD,OAAO,GAAGC,SAAS,CAACC,YAAY,IAAIhE,SAAS,CAACiE,OAAO;EAC3D,MAAMC,OAAO,GACX,CAACxD,QAAQ,IAAIhD,MAAM,CAACI,IAAI,CAACoC,UAAU,CAAC,CAACiE,KAAK,CAAEC,IAAI,IAAK,CAACC,uBAAiB,CAACC,QAAQ,CAACF,IAAI,CAAC,CAAC,IAAIpE,SAAS,CAACiE,OAAO;EAC9G;EACA,MAAM;IAAEM,QAAQ,GAAG,CAAC;EAAE,CAAC,GAAG5C,QAAQ,CAACA,QAAQ,CAACrD,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;EAE7D,OAAO4F,OAAO,gBACZlI,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAAAxI,MAAA,CAAAoB,OAAA,CAAAqH,QAAA,qBACEzI,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACzI,GAAA,CAAA2I,KAAK,EAAApF,QAAA,KAAKK,MAAM;IAAEgF,GAAG;IAACC,MAAM;IAAC/C,OAAO,EAAEA,OAAQ;IAACgD,SAAS,EAAE,IAAAC,UAAM,EAAC1I,KAAK,CAAC2I,SAAS,EAAEpF,MAAM,CAACkF,SAAS;EAAE,iBACnG7I,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAA2I,MAAM;IAACC,OAAO,EAAEpB,WAAY;IAACqB,SAAS,EAAEA,CAAA,KAAMtD,WAAW,CAAC,EAAE;EAAE,CAAE,CAAC,EAEjE,CAACH,SAAS,gBACTzF,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAA8I,OAAO;IAACC,WAAW,EAAE1D;EAAa,CAAE,CAAC,GACpCD,SAAS,KAAK4D,gBAAU,CAACC,IAAI,gBAC/BtJ,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAAAxI,MAAA,CAAAoB,OAAA,CAAAqH,QAAA,qBACEzI,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACzI,GAAA,CAAAwJ,UAAU;IAACC,QAAQ,EAAE,IAAIlD,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAE;IAACkD,IAAI,EAAE,KAAM;IAACZ,SAAS,EAAEzI,KAAK,CAACuF;EAAS,GAChFA,QAAQ,CAAC+D,GAAG,CAAC,CAACxC,OAAO,EAAEyC,KAAK,kBAC3B3J,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAAuJ,OAAO,EAAAtG,QAAA;IAACuG,GAAG,aAAAC,MAAA,CAAaH,KAAK,CAAG;IAACI,QAAQ,EAAEzE,IAAI,IAAIqE,KAAK,GAAGhE,QAAQ,CAACrD,MAAM,GAAG;EAAE,GAAK4E,OAAO,CAAG,CAChG,CAAC,EACD5B,IAAI,iBAAItF,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAAuJ,OAAO;IAACtE,IAAI;IAAC8B,OAAO;EAAA,CAAE,CACtB,CAAC,eACbpH,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAA2J,KAAK;IACJD,QAAQ,EAAEzE,IAAK;IACfiD,QAAQ,EAAEA,QAAS;IACnBT,OAAO,EAAEA,OAAQ;IACjBmC,OAAO,EAAElE,WAAY;IACrB8C,SAAS,EAAEzI,KAAK,CAAC4F;EAAM,CACxB,CACD,CAAC,GACDP,SAAS,KAAK4D,gBAAU,CAACa,KAAK,gBAChClK,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAAClI,KAAA,CAAA6J,IAAI;IAACC,SAAS,EAAEA,CAAA,KAAM1E,YAAY,CAAC;EAAE,CAAE,CAAC,GACvC,IAAI,eACR1F,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACzI,GAAA,CAAAsK,IAAI;IAACC,KAAK;IAACC,IAAI;IAAC1B,SAAS,EAAEzI,KAAK,CAACoK;EAAQ,GACvC5G,SAAS,CAAC6G,WAAI,CAACC,uBAAuB,EAAE;IAAEC,IAAI,EAAE3G,SAAS,CAAC2G,IAAI,IAAIC;EAAa,CAAC,CAC7E,CACD,CAAC,eAER5K,MAAA,CAAAoB,OAAA,CAAAoH,aAAA,CAACnI,WAAA,CAAAwK,gBAAgB;IAAChF,OAAO,EAAEA,OAAQ;IAACiF,OAAO,EAAE1F;EAAW,CAAE,CAC1D,CAAC,GACD,IAAI;AACV,CAAC;AAAC2F,OAAA,CAAAtH,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -6,19 +6,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.Aura = void 0;
|
|
7
7
|
var _react = require("@elevenlabs/react");
|
|
8
8
|
var _dataSources = require("@mirai/data-sources");
|
|
9
|
+
var _locale = require("@mirai/locale");
|
|
9
10
|
var _ui = require("@mirai/ui");
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
12
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _Aura = require("./Aura.l10n");
|
|
11
14
|
var style = _interopRequireWildcard(require("./Aura.module.css"));
|
|
15
|
+
var _Aura2 = require("./Aura.waveform");
|
|
16
|
+
var _helpers = require("./helpers");
|
|
12
17
|
var _Core = require("../../../../Core.constants");
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var _AiHalo = require("../AiHalo");
|
|
18
|
+
var _helpers2 = require("../../../helpers");
|
|
19
|
+
var _Chat = require("../../Chat.constants");
|
|
16
20
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
const Aura = _ref => {
|
|
28
|
+
let {
|
|
29
|
+
onCallEnd = () => {}
|
|
30
|
+
} = _ref;
|
|
22
31
|
const conversation = (0, _react.useConversation)();
|
|
23
32
|
const {
|
|
24
33
|
value: {
|
|
@@ -27,47 +36,107 @@ const Aura = () => {
|
|
|
27
36
|
locale,
|
|
28
37
|
type,
|
|
29
38
|
id
|
|
30
|
-
}
|
|
39
|
+
} = {}
|
|
31
40
|
} = (0, _dataSources.useStore)();
|
|
41
|
+
const {
|
|
42
|
+
translate
|
|
43
|
+
} = (0, _locale.useLocale)();
|
|
44
|
+
const [context, setContext] = (0, _react2.useState)(null);
|
|
45
|
+
const [isConnecting, setIsConnecting] = (0, _react2.useState)(false);
|
|
46
|
+
const [ready, setReady] = (0, _react2.useState)(false);
|
|
32
47
|
(0, _react2.useEffect)(() => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
const callback = async () => {
|
|
49
|
+
if (ready) handleCallEnd();
|
|
50
|
+
};
|
|
51
|
+
_dataSources.Event.subscribe(_helpers2.EVENT.SARAI_MESSAGE_SENT, callback);
|
|
52
|
+
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.SARAI_MESSAGE_SENT, callback);
|
|
53
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54
|
+
}, [conversation, ready]);
|
|
36
55
|
(0, _react2.useEffect)(() => {
|
|
37
56
|
if (type === _Core.TYPE.CHAIN && !hotel.id) return;
|
|
38
57
|
setContext({
|
|
39
58
|
hotelId: hotel.id
|
|
40
59
|
});
|
|
41
60
|
}, [hotel.id, type, id]);
|
|
42
|
-
|
|
43
|
-
|
|
61
|
+
(0, _react2.useEffect)(() => {
|
|
62
|
+
handleCallStart();
|
|
63
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
64
|
+
}, [context]);
|
|
65
|
+
const handleCallStart = async () => {
|
|
66
|
+
if (!navigator.mediaDevices || !conversation || !context && !chainId) return;
|
|
67
|
+
const {
|
|
68
|
+
name: assistant_name = 'Sarai'
|
|
69
|
+
} = assistant;
|
|
70
|
+
const isChain = type === _Core.TYPE.CHAIN && !hotel.id;
|
|
71
|
+
const chainId = isChain ? id : undefined;
|
|
72
|
+
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
44
73
|
id: 'AURA:START'
|
|
45
74
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
75
|
+
setIsConnecting(true);
|
|
76
|
+
try {
|
|
77
|
+
await navigator.mediaDevices.getUserMedia({
|
|
78
|
+
audio: true
|
|
79
|
+
});
|
|
80
|
+
const sessionConfig = {
|
|
81
|
+
clientTools: {
|
|
82
|
+
open_url: _helpers.toolOpenUrl
|
|
83
|
+
},
|
|
84
|
+
dynamicVariables: _objectSpread({
|
|
85
|
+
assistant_name
|
|
86
|
+
}, chainId ? {
|
|
87
|
+
chain_id: chainId
|
|
88
|
+
} : {
|
|
89
|
+
hotelId: context.hotelid
|
|
90
|
+
}),
|
|
91
|
+
overrides: {
|
|
92
|
+
agent: {
|
|
93
|
+
language: locale.split('-')[0]
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
signedUrl: await (0, _helpers.getSignedUrl)(!!chainId),
|
|
97
|
+
onConnect: () => {
|
|
98
|
+
setIsConnecting(false);
|
|
99
|
+
setReady(true);
|
|
100
|
+
},
|
|
101
|
+
onDisconnect: handleCallEnd,
|
|
102
|
+
onError: () => {
|
|
103
|
+
setIsConnecting(false);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
await conversation.startSession(sessionConfig);
|
|
107
|
+
} catch (error) {
|
|
108
|
+
setIsConnecting(false);
|
|
109
|
+
}
|
|
49
110
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return _helpers.ICON.AGENT;
|
|
111
|
+
const handleCallEnd = () => {
|
|
112
|
+
conversation.endSession();
|
|
113
|
+
setReady(false);
|
|
114
|
+
onCallEnd();
|
|
55
115
|
};
|
|
56
|
-
return /*#__PURE__*/_react2.default.createElement(
|
|
57
|
-
active:
|
|
58
|
-
conversation: conversation
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
116
|
+
return !(!context && !(type === _Core.TYPE.CHAIN && !hotel.id)) ? /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement(_Aura2.Waveform, {
|
|
117
|
+
active: ready,
|
|
118
|
+
conversation: conversation
|
|
119
|
+
}), /*#__PURE__*/_react2.default.createElement(_ui.View, {
|
|
120
|
+
className: style.footer
|
|
121
|
+
}, isConnecting && /*#__PURE__*/_react2.default.createElement(_ui.Text, {
|
|
122
|
+
action: true
|
|
123
|
+
}, translate(_Aura.L10N.LABEL_CALLING, {
|
|
124
|
+
name: assistant.name || _Chat.DEFAULT_NAME
|
|
125
|
+
})), /*#__PURE__*/_react2.default.createElement(_ui.Button, {
|
|
63
126
|
busy: isConnecting,
|
|
127
|
+
rounded: true,
|
|
64
128
|
squared: true,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
129
|
+
large: true,
|
|
130
|
+
tooltip: translate(_Aura.L10N.LABEL_HANG_UP),
|
|
131
|
+
onPress: handleCallEnd,
|
|
132
|
+
className: (0, _ui.styles)(style.button, ready && style.ready)
|
|
68
133
|
}, /*#__PURE__*/_react2.default.createElement(_ui.Icon, {
|
|
69
|
-
value:
|
|
70
|
-
})));
|
|
134
|
+
value: _helpers2.ICON.HANG_UP
|
|
135
|
+
})))) : null;
|
|
71
136
|
};
|
|
72
137
|
exports.Aura = Aura;
|
|
138
|
+
Aura.displayName = 'Mirai:Core:Chat.Aura';
|
|
139
|
+
Aura.propTypes = {
|
|
140
|
+
onCallEnd: _propTypes.default.func
|
|
141
|
+
};
|
|
73
142
|
//# sourceMappingURL=Aura.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aura.js","names":["_react","require","_dataSources","_ui","_react2","_interopRequireWildcard","style","_Core","_helpers","_auraHelpers","_AiHalo","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Aura","busyConversation","setBusyConversation","useState","isConnecting","setIsConnecting","context","setContext","isHovering","setIsHovering","conversation","useConversation","value","assistant","hotel","locale","type","id","useStore","useEffect","handler","createMessageSentHandler","subscribeToMessageSent","TYPE","CHAIN","hotelId","handlePressConversation","Event","publish","EVENT","METRICS","isChain","chainId","handleConversation","getIcon","ICON","HANG_UP","RECORD","AGENT","createElement","AiHalo","active","sensitivity","onMouseEnter","onMouseLeave","Button","busy","squared","top","onPress","className","styles","button","hangup","Icon","exports"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { useConversation } from '@elevenlabs/react';\nimport { Event, useStore } from '@mirai/data-sources';\nimport { Button, Icon, styles } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './Aura.module.css';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON } from '../../../helpers';\nimport { createMessageSentHandler, subscribeToMessageSent, handleConversation } from '../../helpers/auraHelpers';\nimport { AiHalo } from '../AiHalo';\n\nconst Aura = () => {\n const [busyConversation, setBusyConversation] = useState(false);\n const [isConnecting, setIsConnecting] = useState(false);\n const [context, setContext] = useState(null);\n const [isHovering, setIsHovering] = useState(false);\n const conversation = useConversation();\n const {\n value: { assistant = {}, hotel = {}, locale, type, id },\n } = useStore();\n\n useEffect(() => {\n const handler = createMessageSentHandler(busyConversation, conversation, setBusyConversation);\n return subscribeToMessageSent(handler);\n }, [busyConversation, conversation]);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotel.id) return;\n\n setContext({ hotelId: hotel.id });\n }, [hotel.id, type, id]);\n\n const handlePressConversation = () => {\n Event.publish(EVENT.METRICS, { id: 'AURA:START' });\n const isChain = type === TYPE.CHAIN && !hotel.id;\n const chainId = isChain ? id : null;\n\n handleConversation(\n busyConversation,\n isConnecting,\n context,\n conversation,\n assistant,\n locale,\n setIsConnecting,\n setBusyConversation,\n isChain,\n chainId,\n );\n };\n\n if (!context && !(type === TYPE.CHAIN && !hotel.id)) return null;\n\n const getIcon = () => {\n if (busyConversation && isHovering) return ICON.HANG_UP;\n if (busyConversation) return ICON.RECORD;\n return ICON.AGENT;\n };\n\n return (\n <AiHalo\n active={busyConversation}\n conversation={conversation}\n sensitivity={1.2}\n onMouseEnter={() => setIsHovering(true)}\n onMouseLeave={() => setIsHovering(false)}\n >\n <Button\n busy={isConnecting}\n squared\n top\n onPress={handlePressConversation}\n className={styles(style.button, busyConversation && isHovering && style.hangup)}\n >\n <Icon value={getIcon()} />\n </Button>\n </AiHalo>\n );\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Aura.js","names":["_react","require","_dataSources","_locale","_ui","_propTypes","_interopRequireDefault","_react2","_interopRequireWildcard","_Aura","style","_Aura2","_helpers","_Core","_helpers2","_Chat","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Aura","_ref","onCallEnd","conversation","useConversation","assistant","hotel","locale","type","id","useStore","translate","useLocale","context","setContext","useState","isConnecting","setIsConnecting","ready","setReady","useEffect","callback","handleCallEnd","Event","subscribe","EVENT","SARAI_MESSAGE_SENT","unsubscribe","TYPE","CHAIN","hotelId","handleCallStart","navigator","mediaDevices","chainId","name","assistant_name","isChain","undefined","publish","METRICS","getUserMedia","audio","sessionConfig","clientTools","open_url","toolOpenUrl","dynamicVariables","chain_id","hotelid","overrides","agent","language","split","signedUrl","getSignedUrl","onConnect","onDisconnect","onError","startSession","error","endSession","createElement","Fragment","Waveform","active","View","className","footer","Text","action","L10N","LABEL_CALLING","DEFAULT_NAME","Button","busy","rounded","squared","large","tooltip","LABEL_HANG_UP","onPress","styles","button","Icon","ICON","HANG_UP","exports","displayName","propTypes","PropTypes","func"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { useConversation } from '@elevenlabs/react';\nimport { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './Aura.l10n';\nimport * as style from './Aura.module.css';\nimport { Waveform } from './Aura.waveform';\nimport { getSignedUrl, toolOpenUrl } from './helpers';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\n\nconst Aura = ({ onCallEnd = () => {} }) => {\n const conversation = useConversation();\n const { value: { assistant = {}, hotel = {}, locale, type, id } = {} } = useStore();\n const { translate } = useLocale();\n\n const [context, setContext] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const callback = async () => {\n if (ready) handleCallEnd();\n };\n\n Event.subscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n return () => Event.unsubscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversation, ready]);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotel.id) return;\n\n setContext({ hotelId: hotel.id });\n }, [hotel.id, type, id]);\n\n useEffect(() => {\n handleCallStart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context]);\n\n const handleCallStart = async () => {\n if (!navigator.mediaDevices || !conversation || (!context && !chainId)) return;\n\n const { name: assistant_name = 'Sarai' } = assistant;\n const isChain = type === TYPE.CHAIN && !hotel.id;\n const chainId = isChain ? id : undefined;\n\n Event.publish(EVENT.METRICS, { id: 'AURA:START' });\n\n setIsConnecting(true);\n try {\n await navigator.mediaDevices.getUserMedia({ audio: true });\n\n const sessionConfig = {\n clientTools: { open_url: toolOpenUrl },\n dynamicVariables: { assistant_name, ...(chainId ? { chain_id: chainId } : { hotelId: context.hotelid }) },\n overrides: { agent: { language: locale.split('-')[0] } },\n signedUrl: await getSignedUrl(!!chainId),\n onConnect: () => {\n setIsConnecting(false);\n setReady(true);\n },\n onDisconnect: handleCallEnd,\n onError: () => {\n setIsConnecting(false);\n },\n };\n\n await conversation.startSession(sessionConfig);\n } catch (error) {\n setIsConnecting(false);\n }\n };\n\n const handleCallEnd = () => {\n conversation.endSession();\n setReady(false);\n onCallEnd();\n };\n\n return !(!context && !(type === TYPE.CHAIN && !hotel.id)) ? (\n <>\n <Waveform active={ready} conversation={conversation} />\n <View className={style.footer}>\n {isConnecting && <Text action>{translate(L10N.LABEL_CALLING, { name: assistant.name || DEFAULT_NAME })}</Text>}\n <Button\n busy={isConnecting}\n rounded\n squared\n large\n tooltip={translate(L10N.LABEL_HANG_UP)}\n onPress={handleCallEnd}\n className={styles(style.button, ready && style.ready)}\n >\n <Icon value={ICON.HANG_UP} />\n </Button>\n </View>\n </>\n ) : null;\n};\n\nAura.displayName = 'Mirai:Core:Chat.Aura';\n\nAura.propTypes = {\n onCallEnd: PropTypes.func,\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.L10N = void 0;
|
|
7
|
+
const L10N = exports.L10N = {
|
|
8
|
+
LABEL_HANG_UP: {
|
|
9
|
+
id: 'lisa.label.hang_up'
|
|
10
|
+
},
|
|
11
|
+
LABEL_CALLING: {
|
|
12
|
+
id: 'lisa.label.calling'
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Aura.l10n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Aura.l10n.js","names":["L10N","exports","LABEL_HANG_UP","id","LABEL_CALLING"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.l10n.js"],"sourcesContent":["export const L10N = {\n LABEL_HANG_UP: { id: 'lisa.label.hang_up' },\n LABEL_CALLING: { id: 'lisa.label.calling' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,aAAa,EAAE;IAAEC,EAAE,EAAE;EAAqB,CAAC;EAC3CC,aAAa,EAAE;IAAED,EAAE,EAAE;EAAqB;AAC5C,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,115 @@
|
|
|
1
|
+
.footer {
|
|
2
|
+
align-items: center;
|
|
3
|
+
bottom: var(--mirai-ui-space-XL);
|
|
4
|
+
gap: var(--mirai-ui-space-M);
|
|
5
|
+
margin: 0 auto;
|
|
6
|
+
position: absolute;
|
|
7
|
+
}
|
|
8
|
+
|
|
1
9
|
.button {
|
|
10
|
+
min-height: var(--mirai-ui-space-XXL) !important;
|
|
11
|
+
min-width: var(--mirai-ui-space-XXL) !important;
|
|
12
|
+
padding: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.button.ready {
|
|
16
|
+
background-color: var(--mirai-ui-error) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.waveform {
|
|
20
|
+
position: relative;
|
|
21
|
+
display: inline-block;
|
|
22
|
+
z-index: 1;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.waveform.active .aura,
|
|
26
|
+
.waveform.active .pulse,
|
|
27
|
+
.waveform.active .glow {
|
|
28
|
+
opacity: var(--aura-opacity, 0.66);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.aura,
|
|
32
|
+
.pulse,
|
|
33
|
+
.glow {
|
|
34
|
+
position: absolute;
|
|
35
|
+
top: 50%;
|
|
36
|
+
left: 50%;
|
|
37
|
+
transform: translate(-50%, -50%);
|
|
2
38
|
border-radius: 50%;
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
opacity: 0;
|
|
41
|
+
transition: opacity 0.3s ease-in-out;
|
|
3
42
|
}
|
|
4
43
|
|
|
5
|
-
.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
44
|
+
.aura {
|
|
45
|
+
width: 120%;
|
|
46
|
+
height: 120%;
|
|
47
|
+
background: radial-gradient(
|
|
48
|
+
circle,
|
|
49
|
+
var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 0%,
|
|
50
|
+
color-mix(in srgb, var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 25%, transparent) 70%,
|
|
51
|
+
transparent 100%
|
|
52
|
+
);
|
|
53
|
+
z-index: 1;
|
|
54
|
+
transform: translate(-50%, -50%) scale(var(--aura-scale, 1));
|
|
55
|
+
transition: transform 0.1s ease-out;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.pulse {
|
|
59
|
+
width: 150%;
|
|
60
|
+
height: 150%;
|
|
61
|
+
background: radial-gradient(
|
|
62
|
+
circle,
|
|
63
|
+
color-mix(in srgb, var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 50%, transparent) 0%,
|
|
64
|
+
color-mix(in srgb, var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 12%, transparent) 50%,
|
|
65
|
+
transparent 70%
|
|
66
|
+
);
|
|
67
|
+
z-index: 0;
|
|
68
|
+
animation: waveform-pulse 2s ease-in-out infinite;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.glow {
|
|
72
|
+
width: 200%;
|
|
73
|
+
height: 200%;
|
|
74
|
+
background: radial-gradient(
|
|
75
|
+
circle,
|
|
76
|
+
color-mix(in srgb, var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 25%, transparent) 0%,
|
|
77
|
+
color-mix(in srgb, var(--mirai-chat-avatar-color-3, var(--mirai-chat-avatar-color-3)) 5%, transparent) 30%,
|
|
78
|
+
transparent 60%
|
|
79
|
+
);
|
|
80
|
+
z-index: -1;
|
|
81
|
+
animation: waveform-glow 3s ease-in-out infinite alternate;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.content {
|
|
85
|
+
position: relative;
|
|
86
|
+
z-index: 3;
|
|
87
|
+
|
|
88
|
+
min-height: calc(var(--mirai-ui-space-XXL) * 2);
|
|
89
|
+
min-width: calc(var(--mirai-ui-space-XXL) * 2);
|
|
90
|
+
border-radius: 50%;
|
|
91
|
+
background-color: var(--mirai-chat-avatar-color-3);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@keyframes waveform-pulse {
|
|
95
|
+
0%,
|
|
96
|
+
100% {
|
|
97
|
+
transform: translate(-50%, -50%) scale(1);
|
|
98
|
+
opacity: var(--aura-opacity, 0.33);
|
|
99
|
+
}
|
|
100
|
+
50% {
|
|
101
|
+
transform: translate(-50%, -50%) scale(1.1);
|
|
102
|
+
opacity: calc(var(--aura-opacity, 0.3) * 0.66);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@keyframes waveform-glow {
|
|
107
|
+
0% {
|
|
108
|
+
transform: translate(-50%, -50%) scale(0.9);
|
|
109
|
+
opacity: calc(var(--aura-opacity, 0.2) * 0.4);
|
|
110
|
+
}
|
|
111
|
+
100% {
|
|
112
|
+
transform: translate(-50%, -50%) scale(1.1);
|
|
113
|
+
opacity: calc(var(--aura-opacity, 0.2) * 0.8);
|
|
9
114
|
}
|
|
10
115
|
}
|