@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.
Files changed (160) hide show
  1. package/dist/commonjs/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
  2. package/dist/commonjs/features/chatbot/components/Chat/Chat.js +25 -22
  3. package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
  4. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  5. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +20 -4
  6. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  7. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +6 -2
  8. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  9. package/dist/commonjs/features/chatbot/components/Chatbot.js +6 -2
  10. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  11. package/dist/commonjs/features/chatbot/helpers/textToSSML.js +22 -0
  12. package/dist/commonjs/features/chatbot/helpers/textToSSML.js.map +1 -0
  13. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +4 -6
  14. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  15. package/dist/commonjs/features/chatbot/model/t2s.js +125 -32
  16. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  17. package/dist/commonjs/features/chatbot/types/t2s.types.js.map +1 -1
  18. package/dist/commonjs/index.js +1 -13
  19. package/dist/commonjs/index.js.map +1 -1
  20. package/dist/commonjs/types/common.types.js +0 -4
  21. package/dist/module/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
  22. package/dist/module/features/chatbot/components/Chat/Chat.js +25 -22
  23. package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
  24. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  25. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +20 -4
  26. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  27. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +6 -2
  28. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  29. package/dist/module/features/chatbot/components/Chatbot.js +6 -2
  30. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  31. package/dist/module/features/chatbot/helpers/textToSSML.js +16 -0
  32. package/dist/module/features/chatbot/helpers/textToSSML.js.map +1 -0
  33. package/dist/module/features/chatbot/index.js.map +1 -1
  34. package/dist/module/features/chatbot/model/ChatBotModel.js +4 -6
  35. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  36. package/dist/module/features/chatbot/model/t2s.js +126 -33
  37. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  38. package/dist/module/features/chatbot/types/t2s.types.js.map +1 -1
  39. package/dist/module/index.js +0 -1
  40. package/dist/module/index.js.map +1 -1
  41. package/dist/module/types/common.types.js +0 -2
  42. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts +4 -1
  43. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  44. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
  45. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  46. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
  47. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  48. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  49. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  50. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +4 -1
  51. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  52. package/dist/typescript/commonjs/features/chatbot/helpers/textToSSML.d.ts +7 -0
  53. package/dist/typescript/commonjs/features/chatbot/helpers/textToSSML.d.ts.map +1 -0
  54. package/dist/typescript/commonjs/features/chatbot/index.d.ts +1 -1
  55. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  56. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  57. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +20 -9
  58. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  59. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +2 -0
  60. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  61. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +10 -0
  62. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
  63. package/dist/typescript/commonjs/index.d.ts +0 -1
  64. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  65. package/dist/typescript/commonjs/types/common.types.d.ts +0 -2
  66. package/dist/typescript/commonjs/types/common.types.d.ts.map +1 -1
  67. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts +4 -1
  68. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  69. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
  70. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  71. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
  72. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  73. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  74. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  75. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +4 -1
  76. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  77. package/dist/typescript/module/features/chatbot/helpers/textToSSML.d.ts +7 -0
  78. package/dist/typescript/module/features/chatbot/helpers/textToSSML.d.ts.map +1 -0
  79. package/dist/typescript/module/features/chatbot/index.d.ts +1 -1
  80. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  81. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  82. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +20 -9
  83. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  84. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +2 -0
  85. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  86. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +10 -0
  87. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
  88. package/dist/typescript/module/index.d.ts +0 -1
  89. package/dist/typescript/module/index.d.ts.map +1 -1
  90. package/dist/typescript/module/types/common.types.d.ts +0 -2
  91. package/dist/typescript/module/types/common.types.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/features/chatbot/TTS_HIGHLIGHTING.md +109 -0
  94. package/src/features/chatbot/components/Chat/Chat.tsx +28 -19
  95. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +3 -1
  96. package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +30 -3
  97. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +4 -0
  98. package/src/features/chatbot/components/Chatbot.tsx +7 -0
  99. package/src/features/chatbot/helpers/textToSSML.ts +15 -0
  100. package/src/features/chatbot/index.ts +1 -1
  101. package/src/features/chatbot/model/ChatBotModel.ts +3 -7
  102. package/src/features/chatbot/model/t2s.ts +147 -32
  103. package/src/features/chatbot/types/api.types.ts +1 -3
  104. package/src/features/chatbot/types/t2s.types.ts +7 -0
  105. package/src/index.ts +0 -1
  106. package/src/types/common.types.ts +0 -4
  107. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -34
  108. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +0 -1
  109. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +0 -68
  110. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +0 -1
  111. package/dist/commonjs/features/openEnded/index.js +0 -48
  112. package/dist/commonjs/features/openEnded/index.js.map +0 -1
  113. package/dist/commonjs/features/openEnded/oe.helpers.js +0 -26
  114. package/dist/commonjs/features/openEnded/oe.helpers.js.map +0 -1
  115. package/dist/commonjs/features/openEnded/oe.types.js +0 -14
  116. package/dist/commonjs/features/openEnded/oe.types.js.map +0 -1
  117. package/dist/commonjs/shared/common.constants.js +0 -9
  118. package/dist/commonjs/shared/common.constants.js.map +0 -1
  119. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -28
  120. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +0 -1
  121. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +0 -62
  122. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +0 -1
  123. package/dist/module/features/openEnded/index.js +0 -7
  124. package/dist/module/features/openEnded/index.js.map +0 -1
  125. package/dist/module/features/openEnded/oe.helpers.js +0 -21
  126. package/dist/module/features/openEnded/oe.helpers.js.map +0 -1
  127. package/dist/module/features/openEnded/oe.types.js +0 -10
  128. package/dist/module/features/openEnded/oe.types.js.map +0 -1
  129. package/dist/module/shared/common.constants.js +0 -5
  130. package/dist/module/shared/common.constants.js.map +0 -1
  131. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +0 -7
  132. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +0 -1
  133. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts +0 -12
  134. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +0 -1
  135. package/dist/typescript/commonjs/features/openEnded/index.d.ts +0 -5
  136. package/dist/typescript/commonjs/features/openEnded/index.d.ts.map +0 -1
  137. package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts +0 -13
  138. package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts.map +0 -1
  139. package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts +0 -7
  140. package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts.map +0 -1
  141. package/dist/typescript/commonjs/shared/common.constants.d.ts +0 -2
  142. package/dist/typescript/commonjs/shared/common.constants.d.ts.map +0 -1
  143. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +0 -7
  144. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +0 -1
  145. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts +0 -12
  146. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +0 -1
  147. package/dist/typescript/module/features/openEnded/index.d.ts +0 -5
  148. package/dist/typescript/module/features/openEnded/index.d.ts.map +0 -1
  149. package/dist/typescript/module/features/openEnded/oe.helpers.d.ts +0 -13
  150. package/dist/typescript/module/features/openEnded/oe.helpers.d.ts.map +0 -1
  151. package/dist/typescript/module/features/openEnded/oe.types.d.ts +0 -7
  152. package/dist/typescript/module/features/openEnded/oe.types.d.ts.map +0 -1
  153. package/dist/typescript/module/shared/common.constants.d.ts +0 -2
  154. package/dist/typescript/module/shared/common.constants.d.ts.map +0 -1
  155. package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +0 -26
  156. package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +0 -68
  157. package/src/features/openEnded/index.ts +0 -4
  158. package/src/features/openEnded/oe.helpers.ts +0 -31
  159. package/src/features/openEnded/oe.types.ts +0 -6
  160. 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;AACnE,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
+ {"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;IA+G5F,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
+ {"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 { ChatItem } from '../types/units.types';
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 $currentChatData;
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, $currentChatData, $isTranslated }: ChatTextToSpeechModelProps);
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
- playLatest(): Promise<void>;
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":"AAAA,OAAO,EAAsC,KAAK,EAAE,MAAM,UAAU,CAAA;AACpE,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,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;IACf,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAA;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAA;IAC9B,OAAO,CAAC,aAAa,CAA6B;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,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,0BAA0B;IAMzE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS;IAK5D,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IA+DrD,UAAU;IAQhB,IAAI;IAKX,SAAgB,KAAK,+CAInB;CACH"}
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"}
@@ -65,6 +65,8 @@ export type GoogleTranslateResponse = {
65
65
  export type GoogleText2SpeechPayload = {
66
66
  input: {
67
67
  text: string;
68
+ } | {
69
+ ssml: string;
68
70
  };
69
71
  voice: {
70
72
  languageCode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"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"}
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;CACjB,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"}
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,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA"}
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,7 +1,5 @@
1
- import { COLORS } from '@magmamath/react-native-ui';
2
1
  export type Size = {
3
2
  width: number;
4
3
  height: number;
5
4
  };
6
- export type ColorValue = (typeof COLORS)[keyof typeof COLORS];
7
5
  //# sourceMappingURL=common.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAA"}
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;AASrD,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;CAClD,CAAA;AAED,eAAO,MAAM,IAAI,oGAOd,SAAS,sBAuEX,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;AAChD,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;CAC1B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;AAO5D,eAAO,MAAM,WAAW,0BAA2B,gBAAgB,sBAGlE,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
@@ -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;AAChD,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;CAC5B,CAAA;AAiDD,eAAO,MAAM,cAAc,0EAlBxB,mBAAmB,sBAqBpB,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
@@ -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,mFAOzB,YAAY,sBAuBd,CAAA"}
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;AAElD,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;CAC1B,CAAA;AAED,eAAO,MAAM,OAAO,iIASjB,YAAY,6BAyCd,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;AACnE,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
+ {"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;IA+G5F,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
+ {"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 { ChatItem } from '../types/units.types';
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 $currentChatData;
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, $currentChatData, $isTranslated }: ChatTextToSpeechModelProps);
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
- playLatest(): Promise<void>;
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":"AAAA,OAAO,EAAsC,KAAK,EAAE,MAAM,UAAU,CAAA;AACpE,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,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;IACf,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAA;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAA;IAC9B,OAAO,CAAC,aAAa,CAA6B;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,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,0BAA0B;IAMzE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS;IAK5D,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IA+DrD,UAAU;IAQhB,IAAI;IAKX,SAAgB,KAAK,+CAInB;CACH"}
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"}
@@ -65,6 +65,8 @@ export type GoogleTranslateResponse = {
65
65
  export type GoogleText2SpeechPayload = {
66
66
  input: {
67
67
  text: string;
68
+ } | {
69
+ ssml: string;
68
70
  };
69
71
  voice: {
70
72
  languageCode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/types/api.types.ts"],"names":[],"mappings":"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"}
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;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAA;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG;IAClC,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC/B,CAAA"}
@@ -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;CACjB,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"}
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,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA"}
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,7 +1,5 @@
1
- import { COLORS } from '@magmamath/react-native-ui';
2
1
  export type Size = {
3
2
  width: number;
4
3
  height: number;
5
4
  };
6
- export type ColorValue = (typeof COLORS)[keyof typeof COLORS];
7
5
  //# sourceMappingURL=common.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../src/types/common.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAA"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "0.9.110",
3
+ "version": "0.9.111-rc-1",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -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
+ ```