@scalar/agent-chat 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/App.vue.d.ts +2 -2
  2. package/dist/App.vue.d.ts.map +1 -1
  3. package/dist/App.vue.js +9 -3
  4. package/dist/App.vue.js.map +1 -1
  5. package/dist/Chat.vue.js +3 -3
  6. package/dist/Chat.vue.js.map +1 -1
  7. package/dist/components/ApprovalSection.vue.d.ts +9 -0
  8. package/dist/components/ApprovalSection.vue.d.ts.map +1 -0
  9. package/dist/components/ApprovalSection.vue.js +8 -0
  10. package/dist/components/ApprovalSection.vue.js.map +1 -0
  11. package/dist/components/ApprovalSection.vue2.js +47 -0
  12. package/dist/components/ApprovalSection.vue2.js.map +1 -0
  13. package/dist/components/AutosendPaused.vue.d.ts +3 -0
  14. package/dist/components/AutosendPaused.vue.d.ts.map +1 -0
  15. package/dist/components/AutosendPaused.vue.js +15 -0
  16. package/dist/components/AutosendPaused.vue.js.map +1 -0
  17. package/dist/components/ContextItem.vue.d.ts.map +1 -1
  18. package/dist/components/ContextItem.vue.js +1 -1
  19. package/dist/components/ContextItem.vue2.js +1 -1
  20. package/dist/components/ContextItem.vue2.js.map +1 -1
  21. package/dist/components/ErrorMessage.vue.d.ts +6 -0
  22. package/dist/components/ErrorMessage.vue.d.ts.map +1 -0
  23. package/dist/components/ErrorMessage.vue.js +8 -0
  24. package/dist/components/ErrorMessage.vue.js.map +1 -0
  25. package/dist/components/ErrorMessage.vue2.js +28 -0
  26. package/dist/components/ErrorMessage.vue2.js.map +1 -0
  27. package/dist/components/LoadingMiniOpenAPIDoc.vue.d.ts.map +1 -1
  28. package/dist/components/LoadingMiniOpenAPIDoc.vue.js +2 -18
  29. package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +1 -1
  30. package/dist/components/LoadingOpenAPISpecsSummary.vue.d.ts +3 -0
  31. package/dist/components/LoadingOpenAPISpecsSummary.vue.d.ts.map +1 -0
  32. package/dist/components/LoadingOpenAPISpecsSummary.vue.js +16 -0
  33. package/dist/components/LoadingOpenAPISpecsSummary.vue.js.map +1 -0
  34. package/dist/components/RequestApproved.vue.d.ts +3 -0
  35. package/dist/components/RequestApproved.vue.d.ts.map +1 -0
  36. package/dist/components/RequestApproved.vue.js +15 -0
  37. package/dist/components/RequestApproved.vue.js.map +1 -0
  38. package/dist/components/RequestFailed.vue.d.ts +3 -0
  39. package/dist/components/RequestFailed.vue.d.ts.map +1 -0
  40. package/dist/components/RequestFailed.vue.js +26 -0
  41. package/dist/components/RequestFailed.vue.js.map +1 -0
  42. package/dist/components/RequestPreview.vue.d.ts +10 -0
  43. package/dist/components/RequestPreview.vue.d.ts.map +1 -0
  44. package/dist/components/RequestPreview.vue.js +9 -0
  45. package/dist/components/RequestPreview.vue.js.map +1 -0
  46. package/dist/components/RequestPreview.vue2.js +150 -0
  47. package/dist/components/RequestPreview.vue2.js.map +1 -0
  48. package/dist/components/RequestRejected.vue.d.ts +3 -0
  49. package/dist/components/RequestRejected.vue.d.ts.map +1 -0
  50. package/dist/components/RequestRejected.vue.js +24 -0
  51. package/dist/components/RequestRejected.vue.js.map +1 -0
  52. package/dist/components/RequestSuccess.vue.d.ts +3 -0
  53. package/dist/components/RequestSuccess.vue.d.ts.map +1 -0
  54. package/dist/components/RequestSuccess.vue.js +15 -0
  55. package/dist/components/RequestSuccess.vue.js.map +1 -0
  56. package/dist/components/ResponseBody/ResponseBody.vue.d.ts +15 -0
  57. package/dist/components/ResponseBody/ResponseBody.vue.d.ts.map +1 -0
  58. package/dist/components/ResponseBody/ResponseBody.vue.js +45 -0
  59. package/dist/components/ResponseBody/ResponseBody.vue.js.map +1 -0
  60. package/dist/components/ResponseBody/ResponseBody.vue2.js +5 -0
  61. package/dist/components/ResponseBody/ResponseBody.vue2.js.map +1 -0
  62. package/dist/components/ResponseBody/ResponseBodyInfo.vue.d.ts +13 -0
  63. package/dist/components/ResponseBody/ResponseBodyInfo.vue.d.ts.map +1 -0
  64. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js +17 -0
  65. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js.map +1 -0
  66. package/dist/components/ResponseBody/ResponseBodyPreview.vue.d.ts +10 -0
  67. package/dist/components/ResponseBody/ResponseBodyPreview.vue.d.ts.map +1 -0
  68. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js +8 -0
  69. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js.map +1 -0
  70. package/dist/components/ResponseBody/ResponseBodyPreview.vue2.js +73 -0
  71. package/dist/components/ResponseBody/ResponseBodyPreview.vue2.js.map +1 -0
  72. package/dist/components/ResponseBody/ResponseBodyRaw.vue.d.ts +7 -0
  73. package/dist/components/ResponseBody/ResponseBodyRaw.vue.d.ts.map +1 -0
  74. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js +23 -0
  75. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js.map +1 -0
  76. package/dist/components/ResponseBody/ResponseBodyRaw.vue2.js +5 -0
  77. package/dist/components/ResponseBody/ResponseBodyRaw.vue2.js.map +1 -0
  78. package/dist/components/ResponseBody/ResponseBodyToggle.vue.d.ts +10 -0
  79. package/dist/components/ResponseBody/ResponseBodyToggle.vue.d.ts.map +1 -0
  80. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js +30 -0
  81. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js.map +1 -0
  82. package/dist/components/ResponseBody/ResponseBodyToggle.vue2.js +5 -0
  83. package/dist/components/ResponseBody/ResponseBodyToggle.vue2.js.map +1 -0
  84. package/dist/components/ResponseBody/helpers/media-types.d.ts +15 -0
  85. package/dist/components/ResponseBody/helpers/media-types.d.ts.map +1 -0
  86. package/dist/components/ResponseBody/helpers/media-types.js +134 -0
  87. package/dist/components/ResponseBody/helpers/media-types.js.map +1 -0
  88. package/dist/components/ResponseBody/helpers/process-response-body.d.ts +10 -0
  89. package/dist/components/ResponseBody/helpers/process-response-body.d.ts.map +1 -0
  90. package/dist/components/ResponseBody/helpers/process-response-body.js +63 -0
  91. package/dist/components/ResponseBody/helpers/process-response-body.js.map +1 -0
  92. package/dist/components/SearchPopover.vue.d.ts +13 -0
  93. package/dist/components/SearchPopover.vue.d.ts.map +1 -0
  94. package/dist/components/SearchPopover.vue.js +8 -0
  95. package/dist/components/SearchPopover.vue.js.map +1 -0
  96. package/dist/components/SearchPopover.vue2.js +78 -0
  97. package/dist/components/SearchPopover.vue2.js.map +1 -0
  98. package/dist/components/SendingRequest.vue.d.ts.map +1 -1
  99. package/dist/components/SendingRequest.vue.js +1 -1
  100. package/dist/components/SendingRequest.vue.js.map +1 -1
  101. package/dist/components/Suggestion.vue.d.ts.map +1 -1
  102. package/dist/components/Suggestion.vue.js +1 -1
  103. package/dist/components/Suggestion.vue2.js +1 -1
  104. package/dist/components/Suggestion.vue2.js.map +1 -1
  105. package/dist/components/TestRequestButton.vue2.js +1 -1
  106. package/dist/components/TestRequestButton.vue2.js.map +1 -1
  107. package/dist/helpers.d.ts +379 -0
  108. package/dist/helpers.d.ts.map +1 -1
  109. package/dist/helpers.js +135 -45
  110. package/dist/helpers.js.map +1 -1
  111. package/dist/hooks/useChatApprovals.d.ts +24 -0
  112. package/dist/hooks/useChatApprovals.d.ts.map +1 -0
  113. package/dist/hooks/useChatApprovals.js +25 -0
  114. package/dist/hooks/useChatApprovals.js.map +1 -0
  115. package/dist/hooks/useChatOperationBlocks.js +1 -1
  116. package/dist/hooks/useSearch.d.ts +26 -0
  117. package/dist/hooks/useSearch.d.ts.map +1 -0
  118. package/dist/hooks/useSearch.js +36 -0
  119. package/dist/hooks/useSearch.js.map +1 -0
  120. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/api.js +1 -0
  121. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js.map +1 -0
  122. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/core.js +20 -11
  123. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.js.map +1 -0
  124. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.js.map +1 -0
  125. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js.map +1 -0
  126. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js.map +1 -0
  127. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/schemas.js +3 -3
  128. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js.map +1 -0
  129. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/util.js +24 -0
  130. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.js.map +1 -0
  131. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/versions.js +2 -2
  132. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.js.map +1 -0
  133. package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/mini/schemas.js +12 -11
  134. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/mini/schemas.js.map +1 -0
  135. package/dist/package.json +9 -5
  136. package/dist/registry/add-documents-to-store.d.ts +21 -0
  137. package/dist/registry/add-documents-to-store.d.ts.map +1 -0
  138. package/dist/registry/add-documents-to-store.js +42 -0
  139. package/dist/registry/add-documents-to-store.js.map +1 -0
  140. package/dist/state/state.d.ts +29 -14
  141. package/dist/state/state.d.ts.map +1 -1
  142. package/dist/state/state.js +45 -40
  143. package/dist/state/state.js.map +1 -1
  144. package/dist/style.css +686 -234
  145. package/dist/views/Chat/Chat.vue.d.ts.map +1 -1
  146. package/dist/views/Chat/Chat.vue.js +1 -1
  147. package/dist/views/Chat/Chat.vue2.js +17 -5
  148. package/dist/views/Chat/Chat.vue2.js.map +1 -1
  149. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts.map +1 -1
  150. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +1 -1
  151. package/dist/views/Chat/Messages/ExecuteRequestTool.vue2.js +20 -43
  152. package/dist/views/Chat/Messages/ExecuteRequestTool.vue2.js.map +1 -1
  153. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts.map +1 -1
  154. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +1 -1
  155. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue2.js +2 -3
  156. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue2.js.map +1 -1
  157. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts +11 -0
  158. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts.map +1 -0
  159. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js +32 -0
  160. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -0
  161. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue2.js +5 -0
  162. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue2.js.map +1 -0
  163. package/dist/views/Chat/Messages/Text.vue.js +1 -1
  164. package/dist/views/Chat/Messages/Text.vue.js.map +1 -1
  165. package/dist/views/Layout.vue.d.ts.map +1 -1
  166. package/dist/views/Layout.vue.js +1 -1
  167. package/dist/views/Layout.vue2.js +0 -4
  168. package/dist/views/Layout.vue2.js.map +1 -1
  169. package/dist/views/PromptForm.vue.d.ts.map +1 -1
  170. package/dist/views/PromptForm.vue.js +1 -1
  171. package/dist/views/PromptForm.vue2.js +129 -72
  172. package/dist/views/PromptForm.vue2.js.map +1 -1
  173. package/dist/views/{Auth.vue.d.ts → Settings/Auth.vue.d.ts} +1 -0
  174. package/dist/views/Settings/Auth.vue.d.ts.map +1 -0
  175. package/dist/views/{Auth.vue.js → Settings/Auth.vue.js} +21 -26
  176. package/dist/views/Settings/Auth.vue.js.map +1 -0
  177. package/dist/views/Settings/DocSettings.vue.d.ts +8 -0
  178. package/dist/views/Settings/DocSettings.vue.d.ts.map +1 -0
  179. package/dist/views/Settings/DocSettings.vue.js +8 -0
  180. package/dist/views/Settings/DocSettings.vue.js.map +1 -0
  181. package/dist/views/Settings/DocSettings.vue2.js +50 -0
  182. package/dist/views/Settings/DocSettings.vue2.js.map +1 -0
  183. package/dist/views/Settings/Settings.vue.d.ts.map +1 -0
  184. package/dist/views/{Settings.vue.js → Settings/Settings.vue.js} +2 -2
  185. package/dist/views/Settings/Settings.vue2.js +78 -0
  186. package/dist/views/Settings/Settings.vue2.js.map +1 -0
  187. package/dist/views/Start.vue.d.ts.map +1 -1
  188. package/dist/views/Start.vue.js +1 -1
  189. package/dist/views/Start.vue2.js +0 -1
  190. package/dist/views/Start.vue2.js.map +1 -1
  191. package/package.json +3 -33
  192. package/dist/hooks/useActiveServer.d.ts +0 -2
  193. package/dist/hooks/useActiveServer.d.ts.map +0 -1
  194. package/dist/hooks/useActiveServer.js +0 -20
  195. package/dist/hooks/useActiveServer.js.map +0 -1
  196. package/dist/hooks/useSecuritySchemes.d.ts +0 -2
  197. package/dist/hooks/useSecuritySchemes.d.ts.map +0 -1
  198. package/dist/hooks/useSecuritySchemes.js +0 -29
  199. package/dist/hooks/useSecuritySchemes.js.map +0 -1
  200. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/api.js.map +0 -1
  201. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/core.js.map +0 -1
  202. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/errors.js.map +0 -1
  203. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/parse.js.map +0 -1
  204. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/regexes.js.map +0 -1
  205. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/schemas.js.map +0 -1
  206. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/util.js.map +0 -1
  207. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/versions.js.map +0 -1
  208. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/mini/schemas.js.map +0 -1
  209. package/dist/registry/get-document.d.ts +0 -4
  210. package/dist/registry/get-document.d.ts.map +0 -1
  211. package/dist/registry/get-document.js +0 -23
  212. package/dist/registry/get-document.js.map +0 -1
  213. package/dist/views/Auth.vue.d.ts.map +0 -1
  214. package/dist/views/Auth.vue.js.map +0 -1
  215. package/dist/views/Settings.vue.d.ts.map +0 -1
  216. package/dist/views/Settings.vue2.js +0 -81
  217. package/dist/views/Settings.vue2.js.map +0 -1
  218. /package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/errors.js +0 -0
  219. /package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/parse.js +0 -0
  220. /package/dist/node_modules/.pnpm/{zod@4.1.11 → zod@4.3.5}/node_modules/zod/v4/core/regexes.js +0 -0
  221. /package/dist/views/{Auth.vue2.js → Settings/Auth.vue2.js} +0 -0
  222. /package/dist/views/{Auth.vue2.js.map → Settings/Auth.vue2.js.map} +0 -0
  223. /package/dist/views/{Settings.vue.d.ts → Settings/Settings.vue.d.ts} +0 -0
  224. /package/dist/views/{Settings.vue.js.map → Settings/Settings.vue.js.map} +0 -0
@@ -0,0 +1,15 @@
1
+ export type MediaPreview = 'object' | 'image' | 'video' | 'audio';
2
+ export type MediaConfig = {
3
+ preview?: MediaPreview;
4
+ alpha?: boolean;
5
+ raw?: boolean;
6
+ language?: string;
7
+ extension: string;
8
+ };
9
+ /** Media Types (MIME Types) that can be displayed as raw text */
10
+ export declare const textMediaTypes: string[];
11
+ /** Get the config for a media type */
12
+ export declare function getMediaTypeConfig(type: string): MediaConfig | undefined;
13
+ /** Check if a media type that can be displayed as raw text */
14
+ export declare function isTextMediaType(type: string): boolean;
15
+ //# sourceMappingURL=media-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-types.d.ts","sourceRoot":"","sources":["../../../../src/components/ResponseBody/helpers/media-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjE,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAuHD,iEAAiE;AACjE,eAAO,MAAM,cAAc,EAAE,MAAM,EAEX,CAAA;AAExB,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAgBxE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,134 @@
1
+ const mediaTypes = {
2
+ "application/epub+zip": { extension: ".epub" },
3
+ "application/gzip": { extension: ".gz" },
4
+ "application/java-archive": { extension: ".jar" },
5
+ "application/javascript": { extension: ".js", raw: true },
6
+ "application/json": { extension: ".json", raw: true, language: "json" },
7
+ "application/ld+json": { extension: ".jsonld", raw: true, language: "json" },
8
+ "application/problem+json": {
9
+ extension: ".json",
10
+ raw: true,
11
+ language: "json"
12
+ },
13
+ "application/vnd.api+json": {
14
+ extension: ".json",
15
+ raw: true,
16
+ language: "json"
17
+ },
18
+ "application/dns-json": { extension: ".json", raw: true, language: "json" },
19
+ "application/msword": { extension: ".doc" },
20
+ "application/octet-stream": { extension: ".bin" },
21
+ "application/ogg": { extension: ".ogx" },
22
+ "application/pdf": { extension: ".pdf", preview: "object" },
23
+ "application/rtf": { extension: ".rtf", raw: true },
24
+ "application/vnd.amazon.ebook": { extension: ".azw" },
25
+ "application/vnd.apple.installer+xml": {
26
+ extension: ".mpkg",
27
+ raw: true,
28
+ language: "xml"
29
+ },
30
+ "application/vnd.mozilla.xul+xml": {
31
+ extension: ".xul",
32
+ raw: true,
33
+ language: "xml"
34
+ },
35
+ "application/vnd.ms-excel": { extension: ".xls" },
36
+ "application/vnd.ms-fontobject": { extension: ".eot" },
37
+ "application/vnd.ms-powerpoint": { extension: ".ppt" },
38
+ "application/vnd.oasis.opendocument.presentation": { extension: ".odp" },
39
+ "application/vnd.oasis.opendocument.spreadsheet": { extension: ".ods" },
40
+ "application/vnd.oasis.opendocument.text": { extension: ".odt" },
41
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
42
+ extension: ".pptx"
43
+ },
44
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
45
+ extension: ".xlsx"
46
+ },
47
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
48
+ extension: ".docx"
49
+ },
50
+ "application/vnd.rar": { extension: ".rar" },
51
+ "application/vnd.visio": { extension: ".vsd" },
52
+ "application/x-7z-compressed": { extension: ".7z" },
53
+ "application/x-abiword": { extension: ".abw" },
54
+ "application/x-bzip": { extension: ".bz" },
55
+ "application/x-bzip2": { extension: ".bz2" },
56
+ "application/x-cdf": { extension: ".cda" },
57
+ "application/x-csh": { extension: ".csh" },
58
+ "application/x-freearc": { extension: ".arc" },
59
+ "application/x-httpd-php": { extension: ".php", raw: true },
60
+ "application/x-sh": { extension: ".sh", raw: true },
61
+ "application/x-tar": { extension: ".tar" },
62
+ "application/xhtml+xml": { extension: ".xhtml", raw: true, language: "html" },
63
+ "application/xml": { extension: ".xml", raw: true, language: "xml" },
64
+ "application/yaml": { extension: ".yaml", raw: true, language: "yaml" },
65
+ "application/zip": { extension: ".zip" },
66
+ "audio/aac": { extension: ".aac" },
67
+ "audio/midi": { extension: ".midi" },
68
+ "audio/mpeg": { extension: ".mp3", preview: "audio" },
69
+ "audio/ogg": { extension: ".oga" },
70
+ "audio/wav": { extension: ".wav" },
71
+ "audio/webm": { extension: ".weba" },
72
+ "font/otf": { extension: ".otf" },
73
+ "font/ttf": { extension: ".ttf" },
74
+ "font/woff": { extension: ".woff" },
75
+ "font/woff2": { extension: ".woff2" },
76
+ "image/apng": { extension: ".apng", preview: "image", alpha: true },
77
+ "image/avif": { extension: ".avif", preview: "image" },
78
+ "image/bmp": { extension: ".bmp", preview: "image" },
79
+ "image/gif": { extension: ".gif", preview: "image", alpha: true },
80
+ "image/jpeg": { extension: ".jpg", preview: "image" },
81
+ "image/png": { extension: ".png", preview: "image", alpha: true },
82
+ "image/svg+xml": {
83
+ extension: ".svg",
84
+ raw: true,
85
+ language: "xml",
86
+ preview: "image",
87
+ alpha: true
88
+ },
89
+ "image/tiff": { extension: ".tiff" },
90
+ "image/vnd.microsoft.icon": { extension: ".ico", preview: "image" },
91
+ "image/webp": { extension: ".webp", preview: "image", alpha: true },
92
+ "text/calendar": { extension: ".ics", raw: true },
93
+ "text/css": { extension: ".css", raw: true, language: "css" },
94
+ "text/csv": { extension: ".csv", raw: true },
95
+ "text/html": {
96
+ extension: ".html",
97
+ raw: true,
98
+ language: "html",
99
+ preview: "object"
100
+ },
101
+ "text/javascript": { extension: ".js", raw: true },
102
+ "text/plain": { extension: ".txt", raw: true },
103
+ "text/xml": { extension: ".xml", raw: true, language: "xml" },
104
+ "text/yaml": { extension: ".yaml", raw: true, language: "yaml" },
105
+ "video/3gpp": { extension: ".3gp" },
106
+ "audio/3gpp": { extension: ".3gp" },
107
+ "video/3gpp2": { extension: ".3g2" },
108
+ "audio/3gpp2": { extension: ".3g2" },
109
+ "video/mp2t": { extension: ".ts" },
110
+ "video/mp4": { extension: ".mp4", preview: "video" },
111
+ "video/mpeg": { extension: ".mpeg" },
112
+ "video/ogg": { extension: ".ogv" },
113
+ "video/webm": { extension: ".webm", preview: "video" },
114
+ "video/x-msvideo": { extension: ".avi" }
115
+ };
116
+ Object.entries(mediaTypes).filter(([, config]) => config?.raw).map(([type]) => type);
117
+ function getMediaTypeConfig(type) {
118
+ const config = mediaTypes[type];
119
+ if (config) {
120
+ return config;
121
+ }
122
+ if (type.endsWith("+json")) {
123
+ return {
124
+ extension: ".json",
125
+ raw: true,
126
+ language: "json"
127
+ };
128
+ }
129
+ return void 0;
130
+ }
131
+ export {
132
+ getMediaTypeConfig
133
+ };
134
+ //# sourceMappingURL=media-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-types.js","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/** Media Types (MIME Types) that can be displayed as raw text */\nexport const textMediaTypes: string[] = Object.entries(mediaTypes)\n .filter(([, config]) => config?.raw)\n .map(([type]) => type)\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\n/** Check if a media type that can be displayed as raw text */\nexport function isTextMediaType(type: string): boolean {\n return !!getMediaTypeConfig(type)?.raw\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import MimeType from 'whatwg-mimetype';
2
+ export declare function processResponseBody({ data, headers, }: {
3
+ data: unknown;
4
+ headers?: Record<string, string>;
5
+ }): {
6
+ mimeType: MimeType | undefined;
7
+ attachmentFilename: string;
8
+ dataUrl: string;
9
+ };
10
+ //# sourceMappingURL=process-response-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-response-body.d.ts","sourceRoot":"","sources":["../../../../src/components/ResponseBody/helpers/process-response-body.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAqCtC,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;;;;EAmCA"}
@@ -0,0 +1,63 @@
1
+ import MimeType from "whatwg-mimetype";
2
+ const decodeURIComponentSafe = (str) => {
3
+ try {
4
+ return decodeURIComponent(str);
5
+ } catch {
6
+ return str;
7
+ }
8
+ };
9
+ function extractFilename(contentDisposition) {
10
+ let filename = "";
11
+ if (contentDisposition) {
12
+ const fileNameMatch = contentDisposition.match(/filename\*=UTF-8''([^;]+)/)?.[1] ?? contentDisposition.match(/filename\s*=\s*"?([^";]+)"?/)?.[1];
13
+ if (fileNameMatch) {
14
+ filename = decodeURIComponentSafe(fileNameMatch.trim());
15
+ }
16
+ }
17
+ return filename;
18
+ }
19
+ const isBlob = (b) => b instanceof Blob;
20
+ const getResponseHeaders = (headers) => {
21
+ return headers ? Object.keys(headers).map((key) => ({
22
+ name: key,
23
+ value: headers[key] ?? ""
24
+ })) : [];
25
+ };
26
+ function processResponseBody({
27
+ data,
28
+ headers
29
+ }) {
30
+ const responseHeaders = getResponseHeaders(headers);
31
+ const contentType = responseHeaders.find(
32
+ (header) => header.name.toLowerCase() === "content-type"
33
+ );
34
+ const mimeType = contentType?.value ? new MimeType(contentType.value) : void 0;
35
+ const attachmentFilename = extractFilename(
36
+ responseHeaders.find(
37
+ (header) => header.name.toLowerCase() === "content-disposition"
38
+ )?.value ?? ""
39
+ );
40
+ const dataUrl = (() => {
41
+ if (isBlob(data)) {
42
+ return URL.createObjectURL(data);
43
+ }
44
+ if (typeof data === "string") {
45
+ return URL.createObjectURL(
46
+ new Blob([data], { type: mimeType ? mimeType.toString() : void 0 })
47
+ );
48
+ }
49
+ if (data instanceof Object && Object.keys(data).length) {
50
+ return URL.createObjectURL(
51
+ new Blob([JSON.stringify(data)], {
52
+ type: mimeType ? mimeType.toString() : void 0
53
+ })
54
+ );
55
+ }
56
+ return "";
57
+ })();
58
+ return { mimeType, attachmentFilename, dataUrl };
59
+ }
60
+ export {
61
+ processResponseBody
62
+ };
63
+ //# sourceMappingURL=process-response-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-response-body.js","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({\n data,\n headers,\n}: {\n data: unknown\n headers?: Record<string, string>\n}) {\n const responseHeaders = getResponseHeaders(headers)\n\n const contentType = responseHeaders.find(\n (header) => header.name.toLowerCase() === 'content-type',\n )\n const mimeType = contentType?.value\n ? new MimeType(contentType.value)\n : undefined\n const attachmentFilename = extractFilename(\n responseHeaders.find(\n (header) => header.name.toLowerCase() === 'content-disposition',\n )?.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(\n new Blob([data], { type: mimeType ? mimeType.toString() : undefined }),\n )\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"],"names":[],"mappings":";AAEA,MAAM,yBAAyB,CAAC,QAAgB;AAC9C,MAAI;AACF,WAAO,mBAAmB,GAAG;AAAA,EAC/B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,gBAAgB,oBAA4B;AACnD,MAAI,WAAW;AAEf,MAAI,oBAAoB;AACtB,UAAM,gBACJ,mBAAmB,MAAM,2BAA2B,IAAI,CAAC,KACzD,mBAAmB,MAAM,6BAA6B,IAAI,CAAC;AAE7D,QAAI,eAAe;AACjB,iBAAW,uBAAuB,cAAc,MAAM;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,SAAS,CAAC,MAAsB,aAAa;AAEnD,MAAM,qBAAqB,CAAC,YAAqC;AAC/D,SAAO,UACH,OAAO,KAAK,OAAO,EAAE,IAAI,CAAC,SAAS;AAAA,IACjC,MAAM;AAAA,IACN,OAAO,QAAQ,GAAG,KAAK;AAAA,EAAA,EACvB,IACF,CAAA;AACN;AAEO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AACF,GAGG;AACD,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,QAAM,cAAc,gBAAgB;AAAA,IAClC,CAAC,WAAW,OAAO,KAAK,kBAAkB;AAAA,EAAA;AAE5C,QAAM,WAAW,aAAa,QAC1B,IAAI,SAAS,YAAY,KAAK,IAC9B;AACJ,QAAM,qBAAqB;AAAA,IACzB,gBAAgB;AAAA,MACd,CAAC,WAAW,OAAO,KAAK,kBAAkB;AAAA,IAAA,GACzC,SAAS;AAAA,EAAA;AAGd,QAAM,WAAW,MAAM;AACrB,QAAI,OAAO,IAAI,GAAG;AAChB,aAAO,IAAI,gBAAgB,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,IAAI;AAAA,QACT,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,WAAW,SAAS,SAAA,IAAa,OAAA,CAAW;AAAA,MAAA;AAAA,IAEzE;AACA,QAAI,gBAAgB,UAAU,OAAO,KAAK,IAAI,EAAE,QAAQ;AACtD,aAAO,IAAI;AAAA,QACT,IAAI,KAAK,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG;AAAA,UAC/B,MAAM,WAAW,SAAS,aAAa;AAAA,QAAA,CACxC;AAAA,MAAA;AAAA,IAEL;AACA,WAAO;AAAA,EACT,GAAA;AAEA,SAAO,EAAE,UAAU,oBAAoB,QAAA;AACzC;"}
@@ -0,0 +1,13 @@
1
+ declare var __VLS_7: {};
2
+ type __VLS_Slots = {} & {
3
+ default?: (props: typeof __VLS_7) => any;
4
+ };
5
+ declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
7
+ export default _default;
8
+ type __VLS_WithSlots<T, S> = T & {
9
+ new (): {
10
+ $slots: S;
11
+ };
12
+ };
13
+ //# sourceMappingURL=SearchPopover.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue.d.ts","sourceRoot":"","sources":["../../src/components/SearchPopover.vue"],"names":[],"mappings":"AAwQA,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAqB/C,QAAA,MAAM,eAAe,+QACnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import _sfc_main from "./SearchPopover.vue2.js";
2
+ /* empty css */
3
+ import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
4
+ const SearchPopover = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3d8868ed"]]);
5
+ export {
6
+ SearchPopover as default
7
+ };
8
+ //# sourceMappingURL=SearchPopover.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,78 @@
1
+ import { defineComponent, computed, createBlock, openBlock, unref, withCtx, renderSlot, createVNode, createElementBlock, Fragment, renderList, createCommentVNode, createElementVNode, toDisplayString } from "vue";
2
+ import { ScalarPopover, ScalarTextInput } from "@scalar/components";
3
+ import { ScalarIconMagnifyingGlass } from "@scalar/icons";
4
+ import { useSearch } from "../hooks/useSearch.js";
5
+ import { useState } from "../state/state.js";
6
+ const _hoisted_1 = ["onClick"];
7
+ const _hoisted_2 = ["src"];
8
+ const _hoisted_3 = {
9
+ key: 1,
10
+ class: "searchResultsEmpty"
11
+ };
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ __name: "SearchPopover",
14
+ setup(__props) {
15
+ const state = useState();
16
+ const search = useSearch(state.baseUrl);
17
+ const searchOptions = computed(
18
+ () => search.results.value.filter(
19
+ (r) => !state.registryDocuments.value.some(
20
+ (d) => d.namespace === r.namespace && d.slug === r.slug
21
+ )
22
+ ).map((result) => ({
23
+ ...result,
24
+ label: result.title,
25
+ id: result.id
26
+ }))
27
+ );
28
+ return (_ctx, _cache) => {
29
+ return openBlock(), createBlock(unref(ScalarPopover), {
30
+ offset: 0,
31
+ placement: "top-start",
32
+ resize: "",
33
+ style: { "width": "220px" }
34
+ }, {
35
+ popover: withCtx(({ close }) => [
36
+ createVNode(unref(ScalarTextInput), {
37
+ autofocus: "",
38
+ class: "searchInput",
39
+ modelValue: unref(search).query.value,
40
+ placeholder: "Add an API",
41
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (v) => unref(search).query.value = v ?? "")
42
+ }, {
43
+ prefix: withCtx(() => [
44
+ createVNode(unref(ScalarIconMagnifyingGlass), { class: "searchIcon" })
45
+ ]),
46
+ _: 1
47
+ }, 8, ["modelValue"]),
48
+ searchOptions.value.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(searchOptions.value, (option) => {
49
+ return openBlock(), createElementBlock("button", {
50
+ key: option.id,
51
+ class: "searchItem",
52
+ type: "button",
53
+ onClick: () => {
54
+ unref(state).addDocument(option);
55
+ close();
56
+ }
57
+ }, [
58
+ option.logoUrl ? (openBlock(), createElementBlock("img", {
59
+ key: 0,
60
+ class: "searchItemLogo",
61
+ src: option.logoUrl
62
+ }, null, 8, _hoisted_2)) : createCommentVNode("", true),
63
+ createElementVNode("span", null, toDisplayString(option.title), 1)
64
+ ], 8, _hoisted_1);
65
+ }), 128)) : (openBlock(), createElementBlock("span", _hoisted_3, " No APIs found "))
66
+ ]),
67
+ default: withCtx(() => [
68
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
69
+ ]),
70
+ _: 3
71
+ });
72
+ };
73
+ }
74
+ });
75
+ export {
76
+ _sfc_main as default
77
+ };
78
+ //# sourceMappingURL=SearchPopover.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue2.js","sources":["../../src/components/SearchPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { ScalarPopover, ScalarTextInput } from '@scalar/components'\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\n\nimport { useSearch } from '@/hooks/useSearch'\nimport { useState } from '@/state/state'\n\nconst state = useState()\n\nconst search = useSearch(state.baseUrl)\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"],"names":["_createBlock","_unref","_withCtx","_createVNode","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_renderSlot"],"mappings":";;;;;;;;;;;;;;AASA,UAAM,QAAQ,SAAA;AAEd,UAAM,SAAS,UAAU,MAAM,OAAO;AAEtC,UAAM,gBAAgB;AAAA,MAAS,MAC7B,OAAO,QAAQ,MACZ;AAAA,QACC,CAAC,MACC,CAAC,MAAM,kBAAkB,MAAM;AAAA,UAC7B,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE;AAAA,QAAA;AAAA,MACrD,EAEH,IAAI,CAAC,YAAY;AAAA,QAChB,GAAG;AAAA,QACH,OAAO,OAAO;AAAA,QACd,IAAI,OAAO;AAAA,MAAA,EACX;AAAA,IAAA;;0BAKJA,YA4CgBC,MAAA,aAAA,GAAA;AAAA,QA3Cb,QAAQ;AAAA,QACT,WAAU;AAAA,QACV,QAAA;AAAA,QACA,OAAA,EAAA,SAAA,QAAA;AAAA,MAAA;QAEW,SAAOC,QAChB,CASkB,EAVE,YAAK;AAAA,UACzBC,YASkBF,MAAA,eAAA,GAAA;AAAA,YARhB,WAAA;AAAA,YACA,OAAM;AAAA,YACL,YAAYA,MAAA,MAAA,EAAO,MAAM;AAAA,YAC1B,aAAY;AAAA,YACX,uBAAiB,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAG,MAAOA,MAAA,MAAA,EAAO,MAAM,QAAQ,KAAC;AAAA,UAAA;YACvC,gBACT,MAAgD;AAAA,cAAhDE,YAAgDF,MAAA,yBAAA,GAAA,EAArB,OAAM,cAAY;AAAA,YAAA;;;UAIjC,cAAA,MAAc,2BAC3BG,mBAgBQC,UAAA,EAAA,KAAA,KAAAC,WAfU,cAAA,OAAa,CAAvB,WAAM;gCADdF,mBAgBQ,UAAA;AAAA,cAdN,KAAK,OAAO;AAAA,cACb,OAAM;AAAA,cACN,MAAK;AAAA,cACJ;AAA0CH,sBAAA,KAAA,EAAM,YAAY,MAAM;AAAgB,sBAAA;AAAA;;cAO3E,OAAO,wBADfG,mBAG0B,OAAA;AAAA;gBADxB,OAAM;AAAA,gBACL,KAAK,OAAO;AAAA,cAAA;cACfG,mBAA+B,QAAA,MAAAC,gBAAtB,OAAO,KAAK,GAAA,CAAA;AAAA,YAAA;oCAIzBJ,mBAIO,QAJP,YAE6B,iBAE7B;AAAA,QAAA;yBArCF,MAAQ;AAAA,UAARK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,QAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SendingRequest.vue.d.ts","sourceRoot":"","sources":["../../src/components/SendingRequest.vue"],"names":[],"mappings":";AA0HA,wBACG"}
1
+ {"version":3,"file":"SendingRequest.vue.d.ts","sourceRoot":"","sources":["../../src/components/SendingRequest.vue"],"names":[],"mappings":";AA6HA,wBACG"}
@@ -19,7 +19,7 @@ function _sfc_render(_ctx, _cache) {
19
19
  createTextVNode(" Sending Request to Endpoint ", -1)
20
20
  ])]);
21
21
  }
22
- const SendingRequest = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-53e6e821"]]);
22
+ const SendingRequest = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-4edaf045"]]);
23
23
  export {
24
24
  SendingRequest as default
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SendingRequest.vue.js","sources":["../../src/components/SendingRequest.vue"],"sourcesContent":["<template>\n <div class=\"sendingRequest\">\n <div class=\"playIcon\">\n <svg\n fill=\"currentColor\"\n height=\"32\"\n viewBox=\"0 0 256 256\"\n width=\"32\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z\"></path>\n </svg>\n </div>\n Sending Request to Endpoint\n </div>\n</template>\n\n<style scoped>\n.playIcon {\n padding: 4px;\n height: 16px;\n width: 16px;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n background: var(--scalar-background-1);\n border-radius: 50%;\n}\n\n.playIcon::before {\n content: '';\n width: 16px;\n height: 16px;\n display: inline-block;\n box-sizing: border-box;\n position: absolute;\n border-width: 1.75px;\n border-style: solid;\n border-color: currentcolor currentcolor transparent;\n border-image: initial;\n border-radius: 50%;\n background: var(--scalar-background-1);\n animation: 0.42s linear 0s infinite normal none running rotation;\n}\n\n.sendingRequest {\n display: flex;\n align-items: center;\n gap: 10px;\n color: var(--scalar-color-blue);\n font-weight: var(--scalar-semibold);\n}\n\n.sendingRequest svg {\n width: 100%;\n height: 100%;\n z-index: 1;\n border-radius: 50%;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;AACO,MAAA,aAAA,EAAA,OAAM,iBAAgB;;AAA3B,SAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM,CAAA,GAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA;AAAA,IAZJC,mBAUM,OAAA,EAVD,OAAM,WAAU,GAAA;AAAA,MACnBA,mBAQM,OAAA;AAAA,QAPJ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAM;AAAA;QACNA,mBAC4M,QAAA,EAA1M,GAAE,iMAAgM,CAAA;AAAA;;oBAElM,iCAER,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"SendingRequest.vue.js","sources":["../../src/components/SendingRequest.vue"],"sourcesContent":["<template>\n <div class=\"sendingRequest\">\n <div class=\"playIcon\">\n <svg\n fill=\"currentColor\"\n height=\"32\"\n viewBox=\"0 0 256 256\"\n width=\"32\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z\"></path>\n </svg>\n </div>\n Sending Request to Endpoint\n </div>\n</template>\n\n<style scoped>\n.playIcon {\n padding: 4px;\n height: 16px;\n width: 16px;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n background: var(--scalar-background-1);\n border-radius: 50%;\n}\n\n.playIcon::before {\n content: '';\n width: 16px;\n height: 16px;\n display: inline-block;\n box-sizing: border-box;\n position: absolute;\n border-width: 1.75px;\n border-style: solid;\n border-color: currentcolor currentcolor transparent;\n border-image: initial;\n border-radius: 50%;\n background: var(--scalar-background-1);\n animation: 0.42s linear 0s infinite normal none running rotation;\n}\n\n.sendingRequest {\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: 28px;\n font-size: var(--scalar-font-size-3);\n position: relative;\n}\n\n.sendingRequest svg {\n width: 100%;\n height: 100%;\n z-index: 1;\n border-radius: 50%;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode"],"mappings":";;;;AACO,MAAA,aAAA,EAAA,OAAM,iBAAgB;;AAA3B,SAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM,CAAA,GAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA;AAAA,IAZJC,mBAUM,OAAA,EAVD,OAAM,WAAU,GAAA;AAAA,MACnBA,mBAQM,OAAA;AAAA,QAPJ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAM;AAAA;QACNA,mBAC4M,QAAA,EAA1M,GAAE,iMAAgM,CAAA;AAAA;;oBAElM,iCAER,EAAA;AAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Suggestion.vue.d.ts","sourceRoot":"","sources":["../../src/components/Suggestion.vue"],"names":[],"mappings":"AA6CA,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;AAwDpC,wBAGG"}
1
+ {"version":3,"file":"Suggestion.vue.d.ts","sourceRoot":"","sources":["../../src/components/Suggestion.vue"],"names":[],"mappings":"AA4CA,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;AAwDpC,wBAGG"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./Suggestion.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
4
- const Suggestion = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-db481fa6"]]);
4
+ const Suggestion = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f610aee2"]]);
5
5
  export {
6
6
  Suggestion as default
7
7
  };
@@ -18,7 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  class: "suggestion",
19
19
  type: "button",
20
20
  onClick
21
- }, toDisplayString(_ctx.text), 1);
21
+ }, toDisplayString(__props.text), 1);
22
22
  };
23
23
  }
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Suggestion.vue2.js","sources":["../../src/components/Suggestion.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useState } from '@/state/state'\n\nconst { text } = defineProps<{ text: string }>()\n\nconst emit = defineEmits<{\n (e: 'click'): void\n}>()\n\nconst state = useState()\n\nfunction onClick() {\n state.prompt.value = text\n emit('click')\n}\n</script>\n\n<template>\n <button\n class=\"suggestion\"\n type=\"button\"\n @click=\"onClick\">\n {{ text }}\n </button>\n</template>\n\n<style scoped>\n.suggestion {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n color: var(--scalar-color-2);\n font-weight: var(--scalar-semibold);\n height: 32px;\n border-radius: 16px;\n padding-inline: 8px;\n font-size: var(--scalar-font-size-3);\n}\n.suggestion:hover {\n background: var(--scalar-background-2);\n cursor: pointer;\n}\n</style>\n"],"names":["_createElementBlock","text"],"mappings":";;;;;;;;;AAKA,UAAM,OAAO;AAIb,UAAM,QAAQ,SAAA;AAEd,aAAS,UAAU;AACjB,YAAM,OAAO,QAAQ,QAAA;AACrB,WAAK,OAAO;AAAA,IACd;;0BAIEA,mBAKS,UAAA;AAAA,QAJP,OAAM;AAAA,QACN,MAAK;AAAA,QACJ;AAAA,MAAA,mBACEC,KAAAA,IAAI,GAAA,CAAA;AAAA;;;"}
1
+ {"version":3,"file":"Suggestion.vue2.js","sources":["../../src/components/Suggestion.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useState } from '@/state/state'\n\nconst { text } = defineProps<{ text: string }>()\n\nconst emit = defineEmits<{\n (e: 'click'): void\n}>()\n\nconst state = useState()\n\nfunction onClick() {\n state.prompt.value = text\n emit('click')\n}\n</script>\n\n<template>\n <button\n class=\"suggestion\"\n type=\"button\"\n @click=\"onClick\">\n {{ text }}\n </button>\n</template>\n\n<style scoped>\n.suggestion {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n color: var(--scalar-color-2);\n height: 28px;\n border-radius: 16px;\n padding-inline: 8px;\n font-size: var(--scalar-font-size-3);\n}\n.suggestion:hover {\n background: var(--scalar-background-2);\n cursor: pointer;\n}\n</style>\n"],"names":["_createElementBlock"],"mappings":";;;;;;;;;AAKA,UAAM,OAAO;AAIb,UAAM,QAAQ,SAAA;AAEd,aAAS,UAAU;AACjB,YAAM,OAAO,QAAQ,QAAA;AACrB,WAAK,OAAO;AAAA,IACd;;0BAIEA,mBAKS,UAAA;AAAA,QAJP,OAAM;AAAA,QACN,MAAK;AAAA,QACJ;AAAA,MAAA,mBACE,QAAA,IAAI,GAAA,CAAA;AAAA;;;"}
@@ -18,7 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  ref_key: "el",
19
19
  ref: el,
20
20
  class: "show-api-client-button",
21
- method: _ctx.method,
21
+ method: __props.method,
22
22
  type: "button",
23
23
  onClick: withModifiers(handleClick, ["stop"])
24
24
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"TestRequestButton.vue2.js","sources":["../../src/components/TestRequestButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\nimport type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport { ScalarIconPlay } from '@scalar/icons'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\n\nconst { method, path } = defineProps<{\n method: HttpMethod\n path: string\n}>()\n\nconst el = ref<HTMLElement | null>(null)\nconst handleClick = () => {\n emitCustomEvent(el.value, 'scalar-open-client', { method, path })\n}\n</script>\n<template>\n <!-- Render the Test Request Button -->\n <button\n ref=\"el\"\n class=\"show-api-client-button\"\n :method=\"method\"\n type=\"button\"\n @click.stop=\"handleClick\">\n <ScalarIconPlay\n class=\"size-3\"\n weight=\"fill\" />\n <span>Test Request</span>\n </button>\n</template>\n<style scoped>\n.show-api-client-button {\n appearance: none;\n border: none;\n padding: 1px 6px;\n white-space: nowrap;\n border-radius: var(--scalar-radius);\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-small);\n line-height: 22px;\n color: var(--scalar-background-2);\n font-family: var(--scalar-font);\n background: var(--scalar-button-1);\n cursor: pointer;\n box-sizing: border-box;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n\n outline-offset: 2px;\n}\n.show-api-client-button span,\n.show-api-client-button svg {\n fill: currentColor;\n color: var(--scalar-button-1-color);\n z-index: 1;\n}\n.show-api-client-button:hover {\n background: var(--scalar-button-1-hover);\n}\n.show-api-client-button svg {\n margin-right: 4px;\n}\n</style>\n"],"names":["_createElementBlock","method","_createVNode","_unref","_createElementVNode"],"mappings":";;;;;;;;;;;AAYA,UAAM,KAAK,IAAwB,IAAI;AACvC,UAAM,cAAc,MAAM;AACxB,sBAAgB,GAAG,OAAO,sBAAsB,EAAE,QAAK,QAAA,QAAG,MAAG,QAAA,KAAA,CAAG;AAAA,IAClE;;0BAIEA,mBAUS,UAAA;AAAA,iBATH;AAAA,QAAJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACL,QAAQC,KAAAA;AAAAA,QACT,MAAK;AAAA,QACJ,uBAAY,aAAW,CAAA,MAAA,CAAA;AAAA,MAAA;QACxBC,YAEkBC,MAAA,cAAA,GAAA;AAAA,UADhB,OAAM;AAAA,UACN,QAAO;AAAA,QAAA;QACT,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAC,mBAAyB,cAAnB,gBAAY,EAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"TestRequestButton.vue2.js","sources":["../../src/components/TestRequestButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\nimport type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport { ScalarIconPlay } from '@scalar/icons'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\n\nconst { method, path } = defineProps<{\n method: HttpMethod\n path: string\n}>()\n\nconst el = ref<HTMLElement | null>(null)\nconst handleClick = () => {\n emitCustomEvent(el.value, 'scalar-open-client', { method, path })\n}\n</script>\n<template>\n <!-- Render the Test Request Button -->\n <button\n ref=\"el\"\n class=\"show-api-client-button\"\n :method=\"method\"\n type=\"button\"\n @click.stop=\"handleClick\">\n <ScalarIconPlay\n class=\"size-3\"\n weight=\"fill\" />\n <span>Test Request</span>\n </button>\n</template>\n<style scoped>\n.show-api-client-button {\n appearance: none;\n border: none;\n padding: 1px 6px;\n white-space: nowrap;\n border-radius: var(--scalar-radius);\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-small);\n line-height: 22px;\n color: var(--scalar-background-2);\n font-family: var(--scalar-font);\n background: var(--scalar-button-1);\n cursor: pointer;\n box-sizing: border-box;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n\n outline-offset: 2px;\n}\n.show-api-client-button span,\n.show-api-client-button svg {\n fill: currentColor;\n color: var(--scalar-button-1-color);\n z-index: 1;\n}\n.show-api-client-button:hover {\n background: var(--scalar-button-1-hover);\n}\n.show-api-client-button svg {\n margin-right: 4px;\n}\n</style>\n"],"names":["_createElementBlock","_createVNode","_unref","_createElementVNode"],"mappings":";;;;;;;;;;;AAYA,UAAM,KAAK,IAAwB,IAAI;AACvC,UAAM,cAAc,MAAM;AACxB,sBAAgB,GAAG,OAAO,sBAAsB,EAAE,QAAK,QAAA,QAAG,MAAG,QAAA,KAAA,CAAG;AAAA,IAClE;;0BAIEA,mBAUS,UAAA;AAAA,iBATH;AAAA,QAAJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACL,QAAQ,QAAA;AAAA,QACT,MAAK;AAAA,QACJ,uBAAY,aAAW,CAAA,MAAA,CAAA;AAAA,MAAA;QACxBC,YAEkBC,MAAA,cAAA,GAAA;AAAA,UADhB,OAAM;AAAA,UACN,QAAO;AAAA,QAAA;QACT,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAC,mBAAyB,cAAnB,gBAAY,EAAA;AAAA,MAAA;;;;"}