@scalar/api-client 2.38.1 → 2.38.2
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 +9 -0
- package/dist/AddressBar-B4xnl66I.js +302 -0
- package/dist/AddressBar-B4xnl66I.js.map +1 -0
- package/dist/App-BVH4lIe8.js +533 -0
- package/dist/App-BVH4lIe8.js.map +1 -0
- package/dist/App-CvClwSlM.js +2510 -0
- package/dist/App-CvClwSlM.js.map +1 -0
- package/dist/CodeInput-C-igR77V.js +694 -0
- package/dist/CodeInput-C-igR77V.js.map +1 -0
- package/dist/CodeSnippet-D7Heh1nd.js +218 -0
- package/dist/CodeSnippet-D7Heh1nd.js.map +1 -0
- package/dist/Collection-4MT9WmDD.js +219 -0
- package/dist/Collection-4MT9WmDD.js.map +1 -0
- package/dist/CollectionAuthentication-MHWQpw74.js +56 -0
- package/dist/CollectionAuthentication-MHWQpw74.js.map +1 -0
- package/dist/CollectionCookies-DyjPPMdt.js +19 -0
- package/dist/CollectionCookies-DyjPPMdt.js.map +1 -0
- package/dist/CollectionEnvironment-Dw35vIqo.js +514 -0
- package/dist/CollectionEnvironment-Dw35vIqo.js.map +1 -0
- package/dist/CollectionOverview-TUdDIu5f.js +131 -0
- package/dist/CollectionOverview-TUdDIu5f.js.map +1 -0
- package/dist/CollectionScripts-CMNlBlby.js +19 -0
- package/dist/CollectionScripts-CMNlBlby.js.map +1 -0
- package/dist/CollectionServers-BrjTCfDe.js +168 -0
- package/dist/CollectionServers-BrjTCfDe.js.map +1 -0
- package/dist/CollectionSettings-HVSlp2Gv.js +87 -0
- package/dist/CollectionSettings-HVSlp2Gv.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-CL8k4CoN.js +964 -0
- package/dist/CommandPalette-CL8k4CoN.js.map +1 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js +622 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js.map +1 -0
- package/dist/Cookies-DbOKTi1f.js +284 -0
- package/dist/Cookies-DbOKTi1f.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-yaU5g-kP.js +166 -0
- package/dist/DataTableInput-yaU5g-kP.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-DJatRQIg.js +416 -0
- package/dist/Environment-DJatRQIg.js.map +1 -0
- package/dist/EnvironmentModal-DBEJ4Kzj.js +288 -0
- package/dist/EnvironmentModal-DBEJ4Kzj.js.map +1 -0
- package/dist/Form-CSKzyHGO.js +83 -0
- package/dist/Form-CSKzyHGO.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-DfX1UQ5u.js +804 -0
- package/dist/ImportCollection-DfX1UQ5u.js.map +1 -0
- package/dist/IntegrationLogo-B9EDW8db.js +51 -0
- package/dist/IntegrationLogo-B9EDW8db.js.map +1 -0
- package/dist/MainLayout-BEFMl1ud.js +281 -0
- package/dist/MainLayout-BEFMl1ud.js.map +1 -0
- package/dist/Modal-sQ9vH6MN.js +67 -0
- package/dist/Modal-sQ9vH6MN.js.map +1 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js +65 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js.map +1 -0
- package/dist/Request-gscRsGQ8.js +212 -0
- package/dist/Request-gscRsGQ8.js.map +1 -0
- package/dist/RequestAuth-BzBfIysT.js +989 -0
- package/dist/RequestAuth-BzBfIysT.js.map +1 -0
- package/dist/RequestRoot-3Bj8JZD-.js +1611 -0
- package/dist/RequestRoot-3Bj8JZD-.js.map +1 -0
- package/dist/RequestSection-HhdJj9hW.js +1582 -0
- package/dist/RequestSection-HhdJj9hW.js.map +1 -0
- package/dist/ResponseSection-DMJ0tw8E.js +949 -0
- package/dist/ResponseSection-DMJ0tw8E.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-DnA_BzPS.js +303 -0
- package/dist/Server-DnA_BzPS.js.map +1 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js +145 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js.map +1 -0
- package/dist/Settings-CYZzdJPO.js +347 -0
- package/dist/Settings-CYZzdJPO.js.map +1 -0
- package/dist/Sidebar-C6AdX6-N.js +73 -0
- package/dist/Sidebar-C6AdX6-N.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-CSxJTn6F.js +183 -0
- package/dist/components-CSxJTn6F.js.map +1 -0
- package/dist/components-ChixwQhN.js +61 -0
- package/dist/components-ChixwQhN.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-BUCwrBzc.js +30 -0
- package/dist/get-resolved-url-BUCwrBzc.js.map +1 -0
- package/dist/get-server-url-o3On8CEr.js +32 -0
- package/dist/get-server-url-o3On8CEr.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-BnMIKAOh.js +1624 -0
- package/dist/operation-block-BnMIKAOh.js.map +1 -0
- package/dist/operation-code-sample-ZUTueV3v.js +1726 -0
- package/dist/operation-code-sample-ZUTueV3v.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-DwsGy64Q.js +1466 -0
- package/dist/request-block-DwsGy64Q.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--Vs6IBU1.js +425 -0
- package/dist/scalar-address-bar-block--Vs6IBU1.js.map +1 -0
- package/dist/scalar-auth-selector-block-DI3DLag9.js +1886 -0
- package/dist/scalar-auth-selector-block-DI3DLag9.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-DpSUVhjp.js +1512 -0
- package/dist/store-DpSUVhjp.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/components/Header.vue.d.ts +2 -2
- 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/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-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/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/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/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/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/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":"CommandPalette-CL8k4CoN.js","names":[],"sources":["../src/constants.ts","../src/components/CommandPalette/CommandPaletteCollection.vue","../src/components/CommandPalette/CommandPaletteCollection.vue","../src/components/CommandPalette/CommandPaletteExample.vue","../src/components/CommandPalette/CommandPaletteExample.vue","../src/components/CommandPalette/CommandPaletteImport.vue","../src/components/CommandPalette/CommandPaletteImport.vue","../src/components/CommandPalette/CommandPaletteImportCurl.vue","../src/components/CommandPalette/CommandPaletteImportCurl.vue","../src/components/CommandPalette/CommandPaletteServer.vue","../src/components/CommandPalette/CommandPaletteServer.vue","../src/components/CommandPalette/CommandPaletteTag.vue","../src/components/CommandPalette/CommandPaletteTag.vue","../src/components/CommandPalette/CommandPaletteWorkspace.vue","../src/components/CommandPalette/CommandPaletteWorkspace.vue","../src/components/CommandPalette/TheCommandPalette.vue","../src/components/CommandPalette/TheCommandPalette.vue"],"sourcesContent":["export const ROUTES = [\n {\n displayName: 'Request',\n to: {\n name: 'request.root',\n },\n icon: 'ExternalLink',\n },\n {\n displayName: 'Cookies',\n to: {\n name: 'cookies.default',\n },\n icon: 'Cookie',\n },\n {\n displayName: 'Environment',\n to: {\n name: 'environment.default',\n },\n icon: 'Brackets',\n },\n {\n displayName: 'Settings',\n to: {\n name: 'settings.default',\n },\n icon: 'Settings',\n },\n // {\n // displayName: 'Servers',\n // to: {\n // name: 'servers.default',\n // },\n // icon: 'Server',\n // },\n] as const\n","<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { LibraryIcon } from '@scalar/icons/library'\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\n\nimport IconSelector from '@/components/IconSelector.vue'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { activeWorkspace } = useActiveEntities()\nconst { collectionMutators } = useWorkspace()\nconst collectionName = ref('')\nconst collectionIcon = ref('interface-content-folder')\nconst { toast } = useToasts()\n\nconst handleSubmit = () => {\n if (!collectionName.value) {\n toast('Please enter a name before creating a collection.', 'error')\n return\n }\n if (!activeWorkspace.value?.uid) {\n toast('No active workspace found.', 'error')\n return\n }\n\n collectionMutators.add(\n {\n 'openapi': '3.1.0',\n 'info': {\n title: collectionName.value,\n version: '0.0.1',\n },\n 'x-scalar-icon': collectionIcon.value,\n },\n activeWorkspace.value?.uid,\n )\n emits('close')\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!collectionName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"collectionName\"\n label=\"Collection Name\"\n placeholder=\"Collection Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <IconSelector\n v-model=\"collectionIcon\"\n placement=\"bottom-start\">\n <ScalarButton\n class=\"aspect-square h-auto px-0\"\n variant=\"outlined\">\n <LibraryIcon\n class=\"text-c-2 size-4 stroke-[1.75]\"\n :src=\"collectionIcon\" />\n </ScalarButton>\n </IconSelector>\n </template>\n <template #submit> Create Collection </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { LibraryIcon } from '@scalar/icons/library'\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\n\nimport IconSelector from '@/components/IconSelector.vue'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { activeWorkspace } = useActiveEntities()\nconst { collectionMutators } = useWorkspace()\nconst collectionName = ref('')\nconst collectionIcon = ref('interface-content-folder')\nconst { toast } = useToasts()\n\nconst handleSubmit = () => {\n if (!collectionName.value) {\n toast('Please enter a name before creating a collection.', 'error')\n return\n }\n if (!activeWorkspace.value?.uid) {\n toast('No active workspace found.', 'error')\n return\n }\n\n collectionMutators.add(\n {\n 'openapi': '3.1.0',\n 'info': {\n title: collectionName.value,\n version: '0.0.1',\n },\n 'x-scalar-icon': collectionIcon.value,\n },\n activeWorkspace.value?.uid,\n )\n emits('close')\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!collectionName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"collectionName\"\n label=\"Collection Name\"\n placeholder=\"Collection Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <IconSelector\n v-model=\"collectionIcon\"\n placement=\"bottom-start\">\n <ScalarButton\n class=\"aspect-square h-auto px-0\"\n variant=\"outlined\">\n <LibraryIcon\n class=\"text-c-2 size-4 stroke-[1.75]\"\n :src=\"collectionIcon\" />\n </ScalarButton>\n </IconSelector>\n </template>\n <template #submit> Create Collection </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarDropdown,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\nimport type { Request } from '@scalar/oas-utils/entities/spec'\nimport { isDefined } from '@scalar/oas-utils/helpers'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport HttpMethod from '@/components/HttpMethod/HttpMethod.vue'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst props = defineProps<{\n /** The request uid to pre-select */\n metaData?: { itemUid: string }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { push } = useRouter()\nconst { activeRequest, activeWorkspace, activeWorkspaceRequests } =\n useActiveEntities()\nconst { requests, requestExampleMutators } = useWorkspace()\nconst { toast } = useToasts()\n\nconst exampleName = ref('')\nconst selectedRequest = ref<Request | undefined>(\n // Ensure we pre-select the correct request\n requests[props.metaData?.itemUid ?? ''] ?? activeRequest.value,\n)\n\n/** Select request in dropdown */\nconst handleSelect = (request: Request) => (selectedRequest.value = request)\n\n/** Add a new request example */\nconst handleSubmit = () => {\n if (!exampleName.value) {\n toast('Please enter a name before creating an example.', 'error')\n return\n }\n\n if (!selectedRequest.value) {\n toast('Please select a request before creating an example.', 'error')\n return\n }\n\n const example = requestExampleMutators.add(\n selectedRequest.value,\n exampleName.value,\n )\n\n if (!example) {\n return\n }\n\n // Go to new request example\n push({\n name: 'request.examples',\n params: {\n [PathId.Workspace]: activeWorkspace.value?.uid,\n [PathId.Request]: selectedRequest.value.uid,\n [PathId.Examples]: example.uid,\n },\n })\n\n emits('close')\n}\n\n/** Requests for the active workspace */\nconst visibleRequests = computed<Request[]>(() =>\n activeWorkspaceRequests.value.map((uid) => requests?.[uid]).filter(isDefined),\n)\n</script>\n<template>\n <CommandActionForm\n v-if=\"selectedRequest\"\n :disabled=\"!exampleName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"exampleName\"\n label=\"Example Name\"\n placeholder=\"Example Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarDropdown\n placement=\"bottom\"\n resize>\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-full justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"handleSelect(selectedRequest)\">\n {{ selectedRequest.summary }}\n <div class=\"flex items-center gap-2\">\n <HttpMethod :method=\"selectedRequest.method\" />\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </div>\n </ScalarButton>\n <template #items>\n <div class=\"custom-scroll max-h-40\">\n <ScalarDropdownItem\n v-for=\"request in visibleRequests\"\n :key=\"request.uid\"\n class=\"flex h-7 w-full items-center justify-between px-1 pr-[26px]\"\n @click=\"handleSelect(request)\">\n {{ request.summary }}\n <HttpMethod :method=\"request.method\" />\n </ScalarDropdownItem>\n </div>\n </template>\n </ScalarDropdown>\n </template>\n <template #submit>Create Example</template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarDropdown,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\nimport type { Request } from '@scalar/oas-utils/entities/spec'\nimport { isDefined } from '@scalar/oas-utils/helpers'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport HttpMethod from '@/components/HttpMethod/HttpMethod.vue'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst props = defineProps<{\n /** The request uid to pre-select */\n metaData?: { itemUid: string }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { push } = useRouter()\nconst { activeRequest, activeWorkspace, activeWorkspaceRequests } =\n useActiveEntities()\nconst { requests, requestExampleMutators } = useWorkspace()\nconst { toast } = useToasts()\n\nconst exampleName = ref('')\nconst selectedRequest = ref<Request | undefined>(\n // Ensure we pre-select the correct request\n requests[props.metaData?.itemUid ?? ''] ?? activeRequest.value,\n)\n\n/** Select request in dropdown */\nconst handleSelect = (request: Request) => (selectedRequest.value = request)\n\n/** Add a new request example */\nconst handleSubmit = () => {\n if (!exampleName.value) {\n toast('Please enter a name before creating an example.', 'error')\n return\n }\n\n if (!selectedRequest.value) {\n toast('Please select a request before creating an example.', 'error')\n return\n }\n\n const example = requestExampleMutators.add(\n selectedRequest.value,\n exampleName.value,\n )\n\n if (!example) {\n return\n }\n\n // Go to new request example\n push({\n name: 'request.examples',\n params: {\n [PathId.Workspace]: activeWorkspace.value?.uid,\n [PathId.Request]: selectedRequest.value.uid,\n [PathId.Examples]: example.uid,\n },\n })\n\n emits('close')\n}\n\n/** Requests for the active workspace */\nconst visibleRequests = computed<Request[]>(() =>\n activeWorkspaceRequests.value.map((uid) => requests?.[uid]).filter(isDefined),\n)\n</script>\n<template>\n <CommandActionForm\n v-if=\"selectedRequest\"\n :disabled=\"!exampleName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"exampleName\"\n label=\"Example Name\"\n placeholder=\"Example Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarDropdown\n placement=\"bottom\"\n resize>\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-full justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"handleSelect(selectedRequest)\">\n {{ selectedRequest.summary }}\n <div class=\"flex items-center gap-2\">\n <HttpMethod :method=\"selectedRequest.method\" />\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </div>\n </ScalarButton>\n <template #items>\n <div class=\"custom-scroll max-h-40\">\n <ScalarDropdownItem\n v-for=\"request in visibleRequests\"\n :key=\"request.uid\"\n class=\"flex h-7 w-full items-center justify-between px-1 pr-[26px]\"\n @click=\"handleSelect(request)\">\n {{ request.summary }}\n <HttpMethod :method=\"request.method\" />\n </ScalarDropdownItem>\n </div>\n </template>\n </ScalarDropdown>\n </template>\n <template #submit>Create Example</template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarCodeBlock,\n ScalarIcon,\n ScalarTooltip,\n useLoadingState,\n} from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useFileDialog } from '@/hooks'\nimport {\n convertPostmanToOpenApi,\n getOpenApiDocumentDetails,\n getPostmanDocumentDetails,\n isPostmanCollection,\n isUrl,\n} from '@/libs'\nimport { importCurlCommand } from '@/libs/importers/curl'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\nimport WatchModeToggle from './WatchModeToggle.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst router = useRouter()\n\nconst { activeWorkspace, activeCollection } = useActiveEntities()\nconst { importSpecFile, importSpecFromUrl, events } = useWorkspace()\nconst { toast } = useToasts()\nconst loader = useLoadingState()\n\nconst inputContent = ref('')\nconst watchMode = ref(true)\n\nconst documentDetails = computed(() => {\n if (isPostmanCollection(inputContent.value)) {\n return getPostmanDocumentDetails(inputContent.value)\n }\n return getOpenApiDocumentDetails(inputContent.value)\n})\n\nconst documentType = computed(() =>\n documentDetails.value ? documentDetails.value.type : 'json',\n)\n\nfunction navigateToCollectionPage(collection?: { uid: string }) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'collection',\n params: {\n [PathId.Workspace]: activeWorkspace.value?.uid,\n [PathId.Collection]: collection.uid,\n },\n })\n}\n\nconst isInputUrl = computed(() => isUrl(inputContent.value))\nconst isInputDocument = computed(() => !!documentDetails.value)\n\nconst { open: openSpecFileDialog } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n const reader = new FileReader()\n reader.onload = async (e) => {\n const text = e.target?.result as string\n try {\n if (isPostmanCollection(text)) {\n const workspace = await importSpecFile(\n convertPostmanToOpenApi(text),\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n } else {\n const workspace = await importSpecFile(\n text,\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n }\n toast('Import successful', 'info')\n emits('close')\n } catch (error) {\n console.error(error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n }\n }\n reader.readAsText(file)\n }\n },\n multiple: false,\n accept: '.json,.yaml,.yml',\n})\n\n// Enable watch mode if the input is a URL\nwatch(isInputUrl, (newVal) => {\n if (!newVal) {\n watchMode.value = false\n }\n})\n\n// Disable watch mode if the input is not a URL\nwatch(inputContent, (newVal) => {\n if (!isUrl(newVal)) {\n watchMode.value = false\n }\n})\n\nasync function importCollection() {\n if (!inputContent.value || loader.isLoading) {\n return\n }\n\n loader.start()\n try {\n if (isInputUrl.value) {\n const [error, workspace] = await importSpecFromUrl(\n inputContent.value,\n activeWorkspace.value?.uid ?? '',\n {\n proxyUrl: activeWorkspace.value?.proxyUrl,\n watchMode: watchMode.value,\n },\n )\n\n navigateToCollectionPage(workspace?.collection)\n\n if (error) {\n toast(\n 'There was a possible CORS error while importing your spec, please make sure this server is allowed in the CORS policy of your OpenAPI document.',\n 'error',\n { timeout: 5_000 },\n )\n await loader.invalidate()\n return\n }\n } else if (isInputDocument.value) {\n if (isPostmanCollection(inputContent.value)) {\n const workspace = await importSpecFile(\n convertPostmanToOpenApi(inputContent.value),\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n toast('Successfully converted Postman collection', 'info')\n } else {\n const workspace = await importSpecFile(\n inputContent.value,\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n }\n } else {\n toast('Import failed: Invalid URL or OpenAPI document', 'error')\n await loader.invalidate()\n return\n }\n\n await loader.clear()\n\n emits('close')\n toast('Import successful', 'info')\n } catch (error) {\n console.error('[importCollection]', error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n await loader.invalidate()\n toast(`Import failed: ${errorMessage}`, 'error')\n }\n}\n\nconst handleInput = (value: string) => {\n if (value.trim().toLowerCase().startsWith('curl')) {\n events.commandPalette.emit({\n commandName: 'Import from cURL',\n metaData: {\n parsedCurl: importCurlCommand(value),\n collectionUid: activeCollection.value?.uid,\n },\n })\n return\n }\n inputContent.value = value\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!inputContent.trim()\"\n :loader\n @submit=\"importCollection\">\n <template v-if=\"!documentDetails || isUrl(inputContent)\">\n <CommandActionInput\n :modelValue=\"inputContent\"\n placeholder=\"OpenAPI/Swagger/Postman URL or cURL\"\n @onDelete=\"emits('back', $event)\"\n @update:modelValue=\"handleInput\" />\n </template>\n <template v-else>\n <!-- OpenAPI document preview -->\n <div class=\"flex justify-between\">\n <div class=\"text-c-2 min-h-8 w-full py-2 pl-12 text-center text-xs\">\n Preview\n </div>\n <ScalarButton\n class=\"hover:bg-b-2 relative ml-auto max-h-8 gap-1.5 p-2 text-xs\"\n variant=\"ghost\"\n @click=\"inputContent = ''\">\n Clear\n </ScalarButton>\n </div>\n <ScalarCodeBlock\n v-if=\"documentDetails && !isUrl(inputContent)\"\n class=\"bg-b-2 mt-1 max-h-[40dvh] rounded border px-2 py-1 text-sm\"\n :content=\"inputContent\"\n :copy=\"false\"\n :lang=\"documentType\" />\n </template>\n <template #options>\n <div class=\"flex w-full flex-row items-center justify-between gap-3\">\n <!-- Upload -->\n <ScalarButton\n class=\"hover:bg-b-2 relative max-h-8 gap-1.5 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"openSpecFileDialog\">\n JSON, or YAML File\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"Upload\"\n size=\"md\" />\n </ScalarButton>\n\n <!-- Watch -->\n <ScalarTooltip\n :content=\"\n isInputUrl\n ? 'Watch mode automatically updates the API client when the OpenAPI URL content changes, ensuring your client remains up-to-date.'\n : 'Watch mode is only available for URL imports. When enabled it automatically updates the API client when the OpenAPI URL content changes.'\n \"\n placement=\"bottom\">\n <WatchModeToggle\n v-model=\"watchMode\"\n :disabled=\"!isInputUrl\" />\n </ScalarTooltip>\n </div>\n </template>\n <template #submit>\n Import\n <template v-if=\"isInputUrl\"> from URL </template>\n <template v-else-if=\"documentDetails && documentType\">\n <template v-if=\"documentDetails.title\">\n \"{{ documentDetails.title }}\"\n </template>\n <template v-else>\n {{ documentDetails.version }}\n </template>\n </template>\n <template v-else> Collection </template>\n </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarCodeBlock,\n ScalarIcon,\n ScalarTooltip,\n useLoadingState,\n} from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useFileDialog } from '@/hooks'\nimport {\n convertPostmanToOpenApi,\n getOpenApiDocumentDetails,\n getPostmanDocumentDetails,\n isPostmanCollection,\n isUrl,\n} from '@/libs'\nimport { importCurlCommand } from '@/libs/importers/curl'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\nimport WatchModeToggle from './WatchModeToggle.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst router = useRouter()\n\nconst { activeWorkspace, activeCollection } = useActiveEntities()\nconst { importSpecFile, importSpecFromUrl, events } = useWorkspace()\nconst { toast } = useToasts()\nconst loader = useLoadingState()\n\nconst inputContent = ref('')\nconst watchMode = ref(true)\n\nconst documentDetails = computed(() => {\n if (isPostmanCollection(inputContent.value)) {\n return getPostmanDocumentDetails(inputContent.value)\n }\n return getOpenApiDocumentDetails(inputContent.value)\n})\n\nconst documentType = computed(() =>\n documentDetails.value ? documentDetails.value.type : 'json',\n)\n\nfunction navigateToCollectionPage(collection?: { uid: string }) {\n if (!collection) {\n return\n }\n\n router.push({\n name: 'collection',\n params: {\n [PathId.Workspace]: activeWorkspace.value?.uid,\n [PathId.Collection]: collection.uid,\n },\n })\n}\n\nconst isInputUrl = computed(() => isUrl(inputContent.value))\nconst isInputDocument = computed(() => !!documentDetails.value)\n\nconst { open: openSpecFileDialog } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n const reader = new FileReader()\n reader.onload = async (e) => {\n const text = e.target?.result as string\n try {\n if (isPostmanCollection(text)) {\n const workspace = await importSpecFile(\n convertPostmanToOpenApi(text),\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n } else {\n const workspace = await importSpecFile(\n text,\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n }\n toast('Import successful', 'info')\n emits('close')\n } catch (error) {\n console.error(error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n toast(`Import failed: ${errorMessage}`, 'error')\n }\n }\n reader.readAsText(file)\n }\n },\n multiple: false,\n accept: '.json,.yaml,.yml',\n})\n\n// Enable watch mode if the input is a URL\nwatch(isInputUrl, (newVal) => {\n if (!newVal) {\n watchMode.value = false\n }\n})\n\n// Disable watch mode if the input is not a URL\nwatch(inputContent, (newVal) => {\n if (!isUrl(newVal)) {\n watchMode.value = false\n }\n})\n\nasync function importCollection() {\n if (!inputContent.value || loader.isLoading) {\n return\n }\n\n loader.start()\n try {\n if (isInputUrl.value) {\n const [error, workspace] = await importSpecFromUrl(\n inputContent.value,\n activeWorkspace.value?.uid ?? '',\n {\n proxyUrl: activeWorkspace.value?.proxyUrl,\n watchMode: watchMode.value,\n },\n )\n\n navigateToCollectionPage(workspace?.collection)\n\n if (error) {\n toast(\n 'There was a possible CORS error while importing your spec, please make sure this server is allowed in the CORS policy of your OpenAPI document.',\n 'error',\n { timeout: 5_000 },\n )\n await loader.invalidate()\n return\n }\n } else if (isInputDocument.value) {\n if (isPostmanCollection(inputContent.value)) {\n const workspace = await importSpecFile(\n convertPostmanToOpenApi(inputContent.value),\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n toast('Successfully converted Postman collection', 'info')\n } else {\n const workspace = await importSpecFile(\n inputContent.value,\n activeWorkspace.value?.uid ?? '',\n )\n navigateToCollectionPage(workspace?.collection)\n }\n } else {\n toast('Import failed: Invalid URL or OpenAPI document', 'error')\n await loader.invalidate()\n return\n }\n\n await loader.clear()\n\n emits('close')\n toast('Import successful', 'info')\n } catch (error) {\n console.error('[importCollection]', error)\n const errorMessage = (error as Error)?.message || 'Unknown error'\n await loader.invalidate()\n toast(`Import failed: ${errorMessage}`, 'error')\n }\n}\n\nconst handleInput = (value: string) => {\n if (value.trim().toLowerCase().startsWith('curl')) {\n events.commandPalette.emit({\n commandName: 'Import from cURL',\n metaData: {\n parsedCurl: importCurlCommand(value),\n collectionUid: activeCollection.value?.uid,\n },\n })\n return\n }\n inputContent.value = value\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!inputContent.trim()\"\n :loader\n @submit=\"importCollection\">\n <template v-if=\"!documentDetails || isUrl(inputContent)\">\n <CommandActionInput\n :modelValue=\"inputContent\"\n placeholder=\"OpenAPI/Swagger/Postman URL or cURL\"\n @onDelete=\"emits('back', $event)\"\n @update:modelValue=\"handleInput\" />\n </template>\n <template v-else>\n <!-- OpenAPI document preview -->\n <div class=\"flex justify-between\">\n <div class=\"text-c-2 min-h-8 w-full py-2 pl-12 text-center text-xs\">\n Preview\n </div>\n <ScalarButton\n class=\"hover:bg-b-2 relative ml-auto max-h-8 gap-1.5 p-2 text-xs\"\n variant=\"ghost\"\n @click=\"inputContent = ''\">\n Clear\n </ScalarButton>\n </div>\n <ScalarCodeBlock\n v-if=\"documentDetails && !isUrl(inputContent)\"\n class=\"bg-b-2 mt-1 max-h-[40dvh] rounded border px-2 py-1 text-sm\"\n :content=\"inputContent\"\n :copy=\"false\"\n :lang=\"documentType\" />\n </template>\n <template #options>\n <div class=\"flex w-full flex-row items-center justify-between gap-3\">\n <!-- Upload -->\n <ScalarButton\n class=\"hover:bg-b-2 relative max-h-8 gap-1.5 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"openSpecFileDialog\">\n JSON, or YAML File\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"Upload\"\n size=\"md\" />\n </ScalarButton>\n\n <!-- Watch -->\n <ScalarTooltip\n :content=\"\n isInputUrl\n ? 'Watch mode automatically updates the API client when the OpenAPI URL content changes, ensuring your client remains up-to-date.'\n : 'Watch mode is only available for URL imports. When enabled it automatically updates the API client when the OpenAPI URL content changes.'\n \"\n placement=\"bottom\">\n <WatchModeToggle\n v-model=\"watchMode\"\n :disabled=\"!isInputUrl\" />\n </ScalarTooltip>\n </div>\n </template>\n <template #submit>\n Import\n <template v-if=\"isInputUrl\"> from URL </template>\n <template v-else-if=\"documentDetails && documentType\">\n <template v-if=\"documentDetails.title\">\n \"{{ documentDetails.title }}\"\n </template>\n <template v-else>\n {{ documentDetails.version }}\n </template>\n </template>\n <template v-else> Collection </template>\n </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n type ScalarComboboxOption,\n} from '@scalar/components'\nimport type {\n RequestMethod,\n RequestPayload,\n} from '@scalar/oas-utils/entities/spec'\nimport { REGEX } from '@scalar/oas-utils/helpers'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport HttpMethod from '@/components/HttpMethod/HttpMethod.vue'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\ntype ExtendedRequestPayload = RequestPayload & {\n url?: string\n}\n\nconst { metaData } = defineProps<{\n metaData: {\n parsedCurl: ExtendedRequestPayload\n collectionUid: string\n }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst workspaceContext = useWorkspace()\n\nconst { activeWorkspaceCollections, activeCollection, activeWorkspace } =\n useActiveEntities()\nconst { requestMutators, serverMutators, servers } = workspaceContext\n\nconst selectedServerUid = ref('')\nconst router = useRouter()\n\nconst collections = computed(() =>\n activeWorkspaceCollections.value.map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Unititled Collection',\n })),\n)\n\nconst selectedCollection = ref<ScalarComboboxOption | undefined>(\n metaData.collectionUid\n ? collections.value.find(\n (collection) => collection.id === metaData.collectionUid,\n )\n : collections.value.find(\n (collection) => collection.id === activeCollection.value?.uid,\n ),\n)\n\nfunction createRequestFromCurl({ collectionUid }: { collectionUid: string }) {\n if (!metaData.parsedCurl) {\n return\n }\n\n const collection = activeWorkspaceCollections.value.find(\n (c) => c.uid === collectionUid,\n )\n\n if (!collection) {\n return\n }\n\n const isDrafts = collection?.info?.title === 'Drafts'\n\n // Prevent adding servers to drafts\n if (!isDrafts && metaData.parsedCurl.servers) {\n // Find existing server to avoid duplication\n const existingServer = Object.values(servers).find(\n (s) => s.url === metaData.parsedCurl?.servers?.[0],\n )\n if (existingServer) {\n selectedServerUid.value = existingServer.uid\n } else {\n selectedServerUid.value = serverMutators.add(\n { url: metaData.parsedCurl.servers[0] ?? '/' },\n collection.uid,\n ).uid\n\n emitCustomEvent(wrapper.value?.$el, 'scalar-add-server', {\n server: { url: metaData.parsedCurl.servers[0] ?? '/' },\n options: {\n disableOldStoreUpdate: true,\n },\n })\n }\n }\n\n // Add the request and use the url if it's a draft as a path\n const newRequest = requestMutators.add(\n {\n summary: isDrafts\n ? metaData.parsedCurl?.url?.replace(REGEX.PROTOCOL, '')\n : metaData.parsedCurl?.path,\n path: isDrafts ? metaData.parsedCurl?.url : metaData.parsedCurl?.path,\n method: metaData.parsedCurl?.method,\n parameters: metaData.parsedCurl?.parameters,\n selectedServerUid: isDrafts ? undefined : selectedServerUid.value,\n requestBody: metaData.parsedCurl?.requestBody,\n },\n collection.uid,\n )\n\n if (newRequest && activeWorkspace.value?.uid) {\n router.push({\n name: 'request',\n params: {\n [PathId.Workspace]: activeWorkspace.value.uid,\n [PathId.Collection]: collection.uid,\n [PathId.Request]: newRequest.uid,\n },\n })\n }\n\n emits('close')\n}\n\nconst handleImportClick = () => {\n createRequestFromCurl({\n collectionUid: selectedCollection.value?.id ?? '',\n })\n}\n\nconst wrapper = useTemplateRef('wrapper-ref')\n</script>\n<template>\n <div class=\"text-c-2 flex-center py-1.5 text-sm\">Import cURL</div>\n <CommandActionForm\n ref=\"wrapper-ref\"\n class=\"mt-1.5 min-h-fit\"\n @submit=\"handleImportClick\">\n <div\n class=\"flex h-9 flex-row items-center gap-2 rounded border p-[3px] text-sm\">\n <div class=\"flex h-full\">\n <HttpMethod\n :isEditable=\"false\"\n isSquare\n :method=\"(metaData.parsedCurl?.method as RequestMethod) || 'get'\" />\n </div>\n <span class=\"scroll-timeline-x whitespace-nowrap\">\n {{ metaData.parsedCurl?.servers?.[0] || ''\n }}{{ metaData.parsedCurl?.path || '' }}\n </span>\n </div>\n\n <template #options>\n <div class=\"flex\">\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"collections\">\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-full justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span\n class=\"whitespace-nowrap\"\n :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">\n {{\n selectedCollection\n ? selectedCollection.label\n : 'Select Collection'\n }}\n </span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </div>\n </template>\n\n <template #submit>\n <span @click=\"handleImportClick\">Import Request</span>\n </template>\n </CommandActionForm>\n</template>\n<style scoped>\n.scroll-timeline-x {\n overflow: auto;\n scroll-timeline: --scroll-timeline x;\n /* Firefox supports */\n scroll-timeline: --scroll-timeline horizontal;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n type ScalarComboboxOption,\n} from '@scalar/components'\nimport type {\n RequestMethod,\n RequestPayload,\n} from '@scalar/oas-utils/entities/spec'\nimport { REGEX } from '@scalar/oas-utils/helpers'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport HttpMethod from '@/components/HttpMethod/HttpMethod.vue'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\ntype ExtendedRequestPayload = RequestPayload & {\n url?: string\n}\n\nconst { metaData } = defineProps<{\n metaData: {\n parsedCurl: ExtendedRequestPayload\n collectionUid: string\n }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst workspaceContext = useWorkspace()\n\nconst { activeWorkspaceCollections, activeCollection, activeWorkspace } =\n useActiveEntities()\nconst { requestMutators, serverMutators, servers } = workspaceContext\n\nconst selectedServerUid = ref('')\nconst router = useRouter()\n\nconst collections = computed(() =>\n activeWorkspaceCollections.value.map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Unititled Collection',\n })),\n)\n\nconst selectedCollection = ref<ScalarComboboxOption | undefined>(\n metaData.collectionUid\n ? collections.value.find(\n (collection) => collection.id === metaData.collectionUid,\n )\n : collections.value.find(\n (collection) => collection.id === activeCollection.value?.uid,\n ),\n)\n\nfunction createRequestFromCurl({ collectionUid }: { collectionUid: string }) {\n if (!metaData.parsedCurl) {\n return\n }\n\n const collection = activeWorkspaceCollections.value.find(\n (c) => c.uid === collectionUid,\n )\n\n if (!collection) {\n return\n }\n\n const isDrafts = collection?.info?.title === 'Drafts'\n\n // Prevent adding servers to drafts\n if (!isDrafts && metaData.parsedCurl.servers) {\n // Find existing server to avoid duplication\n const existingServer = Object.values(servers).find(\n (s) => s.url === metaData.parsedCurl?.servers?.[0],\n )\n if (existingServer) {\n selectedServerUid.value = existingServer.uid\n } else {\n selectedServerUid.value = serverMutators.add(\n { url: metaData.parsedCurl.servers[0] ?? '/' },\n collection.uid,\n ).uid\n\n emitCustomEvent(wrapper.value?.$el, 'scalar-add-server', {\n server: { url: metaData.parsedCurl.servers[0] ?? '/' },\n options: {\n disableOldStoreUpdate: true,\n },\n })\n }\n }\n\n // Add the request and use the url if it's a draft as a path\n const newRequest = requestMutators.add(\n {\n summary: isDrafts\n ? metaData.parsedCurl?.url?.replace(REGEX.PROTOCOL, '')\n : metaData.parsedCurl?.path,\n path: isDrafts ? metaData.parsedCurl?.url : metaData.parsedCurl?.path,\n method: metaData.parsedCurl?.method,\n parameters: metaData.parsedCurl?.parameters,\n selectedServerUid: isDrafts ? undefined : selectedServerUid.value,\n requestBody: metaData.parsedCurl?.requestBody,\n },\n collection.uid,\n )\n\n if (newRequest && activeWorkspace.value?.uid) {\n router.push({\n name: 'request',\n params: {\n [PathId.Workspace]: activeWorkspace.value.uid,\n [PathId.Collection]: collection.uid,\n [PathId.Request]: newRequest.uid,\n },\n })\n }\n\n emits('close')\n}\n\nconst handleImportClick = () => {\n createRequestFromCurl({\n collectionUid: selectedCollection.value?.id ?? '',\n })\n}\n\nconst wrapper = useTemplateRef('wrapper-ref')\n</script>\n<template>\n <div class=\"text-c-2 flex-center py-1.5 text-sm\">Import cURL</div>\n <CommandActionForm\n ref=\"wrapper-ref\"\n class=\"mt-1.5 min-h-fit\"\n @submit=\"handleImportClick\">\n <div\n class=\"flex h-9 flex-row items-center gap-2 rounded border p-[3px] text-sm\">\n <div class=\"flex h-full\">\n <HttpMethod\n :isEditable=\"false\"\n isSquare\n :method=\"(metaData.parsedCurl?.method as RequestMethod) || 'get'\" />\n </div>\n <span class=\"scroll-timeline-x whitespace-nowrap\">\n {{ metaData.parsedCurl?.servers?.[0] || ''\n }}{{ metaData.parsedCurl?.path || '' }}\n </span>\n </div>\n\n <template #options>\n <div class=\"flex\">\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"collections\">\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-full justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span\n class=\"whitespace-nowrap\"\n :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">\n {{\n selectedCollection\n ? selectedCollection.label\n : 'Select Collection'\n }}\n </span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </div>\n </template>\n\n <template #submit>\n <span @click=\"handleImportClick\">Import Request</span>\n </template>\n </CommandActionForm>\n</template>\n<style scoped>\n.scroll-timeline-x {\n overflow: auto;\n scroll-timeline: --scroll-timeline x;\n /* Firefox supports */\n scroll-timeline: --scroll-timeline horizontal;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst props = defineProps<{\n metaData?: {\n itemUid?: string\n parentUid?: string\n }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst router = useRouter()\n\nconst { toast } = useToasts()\n\nconst { activeCollection, activeWorkspaceCollections } = useActiveEntities()\nconst {\n collectionMutators,\n serverMutators,\n events,\n collections: _collections,\n} = useWorkspace()\n\nconst url = ref('')\n\nconst collections = computed(() =>\n activeWorkspaceCollections.value.flatMap((collection) =>\n collection.info?.title === 'Drafts'\n ? []\n : {\n id: collection.uid,\n label: collection.info?.title ?? 'Unititled Collection',\n },\n ),\n)\n\n/** Currently selected collection with a reasonable default */\nconst selectedCollection = ref(\n props.metaData\n ? collections.value.find(\n (collection) =>\n collection.id === props.metaData?.itemUid ||\n collection.id === props.metaData?.parentUid,\n )\n : collections.value.find(\n (collection) => collection.id === activeCollection.value?.uid,\n ),\n)\n\nconst handleSubmit = () => {\n if (!url.value.trim()) {\n toast('Please enter a valid url before creating a server.', 'error')\n return\n }\n const collection = _collections[selectedCollection.value?.id ?? '']\n if (!collection) {\n toast('Please select a collection before creating a server.', 'error')\n return\n }\n\n const server = serverMutators.add({ url: url.value }, collection.uid)\n\n // Select the server\n collectionMutators.edit(collection.uid, 'selectedServerUid', server.uid)\n\n emitCustomEvent(wrapper.value?.$el, 'scalar-add-server', {\n server: { url: url.value },\n options: {\n disableOldStoreUpdate: true,\n },\n })\n\n // Redirect to the server\n router.push({\n name: 'collection.servers.edit',\n params: {\n [PathId.Collection]: collection.uid,\n [PathId.Servers]: server.uid,\n },\n })\n\n emits('close')\n}\n\nconst redirectToCreateCollection = () => {\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n\nconst wrapper = useTemplateRef('wrapper-ref')\n</script>\n<template>\n <CommandActionForm\n ref=\"wrapper-ref\"\n :disabled=\"!url.trim() || !selectedCollection\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"url\"\n label=\"Server URL\"\n placeholder=\"https://void.scalar.com\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"collections\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">{{\n selectedCollection ? selectedCollection.label : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Create Server </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { emitCustomEvent } from '@scalar/workspace-store/events'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst props = defineProps<{\n metaData?: {\n itemUid?: string\n parentUid?: string\n }\n}>()\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst router = useRouter()\n\nconst { toast } = useToasts()\n\nconst { activeCollection, activeWorkspaceCollections } = useActiveEntities()\nconst {\n collectionMutators,\n serverMutators,\n events,\n collections: _collections,\n} = useWorkspace()\n\nconst url = ref('')\n\nconst collections = computed(() =>\n activeWorkspaceCollections.value.flatMap((collection) =>\n collection.info?.title === 'Drafts'\n ? []\n : {\n id: collection.uid,\n label: collection.info?.title ?? 'Unititled Collection',\n },\n ),\n)\n\n/** Currently selected collection with a reasonable default */\nconst selectedCollection = ref(\n props.metaData\n ? collections.value.find(\n (collection) =>\n collection.id === props.metaData?.itemUid ||\n collection.id === props.metaData?.parentUid,\n )\n : collections.value.find(\n (collection) => collection.id === activeCollection.value?.uid,\n ),\n)\n\nconst handleSubmit = () => {\n if (!url.value.trim()) {\n toast('Please enter a valid url before creating a server.', 'error')\n return\n }\n const collection = _collections[selectedCollection.value?.id ?? '']\n if (!collection) {\n toast('Please select a collection before creating a server.', 'error')\n return\n }\n\n const server = serverMutators.add({ url: url.value }, collection.uid)\n\n // Select the server\n collectionMutators.edit(collection.uid, 'selectedServerUid', server.uid)\n\n emitCustomEvent(wrapper.value?.$el, 'scalar-add-server', {\n server: { url: url.value },\n options: {\n disableOldStoreUpdate: true,\n },\n })\n\n // Redirect to the server\n router.push({\n name: 'collection.servers.edit',\n params: {\n [PathId.Collection]: collection.uid,\n [PathId.Servers]: server.uid,\n },\n })\n\n emits('close')\n}\n\nconst redirectToCreateCollection = () => {\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n\nconst wrapper = useTemplateRef('wrapper-ref')\n</script>\n<template>\n <CommandActionForm\n ref=\"wrapper-ref\"\n :disabled=\"!url.trim() || !selectedCollection\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"url\"\n label=\"Server URL\"\n placeholder=\"https://void.scalar.com\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"collections\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">{{\n selectedCollection ? selectedCollection.label : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Create Server </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref } from 'vue'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { activeWorkspaceCollections, activeCollection } = useActiveEntities()\nconst { tagMutators } = useWorkspace()\nconst { toast } = useToasts()\n\nconst availableCollections = computed(() =>\n activeWorkspaceCollections.value.map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? '',\n })),\n)\n\nconst name = ref('')\nconst selectedCollection = ref(\n availableCollections.value.find(\n (option) => option.id === activeCollection.value?.uid,\n ),\n)\n\nconst handleSubmit = () => {\n if (!name.value) {\n toast('Please enter a name before creating a tag.', 'error')\n return\n }\n if (!name.value || !selectedCollection.value) {\n return\n }\n\n const tag = tagMutators.add(\n {\n name: name.value,\n },\n selectedCollection.value.id,\n )\n if (tag) {\n emits('close')\n }\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!name.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"name\"\n label=\"Tag Name\"\n placeholder=\"Tag Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"availableCollections\">\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">{{\n selectedCollection ? selectedCollection.label : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Create Tag </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref } from 'vue'\n\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { activeWorkspaceCollections, activeCollection } = useActiveEntities()\nconst { tagMutators } = useWorkspace()\nconst { toast } = useToasts()\n\nconst availableCollections = computed(() =>\n activeWorkspaceCollections.value.map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? '',\n })),\n)\n\nconst name = ref('')\nconst selectedCollection = ref(\n availableCollections.value.find(\n (option) => option.id === activeCollection.value?.uid,\n ),\n)\n\nconst handleSubmit = () => {\n if (!name.value) {\n toast('Please enter a name before creating a tag.', 'error')\n return\n }\n if (!name.value || !selectedCollection.value) {\n return\n }\n\n const tag = tagMutators.add(\n {\n name: name.value,\n },\n selectedCollection.value.id,\n )\n if (tag) {\n emits('close')\n }\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!name.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"name\"\n label=\"Tag Name\"\n placeholder=\"Tag Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #options>\n <ScalarListbox\n v-model=\"selectedCollection\"\n :options=\"availableCollections\">\n <ScalarButton\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedCollection ? 'text-c-1' : 'text-c-3'\">{{\n selectedCollection ? selectedCollection.label : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Create Tag </template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { push } = useRouter()\nconst { toast } = useToasts()\nconst { workspaceMutators } = useWorkspace()\nconst workspaceName = ref('')\n\nconst handleSubmit = () => {\n if (!workspaceName.value.trim()) {\n toast('Please enter a name before creating a workspace.', 'error')\n return\n }\n\n const workspace = workspaceMutators.add({\n name: workspaceName.value,\n })\n\n push({\n name: 'workspace',\n params: {\n workspace: workspace.uid,\n },\n })\n\n emits('close')\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!workspaceName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"workspaceName\"\n label=\"Workspace Name\"\n placeholder=\"Workspace Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #submit>Create Workspace</template>\n </CommandActionForm>\n</template>\n","<script setup lang=\"ts\">\nimport { useToasts } from '@scalar/use-toasts'\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { useWorkspace } from '@/store'\n\nimport CommandActionForm from './CommandActionForm.vue'\nimport CommandActionInput from './CommandActionInput.vue'\n\nconst emits = defineEmits<{\n (event: 'close'): void\n (event: 'back', e: KeyboardEvent): void\n}>()\n\nconst { push } = useRouter()\nconst { toast } = useToasts()\nconst { workspaceMutators } = useWorkspace()\nconst workspaceName = ref('')\n\nconst handleSubmit = () => {\n if (!workspaceName.value.trim()) {\n toast('Please enter a name before creating a workspace.', 'error')\n return\n }\n\n const workspace = workspaceMutators.add({\n name: workspaceName.value,\n })\n\n push({\n name: 'workspace',\n params: {\n workspace: workspace.uid,\n },\n })\n\n emits('close')\n}\n</script>\n<template>\n <CommandActionForm\n :disabled=\"!workspaceName.trim()\"\n @submit=\"handleSubmit\">\n <CommandActionInput\n v-model=\"workspaceName\"\n label=\"Workspace Name\"\n placeholder=\"Workspace Name\"\n @onDelete=\"emits('back', $event)\" />\n <template #submit>Create Workspace</template>\n </CommandActionForm>\n</template>\n","<script lang=\"ts\">\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\n\nimport { importCurlCommand } from '@/libs/importers/curl'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandPaletteCollection from './CommandPaletteCollection.vue'\nimport CommandPaletteExample from './CommandPaletteExample.vue'\nimport CommandPaletteImport from './CommandPaletteImport.vue'\nimport CommandPaletteImportCurl from './CommandPaletteImportCurl.vue'\nimport CommandPaletteServer from './CommandPaletteServer.vue'\nimport CommandPaletteTag from './CommandPaletteTag.vue'\nimport CommandPaletteWorkspace from './CommandPaletteWorkspace.vue'\n\n/**\n * The Command Palette\n *\n * This component is a singleton so should only exist in our app once we will use the event bus to trigger it\n */\nexport default {\n name: 'TheCommandPalette',\n}\n\nconst PaletteComponents = {\n 'Import from OpenAPI/Swagger/Postman/cURL': CommandPaletteImport,\n 'Create Request': '',\n 'Create Workspace': CommandPaletteWorkspace,\n 'Add Tag': CommandPaletteTag,\n 'Add Server': CommandPaletteServer,\n 'Create Collection': CommandPaletteCollection,\n 'Add Example': CommandPaletteExample,\n 'Import from cURL': CommandPaletteImportCurl,\n} as const\n\n/** Infer the types from the commands */\ntype CommandNames = keyof typeof PaletteComponents\n\nexport type CommandPaletteEvent = {\n /** The command name which matches with the command palette */\n commandName?: CommandNames\n /** Any extra metadata we want to pass to the command palettes */\n metaData?: Record<string, any>\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle } from '@headlessui/vue'\nimport { ScalarIcon, useModal } from '@scalar/components'\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { ROUTES } from '@/constants'\nimport type { HotKeyEvent } from '@/libs'\n\nconst modalState = useModal()\nconst router = useRouter()\nconst { activeWorkspace, activeWorkspaceCollections, activeCollection } =\n useActiveEntities()\nconst { events, requestMutators } = useWorkspace()\n\n/** Available Commands for the Command Palette */\nconst availableCommands = [\n {\n label: '',\n commands: [\n {\n name: 'Import from OpenAPI/Swagger/Postman/cURL',\n icon: 'Import',\n },\n {\n name: 'Create Request',\n icon: 'ExternalLink',\n },\n {\n name: 'Create Collection',\n icon: 'Collection',\n },\n {\n name: 'Add Tag',\n icon: 'Folder',\n },\n {\n name: 'Add Example',\n icon: 'Example',\n },\n {\n name: 'Add Server',\n icon: 'Server',\n },\n ],\n },\n {\n label: 'More Actions',\n commands: [\n {\n name: 'Create Workspace',\n icon: 'Workspace',\n },\n {\n name: 'Add Environment',\n icon: 'Brackets',\n path: {\n name: 'environment.default',\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n query: { openEnvironmentModal: 'true' },\n },\n },\n {\n name: 'Add Cookie',\n icon: 'Cookie',\n path: {\n name: 'cookies.default',\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n query: { openCookieModal: 'true' },\n },\n },\n ],\n },\n {\n label: 'Pages',\n commands: ROUTES.map((route) => ({\n name: route.displayName,\n icon: route.icon,\n path: router.resolve({\n ...route.to,\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n }).href,\n })),\n },\n] as const\n\ntype Command = (typeof availableCommands)[number]['commands'][number]\n\n/** Additional metadata for the command palettes */\nconst metaData = ref<Record<string, any> | undefined>()\nconst commandQuery = ref('')\nconst activeCommand = ref<keyof typeof PaletteComponents | null>(null)\nconst selectedSearchResult = ref<number>(-1)\nconst commandRefs = ref<HTMLElement[]>([])\n\nconst searchResultsWithPlaceholderResults = computed(() =>\n availableCommands.reduce((acc, group) => {\n const filteredGroupCommands = group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.value.toLowerCase()),\n )\n return [...acc, ...filteredGroupCommands]\n }, [] as Command[]),\n)\n\n/** Reset state on close */\nconst closeHandler = () => {\n modalState.hide()\n commandQuery.value = ''\n activeCommand.value = null\n selectedSearchResult.value = -1\n}\n\n/** Reset state on back */\nconst backHandler = (event: KeyboardEvent) => {\n // Prevent delete event from removing query command character\n if (commandQuery.value !== '') {\n event?.preventDefault()\n }\n activeCommand.value = null\n nextTick(() => commandInputRef.value?.focus())\n}\n\n/** Handle execution of the command, some have routes while others show another palette */\nconst executeCommand = (\n command: (typeof availableCommands)[number]['commands'][number],\n) => {\n if ('path' in command) {\n router.push(command.path)\n closeHandler()\n } else if (command.name === 'Create Request') {\n const draftsCollection = activeWorkspaceCollections.value.find(\n (collection: Collection) => collection.info?.title === 'Drafts',\n )\n\n if (draftsCollection) {\n const newRequest = requestMutators.add({}, draftsCollection.uid)\n\n if (newRequest) {\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: newRequest.uid,\n },\n })\n\n closeHandler()\n\n nextTick(() => {\n events.hotKeys.emit({\n focusAddressBar: new KeyboardEvent('keydown', { key: 'l' }),\n })\n })\n }\n } else {\n closeHandler()\n }\n } else {\n activeCommand.value = command.name\n }\n}\n\nconst commandInputRef = ref<HTMLInputElement | null>()\n\n/** Handles opening the command pallete to the correct palette */\nconst openCommandPalette = ({\n commandName,\n metaData: _metaData,\n}: CommandPaletteEvent = {}) => {\n activeCommand.value = commandName ?? null\n metaData.value = _metaData\n modalState.show()\n\n // Need nextTick to focus after a click since focus goes to the button\n nextTick(() => commandInputRef.value?.focus())\n}\n\n/** Focus on first result when conducting a search */\nwatch(commandQuery, (newQuery) => {\n if (newQuery && searchResultsWithPlaceholderResults.value.length > 0) {\n selectedSearchResult.value = 0\n }\n})\n\n/** Handle up and down arrow keys in the menu */\nconst handleArrowKey = (direction: 'up' | 'down', ev: KeyboardEvent) => {\n if (!modalState.open) return\n ev.preventDefault()\n\n const offset = direction === 'up' ? -1 : 1\n const length = searchResultsWithPlaceholderResults.value.length\n\n // Ensures we loop around the array by using the remainder\n selectedSearchResult.value =\n (selectedSearchResult.value + offset + length) % length\n\n nextTick(() => {\n const container = commandInputRef.value?.closest('.custom-scroll')\n if (!container) return\n\n // Scroll to the top if the first command is selected\n if (selectedSearchResult.value === 0) {\n container.scrollTop = 0\n return\n }\n\n // Scroll to the selected command\n const commandElement = commandRefs.value[selectedSearchResult.value]\n if (!commandElement) return\n\n // Set the height of the sticky header and the bottom margin\n const stickyHeaderHeight =\n (container.querySelector('.sticky')?.clientHeight || 0) + 16\n const bottomMargin = 6\n\n // Get the top and bottom of the command element\n const elementTop = commandElement.offsetTop\n const elementBottom = elementTop + commandElement.clientHeight\n\n // Get the top and bottom of the viewport\n const viewportTop = container.scrollTop + stickyHeaderHeight\n const viewportBottom =\n container.scrollTop + container.clientHeight - bottomMargin\n\n // Scroll to the command if it's not in the viewport\n if (elementTop < viewportTop) {\n container.scrollTop = elementTop - stickyHeaderHeight\n } else if (elementBottom > viewportBottom) {\n container.scrollTop =\n elementBottom - container.clientHeight + bottomMargin\n }\n })\n}\n\n/** The currently selected command */\nconst selectedCommand = computed(\n () => searchResultsWithPlaceholderResults.value[selectedSearchResult.value],\n)\n\n/** Handle enter keydown in the menu */\nconst handleSelect = (ev: KeyboardEvent) => {\n if (!selectedCommand.value || activeCommand.value) return\n ev.preventDefault()\n ev.stopPropagation()\n executeCommand(selectedCommand.value)\n}\n\n/** Handle hotkeys */\nconst handleHotKey = (event?: HotKeyEvent) => {\n if (!modalState.open) return\n if (event?.closeModal) closeHandler()\n}\n\nconst handleInput = (value: string) => {\n if (value.trim().toLowerCase().startsWith('curl')) {\n events.commandPalette.emit({\n commandName: 'Import from cURL',\n metaData: {\n parsedCurl: importCurlCommand(value),\n collectionUid: activeCollection.value?.uid,\n },\n })\n return\n }\n commandQuery.value = value\n}\n\nonMounted(() => {\n events.commandPalette.on(openCommandPalette)\n events.hotKeys.on(handleHotKey)\n})\nonBeforeUnmount(() => {\n events.commandPalette.off(openCommandPalette)\n events.hotKeys.off(handleHotKey)\n})\n</script>\n<template>\n <Dialog\n :open=\"modalState.open\"\n @close=\"closeHandler()\">\n <div class=\"commandmenu-overlay z-overlay\" />\n <DialogPanel class=\"commandmenu z-overlay flex flex-col\">\n <DialogTitle class=\"sr-only\">API Client Command Menu</DialogTitle>\n <!-- Default palette (command list) -->\n <div\n v-if=\"!activeCommand\"\n class=\"custom-scroll max-h-[50dvh] min-h-0 flex-1 rounded-lg p-1.5\">\n <div\n class=\"bg-b-2 focus-within:bg-b-1 sticky top-0 flex items-center rounded-md border border-transparent pl-2 shadow-[0_-8px_0_8px_var(--scalar-background-1),0_0_8px_8px_var(--scalar-background-1)] focus-within:border-(--scalar-background-3)\">\n <label for=\"commandmenu\">\n <ScalarIcon\n class=\"text-c-2 mr-2.5\"\n icon=\"Search\"\n size=\"md\"\n thickness=\"1.5\" />\n </label>\n <input\n id=\"commandmenu\"\n ref=\"commandInputRef\"\n autocomplete=\"off\"\n autofocus\n class=\"w-full rounded border-none bg-none py-1.5 text-sm focus:outline-none\"\n placeholder=\"Search commands...\"\n type=\"text\"\n :value=\"commandQuery\"\n @input=\"handleInput(($event.target as HTMLInputElement).value)\"\n @keydown.down.stop=\"handleArrowKey('down', $event)\"\n @keydown.enter.stop=\"handleSelect\"\n @keydown.up.stop=\"handleArrowKey('up', $event)\" />\n </div>\n <template\n v-for=\"group in availableCommands\"\n :key=\"group.label\">\n <div\n v-show=\"\n group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.toLowerCase()),\n ).length > 0\n \"\n class=\"text-c-3 mt-2 mb-1 px-2 text-xs font-medium\">\n {{ group.label }}\n </div>\n <div\n v-for=\"command in group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.toLowerCase()),\n )\"\n :key=\"command.name\"\n :ref=\"\n (el) => {\n if (el) {\n const index = searchResultsWithPlaceholderResults.findIndex(\n (c) => c.name === command.name,\n )\n if (index !== -1) commandRefs[index] = el as HTMLElement\n }\n }\n \"\n class=\"commandmenu-item hover:bg-b-2 flex cursor-pointer items-center rounded px-2 py-1.5 text-sm\"\n :class=\"{\n 'bg-b-2': command.name === selectedCommand?.name,\n }\"\n @click=\"executeCommand(command)\">\n <ScalarIcon\n class=\"text-c-2 mr-2.5\"\n :icon=\"command.icon\"\n size=\"md\"\n thickness=\"1.5\" />\n {{ command.name }}\n </div>\n </template>\n <div\n v-if=\"!searchResultsWithPlaceholderResults.length\"\n class=\"text-c-3 p-2 pt-3 text-center text-sm\">\n No commands found\n </div>\n </div>\n <!-- Specific command palette -->\n <div\n v-else\n class=\"flex-1 p-1.5\">\n <button\n class=\"hover:bg-b-3 text-c-3 active:text-c-1 absolute z-1 mt-[0.5px] rounded p-1.5\"\n type=\"button\"\n @click=\"activeCommand = null\">\n <ScalarIcon\n icon=\"ChevronLeft\"\n size=\"md\"\n thickness=\"1.5\" />\n </button>\n <component\n :is=\"PaletteComponents[activeCommand]\"\n v-bind=\"metaData ? { metaData: metaData } : {}\"\n @back=\"backHandler($event)\"\n @close=\"closeHandler\" />\n </div>\n </DialogPanel>\n </Dialog>\n</template>\n<style scoped>\n/* command menu */\n.commandmenu {\n box-shadow: var(--scalar-shadow-2);\n border-radius: var(--scalar-radius-lg);\n background-color: var(--scalar-background-1);\n max-height: 60dvh;\n width: 100%;\n max-width: 580px;\n margin: 12px;\n position: fixed;\n left: 50%;\n top: 150px;\n opacity: 0;\n transform: translate3d(-50%, 10px, 0);\n animation: fadeincommandmenu ease-in-out 0.3s forwards;\n animation-delay: 0.1s;\n}\n.commandmenu-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.2);\n animation: fadeincommand ease-in-out 0.3s forwards;\n cursor: pointer;\n}\n@keyframes fadeincommand {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadeincommandmenu {\n 0% {\n opacity: 0;\n transform: translate3d(-50%, 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3d(-50%, 0, 0);\n }\n}\n</style>\n","<script lang=\"ts\">\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\n\nimport { importCurlCommand } from '@/libs/importers/curl'\nimport { PathId } from '@/routes'\nimport { useWorkspace } from '@/store'\nimport { useActiveEntities } from '@/store/active-entities'\n\nimport CommandPaletteCollection from './CommandPaletteCollection.vue'\nimport CommandPaletteExample from './CommandPaletteExample.vue'\nimport CommandPaletteImport from './CommandPaletteImport.vue'\nimport CommandPaletteImportCurl from './CommandPaletteImportCurl.vue'\nimport CommandPaletteServer from './CommandPaletteServer.vue'\nimport CommandPaletteTag from './CommandPaletteTag.vue'\nimport CommandPaletteWorkspace from './CommandPaletteWorkspace.vue'\n\n/**\n * The Command Palette\n *\n * This component is a singleton so should only exist in our app once we will use the event bus to trigger it\n */\nexport default {\n name: 'TheCommandPalette',\n}\n\nconst PaletteComponents = {\n 'Import from OpenAPI/Swagger/Postman/cURL': CommandPaletteImport,\n 'Create Request': '',\n 'Create Workspace': CommandPaletteWorkspace,\n 'Add Tag': CommandPaletteTag,\n 'Add Server': CommandPaletteServer,\n 'Create Collection': CommandPaletteCollection,\n 'Add Example': CommandPaletteExample,\n 'Import from cURL': CommandPaletteImportCurl,\n} as const\n\n/** Infer the types from the commands */\ntype CommandNames = keyof typeof PaletteComponents\n\nexport type CommandPaletteEvent = {\n /** The command name which matches with the command palette */\n commandName?: CommandNames\n /** Any extra metadata we want to pass to the command palettes */\n metaData?: Record<string, any>\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle } from '@headlessui/vue'\nimport { ScalarIcon, useModal } from '@scalar/components'\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { ROUTES } from '@/constants'\nimport type { HotKeyEvent } from '@/libs'\n\nconst modalState = useModal()\nconst router = useRouter()\nconst { activeWorkspace, activeWorkspaceCollections, activeCollection } =\n useActiveEntities()\nconst { events, requestMutators } = useWorkspace()\n\n/** Available Commands for the Command Palette */\nconst availableCommands = [\n {\n label: '',\n commands: [\n {\n name: 'Import from OpenAPI/Swagger/Postman/cURL',\n icon: 'Import',\n },\n {\n name: 'Create Request',\n icon: 'ExternalLink',\n },\n {\n name: 'Create Collection',\n icon: 'Collection',\n },\n {\n name: 'Add Tag',\n icon: 'Folder',\n },\n {\n name: 'Add Example',\n icon: 'Example',\n },\n {\n name: 'Add Server',\n icon: 'Server',\n },\n ],\n },\n {\n label: 'More Actions',\n commands: [\n {\n name: 'Create Workspace',\n icon: 'Workspace',\n },\n {\n name: 'Add Environment',\n icon: 'Brackets',\n path: {\n name: 'environment.default',\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n query: { openEnvironmentModal: 'true' },\n },\n },\n {\n name: 'Add Cookie',\n icon: 'Cookie',\n path: {\n name: 'cookies.default',\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n query: { openCookieModal: 'true' },\n },\n },\n ],\n },\n {\n label: 'Pages',\n commands: ROUTES.map((route) => ({\n name: route.displayName,\n icon: route.icon,\n path: router.resolve({\n ...route.to,\n params: {\n [PathId.Workspace]: activeWorkspace?.value?.uid ?? 'default',\n },\n }).href,\n })),\n },\n] as const\n\ntype Command = (typeof availableCommands)[number]['commands'][number]\n\n/** Additional metadata for the command palettes */\nconst metaData = ref<Record<string, any> | undefined>()\nconst commandQuery = ref('')\nconst activeCommand = ref<keyof typeof PaletteComponents | null>(null)\nconst selectedSearchResult = ref<number>(-1)\nconst commandRefs = ref<HTMLElement[]>([])\n\nconst searchResultsWithPlaceholderResults = computed(() =>\n availableCommands.reduce((acc, group) => {\n const filteredGroupCommands = group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.value.toLowerCase()),\n )\n return [...acc, ...filteredGroupCommands]\n }, [] as Command[]),\n)\n\n/** Reset state on close */\nconst closeHandler = () => {\n modalState.hide()\n commandQuery.value = ''\n activeCommand.value = null\n selectedSearchResult.value = -1\n}\n\n/** Reset state on back */\nconst backHandler = (event: KeyboardEvent) => {\n // Prevent delete event from removing query command character\n if (commandQuery.value !== '') {\n event?.preventDefault()\n }\n activeCommand.value = null\n nextTick(() => commandInputRef.value?.focus())\n}\n\n/** Handle execution of the command, some have routes while others show another palette */\nconst executeCommand = (\n command: (typeof availableCommands)[number]['commands'][number],\n) => {\n if ('path' in command) {\n router.push(command.path)\n closeHandler()\n } else if (command.name === 'Create Request') {\n const draftsCollection = activeWorkspaceCollections.value.find(\n (collection: Collection) => collection.info?.title === 'Drafts',\n )\n\n if (draftsCollection) {\n const newRequest = requestMutators.add({}, draftsCollection.uid)\n\n if (newRequest) {\n router.push({\n name: 'request',\n params: {\n workspace: activeWorkspace.value?.uid,\n request: newRequest.uid,\n },\n })\n\n closeHandler()\n\n nextTick(() => {\n events.hotKeys.emit({\n focusAddressBar: new KeyboardEvent('keydown', { key: 'l' }),\n })\n })\n }\n } else {\n closeHandler()\n }\n } else {\n activeCommand.value = command.name\n }\n}\n\nconst commandInputRef = ref<HTMLInputElement | null>()\n\n/** Handles opening the command pallete to the correct palette */\nconst openCommandPalette = ({\n commandName,\n metaData: _metaData,\n}: CommandPaletteEvent = {}) => {\n activeCommand.value = commandName ?? null\n metaData.value = _metaData\n modalState.show()\n\n // Need nextTick to focus after a click since focus goes to the button\n nextTick(() => commandInputRef.value?.focus())\n}\n\n/** Focus on first result when conducting a search */\nwatch(commandQuery, (newQuery) => {\n if (newQuery && searchResultsWithPlaceholderResults.value.length > 0) {\n selectedSearchResult.value = 0\n }\n})\n\n/** Handle up and down arrow keys in the menu */\nconst handleArrowKey = (direction: 'up' | 'down', ev: KeyboardEvent) => {\n if (!modalState.open) return\n ev.preventDefault()\n\n const offset = direction === 'up' ? -1 : 1\n const length = searchResultsWithPlaceholderResults.value.length\n\n // Ensures we loop around the array by using the remainder\n selectedSearchResult.value =\n (selectedSearchResult.value + offset + length) % length\n\n nextTick(() => {\n const container = commandInputRef.value?.closest('.custom-scroll')\n if (!container) return\n\n // Scroll to the top if the first command is selected\n if (selectedSearchResult.value === 0) {\n container.scrollTop = 0\n return\n }\n\n // Scroll to the selected command\n const commandElement = commandRefs.value[selectedSearchResult.value]\n if (!commandElement) return\n\n // Set the height of the sticky header and the bottom margin\n const stickyHeaderHeight =\n (container.querySelector('.sticky')?.clientHeight || 0) + 16\n const bottomMargin = 6\n\n // Get the top and bottom of the command element\n const elementTop = commandElement.offsetTop\n const elementBottom = elementTop + commandElement.clientHeight\n\n // Get the top and bottom of the viewport\n const viewportTop = container.scrollTop + stickyHeaderHeight\n const viewportBottom =\n container.scrollTop + container.clientHeight - bottomMargin\n\n // Scroll to the command if it's not in the viewport\n if (elementTop < viewportTop) {\n container.scrollTop = elementTop - stickyHeaderHeight\n } else if (elementBottom > viewportBottom) {\n container.scrollTop =\n elementBottom - container.clientHeight + bottomMargin\n }\n })\n}\n\n/** The currently selected command */\nconst selectedCommand = computed(\n () => searchResultsWithPlaceholderResults.value[selectedSearchResult.value],\n)\n\n/** Handle enter keydown in the menu */\nconst handleSelect = (ev: KeyboardEvent) => {\n if (!selectedCommand.value || activeCommand.value) return\n ev.preventDefault()\n ev.stopPropagation()\n executeCommand(selectedCommand.value)\n}\n\n/** Handle hotkeys */\nconst handleHotKey = (event?: HotKeyEvent) => {\n if (!modalState.open) return\n if (event?.closeModal) closeHandler()\n}\n\nconst handleInput = (value: string) => {\n if (value.trim().toLowerCase().startsWith('curl')) {\n events.commandPalette.emit({\n commandName: 'Import from cURL',\n metaData: {\n parsedCurl: importCurlCommand(value),\n collectionUid: activeCollection.value?.uid,\n },\n })\n return\n }\n commandQuery.value = value\n}\n\nonMounted(() => {\n events.commandPalette.on(openCommandPalette)\n events.hotKeys.on(handleHotKey)\n})\nonBeforeUnmount(() => {\n events.commandPalette.off(openCommandPalette)\n events.hotKeys.off(handleHotKey)\n})\n</script>\n<template>\n <Dialog\n :open=\"modalState.open\"\n @close=\"closeHandler()\">\n <div class=\"commandmenu-overlay z-overlay\" />\n <DialogPanel class=\"commandmenu z-overlay flex flex-col\">\n <DialogTitle class=\"sr-only\">API Client Command Menu</DialogTitle>\n <!-- Default palette (command list) -->\n <div\n v-if=\"!activeCommand\"\n class=\"custom-scroll max-h-[50dvh] min-h-0 flex-1 rounded-lg p-1.5\">\n <div\n class=\"bg-b-2 focus-within:bg-b-1 sticky top-0 flex items-center rounded-md border border-transparent pl-2 shadow-[0_-8px_0_8px_var(--scalar-background-1),0_0_8px_8px_var(--scalar-background-1)] focus-within:border-(--scalar-background-3)\">\n <label for=\"commandmenu\">\n <ScalarIcon\n class=\"text-c-2 mr-2.5\"\n icon=\"Search\"\n size=\"md\"\n thickness=\"1.5\" />\n </label>\n <input\n id=\"commandmenu\"\n ref=\"commandInputRef\"\n autocomplete=\"off\"\n autofocus\n class=\"w-full rounded border-none bg-none py-1.5 text-sm focus:outline-none\"\n placeholder=\"Search commands...\"\n type=\"text\"\n :value=\"commandQuery\"\n @input=\"handleInput(($event.target as HTMLInputElement).value)\"\n @keydown.down.stop=\"handleArrowKey('down', $event)\"\n @keydown.enter.stop=\"handleSelect\"\n @keydown.up.stop=\"handleArrowKey('up', $event)\" />\n </div>\n <template\n v-for=\"group in availableCommands\"\n :key=\"group.label\">\n <div\n v-show=\"\n group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.toLowerCase()),\n ).length > 0\n \"\n class=\"text-c-3 mt-2 mb-1 px-2 text-xs font-medium\">\n {{ group.label }}\n </div>\n <div\n v-for=\"command in group.commands.filter((command) =>\n command.name.toLowerCase().includes(commandQuery.toLowerCase()),\n )\"\n :key=\"command.name\"\n :ref=\"\n (el) => {\n if (el) {\n const index = searchResultsWithPlaceholderResults.findIndex(\n (c) => c.name === command.name,\n )\n if (index !== -1) commandRefs[index] = el as HTMLElement\n }\n }\n \"\n class=\"commandmenu-item hover:bg-b-2 flex cursor-pointer items-center rounded px-2 py-1.5 text-sm\"\n :class=\"{\n 'bg-b-2': command.name === selectedCommand?.name,\n }\"\n @click=\"executeCommand(command)\">\n <ScalarIcon\n class=\"text-c-2 mr-2.5\"\n :icon=\"command.icon\"\n size=\"md\"\n thickness=\"1.5\" />\n {{ command.name }}\n </div>\n </template>\n <div\n v-if=\"!searchResultsWithPlaceholderResults.length\"\n class=\"text-c-3 p-2 pt-3 text-center text-sm\">\n No commands found\n </div>\n </div>\n <!-- Specific command palette -->\n <div\n v-else\n class=\"flex-1 p-1.5\">\n <button\n class=\"hover:bg-b-3 text-c-3 active:text-c-1 absolute z-1 mt-[0.5px] rounded p-1.5\"\n type=\"button\"\n @click=\"activeCommand = null\">\n <ScalarIcon\n icon=\"ChevronLeft\"\n size=\"md\"\n thickness=\"1.5\" />\n </button>\n <component\n :is=\"PaletteComponents[activeCommand]\"\n v-bind=\"metaData ? { metaData: metaData } : {}\"\n @back=\"backHandler($event)\"\n @close=\"closeHandler\" />\n </div>\n </DialogPanel>\n </Dialog>\n</template>\n<style scoped>\n/* command menu */\n.commandmenu {\n box-shadow: var(--scalar-shadow-2);\n border-radius: var(--scalar-radius-lg);\n background-color: var(--scalar-background-1);\n max-height: 60dvh;\n width: 100%;\n max-width: 580px;\n margin: 12px;\n position: fixed;\n left: 50%;\n top: 150px;\n opacity: 0;\n transform: translate3d(-50%, 10px, 0);\n animation: fadeincommandmenu ease-in-out 0.3s forwards;\n animation-delay: 0.1s;\n}\n.commandmenu-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.2);\n animation: fadeincommand ease-in-out 0.3s forwards;\n cursor: pointer;\n}\n@keyframes fadeincommand {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadeincommandmenu {\n 0% {\n opacity: 0;\n transform: translate3d(-50%, 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3d(-50%, 0, 0);\n }\n}\n</style>\n"],"mappings":"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"}
|