@websolutespa/bom-mixer-llm 0.0.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 (216) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +11 -0
  3. package/dist/cjs/index.css +2264 -0
  4. package/dist/cjs/index.js +3566 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/esm/index.css +2264 -0
  7. package/dist/esm/index.js +5 -0
  8. package/dist/esm/index.js.map +1 -0
  9. package/dist/esm/llm/components/Background/background.js +76 -0
  10. package/dist/esm/llm/components/Background/background.js.map +1 -0
  11. package/dist/esm/llm/components/BusyIndicator/busyindicator.js +23 -0
  12. package/dist/esm/llm/components/BusyIndicator/busyindicator.js.map +1 -0
  13. package/dist/esm/llm/components/Canvas/canvas.js +223 -0
  14. package/dist/esm/llm/components/Canvas/canvas.js.map +1 -0
  15. package/dist/esm/llm/components/Chunk/chunk.js +65 -0
  16. package/dist/esm/llm/components/Chunk/chunk.js.map +1 -0
  17. package/dist/esm/llm/components/Cta/cta.js +33 -0
  18. package/dist/esm/llm/components/Cta/cta.js.map +1 -0
  19. package/dist/esm/llm/components/Event/event.js +90 -0
  20. package/dist/esm/llm/components/Event/event.js.map +1 -0
  21. package/dist/esm/llm/components/EventGroup/eventgroup.js +61 -0
  22. package/dist/esm/llm/components/EventGroup/eventgroup.js.map +1 -0
  23. package/dist/esm/llm/components/FormRecap/FormRecap.js +240 -0
  24. package/dist/esm/llm/components/FormRecap/FormRecap.js.map +1 -0
  25. package/dist/esm/llm/components/FormRecapError/FormRecapError.js +13 -0
  26. package/dist/esm/llm/components/FormRecapError/FormRecapError.js.map +1 -0
  27. package/dist/esm/llm/components/FormRecapSuccess/FormRecapSuccess.js +13 -0
  28. package/dist/esm/llm/components/FormRecapSuccess/FormRecapSuccess.js.map +1 -0
  29. package/dist/esm/llm/components/FormRequest/FormRequest.js +34 -0
  30. package/dist/esm/llm/components/FormRequest/FormRequest.js.map +1 -0
  31. package/dist/esm/llm/components/Header/header.js +51 -0
  32. package/dist/esm/llm/components/Header/header.js.map +1 -0
  33. package/dist/esm/llm/components/Intro/intro.js +77 -0
  34. package/dist/esm/llm/components/Intro/intro.js.map +1 -0
  35. package/dist/esm/llm/components/Main/main.js +118 -0
  36. package/dist/esm/llm/components/Main/main.js.map +1 -0
  37. package/dist/esm/llm/components/Poi/poi.js +78 -0
  38. package/dist/esm/llm/components/Poi/poi.js.map +1 -0
  39. package/dist/esm/llm/components/PoiGroup/poigroup.js +14 -0
  40. package/dist/esm/llm/components/PoiGroup/poigroup.js.map +1 -0
  41. package/dist/esm/llm/components/Prompt/prompt.js +86 -0
  42. package/dist/esm/llm/components/Prompt/prompt.js.map +1 -0
  43. package/dist/esm/llm/components/Prompt/suggestions.js +45 -0
  44. package/dist/esm/llm/components/Prompt/suggestions.js.map +1 -0
  45. package/dist/esm/llm/components/QuickLinks/quicklinks.js +66 -0
  46. package/dist/esm/llm/components/QuickLinks/quicklinks.js.map +1 -0
  47. package/dist/esm/llm/components/Stream/stream.js +43 -0
  48. package/dist/esm/llm/components/Stream/stream.js.map +1 -0
  49. package/dist/esm/llm/components/Text/text.js +34 -0
  50. package/dist/esm/llm/components/Text/text.js.map +1 -0
  51. package/dist/esm/llm/components/Thread/thread.js +26 -0
  52. package/dist/esm/llm/components/Thread/thread.js.map +1 -0
  53. package/dist/esm/llm/components/Trigger/blob.js +122 -0
  54. package/dist/esm/llm/components/Trigger/blob.js.map +1 -0
  55. package/dist/esm/llm/components/Trigger/trigger.js +63 -0
  56. package/dist/esm/llm/components/Trigger/trigger.js.map +1 -0
  57. package/dist/esm/llm/components/Tripadvisor/tripadvisor.js +94 -0
  58. package/dist/esm/llm/components/Tripadvisor/tripadvisor.js.map +1 -0
  59. package/dist/esm/llm/hooks/useAutosizeTextArea.js +13 -0
  60. package/dist/esm/llm/hooks/useAutosizeTextArea.js.map +1 -0
  61. package/dist/esm/llm/llm.js +48 -0
  62. package/dist/esm/llm/llm.js.map +1 -0
  63. package/dist/esm/llm/utils.js +15 -0
  64. package/dist/esm/llm/utils.js.map +1 -0
  65. package/dist/esm/node_modules/tslib/tslib.es6.js +135 -0
  66. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  67. package/dist/esm/useLlm/emitter.js +32 -0
  68. package/dist/esm/useLlm/emitter.js.map +1 -0
  69. package/dist/esm/useLlm/message.service.js +308 -0
  70. package/dist/esm/useLlm/message.service.js.map +1 -0
  71. package/dist/esm/useLlm/mock.js +687 -0
  72. package/dist/esm/useLlm/mock.js.map +1 -0
  73. package/dist/esm/useLlm/speech.js +306 -0
  74. package/dist/esm/useLlm/speech.js.map +1 -0
  75. package/dist/esm/useLlm/useLlm.js +460 -0
  76. package/dist/esm/useLlm/useLlm.js.map +1 -0
  77. package/dist/types/index.d.ts +6 -0
  78. package/dist/types/index.d.ts.map +1 -0
  79. package/dist/types/llm/components/Background/background.d.ts +34 -0
  80. package/dist/types/llm/components/Background/background.d.ts.map +1 -0
  81. package/dist/types/llm/components/BusyIndicator/busyindicator.d.ts +2 -0
  82. package/dist/types/llm/components/BusyIndicator/busyindicator.d.ts.map +1 -0
  83. package/dist/types/llm/components/Canvas/canvas.d.ts +12 -0
  84. package/dist/types/llm/components/Canvas/canvas.d.ts.map +1 -0
  85. package/dist/types/llm/components/Chunk/chunk.d.ts +9 -0
  86. package/dist/types/llm/components/Chunk/chunk.d.ts.map +1 -0
  87. package/dist/types/llm/components/Cta/cta.d.ts +10 -0
  88. package/dist/types/llm/components/Cta/cta.d.ts.map +1 -0
  89. package/dist/types/llm/components/Event/event.d.ts +3 -0
  90. package/dist/types/llm/components/Event/event.d.ts.map +1 -0
  91. package/dist/types/llm/components/EventGroup/eventgroup.d.ts +3 -0
  92. package/dist/types/llm/components/EventGroup/eventgroup.d.ts.map +1 -0
  93. package/dist/types/llm/components/FormRecap/FormRecap.d.ts +10 -0
  94. package/dist/types/llm/components/FormRecap/FormRecap.d.ts.map +1 -0
  95. package/dist/types/llm/components/FormRecapError/FormRecapError.d.ts +2 -0
  96. package/dist/types/llm/components/FormRecapError/FormRecapError.d.ts.map +1 -0
  97. package/dist/types/llm/components/FormRecapSuccess/FormRecapSuccess.d.ts +2 -0
  98. package/dist/types/llm/components/FormRecapSuccess/FormRecapSuccess.d.ts.map +1 -0
  99. package/dist/types/llm/components/FormRequest/FormRequest.d.ts +4 -0
  100. package/dist/types/llm/components/FormRequest/FormRequest.d.ts.map +1 -0
  101. package/dist/types/llm/components/Header/header.d.ts +4 -0
  102. package/dist/types/llm/components/Header/header.d.ts.map +1 -0
  103. package/dist/types/llm/components/Intro/intro.d.ts +2 -0
  104. package/dist/types/llm/components/Intro/intro.d.ts.map +1 -0
  105. package/dist/types/llm/components/Main/main.d.ts +2 -0
  106. package/dist/types/llm/components/Main/main.d.ts.map +1 -0
  107. package/dist/types/llm/components/Poi/poi.d.ts +3 -0
  108. package/dist/types/llm/components/Poi/poi.d.ts.map +1 -0
  109. package/dist/types/llm/components/PoiGroup/poigroup.d.ts +3 -0
  110. package/dist/types/llm/components/PoiGroup/poigroup.d.ts.map +1 -0
  111. package/dist/types/llm/components/Prompt/prompt.d.ts +2 -0
  112. package/dist/types/llm/components/Prompt/prompt.d.ts.map +1 -0
  113. package/dist/types/llm/components/Prompt/suggestions.d.ts +2 -0
  114. package/dist/types/llm/components/Prompt/suggestions.d.ts.map +1 -0
  115. package/dist/types/llm/components/QuickLinks/quicklinks.d.ts +3 -0
  116. package/dist/types/llm/components/QuickLinks/quicklinks.d.ts.map +1 -0
  117. package/dist/types/llm/components/Stream/stream.d.ts +4 -0
  118. package/dist/types/llm/components/Stream/stream.d.ts.map +1 -0
  119. package/dist/types/llm/components/Text/text.d.ts +7 -0
  120. package/dist/types/llm/components/Text/text.d.ts.map +1 -0
  121. package/dist/types/llm/components/Thread/thread.d.ts +4 -0
  122. package/dist/types/llm/components/Thread/thread.d.ts.map +1 -0
  123. package/dist/types/llm/components/Trigger/blob.d.ts +2 -0
  124. package/dist/types/llm/components/Trigger/blob.d.ts.map +1 -0
  125. package/dist/types/llm/components/Trigger/trigger.d.ts +2 -0
  126. package/dist/types/llm/components/Trigger/trigger.d.ts.map +1 -0
  127. package/dist/types/llm/components/Tripadvisor/tripadvisor.d.ts +4 -0
  128. package/dist/types/llm/components/Tripadvisor/tripadvisor.d.ts.map +1 -0
  129. package/dist/types/llm/hooks/useAutosizeTextArea.d.ts +3 -0
  130. package/dist/types/llm/hooks/useAutosizeTextArea.d.ts.map +1 -0
  131. package/dist/types/llm/llm.d.ts +5 -0
  132. package/dist/types/llm/llm.d.ts.map +1 -0
  133. package/dist/types/llm/utils.d.ts +7 -0
  134. package/dist/types/llm/utils.d.ts.map +1 -0
  135. package/dist/types/types.d.ts +163 -0
  136. package/dist/types/types.d.ts.map +1 -0
  137. package/dist/types/useLlm/cors.d.ts +16 -0
  138. package/dist/types/useLlm/cors.d.ts.map +1 -0
  139. package/dist/types/useLlm/emitter.d.ts +8 -0
  140. package/dist/types/useLlm/emitter.d.ts.map +1 -0
  141. package/dist/types/useLlm/message.service.d.ts +24 -0
  142. package/dist/types/useLlm/message.service.d.ts.map +1 -0
  143. package/dist/types/useLlm/mock.d.ts +5 -0
  144. package/dist/types/useLlm/mock.d.ts.map +1 -0
  145. package/dist/types/useLlm/speech.d.ts +57 -0
  146. package/dist/types/useLlm/speech.d.ts.map +1 -0
  147. package/dist/types/useLlm/useLlm.d.ts +83 -0
  148. package/dist/types/useLlm/useLlm.d.ts.map +1 -0
  149. package/package.json +86 -0
  150. package/src/__tests/example.test.ts +8 -0
  151. package/src/index.ts +6 -0
  152. package/src/llm/components/Background/_style.scss +24 -0
  153. package/src/llm/components/Background/background.tsx +89 -0
  154. package/src/llm/components/BusyIndicator/_style.scss +73 -0
  155. package/src/llm/components/BusyIndicator/busyindicator.tsx +13 -0
  156. package/src/llm/components/Canvas/_style.scss +10 -0
  157. package/src/llm/components/Canvas/canvas.tsx +257 -0
  158. package/src/llm/components/Chunk/chunk.tsx +80 -0
  159. package/src/llm/components/Cta/_style.scss +72 -0
  160. package/src/llm/components/Cta/cta.tsx +33 -0
  161. package/src/llm/components/Event/_style.scss +144 -0
  162. package/src/llm/components/Event/event.tsx +70 -0
  163. package/src/llm/components/EventGroup/_style.scss +60 -0
  164. package/src/llm/components/EventGroup/eventgroup.tsx +59 -0
  165. package/src/llm/components/FormRecap/FormRecap.tsx +221 -0
  166. package/src/llm/components/FormRecap/_style.scss +101 -0
  167. package/src/llm/components/FormRecapError/FormRecapError.tsx +10 -0
  168. package/src/llm/components/FormRecapError/_style.scss +11 -0
  169. package/src/llm/components/FormRecapSuccess/FormRecapSuccess.tsx +10 -0
  170. package/src/llm/components/FormRecapSuccess/_style.scss +11 -0
  171. package/src/llm/components/FormRequest/FormRequest.tsx +21 -0
  172. package/src/llm/components/FormRequest/_style.scss +21 -0
  173. package/src/llm/components/Header/_style.scss +72 -0
  174. package/src/llm/components/Header/header.tsx +38 -0
  175. package/src/llm/components/Intro/_style.scss +36 -0
  176. package/src/llm/components/Intro/intro.tsx +65 -0
  177. package/src/llm/components/Main/_style.scss +75 -0
  178. package/src/llm/components/Main/main.tsx +125 -0
  179. package/src/llm/components/Poi/_style.scss +127 -0
  180. package/src/llm/components/Poi/poi.tsx +58 -0
  181. package/src/llm/components/PoiGroup/_style.scss +14 -0
  182. package/src/llm/components/PoiGroup/poigroup.tsx +15 -0
  183. package/src/llm/components/Prompt/_style.scss +132 -0
  184. package/src/llm/components/Prompt/prompt.tsx +73 -0
  185. package/src/llm/components/Prompt/suggestions.tsx +39 -0
  186. package/src/llm/components/QuickLinks/_style.scss +61 -0
  187. package/src/llm/components/QuickLinks/quicklinks.tsx +58 -0
  188. package/src/llm/components/Stream/stream.tsx +37 -0
  189. package/src/llm/components/Text/_style.scss +89 -0
  190. package/src/llm/components/Text/text.tsx +28 -0
  191. package/src/llm/components/Thread/_style.scss +73 -0
  192. package/src/llm/components/Thread/thread.tsx +27 -0
  193. package/src/llm/components/Trigger/_style.scss +104 -0
  194. package/src/llm/components/Trigger/blob.tsx +42 -0
  195. package/src/llm/components/Trigger/trigger.tsx +50 -0
  196. package/src/llm/components/Tripadvisor/_style.scss +113 -0
  197. package/src/llm/components/Tripadvisor/tripadvisor.tsx +72 -0
  198. package/src/llm/hooks/useAutosizeTextArea.tsx +15 -0
  199. package/src/llm/llm.tsx +48 -0
  200. package/src/llm/scss/_base.scss +20 -0
  201. package/src/llm/scss/_breakpoints.scss +8 -0
  202. package/src/llm/scss/_layout.scss +39 -0
  203. package/src/llm/scss/_mixin.scss +67 -0
  204. package/src/llm/scss/_reset.scss +104 -0
  205. package/src/llm/scss/_spacing.scss +17 -0
  206. package/src/llm/scss/_typography.scss +153 -0
  207. package/src/llm/scss/_vars.scss +23 -0
  208. package/src/llm/scss/style.scss +29 -0
  209. package/src/llm/utils.tsx +12 -0
  210. package/src/types.ts +215 -0
  211. package/src/useLlm/cors.ts +124 -0
  212. package/src/useLlm/emitter.ts +29 -0
  213. package/src/useLlm/message.service.ts +336 -0
  214. package/src/useLlm/mock.ts +801 -0
  215. package/src/useLlm/speech.ts +363 -0
  216. package/src/useLlm/useLlm.tsx +474 -0
@@ -0,0 +1,77 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { motion } from 'framer-motion';
3
+ import { useLlm } from '../../../useLlm/useLlm.js';
4
+ import { QuickLinks } from '../QuickLinks/quicklinks.js';
5
+ import { Blob } from '../Trigger/blob.js';
6
+
7
+ const Intro = () => {
8
+ const app = useLlm(state => state.app);
9
+ const motionItem = {
10
+ hidden: {
11
+ y: '40px'
12
+ },
13
+ show: {
14
+ y: 0,
15
+ transition: {
16
+ type: 'tween',
17
+ duration: 1
18
+ }
19
+ }
20
+ };
21
+ const motionBlob = {
22
+ top: {
23
+ y: '-15%'
24
+ },
25
+ bottom: {
26
+ y: '0%',
27
+ transition: {
28
+ repeat: Infinity,
29
+ repeatType: 'mirror',
30
+ duration: 2,
31
+ ease: 'easeInOut'
32
+ }
33
+ }
34
+ };
35
+ const stagger = {
36
+ hidden: {},
37
+ show: {
38
+ transition: {
39
+ staggerChildren: .3
40
+ }
41
+ }
42
+ };
43
+ return jsx("div", {
44
+ className: "llm__intro",
45
+ children: jsx("div", {
46
+ className: "llm-container",
47
+ children: jsxs(motion.div, {
48
+ variants: stagger,
49
+ className: "llm__intro-wrapper llm-row",
50
+ children: [jsxs(motion.div, {
51
+ variants: motionItem,
52
+ className: "llm__intro-text llm-span-md-6",
53
+ children: [jsx("div", {
54
+ className: "llm__intro-blob",
55
+ children: jsx(motion.div, {
56
+ variants: motionBlob,
57
+ initial: "top",
58
+ animate: "bottom",
59
+ children: jsx(Blob, {})
60
+ })
61
+ }), jsx(motion.div, {
62
+ variants: motionItem,
63
+ className: "llm__intro-title -llm-t-display-3",
64
+ children: app === null || app === void 0 ? void 0 : app.contents.extendedWelcomeText
65
+ })]
66
+ }), jsx(motion.div, {
67
+ variants: motionItem,
68
+ className: "llm__intro-links llm-span-md-6 llm-span-lg-5",
69
+ children: jsx(QuickLinks, {})
70
+ })]
71
+ })
72
+ })
73
+ });
74
+ };
75
+
76
+ export { Intro };
77
+ //# sourceMappingURL=intro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intro.js","sources":["../../../../../src/llm/components/Intro/intro.tsx"],"sourcesContent":[null],"names":["Intro","app","useLlm","state","motionItem","hidden","y","show","transition","type","duration","motionBlob","top","bottom","repeat","Infinity","repeatType","ease","stagger","staggerChildren","_jsx","className","children","_jsxs","motion","div","variants","initial","animate","Blob","contents","extendedWelcomeText","QuickLinks"],"mappings":";;;;;;AAMaA,MAAAA,KAAK,GAAGA,MAAK;EACxB,MAAMC,GAAG,GAAGC,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACF,GAAG,CAAC,CAAA;AAEtC,EAAA,MAAMG,UAAU,GAAa;AAC3BC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,CAAC,EAAE,MAAA;KAAQ;AACrBC,IAAAA,IAAI,EAAE;AACJD,MAAAA,CAAC,EAAE,CAAC;AACJE,MAAAA,UAAU,EAAE;AACVC,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,QAAQ,EAAE,CAAA;AACX,OAAA;AACF,KAAA;GACF,CAAA;AAED,EAAA,MAAMC,UAAU,GAAa;AAC3BC,IAAAA,GAAG,EAAE;AACHN,MAAAA,CAAC,EAAE,MAAA;KACJ;AACDO,IAAAA,MAAM,EAAE;AACNP,MAAAA,CAAC,EAAE,IAAI;AACPE,MAAAA,UAAU,EAAE;AACVM,QAAAA,MAAM,EAAEC,QAAQ;AAChBC,QAAAA,UAAU,EAAE,QAAQ;AACpBN,QAAAA,QAAQ,EAAE,CAAC;AACXO,QAAAA,IAAI,EAAE,WAAA;AACP,OAAA;AACF,KAAA;GACF,CAAA;AAED,EAAA,MAAMC,OAAO,GAAG;IACdb,MAAM,EAAE,EAAE;AACVE,IAAAA,IAAI,EAAE;AACJC,MAAAA,UAAU,EAAE;AACVW,QAAAA,eAAe,EAAE,EAAA;AAClB,OAAA;AACF,KAAA;GACF,CAAA;EAED,OACEC,GAAK,CAAA,KAAA,EAAA;AAAAC,IAAAA,SAAS,EAAC,YAAY;cACzBD,GAAK,CAAA,KAAA,EAAA;AAAAC,MAAAA,SAAS,EAAC,eAAe;AAC5BC,MAAAA,QAAA,EAAAC,IAAA,CAACC,MAAM,CAACC,GAAG,EAAC;AAAAC,QAAAA,QAAQ,EAAER,OAAO;AAAEG,QAAAA,SAAS,EAAC,4BAA4B;AAAAC,QAAAA,QAAA,EAAA,CACnEC,IAAC,CAAAC,MAAM,CAACC,GAAG,EAAA;AAACC,UAAAA,QAAQ,EAAEtB,UAAU;AAAGiB,UAAAA,SAAS,EAAC,+BAA+B;AAC1EC,UAAAA,QAAA,EAAA,CAAAF,GAAA,CAAA,KAAA,EAAA;AAAKC,YAAAA,SAAS,EAAC,iBAAiB;AAC9BC,YAAAA,QAAA,EAAAF,GAAA,CAACI,MAAM,CAACC,GAAG,EAAA;AAACC,cAAAA,QAAQ,EAAEf,UAAU;AAAEgB,cAAAA,OAAO,EAAC,KAAK;AAACC,cAAAA,OAAO,EAAC,QAAQ;AAC9DN,cAAAA,QAAA,EAAAF,GAAA,CAACS,IAAI,EAAA,EAAA,CAAA;;AAEH,WAAA,CAAA,EACNT,GAAC,CAAAI,MAAM,CAACC,GAAG;AAACC,YAAAA,QAAQ,EAAEtB,UAAU;AAAEiB,YAAAA,SAAS,EAAC,mCAAmC;AAAAC,YAAAA,QAAA,EAAErB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAE6B,QAAQ,CAACC,mBAAAA;AAAiC,WAAA,CAAA,CAAA;AAAA,SAAA,CACrH,EACbX,GAAA,CAACI,MAAM,CAACC,GAAG,EAAC;AAAAC,UAAAA,QAAQ,EAAEtB,UAAU;AAAEiB,UAAAA,SAAS,EAAC,8CAA8C;AAAAC,UAAAA,QAAA,EACxFF,GAAC,CAAAY,UAAU,EAAE,EAAA,CAAA;AAAA,SAAA,CACF,CAAA;OACF,CAAA;KAAA,CAAA;AAEX,GAAA,CAAA,CAAA;AAGV;;;;"}
@@ -0,0 +1,118 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ReactLenis } from '@studio-freight/react-lenis';
3
+ import { IconLlmSpeakDisabled, IconLlmSpeakEnabled } from '@websolutespa/bom-mixer-icons';
4
+ import { getClassNames } from '@websolutespa/bom-core';
5
+ import { motion } from 'framer-motion';
6
+ import { useRef } from 'react';
7
+ import { useLlm } from '../../../useLlm/useLlm.js';
8
+ import { Canvas } from '../Canvas/canvas.js';
9
+ import { Header } from '../Header/header.js';
10
+ import { Intro } from '../Intro/intro.js';
11
+ import { Prompt } from '../Prompt/prompt.js';
12
+ import { Thread } from '../Thread/thread.js';
13
+
14
+ const Main = () => {
15
+ var _a;
16
+ const lenisRef = useRef(null);
17
+ const {
18
+ messages,
19
+ speakEnabled
20
+ } = useLlm(state => state);
21
+ const {
22
+ setLenis,
23
+ toggleSpeak
24
+ } = useLlm(state => state.actions);
25
+ const classNames = getClassNames('llm__main');
26
+ setLenis((_a = lenisRef.current) === null || _a === void 0 ? void 0 : _a.lenis);
27
+ const reveal = {
28
+ hidden: {
29
+ opacity: 0,
30
+ scale: .98
31
+ },
32
+ show: {
33
+ opacity: 1,
34
+ scale: 1,
35
+ transition: {
36
+ duration: .3
37
+ }
38
+ },
39
+ exit: {
40
+ opacity: 0,
41
+ transition: {
42
+ duration: .3,
43
+ delay: .3
44
+ }
45
+ }
46
+ };
47
+ const intro = {
48
+ hidden: {
49
+ opacity: 0
50
+ },
51
+ show: {
52
+ opacity: 1,
53
+ transition: {
54
+ delay: .6,
55
+ duration: .5
56
+ }
57
+ }
58
+ };
59
+ const slideIn = direction => ({
60
+ hidden: {
61
+ y: `${100 * direction}%`
62
+ },
63
+ show: {
64
+ y: 0,
65
+ transition: {
66
+ type: 'tween',
67
+ delay: 1.2,
68
+ duration: .6
69
+ }
70
+ },
71
+ exit: {
72
+ y: `${100 * direction}%`,
73
+ transition: {
74
+ type: 'tween',
75
+ duration: .3
76
+ }
77
+ }
78
+ });
79
+ return jsxs(motion.div, {
80
+ variants: reveal,
81
+ initial: "hidden",
82
+ animate: "show",
83
+ exit: "exit",
84
+ className: classNames,
85
+ children: [jsx("button", {
86
+ className: "llm__toggle-speak",
87
+ onClick: toggleSpeak,
88
+ children: speakEnabled ? jsx(IconLlmSpeakDisabled, {}) : jsx(IconLlmSpeakEnabled, {})
89
+ }), jsx(Canvas, {}), jsx(motion.div, {
90
+ className: "llm__top",
91
+ variants: slideIn(-1),
92
+ initial: "hidden",
93
+ animate: "show",
94
+ exit: "exit",
95
+ children: jsx(Header, {})
96
+ }), jsx(ReactLenis, {
97
+ ref: lenisRef,
98
+ className: "llm__scroller",
99
+ children: jsxs(motion.div, {
100
+ variants: intro,
101
+ initial: "hidden",
102
+ animate: "show",
103
+ className: "llm__content",
104
+ children: [jsx(Intro, {}), messages && messages.length > 0 && jsx(Thread, {})]
105
+ })
106
+ }), jsx(motion.div, {
107
+ className: "llm__bottom",
108
+ variants: slideIn(1),
109
+ initial: "hidden",
110
+ animate: "show",
111
+ exit: "exit",
112
+ children: jsx(Prompt, {})
113
+ })]
114
+ }, "main-container");
115
+ };
116
+
117
+ export { Main };
118
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sources":["../../../../../src/llm/components/Main/main.tsx"],"sourcesContent":[null],"names":["Main","lenisRef","useRef","messages","speakEnabled","useLlm","state","setLenis","toggleSpeak","actions","classNames","getClassNames","current","_a","lenis","reveal","hidden","opacity","scale","show","transition","duration","exit","delay","intro","slideIn","direction","y","type","_jsxs","motion","div","variants","initial","animate","className","_jsx","onClick","children","IconLlmSpeakDisabled","IconLlmSpeakEnabled","Canvas","Header","ReactLenis","ref","Intro","length","Thread","Prompt"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { __awaiter } from '../../../node_modules/tslib/tslib.es6.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { getClassNames, isBrowser } from '@websolutespa/bom-core';
4
+ import { useLabel } from '@websolutespa/bom-mixer-hooks';
5
+ import { IconLlmTimetable, IconLlmPin } from '@websolutespa/bom-mixer-icons';
6
+ import { useLlm } from '../../../useLlm/useLlm.js';
7
+ import { Cta } from '../Cta/cta.js';
8
+
9
+ const Poi = props => {
10
+ const label = useLabel();
11
+ const {
12
+ send,
13
+ decorateUrl
14
+ } = useLlm(state => state.actions);
15
+ const onTellMeMore = () => __awaiter(void 0, void 0, void 0, function* () {
16
+ const prompt = `${label('llm.tellMeMoreAbout')} ${props.title}`;
17
+ yield send(prompt, response => {
18
+ // console.log('Prompt.onChunk', response.chunks);
19
+ }, response => {
20
+ // console.log('Prompt.onEnd', response);
21
+ });
22
+ });
23
+ const onGoToWebsite = () => __awaiter(void 0, void 0, void 0, function* () {
24
+ if (isBrowser) {
25
+ const url = yield decorateUrl(props, props.url);
26
+ window.open(url, '_blank');
27
+ }
28
+ });
29
+ const classNames = getClassNames('llm__poi', {
30
+ [`llm__poi--${props.type}`]: !!props.type
31
+ });
32
+ return jsxs("div", {
33
+ className: classNames,
34
+ children: [props.image && jsx("div", {
35
+ className: "llm__poi-media",
36
+ children: jsx("img", {
37
+ src: props.image,
38
+ alt: props.title
39
+ })
40
+ }), jsxs("div", {
41
+ className: "llm__poi-content",
42
+ children: [props.title && jsx("div", {
43
+ className: "llm__poi-title",
44
+ dangerouslySetInnerHTML: {
45
+ __html: props.title
46
+ }
47
+ }), props.abstract && jsx("div", {
48
+ className: "llm__poi-body",
49
+ dangerouslySetInnerHTML: {
50
+ __html: props.abstract
51
+ }
52
+ }), (props.time || props.place) && jsxs("div", {
53
+ className: "llm__poi-tags",
54
+ children: [props.time && jsxs("div", {
55
+ className: "llm__poi-tag llm__poi-time",
56
+ children: [jsx(IconLlmTimetable, {}), props.time]
57
+ }), props.place && jsxs("div", {
58
+ className: "llm__poi-tag llm__poi-location",
59
+ children: [jsx(IconLlmPin, {}), props.place]
60
+ })]
61
+ }), jsxs("div", {
62
+ className: "llm__poi-ctas",
63
+ children: [jsx(Cta, {
64
+ type: "button",
65
+ label: label('llm.tellMeMore'),
66
+ onClick: onTellMeMore
67
+ }), jsx(Cta, {
68
+ type: "text",
69
+ label: label('llm.goToWebsite'),
70
+ onClick: onGoToWebsite
71
+ })]
72
+ })]
73
+ })]
74
+ });
75
+ };
76
+
77
+ export { Poi };
78
+ //# sourceMappingURL=poi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poi.js","sources":["../../../../../src/llm/components/Poi/poi.tsx"],"sourcesContent":[null],"names":["Poi","props","label","useLabel","send","decorateUrl","useLlm","state","actions","onTellMeMore","__awaiter","prompt","title","response","onGoToWebsite","isBrowser","url","window","open","classNames","getClassNames","type","_jsxs","className","children","image","_jsx","src","alt","dangerouslySetInnerHTML","__html","abstract","time","place","IconLlmTimetable","IconLlmPin","Cta","onClick"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { getClassNames } from '@websolutespa/bom-core';
3
+ import { Poi } from '../Poi/poi.js';
4
+
5
+ const PoiGroup = props => {
6
+ const classNames = getClassNames('llm__pois');
7
+ return jsx("div", {
8
+ className: classNames,
9
+ children: props.items.map((item, i) => jsx(Poi, Object.assign({}, item), i))
10
+ });
11
+ };
12
+
13
+ export { PoiGroup };
14
+ //# sourceMappingURL=poigroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poigroup.js","sources":["../../../../../src/llm/components/PoiGroup/poigroup.tsx"],"sourcesContent":[null],"names":["PoiGroup","props","classNames","getClassNames","_jsx","className","children","items","map","item","i","Poi","Object","assign"],"mappings":";;;;AAIaA,MAAAA,QAAQ,GAAIC,KAAuB,IAAI;AAClD,EAAA,MAAMC,UAAU,GAAGC,aAAa,CAAC,WAAW,CAAC,CAAA;EAC7C,OACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEH,UAAU;IAAAI,QAAA,EACvBL,KAAK,CAACM,KAAK,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KACvBN,GAAA,CAACO,GAAG,EAAaC,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAJ,IAAI,CAAX,EAAAC,CAAC,CACZ,CAAA;AAAC,GAAA,CACE,CAAA;AAEV;;;;"}
@@ -0,0 +1,86 @@
1
+ import { __awaiter } from '../../../node_modules/tslib/tslib.es6.js';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { IconLlmStop, IconLlmSend } from '@websolutespa/bom-mixer-icons';
4
+ import { useRef } from 'react';
5
+ import { useLlm } from '../../../useLlm/useLlm.js';
6
+ import useAutosizeTextArea from '../../hooks/useAutosizeTextArea.js';
7
+ import { Blob } from '../Trigger/blob.js';
8
+ import { Suggestions } from './suggestions.js';
9
+
10
+ const Prompt = () => {
11
+ const textArea = useRef(null);
12
+ const prompt = useLlm(state => state.prompt);
13
+ const messages = useLlm(state => state.messages);
14
+ const streaming = useLlm(state => state.streaming);
15
+ const {
16
+ send,
17
+ setPrompt,
18
+ recognizeStart,
19
+ recognizeStop,
20
+ abort
21
+ } = useLlm(state => state.actions);
22
+ useAutosizeTextArea(textArea.current, prompt);
23
+ const onChange = event => {
24
+ var _a;
25
+ const prompt = (_a = event.target) === null || _a === void 0 ? void 0 : _a.value;
26
+ setPrompt(prompt);
27
+ };
28
+ const onSubmit = event => __awaiter(void 0, void 0, void 0, function* () {
29
+ event && event.preventDefault();
30
+ if (!prompt) {
31
+ return;
32
+ }
33
+ yield send(prompt, response => {
34
+ // console.log('Prompt.onChunk', response.chunks);
35
+ }, response => {
36
+ // console.log('Prompt.onEnd', response);
37
+ });
38
+ });
39
+ const onKeyDown = event => {
40
+ if (event.code == 'Enter' && !event.shiftKey) {
41
+ onSubmit(event);
42
+ }
43
+ };
44
+ return jsx("div", {
45
+ className: "llm__prompt",
46
+ children: jsxs("div", {
47
+ className: "llm-container",
48
+ children: [messages.length === 0 && jsx("div", {
49
+ className: "llm__prompt-suggestions",
50
+ children: jsx(Suggestions, {})
51
+ }), jsxs("form", {
52
+ className: "llm__prompt-form",
53
+ onSubmit: onSubmit,
54
+ children: [jsxs("div", {
55
+ className: "llm__prompt-input",
56
+ children: [jsx("textarea", {
57
+ className: "llm__prompt-textarea",
58
+ name: "prompt",
59
+ onKeyDown: onKeyDown,
60
+ onChange: onChange,
61
+ ref: textArea,
62
+ rows: 1,
63
+ value: prompt
64
+ }), false ]
65
+ }), streaming ? jsxs("button", {
66
+ className: "llm__prompt-stop",
67
+ type: "button",
68
+ onClick: abort,
69
+ children: [jsx(Blob, {}), jsx("i", {
70
+ children: jsx(IconLlmStop, {})
71
+ })]
72
+ }) : jsxs("button", {
73
+ className: "llm__prompt-submit",
74
+ type: "submit",
75
+ disabled: !prompt,
76
+ children: [jsx(Blob, {}), jsx("i", {
77
+ children: jsx(IconLlmSend, {})
78
+ })]
79
+ })]
80
+ })]
81
+ })
82
+ });
83
+ };
84
+
85
+ export { Prompt };
86
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sources":["../../../../../src/llm/components/Prompt/prompt.tsx"],"sourcesContent":[null],"names":["Prompt","textArea","useRef","prompt","useLlm","state","messages","streaming","send","setPrompt","recognizeStart","recognizeStop","abort","actions","useAutosizeTextArea","current","onChange","event","_a","target","value","onSubmit","__awaiter","preventDefault","response","onKeyDown","code","shiftKey","_jsx","className","_jsxs","children","length","Suggestions","name","ref","rows","type","onClick","Blob","IconLlmStop","disabled","IconLlmSend"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { __awaiter } from '../../../node_modules/tslib/tslib.es6.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useWindowSize } from '@websolutespa/bom-mixer-hooks';
4
+ import { FreeMode } from 'swiper';
5
+ import { Swiper, SwiperSlide } from 'swiper/react';
6
+ import { useLlm } from '../../../useLlm/useLlm.js';
7
+ import { clamp } from '../../utils.js';
8
+
9
+ const Suggestions = () => {
10
+ useWindowSize();
11
+ const app = useLlm(state => state.app);
12
+ const {
13
+ send
14
+ } = useLlm(state => state.actions);
15
+ const swiperProps = {
16
+ modules: [FreeMode],
17
+ spaceBetween: 8,
18
+ freeMode: true,
19
+ slidesPerView: 'auto',
20
+ slidesOffsetAfter: clamp(20, 110),
21
+ slidesOffsetBefore: clamp(20, 110)
22
+ };
23
+ const onClick = item => __awaiter(void 0, void 0, void 0, function* () {
24
+ yield send(item.sampleInputText, response => {
25
+ // console.log('Suggestions.onChunk', response.chunks);
26
+ }, response => {
27
+ // console.log('Suggestions.onEnd', response);
28
+ });
29
+ });
30
+ return jsx("div", {
31
+ className: "llm__suggestions",
32
+ children: jsx(Swiper, Object.assign({}, swiperProps, {
33
+ onInit: swiper => swiper.update(),
34
+ children: app === null || app === void 0 ? void 0 : app.contents.sampleInputTexts.map((s, j) => jsx(SwiperSlide, {
35
+ children: jsx("div", {
36
+ onClick: () => onClick(s),
37
+ children: s.sampleInputText
38
+ })
39
+ }, j))
40
+ }))
41
+ });
42
+ };
43
+
44
+ export { Suggestions };
45
+ //# sourceMappingURL=suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestions.js","sources":["../../../../../src/llm/components/Prompt/suggestions.tsx"],"sourcesContent":[null],"names":["Suggestions","useWindowSize","app","useLlm","state","send","actions","swiperProps","modules","FreeMode","spaceBetween","freeMode","slidesPerView","slidesOffsetAfter","clamp","slidesOffsetBefore","onClick","item","__awaiter","sampleInputText","response","_jsx","className","children","Swiper","Object","assign","onInit","swiper","update","contents","sampleInputTexts","map","s","j","SwiperSlide"],"mappings":";;;;;;;;AAOaA,MAAAA,WAAW,GAAGA,MAAK;AAE9BC,EAAAA,aAAa,EAAE,CAAA;EAEf,MAAMC,GAAG,GAAGC,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACF,GAAG,CAAC,CAAA;EACtC,MAAM;AAAEG,IAAAA,IAAAA;GAAM,GAAGF,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACE,OAAO,CAAC,CAAA;AAE/C,EAAA,MAAMC,WAAW,GAAG;IAClBC,OAAO,EAAE,CAACC,QAAQ,CAAC;AACnBC,IAAAA,YAAY,EAAE,CAAC;AACfC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,aAAa,EAAE,MAAe;AAC9BC,IAAAA,iBAAiB,EAAEC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC;AACjCC,IAAAA,kBAAkB,EAAED,KAAK,CAAC,EAAE,EAAE,GAAG,CAAA;GAClC,CAAA;AAED,EAAA,MAAME,OAAO,GAAUC,IAAwB,IAAIC,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACjD,IAAA,MAAMb,IAAI,CAACY,IAAI,CAACE,eAAe,EAAGC,QAAQ,IAAI;AAC5C;KACD,EAAGA,QAAQ,IAAI;AACd;AAAA,KACD,CAAC,CAAA;AACJ,GAAC,CAAA,CAAA;EAED,OACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kBAAkB;AAAAC,IAAAA,QAAA,EAC/BF,GAAC,CAAAG,MAAM,EAAKC,MAAA,CAAAC,MAAA,CAAA,EAAA,EAAAnB,WAAW,EAAE;AAAAoB,MAAAA,MAAM,EAAEC,MAAM,IAAIA,MAAM,CAACC,MAAM,EAAE;gBACvD3B,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAE4B,QAAQ,CAACC,gBAAgB,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKb,GAAC,CAAAc,WAAW,EAAS;AAAAZ,QAAAA,QAAA,EAAAF,GAAA,CAAA,KAAA,EAAA;AAAKL,UAAAA,OAAO,EAAEA,MAAMA,OAAO,CAACiB,CAAC,CAAC;UAAGV,QAAA,EAAAU,CAAC,CAACd,eAAAA;SAAe,CAAA;OAArD,EAAAe,CAAC,CAAyE,CAAA;AACnI,KAAA,CAAA,CAAA;AAAA,GAAA,CACL,CAAA;AAEV;;;;"}
@@ -0,0 +1,66 @@
1
+ import { __awaiter } from '../../../node_modules/tslib/tslib.es6.js';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useWindowSize } from '@websolutespa/bom-mixer-hooks';
4
+ import 'swiper/css';
5
+ import { Swiper, SwiperSlide } from 'swiper/react';
6
+ import { useLlm } from '../../../useLlm/useLlm.js';
7
+ import { clamp } from '../../utils.js';
8
+
9
+ const QuickLinks = () => {
10
+ const {
11
+ width
12
+ } = useWindowSize();
13
+ const {
14
+ send
15
+ } = useLlm(state => state.actions);
16
+ const app = useLlm(state => state.app);
17
+ const swiperProps = {
18
+ spaceBetween: clamp(8, 16),
19
+ slidesOffsetAfter: clamp(20, 110),
20
+ slidesOffsetBefore: clamp(20, 110),
21
+ slidesPerView: clamp(1.2, 2.2)
22
+ };
23
+ const onClick = item => __awaiter(void 0, void 0, void 0, function* () {
24
+ yield send(item.message || item.title, response => {
25
+ // console.log('QuickLinks.onChunk', response.chunks);
26
+ }, response => {
27
+ // console.log('QuickLinks.onEnd', response);
28
+ });
29
+ });
30
+ const getCard = (item, j) => {
31
+ return jsxs("div", {
32
+ className: "llm__links-card",
33
+ onClick: () => onClick(item),
34
+ children: [jsxs("div", {
35
+ className: "llm__links-title -llm-t-label-1",
36
+ children: [item.icon && jsx("i", {
37
+ children: jsx("img", {
38
+ src: item.icon.src || item.icon.url,
39
+ alt: item.icon.alt
40
+ })
41
+ }), item.title]
42
+ }), jsx("div", {
43
+ className: "llm__links-body -llm-t-body-3",
44
+ children: item.body
45
+ })]
46
+ }, j);
47
+ };
48
+ const getCards = () => {
49
+ if (width < 768) {
50
+ return jsx(Swiper, Object.assign({}, swiperProps, {
51
+ children: app === null || app === void 0 ? void 0 : app.contents.layoutBuilder.map((item, j) => jsx(SwiperSlide, {
52
+ children: getCard(item, j)
53
+ }, j))
54
+ }));
55
+ } else {
56
+ return app === null || app === void 0 ? void 0 : app.contents.layoutBuilder.map(getCard);
57
+ }
58
+ };
59
+ return jsx("div", {
60
+ className: "llm__links",
61
+ children: getCards()
62
+ });
63
+ };
64
+
65
+ export { QuickLinks };
66
+ //# sourceMappingURL=quicklinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quicklinks.js","sources":["../../../../../src/llm/components/QuickLinks/quicklinks.tsx"],"sourcesContent":[null],"names":["QuickLinks","width","useWindowSize","send","useLlm","state","actions","app","swiperProps","spaceBetween","clamp","slidesOffsetAfter","slidesOffsetBefore","slidesPerView","onClick","item","__awaiter","message","title","response","getCard","j","_jsxs","className","children","icon","_jsx","src","url","alt","body","getCards","Swiper","contents","layoutBuilder","map","SwiperSlide"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import { AnimatePresence, motion } from 'framer-motion';
3
+ import { useLlm } from '../../../useLlm/useLlm.js';
4
+ import { BusyIndicator } from '../BusyIndicator/busyindicator.js';
5
+ import { Chunk } from '../Chunk/chunk.js';
6
+
7
+ const Stream = props => {
8
+ const messages = useLlm(state => state.messages);
9
+ const chunks = useLlm(state => state.chunks);
10
+ return jsx(Fragment, {
11
+ children: chunks && jsx(Fragment, {
12
+ children: jsx("div", {
13
+ className: "llm__message llm__message--assistant llm-row",
14
+ children: jsxs(AnimatePresence, {
15
+ children: [chunks.map((chunk, c) => jsx("div", {
16
+ className: `llm__inner llm__inner--${chunk.type}`,
17
+ children: jsx(motion.div, {
18
+ initial: {
19
+ opacity: 0,
20
+ y: 10
21
+ },
22
+ animate: {
23
+ opacity: 1,
24
+ y: 0
25
+ },
26
+ transition: {
27
+ duration: 1
28
+ },
29
+ children: jsx(Chunk, {
30
+ item: chunk,
31
+ index: messages.length,
32
+ total: messages.length + 1
33
+ })
34
+ })
35
+ }, c)), jsx(BusyIndicator, {})]
36
+ })
37
+ })
38
+ })
39
+ });
40
+ };
41
+
42
+ export { Stream };
43
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sources":["../../../../../src/llm/components/Stream/stream.tsx"],"sourcesContent":[null],"names":["Stream","props","messages","useLlm","state","chunks","_jsx","_Fragment","children","className","_jsxs","AnimatePresence","map","chunk","c","type","motion","div","initial","opacity","y","animate","transition","duration","Chunk","item","index","length","total","BusyIndicator"],"mappings":";;;;;;AASaA,MAAAA,MAAM,GAA2BC,KAAkB,IAAI;EAClE,MAAMC,QAAQ,GAAGC,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACF,QAAQ,CAAC,CAAA;EAChD,MAAMG,MAAM,GAAGF,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACC,MAAM,CAAC,CAAA;EAC5C,OACEC,GACG,CAAAC,QAAA,EAAA;AAAAC,IAAAA,QAAA,EAAAH,MAAM,IACLC;gBACEA,GAAK,CAAA,KAAA,EAAA;AAAAG,QAAAA,SAAS,EAAC,8CAA8C;AAC3DD,QAAAA,QAAA,EAAAE,IAAA,CAACC,eAAe,EACb;AAAAH,UAAAA,QAAA,EAAA,CAAAH,MAAM,CAACO,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KACnBR;AAAaG,YAAAA,SAAS,EAA4B,CAAA,uBAAA,EAAAI,KAAK,CAACE,KAAM,CAAA;AAC5DP,YAAAA,QAAA,EAAAF,GAAA,CAACU,MAAM,CAACC,GAAG,EAAA;AACTC,cAAAA,OAAO,EAAE;AAAEC,gBAAAA,OAAO,EAAE,CAAC;AAAEC,gBAAAA,CAAC,EAAE,EAAA;eAAI;AAC9BC,cAAAA,OAAO,EAAE;AAAEF,gBAAAA,OAAO,EAAE,CAAC;AAAEC,gBAAAA,CAAC,EAAE,CAAA;eAAG;AAC7BE,cAAAA,UAAU,EAAE;AAAEC,gBAAAA,QAAQ,EAAE,CAAA;eAAG;AAE3Bf,cAAAA,QAAA,EAAAF,GAAA,CAACkB,KAAK,EAAA;AAACC,gBAAAA,IAAI,EAAEZ,KAAK;gBAAEa,KAAK,EAAExB,QAAQ,CAACyB,MAAM;AAAEC,gBAAAA,KAAK,EAAE1B,QAAQ,CAACyB,MAAM,GAAG,CAAA;eAAK,CAAA;aAAA,CAAA;WANpE,EAAAb,CAAC,CASZ,CAAC,EACFR,GAAA,CAACuB,aAAa,EAAA,EAAA,CAAG,CAAA;SACD,CAAA;OAAA,CAAA;KAEnB,CAAA;AAEJ,GAAA,CAAA,CAAA;AAEP;;;;"}
@@ -0,0 +1,34 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useLabel } from '@websolutespa/bom-mixer-hooks';
3
+ import { IconLlmInfoCircle } from '@websolutespa/bom-mixer-icons';
4
+ import { marked } from 'marked';
5
+ import { useMemo } from 'react';
6
+
7
+ const Text = props => {
8
+ const label = useLabel();
9
+ const html = useMemo(() => {
10
+ return marked.parse(props.body);
11
+ }, [props.body]);
12
+ const disclaimer = props.disclaimer ? label('llm.disclaimer') : '';
13
+ return jsxs("div", {
14
+ className: "llm__text",
15
+ children: [jsx("div", {
16
+ className: "llm__text-body",
17
+ dangerouslySetInnerHTML: {
18
+ __html: html
19
+ }
20
+ }), disclaimer && jsxs("small", {
21
+ className: "llm__text-disclaimer",
22
+ children: [jsx("i", {
23
+ children: jsx(IconLlmInfoCircle, {})
24
+ }), jsx("div", {
25
+ dangerouslySetInnerHTML: {
26
+ __html: disclaimer
27
+ }
28
+ })]
29
+ })]
30
+ });
31
+ };
32
+
33
+ export { Text };
34
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sources":["../../../../../src/llm/components/Text/text.tsx"],"sourcesContent":[null],"names":["Text","props","label","useLabel","html","useMemo","marked","parse","body","disclaimer","_jsxs","className","children","_jsx","dangerouslySetInnerHTML","__html","IconLlmInfoCircle"],"mappings":";;;;;;AAUaA,MAAAA,IAAI,GAAIC,KAAmB,IAAI;AAC1C,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE,CAAA;AACxB,EAAA,MAAMC,IAAI,GAAGC,OAAO,CAAC,MAAK;AACxB,IAAA,OAAOC,MAAM,CAACC,KAAK,CAACN,KAAK,CAACO,IAAI,CAAC,CAAA;AACjC,GAAC,EAAE,CAACP,KAAK,CAACO,IAAI,CAAC,CAAC,CAAA;EAChB,MAAMC,UAAU,GAAGR,KAAK,CAACQ,UAAU,GAAGP,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAA;EAClE,OACEQ;AAAKC,IAAAA,SAAS,EAAC,WAAW;AACxBC,IAAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,gBAAgB;AAACG,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEX,IAAAA;AAAM,OAAA;AAAA,KAAA,CAAI,EAC5EK,UAAU,IACTC;AAAOC,MAAAA,SAAS,EAAC,sBAAsB;AACrCC,MAAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,GAAA,EAAA;AAAAD,QAAAA,QAAA,EAAGC,IAACG,iBAAiB,EAAA,EAAA,CAAA;AAAO,OAAA,CAAA,EAC5BH,GAAK,CAAA,KAAA,EAAA;AAAAC,QAAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEN,UAAAA;AAAU,SAAA;QAAM,CAAA;AAClD,KAAA,CACT,CAAA;AACG,GAAA,CAAA,CAAA;AAEV;;;;"}
@@ -0,0 +1,26 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { getClassNames } from '@websolutespa/bom-core';
3
+ import { useLlm } from '../../../useLlm/useLlm.js';
4
+ import { Chunk } from '../Chunk/chunk.js';
5
+ import { Stream } from '../Stream/stream.js';
6
+
7
+ const Thread = () => {
8
+ const messages = useLlm(state => state.messages);
9
+ return jsxs("div", {
10
+ className: "llm__thread llm-container",
11
+ children: [messages.map((message, m) => jsx("div", {
12
+ className: getClassNames('llm__message', `llm__message--${message.role}`, 'llm-row'),
13
+ children: message.chunks.map((chunk, c) => jsx("div", {
14
+ className: `llm__inner llm__inner--${chunk.type}`,
15
+ children: jsx(Chunk, {
16
+ item: chunk,
17
+ index: m,
18
+ total: messages.length
19
+ })
20
+ }, c))
21
+ }, m)), jsx(Stream, {})]
22
+ });
23
+ };
24
+
25
+ export { Thread };
26
+ //# sourceMappingURL=thread.js.map