@scalar/api-client 2.38.1 → 2.38.3

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 (1179) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/AddressBar-CX8xiYoe.js +302 -0
  3. package/dist/AddressBar-CX8xiYoe.js.map +1 -0
  4. package/dist/App-BpNPKHmM.js +533 -0
  5. package/dist/App-BpNPKHmM.js.map +1 -0
  6. package/dist/App-Ckirvnv1.js +2510 -0
  7. package/dist/App-Ckirvnv1.js.map +1 -0
  8. package/dist/CodeInput-BN7uw3Bh.js +694 -0
  9. package/dist/CodeInput-BN7uw3Bh.js.map +1 -0
  10. package/dist/CodeSnippet-D7Heh1nd.js +218 -0
  11. package/dist/CodeSnippet-D7Heh1nd.js.map +1 -0
  12. package/dist/Collection-ChAxs3rz.js +219 -0
  13. package/dist/Collection-ChAxs3rz.js.map +1 -0
  14. package/dist/CollectionAuthentication-BDpvv8cA.js +56 -0
  15. package/dist/CollectionAuthentication-BDpvv8cA.js.map +1 -0
  16. package/dist/CollectionCookies-DyjPPMdt.js +19 -0
  17. package/dist/CollectionCookies-DyjPPMdt.js.map +1 -0
  18. package/dist/CollectionEnvironment-dwisJ-h5.js +514 -0
  19. package/dist/CollectionEnvironment-dwisJ-h5.js.map +1 -0
  20. package/dist/CollectionOverview-CJ9-Vmei.js +131 -0
  21. package/dist/CollectionOverview-CJ9-Vmei.js.map +1 -0
  22. package/dist/CollectionScripts-CMNlBlby.js +19 -0
  23. package/dist/CollectionScripts-CMNlBlby.js.map +1 -0
  24. package/dist/CollectionServers-BWkIGwz4.js +168 -0
  25. package/dist/CollectionServers-BWkIGwz4.js.map +1 -0
  26. package/dist/CollectionSettings-CqUUYOym.js +87 -0
  27. package/dist/CollectionSettings-CqUUYOym.js.map +1 -0
  28. package/dist/CollectionSync-CAflc5yW.js +19 -0
  29. package/dist/CollectionSync-CAflc5yW.js.map +1 -0
  30. package/dist/CommandActionInput-TkcAx6E8.js +97 -0
  31. package/dist/CommandActionInput-TkcAx6E8.js.map +1 -0
  32. package/dist/CommandPalette-BiA0IgO8.js +964 -0
  33. package/dist/CommandPalette-BiA0IgO8.js.map +1 -0
  34. package/dist/CommandPaletteImport-Diu5dDIY.js +622 -0
  35. package/dist/CommandPaletteImport-Diu5dDIY.js.map +1 -0
  36. package/dist/Cookies-CNRSxP8J.js +284 -0
  37. package/dist/Cookies-CNRSxP8J.js.map +1 -0
  38. package/dist/DataTable-BqbZKW3K.js +62 -0
  39. package/dist/DataTable-BqbZKW3K.js.map +1 -0
  40. package/dist/DataTableHeader-DJVB0jCZ.js +21 -0
  41. package/dist/DataTableHeader-DJVB0jCZ.js.map +1 -0
  42. package/dist/DataTableInput-SkIUPlrB.js +166 -0
  43. package/dist/DataTableInput-SkIUPlrB.js.map +1 -0
  44. package/dist/DataTableRow-c3XveEUO.js +57 -0
  45. package/dist/DataTableRow-c3XveEUO.js.map +1 -0
  46. package/dist/DeleteSidebarListElement-C-p87d03.js +78 -0
  47. package/dist/DeleteSidebarListElement-C-p87d03.js.map +1 -0
  48. package/dist/EditSidebarListElement-CodWPnM6.js +32 -0
  49. package/dist/EditSidebarListElement-CodWPnM6.js.map +1 -0
  50. package/dist/Editor-BomsGWHx.js +909 -0
  51. package/dist/Editor-BomsGWHx.js.map +1 -0
  52. package/dist/EmptyState-Cnm7hGW5.js +46 -0
  53. package/dist/EmptyState-Cnm7hGW5.js.map +1 -0
  54. package/dist/Environment-D_CbZk0A.js +416 -0
  55. package/dist/Environment-D_CbZk0A.js.map +1 -0
  56. package/dist/EnvironmentModal-CcyqnPc2.js +288 -0
  57. package/dist/EnvironmentModal-CcyqnPc2.js.map +1 -0
  58. package/dist/Form-bA4bV_oA.js +83 -0
  59. package/dist/Form-bA4bV_oA.js.map +1 -0
  60. package/dist/HttpMethod-rnWEgC3T.js +78 -0
  61. package/dist/HttpMethod-rnWEgC3T.js.map +1 -0
  62. package/dist/IconSelector-BDC_GQXv.js +67 -0
  63. package/dist/IconSelector-BDC_GQXv.js.map +1 -0
  64. package/dist/ImportCollection-BIYMxB9Q.js +804 -0
  65. package/dist/ImportCollection-BIYMxB9Q.js.map +1 -0
  66. package/dist/IntegrationLogo-B9EDW8db.js +51 -0
  67. package/dist/IntegrationLogo-B9EDW8db.js.map +1 -0
  68. package/dist/MainLayout-oMIJ5QXF.js +281 -0
  69. package/dist/MainLayout-oMIJ5QXF.js.map +1 -0
  70. package/dist/Modal-DkOa_KK0.js +67 -0
  71. package/dist/Modal-DkOa_KK0.js.map +1 -0
  72. package/dist/ModalClientContainer-qHsZi4wQ.js +65 -0
  73. package/dist/ModalClientContainer-qHsZi4wQ.js.map +1 -0
  74. package/dist/Request-BWfYWyBa.js +212 -0
  75. package/dist/Request-BWfYWyBa.js.map +1 -0
  76. package/dist/RequestAuth-BU6ubH-c.js +989 -0
  77. package/dist/RequestAuth-BU6ubH-c.js.map +1 -0
  78. package/dist/RequestRoot-7xhK5_qr.js +1611 -0
  79. package/dist/RequestRoot-7xhK5_qr.js.map +1 -0
  80. package/dist/RequestSection-Bx8UHW-k.js +1582 -0
  81. package/dist/RequestSection-Bx8UHW-k.js.map +1 -0
  82. package/dist/ResponseSection-CLrgLMN_.js +949 -0
  83. package/dist/ResponseSection-CLrgLMN_.js.map +1 -0
  84. package/dist/ScalarAsciiArt-BjuSnj8e.js +45 -0
  85. package/dist/ScalarAsciiArt-BjuSnj8e.js.map +1 -0
  86. package/dist/SectionFilter-hrtoRLwj.js +99 -0
  87. package/dist/SectionFilter-hrtoRLwj.js.map +1 -0
  88. package/dist/Server-BS4zjUdO.js +303 -0
  89. package/dist/Server-BS4zjUdO.js.map +1 -0
  90. package/dist/ServerVariablesForm-BRZ9XC8o.js +145 -0
  91. package/dist/ServerVariablesForm-BRZ9XC8o.js.map +1 -0
  92. package/dist/Settings-BuLKHzRY.js +347 -0
  93. package/dist/Settings-BuLKHzRY.js.map +1 -0
  94. package/dist/Sidebar-Xl9_nFXX.js +73 -0
  95. package/dist/Sidebar-Xl9_nFXX.js.map +1 -0
  96. package/dist/SidebarButton-BAagdMDe.js +37 -0
  97. package/dist/SidebarButton-BAagdMDe.js.map +1 -0
  98. package/dist/SidebarListElement-BfTPiihc.js +232 -0
  99. package/dist/SidebarListElement-BfTPiihc.js.map +1 -0
  100. package/dist/TheCommandPalette-Dl9TAeke.js +204 -0
  101. package/dist/TheCommandPalette-Dl9TAeke.js.map +1 -0
  102. package/dist/ValueEmitter-QYkZ9Hdc.js +20 -0
  103. package/dist/ValueEmitter-QYkZ9Hdc.js.map +1 -0
  104. package/dist/ViewLayout-BOXN0IYo.js +17 -0
  105. package/dist/ViewLayout-BOXN0IYo.js.map +1 -0
  106. package/dist/ViewLayoutCollapse-CiTb-Uml.js +86 -0
  107. package/dist/ViewLayoutCollapse-CiTb-Uml.js.map +1 -0
  108. package/dist/ViewLayoutContent-CvMoJYPF.js +13 -0
  109. package/dist/ViewLayoutContent-CvMoJYPF.js.map +1 -0
  110. package/dist/ViewLayoutSection-mUqKbQry.js +23 -0
  111. package/dist/ViewLayoutSection-mUqKbQry.js.map +1 -0
  112. package/dist/WatchModeToggle-D_eAiTWJ.js +41 -0
  113. package/dist/WatchModeToggle-D_eAiTWJ.js.map +1 -0
  114. package/dist/_plugin-vue_export-helper-BmmBcIzD.js +8 -0
  115. package/dist/analytics-BZimCWcw.js +7 -0
  116. package/dist/analytics-BZimCWcw.js.map +1 -0
  117. package/dist/build-request-security-BQjNr2MD.js +41 -0
  118. package/dist/build-request-security-BQjNr2MD.js.map +1 -0
  119. package/dist/code-input-iq-moLxi.js +775 -0
  120. package/dist/code-input-iq-moLxi.js.map +1 -0
  121. package/dist/components/AddressBar/AddressBar.vue.d.ts +1 -1
  122. package/dist/components/AddressBar/index.d.ts +1 -1
  123. package/dist/components/AddressBar/index.js +5 -4
  124. package/dist/components/CodeInput/CodeInput.vue.d.ts +1 -1
  125. package/dist/components/CodeInput/codeVariableWidget.d.ts +1 -1
  126. package/dist/components/CodeInput/index.d.ts +1 -1
  127. package/dist/components/CodeInput/index.js +2 -4
  128. package/dist/components/CommandPalette/index.d.ts +1 -1
  129. package/dist/components/CommandPalette/index.js +3 -4
  130. package/dist/components/DataTable/DataTableInput.vue.d.ts +2 -2
  131. package/dist/components/DataTable/index.d.ts +8 -8
  132. package/dist/components/DataTable/index.js +6 -18
  133. package/dist/components/Form/LabelInput.vue.d.ts +1 -1
  134. package/dist/components/HttpMethod/index.d.ts +1 -1
  135. package/dist/components/HttpMethod/index.js +2 -4
  136. package/dist/components/ImportCollection/index.d.ts +1 -1
  137. package/dist/components/ImportCollection/index.js +2 -4
  138. package/dist/components/ImportCollection/utils/import-collection.d.ts +1 -1
  139. package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +1 -1
  140. package/dist/components/Server/ServerVariablesForm.vue.d.ts +1 -1
  141. package/dist/components/Server/index.d.ts +3 -3
  142. package/dist/components/Server/index.js +3 -8
  143. package/dist/components/Sidebar/index.d.ts +1 -1
  144. package/dist/components/Sidebar/index.js +2 -4
  145. package/dist/components/ViewLayout/index.d.ts +1 -1
  146. package/dist/components/ViewLayout/index.js +2 -4
  147. package/dist/components/index.d.ts +3 -3
  148. package/dist/components/index.js +7 -8
  149. package/dist/components-ChixwQhN.js +61 -0
  150. package/dist/components-ChixwQhN.js.map +1 -0
  151. package/dist/components-DfJHvSLM.js +183 -0
  152. package/dist/components-DfJHvSLM.js.map +1 -0
  153. package/dist/computer-D7VW3Ruy.js +562 -0
  154. package/dist/computer-D7VW3Ruy.js.map +1 -0
  155. package/dist/consts-CyGRb9dl.js +318 -0
  156. package/dist/consts-CyGRb9dl.js.map +1 -0
  157. package/dist/curl-nbw1OxbV.js +54 -0
  158. package/dist/curl-nbw1OxbV.js.map +1 -0
  159. package/dist/data-table-PL7e8NRO.js +282 -0
  160. package/dist/data-table-PL7e8NRO.js.map +1 -0
  161. package/dist/editor-BZ_J0eze.js +466 -0
  162. package/dist/editor-BZ_J0eze.js.map +1 -0
  163. package/dist/environments-ByLK9lnC.js +592 -0
  164. package/dist/environments-ByLK9lnC.js.map +1 -0
  165. package/dist/formatters-DOGXZq9R.js +36 -0
  166. package/dist/formatters-DOGXZq9R.js.map +1 -0
  167. package/dist/forms-CZX6cFDS.js +42 -0
  168. package/dist/forms-CZX6cFDS.js.map +1 -0
  169. package/dist/get-active-environment-CkxyQ1dM.js +19 -0
  170. package/dist/get-active-environment-CkxyQ1dM.js.map +1 -0
  171. package/dist/get-resolved-url-SybDPV0U.js +85 -0
  172. package/dist/get-resolved-url-SybDPV0U.js.map +1 -0
  173. package/dist/get-server-url-UVN-dx79.js +32 -0
  174. package/dist/get-server-url-UVN-dx79.js.map +1 -0
  175. package/dist/get-servers-B_WNlQWB.js +106 -0
  176. package/dist/get-servers-B_WNlQWB.js.map +1 -0
  177. package/dist/get-snippet-DBRUSfZ2.js +39 -0
  178. package/dist/get-snippet-DBRUSfZ2.js.map +1 -0
  179. package/dist/global-cookies-D3ZS9ON3.js +184 -0
  180. package/dist/global-cookies-D3ZS9ON3.js.map +1 -0
  181. package/dist/hooks/index.d.ts +4 -4
  182. package/dist/hooks/index.js +3 -11
  183. package/dist/hooks/useSidebar.d.ts +1 -1
  184. package/dist/hooks-BvZxH4XB.js +80 -0
  185. package/dist/hooks-BvZxH4XB.js.map +1 -0
  186. package/dist/index.d.ts +3 -3
  187. package/dist/index.js +8 -12
  188. package/dist/layout-BWiL7dfb.js +81 -0
  189. package/dist/layout-BWiL7dfb.js.map +1 -0
  190. package/dist/layouts/App/create-api-client-app.d.ts +9 -9
  191. package/dist/layouts/App/index.d.ts +2 -2
  192. package/dist/layouts/App/index.js +5 -7
  193. package/dist/layouts/Modal/create-api-client-modal.d.ts +1 -1
  194. package/dist/layouts/Modal/index.d.ts +2 -2
  195. package/dist/layouts/Modal/index.js +3 -4
  196. package/dist/layouts/Web/create-api-client-web.d.ts +9 -9
  197. package/dist/layouts/Web/index.d.ts +2 -2
  198. package/dist/layouts/Web/index.js +101 -6
  199. package/dist/layouts/Web/index.js.map +1 -0
  200. package/dist/libs/create-client.d.ts +9 -9
  201. package/dist/libs/create-client.d.ts.map +1 -1
  202. package/dist/libs/environment-parser.d.ts +1 -1
  203. package/dist/libs/get-request-uid-by-path-method.d.ts +1 -1
  204. package/dist/libs/hot-keys.d.ts +1 -1
  205. package/dist/libs/importers/index.d.ts +1 -1
  206. package/dist/libs/importers/index.js +2 -4
  207. package/dist/libs/index.d.ts +15 -15
  208. package/dist/libs/index.js +6 -45
  209. package/dist/libs/local-storage.d.ts +1 -1
  210. package/dist/libs/send-request/create-request-operation.d.ts +3 -3
  211. package/dist/libs/send-request/index.d.ts +3 -3
  212. package/dist/libs/send-request/index.js +3 -8
  213. package/dist/libs-spbv4P0g.js +249 -0
  214. package/dist/libs-spbv4P0g.js.map +1 -0
  215. package/dist/monacoeditorwork/json.worker.bundle.js +8 -8
  216. package/dist/monacoeditorwork/yaml.worker.bundle.js +151 -151
  217. package/dist/operation-block-DE-hoO03.js +1674 -0
  218. package/dist/operation-block-DE-hoO03.js.map +1 -0
  219. package/dist/operation-code-sample-xgx4qi2H.js +1738 -0
  220. package/dist/operation-code-sample-xgx4qi2H.js.map +1 -0
  221. package/dist/parse-curl-BtypQT3D.js +106 -0
  222. package/dist/parse-curl-BtypQT3D.js.map +1 -0
  223. package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
  224. package/dist/plugins/index.d.ts +2 -2
  225. package/dist/plugins/index.js +2 -7
  226. package/dist/plugins/plugin-manager.d.ts +10 -4
  227. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  228. package/dist/plugins-B52hCIyZ.js +50 -0
  229. package/dist/plugins-B52hCIyZ.js.map +1 -0
  230. package/dist/rabbitjump-CMZXAR6d.js +9 -0
  231. package/dist/rabbitjump-CMZXAR6d.js.map +1 -0
  232. package/dist/request-block-N7dPFyrG.js +1466 -0
  233. package/dist/request-block-N7dPFyrG.js.map +1 -0
  234. package/dist/resize-D2IYvVdh.js +114 -0
  235. package/dist/resize-D2IYvVdh.js.map +1 -0
  236. package/dist/response-block-DmkaDZYs.js +1188 -0
  237. package/dist/response-block-DmkaDZYs.js.map +1 -0
  238. package/dist/scalar-address-bar-block-BbysOhkE.js +425 -0
  239. package/dist/scalar-address-bar-block-BbysOhkE.js.map +1 -0
  240. package/dist/scalar-auth-selector-block-Bs79QOMA.js +1889 -0
  241. package/dist/scalar-auth-selector-block-Bs79QOMA.js.map +1 -0
  242. package/dist/search-CmsQQkjn.js +151 -0
  243. package/dist/search-CmsQQkjn.js.map +1 -0
  244. package/dist/send-request-BsTfRiBC.js +348 -0
  245. package/dist/send-request-BsTfRiBC.js.map +1 -0
  246. package/dist/server-tcI-OCyx.js +140 -0
  247. package/dist/server-tcI-OCyx.js.map +1 -0
  248. package/dist/set-request-cookies-BJJhsU4A.js +88 -0
  249. package/dist/set-request-cookies-BJJhsU4A.js.map +1 -0
  250. package/dist/settings-BKk_1lcH.js +455 -0
  251. package/dist/settings-BKk_1lcH.js.map +1 -0
  252. package/dist/sidebar-ceSbYmnt.js +217 -0
  253. package/dist/sidebar-ceSbYmnt.js.map +1 -0
  254. package/dist/store/collections.d.ts +1 -1
  255. package/dist/store/environment.d.ts +1 -1
  256. package/dist/store/events.d.ts +8 -8
  257. package/dist/store/import-spec.d.ts +2 -2
  258. package/dist/store/index.d.ts +2 -2
  259. package/dist/store/index.js +2 -10
  260. package/dist/store/request-example.d.ts +1 -1
  261. package/dist/store/requests.d.ts +1 -1
  262. package/dist/store/security-schemes.d.ts +1 -1
  263. package/dist/store/servers.d.ts +1 -1
  264. package/dist/store/store.d.ts +7 -7
  265. package/dist/store/tags.d.ts +1 -1
  266. package/dist/store/workspace.d.ts +1 -1
  267. package/dist/store-DaPoVtIS.js +1512 -0
  268. package/dist/store-DaPoVtIS.js.map +1 -0
  269. package/dist/string-template-sS5PtY6T.js +64 -0
  270. package/dist/string-template-sS5PtY6T.js.map +1 -0
  271. package/dist/style.css +10372 -1
  272. package/dist/types/index.js +0 -1
  273. package/dist/use-global-hot-keys-D8Ai8Qbm.js +274 -0
  274. package/dist/use-global-hot-keys-D8Ai8Qbm.js.map +1 -0
  275. package/dist/useSidebar-DLTwHDI-.js +45 -0
  276. package/dist/useSidebar-DLTwHDI-.js.map +1 -0
  277. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +3 -3
  278. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts.map +1 -1
  279. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
  280. package/dist/v2/blocks/operation-block/helpers/apply-allow-reserved-to-url.d.ts +6 -0
  281. package/dist/v2/blocks/operation-block/helpers/apply-allow-reserved-to-url.d.ts.map +1 -0
  282. package/dist/v2/blocks/operation-block/helpers/build-request-body.d.ts.map +1 -1
  283. package/dist/v2/blocks/operation-block/helpers/build-request-parameters.d.ts +1 -0
  284. package/dist/v2/blocks/operation-block/helpers/build-request-parameters.d.ts.map +1 -1
  285. package/dist/v2/blocks/operation-block/helpers/build-request-security.d.ts +2 -2
  286. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts +2 -2
  287. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts.map +1 -1
  288. package/dist/v2/blocks/operation-block/helpers/get-resolved-url.d.ts +2 -1
  289. package/dist/v2/blocks/operation-block/helpers/get-resolved-url.d.ts.map +1 -1
  290. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
  291. package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
  292. package/dist/v2/blocks/operation-block/index.d.ts +4 -4
  293. package/dist/v2/blocks/operation-block/index.js +20 -11
  294. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts +2 -2
  295. package/dist/v2/blocks/operation-code-sample/helpers/find-client.d.ts +1 -1
  296. package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.d.ts +1 -1
  297. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts +2 -2
  298. package/dist/v2/blocks/operation-code-sample/helpers/get-clients.d.ts +2 -2
  299. package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.d.ts +1 -1
  300. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
  301. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts +1 -1
  302. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts.map +1 -1
  303. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
  304. package/dist/v2/blocks/operation-code-sample/index.d.ts +6 -6
  305. package/dist/v2/blocks/operation-code-sample/index.js +2 -16
  306. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -4
  307. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts +1 -1
  308. package/dist/v2/blocks/request-block/components/RequestParams.vue.d.ts +1 -1
  309. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
  310. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
  311. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +3 -2
  312. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
  313. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
  314. package/dist/v2/blocks/request-block/index.d.ts +1 -1
  315. package/dist/v2/blocks/request-block/index.js +9 -4
  316. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +1 -1
  317. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
  318. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
  319. package/dist/v2/blocks/response-block/index.d.ts +1 -1
  320. package/dist/v2/blocks/response-block/index.js +6 -4
  321. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
  322. package/dist/v2/blocks/scalar-address-bar-block/index.d.ts +2 -2
  323. package/dist/v2/blocks/scalar-address-bar-block/index.js +5 -4
  324. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -3
  325. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
  326. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
  327. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
  328. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +1 -1
  329. package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.d.ts.map +1 -1
  330. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
  331. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
  332. package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.d.ts +1 -1
  333. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.d.ts.map +1 -1
  334. package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts +4 -4
  335. package/dist/v2/blocks/scalar-auth-selector-block/index.js +6 -8
  336. package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
  337. package/dist/v2/components/code-input/index.d.ts +1 -1
  338. package/dist/v2/components/code-input/index.js +2 -4
  339. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
  340. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
  341. package/dist/v2/components/data-table/index.d.ts +8 -8
  342. package/dist/v2/components/data-table/index.js +3 -18
  343. package/dist/v2/components/forms/index.d.ts +1 -1
  344. package/dist/v2/components/forms/index.js +2 -4
  345. package/dist/v2/components/layout/index.d.ts +1 -1
  346. package/dist/v2/components/layout/index.js +2 -4
  347. package/dist/v2/components/modals/index.d.ts +1 -1
  348. package/dist/v2/components/modals/index.js +37 -3
  349. package/dist/v2/components/modals/index.js.map +1 -0
  350. package/dist/v2/components/resize/index.d.ts +2 -2
  351. package/dist/v2/components/resize/index.js +2 -6
  352. package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
  353. package/dist/v2/components/server/index.d.ts +1 -1
  354. package/dist/v2/components/server/index.js +2 -4
  355. package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
  356. package/dist/v2/components/sidebar/index.d.ts +3 -3
  357. package/dist/v2/components/sidebar/index.js +3 -8
  358. package/dist/v2/constants.d.ts +3 -0
  359. package/dist/v2/constants.d.ts.map +1 -0
  360. package/dist/v2/features/app/App.vue.d.ts +4 -4
  361. package/dist/v2/features/app/components/AppSidebar.vue.d.ts +1 -1
  362. package/dist/v2/features/app/components/index.d.ts +1 -1
  363. package/dist/v2/features/app/components/index.js +10 -5
  364. package/dist/v2/features/app/helpers/create-api-client-app.d.ts +3 -3
  365. package/dist/v2/features/app/helpers/get-route-param.d.ts +1 -1
  366. package/dist/v2/features/app/helpers/routes.d.ts +5 -5
  367. package/dist/v2/features/app/hooks/use-theme.d.ts +1 -1
  368. package/dist/v2/features/app/index.d.ts +8 -8
  369. package/dist/v2/features/app/index.js +3161 -19
  370. package/dist/v2/features/app/index.js.map +1 -0
  371. package/dist/v2/features/collection/DocumentCollection.vue.d.ts +1 -1
  372. package/dist/v2/features/collection/OperationCollection.vue.d.ts +1 -1
  373. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -1
  374. package/dist/v2/features/collection/components/Authentication.vue.d.ts +4 -4
  375. package/dist/v2/features/collection/components/Authentication.vue.d.ts.map +1 -1
  376. package/dist/v2/features/collection/components/Cookies.vue.d.ts +4 -4
  377. package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +4 -4
  378. package/dist/v2/features/collection/components/Editor/index.d.ts +1 -1
  379. package/dist/v2/features/collection/components/Editor/index.js +2 -4
  380. package/dist/v2/features/collection/components/Environment.vue.d.ts +4 -4
  381. package/dist/v2/features/collection/components/Overview.vue.d.ts +4 -4
  382. package/dist/v2/features/collection/components/Servers.vue.d.ts +4 -4
  383. package/dist/v2/features/collection/components/Settings.vue.d.ts +4 -4
  384. package/dist/v2/features/collection/components/Tabs.vue.d.ts +1 -1
  385. package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts +1 -1
  386. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +10 -45
  387. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
  388. package/dist/v2/features/command-palette/index.d.ts +2 -2
  389. package/dist/v2/features/command-palette/index.js +3 -6
  390. package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +1 -1
  391. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +1 -1
  392. package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts +1 -1
  393. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +1 -1
  394. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +1 -1
  395. package/dist/v2/features/editor/hooks/use-editor.d.ts +1 -1
  396. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +1 -1
  397. package/dist/v2/features/editor/index.d.ts +4 -4
  398. package/dist/v2/features/editor/index.js +2 -10
  399. package/dist/v2/features/environments/index.d.ts +1 -1
  400. package/dist/v2/features/environments/index.js +4 -4
  401. package/dist/v2/features/global-cookies/index.d.ts +1 -1
  402. package/dist/v2/features/global-cookies/index.js +4 -4
  403. package/dist/v2/features/modal/Modal.vue.d.ts +1 -1
  404. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
  405. package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
  406. package/dist/v2/features/modal/index.d.ts +3 -3
  407. package/dist/v2/features/modal/index.js +639 -7
  408. package/dist/v2/features/modal/index.js.map +1 -0
  409. package/dist/v2/features/modal/modal-events.d.ts +1 -1
  410. package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
  411. package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
  412. package/dist/v2/features/operation/helpers/get-selected-security.d.ts +6 -1
  413. package/dist/v2/features/operation/helpers/get-selected-security.d.ts.map +1 -1
  414. package/dist/v2/features/operation/index.d.ts +5 -5
  415. package/dist/v2/features/operation/index.js +19 -12
  416. package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
  417. package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
  418. package/dist/v2/features/search/index.d.ts +1 -1
  419. package/dist/v2/features/search/index.js +2 -4
  420. package/dist/v2/features/settings/index.d.ts +2 -2
  421. package/dist/v2/features/settings/index.js +2 -6
  422. package/dist/v2/helpers/get-active-proxy-url.d.ts +1 -1
  423. package/dist/v2/helpers/get-tab-details.d.ts +1 -1
  424. package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
  425. package/dist/v2/helpers/index.d.ts +2 -2
  426. package/dist/v2/helpers/index.js +3 -6
  427. package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
  428. package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +1 -1
  429. package/dist/views/Collection/components/MarkdownInput.vue.d.ts +1 -1
  430. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +1 -1
  431. package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +1 -1
  432. package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts +1 -1
  433. package/dist/views/Components/CodeSnippet/index.d.ts +4 -4
  434. package/dist/views/Components/CodeSnippet/index.js +3 -10
  435. package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +1 -1
  436. package/dist/views/Environment/handle-drag.d.ts +1 -1
  437. package/dist/views/Request/Request.vue.d.ts +1 -1
  438. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +1 -1
  439. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +1 -1
  440. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +1 -1
  441. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +1 -1
  442. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +2 -2
  443. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +1 -1
  444. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +1 -1
  445. package/dist/views/Request/RequestSection/RequestAuth/index.d.ts +3 -3
  446. package/dist/views/Request/RequestSection/RequestAuth/index.js +4 -8
  447. package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +1 -1
  448. package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +1 -1
  449. package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +1 -1
  450. package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +1 -1
  451. package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +1 -1
  452. package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +1 -1
  453. package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +1 -1
  454. package/dist/views/Request/RequestSection/index.d.ts +2 -2
  455. package/dist/views/Request/RequestSection/index.js +42 -5
  456. package/dist/views/Request/RequestSection/index.js.map +1 -0
  457. package/dist/views/Request/RequestSidebarItem.vue.d.ts +1 -1
  458. package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +3 -3
  459. package/dist/views/Request/RequestSubpageHeader.vue.d.ts +1 -1
  460. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +1 -1
  461. package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +1 -1
  462. package/dist/views/Request/ResponseSection/index.d.ts +2 -2
  463. package/dist/views/Request/ResponseSection/index.js +7 -6
  464. package/dist/views/Request/components/index.d.ts +1 -1
  465. package/dist/views/Request/components/index.js +2 -4
  466. package/dist/views/Request/consts/index.d.ts +2 -2
  467. package/dist/views/Request/consts/index.js +2 -10
  468. package/dist/views/Request/handle-drag.d.ts +2 -2
  469. package/dist/views/Request/libs/auth.d.ts +1 -1
  470. package/dist/views/Request/libs/index.d.ts +3 -3
  471. package/dist/views/Request/libs/index.js +3 -22
  472. package/dist/views/Request/libs/oauth2.d.ts +1 -1
  473. package/dist/views/Request/libs/watch-mode.d.ts +2 -2
  474. package/dist/views/Request/types/index.js +0 -1
  475. package/dist/watch-mode-Dbaqd9bG.js +375 -0
  476. package/dist/watch-mode-Dbaqd9bG.js.map +1 -0
  477. package/package.json +29 -33
  478. package/dist/_virtual/_plugin-vue_export-helper.js +0 -9
  479. package/dist/analytics.js +0 -9
  480. package/dist/assets/computer.ascii.js +0 -34
  481. package/dist/assets/keycap.ascii.js +0 -25
  482. package/dist/assets/rabbit.ascii.js +0 -11
  483. package/dist/assets/rabbitjump.ascii.js +0 -11
  484. package/dist/components/AddressBar/AddressBar.vue.js +0 -7
  485. package/dist/components/AddressBar/AddressBar.vue2.js +0 -160
  486. package/dist/components/AddressBar/AddressBarHistory.vue.js +0 -7
  487. package/dist/components/AddressBar/AddressBarHistory.vue2.js +0 -98
  488. package/dist/components/AddressBar/httpStatusCodeColors.js +0 -38
  489. package/dist/components/CodeInput/CodeInput.vue.js +0 -8
  490. package/dist/components/CodeInput/CodeInput.vue2.js +0 -209
  491. package/dist/components/CodeInput/codeVariableWidget.js +0 -111
  492. package/dist/components/CommandPalette/CommandActionForm.vue.js +0 -44
  493. package/dist/components/CommandPalette/CommandActionForm.vue2.js +0 -4
  494. package/dist/components/CommandPalette/CommandActionInput.vue.js +0 -52
  495. package/dist/components/CommandPalette/CommandActionInput.vue2.js +0 -4
  496. package/dist/components/CommandPalette/CommandPaletteCollection.vue.js +0 -80
  497. package/dist/components/CommandPalette/CommandPaletteCollection.vue2.js +0 -4
  498. package/dist/components/CommandPalette/CommandPaletteExample.vue.js +0 -116
  499. package/dist/components/CommandPalette/CommandPaletteExample.vue2.js +0 -4
  500. package/dist/components/CommandPalette/CommandPaletteImport.vue.js +0 -217
  501. package/dist/components/CommandPalette/CommandPaletteImport.vue2.js +0 -4
  502. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js +0 -7
  503. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue2.js +0 -136
  504. package/dist/components/CommandPalette/CommandPaletteServer.vue.js +0 -123
  505. package/dist/components/CommandPalette/CommandPaletteServer.vue2.js +0 -4
  506. package/dist/components/CommandPalette/CommandPaletteTag.vue.js +0 -84
  507. package/dist/components/CommandPalette/CommandPaletteTag.vue2.js +0 -4
  508. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js +0 -48
  509. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue2.js +0 -4
  510. package/dist/components/CommandPalette/TheCommandPalette.vue.js +0 -7
  511. package/dist/components/CommandPalette/TheCommandPalette.vue2.js +0 -305
  512. package/dist/components/CommandPalette/WatchModeToggle.vue.js +0 -39
  513. package/dist/components/CommandPalette/WatchModeToggle.vue2.js +0 -4
  514. package/dist/components/DataTable/DataTable.vue.js +0 -38
  515. package/dist/components/DataTable/DataTable.vue2.js +0 -4
  516. package/dist/components/DataTable/DataTableCell.vue.js +0 -26
  517. package/dist/components/DataTable/DataTableCell.vue2.js +0 -4
  518. package/dist/components/DataTable/DataTableCheckbox.vue.js +0 -53
  519. package/dist/components/DataTable/DataTableCheckbox.vue2.js +0 -4
  520. package/dist/components/DataTable/DataTableHeader.vue.js +0 -18
  521. package/dist/components/DataTable/DataTableHeader.vue2.js +0 -4
  522. package/dist/components/DataTable/DataTableInput.vue.js +0 -7
  523. package/dist/components/DataTable/DataTableInput.vue2.js +0 -124
  524. package/dist/components/DataTable/DataTableInputSelect.vue.js +0 -146
  525. package/dist/components/DataTable/DataTableInputSelect.vue2.js +0 -4
  526. package/dist/components/DataTable/DataTableRow.vue.js +0 -12
  527. package/dist/components/DataTable/DataTableText.vue.js +0 -23
  528. package/dist/components/DataTable/DataTableText.vue2.js +0 -4
  529. package/dist/components/EmptyState.vue.js +0 -7
  530. package/dist/components/EmptyState.vue2.js +0 -42
  531. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js +0 -113
  532. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue2.js +0 -4
  533. package/dist/components/Form/Form.vue.js +0 -83
  534. package/dist/components/Form/Form.vue2.js +0 -4
  535. package/dist/components/Form/LabelInput.vue.js +0 -7
  536. package/dist/components/Form/LabelInput.vue2.js +0 -42
  537. package/dist/components/HelpfulLink.vue.js +0 -20
  538. package/dist/components/HelpfulLink.vue2.js +0 -4
  539. package/dist/components/HttpMethod/HttpMethod.vue.js +0 -7
  540. package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -62
  541. package/dist/components/IconSelector.vue.js +0 -75
  542. package/dist/components/IconSelector.vue2.js +0 -4
  543. package/dist/components/ImportCollection/DropEventListener.vue.js +0 -81
  544. package/dist/components/ImportCollection/DropEventListener.vue2.js +0 -4
  545. package/dist/components/ImportCollection/ImportCollectionListener.vue.js +0 -77
  546. package/dist/components/ImportCollection/ImportCollectionListener.vue2.js +0 -4
  547. package/dist/components/ImportCollection/ImportCollectionModal.vue.js +0 -208
  548. package/dist/components/ImportCollection/ImportCollectionModal.vue3.js +0 -5
  549. package/dist/components/ImportCollection/ImportNowButton.vue.js +0 -73
  550. package/dist/components/ImportCollection/ImportNowButton.vue2.js +0 -4
  551. package/dist/components/ImportCollection/IntegrationLogo.vue.js +0 -44
  552. package/dist/components/ImportCollection/IntegrationLogo.vue2.js +0 -4
  553. package/dist/components/ImportCollection/PasteEventListener.vue.js +0 -24
  554. package/dist/components/ImportCollection/PasteEventListener.vue2.js +0 -4
  555. package/dist/components/ImportCollection/PrefetchError.vue.js +0 -27
  556. package/dist/components/ImportCollection/PrefetchError.vue2.js +0 -4
  557. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js +0 -20
  558. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue2.js +0 -4
  559. package/dist/components/ImportCollection/WorkspaceSelector.vue.js +0 -134
  560. package/dist/components/ImportCollection/WorkspaceSelector.vue2.js +0 -4
  561. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js +0 -106
  562. package/dist/components/ImportCollection/utils/get-openapi-version.js +0 -20
  563. package/dist/components/ImportCollection/utils/import-collection.js +0 -29
  564. package/dist/components/ImportCollection/utils/is-document.js +0 -9
  565. package/dist/components/ImportCollection/utils/is-url.js +0 -9
  566. package/dist/components/ImportCollection/utils/workspace-store-is-empty.js +0 -7
  567. package/dist/components/OpenApiClientButton.vue.js +0 -7
  568. package/dist/components/OpenApiClientButton.vue2.js +0 -48
  569. package/dist/components/ScalarAsciiArt.vue.js +0 -7
  570. package/dist/components/ScalarAsciiArt.vue2.js +0 -37
  571. package/dist/components/Search/useSearch.js +0 -78
  572. package/dist/components/SectionFilter.vue.js +0 -7
  573. package/dist/components/SectionFilter.vue2.js +0 -64
  574. package/dist/components/SectionFilterButton.vue.js +0 -23
  575. package/dist/components/SectionFilterButton.vue2.js +0 -4
  576. package/dist/components/Server/ServerDropdown.vue.js +0 -132
  577. package/dist/components/Server/ServerDropdown.vue2.js +0 -4
  578. package/dist/components/Server/ServerDropdownItem.vue.js +0 -7
  579. package/dist/components/Server/ServerDropdownItem.vue2.js +0 -84
  580. package/dist/components/Server/ServerSelector.vue.js +0 -82
  581. package/dist/components/Server/ServerSelector.vue2.js +0 -4
  582. package/dist/components/Server/ServerVariablesForm.vue.js +0 -49
  583. package/dist/components/Server/ServerVariablesForm.vue2.js +0 -4
  584. package/dist/components/Server/ServerVariablesSelect.vue.js +0 -54
  585. package/dist/components/Server/ServerVariablesSelect.vue2.js +0 -4
  586. package/dist/components/Server/ServerVariablesTextbox.vue.js +0 -29
  587. package/dist/components/Server/ServerVariablesTextbox.vue2.js +0 -4
  588. package/dist/components/SideNav/DownloadAppButton.vue.js +0 -7
  589. package/dist/components/SideNav/DownloadAppButton.vue2.js +0 -33
  590. package/dist/components/SideNav/SideHelp.vue.js +0 -127
  591. package/dist/components/SideNav/SideHelp.vue2.js +0 -4
  592. package/dist/components/SideNav/SideNav.vue.js +0 -96
  593. package/dist/components/SideNav/SideNav.vue2.js +0 -4
  594. package/dist/components/SideNav/SideNavGroup.vue.js +0 -16
  595. package/dist/components/SideNav/SideNavGroup.vue2.js +0 -4
  596. package/dist/components/SideNav/SideNavLink.vue.js +0 -39
  597. package/dist/components/SideNav/SideNavLink.vue2.js +0 -4
  598. package/dist/components/SideNav/SideNavRouterLink.vue.js +0 -27
  599. package/dist/components/SideNav/SideNavRouterLink.vue2.js +0 -4
  600. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +0 -30
  601. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue2.js +0 -4
  602. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +0 -58
  603. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue2.js +0 -4
  604. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +0 -29
  605. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue2.js +0 -4
  606. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +0 -46
  607. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue2.js +0 -4
  608. package/dist/components/Sidebar/Sidebar.vue.js +0 -7
  609. package/dist/components/Sidebar/Sidebar.vue2.js +0 -63
  610. package/dist/components/Sidebar/SidebarButton.vue.js +0 -33
  611. package/dist/components/Sidebar/SidebarButton.vue2.js +0 -4
  612. package/dist/components/Sidebar/SidebarList.vue.js +0 -12
  613. package/dist/components/Sidebar/SidebarListElement.vue.js +0 -8
  614. package/dist/components/Sidebar/SidebarListElement.vue2.js +0 -94
  615. package/dist/components/Sidebar/SidebarListElementActions.vue.js +0 -86
  616. package/dist/components/Sidebar/SidebarListElementActions.vue2.js +0 -4
  617. package/dist/components/Sidebar/SidebarToggle.vue.js +0 -49
  618. package/dist/components/Sidebar/SidebarToggle.vue2.js +0 -4
  619. package/dist/components/TopNav/TopNav.vue.js +0 -210
  620. package/dist/components/TopNav/TopNav.vue2.js +0 -4
  621. package/dist/components/TopNav/TopNavItem.vue.js +0 -7
  622. package/dist/components/TopNav/TopNavItem.vue2.js +0 -138
  623. package/dist/components/ViewLayout/ViewLayout.vue.js +0 -18
  624. package/dist/components/ViewLayout/ViewLayout.vue2.js +0 -4
  625. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js +0 -92
  626. package/dist/components/ViewLayout/ViewLayoutCollapse.vue2.js +0 -4
  627. package/dist/components/ViewLayout/ViewLayoutContent.vue.js +0 -12
  628. package/dist/components/ViewLayout/ViewLayoutSection.vue.js +0 -23
  629. package/dist/components/ViewLayout/ViewLayoutSection.vue2.js +0 -4
  630. package/dist/constants.js +0 -40
  631. package/dist/data/httpHeaders.js +0 -537
  632. package/dist/hooks/useAnalytics.js +0 -11
  633. package/dist/hooks/useClientConfig.js +0 -7
  634. package/dist/hooks/useFileDialog.js +0 -21
  635. package/dist/hooks/useLayout.js +0 -8
  636. package/dist/hooks/useResponseBody.js +0 -20
  637. package/dist/hooks/useSidebar.js +0 -28
  638. package/dist/layouts/App/ApiClientApp.vue.js +0 -70
  639. package/dist/layouts/App/ApiClientApp.vue3.js +0 -5
  640. package/dist/layouts/App/MainLayout.vue.js +0 -26
  641. package/dist/layouts/App/MainLayout.vue2.js +0 -4
  642. package/dist/layouts/App/create-api-client-app.js +0 -35
  643. package/dist/layouts/App/hotkeys.js +0 -21
  644. package/dist/layouts/Modal/ApiClientModal.vue.js +0 -30
  645. package/dist/layouts/Modal/ApiClientModal.vue2.js +0 -4
  646. package/dist/layouts/Modal/create-api-client-modal.js +0 -32
  647. package/dist/layouts/Web/ApiClientWeb.vue.js +0 -64
  648. package/dist/layouts/Web/ApiClientWeb.vue3.js +0 -5
  649. package/dist/layouts/Web/create-api-client-web.js +0 -32
  650. package/dist/libs/create-client.js +0 -189
  651. package/dist/libs/electron.js +0 -4
  652. package/dist/libs/env-helpers.js +0 -6
  653. package/dist/libs/environment-parser.js +0 -18
  654. package/dist/libs/errors.js +0 -16
  655. package/dist/libs/event-bus.js +0 -32
  656. package/dist/libs/extractAttachmentFilename.js +0 -18
  657. package/dist/libs/find-request.js +0 -23
  658. package/dist/libs/formatters.js +0 -10
  659. package/dist/libs/get-request-uid-by-path-method.js +0 -18
  660. package/dist/libs/getOpenApiDocumentDetails.js +0 -40
  661. package/dist/libs/hot-keys.js +0 -44
  662. package/dist/libs/importers/curl.js +0 -53
  663. package/dist/libs/isUrl.js +0 -7
  664. package/dist/libs/local-storage.js +0 -41
  665. package/dist/libs/normalize-headers.js +0 -27
  666. package/dist/libs/parse-curl.js +0 -59
  667. package/dist/libs/postman.js +0 -37
  668. package/dist/libs/send-request/build-request-security.js +0 -35
  669. package/dist/libs/send-request/create-fetch-body.js +0 -25
  670. package/dist/libs/send-request/create-fetch-headers.js +0 -11
  671. package/dist/libs/send-request/create-fetch-query-params.js +0 -33
  672. package/dist/libs/send-request/create-request-operation.js +0 -140
  673. package/dist/libs/send-request/decode-buffer.js +0 -9
  674. package/dist/libs/send-request/set-request-cookies.js +0 -58
  675. package/dist/libs/string-template.js +0 -42
  676. package/dist/libs/validate-parameters.js +0 -16
  677. package/dist/plugins/hooks/usePluginManager.js +0 -10
  678. package/dist/plugins/plugin-manager.js +0 -26
  679. package/dist/routes.js +0 -210
  680. package/dist/store/active-entities.js +0 -118
  681. package/dist/store/collections.js +0 -73
  682. package/dist/store/cookies.js +0 -13
  683. package/dist/store/environment.js +0 -32
  684. package/dist/store/events.js +0 -35
  685. package/dist/store/import-spec.js +0 -55
  686. package/dist/store/request-example.js +0 -43
  687. package/dist/store/requests.js +0 -97
  688. package/dist/store/router-params.js +0 -22
  689. package/dist/store/security-schemes.js +0 -55
  690. package/dist/store/servers.js +0 -39
  691. package/dist/store/store.js +0 -144
  692. package/dist/store/tags.js +0 -45
  693. package/dist/store/workspace.js +0 -52
  694. package/dist/v2/blocks/operation-block/OperationBlock.vue.js +0 -242
  695. package/dist/v2/blocks/operation-block/OperationBlock.vue2.js +0 -4
  696. package/dist/v2/blocks/operation-block/components/Header.vue.js +0 -7
  697. package/dist/v2/blocks/operation-block/components/Header.vue2.js +0 -100
  698. package/dist/v2/blocks/operation-block/helpers/build-request-body.js +0 -40
  699. package/dist/v2/blocks/operation-block/helpers/build-request-cookie-header.js +0 -31
  700. package/dist/v2/blocks/operation-block/helpers/build-request-parameters.js +0 -107
  701. package/dist/v2/blocks/operation-block/helpers/build-request-security.js +0 -46
  702. package/dist/v2/blocks/operation-block/helpers/build-request.js +0 -70
  703. package/dist/v2/blocks/operation-block/helpers/de-serialize-parameter.js +0 -25
  704. package/dist/v2/blocks/operation-block/helpers/decode-buffer.js +0 -9
  705. package/dist/v2/blocks/operation-block/helpers/filter-global-cookies.js +0 -14
  706. package/dist/v2/blocks/operation-block/helpers/get-cookie-header-keys.js +0 -4
  707. package/dist/v2/blocks/operation-block/helpers/get-environment-variables.js +0 -7
  708. package/dist/v2/blocks/operation-block/helpers/get-example.js +0 -36
  709. package/dist/v2/blocks/operation-block/helpers/get-resolved-url.js +0 -17
  710. package/dist/v2/blocks/operation-block/helpers/get-selected-body-content-type.js +0 -4
  711. package/dist/v2/blocks/operation-block/helpers/get-server-url.js +0 -12
  712. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-request.js +0 -31
  713. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.js +0 -43
  714. package/dist/v2/blocks/operation-block/helpers/response-cache.js +0 -12
  715. package/dist/v2/blocks/operation-block/helpers/send-request.js +0 -122
  716. package/dist/v2/blocks/operation-block/helpers/serialize-parameter.js +0 -49
  717. package/dist/v2/blocks/operation-block/helpers/validate-path-parameters.js +0 -17
  718. package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue.js +0 -56
  719. package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue2.js +0 -4
  720. package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue.js +0 -30
  721. package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue2.js +0 -4
  722. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.js +0 -7
  723. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue2.js +0 -227
  724. package/dist/v2/blocks/operation-code-sample/helpers/find-client.js +0 -22
  725. package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.js +0 -27
  726. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js +0 -40
  727. package/dist/v2/blocks/operation-code-sample/helpers/get-clients.js +0 -20
  728. package/dist/v2/blocks/operation-code-sample/helpers/get-custom-code-samples.js +0 -4
  729. package/dist/v2/blocks/operation-code-sample/helpers/get-example-from-schema.js +0 -302
  730. package/dist/v2/blocks/operation-code-sample/helpers/get-resolved-ref-deep.js +0 -28
  731. package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.js +0 -10
  732. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js +0 -67
  733. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js +0 -66
  734. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-parameters.js +0 -172
  735. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.js +0 -55
  736. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-server-url.js +0 -18
  737. package/dist/v2/blocks/request-block/RequestBlock.vue.js +0 -7
  738. package/dist/v2/blocks/request-block/RequestBlock.vue2.js +0 -347
  739. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +0 -7
  740. package/dist/v2/blocks/request-block/components/RequestBody.vue2.js +0 -191
  741. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js +0 -84
  742. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue2.js +0 -4
  743. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +0 -135
  744. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue2.js +0 -4
  745. package/dist/v2/blocks/request-block/components/RequestParams.vue.js +0 -78
  746. package/dist/v2/blocks/request-block/components/RequestParams.vue2.js +0 -4
  747. package/dist/v2/blocks/request-block/components/RequestTable.vue.js +0 -7
  748. package/dist/v2/blocks/request-block/components/RequestTable.vue2.js +0 -74
  749. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js +0 -204
  750. package/dist/v2/blocks/request-block/components/RequestTableRow.vue2.js +0 -4
  751. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js +0 -7
  752. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue2.js +0 -63
  753. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +0 -55
  754. package/dist/v2/blocks/request-block/helpers/files.js +0 -7
  755. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +0 -26
  756. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.js +0 -29
  757. package/dist/v2/blocks/request-block/helpers/get-parameter-content.js +0 -9
  758. package/dist/v2/blocks/request-block/helpers/get-parameter-schema.js +0 -6
  759. package/dist/v2/blocks/request-block/helpers/get-request-body-example.js +0 -16
  760. package/dist/v2/blocks/request-block/helpers/group-by.js +0 -10
  761. package/dist/v2/blocks/request-block/helpers/is-param-disabled.js +0 -7
  762. package/dist/v2/blocks/request-block/helpers/validate-parameter.js +0 -32
  763. package/dist/v2/blocks/response-block/ResponseBlock.vue.js +0 -7
  764. package/dist/v2/blocks/response-block/ResponseBlock.vue2.js +0 -180
  765. package/dist/v2/blocks/response-block/components/Headers.vue.js +0 -96
  766. package/dist/v2/blocks/response-block/components/Headers.vue2.js +0 -4
  767. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +0 -7
  768. package/dist/v2/blocks/response-block/components/ResponseBody.vue2.js +0 -87
  769. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js +0 -36
  770. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue2.js +0 -4
  771. package/dist/v2/blocks/response-block/components/ResponseBodyInfo.vue.js +0 -14
  772. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +0 -7
  773. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue2.js +0 -63
  774. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +0 -7
  775. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue2.js +0 -41
  776. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js +0 -94
  777. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue2.js +0 -4
  778. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js +0 -25
  779. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue2.js +0 -4
  780. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js +0 -52
  781. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue3.js +0 -5
  782. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js +0 -54
  783. package/dist/v2/blocks/response-block/components/ResponseCookies.vue2.js +0 -4
  784. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +0 -7
  785. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue2.js +0 -79
  786. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +0 -7
  787. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue2.js +0 -46
  788. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js +0 -67
  789. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue2.js +0 -4
  790. package/dist/v2/blocks/response-block/helpers/extract-filename.js +0 -18
  791. package/dist/v2/blocks/response-block/helpers/get-content-length.js +0 -12
  792. package/dist/v2/blocks/response-block/helpers/media-types.js +0 -126
  793. package/dist/v2/blocks/response-block/helpers/parse-set-cookie.js +0 -12
  794. package/dist/v2/blocks/response-block/helpers/process-response-body.js +0 -16
  795. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +0 -7
  796. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +0 -208
  797. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +0 -7
  798. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue2.js +0 -95
  799. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js +0 -145
  800. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue2.js +0 -4
  801. package/dist/v2/blocks/scalar-address-bar-block/components/httpStatusCodeColors.js +0 -38
  802. package/dist/v2/blocks/scalar-address-bar-block/hooks/use-loading-animation.js +0 -25
  803. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +0 -184
  804. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue2.js +0 -4
  805. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js +0 -51
  806. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue2.js +0 -4
  807. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +0 -330
  808. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue2.js +0 -4
  809. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +0 -7
  810. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue2.js +0 -76
  811. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +0 -165
  812. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue3.js +0 -5
  813. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js +0 -91
  814. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue2.js +0 -4
  815. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js +0 -83
  816. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue2.js +0 -4
  817. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js +0 -46
  818. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue2.js +0 -4
  819. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js +0 -244
  820. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue2.js +0 -4
  821. package/dist/v2/blocks/scalar-auth-selector-block/helpers/auth-options.js +0 -97
  822. package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.js +0 -135
  823. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.js +0 -35
  824. package/dist/v2/blocks/scalar-auth-selector-block/helpers/is-auth-optional.js +0 -7
  825. package/dist/v2/blocks/scalar-auth-selector-block/helpers/merge-security.js +0 -23
  826. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +0 -139
  827. package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.js +0 -27
  828. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.js +0 -64
  829. package/dist/v2/components/callout/Callout.vue.js +0 -7
  830. package/dist/v2/components/callout/Callout.vue2.js +0 -43
  831. package/dist/v2/components/code-input/CodeInput.vue.js +0 -8
  832. package/dist/v2/components/code-input/CodeInput.vue2.js +0 -213
  833. package/dist/v2/components/code-input/code-variable-widget.js +0 -106
  834. package/dist/v2/components/data-table/DataTable.vue.js +0 -38
  835. package/dist/v2/components/data-table/DataTable.vue2.js +0 -4
  836. package/dist/v2/components/data-table/DataTableCell.vue.js +0 -26
  837. package/dist/v2/components/data-table/DataTableCell.vue2.js +0 -4
  838. package/dist/v2/components/data-table/DataTableCheckbox.vue.js +0 -53
  839. package/dist/v2/components/data-table/DataTableCheckbox.vue2.js +0 -4
  840. package/dist/v2/components/data-table/DataTableHeader.vue.js +0 -18
  841. package/dist/v2/components/data-table/DataTableHeader.vue2.js +0 -4
  842. package/dist/v2/components/data-table/DataTableInput.vue.js +0 -7
  843. package/dist/v2/components/data-table/DataTableInput.vue2.js +0 -121
  844. package/dist/v2/components/data-table/DataTableInputSelect.vue.js +0 -149
  845. package/dist/v2/components/data-table/DataTableInputSelect.vue2.js +0 -4
  846. package/dist/v2/components/data-table/DataTableRow.vue.js +0 -12
  847. package/dist/v2/components/data-table/DataTableText.vue.js +0 -23
  848. package/dist/v2/components/data-table/DataTableText.vue2.js +0 -4
  849. package/dist/v2/components/forms/ConfirmationForm.vue.js +0 -45
  850. package/dist/v2/components/forms/ConfirmationForm.vue2.js +0 -4
  851. package/dist/v2/components/layout/CollapsibleSection.vue.js +0 -89
  852. package/dist/v2/components/layout/CollapsibleSection.vue2.js +0 -4
  853. package/dist/v2/components/layout/ValueEmitter.vue.js +0 -21
  854. package/dist/v2/components/layout/ValueEmitter.vue2.js +0 -4
  855. package/dist/v2/components/modals/DeleteModal.vue.js +0 -31
  856. package/dist/v2/components/modals/DeleteModal.vue2.js +0 -4
  857. package/dist/v2/components/modals/ModalClientContainer.vue.js +0 -7
  858. package/dist/v2/components/modals/ModalClientContainer.vue2.js +0 -60
  859. package/dist/v2/components/resize/Resize.vue.js +0 -8
  860. package/dist/v2/components/resize/Resize.vue2.js +0 -36
  861. package/dist/v2/components/resize/use-split-resize.js +0 -57
  862. package/dist/v2/components/server/ServerDropdown.vue.js +0 -91
  863. package/dist/v2/components/server/ServerDropdown.vue2.js +0 -4
  864. package/dist/v2/components/server/ServerDropdownItem.vue.js +0 -7
  865. package/dist/v2/components/server/ServerDropdownItem.vue2.js +0 -49
  866. package/dist/v2/components/sidebar/Sidebar.vue.js +0 -115
  867. package/dist/v2/components/sidebar/Sidebar.vue2.js +0 -4
  868. package/dist/v2/components/sidebar/SidebarMenu.vue.js +0 -52
  869. package/dist/v2/components/sidebar/SidebarMenu.vue2.js +0 -4
  870. package/dist/v2/components/sidebar/SidebarToggle.vue.js +0 -52
  871. package/dist/v2/components/sidebar/SidebarToggle.vue2.js +0 -4
  872. package/dist/v2/features/app/App.vue.js +0 -152
  873. package/dist/v2/features/app/App.vue3.js +0 -5
  874. package/dist/v2/features/app/app-events.js +0 -251
  875. package/dist/v2/features/app/app-state.js +0 -415
  876. package/dist/v2/features/app/components/AppSidebar.vue.js +0 -7
  877. package/dist/v2/features/app/components/AppSidebar.vue2.js +0 -304
  878. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js +0 -56
  879. package/dist/v2/features/app/components/CreateWorkspaceModal.vue2.js +0 -4
  880. package/dist/v2/features/app/components/DesktopTab.vue.js +0 -7
  881. package/dist/v2/features/app/components/DesktopTab.vue2.js +0 -134
  882. package/dist/v2/features/app/components/DesktopTabs.vue.js +0 -56
  883. package/dist/v2/features/app/components/DesktopTabs.vue2.js +0 -4
  884. package/dist/v2/features/app/components/DownloadAppButton.vue.js +0 -7
  885. package/dist/v2/features/app/components/DownloadAppButton.vue2.js +0 -19
  886. package/dist/v2/features/app/components/SidebarItemMenu.vue.js +0 -185
  887. package/dist/v2/features/app/components/SidebarItemMenu.vue2.js +0 -4
  888. package/dist/v2/features/app/components/SplashScreen.vue.js +0 -7
  889. package/dist/v2/features/app/components/SplashScreen.vue2.js +0 -18
  890. package/dist/v2/features/app/helpers/create-api-client-app.js +0 -36
  891. package/dist/v2/features/app/helpers/filter-workspaces.js +0 -5
  892. package/dist/v2/features/app/helpers/get-route-param.js +0 -9
  893. package/dist/v2/features/app/helpers/group-workspaces.js +0 -23
  894. package/dist/v2/features/app/helpers/routes.js +0 -157
  895. package/dist/v2/features/app/hooks/use-document-watcher.js +0 -66
  896. package/dist/v2/features/app/hooks/use-theme.js +0 -48
  897. package/dist/v2/features/collection/DocumentCollection.vue.js +0 -336
  898. package/dist/v2/features/collection/DocumentCollection.vue3.js +0 -5
  899. package/dist/v2/features/collection/OperationCollection.vue.js +0 -86
  900. package/dist/v2/features/collection/OperationCollection.vue2.js +0 -4
  901. package/dist/v2/features/collection/WorkspaceCollection.vue.js +0 -68
  902. package/dist/v2/features/collection/WorkspaceCollection.vue2.js +0 -4
  903. package/dist/v2/features/collection/components/Authentication.vue.js +0 -7
  904. package/dist/v2/features/collection/components/Authentication.vue2.js +0 -154
  905. package/dist/v2/features/collection/components/Cookies.vue.js +0 -52
  906. package/dist/v2/features/collection/components/Cookies.vue2.js +0 -4
  907. package/dist/v2/features/collection/components/Editor/Editor.vue.js +0 -7
  908. package/dist/v2/features/collection/components/Editor/Editor.vue2.js +0 -344
  909. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js +0 -78
  910. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue2.js +0 -4
  911. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js +0 -83
  912. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue2.js +0 -4
  913. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js +0 -10
  914. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js +0 -5
  915. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js +0 -5
  916. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +0 -21
  917. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js +0 -5
  918. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js +0 -25
  919. package/dist/v2/features/collection/components/Environment.vue.js +0 -54
  920. package/dist/v2/features/collection/components/Environment.vue2.js +0 -4
  921. package/dist/v2/features/collection/components/Form.vue.js +0 -78
  922. package/dist/v2/features/collection/components/Form.vue2.js +0 -4
  923. package/dist/v2/features/collection/components/LabelInput.vue.js +0 -7
  924. package/dist/v2/features/collection/components/LabelInput.vue2.js +0 -35
  925. package/dist/v2/features/collection/components/Overview.vue.js +0 -7
  926. package/dist/v2/features/collection/components/Overview.vue2.js +0 -208
  927. package/dist/v2/features/collection/components/Servers.vue.js +0 -210
  928. package/dist/v2/features/collection/components/Servers.vue2.js +0 -4
  929. package/dist/v2/features/collection/components/Settings.vue.js +0 -61
  930. package/dist/v2/features/collection/components/Settings.vue2.js +0 -4
  931. package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue.js +0 -7
  932. package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue2.js +0 -136
  933. package/dist/v2/features/collection/components/Tabs.vue.js +0 -44
  934. package/dist/v2/features/collection/components/Tabs.vue2.js +0 -4
  935. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js +0 -13
  936. package/dist/v2/features/command-palette/TheCommandPalette.vue.js +0 -7
  937. package/dist/v2/features/command-palette/TheCommandPalette.vue2.js +0 -152
  938. package/dist/v2/features/command-palette/components/CommandActionForm.vue.js +0 -48
  939. package/dist/v2/features/command-palette/components/CommandActionForm.vue2.js +0 -4
  940. package/dist/v2/features/command-palette/components/CommandActionInput.vue.js +0 -52
  941. package/dist/v2/features/command-palette/components/CommandActionInput.vue2.js +0 -4
  942. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +0 -211
  943. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue2.js +0 -4
  944. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +0 -182
  945. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue2.js +0 -4
  946. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js +0 -7
  947. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue2.js +0 -115
  948. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js +0 -78
  949. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue2.js +0 -4
  950. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +0 -221
  951. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue2.js +0 -4
  952. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +0 -114
  953. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue2.js +0 -4
  954. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js +0 -40
  955. package/dist/v2/features/command-palette/components/WatchModeToggle.vue2.js +0 -4
  956. package/dist/v2/features/command-palette/helpers/generate-unique-slug.js +0 -11
  957. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js +0 -31
  958. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js +0 -11
  959. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +0 -76
  960. package/dist/v2/features/command-palette/helpers/get-postman-document-details.js +0 -18
  961. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js +0 -33
  962. package/dist/v2/features/command-palette/helpers/is-postman-collection.js +0 -11
  963. package/dist/v2/features/command-palette/helpers/load-document-from-source.js +0 -52
  964. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +0 -139
  965. package/dist/v2/features/editor/config.js +0 -16
  966. package/dist/v2/features/editor/helpers/configure-language-support.js +0 -39
  967. package/dist/v2/features/editor/helpers/ensure-monaco-environment.js +0 -20
  968. package/dist/v2/features/editor/helpers/json/create-json-model.js +0 -19
  969. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +0 -9
  970. package/dist/v2/features/editor/helpers/json/json-ast.js +0 -24
  971. package/dist/v2/features/editor/helpers/json/json-pointer-links.js +0 -72
  972. package/dist/v2/features/editor/helpers/json/json-pointer-path.js +0 -21
  973. package/dist/v2/features/editor/helpers/range-to-whole-line.js +0 -8
  974. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js +0 -56
  975. package/dist/v2/features/editor/helpers/theme/load-css-variables.js +0 -21
  976. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js +0 -19
  977. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js +0 -50
  978. package/dist/v2/features/editor/hooks/use-editor-markers.js +0 -34
  979. package/dist/v2/features/editor/hooks/use-editor.js +0 -107
  980. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js +0 -27
  981. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js +0 -316
  982. package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js +0 -25
  983. package/dist/v2/features/environments/EnvironmentsList.vue.js +0 -68
  984. package/dist/v2/features/environments/EnvironmentsList.vue2.js +0 -4
  985. package/dist/v2/features/environments/components/Environment.vue.js +0 -66
  986. package/dist/v2/features/environments/components/Environment.vue2.js +0 -4
  987. package/dist/v2/features/environments/components/EnvironmentColors.vue.js +0 -121
  988. package/dist/v2/features/environments/components/EnvironmentColors.vue2.js +0 -4
  989. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js +0 -85
  990. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue2.js +0 -4
  991. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js +0 -53
  992. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue2.js +0 -4
  993. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js +0 -109
  994. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue2.js +0 -4
  995. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js +0 -7
  996. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue2.js +0 -136
  997. package/dist/v2/features/global-cookies/components/CookiesTable.vue.js +0 -7
  998. package/dist/v2/features/global-cookies/components/CookiesTable.vue2.js +0 -189
  999. package/dist/v2/features/modal/Modal.vue.js +0 -122
  1000. package/dist/v2/features/modal/Modal.vue2.js +0 -4
  1001. package/dist/v2/features/modal/helpers/create-api-client-modal.js +0 -89
  1002. package/dist/v2/features/modal/helpers/map-hidden-clients-config.js +0 -36
  1003. package/dist/v2/features/modal/helpers/resolve-route-parameters.js +0 -29
  1004. package/dist/v2/features/modal/helpers/restore-workspace-state.js +0 -36
  1005. package/dist/v2/features/modal/hooks/use-modal-sidebar.js +0 -93
  1006. package/dist/v2/features/modal/modal-events.js +0 -44
  1007. package/dist/v2/features/operation/Operation.vue.js +0 -126
  1008. package/dist/v2/features/operation/Operation.vue2.js +0 -4
  1009. package/dist/v2/features/operation/helpers/combine-params.js +0 -14
  1010. package/dist/v2/features/operation/helpers/get-security-requirements.js +0 -4
  1011. package/dist/v2/features/operation/helpers/get-selected-security.js +0 -18
  1012. package/dist/v2/features/operation/helpers/get-selected-server.js +0 -4
  1013. package/dist/v2/features/search/helpers/create-fuse-instance.js +0 -43
  1014. package/dist/v2/features/search/helpers/create-search-index.js +0 -63
  1015. package/dist/v2/features/search/hooks/use-search-index.js +0 -18
  1016. package/dist/v2/features/settings/CollectionSettings.vue.js +0 -275
  1017. package/dist/v2/features/settings/CollectionSettings.vue2.js +0 -4
  1018. package/dist/v2/features/settings/DocumentSettings.vue.js +0 -115
  1019. package/dist/v2/features/settings/DocumentSettings.vue2.js +0 -4
  1020. package/dist/v2/features/settings/components/Appearance.vue.js +0 -88
  1021. package/dist/v2/features/settings/components/Appearance.vue2.js +0 -4
  1022. package/dist/v2/features/settings/components/Section.vue.js +0 -35
  1023. package/dist/v2/features/settings/components/Section.vue2.js +0 -4
  1024. package/dist/v2/features/settings/helpers/get-theme-colors.js +0 -16
  1025. package/dist/v2/helpers/drag-handle-factory.js +0 -120
  1026. package/dist/v2/helpers/generate-location-id.js +0 -10
  1027. package/dist/v2/helpers/get-active-environment.js +0 -22
  1028. package/dist/v2/helpers/get-active-proxy-url.js +0 -5
  1029. package/dist/v2/helpers/get-servers.js +0 -66
  1030. package/dist/v2/helpers/get-tab-details.js +0 -34
  1031. package/dist/v2/helpers/handle-hotkeys.js +0 -54
  1032. package/dist/v2/helpers/is-url.js +0 -5
  1033. package/dist/v2/helpers/slugify.js +0 -4
  1034. package/dist/v2/helpers/storage.js +0 -16
  1035. package/dist/v2/hooks/use-color-mode.js +0 -24
  1036. package/dist/v2/hooks/use-global-hot-keys.js +0 -11
  1037. package/dist/v2/hooks/use-scroll-lock.js +0 -21
  1038. package/dist/v2/workspace-events.js +0 -252
  1039. package/dist/views/Collection/Collection.vue.js +0 -4
  1040. package/dist/views/Collection/Collection.vue2.js +0 -49
  1041. package/dist/views/Collection/CollectionAuthentication.vue.js +0 -7
  1042. package/dist/views/Collection/CollectionAuthentication.vue2.js +0 -56
  1043. package/dist/views/Collection/CollectionCookies.vue.js +0 -4
  1044. package/dist/views/Collection/CollectionCookies.vue2.js +0 -16
  1045. package/dist/views/Collection/CollectionEnvironment.vue.js +0 -5
  1046. package/dist/views/Collection/CollectionEnvironment.vue2.js +0 -229
  1047. package/dist/views/Collection/CollectionInfoForm.vue.js +0 -7
  1048. package/dist/views/Collection/CollectionInfoForm.vue2.js +0 -63
  1049. package/dist/views/Collection/CollectionNavigation.vue.js +0 -133
  1050. package/dist/views/Collection/CollectionNavigation.vue2.js +0 -4
  1051. package/dist/views/Collection/CollectionOverview.vue.js +0 -4
  1052. package/dist/views/Collection/CollectionOverview.vue2.js +0 -34
  1053. package/dist/views/Collection/CollectionScripts.vue.js +0 -4
  1054. package/dist/views/Collection/CollectionScripts.vue2.js +0 -16
  1055. package/dist/views/Collection/CollectionServerForm.vue.js +0 -75
  1056. package/dist/views/Collection/CollectionServerForm.vue2.js +0 -4
  1057. package/dist/views/Collection/CollectionServers.vue.js +0 -4
  1058. package/dist/views/Collection/CollectionServers.vue2.js +0 -94
  1059. package/dist/views/Collection/CollectionSettings.vue.js +0 -4
  1060. package/dist/views/Collection/CollectionSettings.vue2.js +0 -118
  1061. package/dist/views/Collection/CollectionSync.vue.js +0 -4
  1062. package/dist/views/Collection/CollectionSync.vue2.js +0 -16
  1063. package/dist/views/Collection/components/EnvironmentForm.vue.js +0 -7
  1064. package/dist/views/Collection/components/EnvironmentForm.vue2.js +0 -270
  1065. package/dist/views/Collection/components/MarkdownInput.vue.js +0 -7
  1066. package/dist/views/Collection/components/MarkdownInput.vue2.js +0 -100
  1067. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js +0 -50
  1068. package/dist/views/Components/CodeSnippet/CodeSnippet.vue2.js +0 -4
  1069. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js +0 -62
  1070. package/dist/views/Components/CodeSnippet/helpers/get-har-request.js +0 -82
  1071. package/dist/views/Components/CodeSnippet/helpers/get-snippet.js +0 -30
  1072. package/dist/views/Cookies/CookieForm.vue.js +0 -34
  1073. package/dist/views/Cookies/CookieForm.vue2.js +0 -4
  1074. package/dist/views/Cookies/CookieModal.vue.js +0 -7
  1075. package/dist/views/Cookies/CookieModal.vue2.js +0 -88
  1076. package/dist/views/Cookies/Cookies.vue.js +0 -4
  1077. package/dist/views/Cookies/Cookies.vue2.js +0 -162
  1078. package/dist/views/Environment/Environment.vue.js +0 -4
  1079. package/dist/views/Environment/Environment.vue2.js +0 -402
  1080. package/dist/views/Environment/EnvironmentColorModal.vue.js +0 -42
  1081. package/dist/views/Environment/EnvironmentColorModal.vue2.js +0 -4
  1082. package/dist/views/Environment/EnvironmentColors.vue.js +0 -118
  1083. package/dist/views/Environment/EnvironmentColors.vue2.js +0 -4
  1084. package/dist/views/Environment/EnvironmentModal.vue.js +0 -131
  1085. package/dist/views/Environment/EnvironmentModal.vue2.js +0 -4
  1086. package/dist/views/Environment/EnvironmentVariableDropdown.vue.js +0 -129
  1087. package/dist/views/Environment/EnvironmentVariableDropdown.vue2.js +0 -4
  1088. package/dist/views/Environment/handle-drag.js +0 -32
  1089. package/dist/views/Request/Request.vue.js +0 -7
  1090. package/dist/views/Request/Request.vue2.js +0 -105
  1091. package/dist/views/Request/RequestRoot.vue.js +0 -7
  1092. package/dist/views/Request/RequestRoot.vue2.js +0 -123
  1093. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js +0 -52
  1094. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue2.js +0 -4
  1095. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js +0 -246
  1096. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue2.js +0 -4
  1097. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js +0 -135
  1098. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue2.js +0 -4
  1099. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js +0 -7
  1100. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue2.js +0 -209
  1101. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js +0 -7
  1102. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue2.js +0 -116
  1103. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js +0 -50
  1104. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue2.js +0 -4
  1105. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js +0 -219
  1106. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue2.js +0 -4
  1107. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js +0 -28
  1108. package/dist/views/Request/RequestSection/RequestBody.vue.js +0 -7
  1109. package/dist/views/Request/RequestSection/RequestBody.vue2.js +0 -451
  1110. package/dist/views/Request/RequestSection/RequestCodeExample.vue.js +0 -7
  1111. package/dist/views/Request/RequestSection/RequestCodeExample.vue2.js +0 -170
  1112. package/dist/views/Request/RequestSection/RequestParams.vue.js +0 -162
  1113. package/dist/views/Request/RequestSection/RequestParams.vue2.js +0 -4
  1114. package/dist/views/Request/RequestSection/RequestPathParams.vue.js +0 -96
  1115. package/dist/views/Request/RequestSection/RequestPathParams.vue2.js +0 -4
  1116. package/dist/views/Request/RequestSection/RequestSection.vue.js +0 -7
  1117. package/dist/views/Request/RequestSection/RequestSection.vue2.js +0 -247
  1118. package/dist/views/Request/RequestSection/RequestTable.vue.js +0 -7
  1119. package/dist/views/Request/RequestSection/RequestTable.vue2.js +0 -227
  1120. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js +0 -7
  1121. package/dist/views/Request/RequestSection/RequestTableTooltip.vue2.js +0 -61
  1122. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js +0 -29
  1123. package/dist/views/Request/RequestSection/helpers/getting-started.js +0 -13
  1124. package/dist/views/Request/RequestSection/helpers/update-scheme.js +0 -16
  1125. package/dist/views/Request/RequestSidebar.vue.js +0 -7
  1126. package/dist/views/Request/RequestSidebar.vue2.js +0 -341
  1127. package/dist/views/Request/RequestSidebarItem.vue.js +0 -8
  1128. package/dist/views/Request/RequestSidebarItem.vue2.js +0 -464
  1129. package/dist/views/Request/RequestSidebarItemMenu.vue.js +0 -7
  1130. package/dist/views/Request/RequestSidebarItemMenu.vue2.js +0 -236
  1131. package/dist/views/Request/RequestSubpageHeader.vue.js +0 -7
  1132. package/dist/views/Request/RequestSubpageHeader.vue2.js +0 -79
  1133. package/dist/views/Request/ResponseSection/RequestHeaders.vue.js +0 -96
  1134. package/dist/views/Request/ResponseSection/RequestHeaders.vue2.js +0 -4
  1135. package/dist/views/Request/ResponseSection/ResponseBody.vue.js +0 -7
  1136. package/dist/views/Request/ResponseSection/ResponseBody.vue2.js +0 -83
  1137. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js +0 -36
  1138. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue2.js +0 -4
  1139. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js +0 -14
  1140. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js +0 -7
  1141. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue2.js +0 -63
  1142. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +0 -7
  1143. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue2.js +0 -42
  1144. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js +0 -74
  1145. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue2.js +0 -4
  1146. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js +0 -25
  1147. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue2.js +0 -4
  1148. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js +0 -50
  1149. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue3.js +0 -5
  1150. package/dist/views/Request/ResponseSection/ResponseCookies.vue.js +0 -51
  1151. package/dist/views/Request/ResponseSection/ResponseCookies.vue2.js +0 -4
  1152. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js +0 -7
  1153. package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +0 -103
  1154. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js +0 -96
  1155. package/dist/views/Request/ResponseSection/ResponseHeaders.vue2.js +0 -4
  1156. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js +0 -7
  1157. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue2.js +0 -38
  1158. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js +0 -67
  1159. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue2.js +0 -4
  1160. package/dist/views/Request/ResponseSection/ResponseSection.vue.js +0 -7
  1161. package/dist/views/Request/ResponseSection/ResponseSection.vue2.js +0 -189
  1162. package/dist/views/Request/components/WorkspaceDropdown.vue.js +0 -182
  1163. package/dist/views/Request/components/WorkspaceDropdown.vue2.js +0 -4
  1164. package/dist/views/Request/consts/mediaTypes.js +0 -131
  1165. package/dist/views/Request/consts/new-auth-options.js +0 -100
  1166. package/dist/views/Request/handle-drag.js +0 -42
  1167. package/dist/views/Request/hooks/useOpenApiWatcher.js +0 -57
  1168. package/dist/views/Request/libs/auth.js +0 -52
  1169. package/dist/views/Request/libs/oauth2.js +0 -127
  1170. package/dist/views/Request/libs/request.js +0 -40
  1171. package/dist/views/Request/libs/watch-mode.js +0 -337
  1172. package/dist/views/Settings/Settings.vue.js +0 -4
  1173. package/dist/views/Settings/Settings.vue2.js +0 -29
  1174. package/dist/views/Settings/SettingsGeneral.vue.js +0 -286
  1175. package/dist/views/Settings/SettingsGeneral.vue2.js +0 -4
  1176. package/dist/views/Settings/components/SettingsAppearance.vue.js +0 -85
  1177. package/dist/views/Settings/components/SettingsAppearance.vue2.js +0 -4
  1178. package/dist/views/Settings/components/SettingsSection.vue.js +0 -24
  1179. package/dist/views/Settings/components/SettingsSection.vue2.js +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportCollection-BIYMxB9Q.js","names":[],"sources":["../src/components/ImportCollection/utils/workspace-store-is-empty.ts","../src/components/ImportCollection/DropEventListener.vue","../src/components/ImportCollection/DropEventListener.vue","../src/components/ImportCollection/hooks/useUrlPrefetcher.ts","../src/components/ImportCollection/utils/is-url.ts","../src/components/ImportCollection/utils/import-collection.ts","../src/components/ImportCollection/ImportNowButton.vue","../src/components/ImportCollection/ImportNowButton.vue","../src/components/ImportCollection/PrefetchError.vue","../src/components/ImportCollection/PrefetchError.vue","../src/components/ImportCollection/utils/is-document.ts","../src/components/ImportCollection/utils/get-openapi-version.ts","../src/components/ImportCollection/WorkspaceSelector.vue","../src/components/ImportCollection/WorkspaceSelector.vue","../src/components/ImportCollection/ImportCollectionModal.vue","../src/components/ImportCollection/ImportCollectionModal.vue","../src/components/ImportCollection/PasteEventListener.vue","../src/components/ImportCollection/PasteEventListener.vue","../src/components/ImportCollection/UrlQueryParameterChecker.vue","../src/components/ImportCollection/UrlQueryParameterChecker.vue","../src/components/ImportCollection/ImportCollectionListener.vue","../src/components/ImportCollection/ImportCollectionListener.vue"],"sourcesContent":["import type { WorkspaceStore } from '@/store'\n\n/**\n * Checks whether the store is empty.\n */\nexport function workspaceStoreIsEmpty(store: WorkspaceStore) {\n const hasSingleWorkspace = Object.keys(store.workspaces).length === 1\n const hasSingleCollection = Object.keys(store.collections).length === 1\n\n return hasSingleWorkspace && hasSingleCollection\n}\n","<script lang=\"ts\" setup>\nimport { ScalarIcon } from '@scalar/components'\nimport { onBeforeUnmount, onMounted, ref } from 'vue'\n\nconst emit = defineEmits<{\n (e: 'input', value: string, integration: null, eventType: 'drop'): void\n}>()\n\nconst isDragging = ref<boolean>(false)\n\nlet dragCounter = 0\n\n// Register event listeners\nonMounted(() => {\n document.addEventListener('dragenter', handleDragEnter)\n document.addEventListener('dragleave', handleDragLeave)\n document.addEventListener('dragover', handleDragOver)\n document.addEventListener('drop', handleDrop)\n})\n\n// Unregister event listeners\nonBeforeUnmount(() => {\n document.removeEventListener('dragenter', handleDragEnter)\n document.removeEventListener('dragover', handleDragOver)\n document.removeEventListener('dragleave', handleDragLeave)\n document.removeEventListener('drop', handleDrop)\n})\n\nfunction isFromApp(event: DragEvent): boolean {\n return event.dataTransfer?.types.includes('text/html') ?? false\n}\n\n// Drop\nfunction handleDrop(event: DragEvent) {\n event.preventDefault()\n isDragging.value = false\n dragCounter = 0\n\n // Prevent emitting for text/html dragged items\n if (isFromApp(event)) {\n return\n }\n\n if (event.dataTransfer) {\n // Text\n const droppedText = event.dataTransfer.getData('text').replace(/^blob:/, '')\n\n if (droppedText) {\n emit('input', droppedText, null, 'drop')\n }\n // Files\n else if (event.dataTransfer.files.length > 0) {\n const file = event.dataTransfer.files[0]\n if (!file) {\n return\n }\n\n const reader = new FileReader()\n\n reader.onload = (e) => {\n if (e.target && typeof e.target.result === 'string') {\n emit('input', e.target.result, null, 'drop')\n }\n }\n\n reader.readAsText(file)\n }\n }\n}\n\nfunction handleDragOver(event: DragEvent) {\n event.preventDefault()\n}\n\nfunction handleDragLeave(event: DragEvent) {\n event.preventDefault()\n dragCounter--\n\n if (dragCounter === 0) {\n isDragging.value = false\n }\n}\n\nfunction handleDragEnter(event: DragEvent) {\n event.preventDefault()\n dragCounter++\n\n // Prevent displaying the draggable UI for text/html dragged items\n if (isFromApp(event)) {\n return\n }\n\n if (event.dataTransfer) {\n const items = event.dataTransfer.items\n for (const item of items) {\n if (\n item?.kind === 'string' ||\n item?.type?.includes('json') ||\n item?.type?.includes('yml') ||\n item?.type?.includes('yaml')\n ) {\n isDragging.value = true\n return\n }\n }\n }\n isDragging.value = false\n}\n</script>\n\n<template>\n <transition\n enterActiveClass=\"transition-opacity duration-200\"\n enterFromClass=\"opacity-0\"\n leaveActiveClass=\"transition-opacity duration-200\"\n leaveToClass=\"opacity-0\">\n <div\n v-if=\"isDragging\"\n class=\"bg-b-2 fixed right-1/2 bottom-1/2 z-50 h-64 w-64 translate-x-1/2 translate-y-1/2 rounded-xl border transition-opacity duration-200 md:right-10 md:bottom-10 md:translate-x-0 md:translate-y-0\">\n <div class=\"flex h-full flex-col items-center justify-center\">\n <div>\n <ScalarIcon\n icon=\"Download\"\n size=\"xl\"\n thickness=\"2\" />\n </div>\n <div class=\"text-c-1 m-4 text-center\">\n Drop your OpenAPI document here\n </div>\n </div>\n </div>\n </transition>\n</template>\n","<script lang=\"ts\" setup>\nimport { ScalarIcon } from '@scalar/components'\nimport { onBeforeUnmount, onMounted, ref } from 'vue'\n\nconst emit = defineEmits<{\n (e: 'input', value: string, integration: null, eventType: 'drop'): void\n}>()\n\nconst isDragging = ref<boolean>(false)\n\nlet dragCounter = 0\n\n// Register event listeners\nonMounted(() => {\n document.addEventListener('dragenter', handleDragEnter)\n document.addEventListener('dragleave', handleDragLeave)\n document.addEventListener('dragover', handleDragOver)\n document.addEventListener('drop', handleDrop)\n})\n\n// Unregister event listeners\nonBeforeUnmount(() => {\n document.removeEventListener('dragenter', handleDragEnter)\n document.removeEventListener('dragover', handleDragOver)\n document.removeEventListener('dragleave', handleDragLeave)\n document.removeEventListener('drop', handleDrop)\n})\n\nfunction isFromApp(event: DragEvent): boolean {\n return event.dataTransfer?.types.includes('text/html') ?? false\n}\n\n// Drop\nfunction handleDrop(event: DragEvent) {\n event.preventDefault()\n isDragging.value = false\n dragCounter = 0\n\n // Prevent emitting for text/html dragged items\n if (isFromApp(event)) {\n return\n }\n\n if (event.dataTransfer) {\n // Text\n const droppedText = event.dataTransfer.getData('text').replace(/^blob:/, '')\n\n if (droppedText) {\n emit('input', droppedText, null, 'drop')\n }\n // Files\n else if (event.dataTransfer.files.length > 0) {\n const file = event.dataTransfer.files[0]\n if (!file) {\n return\n }\n\n const reader = new FileReader()\n\n reader.onload = (e) => {\n if (e.target && typeof e.target.result === 'string') {\n emit('input', e.target.result, null, 'drop')\n }\n }\n\n reader.readAsText(file)\n }\n }\n}\n\nfunction handleDragOver(event: DragEvent) {\n event.preventDefault()\n}\n\nfunction handleDragLeave(event: DragEvent) {\n event.preventDefault()\n dragCounter--\n\n if (dragCounter === 0) {\n isDragging.value = false\n }\n}\n\nfunction handleDragEnter(event: DragEvent) {\n event.preventDefault()\n dragCounter++\n\n // Prevent displaying the draggable UI for text/html dragged items\n if (isFromApp(event)) {\n return\n }\n\n if (event.dataTransfer) {\n const items = event.dataTransfer.items\n for (const item of items) {\n if (\n item?.kind === 'string' ||\n item?.type?.includes('json') ||\n item?.type?.includes('yml') ||\n item?.type?.includes('yaml')\n ) {\n isDragging.value = true\n return\n }\n }\n }\n isDragging.value = false\n}\n</script>\n\n<template>\n <transition\n enterActiveClass=\"transition-opacity duration-200\"\n enterFromClass=\"opacity-0\"\n leaveActiveClass=\"transition-opacity duration-200\"\n leaveToClass=\"opacity-0\">\n <div\n v-if=\"isDragging\"\n class=\"bg-b-2 fixed right-1/2 bottom-1/2 z-50 h-64 w-64 translate-x-1/2 translate-y-1/2 rounded-xl border transition-opacity duration-200 md:right-10 md:bottom-10 md:translate-x-0 md:translate-y-0\">\n <div class=\"flex h-full flex-col items-center justify-center\">\n <div>\n <ScalarIcon\n icon=\"Download\"\n size=\"xl\"\n thickness=\"2\" />\n </div>\n <div class=\"text-c-1 m-4 text-center\">\n Drop your OpenAPI document here\n </div>\n </div>\n </div>\n </transition>\n</template>\n","import { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { resolve } from '@scalar/import'\nimport { fetchWithProxyFallback } from '@scalar/oas-utils/helpers'\nimport { reactive } from 'vue'\n\nimport { isUrl } from '@/libs'\n\ntype PrefetchResult = {\n state: 'idle' | 'loading'\n content: string | null\n input: string | null\n url: string | null\n error: string | null\n}\n\n/**\n * Vue composable for URL prefetching\n */\nexport function useUrlPrefetcher() {\n const prefetchResult = reactive<PrefetchResult>({\n state: 'idle',\n content: null,\n url: null,\n input: null,\n error: null,\n })\n\n function resetPrefetchResult() {\n Object.assign(prefetchResult, {\n state: 'idle',\n content: null,\n url: null,\n input: null,\n error: null,\n })\n }\n\n async function prefetchUrl(input: string | null, proxyUrl?: string) {\n if (!input) {\n return {\n state: 'idle',\n content: null,\n url: null,\n input,\n error: null,\n }\n }\n\n try {\n // If we try hard enough, we might find the actual OpenAPI document URL even if the input isn't one directly.\n const urlOrDocument = await resolve(input, {\n fetch: (url) => {\n return fetch(proxyUrl ? redirectToProxy(proxyUrl, url) : url, {\n cache: 'no-cache',\n })\n },\n })\n\n // If the input is an object, we're done\n if (typeof urlOrDocument === 'object' && urlOrDocument !== null) {\n const json = JSON.stringify(urlOrDocument, null, 2)\n\n return {\n state: 'idle',\n content: json,\n url: null,\n error: null,\n }\n }\n\n // Nothing was found.\n if (urlOrDocument === undefined) {\n return {\n state: 'idle',\n content: null,\n url: null,\n input,\n error: `Could not find an OpenAPI document in ${input}`,\n }\n }\n\n if (!isUrl(urlOrDocument)) {\n return {\n state: 'idle',\n content: null,\n url: null,\n input,\n error: 'Oops, we got invalid content for the given URL.',\n }\n }\n\n const url = urlOrDocument\n\n // Okay, we've got an URL. Let's fetch it:\n const result = await fetchWithProxyFallback(url, {\n proxyUrl,\n cache: 'no-cache',\n })\n\n if (!result.ok) {\n return {\n state: 'idle',\n content: null,\n url: null,\n input,\n error: `Couldn't fetch ${url}, got error ${[result.status, result.statusText].join(' ').trim()}.`,\n }\n }\n\n const content = await result.text()\n\n return {\n state: 'idle',\n content,\n url,\n error: null,\n }\n } catch (error: any) {\n console.error('[prefetchDocument]', error)\n\n return {\n state: 'idle',\n content: null,\n url: null,\n input,\n error: error.message,\n }\n }\n }\n\n async function prefetchUrlAndUpdateState(input: string | null, proxyUrl?: string) {\n Object.assign(prefetchResult, {\n state: 'loading',\n content: null,\n url: null,\n input,\n error: null,\n })\n\n const result = await prefetchUrl(input, proxyUrl)\n Object.assign(prefetchResult, result)\n return result\n }\n\n return {\n prefetchResult,\n prefetchUrl: prefetchUrlAndUpdateState,\n resetPrefetchResult,\n }\n}\n","/**\n * Checks whether the given string is an URL\n **/\nexport function isUrl(input: string | null): boolean {\n // Quick check for null or undefined\n if (!input) {\n return false\n }\n\n // Trim whitespace\n const trimmed = input.trim()\n\n // If it's an URL, it must start with http:// or https://\n if (!trimmed.startsWith('http://') && !trimmed.startsWith('https://')) {\n return false\n }\n\n // But it must have more than just the protocol\n return trimmed.replace(/^https?:\\/\\//, '').length > 0\n}\n","import type { Collection } from '@scalar/oas-utils/entities/spec'\nimport type { Workspace } from '@scalar/oas-utils/entities/workspace'\n\nimport { isUrl } from '@/components/ImportCollection/utils/is-url'\nimport type { WorkspaceStore } from '@/store'\n\nexport async function importCollection({\n store,\n workspace,\n source,\n watchMode,\n onSuccess,\n onError,\n}: {\n store: WorkspaceStore\n workspace: Workspace | undefined\n source: string | null | undefined\n watchMode: boolean\n onSuccess: (collection: Collection | undefined) => void\n onError: (error: Error) => void\n}) {\n try {\n if (source && workspace) {\n if (isUrl(source)) {\n const [error, entities] = await store.importSpecFromUrl(source, workspace.uid, {\n proxyUrl: workspace.proxyUrl,\n watchMode: watchMode,\n })\n\n if (!error) {\n onSuccess(entities?.collection)\n }\n\n return\n }\n\n const entities = await store.importSpecFile(source, workspace.uid)\n\n onSuccess(entities?.collection)\n }\n } catch (error) {\n onError(error as Error)\n }\n}\n","<script lang=\"ts\" setup>\nimport { ScalarButton } from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport { importCollection } from './utils/import-collection'\n\nconst { source, watchMode = true } = defineProps<{\n source?: string | null\n variant?: 'button' | 'link'\n watchMode?: boolean\n}>()\n\nconst emit = defineEmits<{\n (e: 'importFinished'): void\n}>()\n\nconst router = useRouter()\nconst store = useWorkspace()\nconst { activeWorkspace } = useActiveEntities()\nconst { toast } = useToasts()\n\nfunction handleImportCollection() {\n void importCollection({\n store,\n workspace: activeWorkspace.value,\n source: source,\n watchMode: watchMode,\n onSuccess(collection: Collection | undefined) {\n if (collection) {\n redirectToFirstRequestInCollection(collection)\n toast('Import successful', 'info')\n emit('importFinished')\n }\n },\n onError(error) {\n console.error('[importCollection]', error)\n\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n },\n })\n}\n\nfunction redirectToFirstRequestInCollection(collection?: Collection) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: collection?.requests[0],\n },\n })\n}\n</script>\n\n<template>\n <template v-if=\"source\">\n <!-- Button -->\n <ScalarButton\n v-if=\"variant === 'button'\"\n class=\"mt-3 h-fit w-full rounded-lg px-6 py-2.5 font-bold\"\n size=\"md\"\n type=\"button\"\n @click=\"handleImportCollection\">\n Import Collection\n </ScalarButton>\n <!-- Link -->\n <ScalarButton\n v-else\n class=\"h-fit rounded-lg px-6 py-2.5 text-[21px] font-bold\"\n size=\"md\"\n type=\"button\"\n variant=\"ghost\"\n @click=\"handleImportCollection\">\n Try it in the browser\n </ScalarButton>\n <!-- <a\n v-else\n class=\"no-underline text-sm\"\n href=\"#\"\n @click=\"importCollection\">\n Try it in the browser\n </a> -->\n </template>\n</template>\n","<script lang=\"ts\" setup>\nimport { ScalarButton } from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport { importCollection } from './utils/import-collection'\n\nconst { source, watchMode = true } = defineProps<{\n source?: string | null\n variant?: 'button' | 'link'\n watchMode?: boolean\n}>()\n\nconst emit = defineEmits<{\n (e: 'importFinished'): void\n}>()\n\nconst router = useRouter()\nconst store = useWorkspace()\nconst { activeWorkspace } = useActiveEntities()\nconst { toast } = useToasts()\n\nfunction handleImportCollection() {\n void importCollection({\n store,\n workspace: activeWorkspace.value,\n source: source,\n watchMode: watchMode,\n onSuccess(collection: Collection | undefined) {\n if (collection) {\n redirectToFirstRequestInCollection(collection)\n toast('Import successful', 'info')\n emit('importFinished')\n }\n },\n onError(error) {\n console.error('[importCollection]', error)\n\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n },\n })\n}\n\nfunction redirectToFirstRequestInCollection(collection?: Collection) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: collection?.requests[0],\n },\n })\n}\n</script>\n\n<template>\n <template v-if=\"source\">\n <!-- Button -->\n <ScalarButton\n v-if=\"variant === 'button'\"\n class=\"mt-3 h-fit w-full rounded-lg px-6 py-2.5 font-bold\"\n size=\"md\"\n type=\"button\"\n @click=\"handleImportCollection\">\n Import Collection\n </ScalarButton>\n <!-- Link -->\n <ScalarButton\n v-else\n class=\"h-fit rounded-lg px-6 py-2.5 text-[21px] font-bold\"\n size=\"md\"\n type=\"button\"\n variant=\"ghost\"\n @click=\"handleImportCollection\">\n Try it in the browser\n </ScalarButton>\n <!-- <a\n v-else\n class=\"no-underline text-sm\"\n href=\"#\"\n @click=\"importCollection\">\n Try it in the browser\n </a> -->\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { isUrl } from '@/libs'\n\ndefineProps<{\n url?: string | null\n}>()\n</script>\n\n<template>\n <div class=\"w-full text-center text-sm font-medium break-words\">\n We couldn't find an OpenAPI document at the provided URL. Please download\n and import the\n <a\n v-if=\"url && isUrl(url)\"\n :href=\"url\"\n rel=\"noopener nofollow\"\n target=\"_blank\"\n v-text=\"'OpenAPI document manually'\" />\n <span\n v-else\n v-text=\"'OpenAPI document manually'\" />.\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { isUrl } from '@/libs'\n\ndefineProps<{\n url?: string | null\n}>()\n</script>\n\n<template>\n <div class=\"w-full text-center text-sm font-medium break-words\">\n We couldn't find an OpenAPI document at the provided URL. Please download\n and import the\n <a\n v-if=\"url && isUrl(url)\"\n :href=\"url\"\n rel=\"noopener nofollow\"\n target=\"_blank\"\n v-text=\"'OpenAPI document manually'\" />\n <span\n v-else\n v-text=\"'OpenAPI document manually'\" />.\n </div>\n</template>\n","/** Checks whether the given string could be an OpenAPI document */\nexport function isDocument(input: string | null): boolean {\n // Return false for null, undefined, empty strings, or whitespace-only strings\n if (!input || input.trim().length === 0) {\n return false\n }\n\n const trimmed = input.trim()\n\n // Return false if it looks like a URL (starts with http:// or https://)\n if (trimmed.startsWith('http://') || trimmed.startsWith('https://')) {\n return false\n }\n\n return true\n}\n","import { parse } from 'yaml'\n\nimport { isDocument } from './is-document'\n\n/**\n * Get the Swagger/OpenAPI version and format from the given string\n */\nexport function getOpenApiVersion(input: string | null) {\n if (!isDocument(input)) {\n return false\n }\n\n try {\n const result = JSON.parse(input ?? '')\n\n if (typeof result?.openapi === 'string') {\n return `OpenAPI ${result.openapi} JSON`\n }\n\n if (typeof result?.swagger === 'string') {\n return `Swagger ${result.swagger} JSON`\n }\n\n return false\n } catch {\n //\n }\n\n try {\n const result = parse(input ?? '')\n\n if (typeof result?.openapi === 'string') {\n return `OpenAPI ${result.openapi} YAML`\n }\n\n if (typeof result?.swagger === 'string') {\n return `Swagger ${result.swagger} YAML`\n }\n\n return false\n } catch {\n //\n }\n\n return false\n}\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarDropdown,\n ScalarDropdownDivider,\n ScalarDropdownItem,\n ScalarIcon,\n ScalarModal,\n useModal,\n} from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nconst { activeWorkspace } = useActiveEntities()\nconst { workspaces, workspaceMutators } = useWorkspace()\nconst { push } = useRouter()\n\nconst modal = useModal()\nconst { toast } = useToasts()\nconst workspaceName = ref('')\n\nconst updateSelected = (uid: string) => {\n if (uid === activeWorkspace.value?.uid) {\n return\n }\n\n push({\n name: 'workspace',\n params: {\n workspace: uid,\n },\n })\n}\n\nconst handleCreateWorkspace = () => {\n if (!workspaceName.value.trim()) {\n toast('Please enter a name before creating a workspace.', 'error')\n return\n }\n\n const newWorkspace = workspaceMutators.add({\n name: workspaceName.value,\n })\n\n toast(`Created new workspace '${newWorkspace.name}'`)\n\n push({\n name: 'workspace',\n params: {\n workspace: newWorkspace.uid,\n },\n })\n\n workspaceName.value = ''\n modal.hide()\n}\n</script>\n<template>\n <div class=\"flex w-[inherit] items-center text-base\">\n <ScalarDropdown>\n <ScalarButton\n class=\"hover:bg-b-2 text-c-3 line-clamp-1 h-full w-fit justify-start px-1.5 py-1 font-normal\"\n variant=\"ghost\">\n <div class=\"m-0 flex items-center gap-1 text-sm font-medium\">\n <h2 class=\"line-clamp-1 w-[calc(100%-10px)] text-left text-xs\">\n {{ activeWorkspace?.name }}\n </h2>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </div>\n </ScalarButton>\n\n <!-- Workspace list -->\n <template #items>\n <ScalarDropdownItem\n v-for=\"(workspace, uid) in workspaces\"\n :key=\"uid\"\n class=\"group/item flex w-full items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap\"\n @click.stop=\"updateSelected(uid)\">\n <div\n class=\"flex h-4 w-4 items-center justify-center rounded-full p-[3px]\"\n :class=\"\n activeWorkspace?.uid === uid\n ? 'bg-c-accent text-b-1'\n : 'shadow-border text-transparent'\n \">\n <ScalarIcon\n class=\"size-2.5\"\n icon=\"Checkmark\"\n thickness=\"3\" />\n </div>\n <span class=\"overflow-hidden text-ellipsis\">{{\n workspace.name\n }}</span>\n </ScalarDropdownItem>\n <ScalarDropdownDivider />\n\n <!-- Add new workspace -->\n <ScalarDropdownItem\n class=\"flex items-center gap-1.5\"\n @click=\"modal.show()\">\n <div class=\"flex h-4 w-4 items-center justify-center\">\n <ScalarIcon\n icon=\"Add\"\n size=\"sm\" />\n </div>\n <span>New Workspace</span>\n </ScalarDropdownItem>\n </template>\n </ScalarDropdown>\n </div>\n <ScalarModal\n bodyClass=\"m-0 p-1 rounded-lg border-t-0\"\n class=\"z-overlay absolute\"\n :size=\"'xxs'\"\n :state=\"modal\"\n variant=\"form\">\n <form\n class=\"flex gap-1\"\n @submit.prevent=\"handleCreateWorkspace\">\n <input\n v-model=\"workspaceName\"\n class=\"min-h-8 w-full flex-1 border-none p-1.5 text-sm outline-none\"\n placeholder=\"New Workspace\"\n type=\"text\" />\n <ScalarButton\n class=\"max-h-8 p-0 px-3 text-xs\"\n :disabled=\"!workspaceName.trim()\"\n type=\"submit\">\n Continue\n </ScalarButton>\n </form>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarDropdown,\n ScalarDropdownDivider,\n ScalarDropdownItem,\n ScalarIcon,\n ScalarModal,\n useModal,\n} from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nconst { activeWorkspace } = useActiveEntities()\nconst { workspaces, workspaceMutators } = useWorkspace()\nconst { push } = useRouter()\n\nconst modal = useModal()\nconst { toast } = useToasts()\nconst workspaceName = ref('')\n\nconst updateSelected = (uid: string) => {\n if (uid === activeWorkspace.value?.uid) {\n return\n }\n\n push({\n name: 'workspace',\n params: {\n workspace: uid,\n },\n })\n}\n\nconst handleCreateWorkspace = () => {\n if (!workspaceName.value.trim()) {\n toast('Please enter a name before creating a workspace.', 'error')\n return\n }\n\n const newWorkspace = workspaceMutators.add({\n name: workspaceName.value,\n })\n\n toast(`Created new workspace '${newWorkspace.name}'`)\n\n push({\n name: 'workspace',\n params: {\n workspace: newWorkspace.uid,\n },\n })\n\n workspaceName.value = ''\n modal.hide()\n}\n</script>\n<template>\n <div class=\"flex w-[inherit] items-center text-base\">\n <ScalarDropdown>\n <ScalarButton\n class=\"hover:bg-b-2 text-c-3 line-clamp-1 h-full w-fit justify-start px-1.5 py-1 font-normal\"\n variant=\"ghost\">\n <div class=\"m-0 flex items-center gap-1 text-sm font-medium\">\n <h2 class=\"line-clamp-1 w-[calc(100%-10px)] text-left text-xs\">\n {{ activeWorkspace?.name }}\n </h2>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </div>\n </ScalarButton>\n\n <!-- Workspace list -->\n <template #items>\n <ScalarDropdownItem\n v-for=\"(workspace, uid) in workspaces\"\n :key=\"uid\"\n class=\"group/item flex w-full items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap\"\n @click.stop=\"updateSelected(uid)\">\n <div\n class=\"flex h-4 w-4 items-center justify-center rounded-full p-[3px]\"\n :class=\"\n activeWorkspace?.uid === uid\n ? 'bg-c-accent text-b-1'\n : 'shadow-border text-transparent'\n \">\n <ScalarIcon\n class=\"size-2.5\"\n icon=\"Checkmark\"\n thickness=\"3\" />\n </div>\n <span class=\"overflow-hidden text-ellipsis\">{{\n workspace.name\n }}</span>\n </ScalarDropdownItem>\n <ScalarDropdownDivider />\n\n <!-- Add new workspace -->\n <ScalarDropdownItem\n class=\"flex items-center gap-1.5\"\n @click=\"modal.show()\">\n <div class=\"flex h-4 w-4 items-center justify-center\">\n <ScalarIcon\n icon=\"Add\"\n size=\"sm\" />\n </div>\n <span>New Workspace</span>\n </ScalarDropdownItem>\n </template>\n </ScalarDropdown>\n </div>\n <ScalarModal\n bodyClass=\"m-0 p-1 rounded-lg border-t-0\"\n class=\"z-overlay absolute\"\n :size=\"'xxs'\"\n :state=\"modal\"\n variant=\"form\">\n <form\n class=\"flex gap-1\"\n @submit.prevent=\"handleCreateWorkspace\">\n <input\n v-model=\"workspaceName\"\n class=\"min-h-8 w-full flex-1 border-none p-1.5 text-sm outline-none\"\n placeholder=\"New Workspace\"\n type=\"text\" />\n <ScalarButton\n class=\"max-h-8 p-0 px-3 text-xs\"\n :disabled=\"!workspaceName.trim()\"\n type=\"submit\">\n Continue\n </ScalarButton>\n </form>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon, ScalarModal, useModal } from '@scalar/components'\nimport { isLocalUrl } from '@scalar/oas-utils/helpers'\nimport { normalize } from '@scalar/openapi-parser'\nimport type { OpenAPI } from '@scalar/openapi-types'\nimport {\n getThemeStyles,\n themeIds,\n type IntegrationThemeId,\n} from '@scalar/themes'\nimport { useColorMode } from '@scalar/use-hooks/useColorMode'\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport WatchModeToggle from '@/components/CommandPalette/WatchModeToggle.vue'\nimport { useUrlPrefetcher } from '@/components/ImportCollection/hooks/useUrlPrefetcher'\nimport ImportNowButton from '@/components/ImportCollection/ImportNowButton.vue'\nimport IntegrationLogo from '@/components/ImportCollection/IntegrationLogo.vue'\nimport PrefetchError from '@/components/ImportCollection/PrefetchError.vue'\nimport { getOpenApiVersion } from '@/components/ImportCollection/utils/get-openapi-version'\nimport { isDocument } from '@/components/ImportCollection/utils/is-document'\nimport { isUrl } from '@/components/ImportCollection/utils/is-url'\nimport WorkspaceSelector from '@/components/ImportCollection/WorkspaceSelector.vue'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nconst props = defineProps<{\n source: string | null\n integration: string | null\n eventType: 'drop' | 'paste' | 'query' | null\n}>()\n\nconst emits = defineEmits<{\n (e: 'importFinished'): void\n}>()\n\nconst { activeWorkspace } = useActiveEntities()\nconst { workspaceMutators, events } = useWorkspace()\n\nconst { prefetchResult, prefetchUrl, resetPrefetchResult } = useUrlPrefetcher()\n\nconst modalState = useModal()\n\nconst watchMode = ref<boolean>(true)\n\n/** Close modal when a keyboard shortcut is pressed */\nevents.hotKeys.on(() => modalState.hide())\n\n/** Try to make the retrieved content an OpenAPI document */\nconst openApiDocument = computed(() => {\n try {\n return normalize(\n prefetchResult.content || props.source || '',\n ) as OpenAPI.Document\n } catch {\n return undefined\n }\n})\n\n/** Title from the OpenAPI document */\nconst title = computed(() => openApiDocument.value?.info?.title)\n\n/** The OpenAPI/Swagger version */\nconst version = computed(() =>\n getOpenApiVersion(prefetchResult.content || props.source || ''),\n)\n\nconst { darkLightMode } = useColorMode()\nconst { currentRoute } = useRouter()\n\n/** Grab light and dark logos from the url query params */\nconst companyLogo = computed(() => {\n try {\n const query = currentRoute.value.query\n const logo =\n darkLightMode.value === 'dark' ? query.dark_logo : query.light_logo\n\n if (logo) {\n return decodeURIComponent(logo as string)\n }\n } catch {\n // No harm no foul\n }\n\n return null\n})\n\n/** Open/close modal on events */\nwatch(\n () => props.source,\n async (value) => {\n resetPrefetchResult()\n\n if (isUrl(value)) {\n // For drop & paste events only:\n const isDropOrPasteEvent =\n props.eventType && ['paste', 'drop'].includes(props.eventType)\n\n if (isDropOrPasteEvent) {\n // Check whether the URL is pointing to an OpenAPI document\n const { error } = await prefetchUrl(\n value,\n activeWorkspace.value?.proxyUrl,\n )\n\n if (error) {\n modalState.hide()\n } else {\n modalState.show()\n }\n\n return\n }\n\n // Query parameters:\n void prefetchUrl(value, activeWorkspace.value?.proxyUrl)\n\n modalState.show()\n\n return\n }\n\n if (!value) {\n modalState.hide()\n } else if (isDocument(value) && getOpenApiVersion(value)) {\n modalState.show()\n } else {\n modalState.hide()\n }\n },\n)\n\nconst hasUrl = computed(() => !!props.source && isUrl(props.source))\nconst hasContent = computed(() => !!props.source && isDocument(props.source))\n\n/** Show the integration icon only for local URLs */\nconst shouldShowIntegrationIcon = computed(() => {\n return prefetchResult.url && isLocalUrl(prefetchResult.url)\n})\n\n// Function to add/remove class from body\nconst toggleBodyClass = (add: boolean) => {\n document.body.classList.remove('has-no-import-url')\n\n if (add && (hasUrl.value || hasContent.value) && modalState.open) {\n document.body.classList.add('has-import-url')\n } else {\n document.body.classList.remove('has-import-url')\n }\n}\n\n/** Toggles the 'has-import-url' class on the body element */\nconst closeModal = () => {\n document.body.classList.remove('has-import-url')\n document.body.classList.add('has-no-import-url')\n}\n\n// Watch for changes in the modal state\nwatch(\n () => modalState.open,\n (isOpen) => {\n if (isOpen) {\n toggleBodyClass(true)\n } else {\n closeModal()\n }\n },\n)\n\n// Watch for changes in the source prop\nwatch(\n () => props.source,\n () => {\n toggleBodyClass(true)\n },\n)\n\n// Add class on mount if URL exists and modal is visible\nonMounted(() => {\n toggleBodyClass(true)\n})\n\n// Remove classes on unmount\nonUnmounted(() => {\n document.body.classList.remove('has-import-url')\n document.body.classList.remove('has-no-import-url')\n})\nconst themeStyleTag = computed(\n () =>\n activeWorkspace.value &&\n shouldShowIntegrationIcon.value &&\n props.integration &&\n `<style>${getThemeStyles(props.integration as IntegrationThemeId)}</style>`,\n)\n\nfunction handleImportFinished() {\n // If the integration is not a valid theme id, set the theme to default\n const isIntegrationThemeId = (value: string): value is IntegrationThemeId =>\n themeIds.includes(value as IntegrationThemeId)\n\n const integrationThemeId =\n props.integration && isIntegrationThemeId(props.integration)\n ? props.integration\n : 'default'\n\n if (shouldShowIntegrationIcon.value) {\n workspaceMutators.edit(\n activeWorkspace.value?.uid,\n 'themeId',\n integrationThemeId,\n )\n }\n emits('importFinished')\n}\n</script>\n\n<template>\n <ScalarModal\n size=\"full\"\n :state=\"modalState\">\n <div\n v-if=\"themeStyleTag\"\n v-html=\"themeStyleTag\" />\n <div\n class=\"relative flex h-screen flex-col justify-center overflow-hidden px-6 md:px-0\">\n <div class=\"section-flare\">\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n </div>\n <!-- Wait until the URL is fetched -->\n <div\n class=\"m-auto flex w-full max-w-[380px] flex-col items-center rounded-xl border px-8 py-8 transition-opacity\"\n :class=\"{ 'opacity-0': prefetchResult.state === 'loading' }\">\n <!-- Prefetch error -->\n <!-- Or: Document doesn't even have an OpenAPI/Swagger version, something is probably wrong -->\n <template\n v-if=\"\n prefetchResult.error && prefetchResult.state === 'idle' && !version\n \">\n <!-- Heading -->\n <div class=\"text-md mb-2 line-clamp-1 text-center font-bold\">\n No OpenAPI document found\n </div>\n <PrefetchError :url=\"prefetchResult?.input || props.source\" />\n </template>\n <!-- Success -->\n <template v-else>\n <!-- Integration Logo -->\n <div\n v-if=\"shouldShowIntegrationIcon\"\n class=\"mb-2 flex items-center justify-center p-1\">\n <div class=\"size-10 rounded-xl\">\n <IntegrationLogo :integration=\"integration\" />\n </div>\n </div>\n\n <!-- Company Logo -->\n <img\n v-else-if=\"companyLogo\"\n alt=\"Logo\"\n class=\"mb-2 w-full object-contain\"\n :src=\"companyLogo\" />\n\n <!-- Title -->\n <div\n v-if=\"!companyLogo\"\n class=\"text-md mb-2 line-clamp-1 text-center font-bold\">\n {{ title || 'Untitled Collection' }}\n </div>\n\n <div class=\"text-c-1 text-center text-sm font-medium text-balance\">\n Import the OpenAPI document to instantly send API requests. No\n signup required.\n </div>\n\n <!-- Actions -->\n <template v-if=\"version\">\n <div class=\"z-10 inline-flex w-full flex-col items-center gap-2\">\n <ImportNowButton\n :source=\"\n prefetchResult?.url ?? prefetchResult?.content ?? source\n \"\n variant=\"button\"\n :watchMode=\"watchMode\"\n @importFinished=\"handleImportFinished\" />\n </div>\n <!-- Select the workspace -->\n <div class=\"flex justify-center\">\n <div\n class=\"text-c-3 inline-flex items-center px-4 py-1 text-xs font-medium\">\n Import to: <WorkspaceSelector />\n </div>\n </div>\n <!-- Watch Mode -->\n <template v-if=\"prefetchResult?.url\">\n <div class=\"mt-5 overflow-hidden border-t pt-4 text-sm\">\n <div class=\"flex items-center justify-center\">\n <WatchModeToggle\n v-model=\"watchMode\"\n :disableToolTip=\"true\" />\n </div>\n <div\n class=\"text-c-3 pt-0 text-center text-xs font-medium text-balance\">\n Automatically update your API client when the OpenAPI document\n content changes.\n </div>\n </div>\n </template>\n </template>\n </template>\n </div>\n <!-- Download Link -->\n <div class=\"flex flex-col items-center justify-center pb-8\">\n <div class=\"flex flex-col items-center text-center\">\n <div\n class=\"mb-2 flex h-10 w-10 items-center justify-center rounded-[10px] border\">\n <a\n href=\"https://scalar.com/download\"\n target=\"_blank\">\n <ScalarIcon\n icon=\"Logo\"\n size=\"xl\" />\n </a>\n </div>\n <span class=\"text-c-2 text-sm leading-snug font-medium\">\n <a\n class=\"hover:text-c-1 mb-1 inline-block underline-offset-2\"\n href=\"https://scalar.com/download\"\n target=\"_blank\">\n Download Desktop App\n </a>\n <br />\n free · open-source · offline first\n </span>\n </div>\n </div>\n </div>\n </ScalarModal>\n</template>\n<style>\n@reference \"@/style.css\";\n\n@variant md {\n .has-no-import-url,\n .has-import-url {\n max-width: 100dvw;\n overflow-x: hidden;\n contain: paint;\n }\n .has-no-import-url .scalar-client > main {\n opacity: 1;\n background: var(--scalar-background-1);\n animation: transform-restore-layout ease-in-out 0.3s forwards;\n }\n .has-import-url .scalar-client > main {\n opacity: 0;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n animation: transform-fade-layout ease-in-out 0.3s forwards;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 12px;\n overflow: hidden;\n z-index: 10000;\n }\n .has-import-url .scalar-client .sidenav {\n display: none;\n }\n .has-no-import-url .scalar-app,\n .has-import-url .scalar-app {\n background: var(--scalar-background-1) !important;\n }\n}\n@keyframes transform-fade-layout {\n 0% {\n opacity: 0;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n }\n}\n@keyframes transform-restore-layout {\n 0% {\n opacity: 1;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n }\n 100% {\n opacity: 1;\n transform: scale(1) translate3d(0, 0, 0);\n }\n}\n.openapi-color {\n color: var(--scalar-color-green);\n}\n.section-flare {\n position: fixed;\n top: 0;\n right: -50dvw;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarIcon, ScalarModal, useModal } from '@scalar/components'\nimport { isLocalUrl } from '@scalar/oas-utils/helpers'\nimport { normalize } from '@scalar/openapi-parser'\nimport type { OpenAPI } from '@scalar/openapi-types'\nimport {\n getThemeStyles,\n themeIds,\n type IntegrationThemeId,\n} from '@scalar/themes'\nimport { useColorMode } from '@scalar/use-hooks/useColorMode'\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport WatchModeToggle from '@/components/CommandPalette/WatchModeToggle.vue'\nimport { useUrlPrefetcher } from '@/components/ImportCollection/hooks/useUrlPrefetcher'\nimport ImportNowButton from '@/components/ImportCollection/ImportNowButton.vue'\nimport IntegrationLogo from '@/components/ImportCollection/IntegrationLogo.vue'\nimport PrefetchError from '@/components/ImportCollection/PrefetchError.vue'\nimport { getOpenApiVersion } from '@/components/ImportCollection/utils/get-openapi-version'\nimport { isDocument } from '@/components/ImportCollection/utils/is-document'\nimport { isUrl } from '@/components/ImportCollection/utils/is-url'\nimport WorkspaceSelector from '@/components/ImportCollection/WorkspaceSelector.vue'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nconst props = defineProps<{\n source: string | null\n integration: string | null\n eventType: 'drop' | 'paste' | 'query' | null\n}>()\n\nconst emits = defineEmits<{\n (e: 'importFinished'): void\n}>()\n\nconst { activeWorkspace } = useActiveEntities()\nconst { workspaceMutators, events } = useWorkspace()\n\nconst { prefetchResult, prefetchUrl, resetPrefetchResult } = useUrlPrefetcher()\n\nconst modalState = useModal()\n\nconst watchMode = ref<boolean>(true)\n\n/** Close modal when a keyboard shortcut is pressed */\nevents.hotKeys.on(() => modalState.hide())\n\n/** Try to make the retrieved content an OpenAPI document */\nconst openApiDocument = computed(() => {\n try {\n return normalize(\n prefetchResult.content || props.source || '',\n ) as OpenAPI.Document\n } catch {\n return undefined\n }\n})\n\n/** Title from the OpenAPI document */\nconst title = computed(() => openApiDocument.value?.info?.title)\n\n/** The OpenAPI/Swagger version */\nconst version = computed(() =>\n getOpenApiVersion(prefetchResult.content || props.source || ''),\n)\n\nconst { darkLightMode } = useColorMode()\nconst { currentRoute } = useRouter()\n\n/** Grab light and dark logos from the url query params */\nconst companyLogo = computed(() => {\n try {\n const query = currentRoute.value.query\n const logo =\n darkLightMode.value === 'dark' ? query.dark_logo : query.light_logo\n\n if (logo) {\n return decodeURIComponent(logo as string)\n }\n } catch {\n // No harm no foul\n }\n\n return null\n})\n\n/** Open/close modal on events */\nwatch(\n () => props.source,\n async (value) => {\n resetPrefetchResult()\n\n if (isUrl(value)) {\n // For drop & paste events only:\n const isDropOrPasteEvent =\n props.eventType && ['paste', 'drop'].includes(props.eventType)\n\n if (isDropOrPasteEvent) {\n // Check whether the URL is pointing to an OpenAPI document\n const { error } = await prefetchUrl(\n value,\n activeWorkspace.value?.proxyUrl,\n )\n\n if (error) {\n modalState.hide()\n } else {\n modalState.show()\n }\n\n return\n }\n\n // Query parameters:\n void prefetchUrl(value, activeWorkspace.value?.proxyUrl)\n\n modalState.show()\n\n return\n }\n\n if (!value) {\n modalState.hide()\n } else if (isDocument(value) && getOpenApiVersion(value)) {\n modalState.show()\n } else {\n modalState.hide()\n }\n },\n)\n\nconst hasUrl = computed(() => !!props.source && isUrl(props.source))\nconst hasContent = computed(() => !!props.source && isDocument(props.source))\n\n/** Show the integration icon only for local URLs */\nconst shouldShowIntegrationIcon = computed(() => {\n return prefetchResult.url && isLocalUrl(prefetchResult.url)\n})\n\n// Function to add/remove class from body\nconst toggleBodyClass = (add: boolean) => {\n document.body.classList.remove('has-no-import-url')\n\n if (add && (hasUrl.value || hasContent.value) && modalState.open) {\n document.body.classList.add('has-import-url')\n } else {\n document.body.classList.remove('has-import-url')\n }\n}\n\n/** Toggles the 'has-import-url' class on the body element */\nconst closeModal = () => {\n document.body.classList.remove('has-import-url')\n document.body.classList.add('has-no-import-url')\n}\n\n// Watch for changes in the modal state\nwatch(\n () => modalState.open,\n (isOpen) => {\n if (isOpen) {\n toggleBodyClass(true)\n } else {\n closeModal()\n }\n },\n)\n\n// Watch for changes in the source prop\nwatch(\n () => props.source,\n () => {\n toggleBodyClass(true)\n },\n)\n\n// Add class on mount if URL exists and modal is visible\nonMounted(() => {\n toggleBodyClass(true)\n})\n\n// Remove classes on unmount\nonUnmounted(() => {\n document.body.classList.remove('has-import-url')\n document.body.classList.remove('has-no-import-url')\n})\nconst themeStyleTag = computed(\n () =>\n activeWorkspace.value &&\n shouldShowIntegrationIcon.value &&\n props.integration &&\n `<style>${getThemeStyles(props.integration as IntegrationThemeId)}</style>`,\n)\n\nfunction handleImportFinished() {\n // If the integration is not a valid theme id, set the theme to default\n const isIntegrationThemeId = (value: string): value is IntegrationThemeId =>\n themeIds.includes(value as IntegrationThemeId)\n\n const integrationThemeId =\n props.integration && isIntegrationThemeId(props.integration)\n ? props.integration\n : 'default'\n\n if (shouldShowIntegrationIcon.value) {\n workspaceMutators.edit(\n activeWorkspace.value?.uid,\n 'themeId',\n integrationThemeId,\n )\n }\n emits('importFinished')\n}\n</script>\n\n<template>\n <ScalarModal\n size=\"full\"\n :state=\"modalState\">\n <div\n v-if=\"themeStyleTag\"\n v-html=\"themeStyleTag\" />\n <div\n class=\"relative flex h-screen flex-col justify-center overflow-hidden px-6 md:px-0\">\n <div class=\"section-flare\">\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n <div class=\"section-flare-item\" />\n </div>\n <!-- Wait until the URL is fetched -->\n <div\n class=\"m-auto flex w-full max-w-[380px] flex-col items-center rounded-xl border px-8 py-8 transition-opacity\"\n :class=\"{ 'opacity-0': prefetchResult.state === 'loading' }\">\n <!-- Prefetch error -->\n <!-- Or: Document doesn't even have an OpenAPI/Swagger version, something is probably wrong -->\n <template\n v-if=\"\n prefetchResult.error && prefetchResult.state === 'idle' && !version\n \">\n <!-- Heading -->\n <div class=\"text-md mb-2 line-clamp-1 text-center font-bold\">\n No OpenAPI document found\n </div>\n <PrefetchError :url=\"prefetchResult?.input || props.source\" />\n </template>\n <!-- Success -->\n <template v-else>\n <!-- Integration Logo -->\n <div\n v-if=\"shouldShowIntegrationIcon\"\n class=\"mb-2 flex items-center justify-center p-1\">\n <div class=\"size-10 rounded-xl\">\n <IntegrationLogo :integration=\"integration\" />\n </div>\n </div>\n\n <!-- Company Logo -->\n <img\n v-else-if=\"companyLogo\"\n alt=\"Logo\"\n class=\"mb-2 w-full object-contain\"\n :src=\"companyLogo\" />\n\n <!-- Title -->\n <div\n v-if=\"!companyLogo\"\n class=\"text-md mb-2 line-clamp-1 text-center font-bold\">\n {{ title || 'Untitled Collection' }}\n </div>\n\n <div class=\"text-c-1 text-center text-sm font-medium text-balance\">\n Import the OpenAPI document to instantly send API requests. No\n signup required.\n </div>\n\n <!-- Actions -->\n <template v-if=\"version\">\n <div class=\"z-10 inline-flex w-full flex-col items-center gap-2\">\n <ImportNowButton\n :source=\"\n prefetchResult?.url ?? prefetchResult?.content ?? source\n \"\n variant=\"button\"\n :watchMode=\"watchMode\"\n @importFinished=\"handleImportFinished\" />\n </div>\n <!-- Select the workspace -->\n <div class=\"flex justify-center\">\n <div\n class=\"text-c-3 inline-flex items-center px-4 py-1 text-xs font-medium\">\n Import to: <WorkspaceSelector />\n </div>\n </div>\n <!-- Watch Mode -->\n <template v-if=\"prefetchResult?.url\">\n <div class=\"mt-5 overflow-hidden border-t pt-4 text-sm\">\n <div class=\"flex items-center justify-center\">\n <WatchModeToggle\n v-model=\"watchMode\"\n :disableToolTip=\"true\" />\n </div>\n <div\n class=\"text-c-3 pt-0 text-center text-xs font-medium text-balance\">\n Automatically update your API client when the OpenAPI document\n content changes.\n </div>\n </div>\n </template>\n </template>\n </template>\n </div>\n <!-- Download Link -->\n <div class=\"flex flex-col items-center justify-center pb-8\">\n <div class=\"flex flex-col items-center text-center\">\n <div\n class=\"mb-2 flex h-10 w-10 items-center justify-center rounded-[10px] border\">\n <a\n href=\"https://scalar.com/download\"\n target=\"_blank\">\n <ScalarIcon\n icon=\"Logo\"\n size=\"xl\" />\n </a>\n </div>\n <span class=\"text-c-2 text-sm leading-snug font-medium\">\n <a\n class=\"hover:text-c-1 mb-1 inline-block underline-offset-2\"\n href=\"https://scalar.com/download\"\n target=\"_blank\">\n Download Desktop App\n </a>\n <br />\n free · open-source · offline first\n </span>\n </div>\n </div>\n </div>\n </ScalarModal>\n</template>\n<style>\n@reference \"@/style.css\";\n\n@variant md {\n .has-no-import-url,\n .has-import-url {\n max-width: 100dvw;\n overflow-x: hidden;\n contain: paint;\n }\n .has-no-import-url .scalar-client > main {\n opacity: 1;\n background: var(--scalar-background-1);\n animation: transform-restore-layout ease-in-out 0.3s forwards;\n }\n .has-import-url .scalar-client > main {\n opacity: 0;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n animation: transform-fade-layout ease-in-out 0.3s forwards;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 12px;\n overflow: hidden;\n z-index: 10000;\n }\n .has-import-url .scalar-client .sidenav {\n display: none;\n }\n .has-no-import-url .scalar-app,\n .has-import-url .scalar-app {\n background: var(--scalar-background-1) !important;\n }\n}\n@keyframes transform-fade-layout {\n 0% {\n opacity: 0;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n }\n}\n@keyframes transform-restore-layout {\n 0% {\n opacity: 1;\n transform: scale(0.85) translate3d(calc(50dvw + 80px), 0, 0);\n }\n 100% {\n opacity: 1;\n transform: scale(1) translate3d(0, 0, 0);\n }\n}\n.openapi-color {\n color: var(--scalar-color-green);\n}\n.section-flare {\n position: fixed;\n top: 0;\n right: -50dvw;\n}\n</style>\n","<script lang=\"ts\" setup>\n/* eslint-disable vue/valid-template-root */\nimport { onBeforeUnmount, onMounted } from 'vue'\n\nconst emit = defineEmits<{\n (e: 'input', value: string, integration: null, eventType: 'paste'): void\n}>()\n\n// Register event listener\nonMounted(() => {\n document.addEventListener('paste', handlePaste)\n})\n\n// Unregister event listener\nonBeforeUnmount(() => {\n document.removeEventListener('paste', handlePaste)\n})\n\n// Handle the paste event\nfunction handlePaste(event: ClipboardEvent) {\n // Ignore paste events in input, textarea, or contenteditable elements\n const target = event.target as HTMLElement\n\n // Check if we're inside a CodeMirror instance\n const isCodeMirror = Boolean(\n document.activeElement?.classList.contains('cm-content'),\n )\n\n if (\n target &&\n (target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n isCodeMirror)\n ) {\n return\n }\n\n // Emit the clipboard text content\n if (event.clipboardData) {\n const pastedText = event.clipboardData.getData('text')\n\n if (pastedText) {\n emit('input', pastedText, null, 'paste')\n }\n }\n}\n</script>\n\n<template></template>\n","<script lang=\"ts\" setup>\n/* eslint-disable vue/valid-template-root */\nimport { onBeforeUnmount, onMounted } from 'vue'\n\nconst emit = defineEmits<{\n (e: 'input', value: string, integration: null, eventType: 'paste'): void\n}>()\n\n// Register event listener\nonMounted(() => {\n document.addEventListener('paste', handlePaste)\n})\n\n// Unregister event listener\nonBeforeUnmount(() => {\n document.removeEventListener('paste', handlePaste)\n})\n\n// Handle the paste event\nfunction handlePaste(event: ClipboardEvent) {\n // Ignore paste events in input, textarea, or contenteditable elements\n const target = event.target as HTMLElement\n\n // Check if we're inside a CodeMirror instance\n const isCodeMirror = Boolean(\n document.activeElement?.classList.contains('cm-content'),\n )\n\n if (\n target &&\n (target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n isCodeMirror)\n ) {\n return\n }\n\n // Emit the clipboard text content\n if (event.clipboardData) {\n const pastedText = event.clipboardData.getData('text')\n\n if (pastedText) {\n emit('input', pastedText, null, 'paste')\n }\n }\n}\n</script>\n\n<template></template>\n","<script lang=\"ts\" setup>\n/* eslint-disable vue/valid-template-root */\nimport { onMounted } from 'vue'\n\nconst emit = defineEmits<{\n (\n e: 'input',\n url: string,\n integration: string | null,\n eventType: 'query',\n ): void\n}>()\n\n// Check URL query parameters for 'url' and 'integration' values\nonMounted(() => {\n const queryParameters = new URLSearchParams(window.location.search)\n\n const urlQueryParameter = queryParameters.get('url')\n\n if (urlQueryParameter) {\n emit(\n 'input',\n urlQueryParameter,\n queryParameters.get('integration'),\n 'query',\n )\n }\n})\n</script>\n\n<template></template>\n","<script lang=\"ts\" setup>\n/* eslint-disable vue/valid-template-root */\nimport { onMounted } from 'vue'\n\nconst emit = defineEmits<{\n (\n e: 'input',\n url: string,\n integration: string | null,\n eventType: 'query',\n ): void\n}>()\n\n// Check URL query parameters for 'url' and 'integration' values\nonMounted(() => {\n const queryParameters = new URLSearchParams(window.location.search)\n\n const urlQueryParameter = queryParameters.get('url')\n\n if (urlQueryParameter) {\n emit(\n 'input',\n urlQueryParameter,\n queryParameters.get('integration'),\n 'query',\n )\n }\n})\n</script>\n\n<template></template>\n","<script lang=\"ts\" setup>\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { nextTick, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { workspaceStoreIsEmpty } from '@/components/ImportCollection/utils/workspace-store-is-empty'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport DropEventListener from './DropEventListener.vue'\nimport ImportCollectionModal from './ImportCollectionModal.vue'\nimport PasteEventListener from './PasteEventListener.vue'\nimport UrlQueryParameterChecker from './UrlQueryParameterChecker.vue'\nimport { importCollection } from './utils/import-collection'\n\nconst store = useWorkspace()\n\n/** Source to import from */\nconst source = ref<string | null>(null)\n\nconst integration = ref<string | null>(null)\n\nconst eventType = ref<'paste' | 'drop' | 'query' | null>(null)\n\n/** Reset the data when the modal was closed */\nasync function resetData() {\n source.value = null\n integration.value = null\n eventType.value = null\n\n await nextTick()\n}\n\n/** Receive data from the paste event listener */\nasync function handleInput(\n newSource: string,\n newIntegration: string | null = null,\n newEventType: 'paste' | 'drop' | 'query',\n) {\n // Reset, to trigger the modal to reopen\n await resetData()\n\n // We skip the modal and directly import if the store is empty.\n if (workspaceStoreIsEmpty(store)) {\n console.info('Workspace store is empty, directly importing:', newSource)\n\n if (await handleImportCollection(newSource)) {\n return\n }\n\n console.warn('Failed to import the collection from:', newSource)\n }\n\n // Open the modal\n source.value = newSource\n integration.value = newIntegration\n eventType.value = newEventType\n}\n\nconst router = useRouter()\nconst { activeWorkspace } = useActiveEntities()\nconst { toast } = useToasts()\n\nfunction handleImportCollection(\n source: string | null | undefined,\n): Promise<boolean> {\n if (!source) {\n return Promise.resolve(false)\n }\n\n return new Promise<boolean>((resolve) => {\n void importCollection({\n store,\n workspace: activeWorkspace.value,\n source,\n // Use watch mode by default.\n watchMode: true,\n onSuccess(collection: Collection | undefined) {\n if (collection) {\n redirectToFirstRequestInCollection(collection)\n toast('Import successful', 'info')\n resolve(true)\n\n return\n }\n\n // If collection is undefined, consider it a failure\n toast('Import failed: No collection was created', 'error')\n\n resolve(false)\n },\n onError(error) {\n console.error('[importCollection]', error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n\n resolve(false)\n },\n })\n })\n}\n\nfunction redirectToFirstRequestInCollection(collection?: Collection) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: collection?.requests[0],\n },\n })\n}\n</script>\n\n<template>\n <!-- Modal -->\n <ImportCollectionModal\n :eventType=\"eventType\"\n :integration=\"integration\"\n :source=\"source\"\n @importFinished=\"resetData\" />\n\n <!-- Event listeners-->\n <PasteEventListener @input=\"handleInput\" />\n <DropEventListener @input=\"handleInput\" />\n <UrlQueryParameterChecker @input=\"handleInput\" />\n\n <!-- Wrapped content -->\n <slot />\n</template>\n","<script lang=\"ts\" setup>\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { nextTick, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { workspaceStoreIsEmpty } from '@/components/ImportCollection/utils/workspace-store-is-empty'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport DropEventListener from './DropEventListener.vue'\nimport ImportCollectionModal from './ImportCollectionModal.vue'\nimport PasteEventListener from './PasteEventListener.vue'\nimport UrlQueryParameterChecker from './UrlQueryParameterChecker.vue'\nimport { importCollection } from './utils/import-collection'\n\nconst store = useWorkspace()\n\n/** Source to import from */\nconst source = ref<string | null>(null)\n\nconst integration = ref<string | null>(null)\n\nconst eventType = ref<'paste' | 'drop' | 'query' | null>(null)\n\n/** Reset the data when the modal was closed */\nasync function resetData() {\n source.value = null\n integration.value = null\n eventType.value = null\n\n await nextTick()\n}\n\n/** Receive data from the paste event listener */\nasync function handleInput(\n newSource: string,\n newIntegration: string | null = null,\n newEventType: 'paste' | 'drop' | 'query',\n) {\n // Reset, to trigger the modal to reopen\n await resetData()\n\n // We skip the modal and directly import if the store is empty.\n if (workspaceStoreIsEmpty(store)) {\n console.info('Workspace store is empty, directly importing:', newSource)\n\n if (await handleImportCollection(newSource)) {\n return\n }\n\n console.warn('Failed to import the collection from:', newSource)\n }\n\n // Open the modal\n source.value = newSource\n integration.value = newIntegration\n eventType.value = newEventType\n}\n\nconst router = useRouter()\nconst { activeWorkspace } = useActiveEntities()\nconst { toast } = useToasts()\n\nfunction handleImportCollection(\n source: string | null | undefined,\n): Promise<boolean> {\n if (!source) {\n return Promise.resolve(false)\n }\n\n return new Promise<boolean>((resolve) => {\n void importCollection({\n store,\n workspace: activeWorkspace.value,\n source,\n // Use watch mode by default.\n watchMode: true,\n onSuccess(collection: Collection | undefined) {\n if (collection) {\n redirectToFirstRequestInCollection(collection)\n toast('Import successful', 'info')\n resolve(true)\n\n return\n }\n\n // If collection is undefined, consider it a failure\n toast('Import failed: No collection was created', 'error')\n\n resolve(false)\n },\n onError(error) {\n console.error('[importCollection]', error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n\n resolve(false)\n },\n })\n })\n}\n\nfunction redirectToFirstRequestInCollection(collection?: Collection) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: collection?.requests[0],\n },\n })\n}\n</script>\n\n<template>\n <!-- Modal -->\n <ImportCollectionModal\n :eventType=\"eventType\"\n :integration=\"integration\"\n :source=\"source\"\n @importFinished=\"resetData\" />\n\n <!-- Event listeners-->\n <PasteEventListener @input=\"handleInput\" />\n <DropEventListener @input=\"handleInput\" />\n <UrlQueryParameterChecker @input=\"handleInput\" />\n\n <!-- Wrapped content -->\n <slot />\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { computed, createBlock, defineComponent, openBlock, unref } from "vue";
2
+ import { ScalarIcon } from "@scalar/components";
3
+ //#endregion
4
+ //#region src/components/ImportCollection/IntegrationLogo.vue
5
+ var IntegrationLogo_default = /* @__PURE__ */ defineComponent({
6
+ __name: "IntegrationLogo",
7
+ props: { integration: {} },
8
+ setup(__props) {
9
+ const props = __props;
10
+ /** All available framework logos */
11
+ const availableIntegrationIcons = [
12
+ "adonisjs",
13
+ "astro",
14
+ "dotnet",
15
+ "elysiajs",
16
+ "express",
17
+ "fastapi",
18
+ "fastify",
19
+ "go",
20
+ "hono",
21
+ "laravel",
22
+ "litestar",
23
+ "nestjs",
24
+ "nextjs",
25
+ "nitro",
26
+ "nuxt",
27
+ "platformatic",
28
+ "react",
29
+ "rust",
30
+ "svelte"
31
+ ];
32
+ /** Icon for the @scalar/api-reference integration the user is coming from */
33
+ const integrationIcon = computed(() => {
34
+ const defaultIcon = "Openapi";
35
+ const integration = props.integration?.toLocaleLowerCase();
36
+ if (!integration) return defaultIcon;
37
+ const capitalized = integration.charAt(0).toUpperCase() + integration.slice(1);
38
+ return availableIntegrationIcons.includes(integration) ? capitalized : defaultIcon;
39
+ });
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createBlock(unref(ScalarIcon), {
42
+ class: "h-full w-full rounded-lg",
43
+ logo: integrationIcon.value
44
+ }, null, 8, ["logo"]);
45
+ };
46
+ }
47
+ });
48
+ //#endregion
49
+ export { IntegrationLogo_default as t };
50
+
51
+ //# sourceMappingURL=IntegrationLogo-B9EDW8db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntegrationLogo-B9EDW8db.js","names":[],"sources":["../src/components/ImportCollection/IntegrationLogo.vue","../src/components/ImportCollection/IntegrationLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { ApiReferenceConfiguration } from '@scalar/types/api-reference'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n integration: string | null\n}>()\n\n/** All available framework logos */\nconst availableIntegrationIcons: Exclude<\n ApiReferenceConfiguration['_integration'],\n null | undefined | 'html'\n>[] = [\n 'adonisjs',\n 'astro',\n 'dotnet',\n 'elysiajs',\n 'express',\n 'fastapi',\n 'fastify',\n 'go',\n 'hono',\n 'laravel',\n 'litestar',\n 'nestjs',\n 'nextjs',\n 'nitro',\n 'nuxt',\n 'platformatic',\n 'react',\n 'rust',\n 'svelte',\n]\n\n/** Icon for the @scalar/api-reference integration the user is coming from */\nconst integrationIcon = computed(() => {\n const defaultIcon = 'Openapi' as const\n const integration = props.integration?.toLocaleLowerCase()\n\n if (!integration) {\n return defaultIcon\n }\n\n const capitalized = integration.charAt(0).toUpperCase() + integration.slice(1)\n\n return availableIntegrationIcons.includes(integration as any)\n ? (capitalized as Capitalize<(typeof availableIntegrationIcons)[number]>)\n : defaultIcon\n})\n</script>\n\n<template>\n <ScalarIcon\n class=\"h-full w-full rounded-lg\"\n :logo=\"integrationIcon\" />\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { ApiReferenceConfiguration } from '@scalar/types/api-reference'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n integration: string | null\n}>()\n\n/** All available framework logos */\nconst availableIntegrationIcons: Exclude<\n ApiReferenceConfiguration['_integration'],\n null | undefined | 'html'\n>[] = [\n 'adonisjs',\n 'astro',\n 'dotnet',\n 'elysiajs',\n 'express',\n 'fastapi',\n 'fastify',\n 'go',\n 'hono',\n 'laravel',\n 'litestar',\n 'nestjs',\n 'nextjs',\n 'nitro',\n 'nuxt',\n 'platformatic',\n 'react',\n 'rust',\n 'svelte',\n]\n\n/** Icon for the @scalar/api-reference integration the user is coming from */\nconst integrationIcon = computed(() => {\n const defaultIcon = 'Openapi' as const\n const integration = props.integration?.toLocaleLowerCase()\n\n if (!integration) {\n return defaultIcon\n }\n\n const capitalized = integration.charAt(0).toUpperCase() + integration.slice(1)\n\n return availableIntegrationIcons.includes(integration as any)\n ? (capitalized as Capitalize<(typeof availableIntegrationIcons)[number]>)\n : defaultIcon\n})\n</script>\n\n<template>\n <ScalarIcon\n class=\"h-full w-full rounded-lg\"\n :logo=\"integrationIcon\" />\n</template>\n"],"mappings":";;;;;;;;ECKA,MAAM,QAAQ;;EAKd,MAAM,4BAGA;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACF;;EAGA,MAAM,kBAAkB,eAAe;GACrC,MAAM,cAAc;GACpB,MAAM,cAAc,MAAM,aAAa,mBAAkB;AAEzD,OAAI,CAAC,YACH,QAAO;GAGT,MAAM,cAAc,YAAY,OAAO,EAAE,CAAC,aAAa,GAAG,YAAY,MAAM,EAAC;AAE7E,UAAO,0BAA0B,SAAS,YAAkB,GACvD,cACD;IACL;;uBAIC,YAE4B,MAAA,WAAA,EAAA;IAD1B,OAAM;IACL,MAAM,gBAAA"}
@@ -0,0 +1,281 @@
1
+ import { n as ROUTES, t as TheCommandPalette_default } from "./CommandPalette-BiA0IgO8.js";
2
+ import { T as PathId, w as useActiveEntities } from "./store-DaPoVtIS.js";
3
+ import { a as useLayout } from "./useSidebar-DLTwHDI-.js";
4
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BmmBcIzD.js";
5
+ import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
6
+ import { ScalarDropdown, ScalarDropdownItem, ScalarIcon } from "@scalar/components";
7
+ import { RouterLink, useRouter } from "vue-router";
8
+ //#endregion
9
+ //#region src/components/SideNav/SideNavLink.vue
10
+ var SideNavLink_default = /* @__PURE__ */ defineComponent({
11
+ __name: "SideNavLink",
12
+ props: {
13
+ is: {},
14
+ active: { type: Boolean },
15
+ icon: {}
16
+ },
17
+ setup(__props) {
18
+ const { layout } = useLayout();
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createBlock(resolveDynamicComponent(__props.is ?? "a"), { class: normalizeClass(["hover:bg-b-3 hover:dark:bg-b-2 flex max-w-[37px] min-w-[37px] items-center justify-center rounded-lg p-2 no-underline", {
21
+ "bg-b-3 dark:bg-b-2 text-c-1 transition-none hover:cursor-default": __props.active,
22
+ "sm:max-w-max sm:min-w-max sm:rounded sm:py-1.5": unref(layout) === "web"
23
+ }]) }, {
24
+ default: withCtx(() => [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(unref(ScalarIcon), {
25
+ class: normalizeClass(unref(layout) === "web" ? "sm:hidden" : ""),
26
+ icon: __props.icon,
27
+ thickness: "1.5"
28
+ }, null, 8, ["class", "icon"])]), createElementVNode("span", { class: normalizeClass(["sr-only text-sm font-medium", { "sm:not-sr-only": unref(layout) === "web" }]) }, [renderSlot(_ctx.$slots, "default")], 2)]),
29
+ _: 3
30
+ }, 8, ["class"]);
31
+ };
32
+ }
33
+ });
34
+ //#endregion
35
+ //#region src/components/SideNav/DownloadAppButton.vue
36
+ var DownloadAppButton_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
37
+ __name: "DownloadAppButton",
38
+ setup(__props) {
39
+ const { layout } = useLayout();
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createBlock(SideNavLink_default, {
42
+ class: "download-app-button gap-2 !px-3 !py-1.5 sm:px-3",
43
+ href: "https://scalar.com/download?utm_source=web_client&utm_medium=download_button&utm_campaign=topnav",
44
+ icon: "Download",
45
+ target: "_blank"
46
+ }, {
47
+ icon: withCtx(() => [createVNode(unref(ScalarIcon), {
48
+ icon: "Download",
49
+ size: "sm",
50
+ thickness: "2"
51
+ })]),
52
+ default: withCtx(() => [createElementVNode("span", { class: normalizeClass(["sr-only text-sm font-medium", { "sm:not-sr-only": unref(layout) === "web" }]) }, " Download App ", 2)]),
53
+ _: 1
54
+ });
55
+ };
56
+ }
57
+ }), [["__scopeId", "data-v-cb45fa05"]]);
58
+ //#endregion
59
+ //#region src/components/SideNav/SideHelp.vue?vue&type=script&setup=true&lang.ts
60
+ var _hoisted_1$1 = {
61
+ class: "block no-underline",
62
+ href: "https://discord.gg/scalar",
63
+ target: "_blank"
64
+ };
65
+ var _hoisted_2$1 = { class: "flex items-center justify-center" };
66
+ var _hoisted_3$1 = {
67
+ class: "block no-underline",
68
+ href: "https://github.com/scalar/scalar",
69
+ target: "_blank"
70
+ };
71
+ var _hoisted_4 = { class: "flex items-center justify-center" };
72
+ var _hoisted_5 = {
73
+ class: "block no-underline",
74
+ href: "mailto:support@scalar.com",
75
+ target: "_blank"
76
+ };
77
+ var _hoisted_6 = { class: "flex items-center justify-center" };
78
+ var _hoisted_7 = {
79
+ class: "block no-underline",
80
+ href: "https://scalar.com/changelog",
81
+ target: "_blank"
82
+ };
83
+ var _hoisted_8 = { class: "flex items-center justify-center" };
84
+ var _hoisted_9 = {
85
+ class: "block no-underline",
86
+ href: "https://github.com/scalar/scalar/issues/2669",
87
+ target: "_blank"
88
+ };
89
+ var _hoisted_10 = { class: "flex items-center justify-center" };
90
+ //#endregion
91
+ //#region src/components/SideNav/SideHelp.vue
92
+ var SideHelp_default = /* @__PURE__ */ defineComponent({
93
+ __name: "SideHelp",
94
+ setup(__props) {
95
+ return (_ctx, _cache) => {
96
+ return openBlock(), createBlock(unref(ScalarDropdown), {
97
+ class: "max-w-[150px]",
98
+ placement: "top-end"
99
+ }, {
100
+ items: withCtx(() => [
101
+ _cache[6] || (_cache[6] = createElementVNode("span", { class: "text-c-2 px-2.5 py-1.5 text-xs font-medium" }, "Support", -1)),
102
+ createElementVNode("a", _hoisted_1$1, [createVNode(unref(ScalarDropdownItem), { class: "flex w-full items-center gap-1.5" }, {
103
+ default: withCtx(() => [createElementVNode("div", _hoisted_2$1, [createVNode(unref(ScalarIcon), {
104
+ icon: "Discord",
105
+ size: "xs",
106
+ thickness: "1.75"
107
+ })]), _cache[1] || (_cache[1] = createElementVNode("span", null, "Discord", -1))]),
108
+ _: 1
109
+ })]),
110
+ createElementVNode("a", _hoisted_3$1, [createVNode(unref(ScalarDropdownItem), { class: "flex w-full items-center gap-1.5" }, {
111
+ default: withCtx(() => [createElementVNode("div", _hoisted_4, [createVNode(unref(ScalarIcon), {
112
+ icon: "GitHubLine",
113
+ size: "xs",
114
+ thickness: "1.75"
115
+ })]), _cache[2] || (_cache[2] = createElementVNode("span", null, "GitHub", -1))]),
116
+ _: 1
117
+ })]),
118
+ createElementVNode("a", _hoisted_5, [createVNode(unref(ScalarDropdownItem), { class: "flex w-full items-center gap-1.5" }, {
119
+ default: withCtx(() => [createElementVNode("div", _hoisted_6, [createVNode(unref(ScalarIcon), {
120
+ icon: "Email",
121
+ size: "xs"
122
+ })]), _cache[3] || (_cache[3] = createElementVNode("span", null, "Email", -1))]),
123
+ _: 1
124
+ })]),
125
+ _cache[7] || (_cache[7] = createElementVNode("span", { class: "text-c-2 px-2.5 py-1.5 text-xs font-medium" }, "Product", -1)),
126
+ createElementVNode("a", _hoisted_7, [createVNode(unref(ScalarDropdownItem), { class: "flex w-full items-center gap-1.5" }, {
127
+ default: withCtx(() => [createElementVNode("div", _hoisted_8, [createVNode(unref(ScalarIcon), {
128
+ icon: "Changelog",
129
+ size: "xs",
130
+ thickness: "1.75"
131
+ })]), _cache[4] || (_cache[4] = createElementVNode("span", null, "Changelog", -1))]),
132
+ _: 1
133
+ })]),
134
+ createElementVNode("a", _hoisted_9, [createVNode(unref(ScalarDropdownItem), { class: "flex w-full items-center gap-1.5" }, {
135
+ default: withCtx(() => [createElementVNode("div", _hoisted_10, [createVNode(unref(ScalarIcon), {
136
+ icon: "Roadmap",
137
+ size: "xs",
138
+ thickness: "1.75"
139
+ })]), _cache[5] || (_cache[5] = createElementVNode("span", null, "Roadmap", -1))]),
140
+ _: 1
141
+ })])
142
+ ]),
143
+ default: withCtx(() => [createVNode(SideNavLink_default, {
144
+ is: "button",
145
+ icon: "Help",
146
+ type: "button"
147
+ }, {
148
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" About ", -1)])]),
149
+ _: 1
150
+ })]),
151
+ _: 1
152
+ });
153
+ };
154
+ }
155
+ });
156
+ //#endregion
157
+ //#region src/components/SideNav/SideNavGroup.vue
158
+ var SideNavGroup_default = /* @__PURE__ */ defineComponent({
159
+ __name: "SideNavGroup",
160
+ setup(__props) {
161
+ const { layout } = useLayout();
162
+ return (_ctx, _cache) => {
163
+ return openBlock(), createElementBlock("ul", { class: normalizeClass(["flex gap-1.5", unref(layout) === "web" ? "sm:gap-px sm:px-2" : "sm:flex-col"]) }, [renderSlot(_ctx.$slots, "default")], 2);
164
+ };
165
+ }
166
+ });
167
+ //#endregion
168
+ //#region src/components/SideNav/SideNavRouterLink.vue
169
+ var SideNavRouterLink_default = /* @__PURE__ */ defineComponent({
170
+ __name: "SideNavRouterLink",
171
+ props: {
172
+ icon: {},
173
+ to: {},
174
+ active: { type: Boolean }
175
+ },
176
+ setup(__props) {
177
+ return (_ctx, _cache) => {
178
+ return openBlock(), createBlock(SideNavLink_default, {
179
+ is: unref(RouterLink),
180
+ active: Boolean(__props.active),
181
+ icon: __props.icon,
182
+ to: __props.to
183
+ }, {
184
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
185
+ _: 3
186
+ }, 8, [
187
+ "is",
188
+ "active",
189
+ "icon",
190
+ "to"
191
+ ]);
192
+ };
193
+ }
194
+ });
195
+ //#endregion
196
+ //#region src/components/SideNav/SideNav.vue?vue&type=script&setup=true&lang.ts
197
+ var _hoisted_1 = { class: "flex items-center" };
198
+ var _hoisted_2 = { class: "flex items-center" };
199
+ var _hoisted_3 = {
200
+ key: 0,
201
+ class: "hidden items-center justify-center sm:ml-1.5 sm:flex"
202
+ };
203
+ //#endregion
204
+ //#region src/components/SideNav/SideNav.vue
205
+ var SideNav_default = /* @__PURE__ */ defineComponent({
206
+ __name: "SideNav",
207
+ setup(__props) {
208
+ const { currentRoute } = useRouter();
209
+ const { layout } = useLayout();
210
+ const { activeWorkspace } = useActiveEntities();
211
+ return (_ctx, _cache) => {
212
+ return openBlock(), createElementBlock("nav", {
213
+ "aria-label": "App Navigation",
214
+ class: normalizeClass(["app-drag-region flex items-center justify-center gap-1.5 pt-2 sm:justify-between", unref(layout) === "web" ? "h-header border !pt-0" : "px-2 pb-2 sm:flex-col"]),
215
+ role: "navigation"
216
+ }, [createVNode(SideNavGroup_default, { class: "app-no-drag-region" }, {
217
+ default: withCtx(() => [createElementVNode("a", {
218
+ class: normalizeClass(["mr-3 ml-1 hidden items-center", { "sm:flex": unref(layout) === "web" }]),
219
+ href: "https://www.scalar.com",
220
+ target: "_blank"
221
+ }, [createVNode(unref(ScalarIcon), {
222
+ icon: "Logo",
223
+ size: "xl"
224
+ })], 2), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(ROUTES).filter((route) => route.to.name !== "settings.default"), ({ icon, to, displayName }, i) => {
225
+ return openBlock(), createElementBlock("li", { key: i }, [createVNode(SideNavRouterLink_default, {
226
+ active: Boolean(unref(currentRoute).name === displayName.toLowerCase() || displayName.toLowerCase() === "environment" && unref(currentRoute).name === "environment.collection"),
227
+ icon,
228
+ to: {
229
+ ...to,
230
+ params: { [unref(PathId).Workspace]: unref(activeWorkspace)?.uid ?? "default" }
231
+ }
232
+ }, {
233
+ default: withCtx(() => [createTextVNode(toDisplayString(displayName), 1)]),
234
+ _: 2
235
+ }, 1032, [
236
+ "active",
237
+ "icon",
238
+ "to"
239
+ ])]);
240
+ }), 128))]),
241
+ _: 1
242
+ }), createVNode(SideNavGroup_default, { class: "app-no-drag-region" }, {
243
+ default: withCtx(() => [
244
+ createElementVNode("li", _hoisted_1, [createVNode(SideNavRouterLink_default, {
245
+ active: unref(currentRoute).name === "settings",
246
+ icon: "Settings",
247
+ to: {
248
+ name: `settings.default`,
249
+ params: { [unref(PathId).Workspace]: unref(activeWorkspace)?.uid }
250
+ }
251
+ }, {
252
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Settings ", -1)])]),
253
+ _: 1
254
+ }, 8, ["active", "to"])]),
255
+ createElementVNode("li", _hoisted_2, [createVNode(SideHelp_default)]),
256
+ unref(layout) !== "desktop" ? (openBlock(), createElementBlock("li", _hoisted_3, [createVNode(DownloadAppButton_default)])) : createCommentVNode("", true)
257
+ ]),
258
+ _: 1
259
+ })], 2);
260
+ };
261
+ }
262
+ });
263
+ //#endregion
264
+ //#region src/layouts/App/MainLayout.vue
265
+ var MainLayout_default = /* @__PURE__ */ defineComponent({
266
+ __name: "MainLayout",
267
+ setup(__props) {
268
+ const { layout } = useLayout();
269
+ return (_ctx, _cache) => {
270
+ return openBlock(), createElementBlock("main", { class: normalizeClass(["flex min-h-0 flex-1 flex-col", unref(layout) === "web" ? "sm:flex-col" : "sm:flex-row"]) }, [
271
+ createVNode(SideNav_default, { class: "sidenav order-last sm:order-none" }),
272
+ createVNode(unref(TheCommandPalette_default)),
273
+ createElementVNode("div", { class: normalizeClass(["flex min-h-0 min-w-0 flex-1 flex-col", { "border sm:mr-1.5 sm:mb-1.5 sm:rounded-lg sm:*:rounded-lg": unref(layout) === "desktop" }]) }, [renderSlot(_ctx.$slots, "default")], 2)
274
+ ], 2);
275
+ };
276
+ }
277
+ });
278
+ //#endregion
279
+ export { MainLayout_default as t };
280
+
281
+ //# sourceMappingURL=MainLayout-oMIJ5QXF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainLayout-oMIJ5QXF.js","names":[],"sources":["../src/components/SideNav/SideNavLink.vue","../src/components/SideNav/SideNavLink.vue","../src/components/SideNav/DownloadAppButton.vue","../src/components/SideNav/DownloadAppButton.vue","../src/components/SideNav/SideHelp.vue","../src/components/SideNav/SideHelp.vue","../src/components/SideNav/SideNavGroup.vue","../src/components/SideNav/SideNavGroup.vue","../src/components/SideNav/SideNavRouterLink.vue","../src/components/SideNav/SideNavRouterLink.vue","../src/components/SideNav/SideNav.vue","../src/components/SideNav/SideNav.vue","../src/layouts/App/MainLayout.vue","../src/layouts/App/MainLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon, type Icon } from '@scalar/components'\nimport type { Component } from 'vue'\n\nimport { useLayout } from '@/hooks'\n\ndefineProps<{\n is?: Component | string\n active?: boolean\n icon: Icon\n}>()\n\nconst { layout } = useLayout()\n</script>\n<template>\n <component\n :is=\"is ?? 'a'\"\n class=\"hover:bg-b-3 hover:dark:bg-b-2 flex max-w-[37px] min-w-[37px] items-center justify-center rounded-lg p-2 no-underline\"\n :class=\"{\n 'bg-b-3 dark:bg-b-2 text-c-1 transition-none hover:cursor-default':\n active,\n 'sm:max-w-max sm:min-w-max sm:rounded sm:py-1.5': layout === 'web',\n }\">\n <slot name=\"icon\">\n <ScalarIcon\n :class=\"layout === 'web' ? 'sm:hidden' : ''\"\n :icon=\"icon\"\n thickness=\"1.5\" />\n </slot>\n <span\n class=\"sr-only text-sm font-medium\"\n :class=\"{ 'sm:not-sr-only': layout === 'web' }\">\n <slot />\n </span>\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon, type Icon } from '@scalar/components'\nimport type { Component } from 'vue'\n\nimport { useLayout } from '@/hooks'\n\ndefineProps<{\n is?: Component | string\n active?: boolean\n icon: Icon\n}>()\n\nconst { layout } = useLayout()\n</script>\n<template>\n <component\n :is=\"is ?? 'a'\"\n class=\"hover:bg-b-3 hover:dark:bg-b-2 flex max-w-[37px] min-w-[37px] items-center justify-center rounded-lg p-2 no-underline\"\n :class=\"{\n 'bg-b-3 dark:bg-b-2 text-c-1 transition-none hover:cursor-default':\n active,\n 'sm:max-w-max sm:min-w-max sm:rounded sm:py-1.5': layout === 'web',\n }\">\n <slot name=\"icon\">\n <ScalarIcon\n :class=\"layout === 'web' ? 'sm:hidden' : ''\"\n :icon=\"icon\"\n thickness=\"1.5\" />\n </slot>\n <span\n class=\"sr-only text-sm font-medium\"\n :class=\"{ 'sm:not-sr-only': layout === 'web' }\">\n <slot />\n </span>\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\n\nimport SideNavLink from '@/components/SideNav/SideNavLink.vue'\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <SideNavLink\n class=\"download-app-button gap-2 !px-3 !py-1.5 sm:px-3\"\n href=\"https://scalar.com/download?utm_source=web_client&utm_medium=download_button&utm_campaign=topnav\"\n icon=\"Download\"\n target=\"_blank\">\n <template #icon>\n <ScalarIcon\n icon=\"Download\"\n size=\"sm\"\n thickness=\"2\" />\n </template>\n <span\n class=\"sr-only text-sm font-medium\"\n :class=\"{ 'sm:not-sr-only': layout === 'web' }\">\n Download App\n </span>\n </SideNavLink>\n</template>\n<style scoped>\n.download-app-button {\n box-shadow: 0 0 0 0.5px var(--scalar-border-color);\n background: linear-gradient(rgba(255, 255, 255, 0.75), rgba(0, 0, 0, 0.035));\n}\n\n.dark-mode .download-app-button {\n background: linear-gradient(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.15));\n}\n\n.download-app-button:hover {\n background: linear-gradient(rgba(0, 0, 0, 0.035), rgba(255, 255, 255, 0.75));\n}\n\n.dark-mode .download-app-button:hover {\n background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.1));\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\n\nimport SideNavLink from '@/components/SideNav/SideNavLink.vue'\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <SideNavLink\n class=\"download-app-button gap-2 !px-3 !py-1.5 sm:px-3\"\n href=\"https://scalar.com/download?utm_source=web_client&utm_medium=download_button&utm_campaign=topnav\"\n icon=\"Download\"\n target=\"_blank\">\n <template #icon>\n <ScalarIcon\n icon=\"Download\"\n size=\"sm\"\n thickness=\"2\" />\n </template>\n <span\n class=\"sr-only text-sm font-medium\"\n :class=\"{ 'sm:not-sr-only': layout === 'web' }\">\n Download App\n </span>\n </SideNavLink>\n</template>\n<style scoped>\n.download-app-button {\n box-shadow: 0 0 0 0.5px var(--scalar-border-color);\n background: linear-gradient(rgba(255, 255, 255, 0.75), rgba(0, 0, 0, 0.035));\n}\n\n.dark-mode .download-app-button {\n background: linear-gradient(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.15));\n}\n\n.download-app-button:hover {\n background: linear-gradient(rgba(0, 0, 0, 0.035), rgba(255, 255, 255, 0.75));\n}\n\n.dark-mode .download-app-button:hover {\n background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.1));\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n ScalarDropdown,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\n\nimport SideNavLink from './SideNavLink.vue'\n</script>\n<template>\n <ScalarDropdown\n class=\"max-w-[150px]\"\n :placement=\"'top-end'\">\n <SideNavLink\n is=\"button\"\n icon=\"Help\"\n type=\"button\">\n About\n </SideNavLink>\n\n <!-- Help Menu -->\n <template #items>\n <span class=\"text-c-2 px-2.5 py-1.5 text-xs font-medium\">Support</span>\n <a\n class=\"block no-underline\"\n href=\"https://discord.gg/scalar\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Discord\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Discord</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"https://github.com/scalar/scalar\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"GitHubLine\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>GitHub</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"mailto:support@scalar.com\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Email\"\n size=\"xs\" />\n </div>\n <span>Email</span>\n </ScalarDropdownItem>\n </a>\n <span class=\"text-c-2 px-2.5 py-1.5 text-xs font-medium\">Product</span>\n <a\n class=\"block no-underline\"\n href=\"https://scalar.com/changelog\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Changelog\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Changelog</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"https://github.com/scalar/scalar/issues/2669\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Roadmap\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Roadmap</span>\n </ScalarDropdownItem>\n </a>\n </template>\n </ScalarDropdown>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarDropdown,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\n\nimport SideNavLink from './SideNavLink.vue'\n</script>\n<template>\n <ScalarDropdown\n class=\"max-w-[150px]\"\n :placement=\"'top-end'\">\n <SideNavLink\n is=\"button\"\n icon=\"Help\"\n type=\"button\">\n About\n </SideNavLink>\n\n <!-- Help Menu -->\n <template #items>\n <span class=\"text-c-2 px-2.5 py-1.5 text-xs font-medium\">Support</span>\n <a\n class=\"block no-underline\"\n href=\"https://discord.gg/scalar\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Discord\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Discord</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"https://github.com/scalar/scalar\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"GitHubLine\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>GitHub</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"mailto:support@scalar.com\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Email\"\n size=\"xs\" />\n </div>\n <span>Email</span>\n </ScalarDropdownItem>\n </a>\n <span class=\"text-c-2 px-2.5 py-1.5 text-xs font-medium\">Product</span>\n <a\n class=\"block no-underline\"\n href=\"https://scalar.com/changelog\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Changelog\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Changelog</span>\n </ScalarDropdownItem>\n </a>\n <a\n class=\"block no-underline\"\n href=\"https://github.com/scalar/scalar/issues/2669\"\n target=\"_blank\">\n <ScalarDropdownItem class=\"flex w-full items-center gap-1.5\">\n <div class=\"flex items-center justify-center\">\n <ScalarIcon\n icon=\"Roadmap\"\n size=\"xs\"\n thickness=\"1.75\" />\n </div>\n <span>Roadmap</span>\n </ScalarDropdownItem>\n </a>\n </template>\n </ScalarDropdown>\n</template>\n","<script setup lang=\"ts\">\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <ul\n class=\"flex gap-1.5\"\n :class=\"layout === 'web' ? 'sm:gap-px sm:px-2' : 'sm:flex-col'\">\n <slot />\n </ul>\n</template>\n","<script setup lang=\"ts\">\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <ul\n class=\"flex gap-1.5\"\n :class=\"layout === 'web' ? 'sm:gap-px sm:px-2' : 'sm:flex-col'\">\n <slot />\n </ul>\n</template>\n","<script setup lang=\"ts\">\nimport type { Icon } from '@scalar/components'\nimport { RouterLink, type RouteLocationRaw } from 'vue-router'\n\nimport SideNavLink from '@/components/SideNav/SideNavLink.vue'\n\ndefineProps<{\n icon: Icon\n to: RouteLocationRaw\n active?: boolean\n}>()\n</script>\n<template>\n <SideNavLink\n :is=\"RouterLink\"\n :active=\"Boolean(active)\"\n :icon=\"icon\"\n :to=\"to\">\n <slot />\n </SideNavLink>\n</template>\n","<script setup lang=\"ts\">\nimport type { Icon } from '@scalar/components'\nimport { RouterLink, type RouteLocationRaw } from 'vue-router'\n\nimport SideNavLink from '@/components/SideNav/SideNavLink.vue'\n\ndefineProps<{\n icon: Icon\n to: RouteLocationRaw\n active?: boolean\n}>()\n</script>\n<template>\n <SideNavLink\n :is=\"RouterLink\"\n :active=\"Boolean(active)\"\n :icon=\"icon\"\n :to=\"to\">\n <slot />\n </SideNavLink>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { useRouter } from 'vue-router'\n\nimport { ROUTES } from '@/constants'\nimport { useLayout } from '@/hooks'\nimport { PathId } from '@/routes'\nimport { useActiveEntities } from '@/store'\n\nimport DownloadAppButton from './DownloadAppButton.vue'\nimport SideHelp from './SideHelp.vue'\nimport SideNavGroup from './SideNavGroup.vue'\nimport SideNavRouterLink from './SideNavRouterLink.vue'\n\nconst { currentRoute } = useRouter()\nconst { layout } = useLayout()\n\nconst { activeWorkspace } = useActiveEntities()\n</script>\n<template>\n <nav\n aria-label=\"App Navigation\"\n class=\"app-drag-region flex items-center justify-center gap-1.5 pt-2 sm:justify-between\"\n :class=\"\n layout === 'web' ? 'h-header border !pt-0' : 'px-2 pb-2 sm:flex-col'\n \"\n role=\"navigation\">\n <SideNavGroup class=\"app-no-drag-region\">\n <a\n class=\"mr-3 ml-1 hidden items-center\"\n :class=\"{\n 'sm:flex': layout === 'web',\n }\"\n href=\"https://www.scalar.com\"\n target=\"_blank\">\n <ScalarIcon\n icon=\"Logo\"\n size=\"xl\" />\n </a>\n <!-- Everything, but settings -->\n <li\n v-for=\"({ icon, to, displayName }, i) in ROUTES.filter(\n (route) => route.to.name !== 'settings.default',\n )\"\n :key=\"i\">\n <SideNavRouterLink\n :active=\"\n Boolean(\n currentRoute.name === displayName.toLowerCase() ||\n (displayName.toLowerCase() === 'environment' &&\n currentRoute.name === 'environment.collection'),\n )\n \"\n :icon=\"icon\"\n :to=\"{\n ...to,\n params: {\n [PathId.Workspace]: activeWorkspace?.uid ?? 'default',\n },\n }\">\n {{ displayName }}\n </SideNavRouterLink>\n </li>\n </SideNavGroup>\n <!-- Pinned to the bottom -->\n <SideNavGroup class=\"app-no-drag-region\">\n <li class=\"flex items-center\">\n <SideNavRouterLink\n :active=\"currentRoute.name === 'settings'\"\n icon=\"Settings\"\n :to=\"{\n name: `settings.default`,\n params: {\n [PathId.Workspace]: activeWorkspace?.uid,\n },\n }\">\n Settings\n </SideNavRouterLink>\n </li>\n <li class=\"flex items-center\">\n <SideHelp />\n </li>\n <li\n v-if=\"layout !== 'desktop'\"\n class=\"hidden items-center justify-center sm:ml-1.5 sm:flex\">\n <DownloadAppButton />\n </li>\n </SideNavGroup>\n </nav>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { useRouter } from 'vue-router'\n\nimport { ROUTES } from '@/constants'\nimport { useLayout } from '@/hooks'\nimport { PathId } from '@/routes'\nimport { useActiveEntities } from '@/store'\n\nimport DownloadAppButton from './DownloadAppButton.vue'\nimport SideHelp from './SideHelp.vue'\nimport SideNavGroup from './SideNavGroup.vue'\nimport SideNavRouterLink from './SideNavRouterLink.vue'\n\nconst { currentRoute } = useRouter()\nconst { layout } = useLayout()\n\nconst { activeWorkspace } = useActiveEntities()\n</script>\n<template>\n <nav\n aria-label=\"App Navigation\"\n class=\"app-drag-region flex items-center justify-center gap-1.5 pt-2 sm:justify-between\"\n :class=\"\n layout === 'web' ? 'h-header border !pt-0' : 'px-2 pb-2 sm:flex-col'\n \"\n role=\"navigation\">\n <SideNavGroup class=\"app-no-drag-region\">\n <a\n class=\"mr-3 ml-1 hidden items-center\"\n :class=\"{\n 'sm:flex': layout === 'web',\n }\"\n href=\"https://www.scalar.com\"\n target=\"_blank\">\n <ScalarIcon\n icon=\"Logo\"\n size=\"xl\" />\n </a>\n <!-- Everything, but settings -->\n <li\n v-for=\"({ icon, to, displayName }, i) in ROUTES.filter(\n (route) => route.to.name !== 'settings.default',\n )\"\n :key=\"i\">\n <SideNavRouterLink\n :active=\"\n Boolean(\n currentRoute.name === displayName.toLowerCase() ||\n (displayName.toLowerCase() === 'environment' &&\n currentRoute.name === 'environment.collection'),\n )\n \"\n :icon=\"icon\"\n :to=\"{\n ...to,\n params: {\n [PathId.Workspace]: activeWorkspace?.uid ?? 'default',\n },\n }\">\n {{ displayName }}\n </SideNavRouterLink>\n </li>\n </SideNavGroup>\n <!-- Pinned to the bottom -->\n <SideNavGroup class=\"app-no-drag-region\">\n <li class=\"flex items-center\">\n <SideNavRouterLink\n :active=\"currentRoute.name === 'settings'\"\n icon=\"Settings\"\n :to=\"{\n name: `settings.default`,\n params: {\n [PathId.Workspace]: activeWorkspace?.uid,\n },\n }\">\n Settings\n </SideNavRouterLink>\n </li>\n <li class=\"flex items-center\">\n <SideHelp />\n </li>\n <li\n v-if=\"layout !== 'desktop'\"\n class=\"hidden items-center justify-center sm:ml-1.5 sm:flex\">\n <DownloadAppButton />\n </li>\n </SideNavGroup>\n </nav>\n</template>\n","<script setup lang=\"ts\">\nimport { TheCommandPalette } from '@/components/CommandPalette'\nimport SideNav from '@/components/SideNav/SideNav.vue'\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <!-- min-h-0 is to allow scrolling of individual flex children -->\n <main\n class=\"flex min-h-0 flex-1 flex-col\"\n :class=\"layout === 'web' ? 'sm:flex-col' : 'sm:flex-row'\">\n <SideNav class=\"sidenav order-last sm:order-none\" />\n\n <!-- Popup command palette to add resources from anywhere -->\n <TheCommandPalette />\n\n <div\n class=\"flex min-h-0 min-w-0 flex-1 flex-col\"\n :class=\"{\n 'border sm:mr-1.5 sm:mb-1.5 sm:rounded-lg sm:*:rounded-lg':\n layout === 'desktop',\n }\">\n <slot />\n </div>\n </main>\n</template>\n","<script setup lang=\"ts\">\nimport { TheCommandPalette } from '@/components/CommandPalette'\nimport SideNav from '@/components/SideNav/SideNav.vue'\nimport { useLayout } from '@/hooks'\n\nconst { layout } = useLayout()\n</script>\n<template>\n <!-- min-h-0 is to allow scrolling of individual flex children -->\n <main\n class=\"flex min-h-0 flex-1 flex-col\"\n :class=\"layout === 'web' ? 'sm:flex-col' : 'sm:flex-row'\">\n <SideNav class=\"sidenav order-last sm:order-none\" />\n\n <!-- Popup command palette to add resources from anywhere -->\n <TheCommandPalette />\n\n <div\n class=\"flex min-h-0 min-w-0 flex-1 flex-col\"\n :class=\"{\n 'border sm:mr-1.5 sm:mb-1.5 sm:rounded-lg sm:*:rounded-lg':\n layout === 'desktop',\n }\">\n <slot />\n </div>\n </main>\n</template>\n"],"mappings":"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"}