@anker-in/campaign-ui 0.2.11-beta.3 → 0.2.11-beta.31

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 (491) hide show
  1. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.d.ts +63 -0
  2. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js +2 -0
  3. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
  4. package/dist/cjs/components/LiveChatWidget/api/chat.d.ts +46 -0
  5. package/dist/cjs/components/LiveChatWidget/api/chat.js +3 -0
  6. package/dist/cjs/components/LiveChatWidget/api/chat.js.map +7 -0
  7. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
  8. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js +2 -0
  9. package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
  10. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
  11. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js +2 -0
  12. package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
  13. package/dist/cjs/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
  14. package/dist/cjs/components/LiveChatWidget/components/ChatInput.js +2 -0
  15. package/dist/cjs/components/LiveChatWidget/components/ChatInput.js.map +7 -0
  16. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
  17. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js +5 -0
  18. package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
  19. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
  20. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js +2 -0
  21. package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
  22. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
  23. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
  24. package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
  25. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
  26. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
  27. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
  28. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
  29. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
  30. package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
  31. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
  32. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
  33. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
  34. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +41 -0
  35. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
  36. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
  37. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -0
  38. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
  39. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
  40. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
  41. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
  42. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
  43. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +81 -0
  44. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
  45. package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
  46. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
  47. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
  48. package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
  49. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
  50. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
  51. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
  52. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
  53. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
  54. package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
  55. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
  56. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js +2 -0
  57. package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
  58. package/dist/cjs/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
  59. package/dist/cjs/components/LiveChatWidget/components/MessageContent.js +2 -0
  60. package/dist/cjs/components/LiveChatWidget/components/MessageContent.js.map +7 -0
  61. package/dist/cjs/components/LiveChatWidget/components/MessageList.d.ts +74 -0
  62. package/dist/cjs/components/LiveChatWidget/components/MessageList.js +5 -0
  63. package/dist/cjs/components/LiveChatWidget/components/MessageList.js.map +7 -0
  64. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
  65. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
  66. package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
  67. package/dist/cjs/components/LiveChatWidget/constants.d.ts +13 -0
  68. package/dist/cjs/components/LiveChatWidget/constants.js +2 -0
  69. package/dist/cjs/components/LiveChatWidget/constants.js.map +7 -0
  70. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.d.ts +60 -0
  71. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
  72. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
  73. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.d.ts +151 -0
  74. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js +2 -0
  75. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
  76. package/dist/cjs/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
  77. package/dist/cjs/components/LiveChatWidget/hooks/useSession.js +2 -0
  78. package/dist/cjs/components/LiveChatWidget/hooks/useSession.js.map +7 -0
  79. package/dist/cjs/components/LiveChatWidget/index.d.ts +12 -0
  80. package/dist/cjs/components/LiveChatWidget/index.js +2 -0
  81. package/dist/cjs/components/LiveChatWidget/index.js.map +7 -0
  82. package/dist/cjs/components/LiveChatWidget/types.d.ts +767 -0
  83. package/dist/cjs/components/LiveChatWidget/types.js +2 -0
  84. package/dist/cjs/components/LiveChatWidget/types.js.map +7 -0
  85. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
  86. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js +2 -0
  87. package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
  88. package/dist/cjs/components/LiveChatWidget/utils/fetcher.d.ts +36 -0
  89. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js +2 -0
  90. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js.map +7 -0
  91. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
  92. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js +2 -0
  93. package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
  94. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
  95. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js +2 -0
  96. package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
  97. package/dist/cjs/components/LiveChatWidget/utils/userId.d.ts +18 -0
  98. package/dist/cjs/components/LiveChatWidget/utils/userId.js +2 -0
  99. package/dist/cjs/components/LiveChatWidget/utils/userId.js.map +7 -0
  100. package/dist/cjs/components/LiveChatWidget/utils/validation.d.ts +37 -0
  101. package/dist/cjs/components/LiveChatWidget/utils/validation.js +2 -0
  102. package/dist/cjs/components/LiveChatWidget/utils/validation.js.map +7 -0
  103. package/dist/cjs/components/chat/markdown.js +1 -1
  104. package/dist/cjs/components/chat/markdown.js.map +2 -2
  105. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
  106. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  107. package/dist/cjs/components/credits/context/memberPriceConst.d.ts +0 -5
  108. package/dist/cjs/components/credits/context/memberPriceConst.js +1 -1
  109. package/dist/cjs/components/credits/context/memberPriceConst.js.map +3 -3
  110. package/dist/cjs/components/credits/context/memberPriceTypes.d.ts +1 -22
  111. package/dist/cjs/components/credits/context/memberPriceTypes.js +1 -1
  112. package/dist/cjs/components/credits/context/memberPriceTypes.js.map +1 -1
  113. package/dist/cjs/components/credits/context/provider.d.ts +16 -1
  114. package/dist/cjs/components/credits/context/provider.js +1 -1
  115. package/dist/cjs/components/credits/context/provider.js.map +3 -3
  116. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  117. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  118. package/dist/cjs/components/credits/creditsBanner/index.d.ts +2 -0
  119. package/dist/cjs/components/credits/creditsBanner/index.js +12 -1
  120. package/dist/cjs/components/credits/creditsBanner/index.js.map +3 -3
  121. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js +2 -0
  122. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
  123. package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
  124. package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
  125. package/dist/cjs/components/credits/creditsCash/CreditsCash.js +1 -1
  126. package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +3 -3
  127. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  128. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  129. package/dist/cjs/components/credits/creditsCash/type.d.ts +1 -0
  130. package/dist/cjs/components/credits/creditsCash/type.js +1 -1
  131. package/dist/cjs/components/credits/creditsCash/type.js.map +1 -1
  132. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  133. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
  134. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  135. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +2 -2
  136. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  137. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  138. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  139. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  140. package/dist/cjs/components/credits/creditsMemberPrice/type.d.ts +3 -5
  141. package/dist/cjs/components/credits/creditsMemberPrice/type.js +1 -1
  142. package/dist/cjs/components/credits/creditsMemberPrice/type.js.map +1 -1
  143. package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
  144. package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
  145. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  146. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  147. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  148. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  149. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  150. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  151. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  152. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  153. package/dist/cjs/components/index.d.ts +3 -1
  154. package/dist/cjs/components/index.js +1 -1
  155. package/dist/cjs/components/index.js.map +3 -3
  156. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  157. package/dist/cjs/components/registration/authCodeActivate/index.js.map +2 -2
  158. package/dist/cjs/stories/CartCard.stories.d.ts +33 -0
  159. package/dist/cjs/stories/CartCard.stories.js +21 -0
  160. package/dist/cjs/stories/CartCard.stories.js.map +7 -0
  161. package/dist/cjs/stories/LiveChatWidget.stories.d.ts +108 -0
  162. package/dist/cjs/stories/LiveChatWidget.stories.js +149 -0
  163. package/dist/cjs/stories/LiveChatWidget.stories.js.map +7 -0
  164. package/dist/cjs/templates/{credits.d.ts → Credits.d.ts} +16 -1
  165. package/dist/cjs/templates/Credits.js +2 -0
  166. package/dist/cjs/templates/Credits.js.map +7 -0
  167. package/dist/esm/components/LiveChatWidget/LiveChatWidget.d.ts +63 -0
  168. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js +2 -0
  169. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
  170. package/dist/esm/components/LiveChatWidget/api/chat.d.ts +46 -0
  171. package/dist/esm/components/LiveChatWidget/api/chat.js +3 -0
  172. package/dist/esm/components/LiveChatWidget/api/chat.js.map +7 -0
  173. package/dist/esm/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
  174. package/dist/esm/components/LiveChatWidget/components/ChatBubble.js +2 -0
  175. package/dist/esm/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
  176. package/dist/esm/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
  177. package/dist/esm/components/LiveChatWidget/components/ChatHeader.js +2 -0
  178. package/dist/esm/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
  179. package/dist/esm/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
  180. package/dist/esm/components/LiveChatWidget/components/ChatInput.js +2 -0
  181. package/dist/esm/components/LiveChatWidget/components/ChatInput.js.map +7 -0
  182. package/dist/esm/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
  183. package/dist/esm/components/LiveChatWidget/components/ChatMessage.js +5 -0
  184. package/dist/esm/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
  185. package/dist/esm/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
  186. package/dist/esm/components/LiveChatWidget/components/ChatWindow.js +2 -0
  187. package/dist/esm/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
  188. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
  189. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
  190. package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
  191. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
  192. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
  193. package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
  194. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
  195. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
  196. package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
  197. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
  198. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
  199. package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
  200. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +41 -0
  201. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
  202. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
  203. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -0
  204. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
  205. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
  206. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
  207. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
  208. package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
  209. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +81 -0
  210. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
  211. package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
  212. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
  213. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
  214. package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
  215. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
  216. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
  217. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
  218. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
  219. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
  220. package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
  221. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
  222. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js +2 -0
  223. package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
  224. package/dist/esm/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
  225. package/dist/esm/components/LiveChatWidget/components/MessageContent.js +2 -0
  226. package/dist/esm/components/LiveChatWidget/components/MessageContent.js.map +7 -0
  227. package/dist/esm/components/LiveChatWidget/components/MessageList.d.ts +74 -0
  228. package/dist/esm/components/LiveChatWidget/components/MessageList.js +5 -0
  229. package/dist/esm/components/LiveChatWidget/components/MessageList.js.map +7 -0
  230. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
  231. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
  232. package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
  233. package/dist/esm/components/LiveChatWidget/constants.d.ts +13 -0
  234. package/dist/esm/components/LiveChatWidget/constants.js +2 -0
  235. package/dist/esm/components/LiveChatWidget/constants.js.map +7 -0
  236. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.d.ts +60 -0
  237. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
  238. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
  239. package/dist/esm/components/LiveChatWidget/hooks/useChatState.d.ts +151 -0
  240. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js +2 -0
  241. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
  242. package/dist/esm/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
  243. package/dist/esm/components/LiveChatWidget/hooks/useSession.js +2 -0
  244. package/dist/esm/components/LiveChatWidget/hooks/useSession.js.map +7 -0
  245. package/dist/esm/components/LiveChatWidget/index.d.ts +12 -0
  246. package/dist/esm/components/LiveChatWidget/index.js +2 -0
  247. package/dist/esm/components/LiveChatWidget/index.js.map +7 -0
  248. package/dist/esm/components/LiveChatWidget/types.d.ts +767 -0
  249. package/dist/esm/components/LiveChatWidget/types.js +1 -0
  250. package/dist/esm/components/LiveChatWidget/types.js.map +7 -0
  251. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
  252. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js +2 -0
  253. package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
  254. package/dist/esm/components/LiveChatWidget/utils/fetcher.d.ts +36 -0
  255. package/dist/esm/components/LiveChatWidget/utils/fetcher.js +2 -0
  256. package/dist/esm/components/LiveChatWidget/utils/fetcher.js.map +7 -0
  257. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
  258. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js +2 -0
  259. package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
  260. package/dist/esm/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
  261. package/dist/esm/components/LiveChatWidget/utils/productTransformers.js +2 -0
  262. package/dist/esm/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
  263. package/dist/esm/components/LiveChatWidget/utils/userId.d.ts +18 -0
  264. package/dist/esm/components/LiveChatWidget/utils/userId.js +2 -0
  265. package/dist/esm/components/LiveChatWidget/utils/userId.js.map +7 -0
  266. package/dist/esm/components/LiveChatWidget/utils/validation.d.ts +37 -0
  267. package/dist/esm/components/LiveChatWidget/utils/validation.js +2 -0
  268. package/dist/esm/components/LiveChatWidget/utils/validation.js.map +7 -0
  269. package/dist/esm/components/chat/markdown.js +1 -1
  270. package/dist/esm/components/chat/markdown.js.map +2 -2
  271. package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
  272. package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  273. package/dist/esm/components/credits/context/memberPriceConst.d.ts +0 -5
  274. package/dist/esm/components/credits/context/memberPriceConst.js +1 -1
  275. package/dist/esm/components/credits/context/memberPriceConst.js.map +3 -3
  276. package/dist/esm/components/credits/context/memberPriceTypes.d.ts +1 -22
  277. package/dist/esm/components/credits/context/provider.d.ts +16 -1
  278. package/dist/esm/components/credits/context/provider.js +1 -1
  279. package/dist/esm/components/credits/context/provider.js.map +3 -3
  280. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  281. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  282. package/dist/esm/components/credits/creditsBanner/index.d.ts +2 -0
  283. package/dist/esm/components/credits/creditsBanner/index.js +12 -1
  284. package/dist/esm/components/credits/creditsBanner/index.js.map +3 -3
  285. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js +2 -0
  286. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
  287. package/dist/esm/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
  288. package/dist/esm/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
  289. package/dist/esm/components/credits/creditsCash/CreditsCash.js +1 -1
  290. package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +3 -3
  291. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  292. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  293. package/dist/esm/components/credits/creditsCash/type.d.ts +1 -0
  294. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  295. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
  296. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  297. package/dist/esm/components/credits/creditsInfoCard/index.js.map +2 -2
  298. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  299. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  300. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  301. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  302. package/dist/esm/components/credits/creditsMemberPrice/type.d.ts +3 -5
  303. package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
  304. package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
  305. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  306. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  307. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  308. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  309. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  310. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  311. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  312. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  313. package/dist/esm/components/index.d.ts +3 -1
  314. package/dist/esm/components/index.js +1 -1
  315. package/dist/esm/components/index.js.map +3 -3
  316. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  317. package/dist/esm/components/registration/authCodeActivate/index.js.map +2 -2
  318. package/dist/esm/stories/CartCard.stories.d.ts +33 -0
  319. package/dist/esm/stories/CartCard.stories.js +21 -0
  320. package/dist/esm/stories/CartCard.stories.js.map +7 -0
  321. package/dist/esm/stories/LiveChatWidget.stories.d.ts +108 -0
  322. package/dist/esm/stories/LiveChatWidget.stories.js +149 -0
  323. package/dist/esm/stories/LiveChatWidget.stories.js.map +7 -0
  324. package/dist/esm/templates/{credits.d.ts → Credits.d.ts} +16 -1
  325. package/dist/esm/templates/Credits.js +2 -0
  326. package/dist/esm/templates/Credits.js.map +7 -0
  327. package/dist/index.d.mts +1305 -0
  328. package/dist/index.d.ts +1305 -0
  329. package/dist/index.js +26656 -0
  330. package/dist/index.js.map +1 -0
  331. package/dist/index.mjs +26641 -0
  332. package/dist/index.mjs.map +1 -0
  333. package/package.json +7 -3
  334. package/src/components/LiveChatWidget/LiveChatWidget.tsx +732 -0
  335. package/src/components/LiveChatWidget/api/chat.ts +174 -0
  336. package/src/components/LiveChatWidget/components/ChatBubble.tsx +152 -0
  337. package/src/components/LiveChatWidget/components/ChatHeader.tsx +150 -0
  338. package/src/components/LiveChatWidget/components/ChatInput.tsx +241 -0
  339. package/src/components/LiveChatWidget/components/ChatMessage.tsx +190 -0
  340. package/src/components/LiveChatWidget/components/ChatWindow.tsx +353 -0
  341. package/src/components/LiveChatWidget/components/MessageContent/CartCard.tsx +202 -0
  342. package/src/components/LiveChatWidget/components/MessageContent/ErrorBlock.tsx +75 -0
  343. package/src/components/LiveChatWidget/components/MessageContent/FAQList.tsx +127 -0
  344. package/src/components/LiveChatWidget/components/MessageContent/PolicyBlock.tsx +150 -0
  345. package/src/components/LiveChatWidget/components/MessageContent/ProductCard.tsx +218 -0
  346. package/src/components/LiveChatWidget/components/MessageContent/ProductComparison.tsx +359 -0
  347. package/src/components/LiveChatWidget/components/MessageContent/ProductList.tsx +293 -0
  348. package/src/components/LiveChatWidget/components/MessageContent/PromotionList.tsx +170 -0
  349. package/src/components/LiveChatWidget/components/MessageContent/QuickReplies.tsx +91 -0
  350. package/src/components/LiveChatWidget/components/MessageContent/TextBlock.tsx +89 -0
  351. package/src/components/LiveChatWidget/components/MessageContent/ThinkingBlock.tsx +53 -0
  352. package/src/components/LiveChatWidget/components/MessageContent/index.ts +16 -0
  353. package/src/components/LiveChatWidget/components/MessageContent.tsx +113 -0
  354. package/src/components/LiveChatWidget/components/MessageList.tsx +261 -0
  355. package/src/components/LiveChatWidget/components/ScrollAnchor.tsx +75 -0
  356. package/src/components/LiveChatWidget/constants.ts +36 -0
  357. package/src/components/LiveChatWidget/hooks/useChatAPI.ts +146 -0
  358. package/src/components/LiveChatWidget/hooks/useChatState.ts +1086 -0
  359. package/src/components/LiveChatWidget/hooks/useSession.ts +123 -0
  360. package/src/components/LiveChatWidget/index.tsx +62 -0
  361. package/src/components/LiveChatWidget/types.ts +949 -0
  362. package/src/components/LiveChatWidget/utils/cartTransformers.ts +72 -0
  363. package/src/components/LiveChatWidget/utils/fetcher.ts +126 -0
  364. package/src/components/LiveChatWidget/utils/messageRenderers.ts +120 -0
  365. package/src/components/LiveChatWidget/utils/productTransformers.ts +149 -0
  366. package/src/components/LiveChatWidget/utils/userId.ts +140 -0
  367. package/src/components/LiveChatWidget/utils/validation.ts +99 -0
  368. package/src/components/chat/markdown.tsx +1 -1
  369. package/src/components/credits/context/hooks/useRedeemableList.ts +1 -1
  370. package/src/components/credits/context/memberPriceConst.ts +0 -7
  371. package/src/components/credits/context/memberPriceTypes.ts +1 -26
  372. package/src/components/credits/context/provider.tsx +16 -0
  373. package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +26 -26
  374. package/src/components/credits/creditsBanner/index.tsx +31 -3
  375. package/src/components/credits/creditsBenefits/BenefitItem.tsx +11 -4
  376. package/src/components/credits/creditsBenefits/IconInfo.tsx +1 -1
  377. package/src/components/credits/creditsCash/CreditsCash.tsx +6 -3
  378. package/src/components/credits/creditsCash/RedeemableItem.tsx +23 -10
  379. package/src/components/credits/creditsCash/type.ts +1 -0
  380. package/src/components/credits/creditsFaq/faqItem/FaqItem.tsx +25 -23
  381. package/src/components/credits/creditsInfoCard/index.tsx +8 -2
  382. package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +124 -25
  383. package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +113 -31
  384. package/src/components/credits/creditsMemberPrice/type.ts +3 -5
  385. package/src/components/credits/creditsNavigation/CreditsNavigation.tsx +3 -3
  386. package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +31 -18
  387. package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +6 -4
  388. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +19 -6
  389. package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +20 -17
  390. package/src/components/index.ts +23 -1
  391. package/src/components/registration/authCodeActivate/index.tsx +2 -0
  392. package/src/stories/CartCard.stories.tsx +459 -0
  393. package/src/stories/LiveChatWidget.stories.tsx +754 -0
  394. package/src/styles/livechat.css +268 -0
  395. package/src/templates/Credits.tsx +27 -9
  396. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
  397. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
  398. package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
  399. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
  400. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +0 -2
  401. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
  402. package/dist/cjs/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
  403. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +0 -2
  404. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +0 -7
  405. package/dist/cjs/components/credits/context/utils/atobID.d.ts +0 -1
  406. package/dist/cjs/components/credits/context/utils/atobID.js +0 -2
  407. package/dist/cjs/components/credits/context/utils/atobID.js.map +0 -7
  408. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
  409. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js +0 -2
  410. package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
  411. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
  412. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
  413. package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
  414. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
  415. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
  416. package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
  417. package/dist/cjs/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
  418. package/dist/cjs/components/credits/context/utils/variantGetCoupon.js +0 -2
  419. package/dist/cjs/components/credits/context/utils/variantGetCoupon.js.map +0 -7
  420. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +0 -2
  421. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +0 -7
  422. package/dist/cjs/helpers/fetchResponse.d.ts +0 -14
  423. package/dist/cjs/helpers/fetchResponse.js +0 -2
  424. package/dist/cjs/helpers/fetchResponse.js.map +0 -7
  425. package/dist/cjs/helpers/fetcher.d.ts +0 -2
  426. package/dist/cjs/helpers/fetcher.js +0 -2
  427. package/dist/cjs/helpers/fetcher.js.map +0 -7
  428. package/dist/cjs/helpers/index.d.ts +0 -2
  429. package/dist/cjs/helpers/index.js +0 -2
  430. package/dist/cjs/helpers/index.js.map +0 -7
  431. package/dist/cjs/helpers/track.d.ts +0 -19
  432. package/dist/cjs/helpers/track.js +0 -2
  433. package/dist/cjs/helpers/track.js.map +0 -7
  434. package/dist/cjs/helpers/utils.d.ts +0 -3
  435. package/dist/cjs/helpers/utils.js +0 -2
  436. package/dist/cjs/helpers/utils.js.map +0 -7
  437. package/dist/cjs/templates/credits.js +0 -2
  438. package/dist/cjs/templates/credits.js.map +0 -7
  439. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
  440. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
  441. package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
  442. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
  443. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +0 -2
  444. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
  445. package/dist/esm/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
  446. package/dist/esm/components/credits/context/hooks/useSubscriptions.js +0 -2
  447. package/dist/esm/components/credits/context/hooks/useSubscriptions.js.map +0 -7
  448. package/dist/esm/components/credits/context/utils/atobID.d.ts +0 -1
  449. package/dist/esm/components/credits/context/utils/atobID.js +0 -2
  450. package/dist/esm/components/credits/context/utils/atobID.js.map +0 -7
  451. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
  452. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js +0 -2
  453. package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
  454. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
  455. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
  456. package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
  457. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
  458. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
  459. package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
  460. package/dist/esm/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
  461. package/dist/esm/components/credits/context/utils/variantGetCoupon.js +0 -2
  462. package/dist/esm/components/credits/context/utils/variantGetCoupon.js.map +0 -7
  463. package/dist/esm/components/credits/creditsBenefits/benefitItem.js +0 -2
  464. package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +0 -7
  465. package/dist/esm/helpers/fetchResponse.d.ts +0 -14
  466. package/dist/esm/helpers/fetchResponse.js +0 -2
  467. package/dist/esm/helpers/fetchResponse.js.map +0 -7
  468. package/dist/esm/helpers/fetcher.d.ts +0 -2
  469. package/dist/esm/helpers/fetcher.js +0 -2
  470. package/dist/esm/helpers/fetcher.js.map +0 -7
  471. package/dist/esm/helpers/index.d.ts +0 -2
  472. package/dist/esm/helpers/index.js +0 -2
  473. package/dist/esm/helpers/index.js.map +0 -7
  474. package/dist/esm/helpers/track.d.ts +0 -19
  475. package/dist/esm/helpers/track.js +0 -2
  476. package/dist/esm/helpers/track.js.map +0 -7
  477. package/dist/esm/helpers/utils.d.ts +0 -3
  478. package/dist/esm/helpers/utils.js +0 -2
  479. package/dist/esm/helpers/utils.js.map +0 -7
  480. package/dist/esm/templates/credits.js +0 -2
  481. package/dist/esm/templates/credits.js.map +0 -7
  482. package/src/components/credits/context/hooks/useFunctionMemberPrice.ts +0 -33
  483. package/src/components/credits/context/utils/atobID.ts +0 -8
  484. package/src/components/credits/context/utils/functionDiscountCalculate.ts +0 -57
  485. package/src/components/credits/context/utils/getFunctionMemberPrice.ts +0 -135
  486. package/src/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.ts +0 -51
  487. package/src/components/credits/context/utils/variantGetCoupon.ts +0 -34
  488. /package/dist/cjs/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
  489. /package/dist/cjs/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
  490. /package/dist/esm/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
  491. /package/dist/esm/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
@@ -0,0 +1,949 @@
1
+ /**
2
+ * LiveChat 组件核心类型定义
3
+ * 基于 specs/livechat-widget/data-model.md
4
+ */
5
+
6
+ // ============================================================================
7
+ // Session Types (会话)
8
+ // ============================================================================
9
+
10
+ export type SessionStatus = 'active' | 'expired'
11
+
12
+ export interface Session {
13
+ sessionId: string
14
+ userId: string
15
+ site: string
16
+ status: SessionStatus
17
+ createdAt?: number
18
+ lastActivityAt?: number
19
+ }
20
+
21
+ // ============================================================================
22
+ // Message Types (消息)
23
+ // ============================================================================
24
+
25
+ export type MessageRole = 'user' | 'assistant' | 'system' | 'tool'
26
+
27
+ export interface MessageMetadata {
28
+ tokenUsage?: {
29
+ inputTokens: number
30
+ outputTokens: number
31
+ }
32
+ toolCalls?: Array<{
33
+ id: string
34
+ type: string
35
+ name: string
36
+ }>
37
+ }
38
+
39
+ export interface Message {
40
+ id: string
41
+ sessionId?: string
42
+ role: MessageRole
43
+ content: MessageContent[]
44
+ timestamp: number
45
+ metadata?: MessageMetadata
46
+ structured_content?: Array<{
47
+ type: string
48
+ data: any
49
+ }>
50
+ }
51
+
52
+ // ============================================================================
53
+ // Message Content Types (消息内容)
54
+ // ============================================================================
55
+
56
+ export type MessageContentType =
57
+ | 'text'
58
+ | 'product_card'
59
+ | 'product_list'
60
+ | 'product_comparison'
61
+ | 'policy'
62
+ | 'quick_replies'
63
+ | 'thinking'
64
+ | 'error'
65
+ | 'faq_list'
66
+ | 'cart'
67
+
68
+ export type MessageContent =
69
+ | TextContent
70
+ | ProductCardContent
71
+ | ProductListContent
72
+ | ProductComparisonContent
73
+ | PolicyContent
74
+ | QuickRepliesContent
75
+ | ThinkingContent
76
+ | ErrorContent
77
+ | FAQListContent
78
+ | PromotionListContent
79
+ | CartContent
80
+
81
+ export interface TextContent {
82
+ type: 'text'
83
+ text: string
84
+ }
85
+
86
+ export interface ProductCardContent {
87
+ type: 'product_card'
88
+ data: {
89
+ product: Product
90
+ rawProduct?: any // Raw backend product data (for custom render)
91
+ onAddToCart?: (product: Product) => void
92
+ productCardRender?: (product: any) => React.ReactNode
93
+ }
94
+ }
95
+
96
+ export interface ProductListContent {
97
+ type: 'product_list'
98
+ data: {
99
+ products: Product[]
100
+ title?: string
101
+ onAddToCart?: (product: Product) => void
102
+ commonText?: CommonText
103
+ }
104
+ }
105
+
106
+ export interface ProductComparisonContent {
107
+ type: 'product_comparison'
108
+ data: {
109
+ products: Product[]
110
+ dimensions: {
111
+ price?: {
112
+ label: string
113
+ values: Array<{
114
+ product_id: string
115
+ min: number
116
+ max: number
117
+ currency: string
118
+ has_discount: boolean
119
+ }>
120
+ }
121
+ variants?: {
122
+ label: string
123
+ values: Array<{
124
+ product_id: string
125
+ count: number
126
+ }>
127
+ }
128
+ member_price?: {
129
+ label: string
130
+ values: Array<{
131
+ product_id: string
132
+ available: boolean
133
+ min: number
134
+ max: number
135
+ currency: string
136
+ }>
137
+ }
138
+ discount?: {
139
+ label: string
140
+ values: Array<{
141
+ product_id: string
142
+ has_discount: boolean
143
+ }>
144
+ }
145
+ [key: string]: any
146
+ }
147
+ onAddToCart?: (product: Product) => void
148
+ commonText?: CommonText
149
+ }
150
+ }
151
+
152
+ export interface PolicyContent {
153
+ type: 'policy'
154
+ data: {
155
+ title: string
156
+ content: string
157
+ }
158
+ }
159
+
160
+ export interface QuickRepliesContent {
161
+ type: 'quick_replies'
162
+ data: {
163
+ replies: QuickReply[]
164
+ }
165
+ }
166
+
167
+ export interface ThinkingContent {
168
+ type: 'thinking'
169
+ data: {
170
+ status: string
171
+ }
172
+ }
173
+
174
+ export interface ErrorContent {
175
+ type: 'error'
176
+ data: {
177
+ message: string
178
+ code?: string
179
+ }
180
+ }
181
+
182
+ export interface FAQListContent {
183
+ type: 'faq_list'
184
+ data: {
185
+ found: boolean
186
+ count: number
187
+ total?: number
188
+ results: FAQItem[]
189
+ }
190
+ }
191
+
192
+ export interface PromotionListContent {
193
+ type: 'promotion_list'
194
+ data: {
195
+ found: boolean
196
+ count: number
197
+ total?: number
198
+ results: PromotionItem[]
199
+ commonText?: CommonText
200
+ }
201
+ }
202
+
203
+ // ============================================================================
204
+ // FAQ Types (常见问题)
205
+ // ============================================================================
206
+
207
+ export type FAQCategory = 'shipping' | 'return' | 'product' | 'payment' | 'general'
208
+
209
+ export interface FAQItem {
210
+ id: string
211
+ question: string
212
+ answer: string
213
+ category: FAQCategory
214
+ keywords?: string[]
215
+ relatedQuestions?: string[]
216
+ metadata?: {
217
+ language?: string
218
+ priority?: number
219
+ lastUpdated?: string
220
+ }
221
+ }
222
+
223
+ // ============================================================================
224
+ // Promotion Types (促销活动)
225
+ // ============================================================================
226
+
227
+ export interface PromotionItem {
228
+ id: string
229
+ title: string
230
+ subtitle?: string
231
+ description?: string
232
+ banner_url?: string
233
+ url?: string
234
+ time_range: {
235
+ start: string
236
+ end?: string | null
237
+ is_active: boolean
238
+ }
239
+ priority?: number
240
+ product_count?: number
241
+ metadata?: {
242
+ display_order?: number
243
+ target_audience?: string
244
+ }
245
+ }
246
+
247
+ // ============================================================================
248
+ // Product Types (商品)
249
+ // ============================================================================
250
+
251
+ export type StockStatus = 'in_stock' | 'low_stock' | 'out_of_stock'
252
+
253
+ export interface Price {
254
+ amount: number
255
+ currency: string
256
+ }
257
+
258
+ export interface PriceRange {
259
+ min: number
260
+ max: number
261
+ currency: string
262
+ }
263
+
264
+ export interface VariantDiscount {
265
+ has_discount: boolean
266
+ discount_price?: number
267
+ discount_code?: string
268
+ discount_percentage?: number
269
+ /** 折扣类型:fixed_amount 固定金额折扣,percentage 百分比折扣 */
270
+ discount_type?: 'fixed_amount' | 'percentage'
271
+ /** 折扣数值(可能是字符串或数字) */
272
+ discount_value?: string | number
273
+ }
274
+
275
+ export interface VariantMemberPrice {
276
+ has_member_price: boolean
277
+ price?: number
278
+ }
279
+
280
+ export interface ProductFeatures {
281
+ is_new?: boolean
282
+ has_rental?: boolean
283
+ has_presale?: boolean
284
+ has_member_price?: boolean
285
+ has_discount?: boolean
286
+ }
287
+
288
+ export interface Variant {
289
+ id: string
290
+ title: string
291
+ sku?: string
292
+ price?: Price
293
+ availableForSale: boolean
294
+ color?: string
295
+ discount?: VariantDiscount
296
+ memberPrice?: VariantMemberPrice
297
+ inventoryQuantity?: number
298
+ option1?: string
299
+ option2?: string
300
+ option3?: string
301
+ }
302
+
303
+ export interface Product {
304
+ shopifyId: string
305
+ sku?: string
306
+ handle: string
307
+ title: string
308
+ description?: string
309
+ vendor?: string
310
+ price: Price
311
+ priceRange?: PriceRange
312
+ memberPriceRange?: PriceRange
313
+ imageUrl: string
314
+ productUrl: string
315
+ stockStatus: StockStatus
316
+ hotScore?: number
317
+ averageRating?: number
318
+ reviewCount?: number
319
+ variants?: Variant[]
320
+ variantCount?: number
321
+ availableCount?: number
322
+ features?: ProductFeatures
323
+ tags?: string[]
324
+ }
325
+
326
+ // ============================================================================
327
+ // Quick Reply Types (快捷回复)
328
+ // ============================================================================
329
+
330
+ export interface QuickReply {
331
+ id: string
332
+ label: string
333
+ value: string
334
+ icon?: string
335
+ }
336
+
337
+ // ============================================================================
338
+ // Policy Types (政策)
339
+ // ============================================================================
340
+
341
+ export interface Policy {
342
+ title: string
343
+ content: string
344
+ }
345
+
346
+ // ============================================================================
347
+ // Cart Types (购物车)
348
+ // ============================================================================
349
+
350
+ /**
351
+ * 购物车金额信息
352
+ */
353
+ export interface CartAmount {
354
+ /** 金额字符串(如 "99.99") */
355
+ amount: string
356
+ /** 货币代码(如 "USD") */
357
+ currencyCode: string
358
+ }
359
+
360
+ /**
361
+ * 购物车价格汇总
362
+ */
363
+ export interface CartCost {
364
+ /** 应付总价(已应用折扣) */
365
+ totalAmount: CartAmount
366
+ /** 原价小计(未应用折扣) */
367
+ subtotalAmount: CartAmount
368
+ }
369
+
370
+ /**
371
+ * 购物车商品变体信息
372
+ */
373
+ export interface CartMerchandise {
374
+ /** 变体 ID (Shopify ProductVariant GID) */
375
+ id: string
376
+ /** 变体标题(如 "Black", "Large" 等) */
377
+ title: string
378
+ /** 单价 */
379
+ price: CartAmount
380
+ /** 商品图片 URL */
381
+ image?: {
382
+ url: string
383
+ altText?: string
384
+ }
385
+ /** 关联的商品信息 */
386
+ product: {
387
+ /** 商品 ID */
388
+ id: string
389
+ /** 商品标题 */
390
+ title: string
391
+ /** 商品 handle */
392
+ handle: string
393
+ }
394
+ }
395
+
396
+ /**
397
+ * 购物车商品行
398
+ */
399
+ export interface CartLine {
400
+ /** 购物车行 ID (用于更新/删除操作) */
401
+ id: string
402
+ /** 商品数量 */
403
+ quantity: number
404
+ /** 价格信息 */
405
+ cost: {
406
+ /** 行总价(单价 × 数量,已应用折扣) */
407
+ totalAmount: CartAmount
408
+ /** 单价 */
409
+ amountPerQuantity: CartAmount
410
+ /** 行小计(单价 × 数量,未应用折扣) */
411
+ subtotalAmount: CartAmount
412
+ }
413
+ /** 商品变体信息 */
414
+ merchandise: CartMerchandise
415
+ /** 自定义属性(可选) */
416
+ attributes?: Array<{
417
+ key: string
418
+ value: string
419
+ }>
420
+ }
421
+
422
+ /**
423
+ * 购物车折扣码
424
+ */
425
+ export interface CartDiscountCode {
426
+ /** 折扣码 */
427
+ code: string
428
+ /** 是否有效/适用 */
429
+ applicable: boolean
430
+ }
431
+
432
+ /**
433
+ * 购物车数据
434
+ */
435
+ export interface CartData {
436
+ /** 购物车是否为空 */
437
+ isEmpty: boolean
438
+ /** 购物车 ID (Shopify Cart GID) */
439
+ cartId: string
440
+ /** 商品总数量 */
441
+ totalQuantity: number
442
+ /** 商品列表 */
443
+ lines: CartLine[]
444
+ /** 价格汇总 */
445
+ cost: CartCost
446
+ /** 折扣码列表 */
447
+ discountCodes?: CartDiscountCode[]
448
+ /** 结账页面 URL */
449
+ checkoutUrl?: string
450
+ /** 购物车按钮回调函数 */
451
+ onCart?: (cartId: string, checkoutUrl?: string) => void
452
+ /** 通用文案配置 */
453
+ commonText?: CommonText
454
+ }
455
+
456
+ /**
457
+ * 购物车内容块
458
+ */
459
+ export interface CartContent {
460
+ type: 'cart'
461
+ data: CartData
462
+ }
463
+
464
+ // ============================================================================
465
+ // Backend Cart Types (后端购物车数据格式 - Shopify GraphQL)
466
+ // ============================================================================
467
+
468
+ /**
469
+ * 后端返回的购物车商品行数据 (Shopify GraphQL 格式)
470
+ */
471
+ export interface BackendCartLineNode {
472
+ id: string
473
+ quantity: number
474
+ cost: {
475
+ totalAmount: CartAmount
476
+ amountPerQuantity: CartAmount
477
+ compareAtAmountPerQuantity?: CartAmount | null
478
+ subtotalAmount: CartAmount
479
+ }
480
+ discountAllocations: any[]
481
+ merchandise: {
482
+ id: string
483
+ title: string
484
+ availableForSale: boolean
485
+ quantityAvailable?: number
486
+ price: CartAmount
487
+ compareAtPrice?: CartAmount | null
488
+ image?: {
489
+ url: string
490
+ altText?: string | null
491
+ width?: number
492
+ height?: number
493
+ } | null
494
+ product: {
495
+ id: string
496
+ title: string
497
+ handle: string
498
+ vendor?: string
499
+ featuredImage?: {
500
+ url: string
501
+ altText?: string | null
502
+ width?: number
503
+ height?: number
504
+ } | null
505
+ tags?: string[]
506
+ }
507
+ }
508
+ attributes?: Array<{
509
+ key: string
510
+ value: string
511
+ }>
512
+ }
513
+
514
+ /**
515
+ * 后端返回的购物车数据 (Shopify GraphQL 格式)
516
+ */
517
+ export interface BackendCartData {
518
+ id: string
519
+ checkoutUrl?: string
520
+ totalQuantity: number
521
+ lines: {
522
+ edges: Array<{
523
+ node: BackendCartLineNode
524
+ }>
525
+ }
526
+ cost: {
527
+ totalAmount: CartAmount
528
+ subtotalAmount: CartAmount
529
+ checkoutChargeAmount?: CartAmount
530
+ totalAmountEstimated?: boolean
531
+ subtotalAmountEstimated?: boolean
532
+ totalTaxAmount?: CartAmount | null
533
+ totalDutyAmount?: CartAmount | null
534
+ }
535
+ discountAllocations?: any[]
536
+ buyerIdentity?: any
537
+ attributes?: Array<{
538
+ key: string
539
+ value: string
540
+ }>
541
+ discountCodes?: any[]
542
+ createdAt?: string
543
+ updatedAt?: string
544
+ }
545
+
546
+ // ============================================================================
547
+ // SSE Event Types (SSE 事件)
548
+ // ============================================================================
549
+
550
+ export type SSEEventType =
551
+ | 'message_start'
552
+ | 'content_delta'
553
+ | 'content_block'
554
+ | 'message_end'
555
+ | 'tool_start'
556
+ | 'tool_end'
557
+ | 'status'
558
+ | 'error'
559
+ | 'done'
560
+
561
+ export interface SSEEvent<T = any> {
562
+ event: SSEEventType | null
563
+ data: T
564
+ }
565
+
566
+ // 具体事件数据类型
567
+ export interface MessageStartData {
568
+ sessionId: string
569
+ }
570
+
571
+ export interface ContentDeltaData {
572
+ text: string
573
+ }
574
+
575
+ export interface ContentBlockData {
576
+ type: string
577
+ data: any
578
+ }
579
+
580
+ export interface MessageEndData {
581
+ usage: {
582
+ inputTokens: number
583
+ outputTokens: number
584
+ }
585
+ }
586
+
587
+ export interface ToolStartData {
588
+ id: string
589
+ type: string
590
+ name: string
591
+ }
592
+
593
+ export interface ToolEndData {
594
+ id: string
595
+ }
596
+
597
+ export interface StatusData {
598
+ type: string
599
+ message?: string
600
+ }
601
+
602
+ export interface ErrorData {
603
+ message: string
604
+ code?: string
605
+ }
606
+
607
+ // ============================================================================
608
+ // API Request/Response Types (API 请求响应)
609
+ // ============================================================================
610
+
611
+ /**
612
+ * 流式对话请求参数
613
+ */
614
+ export interface ChatStreamRequest {
615
+ /** 用户的消息文本 */
616
+ message: string
617
+ /** 用户标识符 */
618
+ user_id: string
619
+ /** 来自 new-session 端点的会话 ID */
620
+ session_id: string
621
+ /** 可选的上下文信息 */
622
+ context?: {
623
+ /** 用于购物车操作的 Shopify 购物车 ID */
624
+ cartId?: string
625
+ /** Storefront API 访问令牌 */
626
+ accessToken?: string
627
+ /** 已登录用户的 ID */
628
+ real_user_id?: string
629
+ }
630
+ }
631
+
632
+ export interface NewSessionRequest {
633
+ user_id: string
634
+ session_id?: string
635
+ site?: string
636
+ channel_code?: string
637
+ real_user_id?: string
638
+ }
639
+
640
+ export interface NewSessionResponse {
641
+ success: boolean
642
+ sessionId: string
643
+ message: string
644
+ resumed?: boolean
645
+ messages?: Message[]
646
+ welcomeMessage?: string
647
+ quickQuestions?: string[]
648
+ brand?: string
649
+ }
650
+
651
+ export interface ErrorResponse {
652
+ success: boolean
653
+ error: string
654
+ code?: string
655
+ details?: any
656
+ }
657
+
658
+ // ============================================================================
659
+ // Common Text Types (通用文案)
660
+ // ============================================================================
661
+
662
+ /**
663
+ * 通用文案配置
664
+ * 用于自定义组件中的按钮文案
665
+ */
666
+ export interface CommonText {
667
+ /**
668
+ * 产品列表展开按钮文案
669
+ * @default "Learn More"
670
+ */
671
+ learnMore?: string
672
+
673
+ /**
674
+ * 产品列表收起按钮文案
675
+ * @default "Show Less"
676
+ */
677
+ showLess?: string
678
+
679
+ /**
680
+ * 添加到购物车按钮文案
681
+ * @default "Add to Cart"
682
+ */
683
+ addToCart?: string
684
+
685
+ /**
686
+ * 查看购物车/更多按钮文案
687
+ * @default "View More"
688
+ */
689
+ viewMore?: string
690
+
691
+ /**
692
+ * 折扣标签后缀文案(如 "20% OFF" 中的 "OFF")
693
+ * @default "OFF"
694
+ */
695
+ off?: string
696
+
697
+ /**
698
+ * 购物车总计文案
699
+ * @default "Total"
700
+ */
701
+ total?: string
702
+ }
703
+
704
+ // ============================================================================
705
+ // Component Props Types (组件 Props)
706
+ // ============================================================================
707
+
708
+ export interface LiveChatWidgetProps {
709
+ /**
710
+ * API 基础 URL
711
+ * @example "https://beta-api-livechat.anker.com"
712
+ */
713
+ apiBaseUrl: string
714
+
715
+ /**
716
+ * 自定义请求头
717
+ * 将在所有 API 请求中添加这些请求头
718
+ * @example { "Authorization": "Bearer token", "X-Custom-Header": "value" }
719
+ */
720
+ headers?: Record<string, string>
721
+
722
+ /**
723
+ * reCAPTCHA site key
724
+ * 提供此参数将自动启用 reCAPTCHA v3 验证
725
+ * @example "6LfS4J4pAAAAACX1e_WrxutmxxzCK7FU4WzVqL14"
726
+ */
727
+ recaptchaSitekey?: string
728
+
729
+ /**
730
+ * reCAPTCHA action 前缀
731
+ * 实际使用时会根据不同接口添加后缀(如 chat_stream, new_session)
732
+ * @default "livechat"
733
+ */
734
+ recaptchaAction?: string
735
+
736
+ /**
737
+ * Shopify 店铺域名
738
+ * @example "www.eufy.com"
739
+ */
740
+ site?: string
741
+
742
+ /**
743
+ * 渠道编码
744
+ * 用于标识来源渠道
745
+ * @example "web_homepage"
746
+ */
747
+ channelCode?: string
748
+
749
+ /**
750
+ * 已登录用户的 ID(可选)
751
+ * 如果提供,将在 API 请求中传递
752
+ */
753
+ loginUserId?: string
754
+
755
+ /**
756
+ * Shopify 购物车 ID(可选)
757
+ * 用于购物车操作,将在 stream 接口的 context 中传递
758
+ * @example "gid://shopify/Cart/Z2NwLXVzLWVhc3QxOjAxSkZH..."
759
+ */
760
+ cartId?: string
761
+
762
+ /**
763
+ * Storefront API 访问令牌(可选)
764
+ * 用于购物车操作,将在 stream 接口的 context 中传递
765
+ */
766
+ accessToken?: string
767
+
768
+ /**
769
+ * 气泡按钮位置
770
+ * 自定义位置对象:{ top?: string, bottom?: string, left?: string, right?: string }
771
+ * @default { bottom: "1.5rem", right: "1.5rem" }
772
+ * @example
773
+ * // 自定义位置
774
+ * position={{ bottom: "20px", right: "30px" }}
775
+ * position={{ top: "100px", left: "50px" }}
776
+ */
777
+ position?: BubblePosition
778
+
779
+ /**
780
+ * 欢迎消息
781
+ * @default "你好!我是 AI 助手,有什么可以帮助你的吗?"
782
+ */
783
+ welcomeMessage?: string
784
+
785
+ /**
786
+ * 初始快捷回复按钮
787
+ */
788
+ quickReplies?: QuickReply[]
789
+
790
+ /**
791
+ * 自定义消息渲染器
792
+ */
793
+ customRenderers?: Record<string, MessageRenderer>
794
+
795
+ /**
796
+ * Logo URL
797
+ */
798
+ logoUrl?: string
799
+
800
+ /**
801
+ * 聊天窗口标题
802
+ * @default "AI 助手"
803
+ */
804
+ title?: string
805
+
806
+ /**
807
+ * 聊天气泡按钮图标(图片 URL)
808
+ * 如果提供,将使用图片替代默认的 SVG 图标
809
+ */
810
+ chatBubbleIcon?: string
811
+
812
+ /**
813
+ * 受控模式:是否打开聊天窗口
814
+ * 提供此参数时,组件将处于受控模式
815
+ * @example
816
+ * ```tsx
817
+ * const [isOpen, setIsOpen] = useState(false)
818
+ * <LiveChatWidget open={isOpen} onOpenChange={setIsOpen} />
819
+ * ```
820
+ */
821
+ open?: boolean
822
+
823
+ /**
824
+ * 受控模式:打开/关闭状态变化回调
825
+ * 【必需】配合 `open` 使用,用于同步状态到父组件
826
+ * 当用户点击打开或关闭按钮时触发
827
+ * @example
828
+ * ```tsx
829
+ * <LiveChatWidget
830
+ * open={isOpen}
831
+ * onOpenChange={setIsOpen} // 必需:同步状态
832
+ * />
833
+ * ```
834
+ */
835
+ onOpenChange?: (open: boolean) => void
836
+
837
+ /**
838
+ * 【可选】窗口打开事件监听
839
+ * 用于埋点、日志等副作用,不影响状态控制
840
+ * 在 onOpenChange 之后触发
841
+ * @example
842
+ * ```tsx
843
+ * <LiveChatWidget
844
+ * open={isOpen}
845
+ * onOpenChange={setIsOpen}
846
+ * onOpen={() => trackEvent('chat_opened')} // 可选:埋点
847
+ * />
848
+ * ```
849
+ */
850
+ onOpen?: () => void
851
+
852
+ /**
853
+ * 【可选】窗口关闭事件监听
854
+ * 用于埋点、日志等副作用,不影响状态控制
855
+ * 在 onOpenChange 之后触发
856
+ * @example
857
+ * ```tsx
858
+ * <LiveChatWidget
859
+ * open={isOpen}
860
+ * onOpenChange={setIsOpen}
861
+ * onClose={() => trackEvent('chat_closed')} // 可选:埋点
862
+ * />
863
+ * ```
864
+ */
865
+ onClose?: () => void
866
+ onMessageSend?: (message: string) => void
867
+ onError?: (error: Error) => void
868
+
869
+ /**
870
+ * AI 消息回调
871
+ */
872
+ /**
873
+ * AI 回复文本消息时触发
874
+ */
875
+ onTextMessage?: () => void
876
+
877
+ /**
878
+ * AI 回复商品列表卡片时触发
879
+ */
880
+ onProductList?: () => void
881
+
882
+ /**
883
+ * AI 回复促销卡片时触发
884
+ */
885
+ onPromotionList?: () => void
886
+
887
+ /**
888
+ * 商品操作回调
889
+ */
890
+ onAddToCart?: (product: Product) => void
891
+
892
+ /**
893
+ * 购物车按钮点击回调
894
+ */
895
+ onCart?: (cartId: string, checkoutUrl?: string) => void
896
+
897
+ /**
898
+ * 是否显示新会话按钮
899
+ * @default true
900
+ */
901
+ showNewSessionButton?: boolean
902
+
903
+ /**
904
+ * 通用文案配置
905
+ * 用于自定义按钮文案
906
+ */
907
+ commonText?: CommonText
908
+
909
+ /**
910
+ * 自定义产品卡片渲染函数
911
+ * 用于自定义渲染 product_card 类型的产品卡片
912
+ * 当提供此函数时,将替代默认的产品卡片渲染逻辑
913
+ * @param product 原始后端产品数据(未经转换的数据)
914
+ * @returns React 可渲染的内容
915
+ * @example
916
+ * ```tsx
917
+ * <LiveChatWidget
918
+ * productCardRender={(product) => (
919
+ * <div>
920
+ * <h3>{product.title}</h3>
921
+ * <p>{product.price_range?.min}</p>
922
+ * </div>
923
+ * )}
924
+ * />
925
+ * ```
926
+ */
927
+ productCardRender?: (product: any) => React.ReactNode
928
+ }
929
+
930
+ export interface MessageRenderer {
931
+ render: (content: MessageContent, isUser: boolean, isSystem: boolean) => React.ReactNode
932
+ }
933
+
934
+ export interface CustomRendererMap {
935
+ [type: string]: MessageRenderer
936
+ }
937
+
938
+ // ============================================================================
939
+ // Utility Types (工具类型)
940
+ // ============================================================================
941
+
942
+ export interface PositionStyles {
943
+ bottom?: string
944
+ top?: string
945
+ left?: string
946
+ right?: string
947
+ }
948
+
949
+ export type BubblePosition = PositionStyles