@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
@@ -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/RequestSuccess.vue
5
+ var i = {}, a = { class: "requestSuccess" };
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-acc2c0d8><rect height=\"14.25\" rx=\"7.125\" width=\"14.25\" x=\"0.875\" y=\"0.875\" data-v-acc2c0d8></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-acc2c0d8></rect><g clip-path=\"url(#clip0_74_840)\" data-v-acc2c0d8><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-acc2c0d8></path></g><defs data-v-acc2c0d8><clipPath id=\"clip0_74_840\" data-v-acc2c0d8><rect height=\"8\" rx=\"4\" width=\"8\" x=\"4\" y=\"4\" data-v-acc2c0d8></rect></clipPath></defs></svg> Request Succeeded ", 2)]]);
8
+ }
9
+ var s = /* @__PURE__ */ e(i, [["render", o], ["__scopeId", "data-v-acc2c0d8"]]);
10
+ //#endregion
11
+ export { s as default };
12
+
13
+ //# sourceMappingURL=RequestSuccess.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestSuccess.vue.js","names":[],"sources":["../../src/components/RequestSuccess.vue"],"sourcesContent":["<template>\n <div class=\"requestSuccess\">\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 Request Succeeded\n </div>\n</template>\n\n<style scoped>\n.requestSuccess {\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,kBAAgB;;aAA3B,EAsCM,OAtCN,GAsCM,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAA,wzCAAA,EAAA,CAAA,CAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type MIMEType from 'whatwg-mimetype';
2
- import { type MediaConfig } from '../../components/ResponseBody/helpers/media-types';
2
+ import { type MediaConfig } from '../../components/ResponseBody/helpers/media-types.js';
3
3
  type __VLS_Props = {
4
4
  data: unknown;
5
5
  responseBody: {
@@ -0,0 +1,7 @@
1
+ import e from "./ResponseBody.vue.script.js";
2
+ //#region src/components/ResponseBody/ResponseBody.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=ResponseBody.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBody.vue.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { watch } from 'vue'\nimport type MIMEType from 'whatwg-mimetype'\n\nimport { type MediaConfig } from '@/components/ResponseBody/helpers/media-types'\nimport ResponseBodyInfo from '@/components/ResponseBody/ResponseBodyInfo.vue'\nimport ResponseBodyPreview from '@/components/ResponseBody/ResponseBodyPreview.vue'\nimport ResponseBodyRaw from '@/components/ResponseBody/ResponseBodyRaw.vue'\n\nconst { data, responseBody, mediaConfig, display } = defineProps<{\n data: unknown\n responseBody: {\n mimeType?: MIMEType\n attachmentFilename: string\n dataUrl: string\n }\n mediaConfig?: MediaConfig\n display?: 'preview' | 'raw'\n}>()\n\nwatch(\n () => display,\n (v) => console.log(v),\n)\n</script>\n\n<template>\n <ResponseBodyRaw\n v-if=\"mediaConfig?.raw && display === 'raw' && mediaConfig.language\"\n :key=\"responseBody.dataUrl\"\n :content=\"data\"\n :language=\"mediaConfig.language\" />\n <ResponseBodyPreview\n v-if=\"mediaConfig?.preview && display === 'preview'\"\n :key=\"responseBody.dataUrl\"\n :alpha=\"mediaConfig.alpha\"\n :mode=\"mediaConfig.preview\"\n :src=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence ?? ''\" />\n <ResponseBodyInfo v-if=\"!mediaConfig?.raw && !mediaConfig?.preview\">\n Binary file\n </ResponseBodyInfo>\n</template>\n"],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import e from "./ResponseBodyInfo.vue.js";
2
+ import t from "./ResponseBodyPreview.vue.js";
3
+ import n from "./ResponseBodyRaw.vue.js";
4
+ import { Fragment as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createTextVNode as s, defineComponent as c, openBlock as l, watch as u, withCtx as d } from "vue";
5
+ //#region src/components/ResponseBody/ResponseBody.vue?vue&type=script&setup=true&lang.ts
6
+ var f = /* @__PURE__ */ c({
7
+ __name: "ResponseBody",
8
+ props: {
9
+ data: {},
10
+ responseBody: {},
11
+ mediaConfig: {},
12
+ display: {}
13
+ },
14
+ setup(c) {
15
+ return u(() => c.display, (e) => console.log(e)), (u, f) => (l(), o(r, null, [
16
+ c.mediaConfig?.raw && c.display === "raw" && c.mediaConfig.language ? (l(), i(n, {
17
+ key: c.responseBody.dataUrl,
18
+ content: c.data,
19
+ language: c.mediaConfig.language
20
+ }, null, 8, ["content", "language"])) : a("", !0),
21
+ c.mediaConfig?.preview && c.display === "preview" ? (l(), i(t, {
22
+ key: c.responseBody.dataUrl,
23
+ alpha: c.mediaConfig.alpha,
24
+ mode: c.mediaConfig.preview,
25
+ src: c.responseBody.dataUrl,
26
+ type: c.responseBody.mimeType?.essence ?? ""
27
+ }, null, 8, [
28
+ "alpha",
29
+ "mode",
30
+ "src",
31
+ "type"
32
+ ])) : a("", !0),
33
+ !c.mediaConfig?.raw && !c.mediaConfig?.preview ? (l(), i(e, { key: 2 }, {
34
+ default: d(() => [...f[0] ||= [s(" Binary file ", -1)]]),
35
+ _: 1
36
+ })) : a("", !0)
37
+ ], 64));
38
+ }
39
+ });
40
+ //#endregion
41
+ export { f as default };
42
+
43
+ //# sourceMappingURL=ResponseBody.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBody.vue.script.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { watch } from 'vue'\nimport type MIMEType from 'whatwg-mimetype'\n\nimport { type MediaConfig } from '@/components/ResponseBody/helpers/media-types'\nimport ResponseBodyInfo from '@/components/ResponseBody/ResponseBodyInfo.vue'\nimport ResponseBodyPreview from '@/components/ResponseBody/ResponseBodyPreview.vue'\nimport ResponseBodyRaw from '@/components/ResponseBody/ResponseBodyRaw.vue'\n\nconst { data, responseBody, mediaConfig, display } = defineProps<{\n data: unknown\n responseBody: {\n mimeType?: MIMEType\n attachmentFilename: string\n dataUrl: string\n }\n mediaConfig?: MediaConfig\n display?: 'preview' | 'raw'\n}>()\n\nwatch(\n () => display,\n (v) => console.log(v),\n)\n</script>\n\n<template>\n <ResponseBodyRaw\n v-if=\"mediaConfig?.raw && display === 'raw' && mediaConfig.language\"\n :key=\"responseBody.dataUrl\"\n :content=\"data\"\n :language=\"mediaConfig.language\" />\n <ResponseBodyPreview\n v-if=\"mediaConfig?.preview && display === 'preview'\"\n :key=\"responseBody.dataUrl\"\n :alpha=\"mediaConfig.alpha\"\n :mode=\"mediaConfig.preview\"\n :src=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence ?? ''\" />\n <ResponseBodyInfo v-if=\"!mediaConfig?.raw && !mediaConfig?.preview\">\n Binary file\n </ResponseBodyInfo>\n</template>\n"],"mappings":";;;;;;;;;;;;;;SAoBA,QACQ,EAAA,UACL,MAAM,QAAQ,IAAI,EAAE,CACvB;GAKU,EAAA,aAAa,OAAO,EAAA,YAAO,SAAc,EAAA,YAAY,YAAA,GAAA,EAD7D,EAIqC,GAAA;IAFlC,KAAK,EAAA,aAAa;IAClB,SAAS,EAAA;IACT,UAAU,EAAA,YAAY;;GAEjB,EAAA,aAAa,WAAW,EAAA,YAAO,aAAA,GAAA,EADvC,EAMiD,GAAA;IAJ9C,KAAK,EAAA,aAAa;IAClB,OAAO,EAAA,YAAY;IACnB,MAAM,EAAA,YAAY;IAClB,KAAK,EAAA,aAAa;IAClB,MAAM,EAAA,aAAa,UAAU,WAAO;;;;;;;IACd,EAAA,aAAa,OAAG,CAAK,EAAA,aAAa,WAAA,GAAA,EAA3D,EAEmB,GAAA,EAAA,KAAA,GAAA,EAAA;qBAAnB,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAFoE,iBAEpE,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,12 @@
1
+ import e from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import { createElementBlock as t, createElementVNode as n, openBlock as r, renderSlot as i } from "vue";
3
+ //#region src/components/ResponseBody/ResponseBodyInfo.vue
4
+ var a = {}, o = { class: "flex justify-center px-2 py-3" }, s = { class: "text-c-3 p-2 text-sm" };
5
+ function c(e, a) {
6
+ return r(), t("div", o, [n("div", s, [i(e.$slots, "default")])]);
7
+ }
8
+ var l = /* @__PURE__ */ e(a, [["render", c]]);
9
+ //#endregion
10
+ export { l as default };
11
+
12
+ //# sourceMappingURL=ResponseBodyInfo.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyInfo.vue.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyInfo.vue"],"sourcesContent":["<template>\n <div class=\"flex justify-center px-2 py-3\">\n <div class=\"text-c-3 p-2 text-sm\"><slot /></div>\n </div>\n</template>\n"],"mappings":";;;kBACO,OAAM,iCAA+B,QACnC,OAAM,wBAAsB;;aADnC,EAEM,OAFN,GAEM,CADJ,EAAgD,OAAhD,GAAgD,CAAd,EAAQ,EAAA,QAAA,UAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { type MediaPreview } from '../../components/ResponseBody/helpers/media-types';
1
+ import { type MediaPreview } from '../../components/ResponseBody/helpers/media-types.js';
2
2
  type __VLS_Props = {
3
3
  src: string;
4
4
  type: string;
@@ -0,0 +1,9 @@
1
+ import e from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./ResponseBodyPreview.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/ResponseBody/ResponseBodyPreview.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-92f84612"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=ResponseBodyPreview.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyPreview.vue.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyPreview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue'\n\nimport { type MediaPreview } from '@/components/ResponseBody/helpers/media-types'\nimport ResponseBodyInfo from '@/components/ResponseBody/ResponseBodyInfo.vue'\n\nconst {\n src,\n type,\n mode,\n alpha = false,\n} = defineProps<{\n src: string\n type: string\n mode: MediaPreview\n alpha?: boolean | undefined\n}>()\n\nconst error = ref(false)\n\nwatch(\n () => src,\n () => {\n error.value = false\n },\n)\n</script>\n<template>\n <div\n v-if=\"!error && src\"\n class=\"flex justify-center overflow-auto rounded-b\"\n :class=\"{ 'bg-preview p-2': alpha }\">\n <img\n v-if=\"mode === 'image'\"\n class=\"h-full max-w-full\"\n :class=\"{ rounded: alpha }\"\n :src=\"src\"\n @error=\"error = true\" />\n <video\n v-else-if=\"mode === 'video'\"\n autoplay\n controls\n width=\"100%\"\n @error=\"error = true\">\n <source\n :src=\"src\"\n :type=\"type\" />\n </video>\n <audio\n v-else-if=\"mode === 'audio'\"\n class=\"my-12\"\n controls\n @error=\"error = true\">\n <source\n :src=\"src\"\n :type=\"type\" />\n </audio>\n <object\n v-else\n class=\"aspect-[4/3] w-full\"\n :data=\"src\"\n :type=\"type\"\n @error=\"error = true\" />\n </div>\n <ResponseBodyInfo v-else>Preview unavailable</ResponseBodyInfo>\n</template>\n<style scoped>\n.light-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n.dark-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import e from "./ResponseBodyInfo.vue.js";
2
+ import { createBlock as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, ref as c, watch as l, withCtx as u } from "vue";
3
+ //#region src/components/ResponseBody/ResponseBodyPreview.vue?vue&type=script&setup=true&lang.ts
4
+ var d = ["src"], f = ["src", "type"], p = ["src", "type"], m = ["data", "type"], h = /* @__PURE__ */ a({
5
+ __name: "ResponseBodyPreview",
6
+ props: {
7
+ src: {},
8
+ type: {},
9
+ mode: {},
10
+ alpha: {
11
+ type: Boolean,
12
+ default: !1
13
+ }
14
+ },
15
+ setup(a) {
16
+ let h = c(!1);
17
+ return l(() => a.src, () => {
18
+ h.value = !1;
19
+ }), (c, l) => !h.value && a.src ? (s(), n("div", {
20
+ key: 0,
21
+ class: o(["flex justify-center overflow-auto rounded-b", { "bg-preview p-2": a.alpha }])
22
+ }, [a.mode === "image" ? (s(), n("img", {
23
+ key: 0,
24
+ class: o(["h-full max-w-full", { rounded: a.alpha }]),
25
+ src: a.src,
26
+ onError: l[0] ||= (e) => h.value = !0
27
+ }, null, 42, d)) : a.mode === "video" ? (s(), n("video", {
28
+ key: 1,
29
+ autoplay: "",
30
+ controls: "",
31
+ width: "100%",
32
+ onError: l[1] ||= (e) => h.value = !0
33
+ }, [r("source", {
34
+ src: a.src,
35
+ type: a.type
36
+ }, null, 8, f)], 32)) : a.mode === "audio" ? (s(), n("audio", {
37
+ key: 2,
38
+ class: "my-12",
39
+ controls: "",
40
+ onError: l[2] ||= (e) => h.value = !0
41
+ }, [r("source", {
42
+ src: a.src,
43
+ type: a.type
44
+ }, null, 8, p)], 32)) : (s(), n("object", {
45
+ key: 3,
46
+ class: "aspect-[4/3] w-full",
47
+ data: a.src,
48
+ type: a.type,
49
+ onError: l[3] ||= (e) => h.value = !0
50
+ }, null, 40, m))], 2)) : (s(), t(e, { key: 1 }, {
51
+ default: u(() => [...l[4] ||= [i("Preview unavailable", -1)]]),
52
+ _: 1
53
+ }));
54
+ }
55
+ });
56
+ //#endregion
57
+ export { h as default };
58
+
59
+ //# sourceMappingURL=ResponseBodyPreview.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyPreview.vue.script.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyPreview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue'\n\nimport { type MediaPreview } from '@/components/ResponseBody/helpers/media-types'\nimport ResponseBodyInfo from '@/components/ResponseBody/ResponseBodyInfo.vue'\n\nconst {\n src,\n type,\n mode,\n alpha = false,\n} = defineProps<{\n src: string\n type: string\n mode: MediaPreview\n alpha?: boolean | undefined\n}>()\n\nconst error = ref(false)\n\nwatch(\n () => src,\n () => {\n error.value = false\n },\n)\n</script>\n<template>\n <div\n v-if=\"!error && src\"\n class=\"flex justify-center overflow-auto rounded-b\"\n :class=\"{ 'bg-preview p-2': alpha }\">\n <img\n v-if=\"mode === 'image'\"\n class=\"h-full max-w-full\"\n :class=\"{ rounded: alpha }\"\n :src=\"src\"\n @error=\"error = true\" />\n <video\n v-else-if=\"mode === 'video'\"\n autoplay\n controls\n width=\"100%\"\n @error=\"error = true\">\n <source\n :src=\"src\"\n :type=\"type\" />\n </video>\n <audio\n v-else-if=\"mode === 'audio'\"\n class=\"my-12\"\n controls\n @error=\"error = true\">\n <source\n :src=\"src\"\n :type=\"type\" />\n </audio>\n <object\n v-else\n class=\"aspect-[4/3] w-full\"\n :data=\"src\"\n :type=\"type\"\n @error=\"error = true\" />\n </div>\n <ResponseBodyInfo v-else>Preview unavailable</ResponseBodyInfo>\n</template>\n<style scoped>\n.light-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n.dark-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;EAkBA,IAAM,IAAQ,EAAI,GAAK;SAEvB,QACQ,EAAA,WACA;AACJ,KAAM,QAAQ;IAElB,aAIW,EAAA,SAAS,EAAA,OAAA,GAAA,EADlB,EAmCM,OAAA;;GAjCJ,OAAK,EAAA,CAAC,+CAA6C,EAAA,kBACvB,EAAA,OAAK,CAAA,CAAA;MAEzB,EAAA,SAAI,WAAA,GAAA,EADZ,EAK0B,OAAA;;GAHxB,OAAK,EAAA,CAAC,qBAAmB,EAAA,SACN,EAAA,OAAK,CAAA,CAAA;GACvB,KAAK,EAAA;GACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAK;qBAEF,EAAA,SAAI,WAAA,GAAA,EADjB,EASQ,SAAA;;GAPN,UAAA;GACA,UAAA;GACA,OAAM;GACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAK;MACb,EAEiB,UAAA;GADd,KAAK,EAAA;GACL,MAAM,EAAA;0BAGE,EAAA,SAAI,WAAA,GAAA,EADjB,EAQQ,SAAA;;GANN,OAAM;GACN,UAAA;GACC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAK;MACb,EAEiB,UAAA;GADd,KAAK,EAAA;GACL,MAAM,EAAA;gCAEX,EAK0B,UAAA;;GAHxB,OAAM;GACL,MAAM,EAAA;GACN,MAAM,EAAA;GACN,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAK;iCAEjB,EAA+D,GAAA,EAAA,KAAA,GAAA,EAAA;oBAAnB,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAnB,uBAAmB,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import e from "./ResponseBodyRaw.vue.script.js";
2
+ //#region src/components/ResponseBody/ResponseBodyRaw.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=ResponseBodyRaw.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyRaw.vue.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyRaw.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarCodeBlock } from '@scalar/components'\n\nconst props = defineProps<{\n content: any\n language: string\n}>()\n</script>\n\n<template>\n <ScalarCodeBlock\n class=\"codeBlock\"\n :content=\"props.content\"\n :lang=\"language\" />\n</template>\n"],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { createBlock as e, defineComponent as t, openBlock as n, unref as r } from "vue";
2
+ import { ScalarCodeBlock as i } from "@scalar/components";
3
+ //#region src/components/ResponseBody/ResponseBodyRaw.vue?vue&type=script&setup=true&lang.ts
4
+ var a = /* @__PURE__ */ t({
5
+ __name: "ResponseBodyRaw",
6
+ props: {
7
+ content: {},
8
+ language: {}
9
+ },
10
+ setup(t) {
11
+ let a = t;
12
+ return (o, s) => (n(), e(r(i), {
13
+ class: "codeBlock",
14
+ content: a.content,
15
+ lang: t.language
16
+ }, null, 8, ["content", "lang"]));
17
+ }
18
+ });
19
+ //#endregion
20
+ export { a as default };
21
+
22
+ //# sourceMappingURL=ResponseBodyRaw.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyRaw.vue.script.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyRaw.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarCodeBlock } from '@scalar/components'\n\nconst props = defineProps<{\n content: any\n language: string\n}>()\n</script>\n\n<template>\n <ScalarCodeBlock\n class=\"codeBlock\"\n :content=\"props.content\"\n :lang=\"language\" />\n</template>\n"],"mappings":";;;;;;;;;;EAGA,IAAM,IAAQ;yBAOZ,EAGqB,EAAA,EAAA,EAAA;GAFnB,OAAM;GACL,SAAS,EAAM;GACf,MAAM,EAAA"}
@@ -0,0 +1,7 @@
1
+ import e from "./ResponseBodyToggle.vue.script.js";
2
+ //#region src/components/ResponseBody/ResponseBodyToggle.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=ResponseBodyToggle.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyToggle.vue.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyToggle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\ndefineProps<{\n modelValue?: 'preview' | 'raw'\n}>()\n\nconst emit = defineEmits<{\n (e: 'toggle', v: 'preview' | 'raw'): void\n}>()\n</script>\n<template>\n <div\n class=\"text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5\">\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue === 'preview' }\"\n type=\"button\"\n @click.stop=\"emit('toggle', 'preview')\">\n Preview\n </button>\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue === 'raw' }\"\n type=\"button\"\n @click.stop=\"emit('toggle', 'raw')\">\n Raw\n </button>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { createElementBlock as e, createElementVNode as t, defineComponent as n, normalizeClass as r, openBlock as i, withModifiers as a } from "vue";
2
+ //#region src/components/ResponseBody/ResponseBodyToggle.vue?vue&type=script&setup=true&lang.ts
3
+ var o = { class: "text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5" }, s = /* @__PURE__ */ n({
4
+ __name: "ResponseBodyToggle",
5
+ props: { modelValue: {} },
6
+ emits: ["toggle"],
7
+ setup(n, { emit: s }) {
8
+ let c = s;
9
+ return (s, l) => (i(), e("div", o, [t("button", {
10
+ class: r(["hover:bg-b-3 rounded px-1", { "bg-b-3 text-c-1 cursor-default": n.modelValue === "preview" }]),
11
+ type: "button",
12
+ onClick: l[0] ||= a((e) => c("toggle", "preview"), ["stop"])
13
+ }, " Preview ", 2), t("button", {
14
+ class: r(["hover:bg-b-3 rounded px-1", { "bg-b-3 text-c-1 cursor-default": n.modelValue === "raw" }]),
15
+ type: "button",
16
+ onClick: l[1] ||= a((e) => c("toggle", "raw"), ["stop"])
17
+ }, " Raw ", 2)]));
18
+ }
19
+ });
20
+ //#endregion
21
+ export { s as default };
22
+
23
+ //# sourceMappingURL=ResponseBodyToggle.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyToggle.vue.script.js","names":[],"sources":["../../../src/components/ResponseBody/ResponseBodyToggle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\ndefineProps<{\n modelValue?: 'preview' | 'raw'\n}>()\n\nconst emit = defineEmits<{\n (e: 'toggle', v: 'preview' | 'raw'): void\n}>()\n</script>\n<template>\n <div\n class=\"text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5\">\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue === 'preview' }\"\n type=\"button\"\n @click.stop=\"emit('toggle', 'preview')\">\n Preview\n </button>\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue === 'raw' }\"\n type=\"button\"\n @click.stop=\"emit('toggle', 'raw')\">\n Raw\n </button>\n </div>\n</template>\n"],"mappings":";;;;;;;EAKA,IAAM,IAAO;yBAKX,EAgBM,OAhBN,GAgBM,CAdJ,EAMS,UAAA;GALP,OAAK,EAAA,CAAC,6BAA2B,EAAA,kCACW,EAAA,eAAU,WAAA,CAAA,CAAA;GACtD,MAAK;GACJ,SAAK,AAAA,EAAA,OAAA,GAAA,MAAO,EAAI,UAAA,UAAA,EAAA,CAAA,OAAA,CAAA;KAAuB,aAE1C,EAAA,EACA,EAMS,UAAA;GALP,OAAK,EAAA,CAAC,6BAA2B,EAAA,kCACW,EAAA,eAAU,OAAA,CAAA,CAAA;GACtD,MAAK;GACJ,SAAK,AAAA,EAAA,OAAA,GAAA,MAAO,EAAI,UAAA,MAAA,EAAA,CAAA,OAAA,CAAA;KAAmB,SAEtC,EAAA,CAAA,CAAA"}
@@ -0,0 +1,223 @@
1
+ //#region src/components/ResponseBody/helpers/media-types.ts
2
+ var e = {
3
+ "application/epub+zip": { extension: ".epub" },
4
+ "application/gzip": { extension: ".gz" },
5
+ "application/java-archive": { extension: ".jar" },
6
+ "application/javascript": {
7
+ extension: ".js",
8
+ raw: !0
9
+ },
10
+ "application/json": {
11
+ extension: ".json",
12
+ raw: !0,
13
+ language: "json"
14
+ },
15
+ "application/ld+json": {
16
+ extension: ".jsonld",
17
+ raw: !0,
18
+ language: "json"
19
+ },
20
+ "application/problem+json": {
21
+ extension: ".json",
22
+ raw: !0,
23
+ language: "json"
24
+ },
25
+ "application/vnd.api+json": {
26
+ extension: ".json",
27
+ raw: !0,
28
+ language: "json"
29
+ },
30
+ "application/dns-json": {
31
+ extension: ".json",
32
+ raw: !0,
33
+ language: "json"
34
+ },
35
+ "application/msword": { extension: ".doc" },
36
+ "application/octet-stream": { extension: ".bin" },
37
+ "application/ogg": { extension: ".ogx" },
38
+ "application/pdf": {
39
+ extension: ".pdf",
40
+ preview: "object"
41
+ },
42
+ "application/rtf": {
43
+ extension: ".rtf",
44
+ raw: !0
45
+ },
46
+ "application/vnd.amazon.ebook": { extension: ".azw" },
47
+ "application/vnd.apple.installer+xml": {
48
+ extension: ".mpkg",
49
+ raw: !0,
50
+ language: "xml"
51
+ },
52
+ "application/vnd.mozilla.xul+xml": {
53
+ extension: ".xul",
54
+ raw: !0,
55
+ language: "xml"
56
+ },
57
+ "application/vnd.ms-excel": { extension: ".xls" },
58
+ "application/vnd.ms-fontobject": { extension: ".eot" },
59
+ "application/vnd.ms-powerpoint": { extension: ".ppt" },
60
+ "application/vnd.oasis.opendocument.presentation": { extension: ".odp" },
61
+ "application/vnd.oasis.opendocument.spreadsheet": { extension: ".ods" },
62
+ "application/vnd.oasis.opendocument.text": { extension: ".odt" },
63
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": { extension: ".pptx" },
64
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { extension: ".xlsx" },
65
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { extension: ".docx" },
66
+ "application/vnd.rar": { extension: ".rar" },
67
+ "application/vnd.visio": { extension: ".vsd" },
68
+ "application/x-7z-compressed": { extension: ".7z" },
69
+ "application/x-abiword": { extension: ".abw" },
70
+ "application/x-bzip": { extension: ".bz" },
71
+ "application/x-bzip2": { extension: ".bz2" },
72
+ "application/x-cdf": { extension: ".cda" },
73
+ "application/x-csh": { extension: ".csh" },
74
+ "application/x-freearc": { extension: ".arc" },
75
+ "application/x-httpd-php": {
76
+ extension: ".php",
77
+ raw: !0
78
+ },
79
+ "application/x-sh": {
80
+ extension: ".sh",
81
+ raw: !0
82
+ },
83
+ "application/x-tar": { extension: ".tar" },
84
+ "application/xhtml+xml": {
85
+ extension: ".xhtml",
86
+ raw: !0,
87
+ language: "html"
88
+ },
89
+ "application/xml": {
90
+ extension: ".xml",
91
+ raw: !0,
92
+ language: "xml"
93
+ },
94
+ "application/yaml": {
95
+ extension: ".yaml",
96
+ raw: !0,
97
+ language: "yaml"
98
+ },
99
+ "application/zip": { extension: ".zip" },
100
+ "audio/aac": { extension: ".aac" },
101
+ "audio/midi": { extension: ".midi" },
102
+ "audio/mpeg": {
103
+ extension: ".mp3",
104
+ preview: "audio"
105
+ },
106
+ "audio/ogg": { extension: ".oga" },
107
+ "audio/wav": { extension: ".wav" },
108
+ "audio/webm": { extension: ".weba" },
109
+ "font/otf": { extension: ".otf" },
110
+ "font/ttf": { extension: ".ttf" },
111
+ "font/woff": { extension: ".woff" },
112
+ "font/woff2": { extension: ".woff2" },
113
+ "image/apng": {
114
+ extension: ".apng",
115
+ preview: "image",
116
+ alpha: !0
117
+ },
118
+ "image/avif": {
119
+ extension: ".avif",
120
+ preview: "image"
121
+ },
122
+ "image/bmp": {
123
+ extension: ".bmp",
124
+ preview: "image"
125
+ },
126
+ "image/gif": {
127
+ extension: ".gif",
128
+ preview: "image",
129
+ alpha: !0
130
+ },
131
+ "image/jpeg": {
132
+ extension: ".jpg",
133
+ preview: "image"
134
+ },
135
+ "image/png": {
136
+ extension: ".png",
137
+ preview: "image",
138
+ alpha: !0
139
+ },
140
+ "image/svg+xml": {
141
+ extension: ".svg",
142
+ raw: !0,
143
+ language: "xml",
144
+ preview: "image",
145
+ alpha: !0
146
+ },
147
+ "image/tiff": { extension: ".tiff" },
148
+ "image/vnd.microsoft.icon": {
149
+ extension: ".ico",
150
+ preview: "image"
151
+ },
152
+ "image/webp": {
153
+ extension: ".webp",
154
+ preview: "image",
155
+ alpha: !0
156
+ },
157
+ "text/calendar": {
158
+ extension: ".ics",
159
+ raw: !0
160
+ },
161
+ "text/css": {
162
+ extension: ".css",
163
+ raw: !0,
164
+ language: "css"
165
+ },
166
+ "text/csv": {
167
+ extension: ".csv",
168
+ raw: !0
169
+ },
170
+ "text/html": {
171
+ extension: ".html",
172
+ raw: !0,
173
+ language: "html",
174
+ preview: "object"
175
+ },
176
+ "text/javascript": {
177
+ extension: ".js",
178
+ raw: !0
179
+ },
180
+ "text/plain": {
181
+ extension: ".txt",
182
+ raw: !0
183
+ },
184
+ "text/xml": {
185
+ extension: ".xml",
186
+ raw: !0,
187
+ language: "xml"
188
+ },
189
+ "text/yaml": {
190
+ extension: ".yaml",
191
+ raw: !0,
192
+ language: "yaml"
193
+ },
194
+ "video/3gpp": { extension: ".3gp" },
195
+ "audio/3gpp": { extension: ".3gp" },
196
+ "video/3gpp2": { extension: ".3g2" },
197
+ "audio/3gpp2": { extension: ".3g2" },
198
+ "video/mp2t": { extension: ".ts" },
199
+ "video/mp4": {
200
+ extension: ".mp4",
201
+ preview: "video"
202
+ },
203
+ "video/mpeg": { extension: ".mpeg" },
204
+ "video/ogg": { extension: ".ogv" },
205
+ "video/webm": {
206
+ extension: ".webm",
207
+ preview: "video"
208
+ },
209
+ "video/x-msvideo": { extension: ".avi" }
210
+ };
211
+ function t(t) {
212
+ let n = e[t];
213
+ if (n) return n;
214
+ if (t.endsWith("+json")) return {
215
+ extension: ".json",
216
+ raw: !0,
217
+ language: "json"
218
+ };
219
+ }
220
+ //#endregion
221
+ export { t as getMediaTypeConfig };
222
+
223
+ //# sourceMappingURL=media-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-types.js","names":[],"sources":["../../../../src/components/ResponseBody/helpers/media-types.ts"],"sourcesContent":["export type MediaPreview = 'object' | 'image' | 'video' | 'audio'\n\nexport type MediaConfig = {\n preview?: MediaPreview\n alpha?: boolean\n raw?: boolean\n language?: string\n extension: string\n}\n\n/** Media Type (MIME Type) Definitions */\nconst mediaTypes: { [type: string]: MediaConfig | undefined } = {\n 'application/epub+zip': { extension: '.epub' },\n 'application/gzip': { extension: '.gz' },\n 'application/java-archive': { extension: '.jar' },\n 'application/javascript': { extension: '.js', raw: true },\n 'application/json': { extension: '.json', raw: true, language: 'json' },\n 'application/ld+json': { extension: '.jsonld', raw: true, language: 'json' },\n 'application/problem+json': {\n extension: '.json',\n raw: true,\n language: 'json',\n },\n 'application/vnd.api+json': {\n extension: '.json',\n raw: true,\n language: 'json',\n },\n 'application/dns-json': { extension: '.json', raw: true, language: 'json' },\n 'application/msword': { extension: '.doc' },\n 'application/octet-stream': { extension: '.bin' },\n 'application/ogg': { extension: '.ogx' },\n 'application/pdf': { extension: '.pdf', preview: 'object' },\n 'application/rtf': { extension: '.rtf', raw: true },\n 'application/vnd.amazon.ebook': { extension: '.azw' },\n 'application/vnd.apple.installer+xml': {\n extension: '.mpkg',\n raw: true,\n language: 'xml',\n },\n 'application/vnd.mozilla.xul+xml': {\n extension: '.xul',\n raw: true,\n language: 'xml',\n },\n 'application/vnd.ms-excel': { extension: '.xls' },\n 'application/vnd.ms-fontobject': { extension: '.eot' },\n 'application/vnd.ms-powerpoint': { extension: '.ppt' },\n 'application/vnd.oasis.opendocument.presentation': { extension: '.odp' },\n 'application/vnd.oasis.opendocument.spreadsheet': { extension: '.ods' },\n 'application/vnd.oasis.opendocument.text': { extension: '.odt' },\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': {\n extension: '.pptx',\n },\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': {\n extension: '.xlsx',\n },\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': {\n extension: '.docx',\n },\n 'application/vnd.rar': { extension: '.rar' },\n 'application/vnd.visio': { extension: '.vsd' },\n 'application/x-7z-compressed': { extension: '.7z' },\n 'application/x-abiword': { extension: '.abw' },\n 'application/x-bzip': { extension: '.bz' },\n 'application/x-bzip2': { extension: '.bz2' },\n 'application/x-cdf': { extension: '.cda' },\n 'application/x-csh': { extension: '.csh' },\n 'application/x-freearc': { extension: '.arc' },\n 'application/x-httpd-php': { extension: '.php', raw: true },\n 'application/x-sh': { extension: '.sh', raw: true },\n 'application/x-tar': { extension: '.tar' },\n 'application/xhtml+xml': { extension: '.xhtml', raw: true, language: 'html' },\n 'application/xml': { extension: '.xml', raw: true, language: 'xml' },\n 'application/yaml': { extension: '.yaml', raw: true, language: 'yaml' },\n 'application/zip': { extension: '.zip' },\n 'audio/aac': { extension: '.aac' },\n 'audio/midi': { extension: '.midi' },\n 'audio/mpeg': { extension: '.mp3', preview: 'audio' },\n 'audio/ogg': { extension: '.oga' },\n 'audio/wav': { extension: '.wav' },\n 'audio/webm': { extension: '.weba' },\n 'font/otf': { extension: '.otf' },\n 'font/ttf': { extension: '.ttf' },\n 'font/woff': { extension: '.woff' },\n 'font/woff2': { extension: '.woff2' },\n 'image/apng': { extension: '.apng', preview: 'image', alpha: true },\n 'image/avif': { extension: '.avif', preview: 'image' },\n 'image/bmp': { extension: '.bmp', preview: 'image' },\n 'image/gif': { extension: '.gif', preview: 'image', alpha: true },\n 'image/jpeg': { extension: '.jpg', preview: 'image' },\n 'image/png': { extension: '.png', preview: 'image', alpha: true },\n 'image/svg+xml': {\n extension: '.svg',\n raw: true,\n language: 'xml',\n preview: 'image',\n alpha: true,\n },\n 'image/tiff': { extension: '.tiff' },\n 'image/vnd.microsoft.icon': { extension: '.ico', preview: 'image' },\n 'image/webp': { extension: '.webp', preview: 'image', alpha: true },\n 'text/calendar': { extension: '.ics', raw: true },\n 'text/css': { extension: '.css', raw: true, language: 'css' },\n 'text/csv': { extension: '.csv', raw: true },\n 'text/html': {\n extension: '.html',\n raw: true,\n language: 'html',\n preview: 'object',\n },\n 'text/javascript': { extension: '.js', raw: true },\n 'text/plain': { extension: '.txt', raw: true },\n 'text/xml': { extension: '.xml', raw: true, language: 'xml' },\n 'text/yaml': { extension: '.yaml', raw: true, language: 'yaml' },\n 'video/3gpp': { extension: '.3gp' },\n 'audio/3gpp': { extension: '.3gp' },\n 'video/3gpp2': { extension: '.3g2' },\n 'audio/3gpp2': { extension: '.3g2' },\n 'video/mp2t': { extension: '.ts' },\n 'video/mp4': { extension: '.mp4', preview: 'video' },\n 'video/mpeg': { extension: '.mpeg' },\n 'video/ogg': { extension: '.ogv' },\n 'video/webm': { extension: '.webm', preview: 'video' },\n 'video/x-msvideo': { extension: '.avi' },\n}\n\n/** Get the config for a media type */\nexport function getMediaTypeConfig(type: string): MediaConfig | undefined {\n const config = mediaTypes[type]\n if (config) {\n return config\n }\n\n // Fallback for +json types\n if (type.endsWith('+json')) {\n return {\n extension: '.json',\n raw: true,\n language: 'json',\n }\n }\n\n return undefined\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import e from "whatwg-mimetype";
2
+ //#region src/components/ResponseBody/helpers/process-response-body.ts
3
+ var t = (e) => {
4
+ try {
5
+ return decodeURIComponent(e);
6
+ } catch {
7
+ return e;
8
+ }
9
+ };
10
+ function n(e) {
11
+ let n = "";
12
+ if (e) {
13
+ let r = e.match(/filename\*=UTF-8''([^;]+)/)?.[1] ?? e.match(/filename\s*=\s*"?([^";]+)"?/)?.[1];
14
+ r && (n = t(r.trim()));
15
+ }
16
+ return n;
17
+ }
18
+ var r = (e) => e instanceof Blob, i = (e) => e ? Object.keys(e).map((t) => ({
19
+ name: t,
20
+ value: e[t] ?? ""
21
+ })) : [];
22
+ function a({ data: t, headers: a }) {
23
+ let o = i(a), s = o.find((e) => e.name.toLowerCase() === "content-type"), c = s?.value ? new e(s.value) : void 0;
24
+ return {
25
+ mimeType: c,
26
+ attachmentFilename: n(o.find((e) => e.name.toLowerCase() === "content-disposition")?.value ?? ""),
27
+ dataUrl: r(t) ? URL.createObjectURL(t) : typeof t == "string" ? URL.createObjectURL(new Blob([t], { type: c ? c.toString() : void 0 })) : t instanceof Object && Object.keys(t).length ? URL.createObjectURL(new Blob([JSON.stringify(t)], { type: c ? c.toString() : void 0 })) : ""
28
+ };
29
+ }
30
+ //#endregion
31
+ export { a as processResponseBody };
32
+
33
+ //# sourceMappingURL=process-response-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-response-body.js","names":[],"sources":["../../../../src/components/ResponseBody/helpers/process-response-body.ts"],"sourcesContent":["import MimeType from 'whatwg-mimetype'\n\nconst decodeURIComponentSafe = (str: string) => {\n try {\n return decodeURIComponent(str)\n } catch {\n return str\n }\n}\n\nfunction extractFilename(contentDisposition: string) {\n let filename = ''\n\n if (contentDisposition) {\n const fileNameMatch =\n contentDisposition.match(/filename\\*=UTF-8''([^;]+)/)?.[1] ??\n contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/)?.[1]\n\n if (fileNameMatch) {\n filename = decodeURIComponentSafe(fileNameMatch.trim())\n }\n }\n\n return filename\n}\n\nconst isBlob = (b: any): b is Blob => b instanceof Blob\n\nconst getResponseHeaders = (headers?: Record<string, string>) => {\n return headers\n ? Object.keys(headers).map((key) => ({\n name: key,\n value: headers[key] ?? '',\n }))\n : []\n}\n\nexport function processResponseBody({ data, headers }: { data: unknown; headers?: Record<string, string> }) {\n const responseHeaders = getResponseHeaders(headers)\n\n const contentType = responseHeaders.find((header) => header.name.toLowerCase() === 'content-type')\n const mimeType = contentType?.value ? new MimeType(contentType.value) : undefined\n const attachmentFilename = extractFilename(\n responseHeaders.find((header) => header.name.toLowerCase() === 'content-disposition')?.value ?? '',\n )\n\n const dataUrl = (() => {\n if (isBlob(data)) {\n return URL.createObjectURL(data)\n }\n if (typeof data === 'string') {\n return URL.createObjectURL(new Blob([data], { type: mimeType ? mimeType.toString() : undefined }))\n }\n if (data instanceof Object && Object.keys(data).length) {\n return URL.createObjectURL(\n new Blob([JSON.stringify(data)], {\n type: mimeType ? mimeType.toString() : undefined,\n }),\n )\n }\n return ''\n })()\n\n return { mimeType, attachmentFilename, dataUrl }\n}\n"],"mappings":";;AAEA,IAAM,KAA0B,MAAgB;AAC9C,KAAI;AACF,SAAO,mBAAmB,EAAI;SACxB;AACN,SAAO;;;AAIX,SAAS,EAAgB,GAA4B;CACnD,IAAI,IAAW;AAEf,KAAI,GAAoB;EACtB,IAAM,IACJ,EAAmB,MAAM,4BAA4B,GAAG,MACxD,EAAmB,MAAM,8BAA8B,GAAG;AAE5D,EAAI,MACF,IAAW,EAAuB,EAAc,MAAM,CAAC;;AAI3D,QAAO;;AAGT,IAAM,KAAU,MAAsB,aAAa,MAE7C,KAAsB,MACnB,IACH,OAAO,KAAK,EAAQ,CAAC,KAAK,OAAS;CACjC,MAAM;CACN,OAAO,EAAQ,MAAQ;CACxB,EAAE,GACH,EAAE;AAGR,SAAgB,EAAoB,EAAE,SAAM,cAAgE;CAC1G,IAAM,IAAkB,EAAmB,EAAQ,EAE7C,IAAc,EAAgB,MAAM,MAAW,EAAO,KAAK,aAAa,KAAK,eAAe,EAC5F,IAAW,GAAa,QAAQ,IAAI,EAAS,EAAY,MAAM,GAAG,KAAA;AAsBxE,QAAO;EAAE;EAAU,oBArBQ,EACzB,EAAgB,MAAM,MAAW,EAAO,KAAK,aAAa,KAAK,sBAAsB,EAAE,SAAS,GACjG;EAmBsC,SAhBjC,EAAO,EAAK,GACP,IAAI,gBAAgB,EAAK,GAE9B,OAAO,KAAS,WACX,IAAI,gBAAgB,IAAI,KAAK,CAAC,EAAK,EAAE,EAAE,MAAM,IAAW,EAAS,UAAU,GAAG,KAAA,GAAW,CAAC,CAAC,GAEhG,aAAgB,UAAU,OAAO,KAAK,EAAK,CAAC,SACvC,IAAI,gBACT,IAAI,KAAK,CAAC,KAAK,UAAU,EAAK,CAAC,EAAE,EAC/B,MAAM,IAAW,EAAS,UAAU,GAAG,KAAA,GACxC,CAAC,CACH,GAEI;EAGuC"}
@@ -0,0 +1,9 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./SearchPopover.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/SearchPopover.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-7945f74c"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=SearchPopover.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue.js","names":[],"sources":["../../src/components/SearchPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover, ScalarTextInput } from '@scalar/components'\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\nconst state = useState()\n\nconst search = useSearch()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter(\n (r) =>\n !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n ),\n )\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarPopover\n :offset=\"0\"\n placement=\"top-start\"\n resize\n style=\"width: 220px\">\n <slot />\n <template #popover=\"{ close }\">\n <ScalarTextInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n placeholder=\"Add an API\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\">\n <template #prefix>\n <ScalarIconMagnifyingGlass class=\"searchIcon\" />\n </template>\n </ScalarTextInput>\n\n <template v-if=\"searchOptions.length\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"searchItem\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n close()\n }\n \">\n <img\n v-if=\"option.logoUrl\"\n class=\"searchItemLogo\"\n :src=\"option.logoUrl\" />\n <span>{{ option.title }}</span>\n </button>\n </template>\n\n <span\n v-else\n class=\"searchResultsEmpty\">\n No APIs found\n </span>\n </template>\n </ScalarPopover>\n</template>\n\n<style scoped>\n.searchItem {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 8px 10px;\n font-size: var(--scalar-font-size-3);\n}\n\n.searchInput {\n margin-bottom: 5px;\n}\n\n.searchItem:hover {\n background: var(--scalar-background-2);\n}\n\n.searchItemLogo {\n width: 15px;\n}\n\n.searchIcon {\n margin-right: 7px;\n}\n\n.searchResultsEmpty {\n font-size: var(--scalar-font-size-3);\n color: var(--scalar-color-2);\n margin: 10px;\n}\n</style>\n"],"mappings":""}