@scalar/agent-chat 0.10.14 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/App.vue.d.ts.map +1 -1
  2. package/dist/api.js +13 -13
  3. package/dist/api.js.map +1 -1
  4. package/dist/entities/registry/document.d.ts +10 -10
  5. package/dist/entities/registry/document.d.ts.map +1 -1
  6. package/dist/entities/registry/document.js +8 -8
  7. package/dist/entities/registry/document.js.map +1 -1
  8. package/dist/entities/tools/ask-for-authentication.d.ts +6 -6
  9. package/dist/entities/tools/ask-for-authentication.d.ts.map +1 -1
  10. package/dist/entities/tools/ask-for-authentication.js +4 -4
  11. package/dist/entities/tools/ask-for-authentication.js.map +1 -1
  12. package/dist/entities/tools/execute-request.d.ts +10 -10
  13. package/dist/entities/tools/execute-request.d.ts.map +1 -1
  14. package/dist/entities/tools/execute-request.js +8 -8
  15. package/dist/entities/tools/execute-request.js.map +1 -1
  16. package/dist/entities/tools/search-openapi-operations.d.ts +5 -5
  17. package/dist/entities/tools/search-openapi-operations.d.ts.map +1 -1
  18. package/dist/entities/tools/search-openapi-operations.js +2 -2
  19. package/dist/entities/tools/search-openapi-operations.js.map +1 -1
  20. package/dist/helpers.d.ts +1 -1
  21. package/dist/helpers.d.ts.map +1 -1
  22. package/dist/helpers.js +6 -3
  23. package/dist/helpers.js.map +1 -1
  24. package/dist/hooks/use-chat-error.d.ts +10 -9
  25. package/dist/hooks/use-chat-error.d.ts.map +1 -1
  26. package/dist/hooks/use-chat-error.js +7 -8
  27. package/dist/hooks/use-chat-error.js.map +1 -1
  28. package/dist/hooks/use-upload-tmp-document.d.ts.map +1 -1
  29. package/dist/hooks/use-upload-tmp-document.js +20 -18
  30. package/dist/hooks/use-upload-tmp-document.js.map +1 -1
  31. package/dist/package.json +4 -3
  32. package/dist/state/state.d.ts.map +1 -1
  33. package/dist/state/state.js +3 -2
  34. package/dist/state/state.js.map +1 -1
  35. package/dist/style.css +180 -1087
  36. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts.map +1 -1
  37. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +1 -1
  38. package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -1
  39. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +3 -1
  40. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -1
  41. package/dist/views/Settings/Auth.vue.d.ts +2 -3
  42. package/dist/views/Settings/Auth.vue.d.ts.map +1 -1
  43. package/dist/views/Settings/Auth.vue.js.map +1 -1
  44. package/dist/views/Settings/Auth.vue.script.js.map +1 -1
  45. package/dist/views/Settings/DocSettings.vue.d.ts +2 -2
  46. package/dist/views/Settings/DocSettings.vue.d.ts.map +1 -1
  47. package/dist/views/Settings/DocSettings.vue.js +1 -1
  48. package/dist/views/Settings/DocSettings.vue.js.map +1 -1
  49. package/dist/views/Settings/DocSettings.vue.script.js.map +1 -1
  50. package/dist/views/Settings/Settings.vue.d.ts.map +1 -1
  51. package/dist/views/Settings/Settings.vue.js +1 -1
  52. package/dist/views/Settings/Settings.vue.js.map +1 -1
  53. package/dist/views/Settings/Settings.vue.script.js +2 -1
  54. package/dist/views/Settings/Settings.vue.script.js.map +1 -1
  55. package/dist/vue-styles.css +20 -20
  56. package/package.json +12 -11
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"names":[],"mappings":"AAqLA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAA;AAC1F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAGpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,gCAAgC,CAAC,CAAC,CACjE,CAAA;CACF,CAAC;AA2LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"AskForAuthentication.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"names":[],"mappings":"AAwLA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAA;AAC1F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAGpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,gCAAgC,CAAC,CAAC,CACjE,CAAA;CACF,CAAC;AA4LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import AskForAuthentication_vue_vue_type_script_setup_true_lang_default from "./AskForAuthentication.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/views/Chat/Messages/AskForAuthentication.vue
5
- var AskForAuthentication_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AskForAuthentication_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fd5c15f7"]]);
5
+ var AskForAuthentication_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AskForAuthentication_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3e7aa176"]]);
6
6
  //#endregion
7
7
  export { AskForAuthentication_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AskForAuthentication.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n const doc = workspaceStore.workspace.documents[documentName.value]\n return isOpenApiDocument(doc) ? doc : undefined\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":""}
@@ -6,6 +6,7 @@ import Auth_default from "../../Settings/Auth.vue.js";
6
6
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, unref, withCtx } from "vue";
7
7
  import { ScalarButton } from "@scalar/components";
8
8
  import { getActiveEnvironment, getSelectedServer, getServers } from "@scalar/workspace-store/request-example";
9
+ import { isOpenApiDocument } from "@scalar/workspace-store/schemas/type-guards";
9
10
  import { ScalarIconArrowRight } from "@scalar/icons";
10
11
  //#region src/views/Chat/Messages/AskForAuthentication.vue?vue&type=script&setup=true&lang.ts
11
12
  var _hoisted_1 = { class: "toggleButton" };
@@ -19,7 +20,8 @@ var AskForAuthentication_vue_vue_type_script_setup_true_lang_default = /* @__PUR
19
20
  const documentName = computed(() => __props.messagePart.value.input?.documentName);
20
21
  const document = computed(() => {
21
22
  if (!documentName.value) return;
22
- return workspaceStore.workspace.documents[documentName.value];
23
+ const doc = workspaceStore.workspace.documents[documentName.value];
24
+ return isOpenApiDocument(doc) ? doc : void 0;
23
25
  });
24
26
  const environment = computed(() => {
25
27
  if (!document.value) return;
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.script.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;EAuBA,MAAM,EAAE,gBAAgB,UAAU,QAAQ,SAAS,UAAS;EAE5D,MAAM,eAAe,eAAe,QAAA,YAAY,MAAM,OAAO,aAAY;EAEzE,MAAM,WAAW,eAAe;AAC9B,OAAI,CAAC,aAAa,MAChB;AAGF,UAAO,eAAe,UAAU,UAAU,aAAa;IACxD;EAED,MAAM,cAAc,eAAe;AACjC,OAAI,CAAC,SAAS,MACZ;AAGF,UAAO,qBAAqB,gBAAgB,SAAS,MAAM,CAAC;IAC7D;EAED,MAAM,iBAAiB,eAAe;AACpC,OAAI,CAAC,SAAS,MACZ;GAGF,MAAM,UAAU,WAAW,SAAS,MAAM,SAAS,EACjD,aAAa,SAAS,MAAM,iCAC7B,CAAA;AAED,UAAO,kBAAkB,SAAS,OAAO,MAAM,MAAM,QAAO;IAC7D;EAED,MAAM,2BAA2B,eACzB,aAAa,SAAS,YAAY,SAAS,eAAe,MAClE;EAEA,eAAe,mBAAmB;AAChC,SAAM,KAAK,cAAc;IACvB,YAAY,QAAA,YAAY,MAAM;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;IACR,CAAA;;;uBAKD,mBAgCM,OAAA,EA/BJ,OAAK,eAAA,CAAC,wBAAsB,EAAA,MACN,yBAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAGtB,mBAaM,OAbN,YAaM;IAXI,QAAA,YAAY,MAAM,UAAK,sBAAA,WAAA,EAD/B,YAC0D,gCAAA,EAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAElD,QAAA,YAAY,MAAM,UAAK,qBAAA,WAAA,EAD/B,YACyD,gCAAA,EAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAEjD,QAAA,YAAY,MAAM,UAAK,qBAAA,WAAA,EAD/B,YAOe,MAAA,aAAA,EAAA;;KALb,OAAM;KACN,MAAK;KACJ,SAAO;;4BAER,CAAA,OAAA,OAAA,OAAA,KAAA,gBAF0B,eAE1B,GAAA,GAAA,YAAsC,MAAA,qBAAA,EAAA,EAAhB,QAAO,QAAM,CAAA,CAAA,CAAA;;;OAGvC,mBAYM,OAZN,YAYM,CAXJ,mBAUM,OAVN,YAUM,CARI,aAAA,SAAgB,SAAA,SAAY,YAAA,SAAe,eAAA,SAAA,WAAA,EADnD,YAQoB,cAAA;;IANjB,WAAW,MAAA,eAAc,CAAC;IAC1B,UAAA,SAAA;IACA,aAAA,YAAA;IACA,UAAA,MAAA,SAAQ;IACR,MAAM,aAAA;IACN,SAAS,MAAA,OAAM;IACf,gBAAA,eAAA"}
1
+ {"version":3,"file":"AskForAuthentication.vue.script.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n const doc = workspaceStore.workspace.documents[documentName.value]\n return isOpenApiDocument(doc) ? doc : undefined\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAwBA,MAAM,EAAE,gBAAgB,UAAU,QAAQ,SAAS,UAAS;EAE5D,MAAM,eAAe,eAAe,QAAA,YAAY,MAAM,OAAO,aAAY;EAEzE,MAAM,WAAW,eAAe;AAC9B,OAAI,CAAC,aAAa,MAChB;GAGF,MAAM,MAAM,eAAe,UAAU,UAAU,aAAa;AAC5D,UAAO,kBAAkB,IAAI,GAAG,MAAM,KAAA;IACvC;EAED,MAAM,cAAc,eAAe;AACjC,OAAI,CAAC,SAAS,MACZ;AAGF,UAAO,qBAAqB,gBAAgB,SAAS,MAAM,CAAC;IAC7D;EAED,MAAM,iBAAiB,eAAe;AACpC,OAAI,CAAC,SAAS,MACZ;GAGF,MAAM,UAAU,WAAW,SAAS,MAAM,SAAS,EACjD,aAAa,SAAS,MAAM,iCAC7B,CAAA;AAED,UAAO,kBAAkB,SAAS,OAAO,MAAM,MAAM,QAAO;IAC7D;EAED,MAAM,2BAA2B,eACzB,aAAa,SAAS,YAAY,SAAS,eAAe,MAClE;EAEA,eAAe,mBAAmB;AAChC,SAAM,KAAK,cAAc;IACvB,YAAY,QAAA,YAAY,MAAM;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;IACR,CAAA;;;uBAKD,mBAgCM,OAAA,EA/BJ,OAAK,eAAA,CAAC,wBAAsB,EAAA,MACN,yBAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAGtB,mBAaM,OAbN,YAaM;IAXI,QAAA,YAAY,MAAM,UAAK,sBAAA,WAAA,EAD/B,YAC0D,gCAAA,EAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAElD,QAAA,YAAY,MAAM,UAAK,qBAAA,WAAA,EAD/B,YACyD,gCAAA,EAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAEjD,QAAA,YAAY,MAAM,UAAK,qBAAA,WAAA,EAD/B,YAOe,MAAA,aAAA,EAAA;;KALb,OAAM;KACN,MAAK;KACJ,SAAO;;4BAER,CAAA,OAAA,OAAA,OAAA,KAAA,gBAF0B,eAE1B,GAAA,GAAA,YAAsC,MAAA,qBAAA,EAAA,EAAhB,QAAO,QAAM,CAAA,CAAA,CAAA;;;OAGvC,mBAYM,OAZN,YAYM,CAXJ,mBAUM,OAVN,YAUM,CARI,aAAA,SAAgB,SAAA,SAAY,YAAA,SAAe,eAAA,SAAA,WAAA,EADnD,YAQoB,cAAA;;IANjB,WAAW,MAAA,eAAc,CAAC;IAC1B,UAAA,SAAA;IACA,aAAA,YAAA;IACA,UAAA,MAAA,SAAQ;IACR,MAAM,aAAA;IACN,SAAS,MAAA,OAAM;IACf,gBAAA,eAAA"}
@@ -2,13 +2,12 @@ import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference';
2
2
  import type { AuthStore } from '@scalar/workspace-store/entities/auth';
3
3
  import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
4
4
  import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments';
5
- import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
6
- import type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace';
5
+ import type { OpenApiDocument, ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
7
6
  type __VLS_Props = {
8
7
  options: Pick<ApiReferenceConfigurationRaw, 'authentication' | 'persistAuth' | 'proxyUrl'>;
9
8
  name: string;
10
9
  authStore: AuthStore;
11
- document: WorkspaceDocument | undefined;
10
+ document: OpenApiDocument | undefined;
12
11
  eventBus: WorkspaceEventBus;
13
12
  selectedServer: ServerObject | null;
14
13
  environment: XScalarEnvironment;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/Auth.vue"],"names":[],"mappings":"AAqGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAMlF,KAAK,WAAW,GAAG;IACf,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC5B,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAC9C,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACvC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,WAAW,EAAE,kBAAkB,CAAA;CAChC,CAAC;AAqHJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Auth.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/Auth.vue"],"names":[],"mappings":"AAuGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAMrE,KAAK,WAAW,GAAG;IACf,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC5B,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAC9C,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAA;IACrC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,WAAW,EAAE,kBAAkB,CAAA;CAChC,CAAC;AAqHJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.js","names":[],"sources":["../../../src/views/Settings/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { useFocusWithin } from '@vueuse/core'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport { useState } from '@/state/state'\n\nconst { document, name, environment, eventBus, options, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'persistAuth' | 'proxyUrl'\n >\n name: string\n authStore: AuthStore\n document: WorkspaceDocument | undefined\n eventBus: WorkspaceEventBus\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\n\nconst { workspaceStore } = useState()\n\n/** Compute what the security requirements should be for the document */\nconst securityRequirements = computed(() =>\n getSecurityRequirements(document?.security),\n)\n\n/** Merge the security schemes with the authentication config and the auth store */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n document?.components?.securitySchemes ?? {},\n options.authentication?.securitySchemes,\n authStore,\n name,\n ),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: name,\n }),\n undefined,\n securityRequirements.value,\n securitySchemes.value,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n\nconst focusRef = shallowRef()\nconst { focused } = useFocusWithin(focusRef)\n\nwatch(focused, (isFocused) => {\n if (!isFocused) {\n return\n }\n\n workspaceStore.update('x-scalar-active-document', name)\n})\n</script>\n<template>\n <div\n ref=\"focusRef\"\n tabindex=\"0\">\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :authStore\n :documentSlug=\"name\"\n :environment\n :eventBus\n isReadOnly\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n title=\"Authentication\" />\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Auth.vue.js","names":[],"sources":["../../../src/views/Settings/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n OpenApiDocument,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { useFocusWithin } from '@vueuse/core'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport { useState } from '@/state/state'\n\nconst { document, name, environment, eventBus, options, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'persistAuth' | 'proxyUrl'\n >\n name: string\n authStore: AuthStore\n document: OpenApiDocument | undefined\n eventBus: WorkspaceEventBus\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\n\nconst { workspaceStore } = useState()\n\n/** Compute what the security requirements should be for the document */\nconst securityRequirements = computed(() =>\n getSecurityRequirements(document?.security),\n)\n\n/** Merge the security schemes with the authentication config and the auth store */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n document?.components?.securitySchemes ?? {},\n options.authentication?.securitySchemes,\n authStore,\n name,\n ),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: name,\n }),\n undefined,\n securityRequirements.value,\n securitySchemes.value,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n\nconst focusRef = shallowRef()\nconst { focused } = useFocusWithin(focusRef)\n\nwatch(focused, (isFocused) => {\n if (!isFocused) {\n return\n }\n\n workspaceStore.update('x-scalar-active-document', name)\n})\n</script>\n<template>\n <div\n ref=\"focusRef\"\n tabindex=\"0\">\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :authStore\n :documentSlug=\"name\"\n :environment\n :eventBus\n isReadOnly\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n title=\"Authentication\" />\n </div>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.script.js","names":[],"sources":["../../../src/views/Settings/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { useFocusWithin } from '@vueuse/core'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport { useState } from '@/state/state'\n\nconst { document, name, environment, eventBus, options, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'persistAuth' | 'proxyUrl'\n >\n name: string\n authStore: AuthStore\n document: WorkspaceDocument | undefined\n eventBus: WorkspaceEventBus\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\n\nconst { workspaceStore } = useState()\n\n/** Compute what the security requirements should be for the document */\nconst securityRequirements = computed(() =>\n getSecurityRequirements(document?.security),\n)\n\n/** Merge the security schemes with the authentication config and the auth store */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n document?.components?.securitySchemes ?? {},\n options.authentication?.securitySchemes,\n authStore,\n name,\n ),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: name,\n }),\n undefined,\n securityRequirements.value,\n securitySchemes.value,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n\nconst focusRef = shallowRef()\nconst { focused } = useFocusWithin(focusRef)\n\nwatch(focused, (isFocused) => {\n if (!isFocused) {\n return\n }\n\n workspaceStore.update('x-scalar-active-document', name)\n})\n</script>\n<template>\n <div\n ref=\"focusRef\"\n tabindex=\"0\">\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :authStore\n :documentSlug=\"name\"\n :environment\n :eventBus\n isReadOnly\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n title=\"Authentication\" />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAgCA,MAAM,EAAE,mBAAmB,UAAS;;EAGpC,MAAM,uBAAuB,eAC3B,wBAAwB,QAAA,UAAU,SAAS,CAC7C;;EAGA,MAAM,kBAAkB,eACtB,cACE,QAAA,UAAU,YAAY,mBAAmB,EAAE,EAC3C,QAAA,QAAQ,gBAAgB,iBACxB,QAAA,WACA,QAAA,KACD,CACH;;EAGA,MAAM,mBAAmB,eACvB,oBACE,QAAA,UAAU,uBAAuB;GAC/B,MAAM;GACN,cAAc,QAAA;GACf,CAAC,EACF,KAAA,GACA,qBAAqB,OACrB,gBAAgB,OAChB,QAAA,QAAQ,gBAAgB,wBACzB,CACH;EAEA,MAAM,WAAW,YAAW;EAC5B,MAAM,EAAE,YAAY,eAAe,SAAQ;AAE3C,QAAM,UAAU,cAAc;AAC5B,OAAI,CAAC,UACH;AAGF,kBAAe,OAAO,4BAA4B,QAAA,KAAI;IACvD;;uBAGC,mBAoBM,OAAA;aAnBA;IAAJ,KAAI;IACJ,UAAS;OAED,OAAO,KAAK,gBAAA,MAAe,CAAE,UAAA,WAAA,EADrC,YAgB2B,MAAA,aAAA,EAAA;;IAdxB,WAAA,QAAA;IACA,cAAc,QAAA;IACd,aAAA,QAAA;IACA,UAAA,QAAA;IACD,YAAA;IACA,UAAA;IACA,QAAO;IACN,MAAM,EAAA,MAAA,YAAoB;IAC1B,aAAa,QAAA,QAAQ;IACrB,UAAU,QAAA,QAAQ,YAAQ;IAC1B,sBAAA,qBAAA;IACA,iBAAA,gBAAA;IACA,kBAAA,iBAAA;IACA,QAAQ,QAAA;IACT,OAAM"}
1
+ {"version":3,"file":"Auth.vue.script.js","names":[],"sources":["../../../src/views/Settings/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n OpenApiDocument,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { useFocusWithin } from '@vueuse/core'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport { useState } from '@/state/state'\n\nconst { document, name, environment, eventBus, options, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'persistAuth' | 'proxyUrl'\n >\n name: string\n authStore: AuthStore\n document: OpenApiDocument | undefined\n eventBus: WorkspaceEventBus\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\n\nconst { workspaceStore } = useState()\n\n/** Compute what the security requirements should be for the document */\nconst securityRequirements = computed(() =>\n getSecurityRequirements(document?.security),\n)\n\n/** Merge the security schemes with the authentication config and the auth store */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n document?.components?.securitySchemes ?? {},\n options.authentication?.securitySchemes,\n authStore,\n name,\n ),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: name,\n }),\n undefined,\n securityRequirements.value,\n securitySchemes.value,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n\nconst focusRef = shallowRef()\nconst { focused } = useFocusWithin(focusRef)\n\nwatch(focused, (isFocused) => {\n if (!isFocused) {\n return\n }\n\n workspaceStore.update('x-scalar-active-document', name)\n})\n</script>\n<template>\n <div\n ref=\"focusRef\"\n tabindex=\"0\">\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :authStore\n :documentSlug=\"name\"\n :environment\n :eventBus\n isReadOnly\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n title=\"Authentication\" />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAkCA,MAAM,EAAE,mBAAmB,UAAS;;EAGpC,MAAM,uBAAuB,eAC3B,wBAAwB,QAAA,UAAU,SAAS,CAC7C;;EAGA,MAAM,kBAAkB,eACtB,cACE,QAAA,UAAU,YAAY,mBAAmB,EAAE,EAC3C,QAAA,QAAQ,gBAAgB,iBACxB,QAAA,WACA,QAAA,KACD,CACH;;EAGA,MAAM,mBAAmB,eACvB,oBACE,QAAA,UAAU,uBAAuB;GAC/B,MAAM;GACN,cAAc,QAAA;GACf,CAAC,EACF,KAAA,GACA,qBAAqB,OACrB,gBAAgB,OAChB,QAAA,QAAQ,gBAAgB,wBACzB,CACH;EAEA,MAAM,WAAW,YAAW;EAC5B,MAAM,EAAE,YAAY,eAAe,SAAQ;AAE3C,QAAM,UAAU,cAAc;AAC5B,OAAI,CAAC,UACH;AAGF,kBAAe,OAAO,4BAA4B,QAAA,KAAI;IACvD;;uBAGC,mBAoBM,OAAA;aAnBA;IAAJ,KAAI;IACJ,UAAS;OAED,OAAO,KAAK,gBAAA,MAAe,CAAE,UAAA,WAAA,EADrC,YAgB2B,MAAA,aAAA,EAAA;;IAdxB,WAAA,QAAA;IACA,cAAc,QAAA;IACd,aAAA,QAAA;IACA,UAAA,QAAA;IACD,YAAA;IACA,UAAA;IACA,QAAO;IACN,MAAM,EAAA,MAAA,YAAoB;IAC1B,aAAa,QAAA,QAAQ;IACrB,UAAU,QAAA,QAAQ,YAAQ;IAC1B,sBAAA,qBAAA;IACA,iBAAA,gBAAA;IACA,kBAAA,iBAAA;IACA,QAAQ,QAAA;IACT,OAAM"}
@@ -1,6 +1,6 @@
1
- import { type WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace';
1
+ import type { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
2
  type __VLS_Props = {
3
- document: WorkspaceDocument;
3
+ document: OpenApiDocument;
4
4
  name: string;
5
5
  };
6
6
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"DocSettings.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/DocSettings.vue"],"names":[],"mappings":"AAiFA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAOlF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb,CAAC;AA6FF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"DocSettings.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/DocSettings.vue"],"names":[],"mappings":"AAiFA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAOnG,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,eAAe,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb,CAAC;AA6FF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
2
2
  import DocSettings_vue_vue_type_script_setup_true_lang_default from "./DocSettings.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/views/Settings/DocSettings.vue
5
- var DocSettings_default = /* @__PURE__ */ _plugin_vue_export_helper_default(DocSettings_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-dd964244"]]);
5
+ var DocSettings_default = /* @__PURE__ */ _plugin_vue_export_helper_default(DocSettings_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-01a25619"]]);
6
6
  //#endregion
7
7
  export { DocSettings_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"DocSettings.vue.js","names":[],"sources":["../../../src/views/Settings/DocSettings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { type WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { computed } from 'vue'\n\nimport ServerSelector from '@/components/ServerSelector.vue'\nimport { useState } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { document, name } = defineProps<{\n document: WorkspaceDocument\n name: string\n}>()\n\nconst { workspaceStore, config, eventBus } = useState()\n\nconst environment = computed(\n () => getActiveEnvironment(workspaceStore, document).environment,\n)\n\nconst selectedServer = computed(() => {\n const servers = getServers(document.servers, {\n documentUrl: document['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document, null, null, servers)\n})\n\nconst securitySchemes = computed(\n () => document.components?.securitySchemes ?? {},\n)\n</script>\n\n<template>\n <div class=\"docSettings\">\n <div>\n <Auth\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name\n :options=\"config\"\n :securitySchemes\n :selectedServer />\n </div>\n <div>\n <ServerSelector\n :eventBus\n :selectedServer\n :servers=\"document.servers ?? []\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.docSettings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-bottom: 12px;\n font-size: var(--scalar-font-size-3);\n max-height: 600px;\n}\n\n.documentName {\n font-weight: var(--scalar-semibold);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"DocSettings.vue.js","names":[],"sources":["../../../src/views/Settings/DocSettings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport type { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport ServerSelector from '@/components/ServerSelector.vue'\nimport { useState } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { document, name } = defineProps<{\n document: OpenApiDocument\n name: string\n}>()\n\nconst { workspaceStore, config, eventBus } = useState()\n\nconst environment = computed(\n () => getActiveEnvironment(workspaceStore, document).environment,\n)\n\nconst selectedServer = computed(() => {\n const servers = getServers(document.servers, {\n documentUrl: document['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document, null, null, servers)\n})\n\nconst securitySchemes = computed(\n () => document.components?.securitySchemes ?? {},\n)\n</script>\n\n<template>\n <div class=\"docSettings\">\n <div>\n <Auth\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name\n :options=\"config\"\n :securitySchemes\n :selectedServer />\n </div>\n <div>\n <ServerSelector\n :eventBus\n :selectedServer\n :servers=\"document.servers ?? []\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.docSettings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-bottom: 12px;\n font-size: var(--scalar-font-size-3);\n max-height: 600px;\n}\n\n.documentName {\n font-weight: var(--scalar-semibold);\n}\n</style>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"DocSettings.vue.script.js","names":[],"sources":["../../../src/views/Settings/DocSettings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { type WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { computed } from 'vue'\n\nimport ServerSelector from '@/components/ServerSelector.vue'\nimport { useState } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { document, name } = defineProps<{\n document: WorkspaceDocument\n name: string\n}>()\n\nconst { workspaceStore, config, eventBus } = useState()\n\nconst environment = computed(\n () => getActiveEnvironment(workspaceStore, document).environment,\n)\n\nconst selectedServer = computed(() => {\n const servers = getServers(document.servers, {\n documentUrl: document['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document, null, null, servers)\n})\n\nconst securitySchemes = computed(\n () => document.components?.securitySchemes ?? {},\n)\n</script>\n\n<template>\n <div class=\"docSettings\">\n <div>\n <Auth\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name\n :options=\"config\"\n :securitySchemes\n :selectedServer />\n </div>\n <div>\n <ServerSelector\n :eventBus\n :selectedServer\n :servers=\"document.servers ?? []\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.docSettings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-bottom: 12px;\n font-size: var(--scalar-font-size-3);\n max-height: 600px;\n}\n\n.documentName {\n font-weight: var(--scalar-semibold);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAkBA,MAAM,EAAE,gBAAgB,QAAQ,aAAa,UAAS;EAEtD,MAAM,cAAc,eACZ,qBAAqB,gBAAgB,QAAA,SAAS,CAAC,YACvD;EAEA,MAAM,iBAAiB,eAAe;GACpC,MAAM,UAAU,WAAW,QAAA,SAAS,SAAS,EAC3C,aAAa,QAAA,SAAS,iCACvB,CAAA;AAED,UAAO,kBAAkB,QAAA,UAAU,MAAM,MAAM,QAAO;IACvD;EAED,MAAM,kBAAkB,eAChB,QAAA,SAAS,YAAY,mBAAmB,EAAE,CAClD;;uBAIE,mBAkBM,OAlBN,YAkBM,CAjBJ,mBAUM,OAAA,MAAA,CATJ,YAQoB,cAAA;IAPjB,WAAW,MAAA,eAAc,CAAC;IAC1B,UAAA,QAAA;IACA,aAAA,YAAA;IACA,UAAA,MAAA,SAAQ;IACR,MAAA,QAAA;IACA,SAAS,MAAA,OAAM;IACf,iBAAA,gBAAA;IACA,gBAAA,eAAA;;;;;;;;;;SAEL,mBAKM,OAAA,MAAA,CAJJ,YAGsC,wBAAA;IAFnC,UAAA,MAAA,SAAQ;IACR,gBAAA,eAAA;IACA,SAAS,QAAA,SAAS,WAAO,EAAA"}
1
+ {"version":3,"file":"DocSettings.vue.script.js","names":[],"sources":["../../../src/views/Settings/DocSettings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport type { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport ServerSelector from '@/components/ServerSelector.vue'\nimport { useState } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { document, name } = defineProps<{\n document: OpenApiDocument\n name: string\n}>()\n\nconst { workspaceStore, config, eventBus } = useState()\n\nconst environment = computed(\n () => getActiveEnvironment(workspaceStore, document).environment,\n)\n\nconst selectedServer = computed(() => {\n const servers = getServers(document.servers, {\n documentUrl: document['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document, null, null, servers)\n})\n\nconst securitySchemes = computed(\n () => document.components?.securitySchemes ?? {},\n)\n</script>\n\n<template>\n <div class=\"docSettings\">\n <div>\n <Auth\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name\n :options=\"config\"\n :securitySchemes\n :selectedServer />\n </div>\n <div>\n <ServerSelector\n :eventBus\n :selectedServer\n :servers=\"document.servers ?? []\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.docSettings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-bottom: 12px;\n font-size: var(--scalar-font-size-3);\n max-height: 600px;\n}\n\n.documentName {\n font-weight: var(--scalar-semibold);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAkBA,MAAM,EAAE,gBAAgB,QAAQ,aAAa,UAAS;EAEtD,MAAM,cAAc,eACZ,qBAAqB,gBAAgB,QAAA,SAAS,CAAC,YACvD;EAEA,MAAM,iBAAiB,eAAe;GACpC,MAAM,UAAU,WAAW,QAAA,SAAS,SAAS,EAC3C,aAAa,QAAA,SAAS,iCACvB,CAAA;AAED,UAAO,kBAAkB,QAAA,UAAU,MAAM,MAAM,QAAO;IACvD;EAED,MAAM,kBAAkB,eAChB,QAAA,SAAS,YAAY,mBAAmB,EAAE,CAClD;;uBAIE,mBAkBM,OAlBN,YAkBM,CAjBJ,mBAUM,OAAA,MAAA,CATJ,YAQoB,cAAA;IAPjB,WAAW,MAAA,eAAc,CAAC;IAC1B,UAAA,QAAA;IACA,aAAA,YAAA;IACA,UAAA,MAAA,SAAQ;IACR,MAAA,QAAA;IACA,SAAS,MAAA,OAAM;IACf,iBAAA,gBAAA;IACA,gBAAA,eAAA;;;;;;;;;;SAEL,mBAKM,OAAA,MAAA,CAJJ,YAGsC,wBAAA;IAFnC,UAAA,MAAA,SAAQ;IACR,gBAAA,eAAA;IACA,SAAS,QAAA,SAAS,WAAO,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/Settings.vue"],"names":[],"mappings":"AAkKA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAO3B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAC;AA8LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Settings.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Settings/Settings.vue"],"names":[],"mappings":"AAuKA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAQ3B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAC;AAkMF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -3,7 +3,7 @@ import Settings_vue_vue_type_script_setup_true_lang_default from "./Settings.vue
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  //#region src/views/Settings/Settings.vue
6
- var Settings_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Settings_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5e4bca68"]]);
6
+ var Settings_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Settings_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9843da37"]]);
7
7
  //#endregion
8
8
  export { Settings_default as default };
9
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.vue.js","names":[],"sources":["../../../src/views/Settings/Settings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarColorModeToggle,\n ScalarModal,\n ScalarTextInput,\n type ModalState,\n} from '@scalar/components'\nimport { ScalarIconCaretDown, ScalarIconCaretRight } from '@scalar/icons'\n\nimport { URLS } from '@/consts/urls'\nimport { useState } from '@/state/state'\nimport DocSettings from '@/views/Settings/DocSettings.vue'\n\nconst { modalState } = defineProps<{\n modalState: ModalState\n}>()\n\nconst { workspaceStore, proxyUrlRaw } = useState()\n\nfunction selectDocument(name: string) {\n workspaceStore.update('x-scalar-active-document', name)\n}\n</script>\n\n<template>\n <ScalarModal\n class=\"settingsModal\"\n :state=\"modalState\">\n <div class=\"settingsHeading\">\n <h1>Settings</h1>\n <ScalarColorModeToggle class=\"colorToggle ml-auto\" />\n </div>\n <div class=\"documentList\">\n <template\n v-if=\"Object.entries(workspaceStore.workspace.documents).length\">\n <div\n v-for=\"[name, document] of Object.entries(\n workspaceStore.workspace.documents,\n )\"\n :key=\"name\"\n class=\"document\">\n <button\n class=\"documentName\"\n :class=\"{\n documentNameActive:\n workspaceStore.workspace.activeDocument === document,\n }\"\n type=\"button\"\n @click=\"selectDocument(name)\">\n @{{ name }}\n <ScalarIconCaretDown\n v-if=\"workspaceStore.workspace.activeDocument === document\" />\n <ScalarIconCaretRight v-else />\n </button>\n <div v-if=\"workspaceStore.workspace.activeDocument === document\">\n <DocSettings\n :document\n :name />\n </div>\n </div>\n </template>\n <div\n v-else\n class=\"noDocuments\">\n There's no API definition loaded. Use the + button to load APIs.\n </div>\n </div>\n\n <div class=\"proxyUrlContainer\">\n <label for=\"proxyUrl\">CORS Proxy</label>\n <p>\n All requests will be sent through the specified proxy URL to help avoid\n CORS (Cross-Origin Resource Sharing) issues.\n <a\n class=\"underline\"\n :href=\"URLS.PROXY_SOURCE_CODE\"\n target=\"_blank\">\n Read more\n </a>\n </p>\n <ScalarTextInput\n id=\"proxyUrl\"\n v-model=\"proxyUrlRaw\"\n label=\"Proxy URL\"\n :placeholder=\"URLS.DEFAULT_PROXY_URL\" />\n </div>\n </ScalarModal>\n</template>\n\n<style>\n/* Prevent auth method dropdown from going behind the modal */\n.settingsModal .scalar-modal-layout {\n z-index: 10 !important;\n}\n\n.settingsModal .scalar-modal-body {\n overflow-y: auto;\n overflow-x: hidden;\n}\n</style>\n\n<style scoped>\n.documentList {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-font-size-3);\n margin-bottom: 12px;\n}\n\n.document {\n display: flex;\n flex-direction: column;\n width: calc(100% + 24px);\n left: -12px;\n position: relative;\n padding: 0 12px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.document:first-of-type:not(:last-of-type) {\n border-bottom: none;\n}\n\n.documentName {\n gap: 4px;\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-2);\n padding: 12px 0;\n}\n\n.documentNameActive {\n color: var(--scalar-color-1);\n}\n\n.settingsHeading {\n font-size: 19px;\n margin-bottom: 12px;\n display: flex;\n gap: 5px;\n align-items: center;\n font-weight: var(--scalar-semibold);\n}\n\n.proxyUrlContainer {\n font-size: var(--scalar-font-size-3);\n display: flex;\n gap: 5px;\n flex-direction: column;\n}\n.proxyUrlContainer label {\n font-weight: var(--scalar-semibold);\n}\n.noDocuments {\n color: var(--scalar-color-2);\n margin-bottom: 10px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Settings.vue.js","names":[],"sources":["../../../src/views/Settings/Settings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarColorModeToggle,\n ScalarModal,\n ScalarTextInput,\n type ModalState,\n} from '@scalar/components'\nimport { ScalarIconCaretDown, ScalarIconCaretRight } from '@scalar/icons'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\n\nimport { URLS } from '@/consts/urls'\nimport { useState } from '@/state/state'\nimport DocSettings from '@/views/Settings/DocSettings.vue'\n\nconst { modalState } = defineProps<{\n modalState: ModalState\n}>()\n\nconst { workspaceStore, proxyUrlRaw } = useState()\n\nfunction selectDocument(name: string) {\n workspaceStore.update('x-scalar-active-document', name)\n}\n</script>\n\n<template>\n <ScalarModal\n class=\"settingsModal\"\n :state=\"modalState\">\n <div class=\"settingsHeading\">\n <h1>Settings</h1>\n <ScalarColorModeToggle class=\"colorToggle ml-auto\" />\n </div>\n <div class=\"documentList\">\n <template\n v-if=\"Object.entries(workspaceStore.workspace.documents).length\">\n <div\n v-for=\"[name, document] of Object.entries(\n workspaceStore.workspace.documents,\n )\"\n :key=\"name\"\n class=\"document\">\n <button\n class=\"documentName\"\n :class=\"{\n documentNameActive:\n workspaceStore.workspace.activeDocument === document,\n }\"\n type=\"button\"\n @click=\"selectDocument(name)\">\n @{{ name }}\n <ScalarIconCaretDown\n v-if=\"workspaceStore.workspace.activeDocument === document\" />\n <ScalarIconCaretRight v-else />\n </button>\n <div\n v-if=\"\n workspaceStore.workspace.activeDocument === document &&\n isOpenApiDocument(document)\n \">\n <DocSettings\n :document\n :name />\n </div>\n </div>\n </template>\n <div\n v-else\n class=\"noDocuments\">\n There's no API definition loaded. Use the + button to load APIs.\n </div>\n </div>\n\n <div class=\"proxyUrlContainer\">\n <label for=\"proxyUrl\">CORS Proxy</label>\n <p>\n All requests will be sent through the specified proxy URL to help avoid\n CORS (Cross-Origin Resource Sharing) issues.\n <a\n class=\"underline\"\n :href=\"URLS.PROXY_SOURCE_CODE\"\n target=\"_blank\">\n Read more\n </a>\n </p>\n <ScalarTextInput\n id=\"proxyUrl\"\n v-model=\"proxyUrlRaw\"\n label=\"Proxy URL\"\n :placeholder=\"URLS.DEFAULT_PROXY_URL\" />\n </div>\n </ScalarModal>\n</template>\n\n<style>\n/* Prevent auth method dropdown from going behind the modal */\n.settingsModal .scalar-modal-layout {\n z-index: 10 !important;\n}\n\n.settingsModal .scalar-modal-body {\n overflow-y: auto;\n overflow-x: hidden;\n}\n</style>\n\n<style scoped>\n.documentList {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-font-size-3);\n margin-bottom: 12px;\n}\n\n.document {\n display: flex;\n flex-direction: column;\n width: calc(100% + 24px);\n left: -12px;\n position: relative;\n padding: 0 12px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.document:first-of-type:not(:last-of-type) {\n border-bottom: none;\n}\n\n.documentName {\n gap: 4px;\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-2);\n padding: 12px 0;\n}\n\n.documentNameActive {\n color: var(--scalar-color-1);\n}\n\n.settingsHeading {\n font-size: 19px;\n margin-bottom: 12px;\n display: flex;\n gap: 5px;\n align-items: center;\n font-weight: var(--scalar-semibold);\n}\n\n.proxyUrlContainer {\n font-size: var(--scalar-font-size-3);\n display: flex;\n gap: 5px;\n flex-direction: column;\n}\n.proxyUrlContainer label {\n font-weight: var(--scalar-semibold);\n}\n.noDocuments {\n color: var(--scalar-color-2);\n margin-bottom: 10px;\n}\n</style>\n"],"mappings":""}
@@ -3,6 +3,7 @@ import { useState } from "../../state/state.js";
3
3
  import DocSettings_default from "./DocSettings.vue.js";
4
4
  import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isRef, normalizeClass, openBlock, renderList, toDisplayString, unref, withCtx } from "vue";
5
5
  import { ScalarColorModeToggle, ScalarModal, ScalarTextInput } from "@scalar/components";
6
+ import { isOpenApiDocument } from "@scalar/workspace-store/schemas/type-guards";
6
7
  import { ScalarIconCaretDown, ScalarIconCaretRight } from "@scalar/icons";
7
8
  //#region src/views/Settings/Settings.vue?vue&type=script&setup=true&lang.ts
8
9
  var _hoisted_1 = { class: "settingsHeading" };
@@ -38,7 +39,7 @@ var Settings_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
38
39
  class: normalizeClass(["documentName", { documentNameActive: unref(workspaceStore).workspace.activeDocument === document }]),
39
40
  type: "button",
40
41
  onClick: ($event) => selectDocument(name)
41
- }, [createTextVNode(" @" + toDisplayString(name) + " ", 1), unref(workspaceStore).workspace.activeDocument === document ? (openBlock(), createBlock(unref(ScalarIconCaretDown), { key: 0 })) : (openBlock(), createBlock(unref(ScalarIconCaretRight), { key: 1 }))], 10, _hoisted_3), unref(workspaceStore).workspace.activeDocument === document ? (openBlock(), createElementBlock("div", _hoisted_4, [createVNode(DocSettings_default, {
42
+ }, [createTextVNode(" @" + toDisplayString(name) + " ", 1), unref(workspaceStore).workspace.activeDocument === document ? (openBlock(), createBlock(unref(ScalarIconCaretDown), { key: 0 })) : (openBlock(), createBlock(unref(ScalarIconCaretRight), { key: 1 }))], 10, _hoisted_3), unref(workspaceStore).workspace.activeDocument === document && unref(isOpenApiDocument)(document) ? (openBlock(), createElementBlock("div", _hoisted_4, [createVNode(DocSettings_default, {
42
43
  document,
43
44
  name
44
45
  }, null, 8, ["document", "name"])])) : createCommentVNode("", true)]);
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.vue.script.js","names":[],"sources":["../../../src/views/Settings/Settings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarColorModeToggle,\n ScalarModal,\n ScalarTextInput,\n type ModalState,\n} from '@scalar/components'\nimport { ScalarIconCaretDown, ScalarIconCaretRight } from '@scalar/icons'\n\nimport { URLS } from '@/consts/urls'\nimport { useState } from '@/state/state'\nimport DocSettings from '@/views/Settings/DocSettings.vue'\n\nconst { modalState } = defineProps<{\n modalState: ModalState\n}>()\n\nconst { workspaceStore, proxyUrlRaw } = useState()\n\nfunction selectDocument(name: string) {\n workspaceStore.update('x-scalar-active-document', name)\n}\n</script>\n\n<template>\n <ScalarModal\n class=\"settingsModal\"\n :state=\"modalState\">\n <div class=\"settingsHeading\">\n <h1>Settings</h1>\n <ScalarColorModeToggle class=\"colorToggle ml-auto\" />\n </div>\n <div class=\"documentList\">\n <template\n v-if=\"Object.entries(workspaceStore.workspace.documents).length\">\n <div\n v-for=\"[name, document] of Object.entries(\n workspaceStore.workspace.documents,\n )\"\n :key=\"name\"\n class=\"document\">\n <button\n class=\"documentName\"\n :class=\"{\n documentNameActive:\n workspaceStore.workspace.activeDocument === document,\n }\"\n type=\"button\"\n @click=\"selectDocument(name)\">\n @{{ name }}\n <ScalarIconCaretDown\n v-if=\"workspaceStore.workspace.activeDocument === document\" />\n <ScalarIconCaretRight v-else />\n </button>\n <div v-if=\"workspaceStore.workspace.activeDocument === document\">\n <DocSettings\n :document\n :name />\n </div>\n </div>\n </template>\n <div\n v-else\n class=\"noDocuments\">\n There's no API definition loaded. Use the + button to load APIs.\n </div>\n </div>\n\n <div class=\"proxyUrlContainer\">\n <label for=\"proxyUrl\">CORS Proxy</label>\n <p>\n All requests will be sent through the specified proxy URL to help avoid\n CORS (Cross-Origin Resource Sharing) issues.\n <a\n class=\"underline\"\n :href=\"URLS.PROXY_SOURCE_CODE\"\n target=\"_blank\">\n Read more\n </a>\n </p>\n <ScalarTextInput\n id=\"proxyUrl\"\n v-model=\"proxyUrlRaw\"\n label=\"Proxy URL\"\n :placeholder=\"URLS.DEFAULT_PROXY_URL\" />\n </div>\n </ScalarModal>\n</template>\n\n<style>\n/* Prevent auth method dropdown from going behind the modal */\n.settingsModal .scalar-modal-layout {\n z-index: 10 !important;\n}\n\n.settingsModal .scalar-modal-body {\n overflow-y: auto;\n overflow-x: hidden;\n}\n</style>\n\n<style scoped>\n.documentList {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-font-size-3);\n margin-bottom: 12px;\n}\n\n.document {\n display: flex;\n flex-direction: column;\n width: calc(100% + 24px);\n left: -12px;\n position: relative;\n padding: 0 12px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.document:first-of-type:not(:last-of-type) {\n border-bottom: none;\n}\n\n.documentName {\n gap: 4px;\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-2);\n padding: 12px 0;\n}\n\n.documentNameActive {\n color: var(--scalar-color-1);\n}\n\n.settingsHeading {\n font-size: 19px;\n margin-bottom: 12px;\n display: flex;\n gap: 5px;\n align-items: center;\n font-weight: var(--scalar-semibold);\n}\n\n.proxyUrlContainer {\n font-size: var(--scalar-font-size-3);\n display: flex;\n gap: 5px;\n flex-direction: column;\n}\n.proxyUrlContainer label {\n font-weight: var(--scalar-semibold);\n}\n.noDocuments {\n color: var(--scalar-color-2);\n margin-bottom: 10px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAiBA,MAAM,EAAE,gBAAgB,gBAAgB,UAAS;EAEjD,SAAS,eAAe,MAAc;AACpC,kBAAe,OAAO,4BAA4B,KAAI;;;uBAKtD,YA6Dc,MAAA,YAAA,EAAA;IA5DZ,OAAM;IACL,OAAO,QAAA;;2BAIF;KAHN,mBAGM,OAHN,YAGM,CAAA,OAAA,OAAA,OAAA,KAFJ,mBAAiB,MAAA,MAAb,YAAQ,GAAA,GACZ,YAAqD,MAAA,sBAAA,EAAA,EAA9B,OAAM,uBAAqB,CAAA,CAAA,CAAA;KAEpD,mBAkCM,OAlCN,YAkCM,CAhCI,OAAO,QAAQ,MAAA,eAAc,CAAC,UAAU,UAAS,CAAE,UAAA,UAAA,KAAA,EACzD,mBAwBM,UAAA,EAAA,KAAA,GAAA,EAAA,WAvBuB,OAAO,QAAqB,MAAA,eAAc,CAAC,UAAU,UAAA,GAAA,CAAxE,MAAM,cAAQ;0BADxB,mBAwBM,OAAA;OApBH,KAAK;OACN,OAAM;UACN,mBAYS,UAAA;OAXP,OAAK,eAAA,CAAC,gBAAc,EAAA,oBACwC,MAAA,eAAc,CAAC,UAAU,mBAAmB,UAAA,CAAA,CAAA;OAIxG,MAAK;OACJ,UAAK,WAAE,eAAe,KAAI;0BAAG,OAC7B,gBAAG,KAAI,GAAG,KACX,EAAA,EACQ,MAAA,eAAc,CAAC,UAAU,mBAAmB,YAAA,WAAA,EADpD,YACgE,MAAA,oBAAA,EAAA,EAAA,KAAA,GAAA,CAAA,KAAA,WAAA,EAChE,YAA+B,MAAA,qBAAA,EAAA,EAAA,KAAA,GAAA,CAAA,EAAA,EAAA,IAAA,WAAA,EAEtB,MAAA,eAAc,CAAC,UAAU,mBAAmB,YAAA,WAAA,EAAvD,mBAIM,OAAA,YAAA,CAHJ,YAEU,qBAAA;OADP;OACA;;+BAIT,mBAIM,OAJN,YAEsB,qEAEtB,EAAA,CAAA;KAGF,mBAiBM,OAjBN,YAiBM;gCAhBJ,mBAAwC,SAAA,EAAjC,KAAI,YAAU,EAAC,cAAU,GAAA;MAChC,mBASI,KAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBATD,0HAGD,GAAA,GAAA,mBAKI,KAAA;OAJF,OAAM;OACL,MAAM,MAAA,KAAI,CAAC;OACZ,QAAO;SAAS,eAElB,GAAA,WAAA,CAAA,CAAA;MAEF,YAI0C,MAAA,gBAAA,EAAA;OAHxC,IAAG;mBACM,MAAA,YAAW;qGAAA,QAAA,SAAA;OACpB,OAAM;OACL,aAAa,MAAA,KAAI,CAAC"}
1
+ {"version":3,"file":"Settings.vue.script.js","names":[],"sources":["../../../src/views/Settings/Settings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarColorModeToggle,\n ScalarModal,\n ScalarTextInput,\n type ModalState,\n} from '@scalar/components'\nimport { ScalarIconCaretDown, ScalarIconCaretRight } from '@scalar/icons'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\n\nimport { URLS } from '@/consts/urls'\nimport { useState } from '@/state/state'\nimport DocSettings from '@/views/Settings/DocSettings.vue'\n\nconst { modalState } = defineProps<{\n modalState: ModalState\n}>()\n\nconst { workspaceStore, proxyUrlRaw } = useState()\n\nfunction selectDocument(name: string) {\n workspaceStore.update('x-scalar-active-document', name)\n}\n</script>\n\n<template>\n <ScalarModal\n class=\"settingsModal\"\n :state=\"modalState\">\n <div class=\"settingsHeading\">\n <h1>Settings</h1>\n <ScalarColorModeToggle class=\"colorToggle ml-auto\" />\n </div>\n <div class=\"documentList\">\n <template\n v-if=\"Object.entries(workspaceStore.workspace.documents).length\">\n <div\n v-for=\"[name, document] of Object.entries(\n workspaceStore.workspace.documents,\n )\"\n :key=\"name\"\n class=\"document\">\n <button\n class=\"documentName\"\n :class=\"{\n documentNameActive:\n workspaceStore.workspace.activeDocument === document,\n }\"\n type=\"button\"\n @click=\"selectDocument(name)\">\n @{{ name }}\n <ScalarIconCaretDown\n v-if=\"workspaceStore.workspace.activeDocument === document\" />\n <ScalarIconCaretRight v-else />\n </button>\n <div\n v-if=\"\n workspaceStore.workspace.activeDocument === document &&\n isOpenApiDocument(document)\n \">\n <DocSettings\n :document\n :name />\n </div>\n </div>\n </template>\n <div\n v-else\n class=\"noDocuments\">\n There's no API definition loaded. Use the + button to load APIs.\n </div>\n </div>\n\n <div class=\"proxyUrlContainer\">\n <label for=\"proxyUrl\">CORS Proxy</label>\n <p>\n All requests will be sent through the specified proxy URL to help avoid\n CORS (Cross-Origin Resource Sharing) issues.\n <a\n class=\"underline\"\n :href=\"URLS.PROXY_SOURCE_CODE\"\n target=\"_blank\">\n Read more\n </a>\n </p>\n <ScalarTextInput\n id=\"proxyUrl\"\n v-model=\"proxyUrlRaw\"\n label=\"Proxy URL\"\n :placeholder=\"URLS.DEFAULT_PROXY_URL\" />\n </div>\n </ScalarModal>\n</template>\n\n<style>\n/* Prevent auth method dropdown from going behind the modal */\n.settingsModal .scalar-modal-layout {\n z-index: 10 !important;\n}\n\n.settingsModal .scalar-modal-body {\n overflow-y: auto;\n overflow-x: hidden;\n}\n</style>\n\n<style scoped>\n.documentList {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-font-size-3);\n margin-bottom: 12px;\n}\n\n.document {\n display: flex;\n flex-direction: column;\n width: calc(100% + 24px);\n left: -12px;\n position: relative;\n padding: 0 12px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.document:first-of-type:not(:last-of-type) {\n border-bottom: none;\n}\n\n.documentName {\n gap: 4px;\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-2);\n padding: 12px 0;\n}\n\n.documentNameActive {\n color: var(--scalar-color-1);\n}\n\n.settingsHeading {\n font-size: 19px;\n margin-bottom: 12px;\n display: flex;\n gap: 5px;\n align-items: center;\n font-weight: var(--scalar-semibold);\n}\n\n.proxyUrlContainer {\n font-size: var(--scalar-font-size-3);\n display: flex;\n gap: 5px;\n flex-direction: column;\n}\n.proxyUrlContainer label {\n font-weight: var(--scalar-semibold);\n}\n.noDocuments {\n color: var(--scalar-color-2);\n margin-bottom: 10px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAkBA,MAAM,EAAE,gBAAgB,gBAAgB,UAAS;EAEjD,SAAS,eAAe,MAAc;AACpC,kBAAe,OAAO,4BAA4B,KAAI;;;uBAKtD,YAiEc,MAAA,YAAA,EAAA;IAhEZ,OAAM;IACL,OAAO,QAAA;;2BAIF;KAHN,mBAGM,OAHN,YAGM,CAAA,OAAA,OAAA,OAAA,KAFJ,mBAAiB,MAAA,MAAb,YAAQ,GAAA,GACZ,YAAqD,MAAA,sBAAA,EAAA,EAA9B,OAAM,uBAAqB,CAAA,CAAA,CAAA;KAEpD,mBAsCM,OAtCN,YAsCM,CApCI,OAAO,QAAQ,MAAA,eAAc,CAAC,UAAU,UAAS,CAAE,UAAA,UAAA,KAAA,EACzD,mBA4BM,UAAA,EAAA,KAAA,GAAA,EAAA,WA3BuB,OAAO,QAAqB,MAAA,eAAc,CAAC,UAAU,UAAA,GAAA,CAAxE,MAAM,cAAQ;0BADxB,mBA4BM,OAAA;OAxBH,KAAK;OACN,OAAM;UACN,mBAYS,UAAA;OAXP,OAAK,eAAA,CAAC,gBAAc,EAAA,oBACwC,MAAA,eAAc,CAAC,UAAU,mBAAmB,UAAA,CAAA,CAAA;OAIxG,MAAK;OACJ,UAAK,WAAE,eAAe,KAAI;0BAAG,OAC7B,gBAAG,KAAI,GAAG,KACX,EAAA,EACQ,MAAA,eAAc,CAAC,UAAU,mBAAmB,YAAA,WAAA,EADpD,YACgE,MAAA,oBAAA,EAAA,EAAA,KAAA,GAAA,CAAA,KAAA,WAAA,EAChE,YAA+B,MAAA,qBAAA,EAAA,EAAA,KAAA,GAAA,CAAA,EAAA,EAAA,IAAA,WAAA,EAGV,MAAA,eAAc,CAAC,UAAU,mBAAmB,YAA0B,MAAA,kBAAiB,CAAC,SAAQ,IAAA,WAAA,EADvH,mBAQM,OAAA,YAAA,CAHJ,YAEU,qBAAA;OADP;OACA;;+BAIT,mBAIM,OAJN,YAEsB,qEAEtB,EAAA,CAAA;KAGF,mBAiBM,OAjBN,YAiBM;gCAhBJ,mBAAwC,SAAA,EAAjC,KAAI,YAAU,EAAC,cAAU,GAAA;MAChC,mBASI,KAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBATD,0HAGD,GAAA,GAAA,mBAKI,KAAA;OAJF,OAAM;OACL,MAAM,MAAA,KAAI,CAAC;OACZ,QAAO;SAAS,eAElB,GAAA,WAAA,CAAA,CAAA;MAEF,YAI0C,MAAA,gBAAA,EAAA;OAHxC,IAAG;mBACM,MAAA,YAAW;qGAAA,QAAA,SAAA;OACpB,OAAM;OACL,aAAa,MAAA,KAAI,CAAC"}
@@ -21,7 +21,7 @@
21
21
  position: relative;
22
22
  }
23
23
 
24
- .askForAuthentication[data-v-fd5c15f7] {
24
+ .askForAuthentication[data-v-3e7aa176] {
25
25
  display: flex;
26
26
  flex-direction: column;
27
27
  width: 100%;
@@ -34,7 +34,7 @@
34
34
  0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);
35
35
  padding: 0;
36
36
  }
37
- .authContent[data-v-fd5c15f7] {
37
+ .authContent[data-v-3e7aa176] {
38
38
  display: grid;
39
39
  grid-template-rows: 0fr;
40
40
  min-height: 0;
@@ -44,19 +44,19 @@
44
44
  margin: auto;
45
45
  width: 100%;
46
46
  }
47
- .authContentInner[data-v-fd5c15f7] > div {
47
+ .authContentInner[data-v-3e7aa176] > div {
48
48
  margin: 36px 0 48px 0;
49
49
  }
50
- .authContent[data-v-fd5c15f7] .markdown {
50
+ .authContent[data-v-3e7aa176] .markdown {
51
51
  margin-bottom: 0 !important;
52
52
  }
53
- .askForAuthentication.open .authContent[data-v-fd5c15f7] {
53
+ .askForAuthentication.open .authContent[data-v-3e7aa176] {
54
54
  grid-template-rows: 1fr;
55
55
  }
56
- .continueButton[data-v-fd5c15f7] {
56
+ .continueButton[data-v-3e7aa176] {
57
57
  align-self: flex-end;
58
58
  }
59
- .toggleButton[data-v-fd5c15f7] {
59
+ .toggleButton[data-v-3e7aa176] {
60
60
  background: none;
61
61
  border: none;
62
62
  cursor: pointer;
@@ -68,11 +68,11 @@
68
68
  justify-content: space-between;
69
69
  border-radius: var(--scalar-radius-lg);
70
70
  }
71
- .authContentInner[data-v-fd5c15f7] {
71
+ .authContentInner[data-v-3e7aa176] {
72
72
  min-height: 0;
73
73
  overflow: hidden;
74
74
  }
75
- .authorizeButton[data-v-fd5c15f7] {
75
+ .authorizeButton[data-v-3e7aa176] {
76
76
  background: var(--scalar-color-blue) !important;
77
77
  color: white !important;
78
78
  margin: 0 !important;
@@ -1266,7 +1266,7 @@ div + .userMessage[data-v-8e43ed7a] {
1266
1266
  width: 100%;
1267
1267
  }
1268
1268
 
1269
- .docSettings[data-v-dd964244] {
1269
+ .docSettings[data-v-01a25619] {
1270
1270
  display: flex;
1271
1271
  flex-direction: column;
1272
1272
  gap: 12px;
@@ -1274,7 +1274,7 @@ div + .userMessage[data-v-8e43ed7a] {
1274
1274
  font-size: var(--scalar-font-size-3);
1275
1275
  max-height: 600px;
1276
1276
  }
1277
- .documentName[data-v-dd964244] {
1277
+ .documentName[data-v-01a25619] {
1278
1278
  font-weight: var(--scalar-semibold);
1279
1279
  }
1280
1280
 
@@ -1287,13 +1287,13 @@ div + .userMessage[data-v-8e43ed7a] {
1287
1287
  overflow-x: hidden;
1288
1288
  }
1289
1289
 
1290
- .documentList[data-v-5e4bca68] {
1290
+ .documentList[data-v-9843da37] {
1291
1291
  display: flex;
1292
1292
  flex-direction: column;
1293
1293
  font-size: var(--scalar-font-size-3);
1294
1294
  margin-bottom: 12px;
1295
1295
  }
1296
- .document[data-v-5e4bca68] {
1296
+ .document[data-v-9843da37] {
1297
1297
  display: flex;
1298
1298
  flex-direction: column;
1299
1299
  width: calc(100% + 24px);
@@ -1303,10 +1303,10 @@ div + .userMessage[data-v-8e43ed7a] {
1303
1303
  border-top: var(--scalar-border-width) solid var(--scalar-border-color);
1304
1304
  border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);
1305
1305
  }
1306
- .document[data-v-5e4bca68]:first-of-type:not(:last-of-type) {
1306
+ .document[data-v-9843da37]:first-of-type:not(:last-of-type) {
1307
1307
  border-bottom: none;
1308
1308
  }
1309
- .documentName[data-v-5e4bca68] {
1309
+ .documentName[data-v-9843da37] {
1310
1310
  gap: 4px;
1311
1311
  display: flex;
1312
1312
  align-items: center;
@@ -1314,10 +1314,10 @@ div + .userMessage[data-v-8e43ed7a] {
1314
1314
  color: var(--scalar-color-2);
1315
1315
  padding: 12px 0;
1316
1316
  }
1317
- .documentNameActive[data-v-5e4bca68] {
1317
+ .documentNameActive[data-v-9843da37] {
1318
1318
  color: var(--scalar-color-1);
1319
1319
  }
1320
- .settingsHeading[data-v-5e4bca68] {
1320
+ .settingsHeading[data-v-9843da37] {
1321
1321
  font-size: 19px;
1322
1322
  margin-bottom: 12px;
1323
1323
  display: flex;
@@ -1325,16 +1325,16 @@ div + .userMessage[data-v-8e43ed7a] {
1325
1325
  align-items: center;
1326
1326
  font-weight: var(--scalar-semibold);
1327
1327
  }
1328
- .proxyUrlContainer[data-v-5e4bca68] {
1328
+ .proxyUrlContainer[data-v-9843da37] {
1329
1329
  font-size: var(--scalar-font-size-3);
1330
1330
  display: flex;
1331
1331
  gap: 5px;
1332
1332
  flex-direction: column;
1333
1333
  }
1334
- .proxyUrlContainer label[data-v-5e4bca68] {
1334
+ .proxyUrlContainer label[data-v-9843da37] {
1335
1335
  font-weight: var(--scalar-semibold);
1336
1336
  }
1337
- .noDocuments[data-v-5e4bca68] {
1337
+ .noDocuments[data-v-9843da37] {
1338
1338
  color: var(--scalar-color-2);
1339
1339
  margin-bottom: 10px;
1340
1340
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "git+https://github.com/scalar/scalar.git",
11
11
  "directory": "packages/agent-chat"
12
12
  },
13
- "version": "0.10.14",
13
+ "version": "0.12.0",
14
14
  "engines": {
15
15
  "node": ">=22"
16
16
  },
@@ -52,17 +52,18 @@
52
52
  "neverpanic": "0.0.7",
53
53
  "truncate-json": "3.0.1",
54
54
  "vue": "^3.5.30",
55
- "zod": "^4.3.5",
56
- "@scalar/api-client": "3.6.0",
57
- "@scalar/components": "0.24.2",
58
- "@scalar/helpers": "0.6.0",
55
+ "@scalar/api-client": "3.8.0",
56
+ "@scalar/helpers": "0.8.0",
57
+ "@scalar/components": "0.24.4",
59
58
  "@scalar/icons": "0.7.2",
60
- "@scalar/json-magic": "0.12.12",
61
- "@scalar/themes": "0.15.3",
62
- "@scalar/types": "0.9.6",
63
- "@scalar/use-toasts": "0.10.2",
59
+ "@scalar/json-magic": "0.12.14",
64
60
  "@scalar/openapi-types": "0.8.0",
65
- "@scalar/workspace-store": "0.49.2"
61
+ "@scalar/schemas": "0.2.0",
62
+ "@scalar/themes": "0.15.5",
63
+ "@scalar/types": "0.11.0",
64
+ "@scalar/use-toasts": "0.10.2",
65
+ "@scalar/validation": "0.5.0",
66
+ "@scalar/workspace-store": "0.51.0"
66
67
  },
67
68
  "devDependencies": {
68
69
  "@tailwindcss/cli": "^4.2.4",
@@ -74,7 +75,7 @@
74
75
  "tailwindcss": "^4.1.18",
75
76
  "vite": "8.0.0",
76
77
  "vitest": "4.1.0",
77
- "@scalar/sidebar": "0.9.10"
78
+ "@scalar/sidebar": "0.9.13"
78
79
  },
79
80
  "scripts": {
80
81
  "build": "vite build && pnpm build:styles && vue-tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && shx cp package.json dist",