@magmamath/students-features 0.9.110 → 0.9.111-rc-1
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/dist/commonjs/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js +25 -22
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +20 -4
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +6 -2
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js +6 -2
- package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/commonjs/features/chatbot/helpers/textToSSML.js +22 -0
- package/dist/commonjs/features/chatbot/helpers/textToSSML.js.map +1 -0
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js +4 -6
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/t2s.js +125 -32
- package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
- package/dist/commonjs/features/chatbot/types/t2s.types.js.map +1 -1
- package/dist/commonjs/index.js +1 -13
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/types/common.types.js +0 -4
- package/dist/module/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
- package/dist/module/features/chatbot/components/Chat/Chat.js +25 -22
- package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +20 -4
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +6 -2
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js +6 -2
- package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/module/features/chatbot/helpers/textToSSML.js +16 -0
- package/dist/module/features/chatbot/helpers/textToSSML.js.map +1 -0
- package/dist/module/features/chatbot/index.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotModel.js +4 -6
- package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/module/features/chatbot/model/t2s.js +126 -33
- package/dist/module/features/chatbot/model/t2s.js.map +1 -1
- package/dist/module/features/chatbot/types/t2s.types.js.map +1 -1
- package/dist/module/index.js +0 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/types/common.types.js +0 -2
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts +4 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +4 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/helpers/textToSSML.d.ts +7 -0
- package/dist/typescript/commonjs/features/chatbot/helpers/textToSSML.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/index.d.ts +1 -1
- package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +20 -9
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +2 -0
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +10 -0
- package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +0 -1
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/types/common.types.d.ts +0 -2
- package/dist/typescript/commonjs/types/common.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts +4 -1
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +4 -1
- package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/helpers/textToSSML.d.ts +7 -0
- package/dist/typescript/module/features/chatbot/helpers/textToSSML.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/index.d.ts +1 -1
- package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts +20 -9
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts +2 -0
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +10 -0
- package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +0 -1
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/types/common.types.d.ts +0 -2
- package/dist/typescript/module/types/common.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
- package/src/features/chatbot/components/Chat/Chat.tsx +28 -19
- package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +3 -1
- package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +30 -3
- package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +4 -0
- package/src/features/chatbot/components/Chatbot.tsx +7 -0
- package/src/features/chatbot/helpers/textToSSML.ts +15 -0
- package/src/features/chatbot/index.ts +1 -1
- package/src/features/chatbot/model/ChatBotModel.ts +3 -7
- package/src/features/chatbot/model/t2s.ts +147 -32
- package/src/features/chatbot/types/api.types.ts +1 -3
- package/src/features/chatbot/types/t2s.types.ts +7 -0
- package/src/index.ts +0 -1
- package/src/types/common.types.ts +0 -4
- package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -34
- package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +0 -1
- package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +0 -68
- package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +0 -1
- package/dist/commonjs/features/openEnded/index.js +0 -48
- package/dist/commonjs/features/openEnded/index.js.map +0 -1
- package/dist/commonjs/features/openEnded/oe.helpers.js +0 -26
- package/dist/commonjs/features/openEnded/oe.helpers.js.map +0 -1
- package/dist/commonjs/features/openEnded/oe.types.js +0 -14
- package/dist/commonjs/features/openEnded/oe.types.js.map +0 -1
- package/dist/commonjs/shared/common.constants.js +0 -9
- package/dist/commonjs/shared/common.constants.js.map +0 -1
- package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -28
- package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +0 -1
- package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +0 -62
- package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +0 -1
- package/dist/module/features/openEnded/index.js +0 -7
- package/dist/module/features/openEnded/index.js.map +0 -1
- package/dist/module/features/openEnded/oe.helpers.js +0 -21
- package/dist/module/features/openEnded/oe.helpers.js.map +0 -1
- package/dist/module/features/openEnded/oe.types.js +0 -10
- package/dist/module/features/openEnded/oe.types.js.map +0 -1
- package/dist/module/shared/common.constants.js +0 -5
- package/dist/module/shared/common.constants.js.map +0 -1
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +0 -7
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts +0 -12
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/openEnded/index.d.ts +0 -5
- package/dist/typescript/commonjs/features/openEnded/index.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts +0 -13
- package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts +0 -7
- package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts.map +0 -1
- package/dist/typescript/commonjs/shared/common.constants.d.ts +0 -2
- package/dist/typescript/commonjs/shared/common.constants.d.ts.map +0 -1
- package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +0 -7
- package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +0 -1
- package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts +0 -12
- package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +0 -1
- package/dist/typescript/module/features/openEnded/index.d.ts +0 -5
- package/dist/typescript/module/features/openEnded/index.d.ts.map +0 -1
- package/dist/typescript/module/features/openEnded/oe.helpers.d.ts +0 -13
- package/dist/typescript/module/features/openEnded/oe.helpers.d.ts.map +0 -1
- package/dist/typescript/module/features/openEnded/oe.types.d.ts +0 -7
- package/dist/typescript/module/features/openEnded/oe.types.d.ts.map +0 -1
- package/dist/typescript/module/shared/common.constants.d.ts +0 -2
- package/dist/typescript/module/shared/common.constants.d.ts.map +0 -1
- package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +0 -26
- package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +0 -68
- package/src/features/openEnded/index.ts +0 -4
- package/src/features/openEnded/oe.helpers.ts +0 -31
- package/src/features/openEnded/oe.types.ts +0 -6
- package/src/shared/common.constants.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACV,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EAEd,mBAAmB,EAEnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,qBAAa,YAAY;IACvB,SAAgB,WAAW,qBAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,SAAgB,aAAa,uBAE3B;IACF,SAAgB,GAAG,EAAE,UAAU,CAAA;IAE/B,SAAgB,WAAW,EAAE,kBAAkB,CAAA;IAC/C,SAAgB,GAAG,EAAE,qBAAqB,CAAA;IAC1C,SAAgB,aAAa,EAAE,kBAAkB,CAAA;IACjD,SAAgB,SAAS,mBAAyB;IAElD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,SAAgB,WAAW,wBAAkC;IAE7D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,4BAA4B,CAAC,CAAiC;IAEtE,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,yBAA0E;IAE1F,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,SAAgB,eAAe,+BAAwC;IAEvE,SAAgB,UAAU,0DAAuC;IACjE,SAAgB,QAAQ,uCAAiC;IAEzD,SAAgB,eAAe,4CAAyB;IACxD,SAAgB,eAAe,yBAAuC;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,SAAgB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEnD,SAAgB,gBAAgB;;;;;;OAG/B;gBAEW,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAa,EAAE,UAAU,EAAE,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACV,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EAEd,mBAAmB,EAEnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,qBAAa,YAAY;IACvB,SAAgB,WAAW,qBAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,SAAgB,aAAa,uBAE3B;IACF,SAAgB,GAAG,EAAE,UAAU,CAAA;IAE/B,SAAgB,WAAW,EAAE,kBAAkB,CAAA;IAC/C,SAAgB,GAAG,EAAE,qBAAqB,CAAA;IAC1C,SAAgB,aAAa,EAAE,kBAAkB,CAAA;IACjD,SAAgB,SAAS,mBAAyB;IAElD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,SAAgB,WAAW,wBAAkC;IAE7D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,4BAA4B,CAAC,CAAiC;IAEtE,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,yBAA0E;IAE1F,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,SAAgB,eAAe,+BAAwC;IAEvE,SAAgB,UAAU,0DAAuC;IACjE,SAAgB,QAAQ,uCAAiC;IAEzD,SAAgB,eAAe,4CAAyB;IACxD,SAAgB,eAAe,yBAAuC;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,SAAgB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEnD,SAAgB,gBAAgB;;;;;;OAG/B;gBAEW,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAa,EAAE,UAAU,EAAE,EAAE,iBAAiB;IA2G5F,OAAO,CAAC,uBAAuB;IAiExB,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAa7B,4BAA4B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;IAa1D,QAAQ,CAAC,MAAM,EAAE,SAAS;IAK1B,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IAMzD,SAAgB,iBAAiB,wEAAA;IACjC,SAAgB,iBAAiB,yDAAiC;IAE3D,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAKvD,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAI1D,SAAgB,kBAAkB,YAAa,uBAAuB,UAGrE;IAEM,WAAW,CAAC,GAAG,EAAE,MAAM;IAMvB,SAAS,+CAiBd;IAEF,SAAgB,KAAK,yCAMnB;IAEK,SAAS;IAST,8BAA8B;CAItC"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { Store } from 'effector';
|
|
2
1
|
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants';
|
|
3
2
|
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types';
|
|
4
3
|
import { ChatbotAPI } from './ChatbotApi';
|
|
5
|
-
import {
|
|
4
|
+
import { Timepoint } from '../types/api.types';
|
|
6
5
|
type ChatTextToSpeechModelProps = {
|
|
7
6
|
api: ChatbotAPI;
|
|
8
|
-
$currentChatData: Store<ChatItem>;
|
|
9
|
-
$isTranslated: Store<boolean>;
|
|
10
7
|
};
|
|
11
8
|
export type T2SConfig = {
|
|
12
9
|
audioProvider?: AudioProvider;
|
|
13
10
|
textSanitizer?: (speech: string) => string;
|
|
11
|
+
isHighlightEnabled?: boolean;
|
|
14
12
|
};
|
|
15
13
|
type AudioConfig = {
|
|
16
14
|
voice?: typeof DEFAULT_VOICE;
|
|
@@ -19,21 +17,34 @@ type AudioConfig = {
|
|
|
19
17
|
export declare class ChatTextToSpeechModel {
|
|
20
18
|
private readonly api;
|
|
21
19
|
private readonly audioCache;
|
|
22
|
-
private readonly
|
|
23
|
-
private readonly $isTranslated;
|
|
20
|
+
private readonly highlightCache;
|
|
24
21
|
private audioProvider;
|
|
22
|
+
private isHighlightEnabled;
|
|
23
|
+
private lastHighlightedIndex;
|
|
25
24
|
readonly setCurrentPlayingId: import("effector").EventCallable<string | null>;
|
|
26
25
|
readonly $currentPlayingId: import("effector").StoreWritable<string | null>;
|
|
27
26
|
readonly setStatus: import("effector").EventCallable<AudioStatus>;
|
|
28
27
|
readonly $status: import("effector").StoreWritable<AudioStatus>;
|
|
28
|
+
readonly setTimepoints: import("effector").EventCallable<Timepoint[]>;
|
|
29
|
+
readonly $timepoints: import("effector").StoreWritable<Timepoint[]>;
|
|
30
|
+
readonly setTime: import("effector").EventCallable<number>;
|
|
31
|
+
readonly $time: import("effector").StoreWritable<number>;
|
|
32
|
+
readonly $highlightedWordIndex: import("effector").Store<number | null>;
|
|
33
|
+
readonly $highlightState: import("effector").Store<{
|
|
34
|
+
highlightedWordIndex: number | null;
|
|
35
|
+
playingId: string | null;
|
|
36
|
+
status: AudioStatus;
|
|
37
|
+
}>;
|
|
29
38
|
private audioConfig;
|
|
30
39
|
private textSanitizer;
|
|
31
|
-
constructor({ api
|
|
40
|
+
constructor({ api }: ChatTextToSpeechModelProps);
|
|
32
41
|
setAudioConfig(config: AudioConfig | null): void;
|
|
33
|
-
setConfig({ audioProvider, textSanitizer }: T2SConfig): void;
|
|
42
|
+
setConfig({ audioProvider, textSanitizer, isHighlightEnabled }: T2SConfig): void;
|
|
34
43
|
private getCacheKey;
|
|
35
44
|
play({ message, isTranslated }: PlayTextToSpeechProps): Promise<void>;
|
|
36
|
-
|
|
45
|
+
private setupTimeTracking;
|
|
46
|
+
private onPlaybackComplete;
|
|
47
|
+
private resetHighlight;
|
|
37
48
|
stop(): void;
|
|
38
49
|
readonly reset: import("effector").Effect<void, void, Error>;
|
|
39
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAc9C,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAOD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,oBAAoB,CAAsB;IAElD,QAAQ,CAAC,mBAAmB,kDAA+B;IAC3D,QAAQ,CAAC,iBAAiB,kDAA0C;IACpE,QAAQ,CAAC,SAAS,gDAA6B;IAC/C,QAAQ,CAAC,OAAO,gDAA+C;IAE/D,QAAQ,CAAC,aAAa,gDAA6B;IACnD,QAAQ,CAAC,WAAW,gDAAkC;IAEtD,QAAQ,CAAC,OAAO,2CAAwB;IACxC,QAAQ,CAAC,KAAK,2CAA2B;IAEzC,QAAQ,CAAC,qBAAqB,0CAiB7B;IAED,QAAQ,CAAC,eAAe;;;;OAItB;IAEF,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,EAAE,0BAA0B;IAIxC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,SAAS;IAMhF,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IAkGlE,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,kBAAkB,CAKzB;IAED,OAAO,CAAC,cAAc;IAMf,IAAI;IAKX,SAAgB,KAAK,+CAMnB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElE,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,GAAG,IAAI,CAAA;AAER,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE;QACJ,YAAY,EAAE;YAAE,cAAc,EAAE,MAAM,CAAC;YAAC,sBAAsB,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC3E,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { ConversationMessage } from './units.types';
|
|
2
3
|
export declare enum AudioStatus {
|
|
3
4
|
PLAYING = "playing",
|
|
@@ -9,6 +10,15 @@ export type AudioProvider = {
|
|
|
9
10
|
pause: () => void;
|
|
10
11
|
resume: () => void;
|
|
11
12
|
stop: () => void;
|
|
13
|
+
onTimeUpdate?: (callback: ((time: number) => void) | null) => void;
|
|
14
|
+
getCurrentTime?: () => number;
|
|
15
|
+
};
|
|
16
|
+
export type HighlightConfig = {
|
|
17
|
+
MessageRenderer?: React.ComponentType<{
|
|
18
|
+
text: string;
|
|
19
|
+
highlightedIndex: number | null;
|
|
20
|
+
colorScheme?: string;
|
|
21
|
+
}>;
|
|
12
22
|
};
|
|
13
23
|
export type PlayTextToSpeechProps = {
|
|
14
24
|
message: ConversationMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/t2s.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"t2s.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/t2s.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAClE,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/G,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA"}
|
|
@@ -9,6 +9,5 @@ export * from './features/problemSelector';
|
|
|
9
9
|
export * from './features/gifCelebrations';
|
|
10
10
|
export * from './features/exampleSolution';
|
|
11
11
|
export * from './features/keyboard';
|
|
12
|
-
export * from './features/openEnded';
|
|
13
12
|
export * from './shared/icons';
|
|
14
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { ComponentType, PropsWithChildren } from 'react';
|
|
2
2
|
import { ChatbotModel } from '../../model/ChatBotModel';
|
|
3
3
|
import { ColorScheme } from '../../types/style.types';
|
|
4
|
+
import { HighlightConfig } from '../../types/t2s.types';
|
|
4
5
|
type ChatProps = {
|
|
5
6
|
model: ChatbotModel;
|
|
6
7
|
isHintFeedback: boolean;
|
|
@@ -8,7 +9,9 @@ type ChatProps = {
|
|
|
8
9
|
isInputDisabled?: boolean;
|
|
9
10
|
colorScheme?: ColorScheme;
|
|
10
11
|
MessageWrapper?: ComponentType<PropsWithChildren>;
|
|
12
|
+
isHighlightEnabled?: boolean;
|
|
13
|
+
highlightConfig?: HighlightConfig;
|
|
11
14
|
};
|
|
12
|
-
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme, MessageWrapper, }: ChatProps) => React.JSX.Element;
|
|
15
|
+
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme, MessageWrapper, isHighlightEnabled, highlightConfig, }: ChatProps) => React.JSX.Element;
|
|
13
16
|
export {};
|
|
14
17
|
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAQvD,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,IAAI,yIASd,SAAS,sBA2EX,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { T2SState } from '../../types/t2s.types';
|
|
2
|
+
import { HighlightConfig, T2SState } from '../../types/t2s.types';
|
|
3
3
|
import { MessageVariant } from '../../types/model.types';
|
|
4
4
|
import { ConversationMessage } from '../../types/units.types';
|
|
5
5
|
import { ColorScheme } from '../../types/style.types';
|
|
@@ -11,6 +11,8 @@ type ChatMessageProps = {
|
|
|
11
11
|
withErrorSpotting?: boolean;
|
|
12
12
|
withIcon?: boolean;
|
|
13
13
|
colorScheme?: ColorScheme;
|
|
14
|
+
highlightedWordIndex?: number | null;
|
|
15
|
+
highlightConfig?: HighlightConfig;
|
|
14
16
|
};
|
|
15
17
|
export type VariantProps = Omit<ChatMessageProps, 'variant'>;
|
|
16
18
|
export declare const ChatMessage: ({ variant, ...props }: ChatMessageProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAI5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAI5C,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,cAAc,CAAA;IACvB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;AAO5D,eAAO,MAAM,WAAW,0BAA2B,gBAAgB,sBAGlE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ConversationMessage } from '../../types/units.types';
|
|
3
|
-
import { T2SState } from '../../types/t2s.types';
|
|
3
|
+
import { HighlightConfig, T2SState } from '../../types/t2s.types';
|
|
4
4
|
import { ColorScheme } from '../../types/style.types';
|
|
5
5
|
import { MessageVariant } from '../../types/model.types';
|
|
6
6
|
type MessageContentProps = {
|
|
@@ -10,7 +10,9 @@ type MessageContentProps = {
|
|
|
10
10
|
variant: MessageVariant;
|
|
11
11
|
colorScheme?: ColorScheme;
|
|
12
12
|
withErrorSpotting?: boolean;
|
|
13
|
+
highlightedWordIndex?: number | null;
|
|
14
|
+
highlightConfig?: HighlightConfig;
|
|
13
15
|
};
|
|
14
|
-
export declare const MessageContent: ({ message, text, t2sState, variant, colorScheme, withErrorSpotting, }: MessageContentProps) => React.JSX.Element;
|
|
16
|
+
export declare const MessageContent: ({ message, text, t2sState, variant, colorScheme, withErrorSpotting, highlightedWordIndex, highlightConfig, }: MessageContentProps) => React.JSX.Element;
|
|
15
17
|
export {};
|
|
16
18
|
//# sourceMappingURL=MessageContent.d.ts.map
|
package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageContent.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/MessageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageContent.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/MessageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAIrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AA0ED,eAAO,MAAM,cAAc,iHA5BxB,mBAAmB,sBA+BpB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { VariantProps } from './ChatMessage';
|
|
3
|
-
export declare const ReceivedMessage: ({ message, isTranslated, t2sState, withIcon, colorScheme, withErrorSpotting, }: VariantProps) => React.JSX.Element;
|
|
3
|
+
export declare const ReceivedMessage: ({ message, isTranslated, t2sState, withIcon, colorScheme, withErrorSpotting, highlightedWordIndex, highlightConfig, }: VariantProps) => React.JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ReceivedMessage.d.ts.map
|
package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReceivedMessage.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAM5C,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"ReceivedMessage.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAM5C,eAAO,MAAM,eAAe,0HASzB,YAAY,sBAyBd,CAAA"}
|
|
@@ -2,6 +2,7 @@ import React, { ComponentType, PropsWithChildren } from 'react';
|
|
|
2
2
|
import { ChatbotModel } from '../model/ChatBotModel';
|
|
3
3
|
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants';
|
|
4
4
|
import { ColorScheme } from '../types/style.types';
|
|
5
|
+
import { HighlightConfig } from '../types/t2s.types';
|
|
5
6
|
type ChatbotProps = {
|
|
6
7
|
model: ChatbotModel;
|
|
7
8
|
isHintFeedback: boolean;
|
|
@@ -17,7 +18,9 @@ type ChatbotProps = {
|
|
|
17
18
|
};
|
|
18
19
|
isInputDisabled?: boolean;
|
|
19
20
|
colorScheme?: ColorScheme;
|
|
21
|
+
isHighlightEnabled?: boolean;
|
|
22
|
+
highlightConfig?: HighlightConfig;
|
|
20
23
|
};
|
|
21
|
-
export declare const Chatbot: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, textToSpeechConfig, ButtonWrapper, iconSize, colorScheme, }: ChatbotProps) => React.JSX.Element | null;
|
|
24
|
+
export declare const Chatbot: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, textToSpeechConfig, ButtonWrapper, iconSize, colorScheme, isHighlightEnabled, highlightConfig, }: ChatbotProps) => React.JSX.Element | null;
|
|
22
25
|
export {};
|
|
23
26
|
//# sourceMappingURL=Chatbot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE;QACnB,KAAK,EAAE,OAAO,aAAa,CAAA;QAC3B,WAAW,EAAE,OAAO,YAAY,CAAA;KACjC,CAAA;IACD,aAAa,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,OAAO,sKAWjB,YAAY,6BA2Cd,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts plain text to SSML with word marks for TTS highlighting.
|
|
3
|
+
* "Hello world" -> '<speak><mark name="w_0"/>Hello <mark name="w_1"/>world</speak>'
|
|
4
|
+
*/
|
|
5
|
+
export declare const textToSSML: (text: string) => string;
|
|
6
|
+
export declare const getWordCount: (text: string) => number;
|
|
7
|
+
//# sourceMappingURL=textToSSML.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textToSSML.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/helpers/textToSSML.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAMzC,CAAA;AAED,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAE3C,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Chatbot } from './components/Chatbot';
|
|
2
2
|
export { ChatbotModel } from './model/ChatBotModel';
|
|
3
|
-
export { AudioStatus, type AudioProvider } from './types/t2s.types';
|
|
3
|
+
export { AudioStatus, type AudioProvider, type HighlightConfig } from './types/t2s.types';
|
|
4
4
|
export { MessageVariant, type ChatbotModelProps, type IChatDrawBoardAdapter, } from './types/model.types';
|
|
5
5
|
export type { PostMessageResponse } from './types/api.types';
|
|
6
6
|
export { DefaultMessagesCreator } from './model/DefaultMessageCreator';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACV,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EAEd,mBAAmB,EAEnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,qBAAa,YAAY;IACvB,SAAgB,WAAW,qBAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,SAAgB,aAAa,uBAE3B;IACF,SAAgB,GAAG,EAAE,UAAU,CAAA;IAE/B,SAAgB,WAAW,EAAE,kBAAkB,CAAA;IAC/C,SAAgB,GAAG,EAAE,qBAAqB,CAAA;IAC1C,SAAgB,aAAa,EAAE,kBAAkB,CAAA;IACjD,SAAgB,SAAS,mBAAyB;IAElD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,SAAgB,WAAW,wBAAkC;IAE7D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,4BAA4B,CAAC,CAAiC;IAEtE,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,yBAA0E;IAE1F,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,SAAgB,eAAe,+BAAwC;IAEvE,SAAgB,UAAU,0DAAuC;IACjE,SAAgB,QAAQ,uCAAiC;IAEzD,SAAgB,eAAe,4CAAyB;IACxD,SAAgB,eAAe,yBAAuC;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,SAAgB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEnD,SAAgB,gBAAgB;;;;;;OAG/B;gBAEW,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAa,EAAE,UAAU,EAAE,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACV,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EAEd,mBAAmB,EAEnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,qBAAa,YAAY;IACvB,SAAgB,WAAW,qBAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,SAAgB,aAAa,uBAE3B;IACF,SAAgB,GAAG,EAAE,UAAU,CAAA;IAE/B,SAAgB,WAAW,EAAE,kBAAkB,CAAA;IAC/C,SAAgB,GAAG,EAAE,qBAAqB,CAAA;IAC1C,SAAgB,aAAa,EAAE,kBAAkB,CAAA;IACjD,SAAgB,SAAS,mBAAyB;IAElD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,SAAgB,WAAW,wBAAkC;IAE7D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,4BAA4B,CAAC,CAAiC;IAEtE,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,yBAA0E;IAE1F,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,SAAgB,eAAe,+BAAwC;IAEvE,SAAgB,UAAU,0DAAuC;IACjE,SAAgB,QAAQ,uCAAiC;IAEzD,SAAgB,eAAe,4CAAyB;IACxD,SAAgB,eAAe,yBAAuC;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,SAAgB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEnD,SAAgB,gBAAgB;;;;;;OAG/B;gBAEW,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAa,EAAE,UAAU,EAAE,EAAE,iBAAiB;IA2G5F,OAAO,CAAC,uBAAuB;IAiExB,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAa7B,4BAA4B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;IAa1D,QAAQ,CAAC,MAAM,EAAE,SAAS;IAK1B,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IAMzD,SAAgB,iBAAiB,wEAAA;IACjC,SAAgB,iBAAiB,yDAAiC;IAE3D,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAKvD,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAI1D,SAAgB,kBAAkB,YAAa,uBAAuB,UAGrE;IAEM,WAAW,CAAC,GAAG,EAAE,MAAM;IAMvB,SAAS,+CAiBd;IAEF,SAAgB,KAAK,yCAMnB;IAEK,SAAS;IAST,8BAA8B;CAItC"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { Store } from 'effector';
|
|
2
1
|
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants';
|
|
3
2
|
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types';
|
|
4
3
|
import { ChatbotAPI } from './ChatbotApi';
|
|
5
|
-
import {
|
|
4
|
+
import { Timepoint } from '../types/api.types';
|
|
6
5
|
type ChatTextToSpeechModelProps = {
|
|
7
6
|
api: ChatbotAPI;
|
|
8
|
-
$currentChatData: Store<ChatItem>;
|
|
9
|
-
$isTranslated: Store<boolean>;
|
|
10
7
|
};
|
|
11
8
|
export type T2SConfig = {
|
|
12
9
|
audioProvider?: AudioProvider;
|
|
13
10
|
textSanitizer?: (speech: string) => string;
|
|
11
|
+
isHighlightEnabled?: boolean;
|
|
14
12
|
};
|
|
15
13
|
type AudioConfig = {
|
|
16
14
|
voice?: typeof DEFAULT_VOICE;
|
|
@@ -19,21 +17,34 @@ type AudioConfig = {
|
|
|
19
17
|
export declare class ChatTextToSpeechModel {
|
|
20
18
|
private readonly api;
|
|
21
19
|
private readonly audioCache;
|
|
22
|
-
private readonly
|
|
23
|
-
private readonly $isTranslated;
|
|
20
|
+
private readonly highlightCache;
|
|
24
21
|
private audioProvider;
|
|
22
|
+
private isHighlightEnabled;
|
|
23
|
+
private lastHighlightedIndex;
|
|
25
24
|
readonly setCurrentPlayingId: import("effector").EventCallable<string | null>;
|
|
26
25
|
readonly $currentPlayingId: import("effector").StoreWritable<string | null>;
|
|
27
26
|
readonly setStatus: import("effector").EventCallable<AudioStatus>;
|
|
28
27
|
readonly $status: import("effector").StoreWritable<AudioStatus>;
|
|
28
|
+
readonly setTimepoints: import("effector").EventCallable<Timepoint[]>;
|
|
29
|
+
readonly $timepoints: import("effector").StoreWritable<Timepoint[]>;
|
|
30
|
+
readonly setTime: import("effector").EventCallable<number>;
|
|
31
|
+
readonly $time: import("effector").StoreWritable<number>;
|
|
32
|
+
readonly $highlightedWordIndex: import("effector").Store<number | null>;
|
|
33
|
+
readonly $highlightState: import("effector").Store<{
|
|
34
|
+
highlightedWordIndex: number | null;
|
|
35
|
+
playingId: string | null;
|
|
36
|
+
status: AudioStatus;
|
|
37
|
+
}>;
|
|
29
38
|
private audioConfig;
|
|
30
39
|
private textSanitizer;
|
|
31
|
-
constructor({ api
|
|
40
|
+
constructor({ api }: ChatTextToSpeechModelProps);
|
|
32
41
|
setAudioConfig(config: AudioConfig | null): void;
|
|
33
|
-
setConfig({ audioProvider, textSanitizer }: T2SConfig): void;
|
|
42
|
+
setConfig({ audioProvider, textSanitizer, isHighlightEnabled }: T2SConfig): void;
|
|
34
43
|
private getCacheKey;
|
|
35
44
|
play({ message, isTranslated }: PlayTextToSpeechProps): Promise<void>;
|
|
36
|
-
|
|
45
|
+
private setupTimeTracking;
|
|
46
|
+
private onPlaybackComplete;
|
|
47
|
+
private resetHighlight;
|
|
37
48
|
stop(): void;
|
|
38
49
|
readonly reset: import("effector").Effect<void, void, Error>;
|
|
39
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAc9C,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAOD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,oBAAoB,CAAsB;IAElD,QAAQ,CAAC,mBAAmB,kDAA+B;IAC3D,QAAQ,CAAC,iBAAiB,kDAA0C;IACpE,QAAQ,CAAC,SAAS,gDAA6B;IAC/C,QAAQ,CAAC,OAAO,gDAA+C;IAE/D,QAAQ,CAAC,aAAa,gDAA6B;IACnD,QAAQ,CAAC,WAAW,gDAAkC;IAEtD,QAAQ,CAAC,OAAO,2CAAwB;IACxC,QAAQ,CAAC,KAAK,2CAA2B;IAEzC,QAAQ,CAAC,qBAAqB,0CAiB7B;IAED,QAAQ,CAAC,eAAe;;;;OAItB;IAEF,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,EAAE,0BAA0B;IAIxC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,SAAS;IAMhF,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IAkGlE,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,kBAAkB,CAKzB;IAED,OAAO,CAAC,cAAc;IAMf,IAAI;IAKX,SAAgB,KAAK,+CAMnB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElE,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,GAAG,IAAI,CAAA;AAER,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE;QACJ,YAAY,EAAE;YAAE,cAAc,EAAE,MAAM,CAAC;YAAC,sBAAsB,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC3E,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { ConversationMessage } from './units.types';
|
|
2
3
|
export declare enum AudioStatus {
|
|
3
4
|
PLAYING = "playing",
|
|
@@ -9,6 +10,15 @@ export type AudioProvider = {
|
|
|
9
10
|
pause: () => void;
|
|
10
11
|
resume: () => void;
|
|
11
12
|
stop: () => void;
|
|
13
|
+
onTimeUpdate?: (callback: ((time: number) => void) | null) => void;
|
|
14
|
+
getCurrentTime?: () => number;
|
|
15
|
+
};
|
|
16
|
+
export type HighlightConfig = {
|
|
17
|
+
MessageRenderer?: React.ComponentType<{
|
|
18
|
+
text: string;
|
|
19
|
+
highlightedIndex: number | null;
|
|
20
|
+
colorScheme?: string;
|
|
21
|
+
}>;
|
|
12
22
|
};
|
|
13
23
|
export type PlayTextToSpeechProps = {
|
|
14
24
|
message: ConversationMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/t2s.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"t2s.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/t2s.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAClE,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/G,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA"}
|
|
@@ -9,6 +9,5 @@ export * from './features/problemSelector';
|
|
|
9
9
|
export * from './features/gifCelebrations';
|
|
10
10
|
export * from './features/exampleSolution';
|
|
11
11
|
export * from './features/keyboard';
|
|
12
|
-
export * from './features/openEnded';
|
|
13
12
|
export * from './shared/icons';
|
|
14
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# TTS Word-by-Word Highlighting
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Word-by-word text highlighting synchronized with text-to-speech playback in the chatbot. The feature is optional and enabled via props.
|
|
6
|
+
|
|
7
|
+
## How It Works
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
11
|
+
│ 1. User clicks TTS button on a message │
|
|
12
|
+
│ ↓ │
|
|
13
|
+
│ 2. Text is converted to SSML with word marks │
|
|
14
|
+
│ "Hello world" → <speak><mark name="w_0"/>Hello │
|
|
15
|
+
│ <mark name="w_1"/>world</speak> │
|
|
16
|
+
│ ↓ │
|
|
17
|
+
│ 3. Google TTS API returns audio + timepoints │
|
|
18
|
+
│ [{ markName: "w_0", timeSeconds: 0.0 }, │
|
|
19
|
+
│ { markName: "w_1", timeSeconds: 0.5 }] │
|
|
20
|
+
│ ↓ │
|
|
21
|
+
│ 4. Audio plays, ontimeupdate fires (~4x/sec) │
|
|
22
|
+
│ ↓ │
|
|
23
|
+
│ 5. Current time → find matching timepoint → word index │
|
|
24
|
+
│ ↓ │
|
|
25
|
+
│ 6. $highlightedWordIndex updates → UI re-renders highlighted │
|
|
26
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
// In students-web model setup
|
|
33
|
+
chatModel.bot.setUpT2S({
|
|
34
|
+
audioProvider: createT2SAudioProvider(),
|
|
35
|
+
textSanitizer: removeKatexPartFromTextToSpeech,
|
|
36
|
+
isHighlightEnabled: true, // Enable highlighting
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// In component
|
|
40
|
+
<Chatbot
|
|
41
|
+
model={chatModel.bot}
|
|
42
|
+
isHighlightEnabled={true}
|
|
43
|
+
highlightConfig={{
|
|
44
|
+
MessageRenderer: ChatbotHighlightedMessage,
|
|
45
|
+
}}
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Files Modified
|
|
50
|
+
|
|
51
|
+
### students-features
|
|
52
|
+
|
|
53
|
+
| File | Changes |
|
|
54
|
+
|------|---------|
|
|
55
|
+
| `types/t2s.types.ts` | Added `onTimeUpdate`, `getCurrentTime` to AudioProvider; added `HighlightConfig` type |
|
|
56
|
+
| `types/api.types.ts` | Added `ssml` option to GoogleText2SpeechPayload input |
|
|
57
|
+
| `helpers/textToSSML.ts` | NEW - Converts text to SSML with word marks |
|
|
58
|
+
| `model/t2s.ts` | Added `$highlightedWordIndex`, `$timepoints`, `$time` stores; SSML/timepoint handling |
|
|
59
|
+
| `components/Chatbot.tsx` | Added `isHighlightEnabled`, `highlightConfig` props |
|
|
60
|
+
| `components/Chat/Chat.tsx` | Passes highlight state to ChatMessage |
|
|
61
|
+
| `components/ChatMessage/*` | Passes highlight props through component chain |
|
|
62
|
+
| `components/ChatMessage/MessageContent.tsx` | Renders custom MessageRenderer when provided |
|
|
63
|
+
|
|
64
|
+
### students-web
|
|
65
|
+
|
|
66
|
+
| File | Changes |
|
|
67
|
+
|------|---------|
|
|
68
|
+
| `chatbot/helpers.ts` | Added `onTimeUpdate`, `getCurrentTime` to AudioProvider |
|
|
69
|
+
| `chatbot/components/ChatbotHighlightedMessage.tsx` | NEW - Renders words with highlight styling |
|
|
70
|
+
| `chatbot/components/ChatbotHighlightedMessage.module.scss` | NEW - Yellow highlight styles |
|
|
71
|
+
| `chatbot/model/model.ts` | Enabled `isHighlightEnabled: true` |
|
|
72
|
+
| `PracticeMode/chatbot/PracticeChatbot.tsx` | Passes highlightConfig with MessageRenderer |
|
|
73
|
+
|
|
74
|
+
## Key Components
|
|
75
|
+
|
|
76
|
+
### textToSSML (students-features)
|
|
77
|
+
```ts
|
|
78
|
+
textToSSML("Hello world")
|
|
79
|
+
// → '<speak><mark name="w_0"/>Hello <mark name="w_1"/>world</speak>'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### $highlightedWordIndex (students-features)
|
|
83
|
+
Effector store that computes current word index from timepoints + playback time.
|
|
84
|
+
|
|
85
|
+
### ChatbotHighlightedMessage (students-web)
|
|
86
|
+
```tsx
|
|
87
|
+
// Splits text, highlights word at highlightedIndex
|
|
88
|
+
<span className={isHighlighted ? styles.Highlighted : undefined}>
|
|
89
|
+
{word}
|
|
90
|
+
</span>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Data Flow
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
AudioProvider.onTimeUpdate(time)
|
|
97
|
+
↓
|
|
98
|
+
t2s.setTime(time)
|
|
99
|
+
↓
|
|
100
|
+
$highlightedWordIndex = findCurrentMark(timepoints, time) → parse index
|
|
101
|
+
↓
|
|
102
|
+
Chat.tsx: useUnit(model.t2s.$highlightedWordIndex)
|
|
103
|
+
↓
|
|
104
|
+
ChatMessage → ReceivedMessage → MessageContent
|
|
105
|
+
↓
|
|
106
|
+
MessageRenderer({ text, highlightedIndex })
|
|
107
|
+
↓
|
|
108
|
+
ChatbotHighlightedMessage renders highlighted word
|
|
109
|
+
```
|