@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.
- package/CHANGELOG.md +17 -0
- package/dist/AddressBar-CX8xiYoe.js +302 -0
- package/dist/AddressBar-CX8xiYoe.js.map +1 -0
- package/dist/App-BpNPKHmM.js +533 -0
- package/dist/App-BpNPKHmM.js.map +1 -0
- package/dist/App-Ckirvnv1.js +2510 -0
- package/dist/App-Ckirvnv1.js.map +1 -0
- package/dist/CodeInput-BN7uw3Bh.js +694 -0
- package/dist/CodeInput-BN7uw3Bh.js.map +1 -0
- package/dist/CodeSnippet-D7Heh1nd.js +218 -0
- package/dist/CodeSnippet-D7Heh1nd.js.map +1 -0
- package/dist/Collection-ChAxs3rz.js +219 -0
- package/dist/Collection-ChAxs3rz.js.map +1 -0
- package/dist/CollectionAuthentication-BDpvv8cA.js +56 -0
- package/dist/CollectionAuthentication-BDpvv8cA.js.map +1 -0
- package/dist/CollectionCookies-DyjPPMdt.js +19 -0
- package/dist/CollectionCookies-DyjPPMdt.js.map +1 -0
- package/dist/CollectionEnvironment-dwisJ-h5.js +514 -0
- package/dist/CollectionEnvironment-dwisJ-h5.js.map +1 -0
- package/dist/CollectionOverview-CJ9-Vmei.js +131 -0
- package/dist/CollectionOverview-CJ9-Vmei.js.map +1 -0
- package/dist/CollectionScripts-CMNlBlby.js +19 -0
- package/dist/CollectionScripts-CMNlBlby.js.map +1 -0
- package/dist/CollectionServers-BWkIGwz4.js +168 -0
- package/dist/CollectionServers-BWkIGwz4.js.map +1 -0
- package/dist/CollectionSettings-CqUUYOym.js +87 -0
- package/dist/CollectionSettings-CqUUYOym.js.map +1 -0
- package/dist/CollectionSync-CAflc5yW.js +19 -0
- package/dist/CollectionSync-CAflc5yW.js.map +1 -0
- package/dist/CommandActionInput-TkcAx6E8.js +97 -0
- package/dist/CommandActionInput-TkcAx6E8.js.map +1 -0
- package/dist/CommandPalette-BiA0IgO8.js +964 -0
- package/dist/CommandPalette-BiA0IgO8.js.map +1 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js +622 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js.map +1 -0
- package/dist/Cookies-CNRSxP8J.js +284 -0
- package/dist/Cookies-CNRSxP8J.js.map +1 -0
- package/dist/DataTable-BqbZKW3K.js +62 -0
- package/dist/DataTable-BqbZKW3K.js.map +1 -0
- package/dist/DataTableHeader-DJVB0jCZ.js +21 -0
- package/dist/DataTableHeader-DJVB0jCZ.js.map +1 -0
- package/dist/DataTableInput-SkIUPlrB.js +166 -0
- package/dist/DataTableInput-SkIUPlrB.js.map +1 -0
- package/dist/DataTableRow-c3XveEUO.js +57 -0
- package/dist/DataTableRow-c3XveEUO.js.map +1 -0
- package/dist/DeleteSidebarListElement-C-p87d03.js +78 -0
- package/dist/DeleteSidebarListElement-C-p87d03.js.map +1 -0
- package/dist/EditSidebarListElement-CodWPnM6.js +32 -0
- package/dist/EditSidebarListElement-CodWPnM6.js.map +1 -0
- package/dist/Editor-BomsGWHx.js +909 -0
- package/dist/Editor-BomsGWHx.js.map +1 -0
- package/dist/EmptyState-Cnm7hGW5.js +46 -0
- package/dist/EmptyState-Cnm7hGW5.js.map +1 -0
- package/dist/Environment-D_CbZk0A.js +416 -0
- package/dist/Environment-D_CbZk0A.js.map +1 -0
- package/dist/EnvironmentModal-CcyqnPc2.js +288 -0
- package/dist/EnvironmentModal-CcyqnPc2.js.map +1 -0
- package/dist/Form-bA4bV_oA.js +83 -0
- package/dist/Form-bA4bV_oA.js.map +1 -0
- package/dist/HttpMethod-rnWEgC3T.js +78 -0
- package/dist/HttpMethod-rnWEgC3T.js.map +1 -0
- package/dist/IconSelector-BDC_GQXv.js +67 -0
- package/dist/IconSelector-BDC_GQXv.js.map +1 -0
- package/dist/ImportCollection-BIYMxB9Q.js +804 -0
- package/dist/ImportCollection-BIYMxB9Q.js.map +1 -0
- package/dist/IntegrationLogo-B9EDW8db.js +51 -0
- package/dist/IntegrationLogo-B9EDW8db.js.map +1 -0
- package/dist/MainLayout-oMIJ5QXF.js +281 -0
- package/dist/MainLayout-oMIJ5QXF.js.map +1 -0
- package/dist/Modal-DkOa_KK0.js +67 -0
- package/dist/Modal-DkOa_KK0.js.map +1 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js +65 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js.map +1 -0
- package/dist/Request-BWfYWyBa.js +212 -0
- package/dist/Request-BWfYWyBa.js.map +1 -0
- package/dist/RequestAuth-BU6ubH-c.js +989 -0
- package/dist/RequestAuth-BU6ubH-c.js.map +1 -0
- package/dist/RequestRoot-7xhK5_qr.js +1611 -0
- package/dist/RequestRoot-7xhK5_qr.js.map +1 -0
- package/dist/RequestSection-Bx8UHW-k.js +1582 -0
- package/dist/RequestSection-Bx8UHW-k.js.map +1 -0
- package/dist/ResponseSection-CLrgLMN_.js +949 -0
- package/dist/ResponseSection-CLrgLMN_.js.map +1 -0
- package/dist/ScalarAsciiArt-BjuSnj8e.js +45 -0
- package/dist/ScalarAsciiArt-BjuSnj8e.js.map +1 -0
- package/dist/SectionFilter-hrtoRLwj.js +99 -0
- package/dist/SectionFilter-hrtoRLwj.js.map +1 -0
- package/dist/Server-BS4zjUdO.js +303 -0
- package/dist/Server-BS4zjUdO.js.map +1 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js +145 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js.map +1 -0
- package/dist/Settings-BuLKHzRY.js +347 -0
- package/dist/Settings-BuLKHzRY.js.map +1 -0
- package/dist/Sidebar-Xl9_nFXX.js +73 -0
- package/dist/Sidebar-Xl9_nFXX.js.map +1 -0
- package/dist/SidebarButton-BAagdMDe.js +37 -0
- package/dist/SidebarButton-BAagdMDe.js.map +1 -0
- package/dist/SidebarListElement-BfTPiihc.js +232 -0
- package/dist/SidebarListElement-BfTPiihc.js.map +1 -0
- package/dist/TheCommandPalette-Dl9TAeke.js +204 -0
- package/dist/TheCommandPalette-Dl9TAeke.js.map +1 -0
- package/dist/ValueEmitter-QYkZ9Hdc.js +20 -0
- package/dist/ValueEmitter-QYkZ9Hdc.js.map +1 -0
- package/dist/ViewLayout-BOXN0IYo.js +17 -0
- package/dist/ViewLayout-BOXN0IYo.js.map +1 -0
- package/dist/ViewLayoutCollapse-CiTb-Uml.js +86 -0
- package/dist/ViewLayoutCollapse-CiTb-Uml.js.map +1 -0
- package/dist/ViewLayoutContent-CvMoJYPF.js +13 -0
- package/dist/ViewLayoutContent-CvMoJYPF.js.map +1 -0
- package/dist/ViewLayoutSection-mUqKbQry.js +23 -0
- package/dist/ViewLayoutSection-mUqKbQry.js.map +1 -0
- package/dist/WatchModeToggle-D_eAiTWJ.js +41 -0
- package/dist/WatchModeToggle-D_eAiTWJ.js.map +1 -0
- package/dist/_plugin-vue_export-helper-BmmBcIzD.js +8 -0
- package/dist/analytics-BZimCWcw.js +7 -0
- package/dist/analytics-BZimCWcw.js.map +1 -0
- package/dist/build-request-security-BQjNr2MD.js +41 -0
- package/dist/build-request-security-BQjNr2MD.js.map +1 -0
- package/dist/code-input-iq-moLxi.js +775 -0
- package/dist/code-input-iq-moLxi.js.map +1 -0
- package/dist/components/AddressBar/AddressBar.vue.d.ts +1 -1
- package/dist/components/AddressBar/index.d.ts +1 -1
- package/dist/components/AddressBar/index.js +5 -4
- package/dist/components/CodeInput/CodeInput.vue.d.ts +1 -1
- package/dist/components/CodeInput/codeVariableWidget.d.ts +1 -1
- package/dist/components/CodeInput/index.d.ts +1 -1
- package/dist/components/CodeInput/index.js +2 -4
- package/dist/components/CommandPalette/index.d.ts +1 -1
- package/dist/components/CommandPalette/index.js +3 -4
- package/dist/components/DataTable/DataTableInput.vue.d.ts +2 -2
- package/dist/components/DataTable/index.d.ts +8 -8
- package/dist/components/DataTable/index.js +6 -18
- package/dist/components/Form/LabelInput.vue.d.ts +1 -1
- package/dist/components/HttpMethod/index.d.ts +1 -1
- package/dist/components/HttpMethod/index.js +2 -4
- package/dist/components/ImportCollection/index.d.ts +1 -1
- package/dist/components/ImportCollection/index.js +2 -4
- package/dist/components/ImportCollection/utils/import-collection.d.ts +1 -1
- package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +1 -1
- package/dist/components/Server/ServerVariablesForm.vue.d.ts +1 -1
- package/dist/components/Server/index.d.ts +3 -3
- package/dist/components/Server/index.js +3 -8
- package/dist/components/Sidebar/index.d.ts +1 -1
- package/dist/components/Sidebar/index.js +2 -4
- package/dist/components/ViewLayout/index.d.ts +1 -1
- package/dist/components/ViewLayout/index.js +2 -4
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +7 -8
- package/dist/components-ChixwQhN.js +61 -0
- package/dist/components-ChixwQhN.js.map +1 -0
- package/dist/components-DfJHvSLM.js +183 -0
- package/dist/components-DfJHvSLM.js.map +1 -0
- package/dist/computer-D7VW3Ruy.js +562 -0
- package/dist/computer-D7VW3Ruy.js.map +1 -0
- package/dist/consts-CyGRb9dl.js +318 -0
- package/dist/consts-CyGRb9dl.js.map +1 -0
- package/dist/curl-nbw1OxbV.js +54 -0
- package/dist/curl-nbw1OxbV.js.map +1 -0
- package/dist/data-table-PL7e8NRO.js +282 -0
- package/dist/data-table-PL7e8NRO.js.map +1 -0
- package/dist/editor-BZ_J0eze.js +466 -0
- package/dist/editor-BZ_J0eze.js.map +1 -0
- package/dist/environments-ByLK9lnC.js +592 -0
- package/dist/environments-ByLK9lnC.js.map +1 -0
- package/dist/formatters-DOGXZq9R.js +36 -0
- package/dist/formatters-DOGXZq9R.js.map +1 -0
- package/dist/forms-CZX6cFDS.js +42 -0
- package/dist/forms-CZX6cFDS.js.map +1 -0
- package/dist/get-active-environment-CkxyQ1dM.js +19 -0
- package/dist/get-active-environment-CkxyQ1dM.js.map +1 -0
- package/dist/get-resolved-url-SybDPV0U.js +85 -0
- package/dist/get-resolved-url-SybDPV0U.js.map +1 -0
- package/dist/get-server-url-UVN-dx79.js +32 -0
- package/dist/get-server-url-UVN-dx79.js.map +1 -0
- package/dist/get-servers-B_WNlQWB.js +106 -0
- package/dist/get-servers-B_WNlQWB.js.map +1 -0
- package/dist/get-snippet-DBRUSfZ2.js +39 -0
- package/dist/get-snippet-DBRUSfZ2.js.map +1 -0
- package/dist/global-cookies-D3ZS9ON3.js +184 -0
- package/dist/global-cookies-D3ZS9ON3.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.js +3 -11
- package/dist/hooks/useSidebar.d.ts +1 -1
- package/dist/hooks-BvZxH4XB.js +80 -0
- package/dist/hooks-BvZxH4XB.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +8 -12
- package/dist/layout-BWiL7dfb.js +81 -0
- package/dist/layout-BWiL7dfb.js.map +1 -0
- package/dist/layouts/App/create-api-client-app.d.ts +9 -9
- package/dist/layouts/App/index.d.ts +2 -2
- package/dist/layouts/App/index.js +5 -7
- package/dist/layouts/Modal/create-api-client-modal.d.ts +1 -1
- package/dist/layouts/Modal/index.d.ts +2 -2
- package/dist/layouts/Modal/index.js +3 -4
- package/dist/layouts/Web/create-api-client-web.d.ts +9 -9
- package/dist/layouts/Web/index.d.ts +2 -2
- package/dist/layouts/Web/index.js +101 -6
- package/dist/layouts/Web/index.js.map +1 -0
- package/dist/libs/create-client.d.ts +9 -9
- package/dist/libs/create-client.d.ts.map +1 -1
- package/dist/libs/environment-parser.d.ts +1 -1
- package/dist/libs/get-request-uid-by-path-method.d.ts +1 -1
- package/dist/libs/hot-keys.d.ts +1 -1
- package/dist/libs/importers/index.d.ts +1 -1
- package/dist/libs/importers/index.js +2 -4
- package/dist/libs/index.d.ts +15 -15
- package/dist/libs/index.js +6 -45
- package/dist/libs/local-storage.d.ts +1 -1
- package/dist/libs/send-request/create-request-operation.d.ts +3 -3
- package/dist/libs/send-request/index.d.ts +3 -3
- package/dist/libs/send-request/index.js +3 -8
- package/dist/libs-spbv4P0g.js +249 -0
- package/dist/libs-spbv4P0g.js.map +1 -0
- package/dist/monacoeditorwork/json.worker.bundle.js +8 -8
- package/dist/monacoeditorwork/yaml.worker.bundle.js +151 -151
- package/dist/operation-block-DE-hoO03.js +1674 -0
- package/dist/operation-block-DE-hoO03.js.map +1 -0
- package/dist/operation-code-sample-xgx4qi2H.js +1738 -0
- package/dist/operation-code-sample-xgx4qi2H.js.map +1 -0
- package/dist/parse-curl-BtypQT3D.js +106 -0
- package/dist/parse-curl-BtypQT3D.js.map +1 -0
- package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/index.js +2 -7
- package/dist/plugins/plugin-manager.d.ts +10 -4
- package/dist/plugins/plugin-manager.d.ts.map +1 -1
- package/dist/plugins-B52hCIyZ.js +50 -0
- package/dist/plugins-B52hCIyZ.js.map +1 -0
- package/dist/rabbitjump-CMZXAR6d.js +9 -0
- package/dist/rabbitjump-CMZXAR6d.js.map +1 -0
- package/dist/request-block-N7dPFyrG.js +1466 -0
- package/dist/request-block-N7dPFyrG.js.map +1 -0
- package/dist/resize-D2IYvVdh.js +114 -0
- package/dist/resize-D2IYvVdh.js.map +1 -0
- package/dist/response-block-DmkaDZYs.js +1188 -0
- package/dist/response-block-DmkaDZYs.js.map +1 -0
- package/dist/scalar-address-bar-block-BbysOhkE.js +425 -0
- package/dist/scalar-address-bar-block-BbysOhkE.js.map +1 -0
- package/dist/scalar-auth-selector-block-Bs79QOMA.js +1889 -0
- package/dist/scalar-auth-selector-block-Bs79QOMA.js.map +1 -0
- package/dist/search-CmsQQkjn.js +151 -0
- package/dist/search-CmsQQkjn.js.map +1 -0
- package/dist/send-request-BsTfRiBC.js +348 -0
- package/dist/send-request-BsTfRiBC.js.map +1 -0
- package/dist/server-tcI-OCyx.js +140 -0
- package/dist/server-tcI-OCyx.js.map +1 -0
- package/dist/set-request-cookies-BJJhsU4A.js +88 -0
- package/dist/set-request-cookies-BJJhsU4A.js.map +1 -0
- package/dist/settings-BKk_1lcH.js +455 -0
- package/dist/settings-BKk_1lcH.js.map +1 -0
- package/dist/sidebar-ceSbYmnt.js +217 -0
- package/dist/sidebar-ceSbYmnt.js.map +1 -0
- package/dist/store/collections.d.ts +1 -1
- package/dist/store/environment.d.ts +1 -1
- package/dist/store/events.d.ts +8 -8
- package/dist/store/import-spec.d.ts +2 -2
- package/dist/store/index.d.ts +2 -2
- package/dist/store/index.js +2 -10
- package/dist/store/request-example.d.ts +1 -1
- package/dist/store/requests.d.ts +1 -1
- package/dist/store/security-schemes.d.ts +1 -1
- package/dist/store/servers.d.ts +1 -1
- package/dist/store/store.d.ts +7 -7
- package/dist/store/tags.d.ts +1 -1
- package/dist/store/workspace.d.ts +1 -1
- package/dist/store-DaPoVtIS.js +1512 -0
- package/dist/store-DaPoVtIS.js.map +1 -0
- package/dist/string-template-sS5PtY6T.js +64 -0
- package/dist/string-template-sS5PtY6T.js.map +1 -0
- package/dist/style.css +10372 -1
- package/dist/types/index.js +0 -1
- package/dist/use-global-hot-keys-D8Ai8Qbm.js +274 -0
- package/dist/use-global-hot-keys-D8Ai8Qbm.js.map +1 -0
- package/dist/useSidebar-DLTwHDI-.js +45 -0
- package/dist/useSidebar-DLTwHDI-.js.map +1 -0
- package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +3 -3
- package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/apply-allow-reserved-to-url.d.ts +6 -0
- package/dist/v2/blocks/operation-block/helpers/apply-allow-reserved-to-url.d.ts.map +1 -0
- package/dist/v2/blocks/operation-block/helpers/build-request-body.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/build-request-parameters.d.ts +1 -0
- package/dist/v2/blocks/operation-block/helpers/build-request-parameters.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/build-request-security.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/build-request.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/build-request.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/get-resolved-url.d.ts +2 -1
- package/dist/v2/blocks/operation-block/helpers/get-resolved-url.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
- package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
- package/dist/v2/blocks/operation-block/index.d.ts +4 -4
- package/dist/v2/blocks/operation-block/index.js +20 -11
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/find-client.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/get-clients.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts.map +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/index.d.ts +6 -6
- package/dist/v2/blocks/operation-code-sample/index.js +2 -16
- package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -4
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/components/RequestParams.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
- package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +3 -2
- package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
- package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
- package/dist/v2/blocks/request-block/index.d.ts +1 -1
- package/dist/v2/blocks/request-block/index.js +9 -4
- package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/index.d.ts +1 -1
- package/dist/v2/blocks/response-block/index.js +6 -4
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
- package/dist/v2/blocks/scalar-address-bar-block/index.d.ts +2 -2
- package/dist/v2/blocks/scalar-address-bar-block/index.js +5 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -3
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.d.ts.map +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.d.ts.map +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts +4 -4
- package/dist/v2/blocks/scalar-auth-selector-block/index.js +6 -8
- package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
- package/dist/v2/components/code-input/index.d.ts +1 -1
- package/dist/v2/components/code-input/index.js +2 -4
- package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
- package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
- package/dist/v2/components/data-table/index.d.ts +8 -8
- package/dist/v2/components/data-table/index.js +3 -18
- package/dist/v2/components/forms/index.d.ts +1 -1
- package/dist/v2/components/forms/index.js +2 -4
- package/dist/v2/components/layout/index.d.ts +1 -1
- package/dist/v2/components/layout/index.js +2 -4
- package/dist/v2/components/modals/index.d.ts +1 -1
- package/dist/v2/components/modals/index.js +37 -3
- package/dist/v2/components/modals/index.js.map +1 -0
- package/dist/v2/components/resize/index.d.ts +2 -2
- package/dist/v2/components/resize/index.js +2 -6
- package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
- package/dist/v2/components/server/index.d.ts +1 -1
- package/dist/v2/components/server/index.js +2 -4
- package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
- package/dist/v2/components/sidebar/index.d.ts +3 -3
- package/dist/v2/components/sidebar/index.js +3 -8
- package/dist/v2/constants.d.ts +3 -0
- package/dist/v2/constants.d.ts.map +1 -0
- package/dist/v2/features/app/App.vue.d.ts +4 -4
- package/dist/v2/features/app/components/AppSidebar.vue.d.ts +1 -1
- package/dist/v2/features/app/components/index.d.ts +1 -1
- package/dist/v2/features/app/components/index.js +10 -5
- package/dist/v2/features/app/helpers/create-api-client-app.d.ts +3 -3
- package/dist/v2/features/app/helpers/get-route-param.d.ts +1 -1
- package/dist/v2/features/app/helpers/routes.d.ts +5 -5
- package/dist/v2/features/app/hooks/use-theme.d.ts +1 -1
- package/dist/v2/features/app/index.d.ts +8 -8
- package/dist/v2/features/app/index.js +3161 -19
- package/dist/v2/features/app/index.js.map +1 -0
- package/dist/v2/features/collection/DocumentCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/OperationCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/components/Authentication.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Authentication.vue.d.ts.map +1 -1
- package/dist/v2/features/collection/components/Cookies.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Editor/index.d.ts +1 -1
- package/dist/v2/features/collection/components/Editor/index.js +2 -4
- package/dist/v2/features/collection/components/Environment.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Overview.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Servers.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Settings.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Tabs.vue.d.ts +1 -1
- package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts +1 -1
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +10 -45
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
- package/dist/v2/features/command-palette/index.d.ts +2 -2
- package/dist/v2/features/command-palette/index.js +3 -6
- package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +1 -1
- package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +1 -1
- package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts +1 -1
- package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +1 -1
- package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +1 -1
- package/dist/v2/features/editor/hooks/use-editor.d.ts +1 -1
- package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +1 -1
- package/dist/v2/features/editor/index.d.ts +4 -4
- package/dist/v2/features/editor/index.js +2 -10
- package/dist/v2/features/environments/index.d.ts +1 -1
- package/dist/v2/features/environments/index.js +4 -4
- package/dist/v2/features/global-cookies/index.d.ts +1 -1
- package/dist/v2/features/global-cookies/index.js +4 -4
- package/dist/v2/features/modal/Modal.vue.d.ts +1 -1
- package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
- package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
- package/dist/v2/features/modal/index.d.ts +3 -3
- package/dist/v2/features/modal/index.js +639 -7
- package/dist/v2/features/modal/index.js.map +1 -0
- package/dist/v2/features/modal/modal-events.d.ts +1 -1
- package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
- package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
- package/dist/v2/features/operation/helpers/get-selected-security.d.ts +6 -1
- package/dist/v2/features/operation/helpers/get-selected-security.d.ts.map +1 -1
- package/dist/v2/features/operation/index.d.ts +5 -5
- package/dist/v2/features/operation/index.js +19 -12
- package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
- package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
- package/dist/v2/features/search/index.d.ts +1 -1
- package/dist/v2/features/search/index.js +2 -4
- package/dist/v2/features/settings/index.d.ts +2 -2
- package/dist/v2/features/settings/index.js +2 -6
- package/dist/v2/helpers/get-active-proxy-url.d.ts +1 -1
- package/dist/v2/helpers/get-tab-details.d.ts +1 -1
- package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
- package/dist/v2/helpers/index.d.ts +2 -2
- package/dist/v2/helpers/index.js +3 -6
- package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
- package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +1 -1
- package/dist/views/Collection/components/MarkdownInput.vue.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/index.d.ts +4 -4
- package/dist/views/Components/CodeSnippet/index.js +3 -10
- package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +1 -1
- package/dist/views/Environment/handle-drag.d.ts +1 -1
- package/dist/views/Request/Request.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +2 -2
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/index.d.ts +3 -3
- package/dist/views/Request/RequestSection/RequestAuth/index.js +4 -8
- package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +1 -1
- package/dist/views/Request/RequestSection/index.d.ts +2 -2
- package/dist/views/Request/RequestSection/index.js +42 -5
- package/dist/views/Request/RequestSection/index.js.map +1 -0
- package/dist/views/Request/RequestSidebarItem.vue.d.ts +1 -1
- package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +3 -3
- package/dist/views/Request/RequestSubpageHeader.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/index.d.ts +2 -2
- package/dist/views/Request/ResponseSection/index.js +7 -6
- package/dist/views/Request/components/index.d.ts +1 -1
- package/dist/views/Request/components/index.js +2 -4
- package/dist/views/Request/consts/index.d.ts +2 -2
- package/dist/views/Request/consts/index.js +2 -10
- package/dist/views/Request/handle-drag.d.ts +2 -2
- package/dist/views/Request/libs/auth.d.ts +1 -1
- package/dist/views/Request/libs/index.d.ts +3 -3
- package/dist/views/Request/libs/index.js +3 -22
- package/dist/views/Request/libs/oauth2.d.ts +1 -1
- package/dist/views/Request/libs/watch-mode.d.ts +2 -2
- package/dist/views/Request/types/index.js +0 -1
- package/dist/watch-mode-Dbaqd9bG.js +375 -0
- package/dist/watch-mode-Dbaqd9bG.js.map +1 -0
- package/package.json +29 -33
- package/dist/_virtual/_plugin-vue_export-helper.js +0 -9
- package/dist/analytics.js +0 -9
- package/dist/assets/computer.ascii.js +0 -34
- package/dist/assets/keycap.ascii.js +0 -25
- package/dist/assets/rabbit.ascii.js +0 -11
- package/dist/assets/rabbitjump.ascii.js +0 -11
- package/dist/components/AddressBar/AddressBar.vue.js +0 -7
- package/dist/components/AddressBar/AddressBar.vue2.js +0 -160
- package/dist/components/AddressBar/AddressBarHistory.vue.js +0 -7
- package/dist/components/AddressBar/AddressBarHistory.vue2.js +0 -98
- package/dist/components/AddressBar/httpStatusCodeColors.js +0 -38
- package/dist/components/CodeInput/CodeInput.vue.js +0 -8
- package/dist/components/CodeInput/CodeInput.vue2.js +0 -209
- package/dist/components/CodeInput/codeVariableWidget.js +0 -111
- package/dist/components/CommandPalette/CommandActionForm.vue.js +0 -44
- package/dist/components/CommandPalette/CommandActionForm.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandActionInput.vue.js +0 -52
- package/dist/components/CommandPalette/CommandActionInput.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteCollection.vue.js +0 -80
- package/dist/components/CommandPalette/CommandPaletteCollection.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteExample.vue.js +0 -116
- package/dist/components/CommandPalette/CommandPaletteExample.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteImport.vue.js +0 -217
- package/dist/components/CommandPalette/CommandPaletteImport.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js +0 -7
- package/dist/components/CommandPalette/CommandPaletteImportCurl.vue2.js +0 -136
- package/dist/components/CommandPalette/CommandPaletteServer.vue.js +0 -123
- package/dist/components/CommandPalette/CommandPaletteServer.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteTag.vue.js +0 -84
- package/dist/components/CommandPalette/CommandPaletteTag.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js +0 -48
- package/dist/components/CommandPalette/CommandPaletteWorkspace.vue2.js +0 -4
- package/dist/components/CommandPalette/TheCommandPalette.vue.js +0 -7
- package/dist/components/CommandPalette/TheCommandPalette.vue2.js +0 -305
- package/dist/components/CommandPalette/WatchModeToggle.vue.js +0 -39
- package/dist/components/CommandPalette/WatchModeToggle.vue2.js +0 -4
- package/dist/components/DataTable/DataTable.vue.js +0 -38
- package/dist/components/DataTable/DataTable.vue2.js +0 -4
- package/dist/components/DataTable/DataTableCell.vue.js +0 -26
- package/dist/components/DataTable/DataTableCell.vue2.js +0 -4
- package/dist/components/DataTable/DataTableCheckbox.vue.js +0 -53
- package/dist/components/DataTable/DataTableCheckbox.vue2.js +0 -4
- package/dist/components/DataTable/DataTableHeader.vue.js +0 -18
- package/dist/components/DataTable/DataTableHeader.vue2.js +0 -4
- package/dist/components/DataTable/DataTableInput.vue.js +0 -7
- package/dist/components/DataTable/DataTableInput.vue2.js +0 -124
- package/dist/components/DataTable/DataTableInputSelect.vue.js +0 -146
- package/dist/components/DataTable/DataTableInputSelect.vue2.js +0 -4
- package/dist/components/DataTable/DataTableRow.vue.js +0 -12
- package/dist/components/DataTable/DataTableText.vue.js +0 -23
- package/dist/components/DataTable/DataTableText.vue2.js +0 -4
- package/dist/components/EmptyState.vue.js +0 -7
- package/dist/components/EmptyState.vue2.js +0 -42
- package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js +0 -113
- package/dist/components/EnvironmentSelector/EnvironmentSelector.vue2.js +0 -4
- package/dist/components/Form/Form.vue.js +0 -83
- package/dist/components/Form/Form.vue2.js +0 -4
- package/dist/components/Form/LabelInput.vue.js +0 -7
- package/dist/components/Form/LabelInput.vue2.js +0 -42
- package/dist/components/HelpfulLink.vue.js +0 -20
- package/dist/components/HelpfulLink.vue2.js +0 -4
- package/dist/components/HttpMethod/HttpMethod.vue.js +0 -7
- package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -62
- package/dist/components/IconSelector.vue.js +0 -75
- package/dist/components/IconSelector.vue2.js +0 -4
- package/dist/components/ImportCollection/DropEventListener.vue.js +0 -81
- package/dist/components/ImportCollection/DropEventListener.vue2.js +0 -4
- package/dist/components/ImportCollection/ImportCollectionListener.vue.js +0 -77
- package/dist/components/ImportCollection/ImportCollectionListener.vue2.js +0 -4
- package/dist/components/ImportCollection/ImportCollectionModal.vue.js +0 -208
- package/dist/components/ImportCollection/ImportCollectionModal.vue3.js +0 -5
- package/dist/components/ImportCollection/ImportNowButton.vue.js +0 -73
- package/dist/components/ImportCollection/ImportNowButton.vue2.js +0 -4
- package/dist/components/ImportCollection/IntegrationLogo.vue.js +0 -44
- package/dist/components/ImportCollection/IntegrationLogo.vue2.js +0 -4
- package/dist/components/ImportCollection/PasteEventListener.vue.js +0 -24
- package/dist/components/ImportCollection/PasteEventListener.vue2.js +0 -4
- package/dist/components/ImportCollection/PrefetchError.vue.js +0 -27
- package/dist/components/ImportCollection/PrefetchError.vue2.js +0 -4
- package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js +0 -20
- package/dist/components/ImportCollection/UrlQueryParameterChecker.vue2.js +0 -4
- package/dist/components/ImportCollection/WorkspaceSelector.vue.js +0 -134
- package/dist/components/ImportCollection/WorkspaceSelector.vue2.js +0 -4
- package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js +0 -106
- package/dist/components/ImportCollection/utils/get-openapi-version.js +0 -20
- package/dist/components/ImportCollection/utils/import-collection.js +0 -29
- package/dist/components/ImportCollection/utils/is-document.js +0 -9
- package/dist/components/ImportCollection/utils/is-url.js +0 -9
- package/dist/components/ImportCollection/utils/workspace-store-is-empty.js +0 -7
- package/dist/components/OpenApiClientButton.vue.js +0 -7
- package/dist/components/OpenApiClientButton.vue2.js +0 -48
- package/dist/components/ScalarAsciiArt.vue.js +0 -7
- package/dist/components/ScalarAsciiArt.vue2.js +0 -37
- package/dist/components/Search/useSearch.js +0 -78
- package/dist/components/SectionFilter.vue.js +0 -7
- package/dist/components/SectionFilter.vue2.js +0 -64
- package/dist/components/SectionFilterButton.vue.js +0 -23
- package/dist/components/SectionFilterButton.vue2.js +0 -4
- package/dist/components/Server/ServerDropdown.vue.js +0 -132
- package/dist/components/Server/ServerDropdown.vue2.js +0 -4
- package/dist/components/Server/ServerDropdownItem.vue.js +0 -7
- package/dist/components/Server/ServerDropdownItem.vue2.js +0 -84
- package/dist/components/Server/ServerSelector.vue.js +0 -82
- package/dist/components/Server/ServerSelector.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesForm.vue.js +0 -49
- package/dist/components/Server/ServerVariablesForm.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesSelect.vue.js +0 -54
- package/dist/components/Server/ServerVariablesSelect.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesTextbox.vue.js +0 -29
- package/dist/components/Server/ServerVariablesTextbox.vue2.js +0 -4
- package/dist/components/SideNav/DownloadAppButton.vue.js +0 -7
- package/dist/components/SideNav/DownloadAppButton.vue2.js +0 -33
- package/dist/components/SideNav/SideHelp.vue.js +0 -127
- package/dist/components/SideNav/SideHelp.vue2.js +0 -4
- package/dist/components/SideNav/SideNav.vue.js +0 -96
- package/dist/components/SideNav/SideNav.vue2.js +0 -4
- package/dist/components/SideNav/SideNavGroup.vue.js +0 -16
- package/dist/components/SideNav/SideNavGroup.vue2.js +0 -4
- package/dist/components/SideNav/SideNavLink.vue.js +0 -39
- package/dist/components/SideNav/SideNavLink.vue2.js +0 -4
- package/dist/components/SideNav/SideNavRouterLink.vue.js +0 -27
- package/dist/components/SideNav/SideNavRouterLink.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +0 -30
- package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +0 -58
- package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +0 -29
- package/dist/components/Sidebar/Actions/EditSidebarListElement.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +0 -46
- package/dist/components/Sidebar/Actions/SidebarListElementForm.vue2.js +0 -4
- package/dist/components/Sidebar/Sidebar.vue.js +0 -7
- package/dist/components/Sidebar/Sidebar.vue2.js +0 -63
- package/dist/components/Sidebar/SidebarButton.vue.js +0 -33
- package/dist/components/Sidebar/SidebarButton.vue2.js +0 -4
- package/dist/components/Sidebar/SidebarList.vue.js +0 -12
- package/dist/components/Sidebar/SidebarListElement.vue.js +0 -8
- package/dist/components/Sidebar/SidebarListElement.vue2.js +0 -94
- package/dist/components/Sidebar/SidebarListElementActions.vue.js +0 -86
- package/dist/components/Sidebar/SidebarListElementActions.vue2.js +0 -4
- package/dist/components/Sidebar/SidebarToggle.vue.js +0 -49
- package/dist/components/Sidebar/SidebarToggle.vue2.js +0 -4
- package/dist/components/TopNav/TopNav.vue.js +0 -210
- package/dist/components/TopNav/TopNav.vue2.js +0 -4
- package/dist/components/TopNav/TopNavItem.vue.js +0 -7
- package/dist/components/TopNav/TopNavItem.vue2.js +0 -138
- package/dist/components/ViewLayout/ViewLayout.vue.js +0 -18
- package/dist/components/ViewLayout/ViewLayout.vue2.js +0 -4
- package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js +0 -92
- package/dist/components/ViewLayout/ViewLayoutCollapse.vue2.js +0 -4
- package/dist/components/ViewLayout/ViewLayoutContent.vue.js +0 -12
- package/dist/components/ViewLayout/ViewLayoutSection.vue.js +0 -23
- package/dist/components/ViewLayout/ViewLayoutSection.vue2.js +0 -4
- package/dist/constants.js +0 -40
- package/dist/data/httpHeaders.js +0 -537
- package/dist/hooks/useAnalytics.js +0 -11
- package/dist/hooks/useClientConfig.js +0 -7
- package/dist/hooks/useFileDialog.js +0 -21
- package/dist/hooks/useLayout.js +0 -8
- package/dist/hooks/useResponseBody.js +0 -20
- package/dist/hooks/useSidebar.js +0 -28
- package/dist/layouts/App/ApiClientApp.vue.js +0 -70
- package/dist/layouts/App/ApiClientApp.vue3.js +0 -5
- package/dist/layouts/App/MainLayout.vue.js +0 -26
- package/dist/layouts/App/MainLayout.vue2.js +0 -4
- package/dist/layouts/App/create-api-client-app.js +0 -35
- package/dist/layouts/App/hotkeys.js +0 -21
- package/dist/layouts/Modal/ApiClientModal.vue.js +0 -30
- package/dist/layouts/Modal/ApiClientModal.vue2.js +0 -4
- package/dist/layouts/Modal/create-api-client-modal.js +0 -32
- package/dist/layouts/Web/ApiClientWeb.vue.js +0 -64
- package/dist/layouts/Web/ApiClientWeb.vue3.js +0 -5
- package/dist/layouts/Web/create-api-client-web.js +0 -32
- package/dist/libs/create-client.js +0 -189
- package/dist/libs/electron.js +0 -4
- package/dist/libs/env-helpers.js +0 -6
- package/dist/libs/environment-parser.js +0 -18
- package/dist/libs/errors.js +0 -16
- package/dist/libs/event-bus.js +0 -32
- package/dist/libs/extractAttachmentFilename.js +0 -18
- package/dist/libs/find-request.js +0 -23
- package/dist/libs/formatters.js +0 -10
- package/dist/libs/get-request-uid-by-path-method.js +0 -18
- package/dist/libs/getOpenApiDocumentDetails.js +0 -40
- package/dist/libs/hot-keys.js +0 -44
- package/dist/libs/importers/curl.js +0 -53
- package/dist/libs/isUrl.js +0 -7
- package/dist/libs/local-storage.js +0 -41
- package/dist/libs/normalize-headers.js +0 -27
- package/dist/libs/parse-curl.js +0 -59
- package/dist/libs/postman.js +0 -37
- package/dist/libs/send-request/build-request-security.js +0 -35
- package/dist/libs/send-request/create-fetch-body.js +0 -25
- package/dist/libs/send-request/create-fetch-headers.js +0 -11
- package/dist/libs/send-request/create-fetch-query-params.js +0 -33
- package/dist/libs/send-request/create-request-operation.js +0 -140
- package/dist/libs/send-request/decode-buffer.js +0 -9
- package/dist/libs/send-request/set-request-cookies.js +0 -58
- package/dist/libs/string-template.js +0 -42
- package/dist/libs/validate-parameters.js +0 -16
- package/dist/plugins/hooks/usePluginManager.js +0 -10
- package/dist/plugins/plugin-manager.js +0 -26
- package/dist/routes.js +0 -210
- package/dist/store/active-entities.js +0 -118
- package/dist/store/collections.js +0 -73
- package/dist/store/cookies.js +0 -13
- package/dist/store/environment.js +0 -32
- package/dist/store/events.js +0 -35
- package/dist/store/import-spec.js +0 -55
- package/dist/store/request-example.js +0 -43
- package/dist/store/requests.js +0 -97
- package/dist/store/router-params.js +0 -22
- package/dist/store/security-schemes.js +0 -55
- package/dist/store/servers.js +0 -39
- package/dist/store/store.js +0 -144
- package/dist/store/tags.js +0 -45
- package/dist/store/workspace.js +0 -52
- package/dist/v2/blocks/operation-block/OperationBlock.vue.js +0 -242
- package/dist/v2/blocks/operation-block/OperationBlock.vue2.js +0 -4
- package/dist/v2/blocks/operation-block/components/Header.vue.js +0 -7
- package/dist/v2/blocks/operation-block/components/Header.vue2.js +0 -100
- package/dist/v2/blocks/operation-block/helpers/build-request-body.js +0 -40
- package/dist/v2/blocks/operation-block/helpers/build-request-cookie-header.js +0 -31
- package/dist/v2/blocks/operation-block/helpers/build-request-parameters.js +0 -107
- package/dist/v2/blocks/operation-block/helpers/build-request-security.js +0 -46
- package/dist/v2/blocks/operation-block/helpers/build-request.js +0 -70
- package/dist/v2/blocks/operation-block/helpers/de-serialize-parameter.js +0 -25
- package/dist/v2/blocks/operation-block/helpers/decode-buffer.js +0 -9
- package/dist/v2/blocks/operation-block/helpers/filter-global-cookies.js +0 -14
- package/dist/v2/blocks/operation-block/helpers/get-cookie-header-keys.js +0 -4
- package/dist/v2/blocks/operation-block/helpers/get-environment-variables.js +0 -7
- package/dist/v2/blocks/operation-block/helpers/get-example.js +0 -36
- package/dist/v2/blocks/operation-block/helpers/get-resolved-url.js +0 -17
- package/dist/v2/blocks/operation-block/helpers/get-selected-body-content-type.js +0 -4
- package/dist/v2/blocks/operation-block/helpers/get-server-url.js +0 -12
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-request.js +0 -31
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.js +0 -43
- package/dist/v2/blocks/operation-block/helpers/response-cache.js +0 -12
- package/dist/v2/blocks/operation-block/helpers/send-request.js +0 -122
- package/dist/v2/blocks/operation-block/helpers/serialize-parameter.js +0 -49
- package/dist/v2/blocks/operation-block/helpers/validate-path-parameters.js +0 -17
- package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue.js +0 -56
- package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue2.js +0 -4
- package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue.js +0 -30
- package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue2.js +0 -4
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.js +0 -7
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue2.js +0 -227
- package/dist/v2/blocks/operation-code-sample/helpers/find-client.js +0 -22
- package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.js +0 -27
- package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js +0 -40
- package/dist/v2/blocks/operation-code-sample/helpers/get-clients.js +0 -20
- package/dist/v2/blocks/operation-code-sample/helpers/get-custom-code-samples.js +0 -4
- package/dist/v2/blocks/operation-code-sample/helpers/get-example-from-schema.js +0 -302
- package/dist/v2/blocks/operation-code-sample/helpers/get-resolved-ref-deep.js +0 -28
- package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.js +0 -10
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js +0 -67
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js +0 -66
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-parameters.js +0 -172
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.js +0 -55
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-server-url.js +0 -18
- package/dist/v2/blocks/request-block/RequestBlock.vue.js +0 -7
- package/dist/v2/blocks/request-block/RequestBlock.vue2.js +0 -347
- package/dist/v2/blocks/request-block/components/RequestBody.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestBody.vue2.js +0 -191
- package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js +0 -84
- package/dist/v2/blocks/request-block/components/RequestBodyForm.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +0 -135
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestParams.vue.js +0 -78
- package/dist/v2/blocks/request-block/components/RequestParams.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestTable.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestTable.vue2.js +0 -74
- package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js +0 -204
- package/dist/v2/blocks/request-block/components/RequestTableRow.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue2.js +0 -63
- package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +0 -55
- package/dist/v2/blocks/request-block/helpers/files.js +0 -7
- package/dist/v2/blocks/request-block/helpers/get-default-headers.js +0 -26
- package/dist/v2/blocks/request-block/helpers/get-form-body-rows.js +0 -29
- package/dist/v2/blocks/request-block/helpers/get-parameter-content.js +0 -9
- package/dist/v2/blocks/request-block/helpers/get-parameter-schema.js +0 -6
- package/dist/v2/blocks/request-block/helpers/get-request-body-example.js +0 -16
- package/dist/v2/blocks/request-block/helpers/group-by.js +0 -10
- package/dist/v2/blocks/request-block/helpers/is-param-disabled.js +0 -7
- package/dist/v2/blocks/request-block/helpers/validate-parameter.js +0 -32
- package/dist/v2/blocks/response-block/ResponseBlock.vue.js +0 -7
- package/dist/v2/blocks/response-block/ResponseBlock.vue2.js +0 -180
- package/dist/v2/blocks/response-block/components/Headers.vue.js +0 -96
- package/dist/v2/blocks/response-block/components/Headers.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBody.vue2.js +0 -87
- package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js +0 -36
- package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyInfo.vue.js +0 -14
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue2.js +0 -63
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue2.js +0 -41
- package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js +0 -94
- package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js +0 -25
- package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js +0 -52
- package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue3.js +0 -5
- package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js +0 -54
- package/dist/v2/blocks/response-block/components/ResponseCookies.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue2.js +0 -79
- package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue2.js +0 -46
- package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js +0 -67
- package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue2.js +0 -4
- package/dist/v2/blocks/response-block/helpers/extract-filename.js +0 -18
- package/dist/v2/blocks/response-block/helpers/get-content-length.js +0 -12
- package/dist/v2/blocks/response-block/helpers/media-types.js +0 -126
- package/dist/v2/blocks/response-block/helpers/parse-set-cookie.js +0 -12
- package/dist/v2/blocks/response-block/helpers/process-response-body.js +0 -16
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +0 -7
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +0 -208
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +0 -7
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue2.js +0 -95
- package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js +0 -145
- package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue2.js +0 -4
- package/dist/v2/blocks/scalar-address-bar-block/components/httpStatusCodeColors.js +0 -38
- package/dist/v2/blocks/scalar-address-bar-block/hooks/use-loading-animation.js +0 -25
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +0 -184
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js +0 -51
- package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +0 -330
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +0 -7
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue2.js +0 -76
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +0 -165
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue3.js +0 -5
- package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js +0 -91
- package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js +0 -83
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js +0 -46
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js +0 -244
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/auth-options.js +0 -97
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.js +0 -135
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.js +0 -35
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/is-auth-optional.js +0 -7
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/merge-security.js +0 -23
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +0 -139
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.js +0 -27
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.js +0 -64
- package/dist/v2/components/callout/Callout.vue.js +0 -7
- package/dist/v2/components/callout/Callout.vue2.js +0 -43
- package/dist/v2/components/code-input/CodeInput.vue.js +0 -8
- package/dist/v2/components/code-input/CodeInput.vue2.js +0 -213
- package/dist/v2/components/code-input/code-variable-widget.js +0 -106
- package/dist/v2/components/data-table/DataTable.vue.js +0 -38
- package/dist/v2/components/data-table/DataTable.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableCell.vue.js +0 -26
- package/dist/v2/components/data-table/DataTableCell.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableCheckbox.vue.js +0 -53
- package/dist/v2/components/data-table/DataTableCheckbox.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableHeader.vue.js +0 -18
- package/dist/v2/components/data-table/DataTableHeader.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableInput.vue.js +0 -7
- package/dist/v2/components/data-table/DataTableInput.vue2.js +0 -121
- package/dist/v2/components/data-table/DataTableInputSelect.vue.js +0 -149
- package/dist/v2/components/data-table/DataTableInputSelect.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableRow.vue.js +0 -12
- package/dist/v2/components/data-table/DataTableText.vue.js +0 -23
- package/dist/v2/components/data-table/DataTableText.vue2.js +0 -4
- package/dist/v2/components/forms/ConfirmationForm.vue.js +0 -45
- package/dist/v2/components/forms/ConfirmationForm.vue2.js +0 -4
- package/dist/v2/components/layout/CollapsibleSection.vue.js +0 -89
- package/dist/v2/components/layout/CollapsibleSection.vue2.js +0 -4
- package/dist/v2/components/layout/ValueEmitter.vue.js +0 -21
- package/dist/v2/components/layout/ValueEmitter.vue2.js +0 -4
- package/dist/v2/components/modals/DeleteModal.vue.js +0 -31
- package/dist/v2/components/modals/DeleteModal.vue2.js +0 -4
- package/dist/v2/components/modals/ModalClientContainer.vue.js +0 -7
- package/dist/v2/components/modals/ModalClientContainer.vue2.js +0 -60
- package/dist/v2/components/resize/Resize.vue.js +0 -8
- package/dist/v2/components/resize/Resize.vue2.js +0 -36
- package/dist/v2/components/resize/use-split-resize.js +0 -57
- package/dist/v2/components/server/ServerDropdown.vue.js +0 -91
- package/dist/v2/components/server/ServerDropdown.vue2.js +0 -4
- package/dist/v2/components/server/ServerDropdownItem.vue.js +0 -7
- package/dist/v2/components/server/ServerDropdownItem.vue2.js +0 -49
- package/dist/v2/components/sidebar/Sidebar.vue.js +0 -115
- package/dist/v2/components/sidebar/Sidebar.vue2.js +0 -4
- package/dist/v2/components/sidebar/SidebarMenu.vue.js +0 -52
- package/dist/v2/components/sidebar/SidebarMenu.vue2.js +0 -4
- package/dist/v2/components/sidebar/SidebarToggle.vue.js +0 -52
- package/dist/v2/components/sidebar/SidebarToggle.vue2.js +0 -4
- package/dist/v2/features/app/App.vue.js +0 -152
- package/dist/v2/features/app/App.vue3.js +0 -5
- package/dist/v2/features/app/app-events.js +0 -251
- package/dist/v2/features/app/app-state.js +0 -415
- package/dist/v2/features/app/components/AppSidebar.vue.js +0 -7
- package/dist/v2/features/app/components/AppSidebar.vue2.js +0 -304
- package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js +0 -56
- package/dist/v2/features/app/components/CreateWorkspaceModal.vue2.js +0 -4
- package/dist/v2/features/app/components/DesktopTab.vue.js +0 -7
- package/dist/v2/features/app/components/DesktopTab.vue2.js +0 -134
- package/dist/v2/features/app/components/DesktopTabs.vue.js +0 -56
- package/dist/v2/features/app/components/DesktopTabs.vue2.js +0 -4
- package/dist/v2/features/app/components/DownloadAppButton.vue.js +0 -7
- package/dist/v2/features/app/components/DownloadAppButton.vue2.js +0 -19
- package/dist/v2/features/app/components/SidebarItemMenu.vue.js +0 -185
- package/dist/v2/features/app/components/SidebarItemMenu.vue2.js +0 -4
- package/dist/v2/features/app/components/SplashScreen.vue.js +0 -7
- package/dist/v2/features/app/components/SplashScreen.vue2.js +0 -18
- package/dist/v2/features/app/helpers/create-api-client-app.js +0 -36
- package/dist/v2/features/app/helpers/filter-workspaces.js +0 -5
- package/dist/v2/features/app/helpers/get-route-param.js +0 -9
- package/dist/v2/features/app/helpers/group-workspaces.js +0 -23
- package/dist/v2/features/app/helpers/routes.js +0 -157
- package/dist/v2/features/app/hooks/use-document-watcher.js +0 -66
- package/dist/v2/features/app/hooks/use-theme.js +0 -48
- package/dist/v2/features/collection/DocumentCollection.vue.js +0 -336
- package/dist/v2/features/collection/DocumentCollection.vue3.js +0 -5
- package/dist/v2/features/collection/OperationCollection.vue.js +0 -86
- package/dist/v2/features/collection/OperationCollection.vue2.js +0 -4
- package/dist/v2/features/collection/WorkspaceCollection.vue.js +0 -68
- package/dist/v2/features/collection/WorkspaceCollection.vue2.js +0 -4
- package/dist/v2/features/collection/components/Authentication.vue.js +0 -7
- package/dist/v2/features/collection/components/Authentication.vue2.js +0 -154
- package/dist/v2/features/collection/components/Cookies.vue.js +0 -52
- package/dist/v2/features/collection/components/Cookies.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/Editor.vue.js +0 -7
- package/dist/v2/features/collection/components/Editor/Editor.vue2.js +0 -344
- package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js +0 -78
- package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js +0 -83
- package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js +0 -10
- package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js +0 -5
- package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js +0 -5
- package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +0 -21
- package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js +0 -5
- package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js +0 -25
- package/dist/v2/features/collection/components/Environment.vue.js +0 -54
- package/dist/v2/features/collection/components/Environment.vue2.js +0 -4
- package/dist/v2/features/collection/components/Form.vue.js +0 -78
- package/dist/v2/features/collection/components/Form.vue2.js +0 -4
- package/dist/v2/features/collection/components/LabelInput.vue.js +0 -7
- package/dist/v2/features/collection/components/LabelInput.vue2.js +0 -35
- package/dist/v2/features/collection/components/Overview.vue.js +0 -7
- package/dist/v2/features/collection/components/Overview.vue2.js +0 -208
- package/dist/v2/features/collection/components/Servers.vue.js +0 -210
- package/dist/v2/features/collection/components/Servers.vue2.js +0 -4
- package/dist/v2/features/collection/components/Settings.vue.js +0 -61
- package/dist/v2/features/collection/components/Settings.vue2.js +0 -4
- package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue.js +0 -7
- package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue2.js +0 -136
- package/dist/v2/features/collection/components/Tabs.vue.js +0 -44
- package/dist/v2/features/collection/components/Tabs.vue2.js +0 -4
- package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js +0 -13
- package/dist/v2/features/command-palette/TheCommandPalette.vue.js +0 -7
- package/dist/v2/features/command-palette/TheCommandPalette.vue2.js +0 -152
- package/dist/v2/features/command-palette/components/CommandActionForm.vue.js +0 -48
- package/dist/v2/features/command-palette/components/CommandActionForm.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandActionInput.vue.js +0 -52
- package/dist/v2/features/command-palette/components/CommandActionInput.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +0 -211
- package/dist/v2/features/command-palette/components/CommandPaletteExample.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +0 -182
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js +0 -7
- package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue2.js +0 -115
- package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js +0 -78
- package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +0 -221
- package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +0 -114
- package/dist/v2/features/command-palette/components/CommandPaletteTag.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js +0 -40
- package/dist/v2/features/command-palette/components/WatchModeToggle.vue2.js +0 -4
- package/dist/v2/features/command-palette/helpers/generate-unique-slug.js +0 -11
- package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js +0 -31
- package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js +0 -11
- package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +0 -76
- package/dist/v2/features/command-palette/helpers/get-postman-document-details.js +0 -18
- package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js +0 -33
- package/dist/v2/features/command-palette/helpers/is-postman-collection.js +0 -11
- package/dist/v2/features/command-palette/helpers/load-document-from-source.js +0 -52
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +0 -139
- package/dist/v2/features/editor/config.js +0 -16
- package/dist/v2/features/editor/helpers/configure-language-support.js +0 -39
- package/dist/v2/features/editor/helpers/ensure-monaco-environment.js +0 -20
- package/dist/v2/features/editor/helpers/json/create-json-model.js +0 -19
- package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +0 -9
- package/dist/v2/features/editor/helpers/json/json-ast.js +0 -24
- package/dist/v2/features/editor/helpers/json/json-pointer-links.js +0 -72
- package/dist/v2/features/editor/helpers/json/json-pointer-path.js +0 -21
- package/dist/v2/features/editor/helpers/range-to-whole-line.js +0 -8
- package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js +0 -56
- package/dist/v2/features/editor/helpers/theme/load-css-variables.js +0 -21
- package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js +0 -19
- package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js +0 -50
- package/dist/v2/features/editor/hooks/use-editor-markers.js +0 -34
- package/dist/v2/features/editor/hooks/use-editor.js +0 -107
- package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js +0 -27
- package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js +0 -316
- package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js +0 -25
- package/dist/v2/features/environments/EnvironmentsList.vue.js +0 -68
- package/dist/v2/features/environments/EnvironmentsList.vue2.js +0 -4
- package/dist/v2/features/environments/components/Environment.vue.js +0 -66
- package/dist/v2/features/environments/components/Environment.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentColors.vue.js +0 -121
- package/dist/v2/features/environments/components/EnvironmentColors.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js +0 -85
- package/dist/v2/features/environments/components/EnvironmentCreateModal.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js +0 -53
- package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js +0 -109
- package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js +0 -7
- package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue2.js +0 -136
- package/dist/v2/features/global-cookies/components/CookiesTable.vue.js +0 -7
- package/dist/v2/features/global-cookies/components/CookiesTable.vue2.js +0 -189
- package/dist/v2/features/modal/Modal.vue.js +0 -122
- package/dist/v2/features/modal/Modal.vue2.js +0 -4
- package/dist/v2/features/modal/helpers/create-api-client-modal.js +0 -89
- package/dist/v2/features/modal/helpers/map-hidden-clients-config.js +0 -36
- package/dist/v2/features/modal/helpers/resolve-route-parameters.js +0 -29
- package/dist/v2/features/modal/helpers/restore-workspace-state.js +0 -36
- package/dist/v2/features/modal/hooks/use-modal-sidebar.js +0 -93
- package/dist/v2/features/modal/modal-events.js +0 -44
- package/dist/v2/features/operation/Operation.vue.js +0 -126
- package/dist/v2/features/operation/Operation.vue2.js +0 -4
- package/dist/v2/features/operation/helpers/combine-params.js +0 -14
- package/dist/v2/features/operation/helpers/get-security-requirements.js +0 -4
- package/dist/v2/features/operation/helpers/get-selected-security.js +0 -18
- package/dist/v2/features/operation/helpers/get-selected-server.js +0 -4
- package/dist/v2/features/search/helpers/create-fuse-instance.js +0 -43
- package/dist/v2/features/search/helpers/create-search-index.js +0 -63
- package/dist/v2/features/search/hooks/use-search-index.js +0 -18
- package/dist/v2/features/settings/CollectionSettings.vue.js +0 -275
- package/dist/v2/features/settings/CollectionSettings.vue2.js +0 -4
- package/dist/v2/features/settings/DocumentSettings.vue.js +0 -115
- package/dist/v2/features/settings/DocumentSettings.vue2.js +0 -4
- package/dist/v2/features/settings/components/Appearance.vue.js +0 -88
- package/dist/v2/features/settings/components/Appearance.vue2.js +0 -4
- package/dist/v2/features/settings/components/Section.vue.js +0 -35
- package/dist/v2/features/settings/components/Section.vue2.js +0 -4
- package/dist/v2/features/settings/helpers/get-theme-colors.js +0 -16
- package/dist/v2/helpers/drag-handle-factory.js +0 -120
- package/dist/v2/helpers/generate-location-id.js +0 -10
- package/dist/v2/helpers/get-active-environment.js +0 -22
- package/dist/v2/helpers/get-active-proxy-url.js +0 -5
- package/dist/v2/helpers/get-servers.js +0 -66
- package/dist/v2/helpers/get-tab-details.js +0 -34
- package/dist/v2/helpers/handle-hotkeys.js +0 -54
- package/dist/v2/helpers/is-url.js +0 -5
- package/dist/v2/helpers/slugify.js +0 -4
- package/dist/v2/helpers/storage.js +0 -16
- package/dist/v2/hooks/use-color-mode.js +0 -24
- package/dist/v2/hooks/use-global-hot-keys.js +0 -11
- package/dist/v2/hooks/use-scroll-lock.js +0 -21
- package/dist/v2/workspace-events.js +0 -252
- package/dist/views/Collection/Collection.vue.js +0 -4
- package/dist/views/Collection/Collection.vue2.js +0 -49
- package/dist/views/Collection/CollectionAuthentication.vue.js +0 -7
- package/dist/views/Collection/CollectionAuthentication.vue2.js +0 -56
- package/dist/views/Collection/CollectionCookies.vue.js +0 -4
- package/dist/views/Collection/CollectionCookies.vue2.js +0 -16
- package/dist/views/Collection/CollectionEnvironment.vue.js +0 -5
- package/dist/views/Collection/CollectionEnvironment.vue2.js +0 -229
- package/dist/views/Collection/CollectionInfoForm.vue.js +0 -7
- package/dist/views/Collection/CollectionInfoForm.vue2.js +0 -63
- package/dist/views/Collection/CollectionNavigation.vue.js +0 -133
- package/dist/views/Collection/CollectionNavigation.vue2.js +0 -4
- package/dist/views/Collection/CollectionOverview.vue.js +0 -4
- package/dist/views/Collection/CollectionOverview.vue2.js +0 -34
- package/dist/views/Collection/CollectionScripts.vue.js +0 -4
- package/dist/views/Collection/CollectionScripts.vue2.js +0 -16
- package/dist/views/Collection/CollectionServerForm.vue.js +0 -75
- package/dist/views/Collection/CollectionServerForm.vue2.js +0 -4
- package/dist/views/Collection/CollectionServers.vue.js +0 -4
- package/dist/views/Collection/CollectionServers.vue2.js +0 -94
- package/dist/views/Collection/CollectionSettings.vue.js +0 -4
- package/dist/views/Collection/CollectionSettings.vue2.js +0 -118
- package/dist/views/Collection/CollectionSync.vue.js +0 -4
- package/dist/views/Collection/CollectionSync.vue2.js +0 -16
- package/dist/views/Collection/components/EnvironmentForm.vue.js +0 -7
- package/dist/views/Collection/components/EnvironmentForm.vue2.js +0 -270
- package/dist/views/Collection/components/MarkdownInput.vue.js +0 -7
- package/dist/views/Collection/components/MarkdownInput.vue2.js +0 -100
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js +0 -50
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue2.js +0 -4
- package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js +0 -62
- package/dist/views/Components/CodeSnippet/helpers/get-har-request.js +0 -82
- package/dist/views/Components/CodeSnippet/helpers/get-snippet.js +0 -30
- package/dist/views/Cookies/CookieForm.vue.js +0 -34
- package/dist/views/Cookies/CookieForm.vue2.js +0 -4
- package/dist/views/Cookies/CookieModal.vue.js +0 -7
- package/dist/views/Cookies/CookieModal.vue2.js +0 -88
- package/dist/views/Cookies/Cookies.vue.js +0 -4
- package/dist/views/Cookies/Cookies.vue2.js +0 -162
- package/dist/views/Environment/Environment.vue.js +0 -4
- package/dist/views/Environment/Environment.vue2.js +0 -402
- package/dist/views/Environment/EnvironmentColorModal.vue.js +0 -42
- package/dist/views/Environment/EnvironmentColorModal.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentColors.vue.js +0 -118
- package/dist/views/Environment/EnvironmentColors.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentModal.vue.js +0 -131
- package/dist/views/Environment/EnvironmentModal.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentVariableDropdown.vue.js +0 -129
- package/dist/views/Environment/EnvironmentVariableDropdown.vue2.js +0 -4
- package/dist/views/Environment/handle-drag.js +0 -32
- package/dist/views/Request/Request.vue.js +0 -7
- package/dist/views/Request/Request.vue2.js +0 -105
- package/dist/views/Request/RequestRoot.vue.js +0 -7
- package/dist/views/Request/RequestRoot.vue2.js +0 -123
- package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js +0 -52
- package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js +0 -246
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js +0 -135
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue2.js +0 -209
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue2.js +0 -116
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js +0 -50
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js +0 -219
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js +0 -28
- package/dist/views/Request/RequestSection/RequestBody.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestBody.vue2.js +0 -451
- package/dist/views/Request/RequestSection/RequestCodeExample.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestCodeExample.vue2.js +0 -170
- package/dist/views/Request/RequestSection/RequestParams.vue.js +0 -162
- package/dist/views/Request/RequestSection/RequestParams.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestPathParams.vue.js +0 -96
- package/dist/views/Request/RequestSection/RequestPathParams.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestSection.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestSection.vue2.js +0 -247
- package/dist/views/Request/RequestSection/RequestTable.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestTable.vue2.js +0 -227
- package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestTableTooltip.vue2.js +0 -61
- package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js +0 -29
- package/dist/views/Request/RequestSection/helpers/getting-started.js +0 -13
- package/dist/views/Request/RequestSection/helpers/update-scheme.js +0 -16
- package/dist/views/Request/RequestSidebar.vue.js +0 -7
- package/dist/views/Request/RequestSidebar.vue2.js +0 -341
- package/dist/views/Request/RequestSidebarItem.vue.js +0 -8
- package/dist/views/Request/RequestSidebarItem.vue2.js +0 -464
- package/dist/views/Request/RequestSidebarItemMenu.vue.js +0 -7
- package/dist/views/Request/RequestSidebarItemMenu.vue2.js +0 -236
- package/dist/views/Request/RequestSubpageHeader.vue.js +0 -7
- package/dist/views/Request/RequestSubpageHeader.vue2.js +0 -79
- package/dist/views/Request/ResponseSection/RequestHeaders.vue.js +0 -96
- package/dist/views/Request/ResponseSection/RequestHeaders.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBody.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBody.vue2.js +0 -83
- package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js +0 -36
- package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js +0 -14
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue2.js +0 -63
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue2.js +0 -42
- package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js +0 -74
- package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js +0 -25
- package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js +0 -50
- package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue3.js +0 -5
- package/dist/views/Request/ResponseSection/ResponseCookies.vue.js +0 -51
- package/dist/views/Request/ResponseSection/ResponseCookies.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +0 -103
- package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js +0 -96
- package/dist/views/Request/ResponseSection/ResponseHeaders.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue2.js +0 -38
- package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js +0 -67
- package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseSection.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseSection.vue2.js +0 -189
- package/dist/views/Request/components/WorkspaceDropdown.vue.js +0 -182
- package/dist/views/Request/components/WorkspaceDropdown.vue2.js +0 -4
- package/dist/views/Request/consts/mediaTypes.js +0 -131
- package/dist/views/Request/consts/new-auth-options.js +0 -100
- package/dist/views/Request/handle-drag.js +0 -42
- package/dist/views/Request/hooks/useOpenApiWatcher.js +0 -57
- package/dist/views/Request/libs/auth.js +0 -52
- package/dist/views/Request/libs/oauth2.js +0 -127
- package/dist/views/Request/libs/request.js +0 -40
- package/dist/views/Request/libs/watch-mode.js +0 -337
- package/dist/views/Settings/Settings.vue.js +0 -4
- package/dist/views/Settings/Settings.vue2.js +0 -29
- package/dist/views/Settings/SettingsGeneral.vue.js +0 -286
- package/dist/views/Settings/SettingsGeneral.vue2.js +0 -4
- package/dist/views/Settings/components/SettingsAppearance.vue.js +0 -85
- package/dist/views/Settings/components/SettingsAppearance.vue2.js +0 -4
- package/dist/views/Settings/components/SettingsSection.vue.js +0 -24
- 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":";;;;;;;;;;;;;;;;;;AAKA,SAAgB,sBAAsB,OAAuB;CAC3D,MAAM,qBAAqB,OAAO,KAAK,MAAM,WAAW,CAAC,WAAW;CACpE,MAAM,sBAAsB,OAAO,KAAK,MAAM,YAAY,CAAC,WAAW;AAEtE,QAAO,sBAAsB;;;;;;;;;;;;;;;EEL/B,MAAM,OAAO;EAIb,MAAM,aAAa,IAAa,MAAK;EAErC,IAAI,cAAc;AAGlB,kBAAgB;AACd,YAAS,iBAAiB,aAAa,gBAAe;AACtD,YAAS,iBAAiB,aAAa,gBAAe;AACtD,YAAS,iBAAiB,YAAY,eAAc;AACpD,YAAS,iBAAiB,QAAQ,WAAU;IAC7C;AAGD,wBAAsB;AACpB,YAAS,oBAAoB,aAAa,gBAAe;AACzD,YAAS,oBAAoB,YAAY,eAAc;AACvD,YAAS,oBAAoB,aAAa,gBAAe;AACzD,YAAS,oBAAoB,QAAQ,WAAU;IAChD;EAED,SAAS,UAAU,OAA2B;AAC5C,UAAO,MAAM,cAAc,MAAM,SAAS,YAAY,IAAI;;EAI5D,SAAS,WAAW,OAAkB;AACpC,SAAM,gBAAe;AACrB,cAAW,QAAQ;AACnB,iBAAc;AAGd,OAAI,UAAU,MAAM,CAClB;AAGF,OAAI,MAAM,cAAc;IAEtB,MAAM,cAAc,MAAM,aAAa,QAAQ,OAAO,CAAC,QAAQ,UAAU,GAAE;AAE3E,QAAI,YACF,MAAK,SAAS,aAAa,MAAM,OAAM;aAGhC,MAAM,aAAa,MAAM,SAAS,GAAG;KAC5C,MAAM,OAAO,MAAM,aAAa,MAAM;AACtC,SAAI,CAAC,KACH;KAGF,MAAM,SAAS,IAAI,YAAW;AAE9B,YAAO,UAAU,MAAM;AACrB,UAAI,EAAE,UAAU,OAAO,EAAE,OAAO,WAAW,SACzC,MAAK,SAAS,EAAE,OAAO,QAAQ,MAAM,OAAM;;AAI/C,YAAO,WAAW,KAAI;;;;EAK5B,SAAS,eAAe,OAAkB;AACxC,SAAM,gBAAe;;EAGvB,SAAS,gBAAgB,OAAkB;AACzC,SAAM,gBAAe;AACrB;AAEA,OAAI,gBAAgB,EAClB,YAAW,QAAQ;;EAIvB,SAAS,gBAAgB,OAAkB;AACzC,SAAM,gBAAe;AACrB;AAGA,OAAI,UAAU,MAAM,CAClB;AAGF,OAAI,MAAM,cAAc;IACtB,MAAM,QAAQ,MAAM,aAAa;AACjC,SAAK,MAAM,QAAQ,MACjB,KACE,MAAM,SAAS,YACf,MAAM,MAAM,SAAS,OAAO,IAC5B,MAAM,MAAM,SAAS,MAAM,IAC3B,MAAM,MAAM,SAAS,OAAM,EAC3B;AACA,gBAAW,QAAQ;AACnB;;;AAIN,cAAW,QAAQ;;;uBAKnB,YAoBa,YAAA;IAnBX,kBAAiB;IACjB,gBAAe;IACf,kBAAiB;IACjB,cAAa;;2BAeP,CAbE,WAAA,SAAA,WAAA,EADR,mBAcM,OAdN,cAcM,CAXJ,mBAUM,OAVN,cAUM,CATJ,mBAKM,OAAA,MAAA,CAJJ,YAGkB,MAAA,WAAA,EAAA;KAFhB,MAAK;KACL,MAAK;KACL,WAAU;oCAEd,mBAEM,OAAA,EAFD,OAAM,4BAA0B,EAAC,qCAEtC,GAAA,EAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA;;;;;;;;;;;AC9GR,SAAgB,mBAAmB;CACjC,MAAM,iBAAiB,SAAyB;EAC9C,OAAO;EACP,SAAS;EACT,KAAK;EACL,OAAO;EACP,OAAO;EACR,CAAC;CAEF,SAAS,sBAAsB;AAC7B,SAAO,OAAO,gBAAgB;GAC5B,OAAO;GACP,SAAS;GACT,KAAK;GACL,OAAO;GACP,OAAO;GACR,CAAC;;CAGJ,eAAe,YAAY,OAAsB,UAAmB;AAClE,MAAI,CAAC,MACH,QAAO;GACL,OAAO;GACP,SAAS;GACT,KAAK;GACL;GACA,OAAO;GACR;AAGH,MAAI;GAEF,MAAM,gBAAgB,MAAM,QAAQ,OAAO,EACzC,QAAQ,QAAQ;AACd,WAAO,MAAM,WAAW,gBAAgB,UAAU,IAAI,GAAG,KAAK,EAC5D,OAAO,YACR,CAAC;MAEL,CAAC;AAGF,OAAI,OAAO,kBAAkB,YAAY,kBAAkB,KAGzD,QAAO;IACL,OAAO;IACP,SAJW,KAAK,UAAU,eAAe,MAAM,EAAE;IAKjD,KAAK;IACL,OAAO;IACR;AAIH,OAAI,kBAAkB,KAAA,EACpB,QAAO;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL;IACA,OAAO,yCAAyC;IACjD;AAGH,OAAI,CAAC,QAAM,cAAc,CACvB,QAAO;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL;IACA,OAAO;IACR;GAGH,MAAM,MAAM;GAGZ,MAAM,SAAS,MAAM,uBAAuB,KAAK;IAC/C;IACA,OAAO;IACR,CAAC;AAEF,OAAI,CAAC,OAAO,GACV,QAAO;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL;IACA,OAAO,kBAAkB,IAAI,cAAc,CAAC,OAAO,QAAQ,OAAO,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;IAChG;AAKH,UAAO;IACL,OAAO;IACP,SAJc,MAAM,OAAO,MAAM;IAKjC;IACA,OAAO;IACR;WACM,OAAY;AACnB,WAAQ,MAAM,sBAAsB,MAAM;AAE1C,UAAO;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL;IACA,OAAO,MAAM;IACd;;;CAIL,eAAe,0BAA0B,OAAsB,UAAmB;AAChF,SAAO,OAAO,gBAAgB;GAC5B,OAAO;GACP,SAAS;GACT,KAAK;GACL;GACA,OAAO;GACR,CAAC;EAEF,MAAM,SAAS,MAAM,YAAY,OAAO,SAAS;AACjD,SAAO,OAAO,gBAAgB,OAAO;AACrC,SAAO;;AAGT,QAAO;EACL;EACA,aAAa;EACb;EACD;;;;;;;ACjJH,SAAgB,MAAM,OAA+B;AAEnD,KAAI,CAAC,MACH,QAAO;CAIT,MAAM,UAAU,MAAM,MAAM;AAG5B,KAAI,CAAC,QAAQ,WAAW,UAAU,IAAI,CAAC,QAAQ,WAAW,WAAW,CACnE,QAAO;AAIT,QAAO,QAAQ,QAAQ,gBAAgB,GAAG,CAAC,SAAS;;;;ACZtD,eAAsB,iBAAiB,EACrC,OACA,WACA,QACA,WACA,WACA,WAQC;AACD,KAAI;AACF,MAAI,UAAU,WAAW;AACvB,OAAI,MAAM,OAAO,EAAE;IACjB,MAAM,CAAC,OAAO,YAAY,MAAM,MAAM,kBAAkB,QAAQ,UAAU,KAAK;KAC7E,UAAU,UAAU;KACT;KACZ,CAAC;AAEF,QAAI,CAAC,MACH,WAAU,UAAU,WAAW;AAGjC;;AAKF,cAFiB,MAAM,MAAM,eAAe,QAAQ,UAAU,IAAI,GAE9C,WAAW;;UAE1B,OAAO;AACd,UAAQ,MAAe;;;;;;;;;;;;;;;;;EExB3B,MAAM,OAAO;EAIb,MAAM,SAAS,WAAU;EACzB,MAAM,QAAQ,cAAa;EAC3B,MAAM,EAAE,oBAAoB,mBAAkB;EAC9C,MAAM,EAAE,UAAU,WAAU;EAE5B,SAAS,yBAAyB;AAC3B,oBAAiB;IACpB;IACA,WAAW,gBAAgB;IAC3B,QAAQ,QAAA;IACR,WAAW,QAAA;IACX,UAAU,YAAoC;AAC5C,SAAI,YAAY;AACd,yCAAmC,WAAU;AAC7C,YAAM,qBAAqB,OAAM;AACjC,WAAK,iBAAgB;;;IAGzB,QAAQ,OAAO;AACb,aAAQ,MAAM,sBAAsB,MAAK;AAGzC,WAAM,kBADgB,OAAiB,WAAW,mBACV,QAAO;;IAElD,CAAA;;EAGH,SAAS,mCAAmC,YAAyB;AACnE,OAAI,CAAC,WACH;AAGF,UAAO,KAAK;IACV,MAAM;IACN,QAAQ;KACN,WAAW,gBAAgB,OAAO;KAClC,SAAS,YAAY,SAAS;KAC/B;IACF,CAAA;;;UAKe,QAAA,UAAA,WAAA,EAAhB,mBA2BW,UAAA,EAAA,KAAA,GAAA,EAAA,CAxBD,QAAA,YAAO,YAAA,WAAA,EADf,YAOe,MAAA,aAAA,EAAA;;IALb,OAAM;IACN,MAAK;IACL,MAAK;IACJ,SAAO;;2BAEV,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAFkC,uBAElC,GAAA,CAAA,EAAA,CAAA;;uBAEA,YAQe,MAAA,aAAA,EAAA;;IANb,OAAM;IACN,MAAK;IACL,MAAK;IACL,SAAQ;IACP,SAAO;;2BAEV,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAFkC,2BAElC,GAAA,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;uBE1EF,mBAYM,OAZN,cAYM;8CAZ0D,8FAG9D,GAAA;IACQ,QAAA,OAAO,MAAA,QAAK,CAAC,QAAA,IAAG,IAAA,WAAA,EADxB,mBAKyC,KAAA;;KAHtC,MAAM,QAAA;KACP,KAAI;KACJ,QAAO;kBACC;+CACV,mBAEyC,QAFzC,aAEyC;8CAAA,MAC3C,GAAA;;;;;;;;ACpBF,SAAgB,WAAW,OAA+B;AAExD,KAAI,CAAC,SAAS,MAAM,MAAM,CAAC,WAAW,EACpC,QAAO;CAGT,MAAM,UAAU,MAAM,MAAM;AAG5B,KAAI,QAAQ,WAAW,UAAU,IAAI,QAAQ,WAAW,WAAW,CACjE,QAAO;AAGT,QAAO;;;;;;;ACPT,SAAgB,kBAAkB,OAAsB;AACtD,KAAI,CAAC,WAAW,MAAM,CACpB,QAAO;AAGT,KAAI;EACF,MAAM,SAAS,KAAK,MAAM,SAAS,GAAG;AAEtC,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,WAAW,OAAO,QAAQ;AAGnC,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,WAAW,OAAO,QAAQ;AAGnC,SAAO;SACD;AAIR,KAAI;EACF,MAAM,SAAS,MAAM,SAAS,GAAG;AAEjC,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,WAAW,OAAO,QAAQ;AAGnC,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,WAAW,OAAO,QAAQ;AAGnC,SAAO;SACD;AAIR,QAAO;;;;;;;;;;;;;;EE3BT,MAAM,EAAE,oBAAoB,mBAAkB;EAC9C,MAAM,EAAE,YAAY,sBAAsB,cAAa;EACvD,MAAM,EAAE,SAAS,WAAU;EAE3B,MAAM,QAAQ,UAAS;EACvB,MAAM,EAAE,UAAU,WAAU;EAC5B,MAAM,gBAAgB,IAAI,GAAE;EAE5B,MAAM,kBAAkB,QAAgB;AACtC,OAAI,QAAQ,gBAAgB,OAAO,IACjC;AAGF,QAAK;IACH,MAAM;IACN,QAAQ,EACN,WAAW,KACZ;IACF,CAAA;;EAGH,MAAM,8BAA8B;AAClC,OAAI,CAAC,cAAc,MAAM,MAAM,EAAE;AAC/B,UAAM,oDAAoD,QAAO;AACjE;;GAGF,MAAM,eAAe,kBAAkB,IAAI,EACzC,MAAM,cAAc,OACrB,CAAA;AAED,SAAM,0BAA0B,aAAa,KAAK,GAAE;AAEpD,QAAK;IACH,MAAM;IACN,QAAQ,EACN,WAAW,aAAa,KACzB;IACF,CAAA;AAED,iBAAc,QAAQ;AACtB,SAAM,MAAK;;;2DAIX,mBAqDM,OArDN,cAqDM,CApDJ,YAmDiB,MAAA,eAAA,EAAA,MAAA;IApCJ,OAAK,cAE0B;uBADxC,mBAoBqB,UAAA,MAAA,WAnBQ,MAAA,WAAU,GAA7B,WAAW,QAAG;0BADxB,YAoBqB,MAAA,mBAAA,EAAA;OAlBlB,KAAK;OACN,OAAM;OACL,SAAK,eAAA,WAAO,eAAe,IAAG,EAAA,CAAA,OAAA,CAAA;;8BAYzB,CAXN,mBAWM,OAAA,EAVJ,OAAK,eAAA,CAAC,iEACiB,MAAA,gBAAe,EAAE,QAAQ,MAAA,yBAAA,iCAAA,CAAA,EAAA,EAAA,CAKhD,YAGkB,MAAA,WAAA,EAAA;QAFhB,OAAM;QACN,MAAK;QACL,WAAU;gBAEd,mBAES,QAFT,cAES,gBADP,UAAU,KAAI,EAAA,EAAA,CAAA,CAAA;;;;KAGlB,YAAyB,MAAA,sBAAA,CAAA;KAGzB,YASqB,MAAA,mBAAA,EAAA;MARnB,OAAM;MACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,MAAK,CAAC,MAAI;;6BAKZ,CAJN,mBAIM,OAJN,cAIM,CAHJ,YAEc,MAAA,WAAA,EAAA;OADZ,MAAK;OACL,MAAK;sCAET,mBAA0B,QAAA,MAApB,iBAAa,GAAA,EAAA,CAAA;;;;2BApCR,CAXf,YAWe,MAAA,aAAA,EAAA;KAVb,OAAM;KACN,SAAQ;;4BAQF,CAPN,mBAOM,OAPN,cAOM,CANJ,mBAEK,MAFL,cAEK,gBADA,MAAA,gBAAe,EAAE,KAAI,EAAA,EAAA,EAE1B,YAEc,MAAA,WAAA,EAAA;MADZ,MAAK;MACL,MAAK;;;;;SA2Cf,YAqBc,MAAA,YAAA,EAAA;IApBZ,WAAU;IACV,OAAM;IACL,MAAM;IACN,OAAO,MAAA,MAAK;IACb,SAAQ;;2BAeD,CAdP,mBAcO,QAAA;KAbL,OAAM;KACL,UAAM,cAAU,uBAAqB,CAAA,UAAA,CAAA;uBACtC,mBAIgB,SAAA;gFAHQ,QAAA;KACtB,OAAM;KACN,aAAY;KACZ,MAAK;iCAHI,cAAA,MAAa,CAAA,CAAA,EAIxB,YAKe,MAAA,aAAA,EAAA;KAJb,OAAM;KACL,UAAQ,CAAG,cAAA,MAAc,MAAI;KAC9B,MAAK;;4BAEP,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAFgB,cAEhB,GAAA,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EE7GN,MAAM,QAAQ;EAMd,MAAM,QAAQ;EAId,MAAM,EAAE,oBAAoB,mBAAkB;EAC9C,MAAM,EAAE,mBAAmB,WAAW,cAAa;EAEnD,MAAM,EAAE,gBAAgB,aAAa,wBAAwB,kBAAiB;EAE9E,MAAM,aAAa,UAAS;EAE5B,MAAM,YAAY,IAAa,KAAI;;AAGnC,SAAO,QAAQ,SAAS,WAAW,MAAM,CAAA;;EAGzC,MAAM,kBAAkB,eAAe;AACrC,OAAI;AACF,WAAO,UACL,eAAe,WAAW,MAAM,UAAU,GAC3C;WACK;AACN;;IAEH;;EAGD,MAAM,QAAQ,eAAe,gBAAgB,OAAO,MAAM,MAAK;;EAG/D,MAAM,UAAU,eACd,kBAAkB,eAAe,WAAW,MAAM,UAAU,GAAG,CACjE;EAEA,MAAM,EAAE,kBAAkB,cAAa;EACvC,MAAM,EAAE,iBAAiB,WAAU;;EAGnC,MAAM,cAAc,eAAe;AACjC,OAAI;IACF,MAAM,QAAQ,aAAa,MAAM;IACjC,MAAM,OACJ,cAAc,UAAU,SAAS,MAAM,YAAY,MAAM;AAE3D,QAAI,KACF,QAAO,mBAAmB,KAAc;WAEpC;AAIR,UAAO;IACR;;AAGD,cACQ,MAAM,QACZ,OAAO,UAAU;AACf,wBAAoB;AAEpB,OAAI,MAAM,MAAM,EAAE;AAKhB,QAFE,MAAM,aAAa,CAAC,SAAS,OAAO,CAAC,SAAS,MAAM,UAAS,EAEvC;KAEtB,MAAM,EAAE,UAAU,MAAM,YACtB,OACA,gBAAgB,OAAO,SACzB;AAEA,SAAI,MACF,YAAW,MAAK;SAEhB,YAAW,MAAK;AAGlB;;AAIG,gBAAY,OAAO,gBAAgB,OAAO,SAAQ;AAEvD,eAAW,MAAK;AAEhB;;AAGF,OAAI,CAAC,MACH,YAAW,MAAK;YACP,WAAW,MAAM,IAAI,kBAAkB,MAAM,CACtD,YAAW,MAAK;OAEhB,YAAW,MAAK;IAGtB;EAEA,MAAM,SAAS,eAAe,CAAC,CAAC,MAAM,UAAU,MAAM,MAAM,OAAO,CAAA;EACnE,MAAM,aAAa,eAAe,CAAC,CAAC,MAAM,UAAU,WAAW,MAAM,OAAO,CAAA;;EAG5E,MAAM,4BAA4B,eAAe;AAC/C,UAAO,eAAe,OAAO,WAAW,eAAe,IAAG;IAC3D;EAGD,MAAM,mBAAmB,QAAiB;AACxC,YAAS,KAAK,UAAU,OAAO,oBAAmB;AAElD,OAAI,QAAQ,OAAO,SAAS,WAAW,UAAU,WAAW,KAC1D,UAAS,KAAK,UAAU,IAAI,iBAAgB;OAE5C,UAAS,KAAK,UAAU,OAAO,iBAAgB;;;EAKnD,MAAM,mBAAmB;AACvB,YAAS,KAAK,UAAU,OAAO,iBAAgB;AAC/C,YAAS,KAAK,UAAU,IAAI,oBAAmB;;AAIjD,cACQ,WAAW,OAChB,WAAW;AACV,OAAI,OACF,iBAAgB,KAAI;OAEpB,aAAW;IAGjB;AAGA,cACQ,MAAM,cACN;AACJ,mBAAgB,KAAI;IAExB;AAGA,kBAAgB;AACd,mBAAgB,KAAI;IACrB;AAGD,oBAAkB;AAChB,YAAS,KAAK,UAAU,OAAO,iBAAgB;AAC/C,YAAS,KAAK,UAAU,OAAO,oBAAmB;IACnD;EACD,MAAM,gBAAgB,eAElB,gBAAgB,SAChB,0BAA0B,SAC1B,MAAM,eACN,UAAU,eAAe,MAAM,YAAkC,CAAC,UACtE;EAEA,SAAS,uBAAuB;GAE9B,MAAM,wBAAwB,UAC5B,SAAS,SAAS,MAA2B;GAE/C,MAAM,qBACJ,MAAM,eAAe,qBAAqB,MAAM,YAAW,GACvD,MAAM,cACN;AAEN,OAAI,0BAA0B,MAC5B,mBAAkB,KAChB,gBAAgB,OAAO,KACvB,WACA,mBACF;AAEF,SAAM,iBAAgB;;;uBAKtB,YA8Hc,MAAA,YAAA,EAAA;IA7HZ,MAAK;IACJ,OAAO,MAAA,WAAU;;2BAGS,CADnB,cAAA,SAAA,WAAA,EADR,mBAE2B,OAAA;;KAAzB,WAAQ,cAAA;6DACV,mBAuHM,OAvHN,YAuHM;+BArHJ,mBASM,OAAA,EATD,OAAM,iBAAe,EAAA;MACxB,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;MAC/B,mBAAkC,OAAA,EAA7B,OAAM,sBAAoB,CAAA;;KAGjC,mBAgFM,OAAA,EA/EJ,OAAK,eAAA,CAAC,yGAAuG,EAAA,aACtF,MAAA,eAAc,CAAC,UAAK,WAAA,CAAA,CAAA,EAAA,EAAA,CAItB,MAAA,eAAc,CAAC,SAAS,MAAA,eAAc,CAAC,UAAK,UAAA,CAAgB,QAAA,SAAA,WAAA,EADjF,mBASW,UAAA,EAAA,KAAA,GAAA,EAAA,CAAA,OAAA,OAAA,OAAA,KAJT,mBAEM,OAAA,EAFD,OAAM,mDAAiD,EAAC,+BAE7D,GAAA,GACA,YAA8D,uBAAA,EAA9C,KAAK,MAAA,eAAc,EAAE,SAAS,MAAM,QAAA,EAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,KAAA,WAAA,EAGtD,mBA+DW,UAAA,EAAA,KAAA,GAAA,EAAA;MA5DD,0BAAA,SAAA,WAAA,EADR,mBAMM,OANN,YAMM,CAHJ,mBAEM,OAFN,YAEM,CADJ,YAA8C,yBAAA,EAA5B,aAAa,QAAA,aAAW,EAAA,MAAA,GAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAMjC,YAAA,SAAA,WAAA,EADb,mBAIuB,OAAA;;OAFrB,KAAI;OACJ,OAAM;OACL,KAAK,YAAA;;OAIC,YAAA,SAAA,WAAA,EADT,mBAIM,OAJN,YAIM,gBADD,MAAA,SAAK,sBAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;gCAGV,mBAGM,OAAA,EAHD,OAAM,yDAAuD,EAAC,qFAGnE,GAAA;MAGgB,QAAA,SAAA,WAAA,EAAhB,mBAgCW,UAAA,EAAA,KAAA,GAAA,EAAA;OA/BT,mBAQM,OARN,YAQM,CAPJ,YAM2C,yBAAA;QALxC,QAA2B,MAAA,eAAc,EAAE,OAAO,MAAA,eAAc,EAAE,WAAW,QAAA;QAG9E,SAAQ;QACP,WAAW,UAAA;QACX,kBAAgB;;OAGrB,mBAKM,OALN,YAKM,CAJJ,mBAGM,OAHN,YAGM,CAAA,OAAA,OAAA,OAAA,KAAA,gBAFoE,gBAC7D,GAAA,GAAA,YAAqB,0BAAA,CAAA,CAAA,CAAA,CAAA;OAIpB,MAAA,eAAc,EAAE,OAAA,WAAA,EAC9B,mBAWM,OAXN,aAWM,CAVJ,mBAIM,OAJN,aAIM,CAHJ,YAE2B,yBAAA;oBADhB,UAAA;+EAAS,QAAA;QACjB,gBAAgB;gEAErB,mBAIM,OAAA,EAHJ,OAAM,8DAA4D,EAAC,qFAGrE,GAAA,EAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;;;KAOV,mBAuBM,OAvBN,aAuBM,CAtBJ,mBAqBM,OArBN,aAqBM,CApBJ,mBASM,OATN,aASM,CAPJ,mBAMI,KANJ,aAMI,CAHF,YAEc,MAAA,WAAA,EAAA;MADZ,MAAK;MACL,MAAK;uCAGX,mBASO,QAAA,EATD,OAAM,6CAA2C,EAAA;MACrD,mBAKI,KAAA;OAJF,OAAM;OACN,MAAK;OACL,QAAO;SAAS,yBAElB;MACA,mBAAM,KAAA;sBAAA,uCAER;;;;;;;;;;;;;;EE/UV,MAAM,OAAO;AAKb,kBAAgB;AACd,YAAS,iBAAiB,SAAS,YAAW;IAC/C;AAGD,wBAAsB;AACpB,YAAS,oBAAoB,SAAS,YAAW;IAClD;EAGD,SAAS,YAAY,OAAuB;GAE1C,MAAM,SAAS,MAAM;GAGrB,MAAM,eAAe,QACnB,SAAS,eAAe,UAAU,SAAS,aAAa,CAC1D;AAEA,OACE,WACC,OAAO,YAAY,WAClB,OAAO,YAAY,cACnB,OAAO,qBACP,cAEF;AAIF,OAAI,MAAM,eAAe;IACvB,MAAM,aAAa,MAAM,cAAc,QAAQ,OAAM;AAErD,QAAI,WACF,MAAK,SAAS,YAAY,MAAM,QAAO;;;;;;;;;;;;;;EEvC7C,MAAM,OAAO;AAUb,kBAAgB;GACd,MAAM,kBAAkB,IAAI,gBAAgB,OAAO,SAAS,OAAM;GAElE,MAAM,oBAAoB,gBAAgB,IAAI,MAAK;AAEnD,OAAI,kBACF,MACE,SACA,mBACA,gBAAgB,IAAI,cAAc,EAClC,QACF;IAEH;;;;;;;;;;;EEXD,MAAM,QAAQ,cAAa;;EAG3B,MAAM,SAAS,IAAmB,KAAI;EAEtC,MAAM,cAAc,IAAmB,KAAI;EAE3C,MAAM,YAAY,IAAuC,KAAI;;EAG7D,eAAe,YAAY;AACzB,UAAO,QAAQ;AACf,eAAY,QAAQ;AACpB,aAAU,QAAQ;AAElB,SAAM,UAAS;;;EAIjB,eAAe,YACb,WACA,iBAAgC,MAChC,cACA;AAEA,SAAM,WAAU;AAGhB,OAAI,sBAAsB,MAAM,EAAE;AAChC,YAAQ,KAAK,iDAAiD,UAAS;AAEvE,QAAI,MAAM,uBAAuB,UAAU,CACzC;AAGF,YAAQ,KAAK,yCAAyC,UAAS;;AAIjE,UAAO,QAAQ;AACf,eAAY,QAAQ;AACpB,aAAU,QAAQ;;EAGpB,MAAM,SAAS,WAAU;EACzB,MAAM,EAAE,oBAAoB,mBAAkB;EAC9C,MAAM,EAAE,UAAU,WAAU;EAE5B,SAAS,uBACP,QACkB;AAClB,OAAI,CAAC,OACH,QAAO,QAAQ,QAAQ,MAAK;AAG9B,UAAO,IAAI,SAAkB,YAAY;AAClC,qBAAiB;KACpB;KACA,WAAW,gBAAgB;KAC3B;KAEA,WAAW;KACX,UAAU,YAAoC;AAC5C,UAAI,YAAY;AACd,0CAAmC,WAAU;AAC7C,aAAM,qBAAqB,OAAM;AACjC,eAAQ,KAAI;AAEZ;;AAIF,YAAM,4CAA4C,QAAO;AAEzD,cAAQ,MAAK;;KAEf,QAAQ,OAAO;AACb,cAAQ,MAAM,sBAAsB,MAAK;AAEzC,YAAM,kBADgB,OAAiB,WAAW,mBACV,QAAO;AAE/C,cAAQ,MAAK;;KAEhB,CAAA;KACF;;EAGH,SAAS,mCAAmC,YAAyB;AACnE,OAAI,CAAC,WACH;AAGF,UAAO,KAAK;IACV,MAAM;IACN,QAAQ;KACN,WAAW,gBAAgB,OAAO;KAClC,SAAS,YAAY,SAAS;KAC/B;IACF,CAAA;;;;IAMD,YAIgC,+BAAA;KAH7B,WAAW,UAAA;KACX,aAAa,YAAA;KACb,QAAQ,OAAA;KACR,kBAAgB;;;;;;IAGnB,YAA2C,4BAAA,EAAtB,SAAO,aAAW,CAAA;IACvC,YAA0C,2BAAA,EAAtB,SAAO,aAAW,CAAA;IACtC,YAAiD,kCAAA,EAAtB,SAAO,aAAW,CAAA;IAG7C,WAAQ,KAAA,QAAA,UAAA"}
|
|
@@ -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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"}
|