@scalar/agent-chat 0.12.30 → 0.12.32
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/dist/client-tools/execute-request.d.ts +1 -1
- package/dist/client-tools/execute-request.js.map +1 -1
- package/dist/components/Selector.vue.d.ts +1 -1
- package/dist/components/Selector.vue.js.map +1 -1
- package/dist/components/Selector.vue.script.js.map +1 -1
- package/dist/components/ServerSelector.vue.d.ts +1 -1
- package/dist/components/ServerSelector.vue.js.map +1 -1
- package/dist/components/ServerSelector.vue.script.js.map +1 -1
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/style.css +106 -89
- package/dist/views/Settings/Auth.vue.d.ts +1 -1
- package/dist/views/Settings/Auth.vue.js.map +1 -1
- package/dist/views/Settings/Auth.vue.script.js.map +1 -1
- package/dist/views/Settings/DocSettings.vue.d.ts +1 -1
- package/dist/views/Settings/DocSettings.vue.js +1 -1
- package/dist/views/Settings/DocSettings.vue.js.map +1 -1
- package/dist/views/Settings/DocSettings.vue.script.js.map +1 -1
- package/dist/vue-styles.css +2 -2
- package/package.json +17 -17
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Chat } from '@ai-sdk/vue';
|
|
2
2
|
import type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example';
|
|
3
|
-
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
3
|
+
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
|
|
4
4
|
import type { UIDataTypes, UIMessage } from 'ai';
|
|
5
5
|
import type { Tools } from '../state/state.js';
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-request.js","names":[],"sources":["../../src/client-tools/execute-request.ts"],"sourcesContent":["import type { Chat } from '@ai-sdk/vue'\nimport { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport { buildRequestSecurity, getResolvedUrl } from '@scalar/workspace-store/request-example'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"execute-request.js","names":[],"sources":["../../src/client-tools/execute-request.ts"],"sourcesContent":["import type { Chat } from '@ai-sdk/vue'\nimport { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport { buildRequestSecurity, getResolvedUrl } from '@scalar/workspace-store/request-example'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\nimport type { UIDataTypes, UIMessage } from 'ai'\nimport { encode as encodeBase64 } from 'js-base64'\nimport { n } from 'neverpanic'\nimport truncateJson from 'truncate-json'\n\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities'\nimport { createError } from '@/entities/error/helpers'\nimport type { Tools } from '@/state/state'\n\n// The maximum number of bytes the requests response can be.\nconst MAX_RESPONSE_SIZE = 50_000\n\nconst getBody = n.safeFn(\n async (response: Response) => {\n const contentType = response.headers.get('content-type')\n\n if (contentType === 'application/json') {\n return { success: true, data: await response.json() }\n }\n\n return { success: true, data: await response.text() }\n },\n (originalError) => createError('FAILED_TO_PARSE_RESPONSE_BODY', { originalError }),\n)\n\nconst truncateResponse = (response: unknown) =>\n JSON.parse(truncateJson(JSON.stringify(response), MAX_RESPONSE_SIZE).jsonString)\n\n/* Result type wrapper for fetch */\nconst safeFetch = n.safeFn(\n async (url: string, init: RequestInit) => {\n const response = await fetch(url, init)\n\n const responseBodyResult = await getBody(response)\n\n if (!response.ok) {\n return {\n success: false,\n error: createError('REQUEST_NOT_OK', {\n status: response.status,\n url: response.url,\n responseBody: truncateResponse(responseBodyResult.success ? responseBodyResult.data : undefined),\n headers: Object.fromEntries(response.headers.entries()),\n }),\n }\n }\n\n if (!responseBodyResult.success) {\n return responseBodyResult\n }\n\n return {\n success: true,\n data: {\n status: response.status,\n responseBody: truncateResponse(responseBodyResult.data),\n headers: Object.fromEntries(response.headers.entries()),\n },\n }\n },\n (originalError) => createError('FAILED_TO_FETCH', { originalError }),\n)\n\nfunction createUrl({\n path,\n activeServer,\n proxyUrl,\n queryParams,\n}: {\n path: string\n activeServer: ServerObject | null\n proxyUrl: string\n queryParams: URLSearchParams\n}) {\n const resolvedUrl = getResolvedUrl({\n path,\n server: activeServer,\n urlParams: queryParams,\n })\n\n return redirectToProxy(proxyUrl, resolvedUrl)\n}\n\n/**\n * Executes an HTTP request with the specified options, including method, path, headers, and security schemes, and returns the processed response.\n */\nexport const executeRequestTool = n.safeFn(\n async ({\n documentSettings,\n toolCallId,\n chat,\n proxyUrl,\n input: { method, path, body, headers, documentName },\n }: {\n documentSettings: Record<\n string,\n { activeServer: ServerObject | null; securitySchemes: SecuritySchemeObjectSecret[] }\n >\n toolCallId: string\n chat: Chat<UIMessage<unknown, UIDataTypes, Tools>>\n proxyUrl: string\n input: {\n method: string\n path: string\n headers?: Record<string, string>\n body?: string\n documentName: string\n }\n }) => {\n const settings = documentSettings[documentName]\n\n if (!settings) {\n return {\n success: false,\n error: createError('DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED', {\n documentName,\n }),\n }\n }\n\n const requestSecurityOptions = buildRequestSecurity(settings.securitySchemes)\n\n const requestSecurity = requestSecurityOptions.reduce<{\n headers: Record<string, string>\n queryParams: URLSearchParams\n cookies: Record<string, string>\n }>(\n (acc, securityOption) => {\n /** Format the security value based on its authentication scheme. */\n const securityValue = (() => {\n if (securityOption.format === 'basic') {\n return `Basic ${encodeBase64(securityOption.value)}`\n }\n if (securityOption.format === 'bearer') {\n return `Bearer ${securityOption.value}`\n }\n return securityOption.value\n })()\n\n if (securityOption.in === 'header') {\n acc.headers[securityOption.name] = securityValue\n } else if (securityOption.in === 'query') {\n acc.queryParams.set(securityOption.name, securityValue)\n } else if (securityOption.in === 'cookie') {\n acc.cookies[securityOption.name] = securityValue\n }\n\n return acc\n },\n {\n headers: {},\n queryParams: new URLSearchParams(),\n cookies: {},\n },\n )\n\n const cookieHeader = Object.entries(requestSecurity.cookies)\n .map(([name, value]) => `${name}=${value}`)\n .join('; ')\n\n const fetchOptions = {\n method,\n body,\n headers: {\n ...headers,\n ...requestSecurity.headers,\n Cookie: cookieHeader,\n },\n }\n\n const url = createUrl({\n path,\n activeServer: settings.activeServer,\n proxyUrl,\n queryParams: requestSecurity.queryParams,\n })\n\n const result = await safeFetch(url, fetchOptions)\n\n void chat.addToolOutput({\n tool: EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n toolCallId,\n output: result,\n state: 'output-available',\n })\n\n return result\n },\n (originalError) => createError('FAILED_TO_EXECUTE_REQUEST', originalError),\n)\n"],"mappings":";;;;;;;;AAeA,IAAM,oBAAoB;AAE1B,IAAM,UAAU,EAAE,OAChB,OAAO,aAAuB;CAG5B,IAFoB,SAAS,QAAQ,IAAI,cAErC,MAAgB,oBAClB,OAAO;EAAE,SAAS;EAAM,MAAM,MAAM,SAAS,KAAK;CAAE;CAGtD,OAAO;EAAE,SAAS;EAAM,MAAM,MAAM,SAAS,KAAK;CAAE;AACtD,IACC,kBAAkB,YAAY,iCAAiC,EAAE,cAAc,CAAC,CACnF;AAEA,IAAM,oBAAoB,aACxB,KAAK,MAAM,aAAa,KAAK,UAAU,QAAQ,GAAG,iBAAiB,CAAC,CAAC,UAAU;AAGjF,IAAM,YAAY,EAAE,OAClB,OAAO,KAAa,SAAsB;CACxC,MAAM,WAAW,MAAM,MAAM,KAAK,IAAI;CAEtC,MAAM,qBAAqB,MAAM,QAAQ,QAAQ;CAEjD,IAAI,CAAC,SAAS,IACZ,OAAO;EACL,SAAS;EACT,OAAO,YAAY,kBAAkB;GACnC,QAAQ,SAAS;GACjB,KAAK,SAAS;GACd,cAAc,iBAAiB,mBAAmB,UAAU,mBAAmB,OAAO,KAAA,CAAS;GAC/F,SAAS,OAAO,YAAY,SAAS,QAAQ,QAAQ,CAAC;EACxD,CAAC;CACH;CAGF,IAAI,CAAC,mBAAmB,SACtB,OAAO;CAGT,OAAO;EACL,SAAS;EACT,MAAM;GACJ,QAAQ,SAAS;GACjB,cAAc,iBAAiB,mBAAmB,IAAI;GACtD,SAAS,OAAO,YAAY,SAAS,QAAQ,QAAQ,CAAC;EACxD;CACF;AACF,IACC,kBAAkB,YAAY,mBAAmB,EAAE,cAAc,CAAC,CACrE;AAEA,SAAS,UAAU,EACjB,MACA,cACA,UACA,eAMC;CAOD,OAAO,gBAAgB,UANH,eAAe;EACjC;EACA,QAAQ;EACR,WAAW;CACb,CAEiC,CAAW;AAC9C;;;;AAKA,IAAa,qBAAqB,EAAE,OAClC,OAAO,EACL,kBACA,YACA,MACA,UACA,OAAO,EAAE,QAAQ,MAAM,MAAM,SAAS,qBAgBlC;CACJ,MAAM,WAAW,iBAAiB;CAElC,IAAI,CAAC,UACH,OAAO;EACL,SAAS;EACT,OAAO,YAAY,6CAA6C,EAC9D,aACF,CAAC;CACH;CAKF,MAAM,kBAFyB,qBAAqB,SAAS,eAErC,CAAA,CAAuB,QAK5C,KAAK,mBAAmB;;EAEvB,MAAM,uBAAuB;GAC3B,IAAI,eAAe,WAAW,SAC5B,OAAO,SAAS,OAAa,eAAe,KAAK;GAEnD,IAAI,eAAe,WAAW,UAC5B,OAAO,UAAU,eAAe;GAElC,OAAO,eAAe;EACxB,EAAA,CAAG;EAEH,IAAI,eAAe,OAAO,UACxB,IAAI,QAAQ,eAAe,QAAQ;OAC9B,IAAI,eAAe,OAAO,SAC/B,IAAI,YAAY,IAAI,eAAe,MAAM,aAAa;OACjD,IAAI,eAAe,OAAO,UAC/B,IAAI,QAAQ,eAAe,QAAQ;EAGrC,OAAO;CACT,GACA;EACE,SAAS,CAAC;EACV,aAAa,IAAI,gBAAgB;EACjC,SAAS,CAAC;CACZ,CACF;CAEA,MAAM,eAAe,OAAO,QAAQ,gBAAgB,OAAO,CAAC,CACzD,KAAK,CAAC,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC,CAC1C,KAAK,IAAI;CAEZ,MAAM,eAAe;EACnB;EACA;EACA,SAAS;GACP,GAAG;GACH,GAAG,gBAAgB;GACnB,QAAQ;EACV;CACF;CASA,MAAM,SAAS,MAAM,UAPT,UAAU;EACpB;EACA,cAAc,SAAS;EACvB;EACA,aAAa,gBAAgB;CAC/B,CAE+B,GAAK,YAAY;CAEhD,KAAU,cAAc;EACtB,MAAM;EACN;EACA,QAAQ;EACR,OAAO;CACT,CAAC;CAED,OAAO;AACT,IACC,kBAAkB,YAAY,6BAA6B,aAAa,CAC3E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
/** The selected server URL */
|
|
4
4
|
selectedServer: ServerObject | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.vue.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarListbox } from '@scalar/components/listbox'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"Selector.vue.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarListbox } from '@scalar/components/listbox'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { target, servers, selectedServer } = defineProps<{\n /** The selected server URL */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n /** The id of the target to use for the popover (e.g. address bar) */\n target: string\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected server changes */\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst serverOptions = computed(() =>\n servers.map((server) => ({\n id: server.url,\n label: server.url,\n })),\n)\n\nconst serverUrlWithoutTrailingSlash = computed(\n () => selectedServer?.url?.replace(/\\/$/, '') || '',\n)\n\nconst selectedServerOption = computed(() =>\n serverOptions.value.find((opt) => opt.id === selectedServer?.url),\n)\n\n// For testing\ndefineExpose({\n servers,\n serverUrlWithoutTrailingSlash,\n serverOptions,\n selectedServer,\n})\n</script>\n<template>\n <ScalarListbox\n v-if=\"serverOptions.length > 1\"\n ref=\"elem\"\n class=\"group\"\n :modelValue=\"selectedServerOption\"\n :options=\"serverOptions\"\n placement=\"bottom-start\"\n resize\n :target=\"target\"\n @update:modelValue=\"(e) => emit('update:modelValue', e.id)\">\n <ScalarButton\n class=\"bg-b-1 text-c-1 h-auto w-full justify-start gap-1.5 overflow-x-auto rounded-t-none rounded-b-xl px-3 py-1.5 text-base font-normal whitespace-nowrap -outline-offset-1\"\n variant=\"ghost\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{\n serverUrlWithoutTrailingSlash || 'Select a server'\n }}</span>\n <ScalarIconCaretDown\n class=\"text-c-2 ui-open:rotate-180 mt-0.25 size-3 transition-transform duration-100\"\n weight=\"bold\" />\n </ScalarButton>\n </ScalarListbox>\n <div\n v-else\n class=\"text-c-1 flex h-auto w-full items-center gap-0.75 rounded-b-lg px-3 py-1.5 text-base leading-[20px] whitespace-nowrap\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{ serverUrlWithoutTrailingSlash }}</span>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.vue.script.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarListbox } from '@scalar/components/listbox'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"Selector.vue.script.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarListbox } from '@scalar/components/listbox'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { target, servers, selectedServer } = defineProps<{\n /** The selected server URL */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n /** The id of the target to use for the popover (e.g. address bar) */\n target: string\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected server changes */\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst serverOptions = computed(() =>\n servers.map((server) => ({\n id: server.url,\n label: server.url,\n })),\n)\n\nconst serverUrlWithoutTrailingSlash = computed(\n () => selectedServer?.url?.replace(/\\/$/, '') || '',\n)\n\nconst selectedServerOption = computed(() =>\n serverOptions.value.find((opt) => opt.id === selectedServer?.url),\n)\n\n// For testing\ndefineExpose({\n servers,\n serverUrlWithoutTrailingSlash,\n serverOptions,\n selectedServer,\n})\n</script>\n<template>\n <ScalarListbox\n v-if=\"serverOptions.length > 1\"\n ref=\"elem\"\n class=\"group\"\n :modelValue=\"selectedServerOption\"\n :options=\"serverOptions\"\n placement=\"bottom-start\"\n resize\n :target=\"target\"\n @update:modelValue=\"(e) => emit('update:modelValue', e.id)\">\n <ScalarButton\n class=\"bg-b-1 text-c-1 h-auto w-full justify-start gap-1.5 overflow-x-auto rounded-t-none rounded-b-xl px-3 py-1.5 text-base font-normal whitespace-nowrap -outline-offset-1\"\n variant=\"ghost\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{\n serverUrlWithoutTrailingSlash || 'Select a server'\n }}</span>\n <ScalarIconCaretDown\n class=\"text-c-2 ui-open:rotate-180 mt-0.25 size-3 transition-transform duration-100\"\n weight=\"bold\" />\n </ScalarButton>\n </ScalarListbox>\n <div\n v-else\n class=\"text-c-1 flex h-auto w-full items-center gap-0.75 rounded-b-lg px-3 py-1.5 text-base leading-[20px] whitespace-nowrap\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{ serverUrlWithoutTrailingSlash }}</span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAgBA,MAAM,OAAO;EAKb,MAAM,gBAAgB,eACpB,QAAA,QAAQ,KAAK,YAAY;GACvB,IAAI,OAAO;GACX,OAAO,OAAO;EAChB,EAAE,CACJ;EAEA,MAAM,gCAAgC,eAC9B,QAAA,gBAAgB,KAAK,QAAQ,OAAO,EAAE,KAAK,EACnD;EAEA,MAAM,uBAAuB,eAC3B,cAAc,MAAM,MAAM,QAAQ,IAAI,OAAO,QAAA,gBAAgB,GAAG,CAClE;EAGA,SAAa;GACX,SAAM,QAAA;GACN;GACA;GACA,gBAAa,QAAA;EACf,CAAC;;UAIS,cAAA,MAAc,SAAM,KAAA,UAAA,GAD5B,YAqBgB,MAAA,aAAA,GAAA;;IAnBd,KAAI;IACJ,OAAM;IACL,YAAY,qBAAA;IACZ,SAAS,cAAA;IACV,WAAU;IACV,QAAA;IACC,QAAQ,QAAA;IACR,uBAAiB,OAAA,OAAA,OAAA,MAAG,MAAM,KAAI,qBAAsB,EAAE,EAAE;;2BAW1C,CAVf,YAUe,MAAA,YAAA,GAAA;KATb,OAAM;KACN,SAAQ;;4BAC4B;gCAApC,mBAAoC,QAAA,EAA9B,OAAM,UAAS,GAAC,WAAO,EAAA;MAC7B,mBAES,QAFT,YAES,gBADP,8BAAA,SAA6B,iBAAA,GAAA,CAAA;MAE/B,YAEkB,MAAA,mBAAA,GAAA;OADhB,OAAM;OACN,QAAO;;;;;;;;;;uBAGb,mBAKM,OALN,YAKM,CAAA,OAAA,OAAA,OAAA,KAFJ,mBAAoC,QAAA,EAA9B,OAAM,UAAS,GAAC,WAAO,EAAA,IAC7B,mBAAwE,QAAxE,YAAwE,gBAAvC,8BAAA,KAA6B,GAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
|
|
2
|
-
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
2
|
+
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
|
|
3
3
|
type SelectorProps = {
|
|
4
4
|
/** The event bus to use for emitting events */
|
|
5
5
|
eventBus: WorkspaceEventBus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerSelector.vue.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"ServerSelector.vue.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\nimport { useId } from 'vue'\n\nimport Selector from './Selector.vue'\n\nconst { eventBus, servers, selectedServer } = defineProps<SelectorProps>()\n\nconst id = useId()\n\n/** Update the selected server */\nconst updateServer = (newServer: string) => {\n eventBus.emit('server:update:selected', {\n url: selectedServer?.url === newServer ? '' : newServer,\n meta: {\n type: 'document',\n },\n })\n}\n\n/** Update the server variable */\nconst updateServerVariable = (key: string, value: string) => {\n /** Find the index of the selected server */\n const index = servers.findIndex((s) => s.url === selectedServer?.url)\n if (index === -1) {\n return\n }\n\n eventBus.emit('server:update:variables', {\n index,\n key,\n value,\n meta: {\n type: 'document',\n },\n })\n}\n</script>\n\n<template>\n <label\n class=\"bg-b-2 flex h-8 items-center rounded-t-xl border-x border-t px-3 py-2.5 font-medium\">\n Server\n </label>\n <div\n :id=\"id\"\n class=\"border\"\n :class=\"{\n 'rounded-b-xl':\n !selectedServer?.description && !selectedServer?.variables,\n }\">\n <Selector\n v-if=\"servers.length\"\n :selectedServer\n :servers=\"servers\"\n :target=\"id\"\n @update:modelValue=\"updateServer\" />\n </div>\n <ServerVariablesForm\n layout=\"reference\"\n :variables=\"selectedServer?.variables\"\n @update:variable=\"updateServerVariable\" />\n\n <!-- Description -->\n <ScalarMarkdown\n v-if=\"selectedServer?.description\"\n class=\"text-c-3 rounded-b-xl border-x border-b px-3 py-1.5\"\n :value=\"selectedServer.description\" />\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerSelector.vue.script.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"ServerSelector.vue.script.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\nimport { useId } from 'vue'\n\nimport Selector from './Selector.vue'\n\nconst { eventBus, servers, selectedServer } = defineProps<SelectorProps>()\n\nconst id = useId()\n\n/** Update the selected server */\nconst updateServer = (newServer: string) => {\n eventBus.emit('server:update:selected', {\n url: selectedServer?.url === newServer ? '' : newServer,\n meta: {\n type: 'document',\n },\n })\n}\n\n/** Update the server variable */\nconst updateServerVariable = (key: string, value: string) => {\n /** Find the index of the selected server */\n const index = servers.findIndex((s) => s.url === selectedServer?.url)\n if (index === -1) {\n return\n }\n\n eventBus.emit('server:update:variables', {\n index,\n key,\n value,\n meta: {\n type: 'document',\n },\n })\n}\n</script>\n\n<template>\n <label\n class=\"bg-b-2 flex h-8 items-center rounded-t-xl border-x border-t px-3 py-2.5 font-medium\">\n Server\n </label>\n <div\n :id=\"id\"\n class=\"border\"\n :class=\"{\n 'rounded-b-xl':\n !selectedServer?.description && !selectedServer?.variables,\n }\">\n <Selector\n v-if=\"servers.length\"\n :selectedServer\n :servers=\"servers\"\n :target=\"id\"\n @update:modelValue=\"updateServer\" />\n </div>\n <ServerVariablesForm\n layout=\"reference\"\n :variables=\"selectedServer?.variables\"\n @update:variable=\"updateServerVariable\" />\n\n <!-- Description -->\n <ScalarMarkdown\n v-if=\"selectedServer?.description\"\n class=\"text-c-3 rounded-b-xl border-x border-b px-3 py-1.5\"\n :value=\"selectedServer.description\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAiCA,MAAM,KAAK,MAAM;;EAGjB,MAAM,gBAAgB,cAAsB;GAC1C,QAAA,SAAS,KAAK,0BAA0B;IACtC,KAAK,QAAA,gBAAgB,QAAQ,YAAY,KAAK;IAC9C,MAAM,EACJ,MAAM,WACR;GACF,CAAC;EACH;;EAGA,MAAM,wBAAwB,KAAa,UAAkB;;GAE3D,MAAM,QAAQ,QAAA,QAAQ,WAAW,MAAM,EAAE,QAAQ,QAAA,gBAAgB,GAAG;GACpE,IAAI,UAAU,IACZ;GAGF,QAAA,SAAS,KAAK,2BAA2B;IACvC;IACA;IACA;IACA,MAAM,EACJ,MAAM,WACR;GACF,CAAC;EACH;;;8BAIE,mBAGQ,SAAA,EAFN,OAAM,sFAAqF,GAAC,YAE9F,EAAA;IACA,mBAaM,OAAA;KAZH,IAAI,MAAA,EAAA;KACL,OAAK,eAAA,CAAC,UAAQ,EAAA,gBAAA,CAC2B,QAAA,gBAAgB,eAAW,CAAK,QAAA,gBAAgB,UAAA,CAAA,CAAA;QAKjF,QAAA,QAAQ,UAAA,UAAA,GADhB,YAKsC,kBAAA;;KAHnC,gBAAA,QAAA;KACA,SAAS,QAAA;KACT,QAAQ,MAAA,EAAA;KACR,uBAAmB;;;;;;IAExB,YAG4C,MAAA,mBAAA,GAAA;KAF1C,QAAO;KACN,WAAW,QAAA,gBAAgB;KAC3B,qBAAiB;;IAIZ,QAAA,gBAAgB,eAAA,UAAA,GADxB,YAGwC,MAAA,cAAA,GAAA;;KADtC,OAAM;KACL,OAAO,QAAA,eAAe"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import type { OpenAPIV3_1 } from '@scalar/openapi-types';
|
|
|
2
2
|
import type { WorkspaceStore } from '@scalar/workspace-store/client';
|
|
3
3
|
import { type Auth } from '@scalar/workspace-store/entities/auth';
|
|
4
4
|
import type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example';
|
|
5
|
-
import type { OperationObject } from '@scalar/workspace-store/schemas/v3.
|
|
5
|
+
import type { OperationObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
|
|
6
6
|
export declare function getOperations(doc: Partial<OpenAPIV3_1.Document>): OperationObject[];
|
|
7
7
|
/** Generate document settings from workspace store. AsyncAPI docs are skipped — this feature is OpenAPI-native. */
|
|
8
8
|
export declare function createDocumentSettings(workspaceStore: WorkspaceStore): {
|
|
9
9
|
[k: string]: {
|
|
10
|
-
activeServer: import("@scalar/workspace-store/schemas/v3.
|
|
10
|
+
activeServer: import("@scalar/workspace-store/schemas/v3.2/strict/server").ServerObject | null;
|
|
11
11
|
securitySchemes: SecuritySchemeObjectSecret[];
|
|
12
12
|
};
|
|
13
13
|
};
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":[],"sources":["../src/helpers.ts"],"sourcesContent":["import { REFERENCE_LS_KEYS, safeLocalStorage } from '@scalar/helpers/object/local-storage'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport { type Auth, AuthSchema } from '@scalar/workspace-store/entities/auth'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport {\n getSecurityRequirements,\n getSecuritySchemes,\n getSelectedSecurity,\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport { coerceValue } from '@scalar/workspace-store/schemas/typebox-coerce'\nimport type { OpenApiDocument, OperationObject } from '@scalar/workspace-store/schemas/v3.
|
|
1
|
+
{"version":3,"file":"helpers.js","names":[],"sources":["../src/helpers.ts"],"sourcesContent":["import { REFERENCE_LS_KEYS, safeLocalStorage } from '@scalar/helpers/object/local-storage'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport { type Auth, AuthSchema } from '@scalar/workspace-store/entities/auth'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport {\n getSecurityRequirements,\n getSecuritySchemes,\n getSelectedSecurity,\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport { coerceValue } from '@scalar/workspace-store/schemas/typebox-coerce'\nimport type { OpenApiDocument, OperationObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document'\n\nexport function getOperations(doc: Partial<OpenAPIV3_1.Document>) {\n return Object.values(doc.paths ?? {}).flatMap((path) => Object.values(path ?? {})) as OperationObject[]\n}\n\n/** Flattens all security requirements from a document */\nfunction getSecurityFromDocument(\n documentName: string,\n document: OpenApiDocument,\n authStore: AuthStore,\n): SecuritySchemeObjectSecret[] {\n const mergedSecurity = mergeSecurity(document?.components?.securitySchemes, {}, authStore, documentName)\n\n const securityRequirements = getSecurityRequirements(document.security)\n\n const selectedSecurity = getSelectedSecurity(\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName,\n }),\n undefined,\n securityRequirements,\n )\n\n return getSecuritySchemes(mergedSecurity, selectedSecurity.selectedSchemes[selectedSecurity.selectedIndex] ?? {})\n}\n\n/** Generate document settings from workspace store. AsyncAPI docs are skipped — this feature is OpenAPI-native. */\nexport function createDocumentSettings(workspaceStore: WorkspaceStore) {\n const openApiEntries: [string, OpenApiDocument][] = []\n for (const [key, document] of Object.entries(workspaceStore.workspace.documents)) {\n if (isOpenApiDocument(document)) {\n openApiEntries.push([key, document])\n }\n }\n\n return Object.fromEntries(\n openApiEntries.map(([key, document]) => {\n const servers = getServers(document.servers, {\n documentUrl: document['x-scalar-original-source-url'],\n })\n\n return [\n key,\n {\n activeServer: getSelectedServer(document, null, null, servers),\n securitySchemes: getSecurityFromDocument(key, document, workspaceStore.auth),\n },\n ]\n }),\n )\n}\n\n// Local storage helper instance, safely wrapped.\nconst storage = safeLocalStorage()\n\n/**\n * Provides an interface to store and retrieve authentication scheme\n * information in local storage, including both the available schemes and\n * the user's selected schemes.\n */\nexport const authStorage = () => {\n const getKey = (slug: string) => {\n return `${REFERENCE_LS_KEYS.AUTH}-${slug}`\n }\n\n return {\n /**\n * Retrieves and coerces the authentication schemes stored in local storage.\n */\n getAuth: (slug: string) => {\n const parsed = JSON.parse(storage.getItem(getKey(slug)) ?? '{}')\n return coerceValue(AuthSchema, parsed)\n },\n /**\n * Stores the authentication schemes in local storage.\n * @param value The Auth object to stringify and store.\n */\n setAuth: (slug: string, value: Auth) => {\n storage.setItem(getKey(slug), JSON.stringify(value))\n },\n }\n}\n\n/**\n * Restores authentication secrets from local storage to the workspace store.\n *\n * This function iterates through stored authentication schemes and restores\n * any secret values (keys starting with x-scalar-secret-) to the active\n * document's security schemes. It uses the current security schemes as the\n * source of truth, only restoring secrets for structures that exist in the\n * current document.\n */\nexport const restoreAuthSecretsFromStorage = ({\n documentName,\n workspaceStore,\n}: {\n documentName: string\n workspaceStore: WorkspaceStore\n}): void => {\n const authPersistence = authStorage()\n const auth = authPersistence.getAuth(documentName)\n workspaceStore.auth.load({ [documentName]: auth })\n}\n\nexport function safeParseJson(value: string) {\n try {\n return JSON.parse(value)\n } catch {\n return\n }\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,cAAc,KAAoC;CAChE,OAAO,OAAO,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAC;AACnF;;AAGA,SAAS,wBACP,cACA,UACA,WAC8B;CAC9B,MAAM,iBAAiB,cAAc,UAAU,YAAY,iBAAiB,CAAC,GAAG,WAAW,YAAY;CAEvG,MAAM,uBAAuB,wBAAwB,SAAS,QAAQ;CAEtE,MAAM,mBAAmB,oBACvB,UAAU,uBAAuB;EAC/B,MAAM;EACN;CACF,CAAC,GACD,KAAA,GACA,oBACF;CAEA,OAAO,mBAAmB,gBAAgB,iBAAiB,gBAAgB,iBAAiB,kBAAkB,CAAC,CAAC;AAClH;;AAGA,SAAgB,uBAAuB,gBAAgC;CACrE,MAAM,iBAA8C,CAAC;CACrD,KAAK,MAAM,CAAC,KAAK,aAAa,OAAO,QAAQ,eAAe,UAAU,SAAS,GAC7E,IAAI,kBAAkB,QAAQ,GAC5B,eAAe,KAAK,CAAC,KAAK,QAAQ,CAAC;CAIvC,OAAO,OAAO,YACZ,eAAe,KAAK,CAAC,KAAK,cAAc;EAKtC,OAAO,CACL,KACA;GACE,cAAc,kBAAkB,UAAU,MAAM,MAPpC,WAAW,SAAS,SAAS,EAC3C,aAAa,SAAS,gCACxB,CAK0D,CAAO;GAC7D,iBAAiB,wBAAwB,KAAK,UAAU,eAAe,IAAI;EAC7E,CACF;CACF,CAAC,CACH;AACF;AAGA,IAAM,UAAU,iBAAiB;;;;;;AAOjC,IAAa,oBAAoB;CAC/B,MAAM,UAAU,SAAiB;EAC/B,OAAO,GAAG,kBAAkB,KAAK,GAAG;CACtC;CAEA,OAAO;;;;EAIL,UAAU,SAAiB;GAEzB,OAAO,YAAY,YADJ,KAAK,MAAM,QAAQ,QAAQ,OAAO,IAAI,CAAC,KAAK,IAC5B,CAAM;EACvC;;;;;EAKA,UAAU,MAAc,UAAgB;GACtC,QAAQ,QAAQ,OAAO,IAAI,GAAG,KAAK,UAAU,KAAK,CAAC;EACrD;CACF;AACF;;;;;;;;;;AAWA,IAAa,iCAAiC,EAC5C,cACA,qBAIU;CAEV,MAAM,OADkB,YACX,CAAA,CAAgB,QAAQ,YAAY;CACjD,eAAe,KAAK,KAAK,GAAG,eAAe,KAAK,CAAC;AACnD;AAEA,SAAgB,cAAc,OAAe;CAC3C,IAAI;EACF,OAAO,KAAK,MAAM,KAAK;CACzB,QAAQ;EACN;CACF;AACF"}
|
package/dist/package.json
CHANGED
package/dist/style.css
CHANGED
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
transform: translate3d(0, 0, 0);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
.dark-mode .scalar-dropdown-item[data-v-
|
|
260
|
+
.dark-mode .scalar-dropdown-item[data-v-128eed00]:hover, .dark-mode .scalar-dropdown-item[data-highlighted][data-v-128eed00], .dark-mode .scalar-dropdown-item[data-v-3402682d]:hover {
|
|
261
261
|
filter: brightness(1.1);
|
|
262
262
|
}
|
|
263
263
|
|
|
@@ -1461,11 +1461,11 @@
|
|
|
1461
1461
|
background: var(--scalar-sidebar-item-hover-background, var(--scalar-background-2));
|
|
1462
1462
|
}
|
|
1463
1463
|
|
|
1464
|
-
.fade-request-section-content[data-v-
|
|
1464
|
+
.fade-request-section-content[data-v-ac788106] {
|
|
1465
1465
|
background: linear-gradient(to left, var(--scalar-background-1) 64%, transparent);
|
|
1466
1466
|
}
|
|
1467
1467
|
|
|
1468
|
-
.filter-hover[data-v-
|
|
1468
|
+
.filter-hover[data-v-ac788106] {
|
|
1469
1469
|
height: 100%;
|
|
1470
1470
|
padding-left: 24px;
|
|
1471
1471
|
padding-right: 39px;
|
|
@@ -1475,12 +1475,12 @@
|
|
|
1475
1475
|
overflow: hidden;
|
|
1476
1476
|
}
|
|
1477
1477
|
|
|
1478
|
-
.filter-hover[data-v-
|
|
1478
|
+
.filter-hover[data-v-ac788106]:hover, .filter-hover[data-v-ac788106]:has(:focus-visible) {
|
|
1479
1479
|
z-index: 10;
|
|
1480
1480
|
width: 100%;
|
|
1481
1481
|
}
|
|
1482
1482
|
|
|
1483
|
-
.filter-hover[data-v-
|
|
1483
|
+
.filter-hover[data-v-ac788106]:before {
|
|
1484
1484
|
content: "";
|
|
1485
1485
|
background-color: var(--scalar-background-1);
|
|
1486
1486
|
opacity: 0;
|
|
@@ -1493,90 +1493,90 @@
|
|
|
1493
1493
|
left: 0;
|
|
1494
1494
|
}
|
|
1495
1495
|
|
|
1496
|
-
.filter-hover-item[data-v-
|
|
1496
|
+
.filter-hover-item[data-v-ac788106] {
|
|
1497
1497
|
opacity: 0;
|
|
1498
1498
|
}
|
|
1499
1499
|
|
|
1500
|
-
.filter-hover-item[data-v-
|
|
1500
|
+
.filter-hover-item[data-v-ac788106]:not(:last-of-type) {
|
|
1501
1501
|
transform: translate3d(0, 3px, 0);
|
|
1502
1502
|
}
|
|
1503
1503
|
|
|
1504
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1504
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106] {
|
|
1505
1505
|
transition: opacity .2s ease-in-out, transform .2s ease-in-out;
|
|
1506
1506
|
}
|
|
1507
1507
|
|
|
1508
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1508
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:last-of-type {
|
|
1509
1509
|
transition-delay: 50ms;
|
|
1510
1510
|
}
|
|
1511
1511
|
|
|
1512
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1512
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(2) {
|
|
1513
1513
|
transition-delay: .1s;
|
|
1514
1514
|
}
|
|
1515
1515
|
|
|
1516
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1516
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(3) {
|
|
1517
1517
|
transition-delay: .15s;
|
|
1518
1518
|
}
|
|
1519
1519
|
|
|
1520
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1520
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(4) {
|
|
1521
1521
|
transition-delay: .2s;
|
|
1522
1522
|
}
|
|
1523
1523
|
|
|
1524
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1524
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(5) {
|
|
1525
1525
|
transition-delay: .25s;
|
|
1526
1526
|
}
|
|
1527
1527
|
|
|
1528
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1528
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(6) {
|
|
1529
1529
|
transition-delay: .3s;
|
|
1530
1530
|
}
|
|
1531
1531
|
|
|
1532
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1532
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106]:nth-last-of-type(7) {
|
|
1533
1533
|
transition-delay: .35s;
|
|
1534
1534
|
}
|
|
1535
1535
|
|
|
1536
|
-
.filter-hover:hover .filter-hover-item[data-v-
|
|
1536
|
+
.filter-hover:hover .filter-hover-item[data-v-ac788106], .filter-hover:has(:focus-visible) .filter-hover-item[data-v-ac788106] {
|
|
1537
1537
|
opacity: 1;
|
|
1538
1538
|
transform: translate3d(0, 0, 0);
|
|
1539
1539
|
}
|
|
1540
1540
|
|
|
1541
|
-
.filter-hover[data-v-
|
|
1541
|
+
.filter-hover[data-v-ac788106]:hover:before, .filter-hover[data-v-ac788106]:has(:focus-visible):before {
|
|
1542
1542
|
opacity: .9;
|
|
1543
1543
|
-webkit-backdrop-filter: blur(10px);
|
|
1544
1544
|
backdrop-filter: blur(10px);
|
|
1545
1545
|
}
|
|
1546
1546
|
|
|
1547
|
-
.filter-button[data-v-
|
|
1547
|
+
.filter-button[data-v-ac788106] {
|
|
1548
1548
|
top: 50%;
|
|
1549
1549
|
transform: translateY(-50%);
|
|
1550
1550
|
}
|
|
1551
1551
|
|
|
1552
|
-
.context-bar-group:hover .context-bar-group-hover\:text-c-1[data-v-
|
|
1552
|
+
.context-bar-group:hover .context-bar-group-hover\:text-c-1[data-v-ac788106], .context-bar-group:has(:focus-visible) .context-bar-group-hover\:text-c-1[data-v-ac788106] {
|
|
1553
1553
|
--tw-text-opacity: 1;
|
|
1554
1554
|
color: rgb(var(--scalar-color-1) / var(--tw-text-opacity));
|
|
1555
1555
|
}
|
|
1556
1556
|
|
|
1557
|
-
.context-bar-group:hover .context-bar-group-hover\:hidden[data-v-
|
|
1557
|
+
.context-bar-group:hover .context-bar-group-hover\:hidden[data-v-ac788106], .context-bar-group:has(:focus-visible) .context-bar-group-hover\:hidden[data-v-ac788106] {
|
|
1558
1558
|
display: none;
|
|
1559
1559
|
}
|
|
1560
1560
|
|
|
1561
|
-
[data-v-
|
|
1561
|
+
[data-v-dbc85839] .cm-editor {
|
|
1562
1562
|
background: none;
|
|
1563
1563
|
outline: none;
|
|
1564
1564
|
height: 100%;
|
|
1565
1565
|
padding: 0;
|
|
1566
1566
|
}
|
|
1567
1567
|
|
|
1568
|
-
[data-v-
|
|
1568
|
+
[data-v-dbc85839] .cm-placeholder {
|
|
1569
1569
|
color: var(--scalar-color-3);
|
|
1570
1570
|
}
|
|
1571
1571
|
|
|
1572
|
-
[data-v-
|
|
1572
|
+
[data-v-dbc85839] .cm-content {
|
|
1573
1573
|
font-family: var(--scalar-font-code);
|
|
1574
1574
|
font-size: var(--scalar-small);
|
|
1575
1575
|
max-height: 20px;
|
|
1576
1576
|
padding: 8px 0;
|
|
1577
1577
|
}
|
|
1578
1578
|
|
|
1579
|
-
[data-v-
|
|
1579
|
+
[data-v-dbc85839] .cm-tooltip {
|
|
1580
1580
|
filter: brightness(var(--scalar-lifted-brightness));
|
|
1581
1581
|
border-radius: var(--scalar-radius);
|
|
1582
1582
|
box-shadow: var(--scalar-shadow-2);
|
|
@@ -1586,47 +1586,47 @@
|
|
|
1586
1586
|
overflow: hidden !important;
|
|
1587
1587
|
}
|
|
1588
1588
|
|
|
1589
|
-
[data-v-
|
|
1589
|
+
[data-v-dbc85839] .cm-tooltip-autocomplete ul li {
|
|
1590
1590
|
padding: 3px 6px !important;
|
|
1591
1591
|
}
|
|
1592
1592
|
|
|
1593
|
-
[data-v-
|
|
1593
|
+
[data-v-dbc85839] .cm-completionIcon-type:after {
|
|
1594
1594
|
color: var(--scalar-color-3) !important;
|
|
1595
1595
|
}
|
|
1596
1596
|
|
|
1597
|
-
[data-v-
|
|
1597
|
+
[data-v-dbc85839] .cm-tooltip-autocomplete ul li[aria-selected] {
|
|
1598
1598
|
background: var(--scalar-background-2) !important;
|
|
1599
1599
|
color: var(--scalar-color-1) !important;
|
|
1600
1600
|
}
|
|
1601
1601
|
|
|
1602
|
-
[data-v-
|
|
1602
|
+
[data-v-dbc85839] .cm-tooltip-autocomplete ul {
|
|
1603
1603
|
position: relative;
|
|
1604
1604
|
padding: 6px !important;
|
|
1605
1605
|
}
|
|
1606
1606
|
|
|
1607
|
-
[data-v-
|
|
1607
|
+
[data-v-dbc85839] .cm-tooltip-autocomplete ul li:hover {
|
|
1608
1608
|
border-radius: 3px;
|
|
1609
1609
|
color: var(--scalar-color-1) !important;
|
|
1610
1610
|
background: var(--scalar-background-3) !important;
|
|
1611
1611
|
}
|
|
1612
1612
|
|
|
1613
|
-
[data-v-
|
|
1613
|
+
[data-v-dbc85839] .cm-activeLine, [data-v-dbc85839] .cm-activeLineGutter {
|
|
1614
1614
|
background-color: #0000;
|
|
1615
1615
|
}
|
|
1616
1616
|
|
|
1617
|
-
[data-v-
|
|
1617
|
+
[data-v-dbc85839] .cm-selectionMatch, [data-v-dbc85839] .cm-matchingBracket {
|
|
1618
1618
|
border-radius: var(--scalar-radius);
|
|
1619
1619
|
background: var(--scalar-background-4) !important;
|
|
1620
1620
|
}
|
|
1621
1621
|
|
|
1622
|
-
[data-v-
|
|
1622
|
+
[data-v-dbc85839] .cm-css-color-picker-wrapper {
|
|
1623
1623
|
outline: 1px solid var(--scalar-background-3);
|
|
1624
1624
|
border-radius: 3px;
|
|
1625
1625
|
display: inline-flex;
|
|
1626
1626
|
overflow: hidden;
|
|
1627
1627
|
}
|
|
1628
1628
|
|
|
1629
|
-
[data-v-
|
|
1629
|
+
[data-v-dbc85839] .cm-gutters {
|
|
1630
1630
|
color: var(--scalar-color-3);
|
|
1631
1631
|
font-size: var(--scalar-small);
|
|
1632
1632
|
background-color: #0000;
|
|
@@ -1635,7 +1635,7 @@
|
|
|
1635
1635
|
line-height: 22px;
|
|
1636
1636
|
}
|
|
1637
1637
|
|
|
1638
|
-
[data-v-
|
|
1638
|
+
[data-v-dbc85839] .cm-gutters:before {
|
|
1639
1639
|
content: "";
|
|
1640
1640
|
border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);
|
|
1641
1641
|
background-color: var(--scalar-background-1);
|
|
@@ -1646,7 +1646,7 @@
|
|
|
1646
1646
|
left: 2px;
|
|
1647
1647
|
}
|
|
1648
1648
|
|
|
1649
|
-
[data-v-
|
|
1649
|
+
[data-v-dbc85839] .cm-gutterElement {
|
|
1650
1650
|
justify-content: flex-end;
|
|
1651
1651
|
align-items: center;
|
|
1652
1652
|
display: flex;
|
|
@@ -1656,19 +1656,28 @@
|
|
|
1656
1656
|
padding-right: 6px !important;
|
|
1657
1657
|
}
|
|
1658
1658
|
|
|
1659
|
-
[data-v-
|
|
1659
|
+
[data-v-dbc85839] .cm-lineNumbers .cm-gutterElement {
|
|
1660
1660
|
min-width: fit-content;
|
|
1661
1661
|
}
|
|
1662
1662
|
|
|
1663
|
-
[data-v-
|
|
1663
|
+
[data-v-dbc85839] .cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement {
|
|
1664
1664
|
padding-left: 0 !important;
|
|
1665
1665
|
}
|
|
1666
1666
|
|
|
1667
|
-
[data-v-
|
|
1667
|
+
[data-v-dbc85839] .cm-scroller {
|
|
1668
1668
|
overflow: auto;
|
|
1669
1669
|
}
|
|
1670
1670
|
|
|
1671
|
-
|
|
1671
|
+
[data-v-dbc85839] .cm-lineWrapping .cm-line {
|
|
1672
|
+
word-break: break-all;
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
[data-v-dbc85839] .cm-lineWrapping .cm-content {
|
|
1676
|
+
white-space: pre-wrap;
|
|
1677
|
+
max-height: none;
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
.line-wrapping[data-v-dbc85839]:focus-within .cm-content {
|
|
1672
1681
|
white-space: break-spaces;
|
|
1673
1682
|
word-break: break-all;
|
|
1674
1683
|
min-height: fit-content;
|
|
@@ -1763,12 +1772,12 @@
|
|
|
1763
1772
|
color: var(--scalar-color-1);
|
|
1764
1773
|
}
|
|
1765
1774
|
|
|
1766
|
-
.code-input-lite[data-v-
|
|
1775
|
+
.code-input-lite[data-v-b22775cd] {
|
|
1767
1776
|
align-items: center;
|
|
1768
1777
|
display: flex;
|
|
1769
1778
|
}
|
|
1770
1779
|
|
|
1771
|
-
.code-input-lite__editor[data-v-
|
|
1780
|
+
.code-input-lite__editor[data-v-b22775cd] {
|
|
1772
1781
|
font: inherit;
|
|
1773
1782
|
letter-spacing: inherit;
|
|
1774
1783
|
min-width: 0;
|
|
@@ -1786,11 +1795,11 @@
|
|
|
1786
1795
|
overflow: auto hidden;
|
|
1787
1796
|
}
|
|
1788
1797
|
|
|
1789
|
-
.code-input-lite__editor[data-v-
|
|
1798
|
+
.code-input-lite__editor[data-v-b22775cd]::-webkit-scrollbar {
|
|
1790
1799
|
display: none;
|
|
1791
1800
|
}
|
|
1792
1801
|
|
|
1793
|
-
.code-input-lite--empty .code-input-lite__editor[data-v-
|
|
1802
|
+
.code-input-lite--empty .code-input-lite__editor[data-v-b22775cd]:not(:focus):before {
|
|
1794
1803
|
content: attr(data-placeholder);
|
|
1795
1804
|
color: var(--scalar-color-3);
|
|
1796
1805
|
pointer-events: none;
|
|
@@ -1802,7 +1811,7 @@
|
|
|
1802
1811
|
left: .5em;
|
|
1803
1812
|
}
|
|
1804
1813
|
|
|
1805
|
-
.code-input-lite--error .code-input-lite__editor[data-v-
|
|
1814
|
+
.code-input-lite--error .code-input-lite__editor[data-v-b22775cd] {
|
|
1806
1815
|
outline: 1px solid var(--scalar-color-red);
|
|
1807
1816
|
}
|
|
1808
1817
|
|
|
@@ -1866,22 +1875,22 @@
|
|
|
1866
1875
|
}
|
|
1867
1876
|
}
|
|
1868
1877
|
|
|
1869
|
-
[data-v-
|
|
1878
|
+
[data-v-8c8a738b] .code-input-lite__editor {
|
|
1870
1879
|
font-family: var(--scalar-font);
|
|
1871
1880
|
font-size: var(--scalar-small);
|
|
1872
1881
|
background-color: #0000;
|
|
1873
1882
|
padding: 5px 8px;
|
|
1874
1883
|
}
|
|
1875
1884
|
|
|
1876
|
-
[data-v-
|
|
1885
|
+
[data-v-8c8a738b] .scalar-pill:not(:last-of-type) {
|
|
1877
1886
|
margin-right: .15em;
|
|
1878
1887
|
}
|
|
1879
1888
|
|
|
1880
|
-
[data-v-
|
|
1889
|
+
[data-v-8c8a738b] .scalar-pill:not(:first-of-type) {
|
|
1881
1890
|
margin-left: .5px;
|
|
1882
1891
|
}
|
|
1883
1892
|
|
|
1884
|
-
[data-v-
|
|
1893
|
+
[data-v-d1ae5565] .cm-content {
|
|
1885
1894
|
font-size: var(--scalar-small);
|
|
1886
1895
|
}
|
|
1887
1896
|
|
|
@@ -1945,58 +1954,62 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
1945
1954
|
scrollbar-width: none;
|
|
1946
1955
|
}
|
|
1947
1956
|
|
|
1948
|
-
.request-section-content[data-v-
|
|
1957
|
+
.request-section-content[data-v-5d6c8262] {
|
|
1949
1958
|
--scalar-border-width: .5px;
|
|
1950
1959
|
}
|
|
1951
1960
|
|
|
1952
|
-
.request-section-content-filter[data-v-
|
|
1961
|
+
.request-section-content-filter[data-v-5d6c8262] {
|
|
1953
1962
|
box-shadow: 0 -10px 0 10px var(--scalar-background-1);
|
|
1954
1963
|
}
|
|
1955
1964
|
|
|
1956
|
-
.request-item:focus-within .request-meta-buttons[data-v-
|
|
1965
|
+
.request-item:focus-within .request-meta-buttons[data-v-5d6c8262] {
|
|
1957
1966
|
opacity: 1;
|
|
1958
1967
|
}
|
|
1959
1968
|
|
|
1960
|
-
.group-hover-input[data-v-
|
|
1969
|
+
.group-hover-input[data-v-5d6c8262] {
|
|
1961
1970
|
border-width: var(--scalar-border-width);
|
|
1962
1971
|
border-color: #0000;
|
|
1963
1972
|
}
|
|
1964
1973
|
|
|
1965
|
-
.group:hover .group-hover-input[data-v-
|
|
1974
|
+
.group:hover .group-hover-input[data-v-5d6c8262] {
|
|
1966
1975
|
background: var(--scalar-background-1);
|
|
1967
1976
|
}
|
|
1968
1977
|
|
|
1969
1978
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1970
|
-
.group:hover .group-hover-input[data-v-
|
|
1979
|
+
.group:hover .group-hover-input[data-v-5d6c8262] {
|
|
1971
1980
|
background: color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2));
|
|
1972
1981
|
}
|
|
1973
1982
|
}
|
|
1974
1983
|
|
|
1975
|
-
.group:hover .group-hover-input[data-v-
|
|
1984
|
+
.group:hover .group-hover-input[data-v-5d6c8262] {
|
|
1976
1985
|
border-color: var(--scalar-border-color);
|
|
1977
1986
|
}
|
|
1978
1987
|
|
|
1979
|
-
.group-hover-input[data-v-
|
|
1988
|
+
.group-hover-input[data-v-5d6c8262]:focus {
|
|
1980
1989
|
border-color: var(--scalar-border-color) !important;
|
|
1981
1990
|
background: none !important;
|
|
1982
1991
|
}
|
|
1983
1992
|
|
|
1984
|
-
[data-v-
|
|
1993
|
+
[data-v-6e055eb2] .cm-editor {
|
|
1985
1994
|
font-size: var(--scalar-small);
|
|
1986
1995
|
background-color: #0000;
|
|
1987
1996
|
outline: none;
|
|
1988
1997
|
}
|
|
1989
1998
|
|
|
1990
|
-
[data-v-
|
|
1999
|
+
[data-v-6e055eb2] .cm-gutters {
|
|
1991
2000
|
background-color: var(--scalar-background-1);
|
|
1992
2001
|
border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);
|
|
1993
2002
|
}
|
|
1994
2003
|
|
|
1995
|
-
[data-v-
|
|
2004
|
+
[data-v-6e055eb2] .cm-scroller {
|
|
1996
2005
|
min-width: 100%;
|
|
1997
2006
|
overflow: auto;
|
|
1998
2007
|
}
|
|
1999
2008
|
|
|
2009
|
+
[data-v-6e055eb2] .cm-lineWrapping .cm-line {
|
|
2010
|
+
word-break: break-all;
|
|
2011
|
+
}
|
|
2012
|
+
|
|
2000
2013
|
.light-mode .bg-preview[data-v-a10b4008] {
|
|
2001
2014
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E");
|
|
2002
2015
|
}
|
|
@@ -2059,12 +2072,12 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2059
2072
|
opacity: 0;
|
|
2060
2073
|
}
|
|
2061
2074
|
|
|
2062
|
-
.animate-response-heading .response-heading[data-v-
|
|
2075
|
+
.animate-response-heading .response-heading[data-v-b969ac76] {
|
|
2063
2076
|
opacity: 1;
|
|
2064
|
-
animation: .2s ease-in-out forwards push-response-
|
|
2077
|
+
animation: .2s ease-in-out forwards push-response-b969ac76;
|
|
2065
2078
|
}
|
|
2066
2079
|
|
|
2067
|
-
@keyframes push-response-
|
|
2080
|
+
@keyframes push-response-b969ac76 {
|
|
2068
2081
|
from {
|
|
2069
2082
|
opacity: 1;
|
|
2070
2083
|
transform: translateY(0);
|
|
@@ -2076,12 +2089,12 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2076
2089
|
}
|
|
2077
2090
|
}
|
|
2078
2091
|
|
|
2079
|
-
.animate-response-heading .animate-response-children[data-v-
|
|
2092
|
+
.animate-response-heading .animate-response-children[data-v-b969ac76] {
|
|
2080
2093
|
opacity: 0;
|
|
2081
|
-
animation: .2s ease-in-out 50ms forwards response-spans-
|
|
2094
|
+
animation: .2s ease-in-out 50ms forwards response-spans-b969ac76;
|
|
2082
2095
|
}
|
|
2083
2096
|
|
|
2084
|
-
@keyframes response-spans-
|
|
2097
|
+
@keyframes response-spans-b969ac76 {
|
|
2085
2098
|
from {
|
|
2086
2099
|
opacity: 0;
|
|
2087
2100
|
transform: translateY(4px);
|
|
@@ -2093,14 +2106,14 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2093
2106
|
}
|
|
2094
2107
|
}
|
|
2095
2108
|
|
|
2096
|
-
.description[data-v-
|
|
2109
|
+
.description[data-v-9775eaaf] .markdown {
|
|
2097
2110
|
font-weight: var(--scalar-semibold);
|
|
2098
2111
|
color: var(--scalar-color--1);
|
|
2099
2112
|
padding: 0;
|
|
2100
2113
|
display: block;
|
|
2101
2114
|
}
|
|
2102
2115
|
|
|
2103
|
-
.description[data-v-
|
|
2116
|
+
.description[data-v-9775eaaf] .markdown > :first-child {
|
|
2104
2117
|
margin-top: 0;
|
|
2105
2118
|
}
|
|
2106
2119
|
|
|
@@ -2112,58 +2125,58 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2112
2125
|
background: var(--scalar-background-2);
|
|
2113
2126
|
}
|
|
2114
2127
|
|
|
2115
|
-
[data-v-
|
|
2128
|
+
[data-v-1f68de05] .cm-editor {
|
|
2116
2129
|
outline: none;
|
|
2117
2130
|
width: 100%;
|
|
2118
2131
|
height: 100%;
|
|
2119
2132
|
}
|
|
2120
2133
|
|
|
2121
|
-
[data-v-
|
|
2134
|
+
[data-v-1f68de05] .cm-line {
|
|
2122
2135
|
padding: 0;
|
|
2123
2136
|
}
|
|
2124
2137
|
|
|
2125
|
-
[data-v-
|
|
2138
|
+
[data-v-1f68de05] .cm-content {
|
|
2126
2139
|
font-size: var(--scalar-small);
|
|
2127
2140
|
align-items: center;
|
|
2128
2141
|
padding: 0;
|
|
2129
2142
|
display: flex;
|
|
2130
2143
|
}
|
|
2131
2144
|
|
|
2132
|
-
.scroll-timeline-x[data-v-
|
|
2145
|
+
.scroll-timeline-x[data-v-1f68de05] {
|
|
2133
2146
|
-ms-overflow-style: none;
|
|
2134
2147
|
-webkit-mask-image: linear-gradient(to right, #0000 0, #000 6px calc(100% - 24px), #0000 100%);
|
|
2135
2148
|
mask-image: linear-gradient(to right, #0000 0, #000 6px calc(100% - 24px), #0000 100%);
|
|
2136
2149
|
}
|
|
2137
2150
|
|
|
2138
|
-
.scroll-timeline-x-hidden[data-v-
|
|
2151
|
+
.scroll-timeline-x-hidden[data-v-1f68de05] {
|
|
2139
2152
|
overflow-x: auto;
|
|
2140
2153
|
}
|
|
2141
2154
|
|
|
2142
|
-
.scroll-timeline-x-hidden[data-v-
|
|
2155
|
+
.scroll-timeline-x-hidden[data-v-1f68de05] .cm-scroller {
|
|
2143
2156
|
scrollbar-width: none;
|
|
2144
2157
|
-ms-overflow-style: none;
|
|
2145
2158
|
padding-right: 20px;
|
|
2146
2159
|
overflow: auto;
|
|
2147
2160
|
}
|
|
2148
2161
|
|
|
2149
|
-
.scroll-timeline-x-hidden[data-v-
|
|
2162
|
+
.scroll-timeline-x-hidden[data-v-1f68de05]::-webkit-scrollbar {
|
|
2150
2163
|
width: 0;
|
|
2151
2164
|
height: 0;
|
|
2152
2165
|
display: none;
|
|
2153
2166
|
}
|
|
2154
2167
|
|
|
2155
|
-
.scroll-timeline-x-hidden[data-v-
|
|
2168
|
+
.scroll-timeline-x-hidden[data-v-1f68de05] .cm-scroller::-webkit-scrollbar {
|
|
2156
2169
|
width: 0;
|
|
2157
2170
|
height: 0;
|
|
2158
2171
|
display: none;
|
|
2159
2172
|
}
|
|
2160
2173
|
|
|
2161
|
-
.scroll-timeline-x-address[data-v-
|
|
2174
|
+
.scroll-timeline-x-address[data-v-1f68de05] {
|
|
2162
2175
|
scrollbar-width: none;
|
|
2163
2176
|
line-height: 27px;
|
|
2164
2177
|
}
|
|
2165
2178
|
|
|
2166
|
-
.scroll-timeline-x-address[data-v-
|
|
2179
|
+
.scroll-timeline-x-address[data-v-1f68de05]:after {
|
|
2167
2180
|
content: "";
|
|
2168
2181
|
cursor: text;
|
|
2169
2182
|
width: 24px;
|
|
@@ -2172,45 +2185,45 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2172
2185
|
right: 0;
|
|
2173
2186
|
}
|
|
2174
2187
|
|
|
2175
|
-
.scroll-timeline-x-address[data-v-
|
|
2188
|
+
.scroll-timeline-x-address[data-v-1f68de05]:empty:before {
|
|
2176
2189
|
content: "Enter URL or cURL request";
|
|
2177
2190
|
color: var(--scalar-color-3);
|
|
2178
2191
|
pointer-events: none;
|
|
2179
2192
|
}
|
|
2180
2193
|
|
|
2181
|
-
.address-bar-bg-states[data-v-
|
|
2194
|
+
.address-bar-bg-states[data-v-1f68de05] {
|
|
2182
2195
|
--scalar-address-bar-bg: var(--scalar-background-1);
|
|
2183
2196
|
}
|
|
2184
2197
|
|
|
2185
2198
|
@supports (color: color-mix(in lab, red, red)) {
|
|
2186
|
-
.address-bar-bg-states[data-v-
|
|
2199
|
+
.address-bar-bg-states[data-v-1f68de05] {
|
|
2187
2200
|
--scalar-address-bar-bg: color-mix(in srgb,
|
|
2188
2201
|
var(--scalar-background-1),
|
|
2189
2202
|
var(--scalar-background-2));
|
|
2190
2203
|
}
|
|
2191
2204
|
}
|
|
2192
2205
|
|
|
2193
|
-
.address-bar-bg-states[data-v-
|
|
2206
|
+
.address-bar-bg-states[data-v-1f68de05] {
|
|
2194
2207
|
background: var(--scalar-address-bar-bg);
|
|
2195
2208
|
}
|
|
2196
2209
|
|
|
2197
|
-
.address-bar-bg-states[data-v-
|
|
2210
|
+
.address-bar-bg-states[data-v-1f68de05]:has(.cm-focused) {
|
|
2198
2211
|
--scalar-address-bar-bg: var(--scalar-background-1);
|
|
2199
2212
|
border-color: var(--scalar-border-color);
|
|
2200
2213
|
outline-width: 1px;
|
|
2201
2214
|
outline-style: solid;
|
|
2202
2215
|
}
|
|
2203
2216
|
|
|
2204
|
-
.address-bar-bg-states:has(.cm-focused) .fade-left[data-v-
|
|
2217
|
+
.address-bar-bg-states:has(.cm-focused) .fade-left[data-v-1f68de05], .address-bar-bg-states:has(.cm-focused) .fade-right[data-v-1f68de05] {
|
|
2205
2218
|
--scalar-address-bar-bg: var(--scalar-background-1);
|
|
2206
2219
|
}
|
|
2207
2220
|
|
|
2208
|
-
.app-exit-button[data-v-
|
|
2221
|
+
.app-exit-button[data-v-821957c1] {
|
|
2209
2222
|
color: #fff;
|
|
2210
2223
|
background: #0000001a;
|
|
2211
2224
|
}
|
|
2212
2225
|
|
|
2213
|
-
.app-exit-button[data-v-
|
|
2226
|
+
.app-exit-button[data-v-821957c1]:hover {
|
|
2214
2227
|
background: #ffffff1a;
|
|
2215
2228
|
}
|
|
2216
2229
|
|
|
@@ -2344,7 +2357,7 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
2344
2357
|
line-height: normal;
|
|
2345
2358
|
}
|
|
2346
2359
|
|
|
2347
|
-
.ref-search-meta[data-v-
|
|
2360
|
+
.ref-search-meta[data-v-89ab8a2d] {
|
|
2348
2361
|
background: var(--scalar-background-1);
|
|
2349
2362
|
border-bottom-left-radius: var(--scalar-radius-lg);
|
|
2350
2363
|
border-bottom-right-radius: var(--scalar-radius-lg);
|
|
@@ -3748,7 +3761,7 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
3748
3761
|
opacity: 0;
|
|
3749
3762
|
}
|
|
3750
3763
|
|
|
3751
|
-
.scalar-app .group-hover\/item\:opacity-100:is(:where(.group\/item):hover *), .scalar-app .group-hover\/params\:opacity-100:is(:where(.group\/params):hover *) {
|
|
3764
|
+
.scalar-app .group-hover\/code-block\:opacity-100:is(:where(.group\/code-block):hover *), .scalar-app .group-hover\/input\:opacity-100:is(:where(.group\/input):hover *), .scalar-app .group-hover\/item\:opacity-100:is(:where(.group\/item):hover *), .scalar-app .group-hover\/params\:opacity-100:is(:where(.group\/params):hover *) {
|
|
3752
3765
|
opacity: 1;
|
|
3753
3766
|
}
|
|
3754
3767
|
|
|
@@ -3775,6 +3788,10 @@ input[data-v-a6f4752a]::placeholder {
|
|
|
3775
3788
|
outline-width: 1px;
|
|
3776
3789
|
}
|
|
3777
3790
|
|
|
3791
|
+
.scalar-app .group-has-focus-visible\/code-block\:opacity-100:is(:where(.group\/code-block):has(:focus-visible) *), .scalar-app .group-has-focus-visible\/input\:opacity-100:is(:where(.group\/input):has(:focus-visible) *) {
|
|
3792
|
+
opacity: 1;
|
|
3793
|
+
}
|
|
3794
|
+
|
|
3778
3795
|
.scalar-app .group-has-\[\.cm-focused\]\:z-1:is(:where(.group):has(.cm-focused) *), .scalar-app .group-has-\[\.code-input-lite__editor\:focus\]\:z-1:is(:where(.group):has(:is(.code-input-lite editor:focus)) *) {
|
|
3779
3796
|
z-index: 1;
|
|
3780
3797
|
}
|
|
@@ -5648,7 +5665,7 @@ div + .userMessage[data-v-6573ec87] {
|
|
|
5648
5665
|
width: 100%;
|
|
5649
5666
|
}
|
|
5650
5667
|
|
|
5651
|
-
.docSettings[data-v-
|
|
5668
|
+
.docSettings[data-v-5134b4f8] {
|
|
5652
5669
|
display: flex;
|
|
5653
5670
|
flex-direction: column;
|
|
5654
5671
|
gap: 12px;
|
|
@@ -5656,7 +5673,7 @@ div + .userMessage[data-v-6573ec87] {
|
|
|
5656
5673
|
font-size: var(--scalar-font-size-3);
|
|
5657
5674
|
max-height: 600px;
|
|
5658
5675
|
}
|
|
5659
|
-
.documentName[data-v-
|
|
5676
|
+
.documentName[data-v-5134b4f8] {
|
|
5660
5677
|
font-weight: var(--scalar-semibold);
|
|
5661
5678
|
}
|
|
5662
5679
|
|
|
@@ -2,7 +2,7 @@ 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 { OpenApiDocument, ServerObject } from '@scalar/workspace-store/schemas/v3.
|
|
5
|
+
import type { OpenApiDocument, ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
|
|
6
6
|
type __VLS_Props = {
|
|
7
7
|
options: Pick<ApiReferenceConfigurationRaw, 'authentication' | 'persistAuth' | 'proxyUrl'>;
|
|
8
8
|
name: string;
|
|
@@ -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 {\n OpenApiDocument,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.
|
|
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.2/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 {\n OpenApiDocument,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.
|
|
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.2/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,SAAS;;EAGpC,MAAM,uBAAuB,eAC3B,wBAAwB,QAAA,UAAU,QAAQ,CAC5C;;EAGA,MAAM,kBAAkB,eACtB,cACE,QAAA,UAAU,YAAY,mBAAmB,CAAC,GAC1C,QAAA,QAAQ,gBAAgB,iBACxB,QAAA,WACA,QAAA,IACF,CACF;;EAGA,MAAM,mBAAmB,eACvB,oBACE,QAAA,UAAU,uBAAuB;GAC/B,MAAM;GACN,cAAc,QAAA;EAChB,CAAC,GACD,KAAA,GACA,qBAAqB,OACrB,gBAAgB,OAChB,QAAA,QAAQ,gBAAgB,uBAC1B,CACF;EAEA,MAAM,WAAW,WAAW;EAC5B,MAAM,EAAE,YAAY,eAAe,QAAQ;EAE3C,MAAM,UAAU,cAAc;GAC5B,IAAI,CAAC,WACH;GAGF,eAAe,OAAO,4BAA4B,QAAA,IAAI;EACxD,CAAC;;uBAGC,mBAoBM,OAAA;aAnBA;IAAJ,KAAI;IACJ,UAAS;OAED,OAAO,KAAK,gBAAA,KAAe,CAAA,CAAE,UAAA,UAAA,GADrC,YAgB2B,MAAA,YAAA,GAAA;;IAdxB,WAAA,QAAA;IACA,cAAc,QAAA;IACd,aAAA,QAAA;IACA,UAAA,QAAA;IACD,YAAA;IACA,UAAA;IACA,QAAO;IACN,MAAM,EAAA,MAAA,WAAA;IACN,aAAa,QAAA,QAAQ;IACrB,UAAU,QAAA,QAAQ,YAAQ;IAC1B,sBAAA,qBAAA;IACA,iBAAA,gBAAA;IACA,kBAAA,iBAAA;IACA,QAAQ,QAAA;IACT,OAAM"}
|
|
@@ -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-
|
|
5
|
+
var DocSettings_default = /*#__PURE__*/ _plugin_vue_export_helper_default(DocSettings_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5134b4f8"]]);
|
|
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 { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.
|
|
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.2/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 { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.
|
|
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.2/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,SAAS;EAEtD,MAAM,cAAc,eACZ,qBAAqB,gBAAgB,QAAA,QAAQ,CAAC,CAAC,WACvD;EAEA,MAAM,iBAAiB,eAAe;GACpC,MAAM,UAAU,WAAW,QAAA,SAAS,SAAS,EAC3C,aAAa,QAAA,SAAS,gCACxB,CAAC;GAED,OAAO,kBAAkB,QAAA,UAAU,MAAM,MAAM,OAAO;EACxD,CAAC;EAED,MAAM,kBAAkB,eAChB,QAAA,SAAS,YAAY,mBAAmB,CAAC,CACjD;;uBAIE,mBAkBM,OAlBN,YAkBM,CAjBJ,mBAUM,OAAA,MAAA,CATJ,YAQoB,cAAA;IAPjB,WAAW,MAAA,cAAA,CAAc,CAAC;IAC1B,UAAA,QAAA;IACA,aAAA,YAAA;IACA,UAAA,MAAA,QAAA;IACA,MAAA,QAAA;IACA,SAAS,MAAA,MAAA;IACT,iBAAA,gBAAA;IACA,gBAAA,eAAA;;;;;;;;;;SAEL,mBAKM,OAAA,MAAA,CAJJ,YAGsC,wBAAA;IAFnC,UAAA,MAAA,QAAA;IACA,gBAAA,eAAA;IACA,SAAS,QAAA,SAAS,WAAO,CAAA"}
|
package/dist/vue-styles.css
CHANGED
|
@@ -1260,7 +1260,7 @@ div + .userMessage[data-v-6573ec87] {
|
|
|
1260
1260
|
width: 100%;
|
|
1261
1261
|
}
|
|
1262
1262
|
|
|
1263
|
-
.docSettings[data-v-
|
|
1263
|
+
.docSettings[data-v-5134b4f8] {
|
|
1264
1264
|
display: flex;
|
|
1265
1265
|
flex-direction: column;
|
|
1266
1266
|
gap: 12px;
|
|
@@ -1268,7 +1268,7 @@ div + .userMessage[data-v-6573ec87] {
|
|
|
1268
1268
|
font-size: var(--scalar-font-size-3);
|
|
1269
1269
|
max-height: 600px;
|
|
1270
1270
|
}
|
|
1271
|
-
.documentName[data-v-
|
|
1271
|
+
.documentName[data-v-5134b4f8] {
|
|
1272
1272
|
font-weight: var(--scalar-semibold);
|
|
1273
1273
|
}
|
|
1274
1274
|
|
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.12.
|
|
13
|
+
"version": "0.12.32",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
@@ -46,36 +46,36 @@
|
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@ai-sdk/vue": "3.0.33",
|
|
49
|
+
"@scalar/api-client": "3.19.1",
|
|
50
|
+
"@scalar/components": "0.29.3",
|
|
51
|
+
"@scalar/helpers": "0.12.0",
|
|
52
|
+
"@scalar/icons": "0.7.6",
|
|
53
|
+
"@scalar/json-magic": "0.14.0",
|
|
54
|
+
"@scalar/openapi-types": "0.9.6",
|
|
55
|
+
"@scalar/schemas": "0.10.0",
|
|
56
|
+
"@scalar/themes": "0.18.0",
|
|
57
|
+
"@scalar/types": "0.20.0",
|
|
58
|
+
"@scalar/use-toasts": "0.10.5",
|
|
59
|
+
"@scalar/validation": "0.6.3",
|
|
60
|
+
"@scalar/workspace-store": "0.62.0",
|
|
49
61
|
"@vueuse/core": "13.9.0",
|
|
50
62
|
"ai": "6.0.33",
|
|
51
63
|
"js-base64": "^3.9.2",
|
|
52
64
|
"neverpanic": "0.0.8",
|
|
53
65
|
"truncate-json": "3.0.1",
|
|
54
|
-
"vue": "^3.5.40"
|
|
55
|
-
"@scalar/api-client": "3.18.0",
|
|
56
|
-
"@scalar/icons": "0.7.6",
|
|
57
|
-
"@scalar/json-magic": "0.13.4",
|
|
58
|
-
"@scalar/helpers": "0.11.3",
|
|
59
|
-
"@scalar/components": "0.29.1",
|
|
60
|
-
"@scalar/openapi-types": "0.9.5",
|
|
61
|
-
"@scalar/schemas": "0.9.0",
|
|
62
|
-
"@scalar/themes": "0.17.4",
|
|
63
|
-
"@scalar/types": "0.19.0",
|
|
64
|
-
"@scalar/use-toasts": "0.10.5",
|
|
65
|
-
"@scalar/workspace-store": "0.60.0",
|
|
66
|
-
"@scalar/validation": "0.6.3"
|
|
66
|
+
"vue": "^3.5.40"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
+
"@scalar/sidebar": "0.11.3",
|
|
69
70
|
"@tailwindcss/cli": "^4.3.3",
|
|
70
71
|
"@tailwindcss/vite": "^4.3.3",
|
|
71
72
|
"@types/jsdom": "28.0.1",
|
|
72
73
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
73
|
-
"hono": "^4.
|
|
74
|
+
"hono": "^4.13.7",
|
|
74
75
|
"jsdom": "27.4.0",
|
|
75
76
|
"tailwindcss": "^4.3.3",
|
|
76
77
|
"vite": "8.1.5",
|
|
77
|
-
"vitest": "4.1.10"
|
|
78
|
-
"@scalar/sidebar": "0.11.1"
|
|
78
|
+
"vitest": "4.1.10"
|
|
79
79
|
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"build": "vite build && pnpm build:styles && vue-tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && shx cp package.json dist",
|