@tylertech/forge-ai 0.15.3-dev.1 → 0.16.0

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 (446) hide show
  1. package/MIGRATION.md +192 -0
  2. package/README.md +76 -2
  3. package/custom-elements.json +5442 -15097
  4. package/dist/_virtual/_@oxc-project_runtime@0.154.0/helpers/esm/decorate.mjs +9 -0
  5. package/dist/ai-agent-info/ai-agent-info.mjs +4 -78
  6. package/dist/ai-agent-info/ai-agent-info2.mjs +55 -0
  7. package/dist/ai-agent-info/index.d.ts +1 -1
  8. package/dist/ai-agent-info/index.mjs +1 -5
  9. package/dist/ai-agent-selector/ai-agent-selector.d.ts +2 -2
  10. package/dist/ai-agent-selector/ai-agent-selector.mjs +4 -439
  11. package/dist/ai-agent-selector/ai-agent-selector2.mjs +344 -0
  12. package/dist/ai-agent-selector/index.mjs +1 -5
  13. package/dist/ai-artifact/ai-artifact.mjs +4 -39
  14. package/dist/ai-artifact/ai-artifact2.mjs +31 -0
  15. package/dist/ai-artifact/index.d.ts +1 -1
  16. package/dist/ai-artifact/index.mjs +1 -5
  17. package/dist/ai-artifact-card/ai-artifact-card.mjs +4 -142
  18. package/dist/ai-artifact-card/ai-artifact-card2.mjs +103 -0
  19. package/dist/ai-artifact-card/index.d.ts +1 -1
  20. package/dist/ai-artifact-card/index.mjs +1 -5
  21. package/dist/ai-artifact-card-group/ai-artifact-card-group.mjs +4 -137
  22. package/dist/ai-artifact-card-group/ai-artifact-card-group2.mjs +100 -0
  23. package/dist/ai-artifact-card-group/index.d.ts +1 -1
  24. package/dist/ai-artifact-card-group/index.mjs +1 -5
  25. package/dist/ai-assistant-response/ai-assistant-response.d.ts +1 -2
  26. package/dist/ai-assistant-response/ai-assistant-response.mjs +4 -236
  27. package/dist/ai-assistant-response/ai-assistant-response2.mjs +137 -0
  28. package/dist/ai-assistant-response/index.d.ts +1 -1
  29. package/dist/ai-assistant-response/index.mjs +1 -5
  30. package/dist/ai-canvas/ai-canvas.d.ts +3 -3
  31. package/dist/ai-canvas/ai-canvas.mjs +4 -95
  32. package/dist/ai-canvas/ai-canvas2.mjs +74 -0
  33. package/dist/ai-canvas/index.d.ts +1 -1
  34. package/dist/ai-canvas/index.mjs +1 -5
  35. package/dist/ai-chain-of-thought/ai-chain-of-thought.mjs +4 -45
  36. package/dist/ai-chain-of-thought/ai-chain-of-thought2.mjs +35 -0
  37. package/dist/ai-chain-of-thought/index.d.ts +5 -5
  38. package/dist/ai-chain-of-thought/index.mjs +6 -17
  39. package/dist/ai-chain-of-thought/thought-base/index.mjs +1 -5
  40. package/dist/ai-chain-of-thought/thought-base/thought-base.mjs +4 -43
  41. package/dist/ai-chain-of-thought/thought-base/thought-base2.mjs +31 -0
  42. package/dist/ai-chain-of-thought/thought-detail/index.mjs +1 -5
  43. package/dist/ai-chain-of-thought/thought-detail/thought-detail.mjs +4 -34
  44. package/dist/ai-chain-of-thought/thought-detail/thought-detail2.mjs +26 -0
  45. package/dist/ai-chain-of-thought/thought-image/index.mjs +1 -5
  46. package/dist/ai-chain-of-thought/thought-image/thought-image.mjs +4 -43
  47. package/dist/ai-chain-of-thought/thought-image/thought-image2.mjs +30 -0
  48. package/dist/ai-chain-of-thought/thought-search-result/index.mjs +1 -5
  49. package/dist/ai-chain-of-thought/thought-search-result/thought-search-result.mjs +4 -62
  50. package/dist/ai-chain-of-thought/thought-search-result/thought-search-result2.mjs +45 -0
  51. package/dist/ai-chat-header/ai-chat-header.d.ts +7 -5
  52. package/dist/ai-chat-header/ai-chat-header.mjs +4 -439
  53. package/dist/ai-chat-header/ai-chat-header2.mjs +319 -0
  54. package/dist/ai-chat-header/index.d.ts +2 -2
  55. package/dist/ai-chat-header/index.mjs +1 -5
  56. package/dist/ai-chat-interface/ai-chat-interface.d.ts +1 -0
  57. package/dist/ai-chat-interface/ai-chat-interface.mjs +4 -103
  58. package/dist/ai-chat-interface/ai-chat-interface2.mjs +73 -0
  59. package/dist/ai-chat-interface/index.mjs +1 -5
  60. package/dist/ai-client-message/ai-client-message.d.ts +5 -6
  61. package/dist/ai-client-message/ai-client-message.mjs +4 -112
  62. package/dist/ai-client-message/ai-client-message2.mjs +76 -0
  63. package/dist/ai-client-message/index.mjs +1 -5
  64. package/dist/ai-context-chip/ai-context-chip.d.ts +1 -1
  65. package/dist/ai-context-chip/ai-context-chip.mjs +4 -169
  66. package/dist/ai-context-chip/ai-context-chip2.mjs +113 -0
  67. package/dist/ai-context-chip/index.mjs +1 -5
  68. package/dist/ai-context-items/ai-context-items.d.ts +11 -5
  69. package/dist/ai-context-items/ai-context-items.mjs +4 -78
  70. package/dist/ai-context-items/ai-context-items2.mjs +53 -0
  71. package/dist/ai-context-items/index.d.ts +1 -1
  72. package/dist/ai-context-items/index.mjs +1 -5
  73. package/dist/ai-conversations-panel/ai-conversations-panel.d.ts +2 -2
  74. package/dist/ai-conversations-panel/ai-conversations-panel.mjs +4 -632
  75. package/dist/ai-conversations-panel/ai-conversations-panel2.mjs +531 -0
  76. package/dist/ai-conversations-panel/index.mjs +1 -5
  77. package/dist/ai-copy-button/ai-copy-button.mjs +4 -116
  78. package/dist/ai-copy-button/ai-copy-button2.mjs +88 -0
  79. package/dist/ai-copy-button/index.mjs +1 -5
  80. package/dist/ai-dialog/ai-dialog.mjs +4 -304
  81. package/dist/ai-dialog/ai-dialog2.mjs +237 -0
  82. package/dist/ai-dialog/index.d.ts +1 -1
  83. package/dist/ai-dialog/index.mjs +1 -5
  84. package/dist/ai-disclaimer/ai-disclaimer.mjs +4 -70
  85. package/dist/ai-disclaimer/ai-disclaimer2.mjs +46 -0
  86. package/dist/ai-disclaimer/index.d.ts +1 -1
  87. package/dist/ai-disclaimer/index.mjs +1 -5
  88. package/dist/ai-dropdown-menu/ai-dropdown-menu-item-group.mjs +4 -80
  89. package/dist/ai-dropdown-menu/ai-dropdown-menu-item-group2.mjs +51 -0
  90. package/dist/ai-dropdown-menu/ai-dropdown-menu-item.d.ts +5 -1
  91. package/dist/ai-dropdown-menu/ai-dropdown-menu-item.mjs +4 -330
  92. package/dist/ai-dropdown-menu/ai-dropdown-menu-item2.mjs +280 -0
  93. package/dist/ai-dropdown-menu/ai-dropdown-menu-separator.mjs +4 -26
  94. package/dist/ai-dropdown-menu/ai-dropdown-menu-separator2.mjs +19 -0
  95. package/dist/ai-dropdown-menu/ai-dropdown-menu.d.ts +5 -0
  96. package/dist/ai-dropdown-menu/ai-dropdown-menu.mjs +4 -351
  97. package/dist/ai-dropdown-menu/ai-dropdown-menu2.mjs +268 -0
  98. package/dist/ai-dropdown-menu/index.d.ts +1 -0
  99. package/dist/ai-dropdown-menu/index.mjs +5 -10
  100. package/dist/ai-dropdown-menu/navigation-controller.d.ts +9 -1
  101. package/dist/ai-dropdown-menu/navigation-controller.mjs +214 -204
  102. package/dist/ai-dropdown-menu/selection-manager.mjs +202 -182
  103. package/dist/ai-edit-thread/ai-edit-thread.d.ts +1 -1
  104. package/dist/ai-edit-thread/ai-edit-thread.mjs +4 -137
  105. package/dist/ai-edit-thread/ai-edit-thread2.mjs +96 -0
  106. package/dist/ai-edit-thread/index.d.ts +1 -1
  107. package/dist/ai-edit-thread/index.mjs +1 -5
  108. package/dist/ai-empty-state/ai-empty-state.mjs +4 -38
  109. package/dist/ai-empty-state/ai-empty-state2.mjs +28 -0
  110. package/dist/ai-empty-state/index.d.ts +1 -1
  111. package/dist/ai-empty-state/index.mjs +1 -5
  112. package/dist/ai-error-message/ai-error-message.mjs +4 -80
  113. package/dist/ai-error-message/ai-error-message2.mjs +62 -0
  114. package/dist/ai-error-message/index.mjs +1 -5
  115. package/dist/ai-fab/ai-fab.mjs +4 -81
  116. package/dist/ai-fab/ai-fab2.mjs +54 -0
  117. package/dist/ai-fab/index.d.ts +1 -1
  118. package/dist/ai-fab/index.mjs +1 -5
  119. package/dist/ai-file-picker/ai-file-picker.d.ts +1 -0
  120. package/dist/ai-file-picker/ai-file-picker.mjs +4 -224
  121. package/dist/ai-file-picker/ai-file-picker2.mjs +172 -0
  122. package/dist/ai-file-picker/index.mjs +1 -4
  123. package/dist/ai-gradient-container/ai-gradient-container.mjs +4 -61
  124. package/dist/ai-gradient-container/ai-gradient-container2.mjs +38 -0
  125. package/dist/ai-gradient-container/index.d.ts +1 -1
  126. package/dist/ai-gradient-container/index.mjs +1 -5
  127. package/dist/ai-icon/ai-icon.d.ts +3 -0
  128. package/dist/ai-icon/ai-icon.mjs +4 -71
  129. package/dist/ai-icon/ai-icon2.mjs +41 -0
  130. package/dist/ai-icon/index.d.ts +1 -1
  131. package/dist/ai-icon/index.mjs +1 -5
  132. package/dist/ai-message-thread/ai-message-thread.d.ts +4 -3
  133. package/dist/ai-message-thread/ai-message-thread.mjs +4 -360
  134. package/dist/ai-message-thread/ai-message-thread2.mjs +279 -0
  135. package/dist/ai-message-thread/index.mjs +1 -5
  136. package/dist/ai-modal/ai-modal.mjs +4 -178
  137. package/dist/ai-modal/ai-modal2.mjs +141 -0
  138. package/dist/ai-modal/index.mjs +1 -4
  139. package/dist/ai-prompt/ai-prompt.d.ts +10 -6
  140. package/dist/ai-prompt/ai-prompt.mjs +4 -534
  141. package/dist/ai-prompt/ai-prompt2.mjs +438 -0
  142. package/dist/ai-prompt/index.mjs +1 -5
  143. package/dist/ai-reasoning/ai-reasoning.mjs +4 -44
  144. package/dist/ai-reasoning/ai-reasoning2.mjs +35 -0
  145. package/dist/ai-reasoning/index.d.ts +2 -2
  146. package/dist/ai-reasoning/index.mjs +4 -8
  147. package/dist/ai-reasoning/reasoning-content/index.d.ts +1 -1
  148. package/dist/ai-reasoning/reasoning-content/index.mjs +1 -5
  149. package/dist/ai-reasoning/reasoning-content/reasoning-content.mjs +4 -90
  150. package/dist/ai-reasoning/reasoning-content/reasoning-content2.mjs +68 -0
  151. package/dist/ai-reasoning-header/ai-reasoning-header.d.ts +7 -1
  152. package/dist/ai-reasoning-header/ai-reasoning-header.mjs +4 -68
  153. package/dist/ai-reasoning-header/ai-reasoning-header2.mjs +51 -0
  154. package/dist/ai-reasoning-header/index.d.ts +1 -1
  155. package/dist/ai-reasoning-header/index.mjs +1 -5
  156. package/dist/ai-response-message/ai-response-message.mjs +4 -25
  157. package/dist/ai-response-message/ai-response-message2.mjs +17 -0
  158. package/dist/ai-response-message/index.mjs +1 -5
  159. package/dist/ai-response-message-toolbar/ai-response-message-toolbar.d.ts +1 -1
  160. package/dist/ai-response-message-toolbar/ai-response-message-toolbar.mjs +4 -230
  161. package/dist/ai-response-message-toolbar/ai-response-message-toolbar2.mjs +171 -0
  162. package/dist/ai-response-message-toolbar/index.mjs +1 -5
  163. package/dist/ai-sidebar/ai-sidebar.d.ts +4 -4
  164. package/dist/ai-sidebar/ai-sidebar.mjs +4 -256
  165. package/dist/ai-sidebar/ai-sidebar2.mjs +211 -0
  166. package/dist/ai-sidebar/index.d.ts +2 -2
  167. package/dist/ai-sidebar/index.mjs +1 -5
  168. package/dist/ai-slash-command-menu/ai-slash-command-menu.d.ts +2 -1
  169. package/dist/ai-slash-command-menu/ai-slash-command-menu.mjs +4 -200
  170. package/dist/ai-slash-command-menu/ai-slash-command-menu2.mjs +160 -0
  171. package/dist/ai-slash-command-menu/index.mjs +1 -5
  172. package/dist/ai-spinner/ai-spinner.mjs +4 -41
  173. package/dist/ai-spinner/ai-spinner2.mjs +29 -0
  174. package/dist/ai-spinner/index.d.ts +1 -1
  175. package/dist/ai-spinner/index.mjs +1 -5
  176. package/dist/ai-steps/ai-steps.mjs +4 -163
  177. package/dist/ai-steps/ai-steps2.mjs +133 -0
  178. package/dist/ai-steps/index.d.ts +1 -1
  179. package/dist/ai-steps/index.mjs +1 -5
  180. package/dist/ai-suggestions/ai-suggestions.d.ts +2 -5
  181. package/dist/ai-suggestions/ai-suggestions.mjs +4 -164
  182. package/dist/ai-suggestions/ai-suggestions2.mjs +125 -0
  183. package/dist/ai-suggestions/index.d.ts +2 -1
  184. package/dist/ai-suggestions/index.mjs +1 -5
  185. package/dist/ai-thinking-indicator/ai-thinking-indicator.d.ts +2 -1
  186. package/dist/ai-thinking-indicator/ai-thinking-indicator.mjs +4 -160
  187. package/dist/ai-thinking-indicator/ai-thinking-indicator2.mjs +143 -0
  188. package/dist/ai-thinking-indicator/index.d.ts +1 -1
  189. package/dist/ai-thinking-indicator/index.mjs +1 -5
  190. package/dist/ai-thread-actions-menu/ai-thread-actions-menu.d.ts +2 -2
  191. package/dist/ai-thread-actions-menu/ai-thread-actions-menu.mjs +4 -152
  192. package/dist/ai-thread-actions-menu/ai-thread-actions-menu2.mjs +109 -0
  193. package/dist/ai-thread-actions-menu/index.d.ts +1 -1
  194. package/dist/ai-thread-actions-menu/index.mjs +1 -5
  195. package/dist/ai-threads-search/ai-threads-search.d.ts +3 -4
  196. package/dist/ai-threads-search/ai-threads-search.mjs +4 -602
  197. package/dist/ai-threads-search/ai-threads-search2.mjs +495 -0
  198. package/dist/ai-threads-search/index.d.ts +1 -1
  199. package/dist/ai-threads-search/index.mjs +1 -5
  200. package/dist/ai-tool-call/ai-tool-call.d.ts +21 -0
  201. package/dist/ai-tool-call/ai-tool-call.mjs +4 -0
  202. package/dist/ai-tool-call/ai-tool-call2.mjs +132 -0
  203. package/dist/{ai-chatbot → ai-tool-call}/create-tool-renderer.d.ts +1 -1
  204. package/dist/ai-tool-call/create-tool-renderer.mjs +10 -0
  205. package/dist/ai-tool-call/index.d.ts +6 -0
  206. package/dist/ai-tool-call/index.mjs +5 -0
  207. package/dist/{ai-chatbot → ai-tool-call}/tool-canvas.d.ts +1 -1
  208. package/dist/ai-tool-call/tool-canvas.mjs +135 -0
  209. package/dist/ai-tool-call/utils.d.ts +12 -0
  210. package/dist/ai-tool-call/utils.mjs +20 -0
  211. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.d.ts +1 -1
  212. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.mjs +4 -331
  213. package/dist/ai-tool-call-indicator/ai-tool-call-indicator2.mjs +225 -0
  214. package/dist/ai-tool-call-indicator/index.mjs +1 -5
  215. package/dist/ai-user-message/ai-user-message.mjs +4 -151
  216. package/dist/ai-user-message/ai-user-message2.mjs +105 -0
  217. package/dist/ai-user-message/index.mjs +1 -5
  218. package/dist/ai-user-message-toolbar/ai-user-message-toolbar.mjs +4 -160
  219. package/dist/ai-user-message-toolbar/ai-user-message-toolbar2.mjs +102 -0
  220. package/dist/ai-user-message-toolbar/index.mjs +1 -5
  221. package/dist/ai-voice-input/ai-voice-input.d.ts +1 -1
  222. package/dist/ai-voice-input/ai-voice-input.mjs +4 -113
  223. package/dist/ai-voice-input/ai-voice-input2.mjs +92 -0
  224. package/dist/ai-voice-input/index.d.ts +1 -1
  225. package/dist/ai-voice-input/index.mjs +1 -5
  226. package/dist/core/drag-controller.mjs +196 -221
  227. package/dist/core/index.d.ts +3 -2
  228. package/dist/core/index.mjs +7 -8
  229. package/dist/core/overlay/index.mjs +1 -4
  230. package/dist/core/overlay/overlay.d.ts +1 -1
  231. package/dist/core/overlay/overlay.mjs +4 -180
  232. package/dist/core/overlay/overlay2.mjs +146 -0
  233. package/dist/core/popover/index.mjs +1 -4
  234. package/dist/core/popover/popover.mjs +4 -98
  235. package/dist/core/popover/popover2.mjs +71 -0
  236. package/dist/core/resize-controller.mjs +132 -154
  237. package/dist/core/tooltip/index.mjs +1 -4
  238. package/dist/core/tooltip/tooltip.mjs +4 -279
  239. package/dist/core/tooltip/tooltip2.mjs +213 -0
  240. package/dist/index.d.ts +45 -53
  241. package/dist/index.mjs +100 -214
  242. package/dist/jsx.d.ts +895 -0
  243. package/dist/tools/ai-data-table/ai-data-table.d.ts +1 -2
  244. package/dist/tools/ai-data-table/ai-data-table.mjs +4 -257
  245. package/dist/tools/ai-data-table/ai-data-table2.mjs +185 -0
  246. package/dist/tools/ai-data-table/index.d.ts +0 -1
  247. package/dist/tools/ai-data-table/index.mjs +1 -6
  248. package/dist/tools/ai-paginator/ai-paginator.d.ts +14 -0
  249. package/dist/tools/ai-paginator/ai-paginator.mjs +4 -115
  250. package/dist/tools/ai-paginator/ai-paginator2.mjs +90 -0
  251. package/dist/tools/ai-paginator/index.mjs +1 -4
  252. package/dist/tools/ai-steps/ai-steps.d.ts +2 -3
  253. package/dist/tools/ai-steps/ai-steps.mjs +4 -49
  254. package/dist/tools/ai-steps/ai-steps2.mjs +30 -0
  255. package/dist/tools/ai-steps/index.d.ts +0 -1
  256. package/dist/tools/ai-steps/index.mjs +1 -6
  257. package/dist/tools/index.d.ts +3 -3
  258. package/dist/tools/index.mjs +7 -12
  259. package/dist/types/chat.d.ts +102 -0
  260. package/dist/types/feature.d.ts +1 -0
  261. package/dist/types/file.d.ts +36 -0
  262. package/dist/types/index.d.ts +6 -0
  263. package/dist/types/index.mjs +0 -0
  264. package/dist/types/thread.d.ts +14 -0
  265. package/dist/types/tool.d.ts +197 -0
  266. package/dist/utils/csv-utils.mjs +37 -57
  267. package/dist/utils/delete-thread-controller.d.ts +1 -1
  268. package/dist/utils/delete-thread-controller.mjs +48 -71
  269. package/dist/utils/dom.d.ts +14 -0
  270. package/dist/utils/dom.mjs +30 -0
  271. package/dist/utils/format.d.ts +9 -0
  272. package/dist/utils/format.mjs +27 -0
  273. package/dist/utils/index.d.ts +9 -6
  274. package/dist/utils/index.mjs +6 -16
  275. package/dist/utils/infinite-scroll-controller.mjs +88 -94
  276. package/dist/utils/keyboard-navigation-controller.mjs +62 -70
  277. package/dist/utils/markdown-stream-controller.mjs +48 -0
  278. package/dist/utils/markdown.d.ts +10 -1
  279. package/dist/utils/markdown.mjs +261 -40
  280. package/dist/utils/storage-utils.mjs +30 -24
  281. package/package.json +40 -104
  282. package/dist/ai-agent-info/ai-agent-info.scss.mjs +0 -4
  283. package/dist/ai-agent-selector/ai-agent-selector.scss.mjs +0 -4
  284. package/dist/ai-artifact/ai-artifact.scss.mjs +0 -4
  285. package/dist/ai-artifact-card/ai-artifact-card.scss.mjs +0 -283
  286. package/dist/ai-artifact-card-group/ai-artifact-card-group.scss.mjs +0 -173
  287. package/dist/ai-assistant-response/ai-assistant-response.scss.mjs +0 -4
  288. package/dist/ai-attachment/ai-attachment.d.ts +0 -39
  289. package/dist/ai-attachment/ai-attachment.mjs +0 -130
  290. package/dist/ai-attachment/ai-attachment.scss.mjs +0 -4
  291. package/dist/ai-attachment/index.d.ts +0 -1
  292. package/dist/ai-attachment/index.mjs +0 -5
  293. package/dist/ai-button/ai-button.d.ts +0 -21
  294. package/dist/ai-button/ai-button.mjs +0 -68
  295. package/dist/ai-button/ai-button.scss.mjs +0 -4
  296. package/dist/ai-button/index.d.ts +0 -1
  297. package/dist/ai-button/index.mjs +0 -5
  298. package/dist/ai-canvas/ai-canvas.scss.mjs +0 -4
  299. package/dist/ai-chain-of-thought/ai-chain-of-thought.scss.mjs +0 -4
  300. package/dist/ai-chain-of-thought/thought-base/thought-base.scss.mjs +0 -4
  301. package/dist/ai-chain-of-thought/thought-detail/thought-detail.scss.mjs +0 -4
  302. package/dist/ai-chain-of-thought/thought-image/thought-image.scss.mjs +0 -4
  303. package/dist/ai-chain-of-thought/thought-search-result/thought-search-result.scss.mjs +0 -4
  304. package/dist/ai-chat-header/ai-chat-header.scss.mjs +0 -4
  305. package/dist/ai-chat-interface/ai-chat-interface.scss.mjs +0 -4
  306. package/dist/ai-chatbot/ag-ui-adapter.d.ts +0 -24
  307. package/dist/ai-chatbot/ag-ui-adapter.mjs +0 -388
  308. package/dist/ai-chatbot/agent-adapter.d.ts +0 -310
  309. package/dist/ai-chatbot/agent-adapter.mjs +0 -221
  310. package/dist/ai-chatbot/agent-runner.d.ts +0 -41
  311. package/dist/ai-chatbot/agent-runner.mjs +0 -265
  312. package/dist/ai-chatbot/ai-chatbot-base.d.ts +0 -179
  313. package/dist/ai-chatbot/ai-chatbot-base.mjs +0 -684
  314. package/dist/ai-chatbot/ai-chatbot-tool-call.d.ts +0 -19
  315. package/dist/ai-chatbot/ai-chatbot-tool-call.mjs +0 -182
  316. package/dist/ai-chatbot/ai-chatbot-tool-call.scss.mjs +0 -4
  317. package/dist/ai-chatbot/ai-chatbot.d.ts +0 -196
  318. package/dist/ai-chatbot/ai-chatbot.mjs +0 -502
  319. package/dist/ai-chatbot/ai-chatbot.scss.mjs +0 -4
  320. package/dist/ai-chatbot/create-tool-renderer.mjs +0 -16
  321. package/dist/ai-chatbot/event-emitter.d.ts +0 -43
  322. package/dist/ai-chatbot/event-emitter.mjs +0 -81
  323. package/dist/ai-chatbot/file-upload-manager.d.ts +0 -27
  324. package/dist/ai-chatbot/file-upload-manager.mjs +0 -106
  325. package/dist/ai-chatbot/http-agent-with-credentials.d.ts +0 -8
  326. package/dist/ai-chatbot/http-agent-with-credentials.mjs +0 -14
  327. package/dist/ai-chatbot/index.d.ts +0 -18
  328. package/dist/ai-chatbot/index.mjs +0 -40
  329. package/dist/ai-chatbot/markdown-stream-controller.mjs +0 -50
  330. package/dist/ai-chatbot/message-state-controller.d.ts +0 -72
  331. package/dist/ai-chatbot/message-state-controller.mjs +0 -392
  332. package/dist/ai-chatbot/request-serialization.d.ts +0 -33
  333. package/dist/ai-chatbot/request-serialization.mjs +0 -31
  334. package/dist/ai-chatbot/tool-canvas.mjs +0 -128
  335. package/dist/ai-chatbot/types.d.ts +0 -582
  336. package/dist/ai-chatbot/utils.d.ts +0 -49
  337. package/dist/ai-chatbot/utils.mjs +0 -114
  338. package/dist/ai-chatbot-launcher/ai-chatbot-launcher.d.ts +0 -190
  339. package/dist/ai-chatbot-launcher/ai-chatbot-launcher.mjs +0 -986
  340. package/dist/ai-chatbot-launcher/ai-chatbot-launcher.scss.mjs +0 -4
  341. package/dist/ai-chatbot-launcher/index.d.ts +0 -1
  342. package/dist/ai-chatbot-launcher/index.mjs +0 -5
  343. package/dist/ai-client-message/ai-client-message.scss.mjs +0 -4
  344. package/dist/ai-confirmation-prompt/ai-confirmation-prompt.d.ts +0 -34
  345. package/dist/ai-confirmation-prompt/ai-confirmation-prompt.mjs +0 -134
  346. package/dist/ai-confirmation-prompt/ai-confirmation-prompt.scss.mjs +0 -4
  347. package/dist/ai-confirmation-prompt/index.d.ts +0 -1
  348. package/dist/ai-confirmation-prompt/index.mjs +0 -5
  349. package/dist/ai-context-chip/ai-context-chip.scss.mjs +0 -4
  350. package/dist/ai-context-items/ai-context-items.scss.mjs +0 -4
  351. package/dist/ai-conversations-panel/ai-conversations-panel.scss.mjs +0 -4
  352. package/dist/ai-copy-button/ai-copy-button.scss.mjs +0 -4
  353. package/dist/ai-dialog/ai-dialog.scss.mjs +0 -4
  354. package/dist/ai-disclaimer/ai-disclaimer.scss.mjs +0 -4
  355. package/dist/ai-dropdown-menu/ai-dropdown-menu-item-group.scss.mjs +0 -4
  356. package/dist/ai-dropdown-menu/ai-dropdown-menu-item.scss.mjs +0 -4
  357. package/dist/ai-dropdown-menu/ai-dropdown-menu-separator.scss.mjs +0 -4
  358. package/dist/ai-dropdown-menu/ai-dropdown-menu.scss.mjs +0 -4
  359. package/dist/ai-edit-thread/ai-edit-thread.scss.mjs +0 -4
  360. package/dist/ai-embedded-chat/ai-embedded-chat.d.ts +0 -64
  361. package/dist/ai-embedded-chat/ai-embedded-chat.mjs +0 -173
  362. package/dist/ai-embedded-chat/ai-embedded-chat.scss.mjs +0 -4
  363. package/dist/ai-embedded-chat/index.d.ts +0 -1
  364. package/dist/ai-embedded-chat/index.mjs +0 -5
  365. package/dist/ai-empty-state/ai-empty-state.scss.mjs +0 -4
  366. package/dist/ai-error-message/ai-error-message.scss.mjs +0 -4
  367. package/dist/ai-fab/ai-fab.scss.mjs +0 -4
  368. package/dist/ai-file-picker/ai-file-picker.scss.mjs +0 -4
  369. package/dist/ai-floating-chat/ai-floating-chat.d.ts +0 -53
  370. package/dist/ai-floating-chat/ai-floating-chat.mjs +0 -147
  371. package/dist/ai-floating-chat/ai-floating-chat.scss.mjs +0 -4
  372. package/dist/ai-floating-chat/index.d.ts +0 -1
  373. package/dist/ai-floating-chat/index.mjs +0 -5
  374. package/dist/ai-gradient-container/ai-gradient-container.scss.mjs +0 -4
  375. package/dist/ai-icon/ai-icon.scss.mjs +0 -4
  376. package/dist/ai-icon-button/ai-icon-button.d.ts +0 -19
  377. package/dist/ai-icon-button/ai-icon-button.mjs +0 -66
  378. package/dist/ai-icon-button/ai-icon-button.scss.mjs +0 -4
  379. package/dist/ai-icon-button/index.d.ts +0 -1
  380. package/dist/ai-icon-button/index.mjs +0 -5
  381. package/dist/ai-message-thread/ai-message-thread.scss.mjs +0 -4
  382. package/dist/ai-modal/ai-modal.scss.mjs +0 -4
  383. package/dist/ai-prompt/ai-prompt.scss.mjs +0 -4
  384. package/dist/ai-prompt/prompt-button/index.d.ts +0 -1
  385. package/dist/ai-prompt/prompt-button/index.mjs +0 -5
  386. package/dist/ai-prompt/prompt-button/prompt-button.d.ts +0 -16
  387. package/dist/ai-prompt/prompt-button/prompt-button.mjs +0 -40
  388. package/dist/ai-prompt/prompt-button/prompt-button.scss.mjs +0 -4
  389. package/dist/ai-reasoning/ai-reasoning.scss.mjs +0 -4
  390. package/dist/ai-reasoning/reasoning-content/reasoning-content.scss.mjs +0 -4
  391. package/dist/ai-reasoning-header/ai-reasoning-header.scss.mjs +0 -4
  392. package/dist/ai-response-message/ai-response-message.scss.mjs +0 -4
  393. package/dist/ai-response-message-toolbar/ai-response-message-toolbar.scss.mjs +0 -4
  394. package/dist/ai-sidebar/ai-sidebar.scss.mjs +0 -4
  395. package/dist/ai-sidebar-chat/ai-sidebar-chat.d.ts +0 -54
  396. package/dist/ai-sidebar-chat/ai-sidebar-chat.mjs +0 -163
  397. package/dist/ai-sidebar-chat/ai-sidebar-chat.scss.mjs +0 -4
  398. package/dist/ai-sidebar-chat/index.d.ts +0 -1
  399. package/dist/ai-sidebar-chat/index.mjs +0 -5
  400. package/dist/ai-slash-command-menu/ai-slash-command-menu.scss.mjs +0 -4
  401. package/dist/ai-spinner/ai-spinner.scss.mjs +0 -4
  402. package/dist/ai-steps/ai-steps.scss.mjs +0 -4
  403. package/dist/ai-suggestions/ai-suggestions.scss.mjs +0 -500
  404. package/dist/ai-thinking-indicator/ai-thinking-indicator.scss.mjs +0 -143
  405. package/dist/ai-thread-actions-menu/ai-thread-actions-menu.scss.mjs +0 -4
  406. package/dist/ai-threads/ai-threads.d.ts +0 -82
  407. package/dist/ai-threads/ai-threads.mjs +0 -343
  408. package/dist/ai-threads/ai-threads.scss.mjs +0 -4
  409. package/dist/ai-threads/index.d.ts +0 -1
  410. package/dist/ai-threads/index.mjs +0 -5
  411. package/dist/ai-threads-search/ai-threads-search.scss.mjs +0 -4
  412. package/dist/ai-tool-call-indicator/ai-tool-call-indicator.scss.mjs +0 -4
  413. package/dist/ai-user-message/ai-user-message.scss.mjs +0 -4
  414. package/dist/ai-user-message-toolbar/ai-user-message-toolbar.scss.mjs +0 -4
  415. package/dist/ai-voice-input/ai-voice-input.scss.mjs +0 -4
  416. package/dist/core/canvas-controller.d.ts +0 -81
  417. package/dist/core/canvas-controller.mjs +0 -221
  418. package/dist/core/chatbot-core-controller.d.ts +0 -57
  419. package/dist/core/chatbot-core-controller.mjs +0 -545
  420. package/dist/core/overlay/overlay.scss.mjs +0 -4
  421. package/dist/core/popover/popover.scss.mjs +0 -4
  422. package/dist/core/tooltip/tooltip.scss.mjs +0 -4
  423. package/dist/tools/ai-data-table/ai-data-table-definition.d.ts +0 -2
  424. package/dist/tools/ai-data-table/ai-data-table-definition.mjs +0 -43
  425. package/dist/tools/ai-data-table/ai-data-table.scss.mjs +0 -4
  426. package/dist/tools/ai-mcp-app/ai-mcp-app.d.ts +0 -70
  427. package/dist/tools/ai-mcp-app/ai-mcp-app.mjs +0 -589
  428. package/dist/tools/ai-mcp-app/ai-mcp-app.scss.mjs +0 -4
  429. package/dist/tools/ai-mcp-app/index.d.ts +0 -3
  430. package/dist/tools/ai-mcp-app/index.mjs +0 -6
  431. package/dist/tools/ai-mcp-app/mcp-app-bridge-controller.d.ts +0 -60
  432. package/dist/tools/ai-mcp-app/mcp-app-bridge-controller.mjs +0 -147
  433. package/dist/tools/ai-mcp-app/mcp-app-bridge-types.d.ts +0 -124
  434. package/dist/tools/ai-mcp-app/mcp-app-bridge.d.ts +0 -41
  435. package/dist/tools/ai-mcp-app/mcp-app-bridge.mjs +0 -293
  436. package/dist/tools/ai-mcp-app/mcp-app-context.d.ts +0 -46
  437. package/dist/tools/ai-mcp-app/mcp-app-context.mjs +0 -5
  438. package/dist/tools/ai-paginator/ai-paginator.scss.mjs +0 -4
  439. package/dist/tools/ai-steps/ai-steps-definition.d.ts +0 -2
  440. package/dist/tools/ai-steps/ai-steps-definition.mjs +0 -51
  441. package/dist/tools/ai-steps/ai-steps.scss.mjs +0 -4
  442. package/dist/utils/inert-outside.d.ts +0 -7
  443. package/dist/utils/inert-outside.mjs +0 -28
  444. package/dist/utils.d.ts +0 -32
  445. package/dist/utils.mjs +0 -57
  446. /package/dist/{ai-chatbot → utils}/markdown-stream-controller.d.ts +0 -0
@@ -1,502 +0,0 @@
1
- import { unsafeCSS, html } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
3
- import { createRef, ref } from "lit/directives/ref.js";
4
- import { when } from "lit/directives/when.js";
5
- import { AiChatbotBase } from "./ai-chatbot-base.mjs";
6
- import { CanvasController } from "../core/canvas-controller.mjs";
7
- import { forwardCancelableEvent } from "../utils.mjs";
8
- import "../ai-attachment/ai-attachment.mjs";
9
- import "../ai-canvas/ai-canvas.mjs";
10
- import "../ai-chat-header/ai-chat-header.mjs";
11
- import "../ai-chat-interface/ai-chat-interface.mjs";
12
- import "../ai-context-chip/ai-context-chip.mjs";
13
- import "../ai-conversations-panel/ai-conversations-panel.mjs";
14
- import "../ai-file-picker/ai-file-picker.mjs";
15
- import "../ai-message-thread/ai-message-thread.mjs";
16
- import "../ai-modal/ai-modal.mjs";
17
- import "../ai-prompt/ai-prompt.mjs";
18
- import "../ai-spinner/ai-spinner.mjs";
19
- import "../ai-suggestions/ai-suggestions.mjs";
20
- import "../ai-voice-input/ai-voice-input.mjs";
21
- import styles from "./ai-chatbot.scss.mjs";
22
- var __defProp = Object.defineProperty;
23
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
24
- var __typeError = (msg) => {
25
- throw TypeError(msg);
26
- };
27
- var __decorateClass = (decorators, target, key, kind) => {
28
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
29
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
30
- if (decorator = decorators[i])
31
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
32
- if (kind && result) __defProp(target, key, result);
33
- return result;
34
- };
35
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
36
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
37
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
38
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
39
- var _canvasModalRef, _canvasRef, _canvas, _chatInterfaceRef, _headerRef, _conversationsPanelRef, _conversationsDialogRef, _boundEscapeHandler, _AiChatbotComponent_instances, handleHeaderExpand_fn, handleHeaderMinimize_fn, handleHeaderClear_fn, handleHeaderInfo_fn, syncCanvasModal_fn, handleCanvasModalClose_fn, canvasModal_get, handleCanvasCloseClick_fn, handleConversationsDialogClose_fn, handleEscapeKey_fn, handleBackdropClick_fn, handleConversationsToggle_fn, handleThreadSelect_fn, handleThreadRetry_fn, handleNewChat_fn, handlePanelClose_fn, _handleThreadSearch, _handleThreadLoadMore, _handleThreadRename, _handleThreadDelete, promptSlot_get, messageThread_get;
40
- const AiChatbotComponentTagName = "forge-ai-chatbot";
41
- let AiChatbotComponent = class extends AiChatbotBase {
42
- constructor() {
43
- super(...arguments);
44
- __privateAdd(this, _AiChatbotComponent_instances);
45
- this.showExpandButton = false;
46
- this.showMinimizeButton = false;
47
- this.expanded = false;
48
- this.minimizeIcon = "default";
49
- this.showConversationsButton = false;
50
- this.threads = [];
51
- this.conversationsOpen = false;
52
- this.showThreadRename = false;
53
- this.showThreadDelete = false;
54
- this.selectedThreadId = null;
55
- this.threadsLoading = false;
56
- __privateAdd(this, _canvasModalRef, createRef());
57
- __privateAdd(this, _canvasRef, createRef());
58
- __privateAdd(this, _canvas, new CanvasController(this, {
59
- openEvent: "forge-ai-chatbot-canvas-open",
60
- closeEvent: "forge-ai-chatbot-canvas-close",
61
- dispatchHostEvent: (config) => this._dispatchHostEvent(config),
62
- getToolCalls: () => this._toolCalls,
63
- getTools: () => this._tools,
64
- // A modal opened while the chat is hidden (closed floating chat, collapsed sidebar) is invisible but still makes the page inert.
65
- canOpen: () => this.checkVisibility() && this.getBoundingClientRect().width > 0,
66
- onRefocus: () => __privateGet(this, _canvasRef).value?.focus()
67
- }));
68
- __privateAdd(this, _chatInterfaceRef, createRef());
69
- this._messageThreadRef = createRef();
70
- this._promptRef = createRef();
71
- __privateAdd(this, _headerRef, createRef());
72
- __privateAdd(this, _conversationsPanelRef, createRef());
73
- __privateAdd(this, _conversationsDialogRef, createRef());
74
- __privateAdd(this, _boundEscapeHandler, __privateMethod(this, _AiChatbotComponent_instances, handleEscapeKey_fn).bind(this));
75
- __privateAdd(this, _handleThreadSearch, (e) => {
76
- forwardCancelableEvent(this, e, "forge-ai-chatbot-thread-search");
77
- });
78
- __privateAdd(this, _handleThreadLoadMore, (e) => {
79
- const event = new CustomEvent("forge-ai-chatbot-thread-load-more", {
80
- detail: e.detail,
81
- bubbles: true,
82
- composed: true
83
- });
84
- this.dispatchEvent(event);
85
- });
86
- __privateAdd(this, _handleThreadRename, (e) => {
87
- forwardCancelableEvent(this, e, "forge-ai-chatbot-thread-rename");
88
- });
89
- __privateAdd(this, _handleThreadDelete, (e) => {
90
- forwardCancelableEvent(this, e, "forge-ai-chatbot-thread-delete");
91
- });
92
- }
93
- _handleInfo() {
94
- const header = __privateGet(this, _headerRef).value;
95
- if (header?.showAgentInfo) {
96
- header.showAgentInfo();
97
- }
98
- super._handleInfo();
99
- }
100
- async sendMessage(content, files) {
101
- this._promptRef.value?.closeSlashMenu();
102
- await super.sendMessage(content, files);
103
- }
104
- focus() {
105
- this._promptRef.value?.focus();
106
- }
107
- willUpdate(changedProperties) {
108
- super.willUpdate(changedProperties);
109
- __privateGet(this, _canvas).syncToolCall();
110
- }
111
- // No `canvas.open: 'auto'` here: a modal popping over the chat mid-conversation is too disruptive, so only the launcher auto-opens.
112
- updated(changedProperties) {
113
- super.updated(changedProperties);
114
- __privateMethod(this, _AiChatbotComponent_instances, syncCanvasModal_fn).call(this);
115
- }
116
- get canvasOpen() {
117
- return __privateGet(this, _canvas).isOpen;
118
- }
119
- /**
120
- * Opens the artifact canvas in a modal over the chatbot, or swaps its content if already open.
121
- * Returns false when the open event is prevented.
122
- */
123
- openCanvas(options = {}) {
124
- return __privateGet(this, _canvas).open(options);
125
- }
126
- /**
127
- * Closes the artifact canvas. Returns false if it was not open or the close event was prevented.
128
- */
129
- closeCanvas() {
130
- return __privateGet(this, _canvas).close();
131
- }
132
- clearMessages() {
133
- if (super.clearMessages()) {
134
- __privateGet(this, _canvas).reset();
135
- return true;
136
- }
137
- return false;
138
- }
139
- setMessages(messages) {
140
- __privateGet(this, _canvas).reset();
141
- super.setMessages(messages);
142
- }
143
- showConversations() {
144
- const dialog = __privateGet(this, _conversationsDialogRef).value;
145
- if (dialog && !dialog.open) {
146
- dialog.show();
147
- this.conversationsOpen = true;
148
- window.addEventListener("keydown", __privateGet(this, _boundEscapeHandler), { capture: true });
149
- this._dispatchHostEvent({ type: "forge-ai-chatbot-conversations-open" });
150
- }
151
- }
152
- hideConversations() {
153
- const dialog = __privateGet(this, _conversationsDialogRef).value;
154
- if (dialog && dialog.open) {
155
- window.removeEventListener("keydown", __privateGet(this, _boundEscapeHandler), { capture: true });
156
- dialog.close();
157
- setTimeout(() => {
158
- __privateGet(this, _conversationsPanelRef).value?.resetToMainView();
159
- }, 150);
160
- }
161
- }
162
- /**
163
- * Starts a new chat conversation by clearing messages and resetting conversation state.
164
- *
165
- * This method:
166
- * - Clears all messages via the controller
167
- * - Resets the selected thread ID
168
- *
169
- * Does not fire events - meant for programmatic use.
170
- * For user-initiated actions, the event handler fires the event before calling this.
171
- */
172
- startNewChat() {
173
- super.startNewChat();
174
- this.selectedThreadId = null;
175
- __privateGet(this, _canvas).reset();
176
- }
177
- toggleConversations() {
178
- if (this.conversationsOpen) {
179
- this.hideConversations();
180
- } else {
181
- this.showConversations();
182
- }
183
- }
184
- render() {
185
- return html`
186
- <div
187
- class="chatbot-container"
188
- @forge-ai-canvas-open-request=${__privateGet(this, _canvas).handleOpenRequest}
189
- @forge-ai-canvas-close-request=${__privateGet(this, _canvas).handleCloseRequest}>
190
- <forge-ai-chat-interface
191
- ${ref(__privateGet(this, _chatInterfaceRef))}
192
- role="region"
193
- aria-label="AI chatbot"
194
- aria-live="polite"
195
- aria-busy=${this._isStreaming}>
196
- <forge-ai-chat-header
197
- ${ref(__privateGet(this, _headerRef))}
198
- slot="header"
199
- ?show-expand-button=${this.showExpandButton}
200
- ?show-minimize-button=${this.showMinimizeButton}
201
- ?show-conversations-button=${this.showConversationsButton}
202
- ?has-conversations-error=${!!this.threadsError}
203
- ?expanded=${this.expanded}
204
- ?disable-agent-selector=${this._isStreaming}
205
- export-option=${this.exportOption === "off" ? "off" : this._hasMessages ? "enabled" : "off"}
206
- clear-option=${this.clearOption === "off" ? "off" : this._hasMessages ? "enabled" : "off"}
207
- .minimizeIcon=${this.minimizeIcon}
208
- .agentInfo=${this.agentInfo}
209
- .headingLevel=${this.headingLevel}
210
- .titleText=${this.titleText}
211
- .agents=${this.agents}
212
- .selectedAgentId=${this.selectedAgentId}
213
- @forge-ai-chat-header-expand=${__privateMethod(this, _AiChatbotComponent_instances, handleHeaderExpand_fn)}
214
- @forge-ai-chat-header-minimize=${__privateMethod(this, _AiChatbotComponent_instances, handleHeaderMinimize_fn)}
215
- @forge-ai-chat-header-clear=${__privateMethod(this, _AiChatbotComponent_instances, handleHeaderClear_fn)}
216
- @forge-ai-chat-header-export=${this._handleExport}
217
- @forge-ai-chat-header-info=${__privateMethod(this, _AiChatbotComponent_instances, handleHeaderInfo_fn)}
218
- @forge-ai-chat-header-agent-change=${this._handleAgentChange}
219
- @forge-ai-chat-header-conversations-toggle=${__privateMethod(this, _AiChatbotComponent_instances, handleConversationsToggle_fn)}>
220
- <slot name="icon" slot="icon">
221
- <forge-ai-icon></forge-ai-icon>
222
- </slot>
223
- <slot name="header-actions" slot="header-actions"></slot>
224
- </forge-ai-chat-header>
225
- ${__privateGet(this, _AiChatbotComponent_instances, messageThread_get)} ${__privateGet(this, _AiChatbotComponent_instances, promptSlot_get)}
226
- ${when(
227
- this.disclaimerText,
228
- () => html`<div class="disclaimer" slot="disclaimer">${this.disclaimerText}</div>`
229
- )}
230
- </forge-ai-chat-interface>
231
- ${when(
232
- this.showConversationsButton,
233
- () => html`
234
- ${when(
235
- this.conversationsOpen,
236
- () => html` <div class="conversations-backdrop" @click=${__privateMethod(this, _AiChatbotComponent_instances, handleBackdropClick_fn)}></div> `
237
- )}
238
- <dialog
239
- ${ref(__privateGet(this, _conversationsDialogRef))}
240
- class="conversations-dialog forge-dialog forge-dialog--modal forge-dialog--left-sheet"
241
- @close=${__privateMethod(this, _AiChatbotComponent_instances, handleConversationsDialogClose_fn)}>
242
- <forge-ai-conversations-panel
243
- ${ref(__privateGet(this, _conversationsPanelRef))}
244
- .threads=${this.threads}
245
- .selectedThreadId=${this.selectedThreadId}
246
- .errorMessage=${this.threadsError}
247
- ?loading=${this.threadsLoading}
248
- ?show-back-button=${true}
249
- ?show-thread-rename=${this.showThreadRename}
250
- ?show-thread-delete=${this.showThreadDelete}
251
- @forge-ai-conversations-panel-select=${__privateMethod(this, _AiChatbotComponent_instances, handleThreadSelect_fn)}
252
- @forge-ai-conversations-panel-new-chat=${__privateMethod(this, _AiChatbotComponent_instances, handleNewChat_fn)}
253
- @forge-ai-conversations-panel-close=${__privateMethod(this, _AiChatbotComponent_instances, handlePanelClose_fn)}
254
- @forge-ai-conversations-panel-search=${__privateGet(this, _handleThreadSearch)}
255
- @forge-ai-conversations-panel-load-more=${__privateGet(this, _handleThreadLoadMore)}
256
- @forge-ai-conversations-panel-rename=${__privateGet(this, _handleThreadRename)}
257
- @forge-ai-conversations-panel-retry=${__privateMethod(this, _AiChatbotComponent_instances, handleThreadRetry_fn)}
258
- @forge-ai-conversations-panel-delete=${__privateGet(this, _handleThreadDelete)}>
259
- </forge-ai-conversations-panel>
260
- </dialog>
261
- `
262
- )}
263
- ${__privateGet(this, _AiChatbotComponent_instances, canvasModal_get)}
264
- </div>
265
- `;
266
- }
267
- };
268
- _canvasModalRef = /* @__PURE__ */ new WeakMap();
269
- _canvasRef = /* @__PURE__ */ new WeakMap();
270
- _canvas = /* @__PURE__ */ new WeakMap();
271
- _chatInterfaceRef = /* @__PURE__ */ new WeakMap();
272
- _headerRef = /* @__PURE__ */ new WeakMap();
273
- _conversationsPanelRef = /* @__PURE__ */ new WeakMap();
274
- _conversationsDialogRef = /* @__PURE__ */ new WeakMap();
275
- _boundEscapeHandler = /* @__PURE__ */ new WeakMap();
276
- _AiChatbotComponent_instances = /* @__PURE__ */ new WeakSet();
277
- handleHeaderExpand_fn = function() {
278
- this._dispatchHostEvent({ type: "forge-ai-chatbot-expand" });
279
- };
280
- handleHeaderMinimize_fn = function() {
281
- this._dispatchHostEvent({ type: "forge-ai-chatbot-minimize" });
282
- };
283
- handleHeaderClear_fn = function() {
284
- this.clearMessages();
285
- };
286
- handleHeaderInfo_fn = function() {
287
- this._handleInfo();
288
- };
289
- syncCanvasModal_fn = function() {
290
- const modal = __privateGet(this, _canvasModalRef).value;
291
- if (modal && modal.open !== __privateGet(this, _canvas).isOpen) {
292
- modal.open = __privateGet(this, _canvas).isOpen;
293
- }
294
- };
295
- handleCanvasModalClose_fn = function(evt) {
296
- evt.stopPropagation();
297
- if (evt.detail.reason === "programmatic" || !__privateGet(this, _canvas).isOpen) {
298
- return;
299
- }
300
- if (!__privateGet(this, _canvas).close()) {
301
- __privateMethod(this, _AiChatbotComponent_instances, syncCanvasModal_fn).call(this);
302
- }
303
- };
304
- canvasModal_get = function() {
305
- const title = __privateGet(this, _canvas).content?.title ?? this.canvasTitle ?? "";
306
- return html`
307
- <forge-ai-modal
308
- ${ref(__privateGet(this, _canvasModalRef))}
309
- class="canvas-modal"
310
- label=${title || "Canvas"}
311
- @forge-ai-modal-close=${__privateMethod(this, _AiChatbotComponent_instances, handleCanvasModalClose_fn)}>
312
- <forge-ai-canvas
313
- ${ref(__privateGet(this, _canvasRef))}
314
- class="canvas"
315
- .titleText=${title}
316
- .headingLevel=${this.headingLevel}
317
- @forge-ai-canvas-close=${__privateMethod(this, _AiChatbotComponent_instances, handleCanvasCloseClick_fn)}>
318
- <slot name="canvas-actions" slot="actions"></slot>
319
- ${__privateGet(this, _canvas).content?.node ?? html`<slot name="canvas"></slot>`}
320
- </forge-ai-canvas>
321
- </forge-ai-modal>
322
- `;
323
- };
324
- handleCanvasCloseClick_fn = function() {
325
- __privateGet(this, _canvas).close();
326
- };
327
- handleConversationsDialogClose_fn = function() {
328
- window.removeEventListener("keydown", __privateGet(this, _boundEscapeHandler), { capture: true });
329
- this.conversationsOpen = false;
330
- this._dispatchHostEvent({ type: "forge-ai-chatbot-conversations-close" });
331
- };
332
- handleEscapeKey_fn = function(event) {
333
- if (event.key === "Escape" && this.conversationsOpen) {
334
- const path = event.composedPath();
335
- const hasEscapeHandler = path.some((el) => el instanceof HTMLElement && el.hasAttribute("data-handles-escape"));
336
- if (hasEscapeHandler) {
337
- return;
338
- }
339
- event.stopPropagation();
340
- event.preventDefault();
341
- this.hideConversations();
342
- }
343
- };
344
- handleBackdropClick_fn = function() {
345
- this.hideConversations();
346
- };
347
- handleConversationsToggle_fn = function() {
348
- this.toggleConversations();
349
- };
350
- handleThreadSelect_fn = function(evt) {
351
- const { id, title } = evt.detail;
352
- this.hideConversations();
353
- const event = this._dispatchHostEvent({
354
- type: "forge-ai-chatbot-thread-select",
355
- detail: { id, title },
356
- cancelable: true
357
- });
358
- if (event.defaultPrevented) {
359
- return;
360
- }
361
- this.selectedThreadId = id;
362
- };
363
- handleThreadRetry_fn = function() {
364
- this._dispatchHostEvent({ type: "forge-ai-chatbot-thread-retry" });
365
- };
366
- handleNewChat_fn = function(event) {
367
- if (event.defaultPrevented) {
368
- return;
369
- }
370
- const hostEvent = this._dispatchHostEvent({ type: "forge-ai-chatbot-new-chat", cancelable: true });
371
- if (!hostEvent.defaultPrevented) {
372
- this.startNewChat();
373
- }
374
- this.hideConversations();
375
- };
376
- handlePanelClose_fn = function() {
377
- this.hideConversations();
378
- };
379
- _handleThreadSearch = /* @__PURE__ */ new WeakMap();
380
- _handleThreadLoadMore = /* @__PURE__ */ new WeakMap();
381
- _handleThreadRename = /* @__PURE__ */ new WeakMap();
382
- _handleThreadDelete = /* @__PURE__ */ new WeakMap();
383
- promptSlot_get = function() {
384
- const isUploading = this._isUploading;
385
- return html`
386
- <forge-ai-prompt
387
- ${ref(this._promptRef)}
388
- slot="prompt"
389
- .placeholder=${this.placeholder}
390
- .running=${this._isStreaming || isUploading}
391
- .slashCommands=${this._slashCommands}
392
- .contextItems=${this._allContextItems}
393
- ?disabled=${isUploading}
394
- ?debug-mode=${this.debugMode}
395
- @forge-ai-prompt-send=${this._handleSend}
396
- @forge-ai-prompt-stop=${this._handleStop}
397
- @forge-ai-prompt-cancel=${this._handleCancel}
398
- @forge-ai-prompt-debug-toggle=${this._handleDebugToggle}
399
- @forge-ai-prompt-command=${this._handleSlashCommand}
400
- @forge-ai-prompt-context-remove=${this._handlePromptContextRemove}>
401
- ${when(
402
- this.fileUpload === "on",
403
- () => html`
404
- <forge-ai-file-picker
405
- slot="actions-start"
406
- variant="icon-button"
407
- multiple
408
- ?disabled=${isUploading}
409
- .maxSize=${this.maxFileSize}
410
- .accept=${this.acceptedFileTypes}
411
- .selectedFiles=${this._coreController?.pendingAttachments.map((a) => a.filename) ?? []}
412
- @forge-ai-file-picker-change=${this._handleFileSelect}
413
- @forge-ai-file-picker-error=${this._handleFileError}>
414
- </forge-ai-file-picker>
415
- `
416
- )}
417
- ${when(
418
- this.voiceInput === "on",
419
- () => html`
420
- <forge-ai-voice-input slot="actions-end" @forge-ai-voice-input-result=${this._handleVoiceInputResult}>
421
- </forge-ai-voice-input>
422
- `
423
- )}
424
- </forge-ai-prompt>
425
- `;
426
- };
427
- messageThread_get = function() {
428
- return html`
429
- <forge-ai-message-thread
430
- ${ref(this._messageThreadRef)}
431
- .messageItems=${this._messageItems}
432
- .tools=${this._tools}
433
- ?enable-reactions=${this.enableReactions}
434
- ?show-thinking=${this._isStreaming}
435
- ?debug-mode=${this.debugMode}
436
- @forge-ai-message-thread-copy=${this._handleCopy}
437
- @forge-ai-message-thread-resend=${this._handleResend}
438
- @forge-ai-message-thread-thumbs-up=${this._handleThumbsUp}
439
- @forge-ai-message-thread-thumbs-down=${this._handleThumbsDown}
440
- @forge-ai-message-thread-user-copy=${this._handleUserCopy}
441
- @forge-ai-message-thread-user-resend=${this._handleUserResend}
442
- @forge-ai-message-thread-user-edit=${this._handleUserEdit}>
443
- <slot name="empty-state-icon" slot="empty-state-icon"></slot>
444
- <slot name="empty-state-heading" slot="empty-state-heading"></slot>
445
- <slot name="empty-state-message" slot="empty-state-message"></slot>
446
- <div class="suggestions-container" slot="empty-state-actions">
447
- <forge-ai-suggestions
448
- variant="block"
449
- .suggestions=${this.suggestions ?? []}
450
- @forge-ai-suggestions-select=${this._handleSuggestionSelect}>
451
- </forge-ai-suggestions>
452
- </div>
453
- </forge-ai-message-thread>
454
- `;
455
- };
456
- AiChatbotComponent.styles = unsafeCSS(styles);
457
- __decorateClass([
458
- property({ type: Boolean, attribute: "show-expand-button" })
459
- ], AiChatbotComponent.prototype, "showExpandButton", 2);
460
- __decorateClass([
461
- property({ type: Boolean, attribute: "show-minimize-button" })
462
- ], AiChatbotComponent.prototype, "showMinimizeButton", 2);
463
- __decorateClass([
464
- property({ type: Boolean })
465
- ], AiChatbotComponent.prototype, "expanded", 2);
466
- __decorateClass([
467
- property({ attribute: "minimize-icon" })
468
- ], AiChatbotComponent.prototype, "minimizeIcon", 2);
469
- __decorateClass([
470
- property({ type: Boolean, attribute: "show-conversations-button" })
471
- ], AiChatbotComponent.prototype, "showConversationsButton", 2);
472
- __decorateClass([
473
- property({ type: Array, attribute: false })
474
- ], AiChatbotComponent.prototype, "threads", 2);
475
- __decorateClass([
476
- property({ type: Boolean, attribute: "conversations-open", reflect: true })
477
- ], AiChatbotComponent.prototype, "conversationsOpen", 2);
478
- __decorateClass([
479
- property({ type: Boolean, attribute: "show-thread-rename" })
480
- ], AiChatbotComponent.prototype, "showThreadRename", 2);
481
- __decorateClass([
482
- property({ type: Boolean, attribute: "show-thread-delete" })
483
- ], AiChatbotComponent.prototype, "showThreadDelete", 2);
484
- __decorateClass([
485
- property({ type: String, attribute: "selected-thread-id" })
486
- ], AiChatbotComponent.prototype, "selectedThreadId", 2);
487
- __decorateClass([
488
- property({ type: Boolean, attribute: "threads-loading" })
489
- ], AiChatbotComponent.prototype, "threadsLoading", 2);
490
- __decorateClass([
491
- property({ type: String, attribute: "threads-error" })
492
- ], AiChatbotComponent.prototype, "threadsError", 2);
493
- __decorateClass([
494
- property({ attribute: "canvas-title" })
495
- ], AiChatbotComponent.prototype, "canvasTitle", 2);
496
- AiChatbotComponent = __decorateClass([
497
- customElement(AiChatbotComponentTagName)
498
- ], AiChatbotComponent);
499
- export {
500
- AiChatbotComponent,
501
- AiChatbotComponentTagName
502
- };
@@ -1,4 +0,0 @@
1
- const styles = '/* prettier-ignore */\n/**\n * @license\n * Copyright Tyler Technologies, Inc.\n * License: Apache-2.0\n */\n@keyframes forge-dialog-zoom-in {\n from {\n opacity: var(--_dialog-zoom-opacity);\n scale: var(--_dialog-zoom-scale);\n }\n to {\n opacity: 1;\n scale: 1;\n }\n}\n@keyframes forge-dialog-zoom-out {\n from {\n opacity: 1;\n scale: 1;\n }\n to {\n opacity: var(--_dialog-zoom-opacity);\n scale: var(--_dialog-zoom-scale);\n }\n}\n@keyframes forge-dialog-fade-in {\n from {\n opacity: var(--_dialog-fade-opacity);\n }\n to {\n opacity: 1;\n }\n}\n@keyframes forge-dialog-fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: var(--_dialog-fade-opacity);\n }\n}\n@keyframes forge-dialog-slide-in {\n from {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n to {\n opacity: 1;\n translate: 0 0;\n }\n}\n@keyframes forge-dialog-slide-out {\n from {\n opacity: 1;\n translate: 0 0;\n }\n to {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog {\n --_dialog-background:var(--forge-dialog-background, var(--forge-theme-surface-bright, #ffffff));\n --_dialog-shape:var(--forge-dialog-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));\n --_dialog-elevation:var(--forge-dialog-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12));\n --_dialog-spacing:var(--forge-dialog-spacing, auto);\n --_dialog-block-start-spacing:var(--forge-dialog-block-start-spacing, var(--_dialog-spacing));\n --_dialog-block-end-spacing:var(--forge-dialog-block-end-spacing, var(--_dialog-spacing));\n --_dialog-inline-start-spacing:var(--forge-dialog-inline-start-spacing, var(--_dialog-spacing));\n --_dialog-inline-end-spacing:var(--forge-dialog-inline-end-spacing, var(--_dialog-spacing));\n --_dialog-padding:var(--forge-dialog-padding, 0);\n --_dialog-width:var(--forge-dialog-width, fit-content);\n --_dialog-height:var(--forge-dialog-height, fit-content);\n --_dialog-min-width:var(--forge-dialog-min-width, 0);\n --_dialog-max-width:var(--forge-dialog-max-width, calc(100% - var(--forge-spacing-xxlarge, 48px)));\n --_dialog-min-height:var(--forge-dialog-min-height, 0);\n --_dialog-max-height:var(--forge-dialog-max-height, calc(100% - var(--forge-spacing-xxlarge, 48px)));\n --_dialog-z-index:var(--forge-dialog-z-index, var(--forge-z-index-dialog, 8));\n --_dialog-move-handle-color:var(--forge-dialog-move-handle-color, currentColor);\n --_dialog-move-handle-size:var(--forge-dialog-move-handle-size, 24px);\n --_dialog-move-handle-hover-cursor:var(--forge-dialog-move-handle-hover-cursor, grab);\n --_dialog-move-handle-active-cursor:var(--forge-dialog-move-handle-active-cursor, grabbing);\n --_dialog-move-handle-spacing:var(--forge-dialog-move-handle-spacing, calc(var(--forge-spacing-xxsmall, 4px) * -1) 0 0);\n --_dialog-move-transition-duration:var(--forge-dialog-move-transition-duration, var(--forge-animation-duration-short4, 200ms));\n --_dialog-move-transition-easing:var(--forge-dialog-move-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_dialog-moving-opacity:var(--forge-dialog-moving-opacity, 0.54);\n --_dialog-enter-animation-duration:var(--forge-dialog-enter-animation-duration, var(--forge-animation-duration-medium1, 250ms));\n --_dialog-enter-animation-easing:var(--forge-dialog-enter-animation-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_dialog-exit-animation-duration:var(--forge-dialog-exit-animation-duration, var(--forge-animation-duration-short2, 100ms));\n --_dialog-exit-animation-easing:var(--forge-dialog-exit-animation-easing, var(--forge-animation-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15)));\n --_dialog-zoom-opacity:var(--forge-dialog-zoom-opacity, 0);\n --_dialog-zoom-scale:var(--forge-dialog-zoom-scale, 0.8);\n --_dialog-fade-opacity:var(--forge-dialog-fade-opacity, 0);\n --_dialog-slide-opacity:var(--forge-dialog-slide-opacity, 0);\n --_dialog-slide-translate:var(--forge-dialog-slide-translate, 0 -30%);\n --_dialog-backdrop-opacity:var(--forge-dialog-backdrop-opacity, var(--forge-backdrop-opacity, 0.54));\n --_dialog-nonmodal-elevation:var(--forge-dialog-nonmodal-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));\n --_dialog-fullscreen-enter-animation-duration:var(--forge-dialog-fullscreen-enter-animation-duration, var(--forge-animation-duration-medium1, 250ms));\n --_dialog-fullscreen-exit-animation-duration:var(--forge-dialog-fullscreen-exit-animation-duration, var(--forge-animation-duration-short2, 100ms));\n --_dialog-position-x:var(--forge-dialog-position-x, 0);\n --_dialog-position-y:var(--forge-dialog-position-y, 0);\n --_dialog-preset-sheet-enter-animation-duration:var(--forge-dialog-preset-sheet-enter-animation-duration, var(--forge-animation-duration-medium1, 250ms));\n --_dialog-preset-sheet-exit-animation-duration:var(--forge-dialog-preset-sheet-exit-animation-duration, var(--forge-animation-duration-short3, 150ms));\n --_backdrop-background:var(--forge-backdrop-background, #000);\n --_backdrop-opacity:var(--forge-backdrop-opacity, 0.54);\n --_backdrop-z-index:var(--forge-backdrop-z-index, var(--forge-z-index-backdrop, 7));\n --_backdrop-enter-animation-duration:var(--forge-backdrop-enter-animation-duration, var(--forge-animation-duration-short4, 200ms));\n --_backdrop-enter-animation-easing:var(--forge-backdrop-enter-animation-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));\n --_backdrop-exit-animation-duration:var(--forge-backdrop-exit-animation-duration, var(--forge-animation-duration-short1, 50ms));\n --_backdrop-exit-animation-easing:var(--forge-backdrop-exit-animation-easing, var(--forge-animation-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15)));\n --forge-theme-surface: var(--forge-theme-surface-bright, #ffffff);\n}\n\n.forge-dialog {\n position: fixed;\n inset: 0;\n z-index: var(--_dialog-z-index);\n background-color: rgba(0, 0, 0, 0);\n color: inherit;\n border: none;\n width: auto;\n height: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n max-width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n position: absolute;\n inset: 0;\n display: flex;\n background: var(--_dialog-background);\n box-shadow: var(--_dialog-elevation);\n z-index: var(--_dialog-z-index);\n overflow: hidden;\n border-radius: var(--_dialog-shape);\n margin-block-start: var(--_dialog-block-start-spacing);\n margin-block-end: var(--_dialog-block-end-spacing);\n margin-inline-start: var(--_dialog-inline-start-spacing);\n margin-inline-end: var(--_dialog-inline-end-spacing);\n padding: var(--_dialog-padding);\n width: var(--_dialog-width);\n height: var(--_dialog-height);\n min-width: var(--_dialog-min-width);\n max-width: var(--_dialog-max-width);\n min-height: var(--_dialog-min-height);\n max-height: var(--_dialog-max-height);\n box-sizing: border-box;\n animation-duration: var(--_dialog-exit-animation-duration);\n animation-timing-function: var(--_dialog-exit-animation-easing);\n position: fixed;\n transition-property: display, opacity, overlay, scale;\n transition-behavior: allow-discrete;\n}\n\n.forge-dialog > forge-scaffold {\n height: auto;\n}\n\n.forge-dialog--fullscreen {\n --_dialog-enter-animation-duration:var(--_dialog-fullscreen-enter-animation-duration);\n --_dialog-exit-animation-duration:var(--_dialog-fullscreen-exit-animation-duration);\n height: 100%;\n width: 100%;\n max-width: none;\n max-height: none;\n border-radius: 0;\n box-shadow: none;\n}\n\n.forge-dialog:not(:modal) {\n --_dialog-elevation:var(--_dialog-nonmodal-elevation);\n pointer-events: all;\n}\n\n.forge-dialog--moveable {\n user-select: none;\n transition-property: opacity;\n transition-duration: var(--_dialog-move-transition-duration);\n transition-timing-function: var(--_dialog-move-transition-easing);\n}\n\n.forge-dialog--moved {\n margin: 0;\n}\n\n.forge-dialog--moving {\n opacity: var(--_dialog-moving-opacity);\n}\n\n.forge-dialog__move-handle {\n fill: var(--_dialog-move-handle-color);\n height: var(--_dialog-move-handle-size);\n width: var(--_dialog-move-handle-size);\n margin: var(--_dialog-move-handle-spacing);\n touch-action: none;\n}\n\n.forge-dialog__move-handle:hover {\n cursor: var(--_dialog-move-handle-hover-cursor);\n}\n\n.forge-dialog__move-handle:active {\n cursor: var(--_dialog-move-handle-active-cursor);\n}\n\n.forge-dialog__move-handle-container {\n position: absolute;\n top: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n width: 100%;\n}\n\n.forge-dialog--top {\n --_dialog-block-start-spacing:var(--forge-dialog-block-start-spacing, 0);\n top: 0;\n bottom: auto;\n}\n\n.forge-dialog--top-right {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: 0;\n left: auto;\n right: 0;\n bottom: auto;\n}\n\n.forge-dialog--top-left {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: 0;\n left: 0;\n right: auto;\n bottom: auto;\n}\n\n.forge-dialog--bottom {\n --_dialog-block-end-spacing:var(--forge-dialog-block-end-spacing, 0);\n top: auto;\n bottom: 0;\n}\n\n.forge-dialog--bottom-right {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: auto;\n left: auto;\n right: 0;\n bottom: 0;\n}\n\n.forge-dialog--bottom-left {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: auto;\n left: 0;\n right: auto;\n bottom: 0;\n}\n\n.forge-dialog--right {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: auto;\n left: auto;\n right: 0;\n bottom: auto;\n}\n\n.forge-dialog--left {\n --_dialog-spacing:var(--forge-dialog-spacing, 0);\n top: auto;\n left: 0;\n right: auto;\n bottom: auto;\n}\n\n.forge-dialog--custom {\n margin: 0;\n top: var(--_dialog-position-x);\n left: var(--_dialog-position-y);\n}\n\n.forge-dialog--bottom-sheet {\n --_dialog-enter-animation-duration:var(--_dialog-preset-sheet-enter-animation-duration);\n --_dialog-exit-animation-duration:var(--_dialog-preset-sheet-exit-animation-duration);\n --_dialog-max-width:var(--forge-dialog-max-width, none);\n --_dialog-max-height:var(--forge-dialog-max-height, none);\n inset: auto;\n display: inline-flex;\n bottom: 0;\n left: 0;\n right: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n --_dialog-slide-translate:var(--forge-dialog-slide-translate, 0 100%);\n}\n\n.forge-dialog--bottom-sheet.forge-dialog {\n transition-property: display, opacity, overlay, translate;\n}\n\n.forge-dialog--bottom-sheet.forge-dialog[open] {\n translate: 0 0;\n}\n\n@starting-style {\n .forge-dialog--bottom-sheet.forge-dialog[open] {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog--bottom-sheet.forge-dialog:not([open]) {\n opacity: var(--_dialog-slide-opacity);\n scale: 1;\n translate: var(--_dialog-slide-translate);\n}\n\n.forge-dialog--left-sheet {\n --_dialog-enter-animation-duration:var(--_dialog-preset-sheet-enter-animation-duration);\n --_dialog-exit-animation-duration:var(--_dialog-preset-sheet-exit-animation-duration);\n --_dialog-max-width:var(--forge-dialog-max-width, none);\n --_dialog-max-height:var(--forge-dialog-max-height, none);\n inset: auto;\n display: inline-flex;\n left: 0;\n bottom: 0;\n top: 0;\n height: 100%;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n --_dialog-slide-translate:var(--forge-dialog-slide-translate, -100% 0);\n}\n\n.forge-dialog--left-sheet.forge-dialog {\n transition-property: display, opacity, overlay, translate;\n}\n\n.forge-dialog--left-sheet.forge-dialog[open] {\n translate: 0 0;\n}\n\n@starting-style {\n .forge-dialog--left-sheet.forge-dialog[open] {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog--left-sheet.forge-dialog:not([open]) {\n opacity: var(--_dialog-slide-opacity);\n scale: 1;\n translate: var(--_dialog-slide-translate);\n}\n\n.forge-dialog--right-sheet {\n --_dialog-enter-animation-duration:var(--_dialog-preset-sheet-enter-animation-duration);\n --_dialog-exit-animation-duration:var(--_dialog-preset-sheet-exit-animation-duration);\n --_dialog-max-width:var(--forge-dialog-max-width, none);\n --_dialog-max-height:var(--forge-dialog-max-height, none);\n inset: auto;\n display: inline-flex;\n right: 0;\n bottom: 0;\n top: 0;\n height: 100%;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n --_dialog-slide-translate:var(--forge-dialog-slide-translate, 100% 0);\n}\n\n.forge-dialog--right-sheet.forge-dialog {\n transition-property: display, opacity, overlay, translate;\n}\n\n.forge-dialog--right-sheet.forge-dialog[open] {\n translate: 0 0;\n}\n\n@starting-style {\n .forge-dialog--right-sheet.forge-dialog[open] {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog--right-sheet.forge-dialog:not([open]) {\n opacity: var(--_dialog-slide-opacity);\n scale: 1;\n translate: var(--_dialog-slide-translate);\n}\n\n.forge-dialog--top-sheet {\n --_dialog-enter-animation-duration:var(--_dialog-preset-sheet-enter-animation-duration);\n --_dialog-exit-animation-duration:var(--_dialog-preset-sheet-exit-animation-duration);\n --_dialog-max-width:var(--forge-dialog-max-width, none);\n --_dialog-max-height:var(--forge-dialog-max-height, none);\n inset: auto;\n display: inline-flex;\n top: 0;\n left: 0;\n right: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n --_dialog-slide-translate:var(--forge-dialog-slide-translate, 0 -100%);\n}\n\n.forge-dialog--top-sheet.forge-dialog {\n transition-property: display, opacity, overlay, translate;\n}\n\n.forge-dialog--top-sheet.forge-dialog[open] {\n translate: 0 0;\n}\n\n@starting-style {\n .forge-dialog--top-sheet.forge-dialog[open] {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog--top-sheet.forge-dialog:not([open]) {\n opacity: var(--_dialog-slide-opacity);\n scale: 1;\n translate: var(--_dialog-slide-translate);\n}\n\n.forge-dialog::backdrop {\n --forge-backdrop-opacity: var(--_backdrop-opacity);\n --forge-backdrop-enter-animation-duration: var(--_backdrop-enter-animation-duration);\n --forge-backdrop-enter-animation-easing: var(--_backdrop-enter-animation-easing);\n --forge-backdrop-exit-animation-duration: var(--_backdrop-exit-animation-duration);\n --forge-backdrop-exit-animation-easing: var(--_backdrop-exit-animation-easing);\n position: absolute;\n inset: 0;\n z-index: var(--_backdrop-z-index);\n background: var(--_backdrop-background);\n opacity: 0;\n animation-fill-mode: forwards;\n transition-property: display, opacity, overlay;\n}\n\n.forge-dialog[open] {\n opacity: 1;\n scale: 1;\n transition-duration: var(--_dialog-enter-animation-duration);\n transition-timing-function: var(--_dialog-enter-animation-easing);\n}\n\n@starting-style {\n .forge-dialog[open] {\n opacity: var(--_dialog-zoom-opacity);\n scale: var(--_dialog-zoom-scale);\n }\n}\n.forge-dialog[open]::backdrop {\n opacity: var(--_backdrop-opacity);\n transition-duration: var(--_backdrop-enter-animation-duration);\n transition-timing-function: var(--_backdrop-enter-animation-easing);\n}\n\n@starting-style {\n .forge-dialog[open]::backdrop {\n opacity: 0;\n }\n}\n.forge-dialog:not([open]) {\n animation-duration: var(--_dialog-enter-animation-duration);\n animation-timing-function: var(--_dialog-enter-animation-easing);\n display: none;\n opacity: var(--_dialog-zoom-opacity);\n scale: var(--_dialog-zoom-scale);\n transition-duration: var(--_dialog-exit-animation-duration);\n transition-timing-function: var(--_dialog-exit-animation-easing);\n}\n\n.forge-dialog:not([open])::backdrop {\n transition-duration: var(--_backdrop-exit-animation-duration);\n transition-timing-function: var(--_backdrop-exit-animation-easing);\n}\n\n.forge-dialog--animation-fade.forge-dialog {\n transition-property: display, opacity, overlay;\n}\n\n@starting-style {\n .forge-dialog--animation-fade.forge-dialog[open] {\n opacity: var(--_dialog-fade-opacity);\n }\n}\n.forge-dialog--animation-fade.forge-dialog:not([open]) {\n opacity: var(--_dialog-fade-opacity);\n scale: 1;\n}\n\n.forge-dialog--animation-slide.forge-dialog {\n transition-property: display, opacity, overlay, translate;\n}\n\n.forge-dialog--animation-slide.forge-dialog[open] {\n translate: 0 0;\n}\n\n@starting-style {\n .forge-dialog--animation-slide.forge-dialog[open] {\n opacity: var(--_dialog-slide-opacity);\n translate: var(--_dialog-slide-translate);\n }\n}\n.forge-dialog--animation-slide.forge-dialog:not([open]) {\n opacity: var(--_dialog-slide-opacity);\n scale: 1;\n translate: var(--_dialog-slide-translate);\n}\n\n.forge-dialog--animation-none {\n --_dialog-enter-animation-duration:var(--forge-dialog-enter-animation-duration, 0s);\n --_dialog-exit-animation-duration:var(--forge-dialog-exit-animation-duration, 0s);\n --_backdrop-enter-animation-duration:var(--forge-backdrop-enter-animation-duration, 0s);\n --_backdrop-exit-animation-duration:var(--forge-backdrop-exit-animation-duration, 0s);\n}\n\n@media (prefers-reduced-motion) {\n .forge-dialog.forge-dialog {\n transition-property: display, opacity, overlay;\n }\n @starting-style {\n .forge-dialog.forge-dialog[open] {\n opacity: var(--_dialog-fade-opacity);\n }\n }\n .forge-dialog.forge-dialog:not([open]) {\n opacity: var(--_dialog-fade-opacity);\n scale: 1;\n }\n}\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --_ai-chatbot-icon-shape: var(--forge-ai-chatbot-icon-shape, 0);\n}\n\n.chatbot-container {\n position: relative;\n display: grid;\n height: 100%;\n overflow: hidden;\n border-radius: inherit;\n}\n\nforge-ai-chat-interface::part(messages) {\n overflow: hidden;\n}\nforge-ai-chat-interface forge-ai-message-thread {\n min-height: 0;\n}\n\nforge-ai-chat-header {\n --forge-ai-chat-header-title-color: var(--forge-ai-chatbot-header-title-color, currentColor);\n}\n\n.disclaimer {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-family: var(--forge-typography-label1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));\n font-size: var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, 0.75)));\n font-weight: var(--forge-typography-label1-font-weight, 400);\n line-height: var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));\n letter-spacing: var(--forge-typography-label1-letter-spacing, 0.0357142857em);\n text-transform: var(--forge-typography-label1-text-transform, inherit);\n text-decoration: var(--forge-typography-label1-text-decoration, inherit);\n color: var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));\n text-align: center;\n margin-block-start: var(--forge-spacing-xxsmall, 4px);\n margin-block-end: calc(var(--forge-spacing-small, 12px) * -1);\n}\n\n.suggestions-container {\n width: 100%;\n align-self: start;\n}\n\n::slotted([slot=empty-state-icon]) {\n height: 200px;\n width: 200px;\n border-radius: var(--_ai-chatbot-icon-shape);\n}\n\n.conversations-backdrop {\n position: absolute;\n inset: 0;\n background-color: transparent;\n z-index: 1;\n}\n\n.conversations-dialog {\n display: grid;\n width: min(90%, 360px);\n padding: 0;\n border: 0;\n position: absolute;\n z-index: 2;\n --forge-dialog-shape: 0;\n --forge-dialog-nonmodal-elevation: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n\n.canvas-modal {\n --forge-ai-modal-width: var(--forge-ai-chatbot-canvas-width, 80vw);\n --forge-ai-modal-height: var(--forge-ai-chatbot-canvas-height, 80vh);\n}\n\n.canvas {\n --forge-ai-canvas-border-inline-start: none;\n flex: 1;\n min-inline-size: 0;\n}';
2
- export {
3
- styles as default
4
- };
@@ -1,16 +0,0 @@
1
- function isElementConfig(config) {
2
- return "elementTag" in config;
3
- }
4
- function createToolRenderer(config) {
5
- if (isElementConfig(config)) {
6
- return {
7
- elementTag: config.elementTag
8
- };
9
- }
10
- return {
11
- render: config.render
12
- };
13
- }
14
- export {
15
- createToolRenderer
16
- };
@@ -1,43 +0,0 @@
1
- /** Represents a subscription that can be cancelled */
2
- export interface Subscription {
3
- /** Cancels the subscription and removes the listener */
4
- unsubscribe(): void;
5
- }
6
- /**
7
- * Generic event emitter for pub/sub pattern with type-safe events
8
- * @template T The event payload type (defaults to void for events without data)
9
- */
10
- export declare class EventEmitter<T = void> {
11
- #private;
12
- /**
13
- * Subscribes a listener to events
14
- * @param listener Function to call when events are emitted
15
- * @returns Subscription object to cancel the listener
16
- */
17
- subscribe(listener: (event: T) => void): Subscription;
18
- /**
19
- * Emits an event to all subscribed listeners
20
- * @param event The event payload to send to listeners
21
- */
22
- emit(event: T): void;
23
- /** Removes all listeners */
24
- clear(): void;
25
- /** Returns the current number of active listeners */
26
- get listenerCount(): number;
27
- }
28
- /**
29
- * Manages multiple subscriptions as a single unit for batch cleanup
30
- * Useful for managing event listeners that should all be cleaned up together
31
- */
32
- export declare class SubscriptionManager implements Subscription {
33
- #private;
34
- /**
35
- * Adds one or more subscriptions to manage
36
- * @param subscriptions Subscriptions to add to the manager
37
- */
38
- add(...subscriptions: Subscription[]): void;
39
- /** Unsubscribes from all managed subscriptions */
40
- unsubscribe(): void;
41
- /** Returns whether all subscriptions have been unsubscribed */
42
- get isUnsubscribed(): boolean;
43
- }