@scalar/agent-chat 0.9.12 → 0.9.14

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 (235) hide show
  1. package/dist/App.vue.d.ts +5 -3
  2. package/dist/App.vue.d.ts.map +1 -1
  3. package/dist/App.vue.js +7 -0
  4. package/dist/App.vue.js.map +1 -0
  5. package/dist/App.vue.script.js +43 -0
  6. package/dist/App.vue.script.js.map +1 -0
  7. package/dist/Chat.vue.js +7 -0
  8. package/dist/Chat.vue.js.map +1 -0
  9. package/dist/Chat.vue.script.js +48 -0
  10. package/dist/Chat.vue.script.js.map +1 -0
  11. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  12. package/dist/api.d.ts +1 -3
  13. package/dist/api.d.ts.map +1 -1
  14. package/dist/api.js +74 -0
  15. package/dist/api.js.map +1 -0
  16. package/dist/client-tools/execute-request.d.ts +1 -1
  17. package/dist/client-tools/execute-request.js +88 -0
  18. package/dist/client-tools/execute-request.js.map +1 -0
  19. package/dist/components/ActionsDropdown.vue.js +9 -0
  20. package/dist/components/ActionsDropdown.vue.js.map +1 -0
  21. package/dist/components/ActionsDropdown.vue.script.js +33 -0
  22. package/dist/components/ActionsDropdown.vue.script.js.map +1 -0
  23. package/dist/components/ApprovalSection.vue.js +9 -0
  24. package/dist/components/ApprovalSection.vue.js.map +1 -0
  25. package/dist/components/ApprovalSection.vue.script.js +26 -0
  26. package/dist/components/ApprovalSection.vue.script.js.map +1 -0
  27. package/dist/components/AuthenticationProvided.vue.js +13 -0
  28. package/dist/components/AuthenticationProvided.vue.js.map +1 -0
  29. package/dist/components/AuthenticationRequired.vue.js +13 -0
  30. package/dist/components/AuthenticationRequired.vue.js.map +1 -0
  31. package/dist/components/AutosendPaused.vue.js +13 -0
  32. package/dist/components/AutosendPaused.vue.js.map +1 -0
  33. package/dist/components/BuildingRequest.vue.js +19 -0
  34. package/dist/components/BuildingRequest.vue.js.map +1 -0
  35. package/dist/components/ContextItem.vue.js +9 -0
  36. package/dist/components/ContextItem.vue.js.map +1 -0
  37. package/dist/components/ContextItem.vue.script.js +13 -0
  38. package/dist/components/ContextItem.vue.script.js.map +1 -0
  39. package/dist/components/ErrorMessage.vue.d.ts +1 -1
  40. package/dist/components/ErrorMessage.vue.js +9 -0
  41. package/dist/components/ErrorMessage.vue.js.map +1 -0
  42. package/dist/components/ErrorMessage.vue.script.js +22 -0
  43. package/dist/components/ErrorMessage.vue.script.js.map +1 -0
  44. package/dist/components/FreeMessagesInfoSection.vue.js +9 -0
  45. package/dist/components/FreeMessagesInfoSection.vue.js.map +1 -0
  46. package/dist/components/FreeMessagesInfoSection.vue.script.js +43 -0
  47. package/dist/components/FreeMessagesInfoSection.vue.script.js.map +1 -0
  48. package/dist/components/LoadingMiniOpenAPIDoc.vue.js +13 -0
  49. package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +1 -0
  50. package/dist/components/LoadingOpenAPISpecsSummary.vue.js +13 -0
  51. package/dist/components/LoadingOpenAPISpecsSummary.vue.js.map +1 -0
  52. package/dist/components/Logo.vue.js +23 -0
  53. package/dist/components/Logo.vue.js.map +1 -0
  54. package/dist/components/PaymentSection.vue.js +9 -0
  55. package/dist/components/PaymentSection.vue.js.map +1 -0
  56. package/dist/components/PaymentSection.vue.script.js +22 -0
  57. package/dist/components/PaymentSection.vue.script.js.map +1 -0
  58. package/dist/components/RequestApproved.vue.js +13 -0
  59. package/dist/components/RequestApproved.vue.js.map +1 -0
  60. package/dist/components/RequestFailed.vue.js +19 -0
  61. package/dist/components/RequestFailed.vue.js.map +1 -0
  62. package/dist/components/RequestPreview.vue.d.ts +1 -1
  63. package/dist/components/RequestPreview.vue.js +9 -0
  64. package/dist/components/RequestPreview.vue.js.map +1 -0
  65. package/dist/components/RequestPreview.vue.script.js +96 -0
  66. package/dist/components/RequestPreview.vue.script.js.map +1 -0
  67. package/dist/components/RequestRejected.vue.js +19 -0
  68. package/dist/components/RequestRejected.vue.js.map +1 -0
  69. package/dist/components/RequestSuccess.vue.js +13 -0
  70. package/dist/components/RequestSuccess.vue.js.map +1 -0
  71. package/dist/components/ResponseBody/ResponseBody.vue.d.ts +1 -1
  72. package/dist/components/ResponseBody/ResponseBody.vue.js +7 -0
  73. package/dist/components/ResponseBody/ResponseBody.vue.js.map +1 -0
  74. package/dist/components/ResponseBody/ResponseBody.vue.script.js +43 -0
  75. package/dist/components/ResponseBody/ResponseBody.vue.script.js.map +1 -0
  76. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js +12 -0
  77. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js.map +1 -0
  78. package/dist/components/ResponseBody/ResponseBodyPreview.vue.d.ts +1 -1
  79. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js +9 -0
  80. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js.map +1 -0
  81. package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js +59 -0
  82. package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js.map +1 -0
  83. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js +7 -0
  84. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js.map +1 -0
  85. package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js +22 -0
  86. package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js.map +1 -0
  87. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js +7 -0
  88. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js.map +1 -0
  89. package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js +23 -0
  90. package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js.map +1 -0
  91. package/dist/components/ResponseBody/helpers/media-types.js +223 -0
  92. package/dist/components/ResponseBody/helpers/media-types.js.map +1 -0
  93. package/dist/components/ResponseBody/helpers/process-response-body.js +33 -0
  94. package/dist/components/ResponseBody/helpers/process-response-body.js.map +1 -0
  95. package/dist/components/SearchPopover.vue.js +9 -0
  96. package/dist/components/SearchPopover.vue.js.map +1 -0
  97. package/dist/components/SearchPopover.vue.script.js +53 -0
  98. package/dist/components/SearchPopover.vue.script.js.map +1 -0
  99. package/dist/components/Selector.vue.js +7 -0
  100. package/dist/components/Selector.vue.js.map +1 -0
  101. package/dist/components/Selector.vue.script.js +62 -0
  102. package/dist/components/Selector.vue.script.js.map +1 -0
  103. package/dist/components/SendingRequest.vue.js +19 -0
  104. package/dist/components/SendingRequest.vue.js.map +1 -0
  105. package/dist/components/ServerSelector.vue.js +7 -0
  106. package/dist/components/ServerSelector.vue.js.map +1 -0
  107. package/dist/components/ServerSelector.vue.script.js +60 -0
  108. package/dist/components/ServerSelector.vue.script.js.map +1 -0
  109. package/dist/components/UploadSection.vue.d.ts +1 -1
  110. package/dist/components/UploadSection.vue.js +9 -0
  111. package/dist/components/UploadSection.vue.js.map +1 -0
  112. package/dist/components/UploadSection.vue.script.js +52 -0
  113. package/dist/components/UploadSection.vue.script.js.map +1 -0
  114. package/dist/consts/urls.js +12 -0
  115. package/dist/consts/urls.js.map +1 -0
  116. package/dist/entities/error/constants.js +6 -0
  117. package/dist/entities/error/constants.js.map +1 -0
  118. package/dist/entities/error/helpers.d.ts +1 -1
  119. package/dist/entities/error/helpers.js +11 -0
  120. package/dist/entities/error/helpers.js.map +1 -0
  121. package/dist/entities/index.d.ts +9 -9
  122. package/dist/entities/index.js +10 -2
  123. package/dist/entities/prompt/constants.js +6 -0
  124. package/dist/entities/prompt/constants.js.map +1 -0
  125. package/dist/entities/registry/document.js +14 -0
  126. package/dist/entities/registry/document.js.map +1 -0
  127. package/dist/entities/tools/ask-for-authentication.js +7 -0
  128. package/dist/entities/tools/ask-for-authentication.js.map +1 -0
  129. package/dist/entities/tools/constants.js +6 -0
  130. package/dist/entities/tools/constants.js.map +1 -0
  131. package/dist/entities/tools/execute-request.d.ts +1 -1
  132. package/dist/entities/tools/execute-request.js +13 -0
  133. package/dist/entities/tools/execute-request.js.map +1 -0
  134. package/dist/entities/tools/get-mini-openapi-spec.js +7 -0
  135. package/dist/entities/tools/get-mini-openapi-spec.js.map +1 -0
  136. package/dist/entities/tools/get-openapi-spec-summary.js +6 -0
  137. package/dist/entities/tools/get-openapi-spec-summary.js.map +1 -0
  138. package/dist/helpers.js +42 -0
  139. package/dist/helpers.js.map +1 -0
  140. package/dist/hooks/use-agent-key-documents.js +24 -0
  141. package/dist/hooks/use-agent-key-documents.js.map +1 -0
  142. package/dist/hooks/use-chat-approvals.d.ts +1 -1
  143. package/dist/hooks/use-chat-approvals.js +38 -0
  144. package/dist/hooks/use-chat-approvals.js.map +1 -0
  145. package/dist/hooks/use-chat-error.js +25 -0
  146. package/dist/hooks/use-chat-error.js.map +1 -0
  147. package/dist/hooks/use-chat-pending-client-tool-parts.js +14 -0
  148. package/dist/hooks/use-chat-pending-client-tool-parts.js.map +1 -0
  149. package/dist/hooks/use-chat-scroll.js +17 -0
  150. package/dist/hooks/use-chat-scroll.js.map +1 -0
  151. package/dist/hooks/use-curated-documents.js +14 -0
  152. package/dist/hooks/use-curated-documents.js.map +1 -0
  153. package/dist/hooks/use-search.d.ts +1 -1
  154. package/dist/hooks/use-search.js +23 -0
  155. package/dist/hooks/use-search.js.map +1 -0
  156. package/dist/hooks/use-signup-link.js +17 -0
  157. package/dist/hooks/use-signup-link.js.map +1 -0
  158. package/dist/hooks/use-term-and-conditions.js +20 -0
  159. package/dist/hooks/use-term-and-conditions.js.map +1 -0
  160. package/dist/hooks/use-upload-tmp-document.js +92 -0
  161. package/dist/hooks/use-upload-tmp-document.js.map +1 -0
  162. package/dist/index.d.ts +2 -2
  163. package/dist/index.js +2 -2065
  164. package/dist/package.json +1 -1
  165. package/dist/plugins/persistance.js +16 -0
  166. package/dist/plugins/persistance.js.map +1 -0
  167. package/dist/registry/add-documents-to-store.d.ts +2 -2
  168. package/dist/registry/add-documents-to-store.js +36 -0
  169. package/dist/registry/add-documents-to-store.js.map +1 -0
  170. package/dist/registry/create-document-name.js +8 -0
  171. package/dist/registry/create-document-name.js.map +1 -0
  172. package/dist/state/state.d.ts +9 -7
  173. package/dist/state/state.d.ts.map +1 -1
  174. package/dist/state/state.js +153 -0
  175. package/dist/state/state.js.map +1 -0
  176. package/dist/views/Catalog/Catalog.vue.js +10 -0
  177. package/dist/views/Catalog/Catalog.vue.js.map +1 -0
  178. package/dist/views/Catalog/Catalog.vue.script.js +50 -0
  179. package/dist/views/Catalog/Catalog.vue.script.js.map +1 -0
  180. package/dist/views/Chat/Chat.vue.js +9 -0
  181. package/dist/views/Chat/Chat.vue.js.map +1 -0
  182. package/dist/views/Chat/Chat.vue.script.js +55 -0
  183. package/dist/views/Chat/Chat.vue.script.js.map +1 -0
  184. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts +2 -2
  185. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +9 -0
  186. package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -0
  187. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +72 -0
  188. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -0
  189. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts +2 -2
  190. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +9 -0
  191. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js.map +1 -0
  192. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js +26 -0
  193. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js.map +1 -0
  194. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts +2 -2
  195. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +9 -0
  196. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js.map +1 -0
  197. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js +39 -0
  198. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js.map +1 -0
  199. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts +2 -2
  200. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js +7 -0
  201. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -0
  202. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js +21 -0
  203. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +1 -0
  204. package/dist/views/Chat/Messages/Text.vue.js +7 -0
  205. package/dist/views/Chat/Messages/Text.vue.js.map +1 -0
  206. package/dist/views/Chat/Messages/Text.vue.script.js +14 -0
  207. package/dist/views/Chat/Messages/Text.vue.script.js.map +1 -0
  208. package/dist/views/Layout.vue.js +9 -0
  209. package/dist/views/Layout.vue.js.map +1 -0
  210. package/dist/views/Layout.vue.script.js +25 -0
  211. package/dist/views/Layout.vue.script.js.map +1 -0
  212. package/dist/views/PromptForm.vue.js +9 -0
  213. package/dist/views/PromptForm.vue.js.map +1 -0
  214. package/dist/views/PromptForm.vue.script.js +202 -0
  215. package/dist/views/PromptForm.vue.script.js.map +1 -0
  216. package/dist/views/Settings/Auth.vue.js +7 -0
  217. package/dist/views/Settings/Auth.vue.js.map +1 -0
  218. package/dist/views/Settings/Auth.vue.script.js +63 -0
  219. package/dist/views/Settings/Auth.vue.script.js.map +1 -0
  220. package/dist/views/Settings/DocSettings.vue.js +9 -0
  221. package/dist/views/Settings/DocSettings.vue.js.map +1 -0
  222. package/dist/views/Settings/DocSettings.vue.script.js +48 -0
  223. package/dist/views/Settings/DocSettings.vue.script.js.map +1 -0
  224. package/dist/views/Settings/Settings.vue.js +10 -0
  225. package/dist/views/Settings/Settings.vue.js.map +1 -0
  226. package/dist/views/Settings/Settings.vue.script.js +59 -0
  227. package/dist/views/Settings/Settings.vue.script.js.map +1 -0
  228. package/dist/views/Start.vue.js +9 -0
  229. package/dist/views/Start.vue.js.map +1 -0
  230. package/dist/views/Start.vue.script.js +41 -0
  231. package/dist/views/Start.vue.script.js.map +1 -0
  232. package/package.json +9 -9
  233. package/dist/entities-NWeuOkBB.js +0 -28
  234. package/dist/entities-NWeuOkBB.js.map +0 -1
  235. package/dist/index.js.map +0 -1
package/dist/App.vue.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { type Ref } from 'vue';
2
- import { type RegistryDocument } from './state/state';
2
+ import { type RegistryDocument } from './state/state.js';
3
3
  import { type ChatMode } from './types';
4
4
  type __VLS_Props = {
5
5
  registryDocuments: RegistryDocument[];
6
6
  registryUrl: string;
7
7
  dashboardUrl: string;
8
+ platformProxyUrl: string;
8
9
  baseUrl: string;
9
10
  mode?: ChatMode;
10
11
  getAccessToken?: () => string;
@@ -16,7 +17,7 @@ type __VLS_Props = {
16
17
  };
17
18
  declare const state: {
18
19
  prompt: Ref<string>;
19
- chat: import("@ai-sdk/vue").Chat<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("./state/state").Tools>>;
20
+ chat: import("@ai-sdk/vue").Chat<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("./state/state.js").Tools>>;
20
21
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
21
22
  loading: import("vue").ComputedRef<boolean>;
22
23
  settingsModal: import("@scalar/components").ModalState;
@@ -27,6 +28,7 @@ declare const state: {
27
28
  registryUrl: string;
28
29
  dashboardUrl: string;
29
30
  baseUrl: string;
31
+ platformProxyUrl: string;
30
32
  isLoggedIn?: Ref<boolean>;
31
33
  registryDocuments: Ref<import("./entities/index.js").ApiMetadata[]>;
32
34
  pendingDocuments: Record<string, boolean>;
@@ -52,7 +54,7 @@ declare const state: {
52
54
  }) => void;
53
55
  getAccessToken?: () => string;
54
56
  getAgentKey?: () => string;
55
- api: import("./api").Api;
57
+ api: import("./api.js").Api;
56
58
  uploadedTmpDocumentUrl: Ref<string | undefined>;
57
59
  curatedDocuments: Ref<import("./entities/index.js").ApiMetadata[]>;
58
60
  getActiveDocumentJson?: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../src/App.vue"],"names":[],"mappings":"AAsEA,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGvC,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,KAAK,WAAW,GAAG;IACjB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAA;IACpC,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAqBF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;iBAkCU,CAAC;WACnB,CAAC;;;;;iBAC2C,CAAC;;;;;;;;;;;;;CAxB9C,CAAA;AAIF,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,OAAO,KAAK,CAAC,gBAAgB,CAAA;CAChD,CAAA;AA8CD,QAAA,MAAM,YAAY;;;;kFAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../src/App.vue"],"names":[],"mappings":"AAyEA,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGvC,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,KAAK,WAAW,GAAG;IACjB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAA;IACpC,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAsBF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;iBA8B2B,CAAC;WACjC,CAAA;;;;;iBAEO,CAAC;;;;;;;;;;;;;CApBZ,CAAA;AAIF,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,OAAO,KAAK,CAAC,gBAAgB,CAAA;CAChD,CAAA;AA8CD,QAAA,MAAM,YAAY;;;;kFAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,7 @@
1
+ import e from "./App.vue.script.js";
2
+ //#region src/App.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=App.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.vue.js","names":[],"sources":["../src/App.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { provide, type Ref } from 'vue'\n\nimport Chat from '@/Chat.vue'\nimport { createState, STATE_SYMBOL, type RegistryDocument } from '@/state/state'\nimport { type ChatMode } from '@/types'\n\nconst {\n dashboardUrl,\n platformProxyUrl,\n registryDocuments,\n registryUrl,\n baseUrl,\n mode = 'full',\n getAccessToken,\n getAgentKey,\n getActiveDocumentJson,\n isLoggedIn,\n prefilledMessage,\n hideAddApi,\n} = defineProps<{\n registryDocuments: RegistryDocument[]\n registryUrl: string\n dashboardUrl: string\n platformProxyUrl: string\n baseUrl: string\n mode?: ChatMode\n getAccessToken?: () => string\n getAgentKey?: () => string\n getActiveDocumentJson?: () => string\n isLoggedIn?: Ref<boolean>\n prefilledMessage?: Ref<string>\n hideAddApi?: boolean\n}>()\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst state = createState({\n getActiveDocumentJson,\n initialRegistryDocuments: registryDocuments,\n prefilledMessageRef: prefilledMessage,\n platformProxyUrl,\n registryUrl,\n baseUrl,\n mode,\n getAccessToken,\n getAgentKey,\n isLoggedIn,\n dashboardUrl,\n hideAddApi,\n})\n\nprovide(STATE_SYMBOL, state)\n\nexport type ChatExposed = {\n addDocumentAsync: typeof state.addDocumentAsync\n}\n\ndefineExpose<ChatExposed>({\n addDocumentAsync: state.addDocumentAsync,\n})\n</script>\n\n<template>\n <Chat @uploadApi=\"$emit('uploadApi')\" />\n</template>\n\n<style scoped></style>\n"],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { STATE_SYMBOL as e, createState as t } from "./state/state.js";
2
+ import n from "./Chat.vue.js";
3
+ import { createBlock as r, defineComponent as i, openBlock as a, provide as o } from "vue";
4
+ //#region src/App.vue?vue&type=script&setup=true&lang.ts
5
+ var s = /* @__PURE__ */ i({
6
+ __name: "App",
7
+ props: {
8
+ registryDocuments: {},
9
+ registryUrl: {},
10
+ dashboardUrl: {},
11
+ platformProxyUrl: {},
12
+ baseUrl: {},
13
+ mode: { default: "full" },
14
+ getAccessToken: { type: Function },
15
+ getAgentKey: { type: Function },
16
+ getActiveDocumentJson: { type: Function },
17
+ isLoggedIn: {},
18
+ prefilledMessage: {},
19
+ hideAddApi: { type: Boolean }
20
+ },
21
+ emits: ["uploadApi"],
22
+ setup(i, { expose: s }) {
23
+ let c = t({
24
+ getActiveDocumentJson: i.getActiveDocumentJson,
25
+ initialRegistryDocuments: i.registryDocuments,
26
+ prefilledMessageRef: i.prefilledMessage,
27
+ platformProxyUrl: i.platformProxyUrl,
28
+ registryUrl: i.registryUrl,
29
+ baseUrl: i.baseUrl,
30
+ mode: i.mode,
31
+ getAccessToken: i.getAccessToken,
32
+ getAgentKey: i.getAgentKey,
33
+ isLoggedIn: i.isLoggedIn,
34
+ dashboardUrl: i.dashboardUrl,
35
+ hideAddApi: i.hideAddApi
36
+ });
37
+ return o(e, c), s({ addDocumentAsync: c.addDocumentAsync }), (e, t) => (a(), r(n, { onUploadApi: t[0] ||= (t) => e.$emit("uploadApi") }));
38
+ }
39
+ });
40
+ //#endregion
41
+ export { s as default };
42
+
43
+ //# sourceMappingURL=App.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.vue.script.js","names":["$emit"],"sources":["../src/App.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { provide, type Ref } from 'vue'\n\nimport Chat from '@/Chat.vue'\nimport { createState, STATE_SYMBOL, type RegistryDocument } from '@/state/state'\nimport { type ChatMode } from '@/types'\n\nconst {\n dashboardUrl,\n platformProxyUrl,\n registryDocuments,\n registryUrl,\n baseUrl,\n mode = 'full',\n getAccessToken,\n getAgentKey,\n getActiveDocumentJson,\n isLoggedIn,\n prefilledMessage,\n hideAddApi,\n} = defineProps<{\n registryDocuments: RegistryDocument[]\n registryUrl: string\n dashboardUrl: string\n platformProxyUrl: string\n baseUrl: string\n mode?: ChatMode\n getAccessToken?: () => string\n getAgentKey?: () => string\n getActiveDocumentJson?: () => string\n isLoggedIn?: Ref<boolean>\n prefilledMessage?: Ref<string>\n hideAddApi?: boolean\n}>()\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst state = createState({\n getActiveDocumentJson,\n initialRegistryDocuments: registryDocuments,\n prefilledMessageRef: prefilledMessage,\n platformProxyUrl,\n registryUrl,\n baseUrl,\n mode,\n getAccessToken,\n getAgentKey,\n isLoggedIn,\n dashboardUrl,\n hideAddApi,\n})\n\nprovide(STATE_SYMBOL, state)\n\nexport type ChatExposed = {\n addDocumentAsync: typeof state.addDocumentAsync\n}\n\ndefineExpose<ChatExposed>({\n addDocumentAsync: state.addDocumentAsync,\n})\n</script>\n\n<template>\n <Chat @uploadApi=\"$emit('uploadApi')\" />\n</template>\n\n<style scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAuCA,IAAM,IAAQ,EAAY;GACxB,uBAAoB,EAAA;GACpB,0BAA0B,EAAA;GAC1B,qBAAqB,EAAA;GACrB,kBAAe,EAAA;GACf,aAAU,EAAA;GACV,SAAM,EAAA;GACN,MAAG,EAAA;GACH,gBAAa,EAAA;GACb,aAAU,EAAA;GACV,YAAS,EAAA;GACT,cAAW,EAAA;GACX,YAAS,EAAA;GACV,CAAA;SAED,EAAQ,GAAc,EAAK,EAM3B,EAA0B,EACxB,kBAAkB,EAAM,kBACzB,CAAA,kBAIC,EAAwC,GAAA,EAAjC,aAAS,AAAA,EAAA,QAAA,MAAEA,EAAAA,MAAK,YAAA,EAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import e from "./Chat.vue.script.js";
2
+ //#region src/Chat.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=Chat.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.vue.js","names":[],"sources":["../src/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createApiClientModal,\n type ApiClientModal,\n} from '@scalar/api-client/v2/features/modal'\nimport { onBeforeUnmount, onMounted, ref, useTemplateRef } from 'vue'\n\nimport { useAgentKeyDocuments } from '@/hooks/use-agent-key-documents'\nimport { useChatScroll } from '@/hooks/use-chat-scroll'\nimport { useCuratedDocuments } from '@/hooks/use-curated-documents'\nimport { getTmpDocFromLocalStorage } from '@/hooks/use-upload-tmp-document'\nimport { useState } from '@/state/state'\nimport Layout from '@/views/Layout.vue'\nimport Settings from '@/views/Settings/Settings.vue'\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst {\n chat,\n prompt,\n settingsModal,\n eventBus,\n workspaceStore,\n config,\n mode,\n addDocument,\n} = useState()\n\nconst clientModalRef = useTemplateRef<HTMLElement>('clientModal')\nconst apiClient = ref<ApiClientModal | null>(null)\n\nonMounted(async () => {\n const tmpDoc = getTmpDocFromLocalStorage()\n\n if (mode === 'preview' && tmpDoc) {\n await addDocument({\n namespace: tmpDoc.namespace,\n slug: tmpDoc.slug,\n removable: false,\n tmp: true,\n })\n }\n\n if (!clientModalRef.value) {\n return\n }\n\n apiClient.value = createApiClientModal({\n el: clientModalRef.value,\n options: config,\n eventBus,\n workspaceStore,\n })\n})\n\nonBeforeUnmount(() => {\n apiClient.value?.app.unmount()\n})\n\nuseChatScroll()\nuseAgentKeyDocuments()\nuseCuratedDocuments()\n\nasync function handleSubmit() {\n await chat.sendMessage({ text: prompt.value })\n}\n</script>\n\n<template>\n <div ref=\"clientModal\" />\n <Layout\n @submit=\"handleSubmit\"\n @uploadApi=\"$emit('uploadApi')\" />\n <Settings :modalState=\"settingsModal\" />\n</template>\n"],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { getTmpDocFromLocalStorage as e } from "./hooks/use-upload-tmp-document.js";
2
+ import { useState as t } from "./state/state.js";
3
+ import { useAgentKeyDocuments as n } from "./hooks/use-agent-key-documents.js";
4
+ import { useChatScroll as r } from "./hooks/use-chat-scroll.js";
5
+ import { useCuratedDocuments as i } from "./hooks/use-curated-documents.js";
6
+ import a from "./views/Layout.vue.js";
7
+ import o from "./views/Settings/Settings.vue.js";
8
+ import { Fragment as s, createElementBlock as c, createElementVNode as l, createVNode as u, defineComponent as d, onBeforeUnmount as f, onMounted as p, openBlock as m, ref as h, unref as g, useTemplateRef as _ } from "vue";
9
+ import { createApiClientModal as v } from "@scalar/api-client/v2/features/modal";
10
+ //#region src/Chat.vue?vue&type=script&setup=true&lang.ts
11
+ var y = { ref: "clientModal" }, b = /* @__PURE__ */ d({
12
+ __name: "Chat",
13
+ emits: ["uploadApi"],
14
+ setup(d) {
15
+ let { chat: b, prompt: x, settingsModal: S, eventBus: C, workspaceStore: w, config: T, mode: E, addDocument: D } = t(), O = _("clientModal"), k = h(null);
16
+ p(async () => {
17
+ let t = e();
18
+ E === "preview" && t && await D({
19
+ namespace: t.namespace,
20
+ slug: t.slug,
21
+ removable: !1,
22
+ tmp: !0
23
+ }), O.value && (k.value = v({
24
+ el: O.value,
25
+ options: T,
26
+ eventBus: C,
27
+ workspaceStore: w
28
+ }));
29
+ }), f(() => {
30
+ k.value?.app.unmount();
31
+ }), r(), n(), i();
32
+ async function A() {
33
+ await b.sendMessage({ text: x.value });
34
+ }
35
+ return (e, t) => (m(), c(s, null, [
36
+ l("div", y, null, 512),
37
+ u(a, {
38
+ onSubmit: A,
39
+ onUploadApi: t[0] ||= (t) => e.$emit("uploadApi")
40
+ }),
41
+ u(o, { modalState: g(S) }, null, 8, ["modalState"])
42
+ ], 64));
43
+ }
44
+ });
45
+ //#endregion
46
+ export { b as default };
47
+
48
+ //# sourceMappingURL=Chat.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.vue.script.js","names":["$emit"],"sources":["../src/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createApiClientModal,\n type ApiClientModal,\n} from '@scalar/api-client/v2/features/modal'\nimport { onBeforeUnmount, onMounted, ref, useTemplateRef } from 'vue'\n\nimport { useAgentKeyDocuments } from '@/hooks/use-agent-key-documents'\nimport { useChatScroll } from '@/hooks/use-chat-scroll'\nimport { useCuratedDocuments } from '@/hooks/use-curated-documents'\nimport { getTmpDocFromLocalStorage } from '@/hooks/use-upload-tmp-document'\nimport { useState } from '@/state/state'\nimport Layout from '@/views/Layout.vue'\nimport Settings from '@/views/Settings/Settings.vue'\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst {\n chat,\n prompt,\n settingsModal,\n eventBus,\n workspaceStore,\n config,\n mode,\n addDocument,\n} = useState()\n\nconst clientModalRef = useTemplateRef<HTMLElement>('clientModal')\nconst apiClient = ref<ApiClientModal | null>(null)\n\nonMounted(async () => {\n const tmpDoc = getTmpDocFromLocalStorage()\n\n if (mode === 'preview' && tmpDoc) {\n await addDocument({\n namespace: tmpDoc.namespace,\n slug: tmpDoc.slug,\n removable: false,\n tmp: true,\n })\n }\n\n if (!clientModalRef.value) {\n return\n }\n\n apiClient.value = createApiClientModal({\n el: clientModalRef.value,\n options: config,\n eventBus,\n workspaceStore,\n })\n})\n\nonBeforeUnmount(() => {\n apiClient.value?.app.unmount()\n})\n\nuseChatScroll()\nuseAgentKeyDocuments()\nuseCuratedDocuments()\n\nasync function handleSubmit() {\n await chat.sendMessage({ text: prompt.value })\n}\n</script>\n\n<template>\n <div ref=\"clientModal\" />\n <Layout\n @submit=\"handleSubmit\"\n @uploadApi=\"$emit('uploadApi')\" />\n <Settings :modalState=\"settingsModal\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAmBA,IAAM,EACJ,SACA,WACA,kBACA,aACA,mBACA,WACA,SACA,mBACE,GAAS,EAEP,IAAiB,EAA4B,cAAa,EAC1D,IAAY,EAA2B,KAAI;AAgCjD,EA9BA,EAAU,YAAY;GACpB,IAAM,IAAS,GAA0B;AAEzC,GAAI,MAAS,aAAa,KACxB,MAAM,EAAY;IAChB,WAAW,EAAO;IAClB,MAAM,EAAO;IACb,WAAW;IACX,KAAK;IACN,CAAA,EAGE,EAAe,UAIpB,EAAU,QAAQ,EAAqB;IACrC,IAAI,EAAe;IACnB,SAAS;IACT;IACA;IACD,CAAA;IACF,EAED,QAAsB;AACpB,KAAU,OAAO,IAAI,SAAQ;IAC9B,EAED,GAAc,EACd,GAAqB,EACrB,GAAoB;EAEpB,eAAe,IAAe;AAC5B,SAAM,EAAK,YAAY,EAAE,MAAM,EAAO,OAAO,CAAA;;;GAK7C,EAAyB,OAAzB,GAAyB,MAAA,IAAA;GACzB,EAEoC,GAAA;IADjC,UAAQ;IACR,aAAS,AAAA,EAAA,QAAA,MAAEA,EAAAA,MAAK,YAAA;;GACnB,EAAwC,GAAA,EAA7B,YAAY,EAAA,EAAa,EAAA,EAAA,MAAA,GAAA,CAAA,aAAA,CAAA"}
@@ -0,0 +1,8 @@
1
+ //#region \0plugin-vue:export-helper
2
+ var e = (e, t) => {
3
+ let n = e.__vccOpts || e;
4
+ for (let [e, r] of t) n[e] = r;
5
+ return n;
6
+ };
7
+ //#endregion
8
+ export { e as default };
package/dist/api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { Ref } from 'vue';
2
1
  export declare function createAuthorizationHeaders({ getAccessToken, getAgentKey, }: {
3
2
  getAccessToken?: () => string;
4
3
  getAgentKey?: () => string;
@@ -7,9 +6,8 @@ export declare function createAuthorizationHeaders({ getAccessToken, getAgentKey
7
6
  Authorization?: string | undefined;
8
7
  };
9
8
  /** Minimal set of API requests needed for agent chat */
10
- export declare function createApi({ baseUrl, proxyUrl, getAccessToken, getAgentKey, }: {
9
+ export declare function createApi({ baseUrl, getAccessToken, getAgentKey, }: {
11
10
  baseUrl: string;
12
- proxyUrl: Ref<string>;
13
11
  getAccessToken?: () => string;
14
12
  getAgentKey?: () => string;
15
13
  }): {
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAM9B,wBAAgB,0BAA0B,CAAC,EACzC,cAAc,EACd,WAAW,GACZ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;CAC3B;;;EAYA;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,cAAc,EACd,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;CAC3B;oBA0E8B,MAAM;;;;;;;;;;;;;;;;;;;;;0BASA;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvE;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA,wBAAgB,0BAA0B,CAAC,EACzC,cAAc,EACd,WAAW,GACZ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;CAC3B;;;EAYA;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,cAAc,EACd,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;CAC3B;oBA0E8B,MAAM;;;;;;;;;;;;;;;;;;;;;0BASA;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvE;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAA"}
package/dist/api.js ADDED
@@ -0,0 +1,74 @@
1
+ import { createError as e } from "./entities/error/helpers.js";
2
+ import { registryApiMetadata as t } from "./entities/registry/document.js";
3
+ import { n } from "neverpanic";
4
+ import r from "zod";
5
+ //#region src/api.ts
6
+ function i({ getAccessToken: e, getAgentKey: t }) {
7
+ let n = e?.(), r = t?.();
8
+ return {
9
+ ...n && { Authorization: `Bearer ${n}` },
10
+ ...r && { "x-scalar-agent-key": r }
11
+ };
12
+ }
13
+ function a({ baseUrl: a, getAccessToken: o, getAgentKey: s }) {
14
+ let c = n.safeFn(async ({ path: t, method: c = "get", query: l, body: u, responseSchema: d }) => {
15
+ let f = `${a}${t}${l ? `?${new URLSearchParams(l)}` : ""}`, p = await n.fromUnsafe(async () => fetch(f, {
16
+ method: c,
17
+ ...u && { body: JSON.stringify(u) },
18
+ headers: { ...i({
19
+ getAccessToken: o,
20
+ getAgentKey: s
21
+ }) }
22
+ }), (t) => e("FAILED_TO_FETCH", t));
23
+ if (!p.success) return p;
24
+ let m = await n.fromUnsafe(async () => p.data.json(), (t) => e("FAILED_TO_FETCH_DATA", t));
25
+ if (!m.success) return {
26
+ success: !1,
27
+ error: e("UNKNOWN_ERROR", "Unknown error occurred. Please contact support.")
28
+ };
29
+ if (!p.data.ok) {
30
+ let t = r.object({
31
+ message: r.string(),
32
+ code: r.string()
33
+ }).safeParse(m.data);
34
+ return t.success ? {
35
+ success: !1,
36
+ error: e(t.data.code, t.data.message)
37
+ } : {
38
+ success: !1,
39
+ error: e("UNKNOWN_ERROR", "Unknown error occurred. Please contact support.")
40
+ };
41
+ }
42
+ let h = d.safeParse(m.data);
43
+ return h.success ? {
44
+ success: !0,
45
+ data: h.data
46
+ } : {
47
+ success: !1,
48
+ error: e("INVALID_RESPONSE", "Invalid response. Please contact support")
49
+ };
50
+ });
51
+ return {
52
+ search: async (e) => c({
53
+ path: "/vector/registry/search",
54
+ query: { query: e },
55
+ responseSchema: r.object({ results: t.array() })
56
+ }),
57
+ getDocument: async (e) => c({
58
+ path: `/vector/registry/document/${e.namespace}/${e.slug}`,
59
+ responseSchema: t
60
+ }),
61
+ getKeyDocuments: async () => c({
62
+ path: "/vector/registry/documents",
63
+ responseSchema: r.object({ documents: t.array() })
64
+ }),
65
+ getCuratedDocuments: async () => c({
66
+ path: "/vector/registry/curated",
67
+ responseSchema: r.object({ results: t.array() })
68
+ })
69
+ };
70
+ }
71
+ //#endregion
72
+ export { a as createApi, i as createAuthorizationHeaders };
73
+
74
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","names":[],"sources":["../src/api.ts"],"sourcesContent":["import { n } from 'neverpanic'\nimport z from 'zod'\n\nimport { createError } from '@/entities/error/helpers'\nimport { registryApiMetadata } from '@/entities/registry/document'\n\nexport function createAuthorizationHeaders({\n getAccessToken,\n getAgentKey,\n}: {\n getAccessToken?: () => string\n getAgentKey?: () => string\n}) {\n const token = getAccessToken?.()\n const agentKey = getAgentKey?.()\n\n return {\n ...(token && {\n Authorization: `Bearer ${token}`,\n }),\n ...(agentKey && {\n 'x-scalar-agent-key': agentKey,\n }),\n }\n}\n\n/** Minimal set of API requests needed for agent chat */\nexport function createApi({\n baseUrl,\n getAccessToken,\n getAgentKey,\n}: {\n baseUrl: string\n getAccessToken?: () => string\n getAgentKey?: () => string\n}) {\n const request = n.safeFn(\n async <T extends z.ZodType>({\n path,\n method = 'get',\n query,\n body,\n responseSchema,\n }: {\n path: string\n method?: string\n query?: Record<string, string>\n body?: object\n responseSchema: T\n }) => {\n const url = `${baseUrl}${path}${query ? `?${new URLSearchParams(query)}` : ''}`\n\n const fetchResult = await n.fromUnsafe(\n async () =>\n fetch(url, {\n method,\n ...(body && { body: JSON.stringify(body) }),\n headers: {\n ...createAuthorizationHeaders({ getAccessToken, getAgentKey }),\n },\n }),\n (originalError) => createError('FAILED_TO_FETCH', originalError),\n )\n\n if (!fetchResult.success) {\n return fetchResult\n }\n\n const fetchDataResult = await n.fromUnsafe(\n async () => fetchResult.data.json(),\n (originalError) => createError('FAILED_TO_FETCH_DATA', originalError),\n )\n\n if (!fetchDataResult.success) {\n return {\n success: false,\n error: createError('UNKNOWN_ERROR', 'Unknown error occurred. Please contact support.'),\n }\n }\n\n if (!fetchResult.data.ok) {\n const serviceError = z.object({ message: z.string(), code: z.string() }).safeParse(fetchDataResult.data)\n\n if (!serviceError.success) {\n return {\n success: false,\n error: createError('UNKNOWN_ERROR', 'Unknown error occurred. Please contact support.'),\n }\n }\n\n return {\n success: false,\n error: createError(serviceError.data.code, serviceError.data.message),\n }\n }\n\n const serviceData = responseSchema.safeParse(fetchDataResult.data)\n\n if (!serviceData.success) {\n return {\n success: false,\n error: createError('INVALID_RESPONSE', 'Invalid response. Please contact support'),\n }\n }\n\n return { success: true, data: serviceData.data }\n },\n )\n\n const search = async (query: string) =>\n request({\n path: '/vector/registry/search',\n query: { query },\n responseSchema: z.object({\n results: registryApiMetadata.array(),\n }),\n })\n\n const getDocument = async (params: { namespace: string; slug: string }) =>\n request({\n path: `/vector/registry/document/${params.namespace}/${params.slug}`,\n responseSchema: registryApiMetadata,\n })\n\n const getKeyDocuments = async () =>\n request({\n path: '/vector/registry/documents',\n responseSchema: z.object({ documents: registryApiMetadata.array() }),\n })\n\n const getCuratedDocuments = async () =>\n request({\n path: '/vector/registry/curated',\n responseSchema: z.object({\n results: registryApiMetadata.array(),\n }),\n })\n\n return {\n search,\n getDocument,\n getKeyDocuments,\n getCuratedDocuments,\n }\n}\n\nexport type Api = ReturnType<typeof createApi>\n"],"mappings":";;;;;AAMA,SAAgB,EAA2B,EACzC,mBACA,kBAIC;CACD,IAAM,IAAQ,KAAkB,EAC1B,IAAW,KAAe;AAEhC,QAAO;EACL,GAAI,KAAS,EACX,eAAe,UAAU,KAC1B;EACD,GAAI,KAAY,EACd,sBAAsB,GACvB;EACF;;AAIH,SAAgB,EAAU,EACxB,YACA,mBACA,kBAKC;CACD,IAAM,IAAU,EAAE,OAChB,OAA4B,EAC1B,SACA,YAAS,OACT,UACA,SACA,wBAOI;EACJ,IAAM,IAAM,GAAG,IAAU,IAAO,IAAQ,IAAI,IAAI,gBAAgB,EAAM,KAAK,MAErE,IAAc,MAAM,EAAE,WAC1B,YACE,MAAM,GAAK;GACT;GACA,GAAI,KAAQ,EAAE,MAAM,KAAK,UAAU,EAAK,EAAE;GAC1C,SAAS,EACP,GAAG,EAA2B;IAAE;IAAgB;IAAa,CAAC,EAC/D;GACF,CAAC,GACH,MAAkB,EAAY,mBAAmB,EAAc,CACjE;AAED,MAAI,CAAC,EAAY,QACf,QAAO;EAGT,IAAM,IAAkB,MAAM,EAAE,WAC9B,YAAY,EAAY,KAAK,MAAM,GAClC,MAAkB,EAAY,wBAAwB,EAAc,CACtE;AAED,MAAI,CAAC,EAAgB,QACnB,QAAO;GACL,SAAS;GACT,OAAO,EAAY,iBAAiB,kDAAkD;GACvF;AAGH,MAAI,CAAC,EAAY,KAAK,IAAI;GACxB,IAAM,IAAe,EAAE,OAAO;IAAE,SAAS,EAAE,QAAQ;IAAE,MAAM,EAAE,QAAQ;IAAE,CAAC,CAAC,UAAU,EAAgB,KAAK;AASxG,UAPK,EAAa,UAOX;IACL,SAAS;IACT,OAAO,EAAY,EAAa,KAAK,MAAM,EAAa,KAAK,QAAQ;IACtE,GATQ;IACL,SAAS;IACT,OAAO,EAAY,iBAAiB,kDAAkD;IACvF;;EASL,IAAM,IAAc,EAAe,UAAU,EAAgB,KAAK;AASlE,SAPK,EAAY,UAOV;GAAE,SAAS;GAAM,MAAM,EAAY;GAAM,GANvC;GACL,SAAS;GACT,OAAO,EAAY,oBAAoB,2CAA2C;GACnF;GAKN;AA+BD,QAAO;EACL,QA9Ba,OAAO,MACpB,EAAQ;GACN,MAAM;GACN,OAAO,EAAE,UAAO;GAChB,gBAAgB,EAAE,OAAO,EACvB,SAAS,EAAoB,OAAO,EACrC,CAAC;GACH,CAAC;EAwBF,aAtBkB,OAAO,MACzB,EAAQ;GACN,MAAM,6BAA6B,EAAO,UAAU,GAAG,EAAO;GAC9D,gBAAgB;GACjB,CAAC;EAmBF,iBAjBsB,YACtB,EAAQ;GACN,MAAM;GACN,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAoB,OAAO,EAAE,CAAC;GACrE,CAAC;EAcF,qBAZ0B,YAC1B,EAAQ;GACN,MAAM;GACN,gBAAgB,EAAE,OAAO,EACvB,SAAS,EAAoB,OAAO,EACrC,CAAC;GACH,CAAC;EAOH"}
@@ -2,7 +2,7 @@ import type { Chat } from '@ai-sdk/vue';
2
2
  import type { SecuritySchemeObjectSecret } from '@scalar/api-client/v2/blocks/scalar-auth-selector-block';
3
3
  import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
4
4
  import type { UIDataTypes, UIMessage } from 'ai';
5
- import type { Tools } from '../state/state';
5
+ import type { Tools } from '../state/state.js';
6
6
  /**
7
7
  * Executes an HTTP request with the specified options, including method, path, headers, and security schemes, and returns the processed response.
8
8
  */
@@ -0,0 +1,88 @@
1
+ import { createError as e } from "../entities/error/helpers.js";
2
+ import "../entities/tools/constants.js";
3
+ import { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME as t } from "../entities/tools/execute-request.js";
4
+ import { createDocumentName as n } from "../registry/create-document-name.js";
5
+ import { n as r } from "neverpanic";
6
+ import { buildRequestSecurity as i, getResolvedUrl as a } from "@scalar/api-client/v2/blocks/operation-block";
7
+ import { redirectToProxy as o } from "@scalar/helpers/url/redirect-to-proxy";
8
+ import s from "truncate-json";
9
+ //#region src/client-tools/execute-request.ts
10
+ var c = 5e4, l = r.safeFn(async (e) => e.headers.get("content-type") === "application/json" ? {
11
+ success: !0,
12
+ data: await e.json()
13
+ } : {
14
+ success: !0,
15
+ data: await e.text()
16
+ }, (t) => e("FAILED_TO_PARSE_RESPONSE_BODY", { originalError: t })), u = (e) => JSON.parse(s(JSON.stringify(e), c).jsonString), d = r.safeFn(async (t, n) => {
17
+ let r = await fetch(t, n), i = await l(r);
18
+ return r.ok ? i.success ? {
19
+ success: !0,
20
+ data: {
21
+ status: r.status,
22
+ responseBody: u(i.data),
23
+ headers: Object.fromEntries(r.headers.entries())
24
+ }
25
+ } : i : {
26
+ success: !1,
27
+ error: e("REQUEST_NOT_OK", {
28
+ status: r.status,
29
+ url: r.url,
30
+ responseBody: u(i.success ? i.data : void 0),
31
+ headers: Object.fromEntries(r.headers.entries())
32
+ })
33
+ };
34
+ }, (t) => e("FAILED_TO_FETCH", { originalError: t }));
35
+ function f({ path: e, activeServer: t, proxyUrl: n }) {
36
+ return o(n, a({
37
+ path: e,
38
+ server: t,
39
+ pathVariables: {},
40
+ environment: {
41
+ color: "",
42
+ variables: []
43
+ }
44
+ }));
45
+ }
46
+ var p = r.safeFn(async ({ documentSettings: r, toolCallId: a, chat: o, proxyUrl: s, input: { method: c, path: l, body: u, headers: p, documentIdentifier: m } }) => {
47
+ let [h, g] = m.split("---");
48
+ if (!h || !g) return {
49
+ success: !1,
50
+ error: e("FAILED_TO_DETERMINE_DOCUMENT", {
51
+ namespace: h,
52
+ slug: g,
53
+ documentIdentifier: m
54
+ })
55
+ };
56
+ let _ = n(h, g), v = r[_];
57
+ if (!v) return {
58
+ success: !1,
59
+ error: e("DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED", {
60
+ documentName: _,
61
+ namespace: h,
62
+ slug: g
63
+ })
64
+ };
65
+ let y = i(v.securitySchemes), b = {
66
+ method: c,
67
+ body: u,
68
+ ...y,
69
+ headers: {
70
+ ...p,
71
+ ...y.headers
72
+ }
73
+ }, x = await d(f({
74
+ path: l,
75
+ activeServer: v.activeServer,
76
+ proxyUrl: s
77
+ }), b);
78
+ return o.addToolOutput({
79
+ tool: t,
80
+ toolCallId: a,
81
+ output: x,
82
+ state: "output-available"
83
+ }), x;
84
+ }, (t) => e("FAILED_TO_EXECUTE_REQUEST", t));
85
+ //#endregion
86
+ export { p as executeRequestTool };
87
+
88
+ //# sourceMappingURL=execute-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-request.js","names":[],"sources":["../../src/client-tools/execute-request.ts"],"sourcesContent":["import type { Chat } from '@ai-sdk/vue'\nimport { buildRequestSecurity, getResolvedUrl } from '@scalar/api-client/v2/blocks/operation-block'\nimport type { SecuritySchemeObjectSecret } from '@scalar/api-client/v2/blocks/scalar-auth-selector-block'\nimport { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { UIDataTypes, UIMessage } from 'ai'\nimport { n } from 'neverpanic'\nimport truncateJson from 'truncate-json'\n\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, TOOL_NAMESPACE_SLUG_DELIMITER } from '@/entities'\nimport { createError } from '@/entities/error/helpers'\nimport { createDocumentName } from '@/registry/create-document-name'\nimport type { Tools } from '@/state/state'\n\n// The maximum number of bytes the requests response can be.\nconst MAX_RESPONSE_SIZE = 50_000\n\nconst getBody = n.safeFn(\n async (response: Response) => {\n const contentType = response.headers.get('content-type')\n\n if (contentType === 'application/json') {\n return { success: true, data: await response.json() }\n }\n\n return { success: true, data: await response.text() }\n },\n (originalError) => createError('FAILED_TO_PARSE_RESPONSE_BODY', { originalError }),\n)\n\nconst truncateResponse = (response: unknown) =>\n JSON.parse(truncateJson(JSON.stringify(response), MAX_RESPONSE_SIZE).jsonString)\n\n/* Result type wrapper for fetch */\nconst safeFetch = n.safeFn(\n async (url: string, init: RequestInit) => {\n const response = await fetch(url, init)\n\n const responseBodyResult = await getBody(response)\n\n if (!response.ok) {\n return {\n success: false,\n error: createError('REQUEST_NOT_OK', {\n status: response.status,\n url: response.url,\n responseBody: truncateResponse(responseBodyResult.success ? responseBodyResult.data : undefined),\n headers: Object.fromEntries(response.headers.entries()),\n }),\n }\n }\n\n if (!responseBodyResult.success) {\n return responseBodyResult\n }\n\n return {\n success: true,\n data: {\n status: response.status,\n responseBody: truncateResponse(responseBodyResult.data),\n headers: Object.fromEntries(response.headers.entries()),\n },\n }\n },\n (originalError) => createError('FAILED_TO_FETCH', { originalError }),\n)\n\nfunction createUrl({\n path,\n activeServer,\n proxyUrl,\n}: {\n path: string\n activeServer: ServerObject | null\n proxyUrl: string\n}) {\n const resolvedUrl = getResolvedUrl({\n path,\n server: activeServer,\n pathVariables: {},\n environment: {\n color: '',\n variables: [],\n },\n })\n\n return redirectToProxy(proxyUrl, resolvedUrl)\n}\n\n/**\n * Executes an HTTP request with the specified options, including method, path, headers, and security schemes, and returns the processed response.\n */\nexport const executeRequestTool = n.safeFn(\n async ({\n documentSettings,\n toolCallId,\n chat,\n proxyUrl,\n input: { method, path, body, headers, documentIdentifier },\n }: {\n documentSettings: Record<\n string,\n { activeServer: ServerObject | null; securitySchemes: SecuritySchemeObjectSecret[] }\n >\n toolCallId: string\n chat: Chat<UIMessage<unknown, UIDataTypes, Tools>>\n proxyUrl: string\n input: {\n method: string\n path: string\n headers?: Record<string, string>\n body?: string\n documentIdentifier: string\n }\n }) => {\n const [namespace, slug] = documentIdentifier.split(TOOL_NAMESPACE_SLUG_DELIMITER)\n if (!namespace || !slug) {\n return {\n success: false,\n error: createError('FAILED_TO_DETERMINE_DOCUMENT', { namespace, slug, documentIdentifier }),\n }\n }\n\n const documentName = createDocumentName(namespace, slug)\n const settings = documentSettings[documentName]\n\n if (!settings) {\n return {\n success: false,\n error: createError('DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED', {\n documentName,\n namespace,\n slug,\n }),\n }\n }\n\n const requestSecurityOptions = buildRequestSecurity(settings.securitySchemes)\n\n const fetchOptions = {\n method,\n body,\n ...requestSecurityOptions,\n headers: {\n ...headers,\n ...requestSecurityOptions.headers,\n },\n }\n\n const url = createUrl({\n path,\n activeServer: settings.activeServer,\n proxyUrl,\n })\n\n const result = await safeFetch(url, fetchOptions)\n\n chat.addToolOutput({\n tool: EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n toolCallId,\n output: result,\n state: 'output-available',\n })\n\n return result\n },\n (originalError) => createError('FAILED_TO_EXECUTE_REQUEST', originalError),\n)\n"],"mappings":";;;;;;;;;AAeA,IAAM,IAAoB,KAEpB,IAAU,EAAE,OAChB,OAAO,MACe,EAAS,QAAQ,IAAI,eAAe,KAEpC,qBACX;CAAE,SAAS;CAAM,MAAM,MAAM,EAAS,MAAM;CAAE,GAGhD;CAAE,SAAS;CAAM,MAAM,MAAM,EAAS,MAAM;CAAE,GAEtD,MAAkB,EAAY,iCAAiC,EAAE,kBAAe,CAAC,CACnF,EAEK,KAAoB,MACxB,KAAK,MAAM,EAAa,KAAK,UAAU,EAAS,EAAE,EAAkB,CAAC,WAAW,EAG5E,IAAY,EAAE,OAClB,OAAO,GAAa,MAAsB;CACxC,IAAM,IAAW,MAAM,MAAM,GAAK,EAAK,EAEjC,IAAqB,MAAM,EAAQ,EAAS;AAkBlD,QAhBK,EAAS,KAYT,EAAmB,UAIjB;EACL,SAAS;EACT,MAAM;GACJ,QAAQ,EAAS;GACjB,cAAc,EAAiB,EAAmB,KAAK;GACvD,SAAS,OAAO,YAAY,EAAS,QAAQ,SAAS,CAAC;GACxD;EACF,GAVQ,IAZA;EACL,SAAS;EACT,OAAO,EAAY,kBAAkB;GACnC,QAAQ,EAAS;GACjB,KAAK,EAAS;GACd,cAAc,EAAiB,EAAmB,UAAU,EAAmB,OAAO,KAAA,EAAU;GAChG,SAAS,OAAO,YAAY,EAAS,QAAQ,SAAS,CAAC;GACxD,CAAC;EACH;IAgBJ,MAAkB,EAAY,mBAAmB,EAAE,kBAAe,CAAC,CACrE;AAED,SAAS,EAAU,EACjB,SACA,iBACA,eAKC;AAWD,QAAO,EAAgB,GAVH,EAAe;EACjC;EACA,QAAQ;EACR,eAAe,EAAE;EACjB,aAAa;GACX,OAAO;GACP,WAAW,EAAE;GACd;EACF,CAAC,CAE2C;;AAM/C,IAAa,IAAqB,EAAE,OAClC,OAAO,EACL,qBACA,eACA,SACA,aACA,OAAO,EAAE,WAAQ,SAAM,SAAM,YAAS,8BAgBlC;CACJ,IAAM,CAAC,GAAW,KAAQ,EAAmB,MAAA,MAAoC;AACjF,KAAI,CAAC,KAAa,CAAC,EACjB,QAAO;EACL,SAAS;EACT,OAAO,EAAY,gCAAgC;GAAE;GAAW;GAAM;GAAoB,CAAC;EAC5F;CAGH,IAAM,IAAe,EAAmB,GAAW,EAAK,EAClD,IAAW,EAAiB;AAElC,KAAI,CAAC,EACH,QAAO;EACL,SAAS;EACT,OAAO,EAAY,6CAA6C;GAC9D;GACA;GACA;GACD,CAAC;EACH;CAGH,IAAM,IAAyB,EAAqB,EAAS,gBAAgB,EAEvE,IAAe;EACnB;EACA;EACA,GAAG;EACH,SAAS;GACP,GAAG;GACH,GAAG,EAAuB;GAC3B;EACF,EAQK,IAAS,MAAM,EANT,EAAU;EACpB;EACA,cAAc,EAAS;EACvB;EACD,CAAC,EAEkC,EAAa;AASjD,QAPA,EAAK,cAAc;EACjB,MAAM;EACN;EACA,QAAQ;EACR,OAAO;EACR,CAAC,EAEK;IAER,MAAkB,EAAY,6BAA6B,EAAc,CAC3E"}
@@ -0,0 +1,9 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./ActionsDropdown.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/ActionsDropdown.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-2d142bb5"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=ActionsDropdown.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsDropdown.vue.js","names":[],"sources":["../../src/components/ActionsDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarDropdown,\n ScalarDropdownItem,\n useModal,\n} from '@scalar/components'\nimport { ScalarIconMagnifyingGlass, ScalarIconUpload } from '@scalar/icons'\n\nimport Catalog from '@/views/Catalog/Catalog.vue'\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst catalogModal = useModal()\n</script>\n\n<template>\n <ScalarDropdown :offset=\"{ crossAxis: -5, mainAxis: 5 }\">\n <slot />\n\n <template #items>\n <ScalarDropdownItem @click=\"$emit('uploadApi')\">\n <div class=\"dropdown-item\">\n <ScalarIconUpload />\n Upload API\n </div>\n </ScalarDropdownItem>\n\n <ScalarDropdownItem @click=\"catalogModal.show()\">\n <div class=\"dropdown-item\">\n <ScalarIconMagnifyingGlass />\n Search Catalog\n </div>\n </ScalarDropdownItem>\n </template>\n </ScalarDropdown>\n\n <Catalog\n v-if=\"catalogModal.open\"\n :modal=\"catalogModal\" />\n</template>\n\n<style scoped>\n.dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import e from "../views/Catalog/Catalog.vue.js";
2
+ import { Fragment as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineComponent as c, openBlock as l, renderSlot as u, unref as d, withCtx as f } from "vue";
3
+ import { ScalarDropdown as p, ScalarDropdownItem as m, useModal as h } from "@scalar/components";
4
+ import { ScalarIconMagnifyingGlass as g, ScalarIconUpload as _ } from "@scalar/icons";
5
+ //#region src/components/ActionsDropdown.vue?vue&type=script&setup=true&lang.ts
6
+ var v = { class: "dropdown-item" }, y = { class: "dropdown-item" }, b = /* @__PURE__ */ c({
7
+ __name: "ActionsDropdown",
8
+ emits: ["uploadApi"],
9
+ setup(c) {
10
+ let b = h();
11
+ return (c, h) => (l(), i(t, null, [s(d(p), { offset: {
12
+ crossAxis: -5,
13
+ mainAxis: 5
14
+ } }, {
15
+ items: f(() => [s(d(m), { onClick: h[0] ||= (e) => c.$emit("uploadApi") }, {
16
+ default: f(() => [a("div", v, [s(d(_)), h[2] ||= o(" Upload API ", -1)])]),
17
+ _: 1
18
+ }), s(d(m), { onClick: h[1] ||= (e) => d(b).show() }, {
19
+ default: f(() => [a("div", y, [s(d(g)), h[3] ||= o(" Search Catalog ", -1)])]),
20
+ _: 1
21
+ })]),
22
+ default: f(() => [u(c.$slots, "default", {}, void 0, !0)]),
23
+ _: 3
24
+ }), d(b).open ? (l(), n(e, {
25
+ key: 0,
26
+ modal: d(b)
27
+ }, null, 8, ["modal"])) : r("", !0)], 64));
28
+ }
29
+ });
30
+ //#endregion
31
+ export { b as default };
32
+
33
+ //# sourceMappingURL=ActionsDropdown.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsDropdown.vue.script.js","names":["$emit"],"sources":["../../src/components/ActionsDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarDropdown,\n ScalarDropdownItem,\n useModal,\n} from '@scalar/components'\nimport { ScalarIconMagnifyingGlass, ScalarIconUpload } from '@scalar/icons'\n\nimport Catalog from '@/views/Catalog/Catalog.vue'\n\ndefineEmits<{\n (e: 'uploadApi'): void\n}>()\n\nconst catalogModal = useModal()\n</script>\n\n<template>\n <ScalarDropdown :offset=\"{ crossAxis: -5, mainAxis: 5 }\">\n <slot />\n\n <template #items>\n <ScalarDropdownItem @click=\"$emit('uploadApi')\">\n <div class=\"dropdown-item\">\n <ScalarIconUpload />\n Upload API\n </div>\n </ScalarDropdownItem>\n\n <ScalarDropdownItem @click=\"catalogModal.show()\">\n <div class=\"dropdown-item\">\n <ScalarIconMagnifyingGlass />\n Search Catalog\n </div>\n </ScalarDropdownItem>\n </template>\n </ScalarDropdown>\n\n <Catalog\n v-if=\"catalogModal.open\"\n :modal=\"catalogModal\" />\n</template>\n\n<style scoped>\n.dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n</style>\n"],"mappings":";;;;;;;;;EAcA,IAAM,IAAe,GAAS;qCAI5B,EAkBiB,EAAA,EAAA,EAAA,EAlBA,QAAQ;GAAA,WAAA;GAAA,UAAA;GAA8B,EAAA,EAAA;GAG1C,OAAK,QAMO,CALrB,EAKqB,EAAA,EAAA,EAAA,EALA,SAAK,AAAA,EAAA,QAAA,MAAEA,EAAAA,MAAK,YAAA,EAAA,EAAA;qBAIzB,CAHN,EAGM,OAHN,GAGM,CAFJ,EAAoB,EAAA,EAAA,CAAA,EAAA,AAAA,EAAA,OAAA,EAAA,gBAEtB,GAAA,CAAA,CAAA,CAAA,CAAA;;OAGF,EAKqB,EAAA,EAAA,EAAA,EALA,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAY,CAAC,MAAI,EAAA,EAAA;qBAIrC,CAHN,EAGM,OAHN,GAGM,CAFJ,EAA6B,EAAA,EAAA,CAAA,EAAA,AAAA,EAAA,OAAA,EAAA,oBAE/B,GAAA,CAAA,CAAA,CAAA,CAAA;;;oBAdI,CAAR,EAAQ,EAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,GAAA,CAAA,CAAA;;MAoBF,EAAA,EAAY,CAAC,QAAA,GAAA,EADrB,EAE0B,GAAA;;GAAvB,OAAO,EAAA,EAAY"}
@@ -0,0 +1,9 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./ApprovalSection.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/ApprovalSection.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-a7e6c699"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=ApprovalSection.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalSection.vue.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n type=\"button\"\n class=\"actionButton rejectButton\"\n @click=\"emit('reject')\">\n Reject\n </button>\n <button\n type=\"button\"\n class=\"actionButton approveButton\"\n @click=\"emit('approve')\">\n Approve\n </button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.approvalSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 16px 16px 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.approvalText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.approveContainer {\n display: flex;\n gap: 5px;\n}\n\n.actionButton {\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n border-radius: 50px;\n padding: 6px 12px;\n font-size: var(--scalar-font-size-3);\n}\n\n.rejectButton {\n color: white;\n background: var(--scalar-color-red);\n}\n.rejectButton:hover,\n.rejectButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n\n.approveButton {\n color: white;\n background: var(--scalar-color-blue);\n}\n.approveButton:hover,\n.approveButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { createElementBlock as e, createElementVNode as t, createTextVNode as n, createVNode as r, defineComponent as i, openBlock as a, unref as o } from "vue";
2
+ import { ScalarIconInfo as s } from "@scalar/icons";
3
+ //#region src/components/ApprovalSection.vue?vue&type=script&setup=true&lang.ts
4
+ var c = { class: "approvalSection" }, l = { class: "approvalText flex items-center gap-1.5" }, u = { class: "approveContainer" }, d = /* @__PURE__ */ i({
5
+ __name: "ApprovalSection",
6
+ emits: ["approve", "reject"],
7
+ setup(i, { emit: d }) {
8
+ let f = d;
9
+ return (i, d) => (a(), e("div", c, [t("strong", l, [r(o(s), {
10
+ class: "text-blue size-4",
11
+ weight: "bold"
12
+ }), d[2] ||= n(" One or more requests require approval. ", -1)]), t("div", u, [t("button", {
13
+ type: "button",
14
+ class: "actionButton rejectButton",
15
+ onClick: d[0] ||= (e) => f("reject")
16
+ }, " Reject "), t("button", {
17
+ type: "button",
18
+ class: "actionButton approveButton",
19
+ onClick: d[1] ||= (e) => f("approve")
20
+ }, " Approve ")])]));
21
+ }
22
+ });
23
+ //#endregion
24
+ export { d as default };
25
+
26
+ //# sourceMappingURL=ApprovalSection.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalSection.vue.script.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n type=\"button\"\n class=\"actionButton rejectButton\"\n @click=\"emit('reject')\">\n Reject\n </button>\n <button\n type=\"button\"\n class=\"actionButton approveButton\"\n @click=\"emit('approve')\">\n Approve\n </button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.approvalSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 16px 16px 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.approvalText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.approveContainer {\n display: flex;\n gap: 5px;\n}\n\n.actionButton {\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n border-radius: 50px;\n padding: 6px 12px;\n font-size: var(--scalar-font-size-3);\n}\n\n.rejectButton {\n color: white;\n background: var(--scalar-color-red);\n}\n.rejectButton:hover,\n.rejectButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n\n.approveButton {\n color: white;\n background: var(--scalar-color-blue);\n}\n.approveButton:hover,\n.approveButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n</style>\n"],"mappings":";;;;;;;EAGA,IAAM,IAAO;yBAOX,EAqBM,OArBN,GAqBM,CApBJ,EAKS,UALT,GAKS,CAJP,EAEkB,EAAA,EAAA,EAAA;GADhB,OAAM;GACN,QAAO;iBAAS,4CAEpB,GAAA,CAAA,CAAA,EACA,EAaM,OAbN,GAaM,CAZJ,EAKS,UAAA;GAJP,MAAK;GACL,OAAM;GACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,SAAA;KAAY,WAE1B,EACA,EAKS,UAAA;GAJP,MAAK;GACL,OAAM;GACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,UAAA;KAAa,YAE3B,CAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,13 @@
1
+ /* empty css */
2
+ import e from "../_virtual/_plugin-vue_export-helper.js";
3
+ import { createElementBlock as t, createStaticVNode as n, openBlock as r } from "vue";
4
+ //#region src/components/AuthenticationProvided.vue
5
+ var i = {}, a = { class: "authenticationProvided" };
6
+ function o(e, i) {
7
+ return r(), t("div", a, [...i[0] ||= [n("<svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\" data-v-e3416cd5><rect height=\"14.25\" rx=\"7.125\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-e3416cd5></rect><rect height=\"14.25\" rx=\"7.125\" stroke=\"currentColor\" stroke-width=\"1.75\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-e3416cd5></rect><g clip-path=\"url(#clip0_74_840)\" data-v-e3416cd5><path d=\"M11.6037 6.841L7.59117 10.8535C7.49742 10.9472 7.37029 10.9998 7.23774 10.9998C7.10519 10.9998 6.97806 10.9472 6.8843 10.8535L4.64617 8.6035C4.55257 8.50975 4.5 8.38269 4.5 8.25022C4.5 8.11774 4.55257 7.99068 4.64617 7.89694L5.27117 7.27194C5.36488 7.17862 5.49174 7.12623 5.62399 7.12623C5.75623 7.12623 5.88309 7.17862 5.9768 7.27194L7.25024 8.50694L10.274 5.52037C10.3677 5.42696 10.4946 5.37451 10.627 5.37451C10.7593 5.37451 10.8862 5.42696 10.9799 5.52037L11.6034 6.131C11.6502 6.17746 11.6875 6.23274 11.7129 6.29366C11.7383 6.35458 11.7514 6.41993 11.7514 6.48593C11.7514 6.55194 11.7384 6.6173 11.713 6.67824C11.6877 6.73918 11.6505 6.7945 11.6037 6.841Z\" fill=\"currentColor\" data-v-e3416cd5></path></g><defs data-v-e3416cd5><clipPath id=\"clip0_74_840\" data-v-e3416cd5><rect height=\"8\" rx=\"4\" width=\"8\" x=\"4\" y=\"4\" data-v-e3416cd5></rect></clipPath></defs></svg> Authorized ", 2)]]);
8
+ }
9
+ var s = /* @__PURE__ */ e(i, [["render", o], ["__scopeId", "data-v-e3416cd5"]]);
10
+ //#endregion
11
+ export { s as default };
12
+
13
+ //# sourceMappingURL=AuthenticationProvided.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationProvided.vue.js","names":[],"sources":["../../src/components/AuthenticationProvided.vue"],"sourcesContent":["<template>\n <div class=\"authenticationProvided\">\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <g clip-path=\"url(#clip0_74_840)\">\n <path\n d=\"M11.6037 6.841L7.59117 10.8535C7.49742 10.9472 7.37029 10.9998 7.23774 10.9998C7.10519 10.9998 6.97806 10.9472 6.8843 10.8535L4.64617 8.6035C4.55257 8.50975 4.5 8.38269 4.5 8.25022C4.5 8.11774 4.55257 7.99068 4.64617 7.89694L5.27117 7.27194C5.36488 7.17862 5.49174 7.12623 5.62399 7.12623C5.75623 7.12623 5.88309 7.17862 5.9768 7.27194L7.25024 8.50694L10.274 5.52037C10.3677 5.42696 10.4946 5.37451 10.627 5.37451C10.7593 5.37451 10.8862 5.42696 10.9799 5.52037L11.6034 6.131C11.6502 6.17746 11.6875 6.23274 11.7129 6.29366C11.7383 6.35458 11.7514 6.41993 11.7514 6.48593C11.7514 6.55194 11.7384 6.6173 11.713 6.67824C11.6877 6.73918 11.6505 6.7945 11.6037 6.841Z\"\n fill=\"currentColor\" />\n </g>\n <defs>\n <clipPath id=\"clip0_74_840\">\n <rect\n height=\"8\"\n rx=\"4\"\n width=\"8\"\n x=\"4\"\n y=\"4\" />\n </clipPath>\n </defs>\n </svg>\n Authorized\n </div>\n</template>\n\n<style scoped>\n.authenticationProvided {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--scalar-color-1);\n font-weight: var(--scalar-semibold);\n min-height: 40px;\n font-size: var(--scalar-font-size-3);\n position: relative;\n}\n</style>\n"],"mappings":";;;;kBACO,OAAM,0BAAwB;;aAAnC,EAsCM,OAtCN,GAsCM,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAA,izCAAA,EAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,13 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ /* empty css */
3
+ import { createElementBlock as t, createStaticVNode as n, openBlock as r } from "vue";
4
+ //#region src/components/AuthenticationRequired.vue
5
+ var i = {}, a = { class: "authenticationRequired" };
6
+ function o(e, i) {
7
+ return r(), t("div", a, [...i[0] ||= [n("<svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\" data-v-d15ef40b><rect height=\"14.25\" rx=\"7.125\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-d15ef40b></rect><rect height=\"14.25\" rx=\"7.125\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-d15ef40b></rect><g clip-path=\"url(#clip0_74_585)\" data-v-d15ef40b><path d=\"M10.75 5.5V10.5C10.75 10.6326 10.6973 10.7598 10.6036 10.8536C10.5098 10.9473 10.3826 11 10.25 11H9C8.86739 11 8.74021 10.9473 8.64645 10.8536C8.55268 10.7598 8.5 10.6326 8.5 10.5V5.5C8.5 5.36739 8.55268 5.24021 8.64645 5.14645C8.74021 5.05268 8.86739 5 9 5H10.25C10.3826 5 10.5098 5.05268 10.6036 5.14645C10.6973 5.24021 10.75 5.36739 10.75 5.5ZM7 5H5.75C5.61739 5 5.49021 5.05268 5.39645 5.14645C5.30268 5.24021 5.25 5.36739 5.25 5.5V10.5C5.25 10.6326 5.30268 10.7598 5.39645 10.8536C5.49021 10.9473 5.61739 11 5.75 11H7C7.13261 11 7.25979 10.9473 7.35355 10.8536C7.44732 10.7598 7.5 10.6326 7.5 10.5V5.5C7.5 5.36739 7.44732 5.24021 7.35355 5.14645C7.25979 5.05268 7.13261 5 7 5Z\" fill=\"currentColor\" data-v-d15ef40b></path></g><defs data-v-d15ef40b><clipPath id=\"clip0_74_585\" data-v-d15ef40b><rect height=\"8\" rx=\"4\" width=\"8\" x=\"4\" y=\"4\" data-v-d15ef40b></rect></clipPath></defs></svg> Authentication required ", 2)]]);
8
+ }
9
+ var s = /* @__PURE__ */ e(i, [["render", o], ["__scopeId", "data-v-d15ef40b"]]);
10
+ //#endregion
11
+ export { s as default };
12
+
13
+ //# sourceMappingURL=AuthenticationRequired.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationRequired.vue.js","names":[],"sources":["../../src/components/AuthenticationRequired.vue"],"sourcesContent":["<template>\n <div class=\"authenticationRequired\">\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <g clip-path=\"url(#clip0_74_585)\">\n <path\n d=\"M10.75 5.5V10.5C10.75 10.6326 10.6973 10.7598 10.6036 10.8536C10.5098 10.9473 10.3826 11 10.25 11H9C8.86739 11 8.74021 10.9473 8.64645 10.8536C8.55268 10.7598 8.5 10.6326 8.5 10.5V5.5C8.5 5.36739 8.55268 5.24021 8.64645 5.14645C8.74021 5.05268 8.86739 5 9 5H10.25C10.3826 5 10.5098 5.05268 10.6036 5.14645C10.6973 5.24021 10.75 5.36739 10.75 5.5ZM7 5H5.75C5.61739 5 5.49021 5.05268 5.39645 5.14645C5.30268 5.24021 5.25 5.36739 5.25 5.5V10.5C5.25 10.6326 5.30268 10.7598 5.39645 10.8536C5.49021 10.9473 5.61739 11 5.75 11H7C7.13261 11 7.25979 10.9473 7.35355 10.8536C7.44732 10.7598 7.5 10.6326 7.5 10.5V5.5C7.5 5.36739 7.44732 5.24021 7.35355 5.14645C7.25979 5.05268 7.13261 5 7 5Z\"\n fill=\"currentColor\" />\n </g>\n <defs>\n <clipPath id=\"clip0_74_585\">\n <rect\n height=\"8\"\n rx=\"4\"\n width=\"8\"\n x=\"4\"\n y=\"4\" />\n </clipPath>\n </defs>\n </svg>\n Authentication required\n </div>\n</template>\n\n<style scoped>\n.authenticationRequired {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--scalar-color-blue);\n font-weight: var(--scalar-semibold);\n min-height: 40px;\n font-size: var(--scalar-font-size-3);\n position: relative;\n}\n</style>\n"],"mappings":";;;;kBACO,OAAM,0BAAwB;;aAAnC,EAsCM,OAtCN,GAsCM,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAA,+0CAAA,EAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,13 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ /* empty css */
3
+ import { createElementBlock as t, createStaticVNode as n, openBlock as r } from "vue";
4
+ //#region src/components/AutosendPaused.vue
5
+ var i = {}, a = { class: "autosendPaused" };
6
+ function o(e, i) {
7
+ return r(), t("div", a, [...i[0] ||= [n("<svg fill=\"none\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\" data-v-d08225db><rect height=\"14.25\" rx=\"7.125\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-d08225db></rect><rect height=\"14.25\" rx=\"7.125\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-d08225db></rect><g clip-path=\"url(#clip0_74_585)\" data-v-d08225db><path d=\"M10.75 5.5V10.5C10.75 10.6326 10.6973 10.7598 10.6036 10.8536C10.5098 10.9473 10.3826 11 10.25 11H9C8.86739 11 8.74021 10.9473 8.64645 10.8536C8.55268 10.7598 8.5 10.6326 8.5 10.5V5.5C8.5 5.36739 8.55268 5.24021 8.64645 5.14645C8.74021 5.05268 8.86739 5 9 5H10.25C10.3826 5 10.5098 5.05268 10.6036 5.14645C10.6973 5.24021 10.75 5.36739 10.75 5.5ZM7 5H5.75C5.61739 5 5.49021 5.05268 5.39645 5.14645C5.30268 5.24021 5.25 5.36739 5.25 5.5V10.5C5.25 10.6326 5.30268 10.7598 5.39645 10.8536C5.49021 10.9473 5.61739 11 5.75 11H7C7.13261 11 7.25979 10.9473 7.35355 10.8536C7.44732 10.7598 7.5 10.6326 7.5 10.5V5.5C7.5 5.36739 7.44732 5.24021 7.35355 5.14645C7.25979 5.05268 7.13261 5 7 5Z\" fill=\"currentColor\" data-v-d08225db></path></g><defs data-v-d08225db><clipPath id=\"clip0_74_585\" data-v-d08225db><rect height=\"8\" rx=\"4\" width=\"8\" x=\"4\" y=\"4\" data-v-d08225db></rect></clipPath></defs></svg> Accept Request to Continue ", 2)]]);
8
+ }
9
+ var s = /* @__PURE__ */ e(i, [["render", o], ["__scopeId", "data-v-d08225db"]]);
10
+ //#endregion
11
+ export { s as default };
12
+
13
+ //# sourceMappingURL=AutosendPaused.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutosendPaused.vue.js","names":[],"sources":["../../src/components/AutosendPaused.vue"],"sourcesContent":["<template>\n <div class=\"autosendPaused\">\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <rect\n height=\"14.25\"\n rx=\"7.125\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n width=\"14.25\"\n x=\"0.875\"\n y=\"0.875\" />\n <g clip-path=\"url(#clip0_74_585)\">\n <path\n d=\"M10.75 5.5V10.5C10.75 10.6326 10.6973 10.7598 10.6036 10.8536C10.5098 10.9473 10.3826 11 10.25 11H9C8.86739 11 8.74021 10.9473 8.64645 10.8536C8.55268 10.7598 8.5 10.6326 8.5 10.5V5.5C8.5 5.36739 8.55268 5.24021 8.64645 5.14645C8.74021 5.05268 8.86739 5 9 5H10.25C10.3826 5 10.5098 5.05268 10.6036 5.14645C10.6973 5.24021 10.75 5.36739 10.75 5.5ZM7 5H5.75C5.61739 5 5.49021 5.05268 5.39645 5.14645C5.30268 5.24021 5.25 5.36739 5.25 5.5V10.5C5.25 10.6326 5.30268 10.7598 5.39645 10.8536C5.49021 10.9473 5.61739 11 5.75 11H7C7.13261 11 7.25979 10.9473 7.35355 10.8536C7.44732 10.7598 7.5 10.6326 7.5 10.5V5.5C7.5 5.36739 7.44732 5.24021 7.35355 5.14645C7.25979 5.05268 7.13261 5 7 5Z\"\n fill=\"currentColor\" />\n </g>\n <defs>\n <clipPath id=\"clip0_74_585\">\n <rect\n height=\"8\"\n rx=\"4\"\n width=\"8\"\n x=\"4\"\n y=\"4\" />\n </clipPath>\n </defs>\n </svg>\n Accept Request to Continue\n </div>\n</template>\n\n<style scoped>\n.autosendPaused {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--scalar-color-blue);\n font-weight: var(--scalar-semibold);\n min-height: 40px;\n font-size: var(--scalar-font-size-3);\n position: relative;\n}\n</style>\n"],"mappings":";;;;kBACO,OAAM,kBAAgB;;aAA3B,EAsCM,OAtCN,GAsCM,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAA,k1CAAA,EAAA,CAAA,CAAA,CAAA"}