@pickaxeproject/react 0.0.8 → 0.0.10

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 (315) hide show
  1. package/dist/cjs/_virtual/_tslib.js +1 -1
  2. package/dist/cjs/common/api/index.js +1 -0
  3. package/dist/cjs/common/api/streamer.js +1 -0
  4. package/dist/cjs/common/documents.d.ts +4 -0
  5. package/dist/cjs/common/documents.js +1 -0
  6. package/dist/cjs/common/error.d.ts +2 -0
  7. package/dist/cjs/common/error.js +1 -0
  8. package/dist/cjs/common/renderer.d.ts +12 -0
  9. package/dist/cjs/common/renderer.js +1 -0
  10. package/dist/cjs/common/utils.d.ts +2 -0
  11. package/dist/cjs/common/utils.js +1 -0
  12. package/dist/cjs/components/Core/Button.d.ts +9 -0
  13. package/dist/cjs/components/Core/CopyButton.d.ts +10 -0
  14. package/dist/cjs/components/Core/CopyButton.js +1 -0
  15. package/dist/cjs/components/Core/ErrorAlert.d.ts +8 -0
  16. package/dist/cjs/components/Core/ErrorAlert.js +1 -0
  17. package/dist/cjs/components/Core/HtmlRenderer.d.ts +9 -0
  18. package/dist/cjs/components/Core/HtmlRenderer.js +1 -0
  19. package/dist/cjs/components/Core/MarkdownRenderer.d.ts +13 -0
  20. package/dist/cjs/components/Core/MarkdownRenderer.js +1 -0
  21. package/dist/cjs/components/Core/Menu/Button.d.ts +8 -0
  22. package/dist/cjs/components/Core/Menu/Button.js +1 -0
  23. package/dist/cjs/components/Core/Menu/List.d.ts +13 -0
  24. package/dist/cjs/components/Core/Menu/List.js +1 -0
  25. package/dist/cjs/components/Core/Menu/index.d.ts +27 -0
  26. package/dist/cjs/components/Core/Menu/index.js +1 -0
  27. package/dist/cjs/components/Core/Modal/Body.d.ts +6 -0
  28. package/dist/cjs/components/Core/Modal/Body.js +1 -0
  29. package/dist/cjs/components/Core/Modal/CloseButton.d.ts +9 -0
  30. package/dist/cjs/components/Core/Modal/index.d.ts +15 -0
  31. package/dist/cjs/components/Core/Modal/index.js +1 -0
  32. package/dist/cjs/components/Core/PickaxeIcon.d.ts +10 -0
  33. package/dist/cjs/components/Core/PickaxeIcon.js +1 -0
  34. package/dist/cjs/components/Core/ScrollArea.d.ts +12 -0
  35. package/dist/cjs/components/Core/ScrollArea.js +1 -0
  36. package/dist/cjs/components/Core/Skeleton.d.ts +9 -0
  37. package/dist/cjs/components/Core/Textarea.d.ts +19 -0
  38. package/dist/cjs/components/Core/Textarea.js +1 -0
  39. package/dist/cjs/components/Core/Tooltip.d.ts +16 -0
  40. package/dist/cjs/components/Core/Tooltip.js +1 -0
  41. package/dist/cjs/components/Icons/attach.svg.js +1 -0
  42. package/dist/cjs/components/Icons/check.svg.js +1 -0
  43. package/dist/cjs/components/Icons/chevron-down.svg.js +1 -0
  44. package/dist/cjs/components/Icons/circle-exclamation.svg.js +1 -0
  45. package/dist/cjs/components/Icons/circle-info.svg.js +1 -0
  46. package/dist/cjs/components/Icons/copied.svg.js +1 -0
  47. package/dist/cjs/components/Icons/copy.svg.js +1 -0
  48. package/dist/cjs/components/Icons/document.svg.js +1 -0
  49. package/dist/cjs/components/Icons/link.svg.js +1 -0
  50. package/dist/cjs/components/Icons/message-square-notes.svg.js +1 -0
  51. package/dist/cjs/components/Icons/send.svg.js +1 -0
  52. package/dist/cjs/components/Icons/spinner-circle.svg.js +1 -0
  53. package/dist/cjs/components/Icons/spinner-lines.svg.js +1 -0
  54. package/dist/cjs/components/Icons/trash.svg.js +1 -0
  55. package/dist/cjs/components/Icons/visitor.svg.js +1 -0
  56. package/dist/cjs/components/Icons/x.svg.js +1 -0
  57. package/dist/cjs/components/Icons/youtube.svg.js +1 -0
  58. package/dist/cjs/components/Pickaxe/Addons/Document/List.d.ts +5 -0
  59. package/dist/cjs/components/Pickaxe/Addons/Document/List.js +1 -0
  60. package/dist/cjs/components/Pickaxe/Addons/Document/Provider.d.ts +25 -0
  61. package/dist/cjs/components/Pickaxe/Addons/Document/Provider.js +1 -0
  62. package/dist/cjs/components/Pickaxe/Addons/Document/hooks/useDocument.d.ts +26 -0
  63. package/dist/cjs/components/Pickaxe/Addons/Document/hooks/useDocument.js +1 -0
  64. package/dist/cjs/components/Pickaxe/Addons/Document/hooks/useDocumentContext.d.ts +16 -0
  65. package/dist/cjs/components/Pickaxe/Addons/Document/hooks/useDocumentContext.js +1 -0
  66. package/dist/cjs/components/Pickaxe/Addons/IceBreaker/Breaker.d.ts +9 -0
  67. package/dist/cjs/components/Pickaxe/Addons/IceBreaker/Breaker.js +1 -0
  68. package/dist/cjs/components/Pickaxe/Addons/IceBreaker/index.d.ts +10 -0
  69. package/dist/cjs/components/Pickaxe/Addons/IceBreaker/index.js +1 -0
  70. package/dist/cjs/components/Pickaxe/Addons/Scroll/Provider.d.ts +18 -0
  71. package/dist/cjs/components/Pickaxe/Addons/Scroll/Provider.js +1 -0
  72. package/dist/cjs/components/Pickaxe/Addons/Scroll/ScrollLockView.d.ts +5 -0
  73. package/dist/cjs/components/Pickaxe/Addons/Scroll/ScrollLockView.js +1 -0
  74. package/dist/cjs/components/Pickaxe/Addons/Scroll/hooks/useScroll.d.ts +14 -0
  75. package/dist/cjs/components/Pickaxe/Addons/Scroll/hooks/useScroll.js +1 -0
  76. package/dist/cjs/components/Pickaxe/Addons/Scroll/hooks/useScrollContext.d.ts +11 -0
  77. package/dist/cjs/components/Pickaxe/Addons/Scroll/hooks/useScrollContext.js +1 -0
  78. package/dist/cjs/components/Pickaxe/Chat/History/Message.d.ts +6 -0
  79. package/dist/cjs/components/Pickaxe/Chat/History/Message.js +1 -0
  80. package/dist/cjs/components/Pickaxe/Chat/History/index.d.ts +2 -0
  81. package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -0
  82. package/dist/cjs/components/Pickaxe/Chat/Input.d.ts +2 -0
  83. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -0
  84. package/dist/cjs/components/Pickaxe/Chat/index.d.ts +2 -0
  85. package/dist/cjs/components/Pickaxe/Chat/index.js +1 -0
  86. package/dist/cjs/components/Pickaxe/Form/Head.d.ts +2 -0
  87. package/dist/cjs/components/Pickaxe/Form/Head.js +1 -0
  88. package/dist/cjs/components/Pickaxe/Form/History/Container.d.ts +2 -0
  89. package/dist/cjs/components/Pickaxe/Form/History/Container.js +1 -0
  90. package/dist/cjs/components/Pickaxe/Form/History/Item.d.ts +6 -0
  91. package/dist/cjs/components/Pickaxe/Form/History/Item.js +1 -0
  92. package/dist/cjs/components/Pickaxe/Form/History/Response.d.ts +2 -0
  93. package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -0
  94. package/dist/cjs/components/Pickaxe/Form/History/index.d.ts +2 -0
  95. package/dist/cjs/components/Pickaxe/Form/History/index.js +1 -0
  96. package/dist/cjs/components/Pickaxe/Form/NewChat.d.ts +3 -0
  97. package/dist/cjs/components/Pickaxe/Form/NewChat.js +1 -0
  98. package/dist/cjs/components/Pickaxe/Form/Questions/Checkbox.d.ts +7 -0
  99. package/dist/cjs/components/Pickaxe/Form/Questions/Checkbox.js +1 -0
  100. package/dist/cjs/components/Pickaxe/Form/Questions/Document.d.ts +7 -0
  101. package/dist/cjs/components/Pickaxe/Form/Questions/Document.js +1 -0
  102. package/dist/cjs/components/Pickaxe/Form/Questions/Dropdown.d.ts +14 -0
  103. package/dist/cjs/components/Pickaxe/Form/Questions/Dropdown.js +1 -0
  104. package/dist/cjs/components/Pickaxe/Form/Questions/Input.d.ts +7 -0
  105. package/dist/cjs/components/Pickaxe/Form/Questions/Input.js +1 -0
  106. package/dist/cjs/components/Pickaxe/Form/Questions/Option.d.ts +7 -0
  107. package/dist/cjs/components/Pickaxe/Form/Questions/Option.js +1 -0
  108. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.d.ts +7 -0
  109. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -0
  110. package/dist/cjs/components/Pickaxe/Form/Questions/index.d.ts +2 -0
  111. package/dist/cjs/components/Pickaxe/Form/Questions/index.js +1 -0
  112. package/dist/cjs/components/Pickaxe/Form/index.d.ts +2 -0
  113. package/dist/cjs/components/Pickaxe/Form/index.js +1 -0
  114. package/dist/cjs/components/Pickaxe/InfoModal.d.ts +6 -0
  115. package/dist/cjs/components/Pickaxe/InfoModal.js +1 -0
  116. package/dist/cjs/{providers/PickaxeProvider.d.ts → components/Pickaxe/Provider.d.ts} +2 -4
  117. package/dist/cjs/components/Pickaxe/Provider.js +1 -0
  118. package/dist/cjs/components/Pickaxe/ResponseProvider.d.ts +24 -0
  119. package/dist/cjs/components/Pickaxe/ResponseProvider.js +1 -0
  120. package/dist/cjs/components/Pickaxe/index.d.ts +1 -1
  121. package/dist/cjs/components/Pickaxe/index.js +1 -1
  122. package/dist/cjs/hooks/core/useHover.d.ts +5 -0
  123. package/dist/cjs/hooks/core/useHover.js +1 -0
  124. package/dist/cjs/hooks/core/useMediaQuery.d.ts +1 -0
  125. package/dist/cjs/hooks/core/useMediaQuery.js +1 -0
  126. package/dist/cjs/hooks/core/useOutsideAlerter.d.ts +9 -0
  127. package/dist/cjs/hooks/core/useOutsideAlerter.js +1 -0
  128. package/dist/cjs/hooks/{useConversation.d.ts → pickaxe/useConversation.d.ts} +1 -1
  129. package/dist/cjs/hooks/pickaxe/useConversation.js +1 -0
  130. package/dist/cjs/hooks/{useHistory.d.ts → pickaxe/useHistory.d.ts} +1 -1
  131. package/dist/cjs/hooks/pickaxe/useHistory.js +1 -0
  132. package/dist/{esm/hooks → cjs/hooks/pickaxe}/usePickaxe.d.ts +1 -1
  133. package/dist/cjs/hooks/pickaxe/usePickaxe.js +1 -0
  134. package/dist/cjs/hooks/pickaxe/usePickaxeContext.d.ts +14 -0
  135. package/dist/cjs/hooks/pickaxe/usePickaxeContext.js +1 -0
  136. package/dist/cjs/hooks/pickaxe/useResponseContext.d.ts +13 -0
  137. package/dist/cjs/hooks/pickaxe/useResponseContext.js +1 -0
  138. package/dist/{esm/hooks → cjs/hooks/pickaxe}/useSubmit.d.ts +1 -1
  139. package/dist/cjs/hooks/pickaxe/useSubmit.js +1 -0
  140. package/dist/cjs/hooks/pickaxe/useSubmitDocument.js +1 -0
  141. package/dist/{esm/hooks → cjs/hooks/pickaxe}/useSubmitResult.d.ts +1 -1
  142. package/dist/cjs/hooks/pickaxe/useSubmitResult.js +1 -0
  143. package/dist/cjs/index.d.ts +2 -1
  144. package/dist/cjs/index.js +1 -1
  145. package/dist/cjs/node_modules/.pnpm/@babel_runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/extends.js +1 -0
  146. package/dist/cjs/node_modules/.pnpm/@babel_runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +1 -0
  147. package/dist/cjs/node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js +1 -0
  148. package/dist/cjs/node_modules/.pnpm/use-composed-ref@1.4.0_@types_react@18.3.18_react@18.3.1/node_modules/use-composed-ref/dist/use-composed-ref.esm.js +1 -0
  149. package/dist/cjs/types/common.d.ts +2 -1
  150. package/dist/cjs/types/document.d.ts +11 -0
  151. package/dist/cjs/types/history.d.ts +1 -0
  152. package/dist/cjs/types/pickaxe.d.ts +0 -1
  153. package/dist/esm/_virtual/_tslib.js +1 -1
  154. package/dist/esm/common/api/index.js +1 -0
  155. package/dist/esm/common/api/streamer.js +1 -0
  156. package/dist/esm/common/documents.d.ts +4 -0
  157. package/dist/esm/common/documents.js +1 -0
  158. package/dist/esm/common/error.d.ts +2 -0
  159. package/dist/esm/common/error.js +1 -0
  160. package/dist/esm/common/renderer.d.ts +12 -0
  161. package/dist/esm/common/renderer.js +1 -0
  162. package/dist/esm/common/utils.d.ts +2 -0
  163. package/dist/esm/common/utils.js +1 -0
  164. package/dist/esm/components/Core/Button.d.ts +9 -0
  165. package/dist/esm/components/Core/CopyButton.d.ts +10 -0
  166. package/dist/esm/components/Core/CopyButton.js +1 -0
  167. package/dist/esm/components/Core/ErrorAlert.d.ts +8 -0
  168. package/dist/esm/components/Core/ErrorAlert.js +1 -0
  169. package/dist/esm/components/Core/HtmlRenderer.d.ts +9 -0
  170. package/dist/esm/components/Core/HtmlRenderer.js +1 -0
  171. package/dist/esm/components/Core/MarkdownRenderer.d.ts +13 -0
  172. package/dist/esm/components/Core/MarkdownRenderer.js +1 -0
  173. package/dist/esm/components/Core/Menu/Button.d.ts +8 -0
  174. package/dist/esm/components/Core/Menu/Button.js +1 -0
  175. package/dist/esm/components/Core/Menu/List.d.ts +13 -0
  176. package/dist/esm/components/Core/Menu/List.js +1 -0
  177. package/dist/esm/components/Core/Menu/index.d.ts +27 -0
  178. package/dist/esm/components/Core/Menu/index.js +1 -0
  179. package/dist/esm/components/Core/Modal/Body.d.ts +6 -0
  180. package/dist/esm/components/Core/Modal/Body.js +1 -0
  181. package/dist/esm/components/Core/Modal/CloseButton.d.ts +9 -0
  182. package/dist/esm/components/Core/Modal/index.d.ts +15 -0
  183. package/dist/esm/components/Core/Modal/index.js +1 -0
  184. package/dist/esm/components/Core/PickaxeIcon.d.ts +10 -0
  185. package/dist/esm/components/Core/PickaxeIcon.js +1 -0
  186. package/dist/esm/components/Core/ScrollArea.d.ts +12 -0
  187. package/dist/esm/components/Core/ScrollArea.js +1 -0
  188. package/dist/esm/components/Core/Skeleton.d.ts +9 -0
  189. package/dist/esm/components/Core/Textarea.d.ts +19 -0
  190. package/dist/esm/components/Core/Textarea.js +1 -0
  191. package/dist/esm/components/Core/Tooltip.d.ts +16 -0
  192. package/dist/esm/components/Core/Tooltip.js +1 -0
  193. package/dist/esm/components/Icons/attach.svg.js +1 -0
  194. package/dist/esm/components/Icons/check.svg.js +1 -0
  195. package/dist/esm/components/Icons/chevron-down.svg.js +1 -0
  196. package/dist/esm/components/Icons/circle-exclamation.svg.js +1 -0
  197. package/dist/esm/components/Icons/circle-info.svg.js +1 -0
  198. package/dist/esm/components/Icons/copied.svg.js +1 -0
  199. package/dist/esm/components/Icons/copy.svg.js +1 -0
  200. package/dist/esm/components/Icons/document.svg.js +1 -0
  201. package/dist/esm/components/Icons/link.svg.js +1 -0
  202. package/dist/esm/components/Icons/message-square-notes.svg.js +1 -0
  203. package/dist/esm/components/Icons/send.svg.js +1 -0
  204. package/dist/esm/components/Icons/spinner-circle.svg.js +1 -0
  205. package/dist/esm/components/Icons/spinner-lines.svg.js +1 -0
  206. package/dist/esm/components/Icons/trash.svg.js +1 -0
  207. package/dist/esm/components/Icons/visitor.svg.js +1 -0
  208. package/dist/esm/components/Icons/x.svg.js +1 -0
  209. package/dist/esm/components/Icons/youtube.svg.js +1 -0
  210. package/dist/esm/components/Pickaxe/Addons/Document/List.d.ts +5 -0
  211. package/dist/esm/components/Pickaxe/Addons/Document/List.js +1 -0
  212. package/dist/esm/components/Pickaxe/Addons/Document/Provider.d.ts +25 -0
  213. package/dist/esm/components/Pickaxe/Addons/Document/Provider.js +1 -0
  214. package/dist/esm/components/Pickaxe/Addons/Document/hooks/useDocument.d.ts +26 -0
  215. package/dist/esm/components/Pickaxe/Addons/Document/hooks/useDocument.js +1 -0
  216. package/dist/esm/components/Pickaxe/Addons/Document/hooks/useDocumentContext.d.ts +16 -0
  217. package/dist/esm/components/Pickaxe/Addons/Document/hooks/useDocumentContext.js +1 -0
  218. package/dist/esm/components/Pickaxe/Addons/IceBreaker/Breaker.d.ts +9 -0
  219. package/dist/esm/components/Pickaxe/Addons/IceBreaker/Breaker.js +1 -0
  220. package/dist/esm/components/Pickaxe/Addons/IceBreaker/index.d.ts +10 -0
  221. package/dist/esm/components/Pickaxe/Addons/IceBreaker/index.js +1 -0
  222. package/dist/esm/components/Pickaxe/Addons/Scroll/Provider.d.ts +18 -0
  223. package/dist/esm/components/Pickaxe/Addons/Scroll/Provider.js +1 -0
  224. package/dist/esm/components/Pickaxe/Addons/Scroll/ScrollLockView.d.ts +5 -0
  225. package/dist/esm/components/Pickaxe/Addons/Scroll/ScrollLockView.js +1 -0
  226. package/dist/esm/components/Pickaxe/Addons/Scroll/hooks/useScroll.d.ts +14 -0
  227. package/dist/esm/components/Pickaxe/Addons/Scroll/hooks/useScroll.js +1 -0
  228. package/dist/esm/components/Pickaxe/Addons/Scroll/hooks/useScrollContext.d.ts +11 -0
  229. package/dist/esm/components/Pickaxe/Addons/Scroll/hooks/useScrollContext.js +1 -0
  230. package/dist/esm/components/Pickaxe/Chat/History/Message.d.ts +6 -0
  231. package/dist/esm/components/Pickaxe/Chat/History/Message.js +1 -0
  232. package/dist/esm/components/Pickaxe/Chat/History/index.d.ts +2 -0
  233. package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -0
  234. package/dist/esm/components/Pickaxe/Chat/Input.d.ts +2 -0
  235. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -0
  236. package/dist/esm/components/Pickaxe/Chat/index.d.ts +2 -0
  237. package/dist/esm/components/Pickaxe/Chat/index.js +1 -0
  238. package/dist/esm/components/Pickaxe/Form/Head.d.ts +2 -0
  239. package/dist/esm/components/Pickaxe/Form/Head.js +1 -0
  240. package/dist/esm/components/Pickaxe/Form/History/Container.d.ts +2 -0
  241. package/dist/esm/components/Pickaxe/Form/History/Container.js +1 -0
  242. package/dist/esm/components/Pickaxe/Form/History/Item.d.ts +6 -0
  243. package/dist/esm/components/Pickaxe/Form/History/Item.js +1 -0
  244. package/dist/esm/components/Pickaxe/Form/History/Response.d.ts +2 -0
  245. package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -0
  246. package/dist/esm/components/Pickaxe/Form/History/index.d.ts +2 -0
  247. package/dist/esm/components/Pickaxe/Form/History/index.js +1 -0
  248. package/dist/esm/components/Pickaxe/Form/NewChat.d.ts +3 -0
  249. package/dist/esm/components/Pickaxe/Form/NewChat.js +1 -0
  250. package/dist/esm/components/Pickaxe/Form/Questions/Checkbox.d.ts +7 -0
  251. package/dist/esm/components/Pickaxe/Form/Questions/Checkbox.js +1 -0
  252. package/dist/esm/components/Pickaxe/Form/Questions/Document.d.ts +7 -0
  253. package/dist/esm/components/Pickaxe/Form/Questions/Document.js +1 -0
  254. package/dist/esm/components/Pickaxe/Form/Questions/Dropdown.d.ts +14 -0
  255. package/dist/esm/components/Pickaxe/Form/Questions/Dropdown.js +1 -0
  256. package/dist/esm/components/Pickaxe/Form/Questions/Input.d.ts +7 -0
  257. package/dist/esm/components/Pickaxe/Form/Questions/Input.js +1 -0
  258. package/dist/esm/components/Pickaxe/Form/Questions/Option.d.ts +7 -0
  259. package/dist/esm/components/Pickaxe/Form/Questions/Option.js +1 -0
  260. package/dist/esm/components/Pickaxe/Form/Questions/Submit.d.ts +7 -0
  261. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -0
  262. package/dist/esm/components/Pickaxe/Form/Questions/index.d.ts +2 -0
  263. package/dist/esm/components/Pickaxe/Form/Questions/index.js +1 -0
  264. package/dist/esm/components/Pickaxe/Form/index.d.ts +2 -0
  265. package/dist/esm/components/Pickaxe/Form/index.js +1 -0
  266. package/dist/esm/components/Pickaxe/InfoModal.d.ts +6 -0
  267. package/dist/esm/components/Pickaxe/InfoModal.js +1 -0
  268. package/dist/esm/{providers/PickaxeProvider.d.ts → components/Pickaxe/Provider.d.ts} +2 -4
  269. package/dist/esm/components/Pickaxe/Provider.js +1 -0
  270. package/dist/esm/components/Pickaxe/ResponseProvider.d.ts +24 -0
  271. package/dist/esm/components/Pickaxe/ResponseProvider.js +1 -0
  272. package/dist/esm/components/Pickaxe/index.d.ts +1 -1
  273. package/dist/esm/components/Pickaxe/index.js +1 -1
  274. package/dist/esm/hooks/core/useHover.d.ts +5 -0
  275. package/dist/esm/hooks/core/useHover.js +1 -0
  276. package/dist/esm/hooks/core/useMediaQuery.d.ts +1 -0
  277. package/dist/esm/hooks/core/useMediaQuery.js +1 -0
  278. package/dist/esm/hooks/core/useOutsideAlerter.d.ts +9 -0
  279. package/dist/esm/hooks/core/useOutsideAlerter.js +1 -0
  280. package/dist/esm/hooks/{useConversation.d.ts → pickaxe/useConversation.d.ts} +1 -1
  281. package/dist/esm/hooks/pickaxe/useConversation.js +1 -0
  282. package/dist/esm/hooks/{useHistory.d.ts → pickaxe/useHistory.d.ts} +1 -1
  283. package/dist/esm/hooks/pickaxe/useHistory.js +1 -0
  284. package/dist/{cjs/hooks → esm/hooks/pickaxe}/usePickaxe.d.ts +1 -1
  285. package/dist/esm/hooks/pickaxe/usePickaxe.js +1 -0
  286. package/dist/esm/hooks/pickaxe/usePickaxeContext.d.ts +14 -0
  287. package/dist/esm/hooks/pickaxe/usePickaxeContext.js +1 -0
  288. package/dist/esm/hooks/pickaxe/useResponseContext.d.ts +13 -0
  289. package/dist/esm/hooks/pickaxe/useResponseContext.js +1 -0
  290. package/dist/{cjs/hooks → esm/hooks/pickaxe}/useSubmit.d.ts +1 -1
  291. package/dist/esm/hooks/pickaxe/useSubmit.js +1 -0
  292. package/dist/esm/hooks/pickaxe/useSubmitDocument.js +1 -0
  293. package/dist/{cjs/hooks → esm/hooks/pickaxe}/useSubmitResult.d.ts +1 -1
  294. package/dist/esm/hooks/pickaxe/useSubmitResult.js +1 -0
  295. package/dist/esm/index.d.ts +2 -1
  296. package/dist/esm/index.js +1 -1
  297. package/dist/esm/node_modules/.pnpm/@babel_runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/extends.js +1 -0
  298. package/dist/esm/node_modules/.pnpm/@babel_runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +1 -0
  299. package/dist/esm/node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js +1 -0
  300. package/dist/esm/node_modules/.pnpm/use-composed-ref@1.4.0_@types_react@18.3.18_react@18.3.1/node_modules/use-composed-ref/dist/use-composed-ref.esm.js +1 -0
  301. package/dist/esm/types/common.d.ts +2 -1
  302. package/dist/esm/types/document.d.ts +11 -0
  303. package/dist/esm/types/history.d.ts +1 -0
  304. package/dist/esm/types/pickaxe.d.ts +0 -1
  305. package/package.json +32 -3
  306. package/dist/cjs/hooks/usePickaxe.js +0 -1
  307. package/dist/cjs/hooks/usePickaxeContext.d.ts +0 -16
  308. package/dist/cjs/hooks/usePickaxeContext.js +0 -1
  309. package/dist/cjs/providers/PickaxeProvider.js +0 -1
  310. package/dist/esm/hooks/usePickaxe.js +0 -1
  311. package/dist/esm/hooks/usePickaxeContext.d.ts +0 -16
  312. package/dist/esm/hooks/usePickaxeContext.js +0 -1
  313. package/dist/esm/providers/PickaxeProvider.js +0 -1
  314. /package/dist/cjs/hooks/{useSubmitDocument.d.ts → pickaxe/useSubmitDocument.d.ts} +0 -0
  315. /package/dist/esm/hooks/{useSubmitDocument.d.ts → pickaxe/useSubmitDocument.d.ts} +0 -0
@@ -0,0 +1,26 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../../types/form";
2
+ import type { MemoryStoredDocument } from "../../../../../types/document";
3
+ interface UseDocumentProps {
4
+ onQuestionChange?: (partialQuestion: Partial<MemoryStoredQuestionField>) => void;
5
+ }
6
+ export declare const useDocument: ({ onQuestionChange }?: UseDocumentProps) => {
7
+ isImageUploadAllowed: boolean;
8
+ onFileUpload: (files: File[]) => Promise<MemoryStoredDocument | null>;
9
+ onWebsiteUpload: (website: string) => Promise<MemoryStoredDocument | null>;
10
+ onEditDocumentByDocId: (newDocument: Partial<MemoryStoredDocument>) => void;
11
+ documents: MemoryStoredDocument[];
12
+ documentCount: number;
13
+ documentError: string;
14
+ websiteLink: string;
15
+ isUploading: boolean;
16
+ isShowList: boolean;
17
+ upsertDocuments: (newDocuments: MemoryStoredDocument[]) => void;
18
+ editDocument: (newDocument: Partial<MemoryStoredDocument>) => void;
19
+ editDocumentByDocId: (newDocument: Partial<MemoryStoredDocument>) => void;
20
+ setDocuments: import("../../../../../types/common").SetState<MemoryStoredDocument[]>;
21
+ setDocumentError: import("../../../../../types/common").SetState<string>;
22
+ setWebsiteLink: import("../../../../../types/common").SetState<string>;
23
+ setIsUploading: import("../../../../../types/common").SetState<boolean>;
24
+ setIsShowList: import("../../../../../types/common").SetState<boolean>;
25
+ };
26
+ export {};
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"../../../../../_virtual/_tslib.js";import{useMemo as t}from"react";import{usePickaxeContext as o}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useSubmitDocument as n}from"../../../../../hooks/pickaxe/useSubmitDocument.js";import{useDocumentContext as s}from"./useDocumentContext.js";import{allowedFileMimeTypes as i,allowedImageMimeTypes as r}from"../../../../../common/documents.js";import a from"../../../../../common/error.js";const u=["gpt-4o","gpt-4o-mini"],d=({onQuestionChange:d}={})=>{const{pickaxe:l}=o(),m=s(),c=n(),p=t((()=>{var e;return u.includes(null!==(e=null==l?void 0:l.model)&&void 0!==e?e:"gpt-3.5-turbo")}),[l]);return Object.assign(Object.assign({},m),{isImageUploadAllowed:p,onFileUpload:t=>e(void 0,void 0,void 0,(function*(){if(m.setDocumentError(""),!t.length)return null;const e=t[0];try{const o=[...i,...p?r:[]],n=t.some((e=>!o.includes(e.type)));if(n){throw new Error(p?"You can only upload PDF, TXT, DOCX, CSV, XLSX, JSON, PPTX, PNG, JPEG, WEBP, or GIF files. Please try again.":"You can only upload PDF, TXT, DOCX, CSV, XLSX, JSON, or PPTX files. Please try again.")}m.setIsUploading(!0),m.setIsShowList(!0),m.upsertDocuments([{type:"document",id:e.name,name:e.name,status:"uploading"}]);const s=yield c.document(e),{success:a,documentid:u,error:l}=s;if(!a)throw new Error(null!=l?l:"Document processing failed, please try again.");null==d||d({input:e.name,documentId:u});const f=u.startsWith("IMAGE-")?"image":"document";return m.upsertDocuments([{type:f,id:e.name,name:e.name,status:"finished",documentId:u}]),{type:f,id:e.name,name:e.name,status:"finished",documentId:u}}catch(t){const o=a(t);return console.log("[onFileUpload] Error",o),o.includes("You can only upload")?(m.setDocumentError(o),null):(m.editDocument({type:"document",id:e.name,name:e.name,status:"failed",error:o}),{type:"document",id:e.name,name:e.name,status:"failed",error:o})}finally{m.setIsUploading(!1)}})),onWebsiteUpload:t=>e(void 0,void 0,void 0,(function*(){m.setDocumentError("");let e=t.trim();if(!e)return null;e.startsWith("http://")&&(e=e.replace("http://","https://")),e.startsWith("https://")||(e=`https://${e}`);try{if(!e.includes("."))throw new Error("Please paste a valid website URL or Youtube video link to add to the knowledge base.");m.setIsUploading(!0),m.setIsShowList(!0),m.setWebsiteLink(""),m.upsertDocuments([{type:"website",id:e,name:e,status:"uploading"}]);const t=yield c.website(e),{success:o,documentid:n}=t;if(!o)throw new Error("Website processing failed, please try again.");return m.upsertDocuments([{type:"website",id:e,name:e,status:"finished",documentId:n}]),{type:"website",id:e,name:e,status:"finished",documentId:n}}catch(t){const o=a(t);return console.log("[onWebsiteUpload] Error",o),o.includes("Please paste a valid website URL")?(m.setDocumentError(o),null):(m.editDocument({type:"website",id:e,name:e,status:"failed",error:o}),{type:"website",id:e,name:e,status:"failed",error:o})}finally{m.setIsUploading(!1)}})),onEditDocumentByDocId:m.editDocumentByDocId})};export{d as useDocument};
@@ -0,0 +1,16 @@
1
+ export declare const useDocumentContext: () => {
2
+ documents: import("../../../../../types/document").MemoryStoredDocument[];
3
+ documentCount: number;
4
+ documentError: string;
5
+ websiteLink: string;
6
+ isUploading: boolean;
7
+ isShowList: boolean;
8
+ upsertDocuments: (newDocuments: import("../../../../../types/document").MemoryStoredDocument[]) => void;
9
+ editDocument: (newDocument: Partial<import("../../../../../types/document").MemoryStoredDocument>) => void;
10
+ editDocumentByDocId: (newDocument: Partial<import("../../../../../types/document").MemoryStoredDocument>) => void;
11
+ setDocuments: import("../../../../../types/common").SetState<import("../../../../../types/document").MemoryStoredDocument[]>;
12
+ setDocumentError: import("../../../../../types/common").SetState<string>;
13
+ setWebsiteLink: import("../../../../../types/common").SetState<string>;
14
+ setIsUploading: import("../../../../../types/common").SetState<boolean>;
15
+ setIsShowList: import("../../../../../types/common").SetState<boolean>;
16
+ };
@@ -0,0 +1 @@
1
+ import{useContext as r}from"react";import{DocumentContext as o}from"../Provider.js";const t=()=>r(o);export{t as useDocumentContext};
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties } from "react";
2
+ interface BreakerProps {
3
+ text?: string;
4
+ style?: CSSProperties;
5
+ isMobile?: boolean;
6
+ onSend?: (value: string) => void;
7
+ }
8
+ declare const Breaker: ({ text, style, isMobile, onSend }: BreakerProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default Breaker;
@@ -0,0 +1 @@
1
+ import{__rest as o}from"../../../../_virtual/_tslib.js";import{jsx as e}from"react/jsx-runtime";import{useHover as s}from"../../../../hooks/core/useHover.js";import t from"../../../../common/cn.js";const r=({text:r="",style:i,isMobile:n,onSend:l})=>{const c=s(),{isHover:a}=c,m=o(c,["isHover"]);return e("div",Object.assign({className:t("relative top-0 flex flex-grow cursor-pointer select-none rounded bg-white px-[1em] py-[9px] text-[12px] font-semilight shadow [transition:box-shadow_0.2s_ease-in-out,color_0.2s_ease-in-out,top_0.2s_ease] hover:top-[-2px] hover:shadow-md",n&&"min-w-[196px]"),onClick:()=>null==l?void 0:l(r)},i&&{style:Object.assign(Object.assign({},i),!a&&i.color&&{color:i.color+"80"})},m,{children:e("p",Object.assign({className:"line-clamp-3"},{children:r}))}))};export{r as default};
@@ -0,0 +1,10 @@
1
+ import { type CSSProperties } from "react";
2
+ interface IceBreakersProps {
3
+ data?: string[];
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ isMobile?: boolean;
7
+ onSend?: (value: string) => void;
8
+ }
9
+ declare const IceBreakers: ({ data, className, style, isMobile, onSend, }: IceBreakersProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default IceBreakers;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{useState as r,useRef as t,useEffect as s}from"react";import{motion as i}from"framer-motion";import n from"./Breaker.js";import o from"../../../../common/cn.js";const a=({data:a=[],className:c,style:l,isMobile:m,onSend:d})=>{const[g,f]=r(0),p=t(null);return s((()=>{const e=p.current,r=new ResizeObserver((r=>{if(!e)return;if(!r.length)return;const{width:t}=r[0].contentRect;f(e.scrollWidth-t)}));return e&&r.observe(e),()=>{e&&r.unobserve(e)}}),[]),e(i.div,Object.assign({ref:p},m&&{whileTap:{cursor:"grab"}},{children:e(i.div,Object.assign({initial:!1},m&&{drag:"x",dragConstraints:{right:0,left:-g}},{className:o("grid grid-cols-2 gap-[0.5em] px-3 py-[1em]",3===a.length&&"grid-cols-3",m&&"flex px-3",c)},{children:a.map(((r,t)=>e(n,Object.assign({text:r,isMobile:m,style:Object.assign({color:"#000000"},l)},d&&{onSend:d}),t)))}))}))};export{a as default};
@@ -0,0 +1,18 @@
1
+ import { Dispatch, MutableRefObject, ReactNode, RefObject, SetStateAction } from "react";
2
+ export type AnyScrollRef = RefObject<HTMLDivElement> | MutableRefObject<HTMLDivElement>;
3
+ type ScrollContextType = {
4
+ scrollContainerRef: MutableRefObject<HTMLDivElement>;
5
+ scrollTargetRef: MutableRefObject<HTMLDivElement>;
6
+ isLocked: boolean;
7
+ isScrolling: boolean;
8
+ isScrollIncreasing: boolean;
9
+ setIsScrolling: Dispatch<SetStateAction<boolean>>;
10
+ setIsScrollIncreasing: Dispatch<SetStateAction<boolean>>;
11
+ setIsLocked: Dispatch<SetStateAction<boolean>>;
12
+ };
13
+ interface ScrollProviderProps {
14
+ children: ReactNode;
15
+ }
16
+ export declare const ScrollContext: import("react").Context<ScrollContextType>;
17
+ declare const ScrollProvider: ({ children }: ScrollProviderProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default ScrollProvider;
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{useState as e,useRef as s,createContext as c}from"react";const o=c({}),l=({children:c})=>{const[l,t]=e(!1),[i,n]=e(!0),[a,d]=e(!0),g=s(),f=s();return r(o.Provider,Object.assign({value:{scrollContainerRef:g,scrollTargetRef:f,isScrolling:l,isScrollIncreasing:i,isLocked:a,setIsScrolling:t,setIsScrollIncreasing:n,setIsLocked:d}},{children:c}))};export{o as ScrollContext,l as default};
@@ -0,0 +1,5 @@
1
+ interface ScrollLockViewProps {
2
+ className?: string;
3
+ }
4
+ declare const ScrollLockView: ({ className }: ScrollLockViewProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default ScrollLockView;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{useInView as o}from"react-intersection-observer";import{useScrollContext as r}from"./hooks/useScrollContext.js";const s=({className:s})=>{const{setIsLocked:t}=r(),{ref:c}=o({onChange(e){e&&t(!0)}});return e("div",Object.assign({ref:c,id:"scroll-lock-view"},s&&{className:s}))};export{s as default};
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ interface UseScrollProps {
3
+ behavior?: ScrollBehavior;
4
+ }
5
+ export declare const useScroll: ({ behavior }?: UseScrollProps) => {
6
+ scrollContainerRef: import("react").MutableRefObject<HTMLDivElement>;
7
+ scrollTargetRef: import("react").MutableRefObject<HTMLDivElement>;
8
+ isScrollIncreasing: boolean;
9
+ scrollToContainer: () => void;
10
+ scrollToBottom: () => void;
11
+ scrollStart: () => void;
12
+ scrollEnd: () => void;
13
+ };
14
+ export {};
@@ -0,0 +1 @@
1
+ import{useState as e,useRef as r,useMemo as n,useEffect as t}from"react";import{useScrollContext as o}from"./useScrollContext.js";const l=({behavior:l="smooth"}={behavior:"smooth"})=>{const{scrollContainerRef:s,scrollTargetRef:c,isScrolling:i,isScrollIncreasing:u,isLocked:d,setIsScrolling:a,setIsScrollIncreasing:v,setIsLocked:m}=o(),[h,w]=e(0),f=r(!1),g=n((()=>s&&s.current?s.current:"undefined"==typeof window?null:window),[s]);t((()=>{if(!g)return;const e=e=>{i&&d&&("mousedown"===e.type||"wheel"===e.type||"DOMMouseScroll"===e.type||"mousewheel"===e.type)&&m(!1)};return null==g||g.addEventListener("scroll",e),null==g||g.addEventListener("mousedown",e),null==g||g.addEventListener("wheel",e),null==g||g.addEventListener("DOMMouseScroll",e),null==g||g.addEventListener("mousewheel",e),()=>{null==g||g.removeEventListener("scroll",e),null==g||g.removeEventListener("mousedown",e),null==g||g.removeEventListener("wheel",e),null==g||g.removeEventListener("DOMMouseScroll",e),null==g||g.removeEventListener("mousewheel",e)}}),[i,d,g]),t((()=>{f.current=!d}),[d]),t((()=>{const e=setInterval((()=>{if(s.current&&i){const e=s.current.scrollHeight;if(e===h)return;v(e>h),w(e)}}),100);return()=>clearInterval(e)}),[h,i]);const L=e=>{if(f.current)return;const r=c.current;if(!s.current){if("undefined"==typeof window)return;const n=null!=e?e:r?r.clientHeight:document.body.scrollHeight;return void window.scrollTo({top:n,behavior:l})}const n=null!=e?e:r?r.clientHeight:s.current.scrollHeight;s.current.scrollTo({top:n,behavior:l})};return{scrollContainerRef:s,scrollTargetRef:c,isScrollIncreasing:u,scrollToContainer:()=>{L(0)},scrollToBottom:()=>{L()},scrollStart:()=>{a(!0),m(!f.current)},scrollEnd:()=>{a(!1)}}};export{l as useScroll};
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ export declare const useScrollContext: () => {
3
+ scrollContainerRef: import("react").MutableRefObject<HTMLDivElement>;
4
+ scrollTargetRef: import("react").MutableRefObject<HTMLDivElement>;
5
+ isLocked: boolean;
6
+ isScrolling: boolean;
7
+ isScrollIncreasing: boolean;
8
+ setIsScrolling: import("react").Dispatch<import("react").SetStateAction<boolean>>;
9
+ setIsScrollIncreasing: import("react").Dispatch<import("react").SetStateAction<boolean>>;
10
+ setIsLocked: import("react").Dispatch<import("react").SetStateAction<boolean>>;
11
+ };
@@ -0,0 +1 @@
1
+ import{useContext as r}from"react";import{ScrollContext as o}from"../Provider.js";const t=()=>r(o);export{t as useScrollContext};
@@ -0,0 +1,6 @@
1
+ import type { ChatMessage } from "../../../../types/chat";
2
+ interface MessageProps {
3
+ message: ChatMessage;
4
+ }
5
+ declare const Message: ({ message }: MessageProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default Message;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{usePickaxeContext as s}from"../../../../hooks/pickaxe/usePickaxeContext.js";import t from"../../../Core/PickaxeIcon.js";import l from"../../../Core/CopyButton.js";import r from"../../../Core/MarkdownRenderer.js";const o=({message:o})=>{var c;const{formId:i,pickaxe:n}=s(),m=null!==(c=null==n?void 0:n.chaticon)&&void 0!==c?c:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/chaticons/${i}.png`;return"assistant"===o.role?e("div",Object.assign({className:"flex max-w-[80%] flex-col max-[767px]:max-w-full"},{children:a("div",Object.assign({className:"flex gap-x-3"},{children:["NONE"!==m&&e(t,{src:m,alt:"Assistant",width:24,height:24,className:"my-3 h-6 w-6"}),a("div",Object.assign({className:"flex flex-col"},{children:[e("div",Object.assign({className:"chat-message overflow-x-auto overflow-y-hidden rounded bg-blue-100/50 px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]"},{children:e(r,{className:"relative max-[767px]:text-[14px]",html:o.content})})),e("div",Object.assign({className:"mb-2 ml-2 mt-4 flex gap-3"},{children:e(l,{text:o.content})}))]}))]}))})):"user"===o.role?e("div",Object.assign({className:"flex max-w-[80%] gap-x-3 justify-self-end max-[767px]:max-w-full max-[767px]:pl-[36px]"},{children:e("div",Object.assign({className:"overflow-x-auto overflow-y-hidden rounded bg-white px-4 py-3 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]"},{children:e(r,{className:"relative max-[767px]:text-[14px]",html:o.content})}))})):e("div",{})};export{o as default};
@@ -0,0 +1,2 @@
1
+ declare const History: () => import("react/jsx-runtime").JSX.Element;
2
+ export default History;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useState as a,useMemo as t}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useConversation as o}from"../../../../hooks/pickaxe/useConversation.js";import n from"../../../Icons/circle-info.svg.js";import c from"../../../Core/PickaxeIcon.js";import r from"../../Addons/Scroll/ScrollLockView.js";import m from"../../InfoModal.js";import d from"./Message.js";import p from"../../../../common/cn.js";const x=()=>{var x;const{pickaxe:f,isNewChat:u}=l(),{messages:g,status:h,error:b}=i(),v=o(),[j,w]=a(!1),N=t((()=>!!v.data&&!(v.data.messages.length<=1)),[v.data]),k=t((()=>v.isSuccess&&u&&!N),[v.isSuccess,u,N]);return e("div",Object.assign({className:"relative flex flex-grow flex-col justify-end"},{children:[j&&s(m,{isOpen:j,onChangeIsOpen:w}),e("div",Object.assign({className:p("absolute left-1/2 top-[20px] flex w-full max-w-[400px] -translate-x-1/2 -translate-y-1/3 transform flex-col items-center px-4 opacity-0 duration-300",k&&"top-1/3 opacity-100")},{children:[s(c,{src:null==f?void 0:f.coverphoto,alt:`${null==f?void 0:f.formtitle}'s Profile Picture`,width:64,height:64,className:"h-[64px] w-[64px] rounded-full"}),e("div",Object.assign({className:"flex flex-col items-center"},{children:[e("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold text-black/70 max-[767px]:text-[16px]"},{children:[`${null==f?void 0:f.formtitle.slice(0,130)}${(null!==(x=null==f?void 0:f.formtitle)&&void 0!==x?x:"").length>130?"...":""}`,s("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>w(!0)},{children:s(n,{className:"h-[18px] w-[18px] shrink-0 text-c-blue"})}))]})),s("p",Object.assign({className:"mt-2 line-clamp-3 max-w-[600px] whitespace-pre-line text-center font-semilight text-black/70"},{children:null==f?void 0:f.formdescription}))]}))]})),s("div",Object.assign({className:"flex w-full justify-center"},{children:v.isLoading?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[s("div",{className:"h-10 w-[70%] animate-pulse justify-self-end rounded bg-gray-200"}),s("div",{className:"h-[150px] w-[70%] animate-pulse rounded bg-gray-200"}),s("div",{className:"h-10 w-[50%] animate-pulse justify-self-end rounded bg-gray-200"})]})):v.isError?s("div",Object.assign({className:"flex w-full max-w-[800px] justify-center pt-10"},{children:e("p",Object.assign({className:"text-center text-xl font-semibold"},{children:["Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help"},{children:"contact us"}))," ","for help."]}))})):e("div",Object.assign({className:"relative grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-4 pt-10 max-[767px]:pt-6"},{children:[v.data.messages.map(((e,a)=>s(d,{message:e},a))),g.map(((e,a)=>s(d,{message:e},a))),"fetching"===h?e("div",Object.assign({className:"flex max-w-[80%] items-center gap-x-3"},{children:["NONE"!==(null==f?void 0:f.chaticon)&&s(c,{src:null==f?void 0:f.chaticon,alt:`${null==f?void 0:f.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6"}),e("div",Object.assign({className:"flex items-center gap-x-2 rounded bg-blue-100/50 px-4 py-4"},{children:[s("div",{className:"h-[6px] w-[6px] animate-dot rounded-full bg-black/60"}),s("div",{className:"h-[6px] w-[6px] animate-dot-down rounded-full bg-black/60"}),s("div",{className:"h-[6px] w-[6px] animate-dot rounded-full bg-black/60"})]}))]})):b?e("div",Object.assign({className:"flex max-w-[80%] gap-x-3"},{children:[s(n,{className:"danger-error mt-2 h-6 w-6 shrink-0 text-[#FF0000]/80"}),s("div",{className:"danger-error rounded bg-[#FF0000]/5 px-4 py-2 font-semibold text-[#FF0000]/80",dangerouslySetInnerHTML:{__html:`${b}`}})]})):null,s(r,{className:"absolute bottom-0 left-0 w-full"})]}))}))]}))};export{x as default};
@@ -0,0 +1,2 @@
1
+ declare const Input: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Input;
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as s,useRef as r}from"react";import{useMediaQuery as n}from"../../../hooks/core/useMediaQuery.js";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useConversation as l}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as d}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as c}from"../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as m}from"../Addons/Document/hooks/useDocument.js";import{useScroll as u}from"../Addons/Scroll/hooks/useScroll.js";import{allowedFileMimeTypes as p,allowedImageMimeTypes as f}from"../../../common/documents.js";import{streamer as h}from"../../../common/api/streamer.js";import g from"../../../node_modules/.pnpm/react-textarea-autosize@8.5.7_@types_react@18.3.18_react@18.3.1/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js";import x from"../../Icons/attach.svg.js";import b from"../../Icons/send.svg.js";import v from"../Addons/IceBreaker/index.js";import k from"../../../common/error.js";import w from"../../../common/cn.js";const y=()=>{var y,I,j,A;const{formId:D,chatId:S,pickaxe:N,isNewChat:C,setIsNewChat:E}=i(),{messages:O,status:R,setMessage:U,setStatus:_,setError:z}=a(),{documents:B,isUploading:F,isImageUploadAllowed:M,upsertDocuments:K,onFileUpload:L,onEditDocumentByDocId:P}=m(),{isScrollIncreasing:T,scrollToBottom:W,scrollStart:H,scrollEnd:Q}=u(),Y=l(),q=d(),G=c(),[J,V]=s(""),X=r(null),[Z]=n("(max-width: 767px)"),$=t=>e(void 0,void 0,void 0,(function*(){try{if(F)return;z(""),E(!1);const e=null!=t?t:J;if(!e||"fetching"===R||"streaming"===R)return;const o=new Date;V("");const s="enduserupload"===(null==N?void 0:N.documentuploadtype),r=B.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),n=r.length?r[r.length-1].documentId:"";_("fetching"),U({id:O.length+1,role:"user",content:e});const{success:i,data:a,usedDocumentIds:l,newDocumentId:d,newDocumentName:c,isInsertedFile:m,error:u}=yield q.mutateAsync(Object.assign({formId:D,responseId:S,value:e},s&&n&&{documentId:n}));if(!i)throw new Error(null!=u?u:"An error occurred, please try again.");m&&n&&P({documentId:n,isInsertedAsRaw:!0}),d&&c&&K([{type:"website",id:c,name:c,status:"finished",documentId:d}]),H(),W();const p=(yield h({formId:D,responseId:S,data:a})).body;if(!p)throw new Error("Streaming error");const f=p.getReader(),g=new TextDecoder;let x="",b=!0;for(;b;){const{value:e,done:t}=yield f.read();b=!t;if(x+=g.decode(e),x)_("streaming"),U({id:O.length+2,role:"assistant",content:x}),T&&W();else if(!b&&!x)throw new Error("Server error")}const v=new Date;x&&(W(),_("idle"),yield G.mutateAsync({formId:D,responseId:S,documentIds:l,studioUserId:"USER68RFBSHU4YS2I4L",messages:[{role:"user",message:e,sentAt:o},{role:"assistant",message:x,sentAt:v}]}))}catch(e){let t=k(e);t.includes("Unexpected token 'A',")&&(t="Oops! We're experiencing high traffic at the moment. Please try again later."),z(t),W()}finally{_("idle"),Q()}}));return t("div",Object.assign({className:"relative flex w-full flex-col max-[767px]:fixed max-[767px]:bottom-0 max-[767px]:left-0"},{children:[C&&N&&!Y.isLoading&&(null!==(I=null===(y=Y.data)||void 0===y?void 0:y.messages.length)&&void 0!==I?I:0)<=1&&N.icebreakers&&N.icebreakers.length>0&&o(v,{data:null!==(j=N.icebreakers)&&void 0!==j?j:[],style:{color:"#000000"},isMobile:Z,onSend:$}),t("div",Object.assign({className:"flex min-h-[56px] items-end gap-x-2 bg-white px-4 py-3 pb-[15px] shadow"},{children:["enduserupload"===(null==N?void 0:N.documentuploadtype)&&t("div",Object.assign({className:"tooltip"},{children:[o("input",{id:"file-upload",ref:X,type:"file",accept:[...p,...M?f:[]].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e(void 0,void 0,void 0,(function*(){yield L(Array.from(t.target.files||[])),t.target.value=""}))}),o("button",Object.assign({className:"flex items-center disabled:cursor-wait disabled:opacity-50",disabled:F,onClick:()=>{var e;return null===(e=X.current)||void 0===e?void 0:e.click()}},{children:o(x,{className:"h-6 w-6 shrink-0 stroke-2 text-c-blue"})}))]})),o(g,{className:w("max-h-[240px] w-full resize-none border-black bg-transparent outline-none ring-0 scrollbar scrollbar-thin placeholder:font-semilight",!J.length&&"max-h-[24px] overflow-hidden text-ellipsis whitespace-nowrap"),value:J,placeholder:null!==(A=null==N?void 0:N.placeholdertext)&&void 0!==A?A:"What do you want to talk about?",onChange:e=>V(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),$())}}),o("button",Object.assign({className:"outline-none disabled:cursor-default disabled:opacity-50",disabled:"idle"!==R||F,onClick:()=>$()},{children:o(b,{className:"h-6 w-6 shrink-0 stroke-2 text-c-blue"})}))]}))]}))};export{y as default};
@@ -0,0 +1,2 @@
1
+ declare const ChatContainer: () => import("react/jsx-runtime").JSX.Element;
2
+ export default ChatContainer;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useScroll as l}from"../Addons/Scroll/hooks/useScroll.js";import s from"../../Core/ScrollArea.js";import t from"../Addons/Document/List.js";import m from"./History/index.js";import i from"./Input.js";import c from"../../../common/cn.js";const a=()=>{const{pickaxe:a,isShowIceBreaker:n}=r(),{scrollContainerRef:f}=l();return e("div",Object.assign({className:"relative flex flex-grow flex-col items-center"},{children:o("div",Object.assign({className:"relative flex w-full max-w-[800px] flex-grow flex-col"},{children:["enduserupload"===(null==a?void 0:a.documentuploadtype)&&e(t,{className:"absolute z-10 mt-4"}),e("div",Object.assign({className:c("flex w-full flex-grow flex-col pb-[6rem] max-[767px]:pb-[4.5rem]",n&&"pb-44 max-[767px]:pb-40")},{children:e(s,Object.assign({ref:f,hideScrollbar:!0},{children:e(m,{})}))})),e("div",Object.assign({className:"absolute bottom-0 mb-6 mt-4 flex w-full justify-center max-[767px]:m-0"},{children:e(i,{})}))]}))}))};export{a as default};
@@ -0,0 +1,2 @@
1
+ declare const Head: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Head;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as i}from"react";import{usePickaxeContext as o}from"../../../hooks/pickaxe/usePickaxeContext.js";import l from"../../Icons/circle-info.svg.js";import n from"../../Core/PickaxeIcon.js";import c from"../InfoModal.js";const r=()=>{var r;const{pickaxe:s}=o(),[a,m]=i(!1);return e("div",Object.assign({className:"flex flex-col items-center"},{children:[a&&t(c,{isOpen:a,onChangeIsOpen:m}),t(n,{src:null==s?void 0:s.coverphoto,alt:`${null==s?void 0:s.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold text-black/70 max-[767px]:text-[16px]"},{children:[`${null==s?void 0:s.formtitle.slice(0,130)}${(null!==(r=null==s?void 0:s.formtitle)&&void 0!==r?r:"").length>130?"...":""}`,t("button",Object.assign({className:"ml-2 inline-block outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>m(!0)},{children:t(l,{className:"h-[18px] w-[18px] shrink-0 text-c-blue"})}))]})),t("p",Object.assign({className:"mt-2 line-clamp-3 max-w-[600px] whitespace-pre-line text-center font-semilight text-black/70"},{children:null==s?void 0:s.formdescription}))]}))};export{r as default};
@@ -0,0 +1,2 @@
1
+ declare const Container: () => import("react/jsx-runtime").JSX.Element | null;
2
+ export default Container;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Fragment as s}from"react";import{useInView as a}from"react-intersection-observer";import{usePickaxeContext as r}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useHistory as t}from"../../../../hooks/pickaxe/useHistory.js";import o from"../../../Icons/spinner-circle.svg.js";import n from"./Item.js";const c=()=>{var c;const{isShowHistory:l}=r(),m=t({enabled:l}),{ref:p}=a({onChange(e){e&&m.hasNextPage&&m.fetchNextPage()}});return l&&m.isLoading?e("div",{className:"h-[300px] w-full animate-pulse bg-gray-200"}):m.isError?e("div",{}):l?i("div",Object.assign({className:"flex flex-col gap-y-8"},{children:[null===(c=m.data)||void 0===c?void 0:c.pages.map(((i,a)=>e(s,{children:i.data.map((i=>e(s,{children:e(n,{item:i})},i.responseId)))},a))),e("div",Object.assign({className:"flex items-center justify-center"},{children:m.isFetchingNextPage?e(o,{className:"my-10 h-14 w-14 animate-spin animate-spin fill-c-blue text-gray-300"}):m.hasNextPage?e("div",{ref:p,className:"invisible h-14 w-14"}):null}))]})):null};export{c as default};
@@ -0,0 +1,6 @@
1
+ import type { PickaxeHistory } from "../../../../types/history";
2
+ interface HistoryItemProps {
3
+ item: PickaxeHistory;
4
+ }
5
+ declare const HistoryItem: ({ item }: HistoryItemProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default HistoryItem;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as t}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{format as a}from"date-fns";import i from"../../../Icons/message-square-notes.svg.js";import r from"../../../Icons/visitor.svg.js";import o from"../../../Core/PickaxeIcon.js";import n from"../../../Core/CopyButton.js";import c from"../../../Core/MarkdownRenderer.js";const d=({item:d})=>{const{pickaxe:m,setChatId:p,setIsNewChat:h}=l(),x=t((()=>a(d.createdAt,"hh:mm a MMM dd, yy")),[d]),f=t((()=>d&&d.messages?d.messages.length:0),[d]),g=t((()=>{var e,s,t,l;if("form"===d.type){return(null!==(e=d.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}return null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[0])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]),u=t((()=>{var e,s,t,l;return"form"===d.type?null!==(e=d.questionResponse)&&void 0!==e?e:"":null!==(l=null===(t=null===(s=d.messages)||void 0===s?void 0:s[1])||void 0===t?void 0:t.message)&&void 0!==l?l:""}),[d]);return e("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(r,{className:"h-6 w-6 text-black"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${d.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:g.length<280}),s("div",{className:"danger-html hidden flex-col text-black/50 peer-checked:flex",dangerouslySetInnerHTML:{__html:g}}),s("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer"},{children:"See input"})),s("label",Object.assign({htmlFor:`${d.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer"},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 bg-[#E9F4FB] px-4 py-5"},{children:[s(o,{src:null==m?void 0:m.chaticon,alt:`${null==m?void 0:m.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1"}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(c,{className:"overflow-x-auto pb-2 font-light text-black/90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:u}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==m?void 0:m.enablechatresponses)&&e("button",Object.assign({className:"flex items-center gap-x-1 text-c-gray hover:cursor-pointer hover:text-c-blue",onClick:()=>{return e=d.responseId,h(!1),void p(e);var e}},{children:[s(i,{className:"h-4 w-4"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:f+1}))]})),s(n,{text:u})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase text-black/30"},{children:x}))}))]}))]}))]}))]}))};export{d as default};
@@ -0,0 +1,2 @@
1
+ declare const Response: () => import("react/jsx-runtime").JSX.Element | null;
2
+ export default Response;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as t}from"react";import{usePickaxeContext as r}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../../hooks/pickaxe/useResponseContext.js";import{format as l}from"date-fns";import o from"../../../Icons/message-square-notes.svg.js";import n from"../../../Icons/visitor.svg.js";import i from"../../../Core/PickaxeIcon.js";import c from"../../../Core/CopyButton.js";import d from"../../../Core/MarkdownRenderer.js";import m from"../../Addons/Scroll/ScrollLockView.js";const p=()=>{var p;const{pickaxe:h,setChatId:x,setIsNewChat:f}=r(),{response:b}=a(),u=t((()=>l(b?b.createdAt:new Date,"hh:mm a MMM dd, yy")),[b]),g=t((()=>{var e;if(!b)return"";return(null!==(e=b.questions)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||"n/a"}</p>\n</div>`)).join("")}),[b]);return b?e("div",Object.assign({className:"flex flex-col shadow-black transition hover:shadow"},{children:[e("div",Object.assign({className:"flex gap-x-3 overflow-hidden bg-white px-4 py-5"},{children:[s("div",Object.assign({className:"shrink-0 pt-1"},{children:s(n,{className:"h-6 w-6 text-black"})})),e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar-track-gray-100 scrollbar-thumb-[#4A4A4B] lg:max-w-[520px] lg:scrollbar-thin"},{children:[s("input",{id:`${b.responseId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:g.length<280}),s("div",{className:"danger-html hidden flex-col text-black/50 peer-checked:flex",dangerouslySetInnerHTML:{__html:g}}),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"mt-1 flex shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer"},{children:"See input"})),s("label",Object.assign({htmlFor:`${b.responseId}-input`,className:"hidden shrink-0 whitespace-nowrap text-sm font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer"},{children:"Hide input"}))]}))]})),e("div",Object.assign({className:"flex gap-x-3 bg-[#E9F4FB] px-4 py-5"},{children:[s(i,{src:null==h?void 0:h.chaticon,alt:`${null==h?void 0:h.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1"}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2 overflow-hidden"},{children:[s(d,{className:"overflow-x-auto pb-2 font-light text-black/90 scrollbar-thin scrollbar-track-white scrollbar-thumb-[#4A4A4B]",html:b.questionResponse}),e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[e("div",Object.assign({className:"flex items-center gap-3"},{children:[(null==h?void 0:h.enablechatresponses)&&e("button",Object.assign({className:"flex items-center gap-x-1 text-c-gray hover:cursor-pointer hover:text-c-blue",onClick:()=>{return e=b.responseId,f(!1),void x(e);var e}},{children:[s(o,{className:"h-4 w-4"}),s("p",Object.assign({className:"text-sm font-semibold"},{children:b.messages.length+1}))]})),s(c,{text:null!==(p=b.questionResponse)&&void 0!==p?p:""})]})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:"text-sm font-semibold uppercase text-black/30"},{children:u}))}))]}))]}))]})),s(m,{})]})):null};export{p as default};
@@ -0,0 +1,2 @@
1
+ declare const History: () => import("react/jsx-runtime").JSX.Element;
2
+ export default History;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import r from"./Response.js";import s from"./Container.js";const t=()=>e("div",Object.assign({className:"flex flex-col gap-y-8"},{children:[o(r,{}),o(s,{})]}));export{t as default};
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const NewChat: React.FC;
3
+ export default NewChat;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{usePickaxeContext as s}from"../../../hooks/pickaxe/usePickaxeContext.js";import{generateId as o}from"../../../common/utils.js";const i=()=>{const{isShowHistory:i,setChatId:a,setIsNewChat:r,setIsShowHistory:c}=s();return e("div",Object.assign({className:"mt-6 flex flex-wrap gap-2"},{children:[t("button",Object.assign({onClick:()=>{return e=o(20),r(!0),void a(e);var e},className:"flex h-[48px] w-full max-w-[140px] items-center justify-center gap-2 rounded-sm bg-c-blue px-4 font-semibold text-white hover:opacity-80 hover:duration-300 disabled:cursor-wait disabled:opacity-60"},{children:t("span",Object.assign({className:"font-semibold"},{children:"New chat"}))})),!i&&t("button",Object.assign({className:"flex h-[48px] w-full max-w-[140px] items-center justify-center px-4 font-semibold hover:text-black/70 hover:duration-300",onClick:()=>c(!0)},{children:"See history"}))]}))};export{i as default};
@@ -0,0 +1,7 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../types/form";
2
+ interface CheckboxProps {
3
+ field: MemoryStoredQuestionField;
4
+ update: (questions: MemoryStoredQuestionField) => void;
5
+ }
6
+ declare const Checkbox: ({ field, update }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Checkbox;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useResponseContext as t}from"../../../../hooks/pickaxe/useResponseContext.js";import i from"./Dropdown.js";const n=({field:n,update:a})=>{const{setError:c}=t(),l=e=>(n.input?n.input.split("&#44;"):[]).includes(e);return e("div",Object.assign({className:"flex flex-col gap-y-3"},{children:[e("div",Object.assign({className:"flex items-center gap-2"},{children:[s("p",Object.assign({className:"text-[14px] font-semibold text-black/70"},{children:n.main})),n.isRequired&&s("span",Object.assign({className:"select-none font-semibold text-c-red"},{children:"*"}))]})),s(i,Object.assign({id:n.id.replace(/[^A-Za-z]+/g,""),value:n.input.replace(/&#44;/g,", "),placeholder:"Select option(s)",closeOnSelect:!1,maxToken:n.maxLength,isDropdown:n.isDropdown},{children:s("div",Object.assign({className:"flex flex-col items-start gap-y-3"},{children:n.example.split("S3P32X").map(((t,i)=>e("div",Object.assign({className:"flex items-center gap-x-2 hover:cursor-pointer",onClick:()=>(e=>{c("");const s=n.input?n.input.split("&#44;"):[],t=new Set(s);l(e)&&t.has(e)?t.delete(e):l(e)||t.has(e)||t.add(e);const i=Array.from(t).filter((e=>""!==e.trim()));a(Object.assign(Object.assign({},n),{input:i.join("&#44;")}))})(t)},{children:[s("div",Object.assign({className:"flex h-6 w-6 shrink-0 items-center justify-center border-2 border-black bg-white"},{children:l(t)&&s("div",{className:"h-4 w-4 bg-[#288DD7]"})})),s("p",Object.assign({className:"select-none max-lg:text-sm"},{children:t}))]}),i)))}))}))]}))};export{n as default};
@@ -0,0 +1,7 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../types/form";
2
+ interface DocumentProps {
3
+ field: MemoryStoredQuestionField;
4
+ update: (questions: MemoryStoredQuestionField) => void;
5
+ }
6
+ declare const Document: ({ field, update }: DocumentProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Document;
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as s,jsx as t,Fragment as i}from"react/jsx-runtime";import{useState as o,useRef as a}from"react";import{useDocument as n}from"../../Addons/Document/hooks/useDocument.js";import{allowedFileMimeTypes as r,allowedImageMimeTypes as l}from"../../../../common/documents.js";import c from"../../../Icons/attach.svg.js";import d from"../../../Icons/check.svg.js";import m from"../../../Icons/x.svg.js";import b from"../../../Core/ErrorAlert.js";import u from"../../Addons/Document/List.js";import p from"../../../../common/cn.js";const f=({field:f,update:h})=>{const[g,v]=o(!1),{documentError:j,websiteLink:x,isUploading:N,isImageUploadAllowed:k,setDocumentError:y,setWebsiteLink:w,onFileUpload:O,onWebsiteUpload:D}=n({onQuestionChange:e=>{h(Object.assign(Object.assign({},f),e))}}),C=a(null);return s("div",Object.assign({className:"flex flex-col gap-y-1"},{children:[s("div",Object.assign({className:"flex flex-col gap-y-2"},{children:[s("div",Object.assign({className:"flex items-center gap-2"},{children:[t("p",Object.assign({className:"text-[14px] font-semibold text-black/70"},{children:f.main})),f.isRequired&&t("span",Object.assign({className:"select-none font-semibold text-c-red"},{children:"*"}))]})),s("div",Object.assign({className:"flex flex-col gap-y-2"},{children:[t("input",{ref:C,type:"file",accept:[...r,...k?l:[]].join(", "),id:f.id,hidden:!0,className:"hidden",onChange:s=>e(void 0,void 0,void 0,(function*(){yield O(Array.from(s.target.files||[])),s.target.value=""})),disabled:N}),s("div",Object.assign({className:p("flex items-center justify-between rounded-sm border border-transparent bg-white py-3 pl-4 pr-3 shadow duration-300 hover:border-black/25",g&&"border-black/70 shadow-none hover:border-black/70")},{children:[t("input",{type:"text",value:x,className:"w-full outline-none",placeholder:"Paste a website/video link or drag a file",onChange:e=>w(e.target.value),onDrop:s=>e(void 0,void 0,void 0,(function*(){s.preventDefault(),yield O(Array.from(s.dataTransfer.files||[]))})),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(x))},onFocus:()=>v(!0),onBlur:()=>v(!1)}),t("div",Object.assign({className:"flex items-center gap-3 pl-4"},{children:x.length>0?s(i,{children:[t("button",Object.assign({className:"outline-none disabled:cursor-wait disabled:opacity-80",disabled:N,onClick:()=>D(x)},{children:t(d,{className:"h-[20px] w-[20px] shrink-0 text-c-blue"})})),t("button",Object.assign({className:"outline-none disabled:cursor-wait disabled:opacity-80",disabled:N,onClick:()=>{w(""),y("")}},{children:t(m,{className:"h-6 w-6 shrink-0 text-c-blue"})}))]}):t("button",Object.assign({className:"outline-none disabled:cursor-wait disabled:opacity-80",disabled:N,onClick:()=>{var e;null===(e=C.current)||void 0===e||e.click()}},{children:t(c,{className:"h-6 w-6 shrink-0 text-c-blue"})}))}))]}))]}))]})),t(u,{className:"mt-2"}),j&&t(b,{error:j,className:"mt-3"})]}))};export{f as default};
@@ -0,0 +1,14 @@
1
+ import { type CSSProperties, type ReactNode } from "react";
2
+ interface DropdownProps {
3
+ id: string;
4
+ children: ReactNode;
5
+ placeholder: string;
6
+ value?: string;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ closeOnSelect?: boolean;
10
+ maxToken?: number;
11
+ isDropdown?: boolean;
12
+ }
13
+ declare const Dropdown: ({ id, children, placeholder, value, className, style, closeOnSelect, maxToken, isDropdown, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
14
+ export default Dropdown;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as o}from"react";import n from"../../../Core/Menu/index.js";import s from"../../../Core/Menu/Button.js";import a from"../../../Core/Menu/List.js";import t from"../../../../common/cn.js";const c=({id:c,children:i,placeholder:l,value:d,className:m,style:p,closeOnSelect:b=!0,maxToken:h=50,isDropdown:u=!1})=>{const[j,f]=o(!1);return u?r(n,Object.assign({id:c,closeOnSelect:b,onChange:f,className:"relative"},{children:[e(s,Object.assign({variant:"anchor",className:t("flex items-center justify-between rounded-sm border border-transparent bg-white py-3 pl-4 pr-3 shadow duration-300 hover:border-black/25",m,j&&"border-black/70 shadow-none hover:border-black/70",h<=50&&"max-w-[400px]"),style:Object.assign({},p)},{children:e("p",Object.assign({className:"line-clamp-1 select-none"},{children:(null!=d?d:"")||l}))})),e(a,Object.assign({className:"p-3 shadow-md",border:"1px solid rgba(0,0,0,0.7)",align:"bottom-end",width:h<=50?"400px":"100%"},{children:i}))]})):e("div",{children:i})};export{c as default};
@@ -0,0 +1,7 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../types/form";
2
+ interface InputProps {
3
+ field: MemoryStoredQuestionField;
4
+ update: (questions: MemoryStoredQuestionField) => void;
5
+ }
6
+ declare const Input: ({ field, update }: InputProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Input;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o}from"react";import{useResponseContext as a}from"../../../../hooks/pickaxe/useResponseContext.js";import{encode as s}from"@nem035/gpt-3-encoder";import r from"../../../Core/Textarea.js";import n from"../../../../common/cn.js";const c=({field:c,update:i})=>{const{setError:l}=a(),[m,p]=o(!1);return e("div",Object.assign({className:"group relative flex flex-col gap-y-1"},{children:[e("div",Object.assign({className:"flex flex-col gap-y-2"},{children:[e("div",Object.assign({className:"flex items-center gap-2"},{children:[t("p",Object.assign({className:"text-[14px] font-semibold text-black/70"},{children:c.main})),c.isRequired&&t("span",Object.assign({className:"select-none font-semibold text-c-red"},{children:"*"}))]})),t(r,{className:n("rounded-sm border border-transparent bg-white px-4 py-3 shadow duration-300 hover:border-black/25 focus:border-black/70 focus:shadow-none",c.maxLength<10&&"max-w-[400px]"),placeholder:c.example,rows:c.maxLength>500?3:1,value:c.input,tabIndex:c.order,onChange:e=>{l("");const t=s(e).length;i(Object.assign(Object.assign({},c),{input:e,length:t}))},onFocus:()=>p(!0),onBlur:()=>p(!1)})]})),t("div",Object.assign({className:"pointer-events-none absolute bottom-0 right-0 p-1 px-2"},{children:e("p",Object.assign({className:n("text-[14px] font-semibold text-black/20 opacity-0 group-hover:opacity-100 group-hover:duration-200",c.length>c.maxLength&&"text-c-red opacity-100",m&&"opacity-100")},{children:[c.length,"/",c.maxLength]}))}))]}))};export{c as default};
@@ -0,0 +1,7 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../types/form";
2
+ interface OptionProps {
3
+ field: MemoryStoredQuestionField;
4
+ update: (questions: MemoryStoredQuestionField) => void;
5
+ }
6
+ declare const Option: ({ field, update }: OptionProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Option;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useResponseContext as t}from"../../../../hooks/pickaxe/useResponseContext.js";import i from"./Dropdown.js";const n=({field:n,update:a})=>{const{setError:c}=t();return e("div",Object.assign({className:"flex flex-col gap-y-3"},{children:[e("div",Object.assign({className:"flex items-center gap-2"},{children:[s("p",Object.assign({className:"text-[14px] font-semibold text-black/70"},{children:n.main})),n.isRequired&&s("span",Object.assign({className:"select-none font-semibold text-c-red"},{children:"*"}))]})),s(i,Object.assign({id:n.id.replace(/[^A-Za-z]+/g,""),value:n.input,placeholder:"Select an option",closeOnSelect:!1,maxToken:n.maxLength,isDropdown:n.isDropdown},{children:s("div",Object.assign({className:"flex flex-col items-start gap-y-3"},{children:n.example.split("S3P32X").map(((t,i)=>e("div",Object.assign({className:"flex items-center gap-x-2 hover:cursor-pointer",onClick:()=>{return e=t,c(""),void a(Object.assign(Object.assign({},n),{input:e}));var e}},{children:[s("div",Object.assign({className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border-2 border-black bg-white"},{children:n.input===t&&s("div",{className:"h-4 w-4 rounded-full bg-[#288DD7]"})})),s("p",Object.assign({className:"select-none max-lg:text-sm"},{children:t}))]}),i)))}))}))]}))};export{n as default};
@@ -0,0 +1,7 @@
1
+ import type { MemoryStoredQuestionField } from "../../../../types/form";
2
+ interface SubmitProps {
3
+ questions: MemoryStoredQuestionField[];
4
+ update: (questions: MemoryStoredQuestionField) => void;
5
+ }
6
+ declare const Submit: ({ questions }: SubmitProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default Submit;
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as s}from"react";import{usePickaxeContext as r}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as n}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as l}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as d}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as a}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as c}from"../../../../common/api/streamer.js";import{extractUrlsFromText as u}from"../../../../common/utils.js";import{encode as m}from"@nem035/gpt-3-encoder";import p from"../../../../common/error.js";const f=({questions:f})=>{const{formId:h,pickaxe:g,isShowHistory:b,setIsShowHistory:x}=r(),{status:w,setResponse:y,setStatus:j,setError:I}=i(),{documents:k,websiteLink:v,isUploading:S,onWebsiteUpload:q,setDocumentError:E}=d(),{isScrollIncreasing:O,scrollToContainer:R,scrollToBottom:U,scrollStart:A,scrollEnd:C}=a(),P=n(),D=l(),[L,N]=s(!1);return o("div",Object.assign({className:"mt-4 flex flex-wrap gap-2"},{children:[t("button",Object.assign({onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(S||L||"fetching"===w||"streaming"===w)return;E("");const o="enduserupload"===(null==g?void 0:g.documentuploadtype),t=f.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),s=k.filter((e=>"finished"===e.status)),r=u(v),i=k.map((e=>e.name)),n=r.filter((e=>!i.includes(e)));if(n.length){const e=n[n.length-1],o=yield q(e);o&&(s.push(o),N(!0),yield new Promise((e=>setTimeout(e,5e3))),N(!1))}else if(t&&o&&!s.length)return void E("Please paste a valid website/video link or drag a file to add to the knowledge base.");I("");const l=["Multiple Choice","Checkbox"];for(const e of f){if(m(e.input).length>e.maxLength&&!l.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const d=s.length?s[s.length-1]:null;let a={};f.forEach((e=>a=Object.assign(Object.assign({},a),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==d?void 0:d.name)||"":e.input}))),j("fetching");const{success:p,responseId:b,data:x,usedDocumentIds:R,rawUserInput:C,error:T}=yield P.mutateAsync(Object.assign({formId:h,valueObj:a},o&&d&&{documentId:null!==(e=d.documentId)&&void 0!==e?e:""}));if(!p)throw new Error(null!=T?T:"An error occurred, please try again.");A();const H=(yield c({formId:h,responseId:b,data:x})).body;if(!H)throw new Error("Streaming error");const B=H.getReader(),W=new TextDecoder;let Y="",_=!0;y(null);const F=f.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;_;){const{value:e,done:o}=yield B.read();_=!o;if(Y+=W.decode(e),Y)j("streaming"),y({formId:h,responseId:b,documentIds:R,messages:[],questions:F,questionPrompt:C,questionResponse:Y,createdAt:new Date}),O&&U();else if(!_&&!Y)throw new Error("Server error")}Y&&(U(),j("idle"),yield D.mutateAsync({formId:h,responseId:b,documentIds:R,studioUserId:"USER68RFBSHU4YS2I4L",questions:F,questionPrompt:C,questionResponse:Y}))}catch(e){let o=p(e);o.includes("Unexpected token 'A',")&&(o="Oops! We're experiencing high traffic at the moment. Please try again later."),I(o),N(!1),R()}finally{j("idle"),C()}})),tabIndex:f.length+1,className:"flex h-[48px] w-full max-w-[176px] items-center justify-center gap-2 rounded-sm bg-c-blue px-4 font-semibold text-white hover:opacity-80 hover:duration-300 disabled:cursor-wait disabled:opacity-60",disabled:S||L||"fetching"===w||"streaming"===w},{children:t("p",Object.assign({className:"font-semibold"},{children:L?"Processing...":S?"Uploading...":"fetching"===w||"streaming"===w?"Loading...":"Submit"}))})),!b&&t("button",Object.assign({tabIndex:f.length+2,className:"flex h-[48px] w-full max-w-[176px] items-center justify-center px-4 font-semibold hover:text-black/70 hover:duration-300",onClick:()=>x(!0)},{children:"See history"}))]}))};export{f as default};
@@ -0,0 +1,2 @@
1
+ declare const Questions: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Questions;
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useState as t,useEffect as o,Fragment as r}from"react";import{usePickaxeContext as p}from"../../../../hooks/pickaxe/usePickaxeContext.js";import s from"../../../Core/ErrorAlert.js";import n from"./Input.js";import d from"./Option.js";import m from"./Document.js";import u from"./Checkbox.js";import a from"./Submit.js";const l=()=>{const{pickaxe:l}=p(),[c,f]=t([]),x=e=>{f((i=>i.map((i=>i.id===e.id?e:i))))};return o((()=>{l&&l._questions&&f(l._questions.map(((e,i)=>{let t="";if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)t="";else if("Multiple Choice"===e.type){const i=e.example.split("S3P32X");i.includes(t)||(t=i[0])}return Object.assign(Object.assign({order:i+1,id:e.id,type:e.type,main:e.main,example:e.example,input:t,length:0,maxLength:parseInt(e.answerlength)},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})))}),[l]),e("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[c.map(((e,t)=>"Multiple Choice"===e.type?i(r,{children:i(d,{field:e,update:x})},t):"Checkbox"===e.type?i(r,{children:i(u,{field:e,update:x})},t):"userinput:documentupload"===e.id?i(r,{children:i(m,{field:e,update:x})},t):i(r,{children:i(n,{field:e,update:x})},t))),i(s,{}),i(a,{questions:c,update:x})]}))};export{l as default};
@@ -0,0 +1,2 @@
1
+ declare const Form: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Form;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as s}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../../hooks/pickaxe/usePickaxeContext.js";import t from"./Head.js";import l from"./History/index.js";import o from"./NewChat.js";import a from"./Questions/index.js";const r=()=>{const{pickaxe:r}=i();return e("div",Object.assign({className:"flex w-full flex-col items-center px-4 pb-40 max-[899px]:pb-10"},{children:s("div",Object.assign({className:"flex w-full max-w-[700px] flex-col"},{children:[e(t,{}),s("div",Object.assign({className:"flex flex-col gap-y-8 lg:mt-4"},{children:[(null==r?void 0:r.chatflag)?e(o,{}):e(a,{}),e(l,{})]}))]}))}))};export{r as default};
@@ -0,0 +1,6 @@
1
+ interface InfoModalProps {
2
+ isOpen: boolean;
3
+ onChangeIsOpen: (isOpen: boolean) => void;
4
+ }
5
+ declare const InfoModal: ({ isOpen, onChangeIsOpen }: InfoModalProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default InfoModal;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../hooks/pickaxe/usePickaxeContext.js";import s from"../Icons/x.svg.js";import l from"../Core/Modal/index.js";import o from"../Core/Modal/Body.js";import a from"../Core/PickaxeIcon.js";const c=({isOpen:c,onChangeIsOpen:n})=>{const{pickaxe:r}=i();return e(l,Object.assign({isOpen:c,onChange:n},{children:t(o,Object.assign({className:"relative flex w-full max-w-[480px] flex-col px-8 py-[26px] max-[767px]:max-w-full",avoidOverflow:!0},{children:[e("div",Object.assign({className:"flex items-start justify-end gap-4"},{children:e("button",Object.assign({className:"outline-none hover:opacity-70 hover:duration-300 active:opacity-100",onClick:()=>n(!1)},{children:e(s,{className:"h-6 w-6 shrink-0"})}))})),e("div",Object.assign({className:"mt-8 flex flex-col items-center"},{children:t("div",Object.assign({className:"flex w-full max-w-[360px] flex-col items-center text-center"},{children:[e(a,{src:null==r?void 0:r.coverphoto,alt:`${null==r?void 0:r.formtitle}'s Profile Picture`,width:90,height:90,className:"h-[90px] w-[90px] rounded-full"}),e("h2",Object.assign({className:"mt-6 text-center text-[18px] font-semibold text-black/70 max-[767px]:text-[16px]"},{children:null==r?void 0:r.formtitle})),e("p",Object.assign({className:"mt-4 font-semilight text-black/70"},{children:null==r?void 0:r.formdescription}))]}))}))]}))}))};export{c as default};
@@ -1,18 +1,16 @@
1
- import type { SetState } from "../types/common";
2
- import type { Pickaxe, PickaxeStatus } from "../types/pickaxe";
1
+ import type { SetState } from "../../types/common";
2
+ import type { Pickaxe } from "../../types/pickaxe";
3
3
  import { type ReactNode } from "react";
4
4
  type PickaxeContextType = {
5
5
  formId: string;
6
6
  chatId: string;
7
7
  pickaxe: Pickaxe | null;
8
- status: PickaxeStatus;
9
8
  isNewChat: boolean;
10
9
  isShowIceBreaker: boolean;
11
10
  isShowHistory: boolean;
12
11
  setFormId: SetState<string>;
13
12
  setChatId: SetState<string>;
14
13
  setPickaxe: SetState<Pickaxe | null>;
15
- setStatus: SetState<PickaxeStatus>;
16
14
  setIsNewChat: SetState<boolean>;
17
15
  setIsShowIceBreaker: SetState<boolean>;
18
16
  setIsShowHistory: SetState<boolean>;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as r,useState as o}from"react";import t from"./Addons/Document/Provider.js";import s from"./ResponseProvider.js";const i=r({}),c=({children:r})=>{const[c,d]=o(""),[n,a]=o(""),[h,m]=o(null),[I,l]=o(!0),[p,w]=o(!0),[f,u]=o(!1);return e(i.Provider,Object.assign({value:{formId:c,chatId:n,pickaxe:h,isNewChat:I,isShowIceBreaker:p,isShowHistory:f,setFormId:d,setChatId:a,setPickaxe:m,setIsNewChat:l,setIsShowIceBreaker:w,setIsShowHistory:u}},{children:e(s,{children:e(t,{children:r})})}))};export{i as PickaxeContext,c as PickaxeProvider};
@@ -0,0 +1,24 @@
1
+ import type { SetState } from "../../types/common";
2
+ import type { MemoryStoredChatMessage } from "../../types/chat";
3
+ import type { MemoryStoredResponse } from "../../types/form";
4
+ import { type ReactNode } from "react";
5
+ export type ResponseStatus = "fetching" | "streaming" | "idle";
6
+ type ResponseContextType = {
7
+ messages: MemoryStoredChatMessage[];
8
+ response: MemoryStoredResponse | null;
9
+ status: ResponseStatus;
10
+ error: string;
11
+ isGenerating: boolean;
12
+ setMessages: SetState<MemoryStoredChatMessage[]>;
13
+ setMessage: (message: MemoryStoredChatMessage) => void;
14
+ setResponse: SetState<MemoryStoredResponse | null>;
15
+ setStatus: SetState<ResponseStatus>;
16
+ setError: SetState<string>;
17
+ setIsGenerating: SetState<boolean>;
18
+ };
19
+ interface IResponseProviderProps {
20
+ children: ReactNode;
21
+ }
22
+ export declare const ResponseContext: import("react").Context<ResponseContextType>;
23
+ declare const ResponseProvider: ({ children }: IResponseProviderProps) => import("react/jsx-runtime").JSX.Element;
24
+ export default ResponseProvider;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t}from"react";const r=s({}),a=({children:s})=>{const[a,n]=t([]),[i,o]=t(null),[c,g]=t("idle"),[l,m]=t(""),[u,d]=t(!1);return e(r.Provider,Object.assign({value:{messages:a,response:i,status:c,error:l,isGenerating:u,setMessages:n,setResponse:o,setStatus:g,setError:m,setIsGenerating:d,setMessage:e=>{n((s=>s.map(((s,t)=>t===e.id?Object.assign(Object.assign({},s),e):s))))}}},{children:s}))};export{r as ResponseContext,a as default};
@@ -3,4 +3,4 @@ export interface PickaxeProps {
3
3
  chatId?: string;
4
4
  className?: string;
5
5
  }
6
- export declare const Pickaxe: ({ formId, chatId, className }: PickaxeProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const Pickaxe: ({ formId: _formId, chatId: _chatId, className, }: PickaxeProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{usePickaxe as o}from"../../hooks/usePickaxe.js";import{useEffect as a}from"react";import{usePickaxeContext as e}from"../../hooks/usePickaxeContext.js";import r from"../../common/cn.js";const s=({formId:s,chatId:i,className:m})=>{const{setFormId:c,setChatId:n,setPickaxe:d}=e(),f=o();return a((()=>{c(s)}),[s]),a((()=>{"string"==typeof i&&n(i)}),[i]),a((()=>{f.data&&d(f.data)}),[f.data]),t("div",Object.assign({className:r("flex flex-col",m)},{children:f.data?t("pre",{children:JSON.stringify(f.data,null,2)}):"Loading..."}))};export{s as Pickaxe};
1
+ import{jsx as o}from"react/jsx-runtime";import{usePickaxe as r}from"../../hooks/pickaxe/usePickaxe.js";import{useEffect as t}from"react";import{usePickaxeContext as e}from"../../hooks/pickaxe/usePickaxeContext.js";import{generateId as a}from"../../common/utils.js";import m from"./Addons/Scroll/Provider.js";import i from"./Chat/index.js";import s from"./Form/index.js";import c from"../../common/cn.js";const d=({formId:d,chatId:n,className:f})=>{const{chatId:l,setFormId:p,setChatId:x,setPickaxe:h}=e(),j=r();return t((()=>{p(d)}),[d]),t((()=>{"string"==typeof n&&x(n)}),[n]),t((()=>{j.data&&(x(j.data.chatflag?a(15):""),h(j.data))}),[j.data]),o(m,{children:o("div",Object.assign({className:c("@container/pickaxe-root flex flex-col flex-grow w-full",f)},{children:o(l?i:s,{})}))})};export{d as Pickaxe};
@@ -0,0 +1,5 @@
1
+ export declare const useHover: () => {
2
+ isHover: boolean;
3
+ onMouseEnter: () => void;
4
+ onMouseLeave: () => void;
5
+ };
@@ -0,0 +1 @@
1
+ import{useState as o,useCallback as e}from"react";const r=()=>{const[r,t]=o(!1);return{isHover:r,onMouseEnter:e((()=>t(!0)),[]),onMouseLeave:e((()=>t(!1)),[])}};export{r as useHover};
@@ -0,0 +1 @@
1
+ export declare const useMediaQuery: (query: string | string[]) => boolean[];
@@ -0,0 +1 @@
1
+ import{useState as e,useLayoutEffect as n,useEffect as t}from"react";const r="undefined"!=typeof window?n:t,i=n=>{const t=Array.isArray(n)?n:[n],i="undefined"!=typeof window&&"matchMedia"in window,[o,a]=e(t.map((e=>!!i&&!!window.matchMedia(e).matches)));return r((()=>{if(!i)return;const e=t.map((e=>window.matchMedia(e))),n=e.map((()=>{const n=()=>{const n=e.map((e=>e.matches));var t,r;r=n,(t=o).length===r.length&&t.every(((e,n)=>e===r[n]))||a(n)};return window.addEventListener("resize",n),n}));return()=>{e.forEach(((e,t)=>{window.removeEventListener("resize",n[t])}))}}),[t]),o};export{i as useMediaQuery};
@@ -0,0 +1,9 @@
1
+ import { type MutableRefObject, type RefObject } from "react";
2
+ type Ref = MutableRefObject<any> | RefObject<HTMLElement>;
3
+ interface UseOutsideAlerterProps {
4
+ ref: Ref | Ref[];
5
+ callback?: () => void;
6
+ event?: "click" | "mousedown";
7
+ }
8
+ export declare const useOutsideAlerter: ({ ref, callback, event, }: UseOutsideAlerterProps) => void;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{useEffect as e}from"react";const r=({ref:r,callback:t,event:n="mousedown"})=>{e((()=>{const e=e=>{(Array.isArray(r)?r:[r]).some((r=>r.current&&r.current.contains(e.target)))||null==t||t()};return document.addEventListener(n,e),()=>{document.removeEventListener(n,e)}}),[n])};export{r as useOutsideAlerter};
@@ -1,4 +1,4 @@
1
- import type { ChatMessage } from "../types/chat";
1
+ import type { ChatMessage } from "../../types/chat";
2
2
  interface QueryResponse {
3
3
  success: boolean;
4
4
  messages: ChatMessage[];
@@ -0,0 +1 @@
1
+ import{__awaiter as t}from"../../_virtual/_tslib.js";import{useQuery as o}from"@tanstack/react-query";import{usePickaxeContext as r}from"./usePickaxeContext.js";import e from"../../common/api/index.js";const i=()=>{const{formId:i,chatId:n}=r();return o({queryKey:["form",i,"chat",n],queryFn:()=>t(void 0,void 0,void 0,(function*(){return o=i,r=n,t(void 0,void 0,void 0,(function*(){const t=yield e.get(`/pickaxe/chat/conversation?formid=${o}&responseid=${r}`),i=t.data;if(200!==t.status)throw new Error("[_getChat] Failed to fetch chat conversation "+i);return i}));var o,r})),enabled:!!i&&!!n})};export{i as useConversation};
@@ -1,4 +1,4 @@
1
- import type { PickaxeHistory } from "../types/history";
1
+ import type { PickaxeHistory } from "../../types/history";
2
2
  import { UseInfiniteQueryResult } from "@tanstack/react-query";
3
3
  type QueryInfiniteResponse = {
4
4
  next: number | undefined;
@@ -0,0 +1 @@
1
+ import{__awaiter as t}from"../../_virtual/_tslib.js";import{useInfiniteQuery as r}from"@tanstack/react-query";import{usePickaxeContext as e}from"./usePickaxeContext.js";import o from"../../common/api/index.js";const i=({enabled:i=!0}={enabled:!0})=>{const{formId:a}=e();return r({queryKey:["form",a,"history"],queryFn:({pageParam:r=0})=>{return e=a,i=r,t(void 0,void 0,void 0,(function*(){const t=yield o.get(`/pickaxe/history?formid=${e}&place=${i}`),r=t.data;if(200!==t.status)throw new Error("[_getHistory] Failed to fetch history "+r);return{next:r.history.length<5?void 0:i+25,data:r.history}}));var e,i},getNextPageParam:t=>t.next,enabled:i&&!!a})};export{i as useHistory};