@scalar/api-client 2.24.0 → 2.26.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.
- package/CHANGELOG.md +61 -0
- package/dist/components/DataTable/DataTableCheckbox.vue.d.ts.map +1 -1
- package/dist/components/DataTable/DataTableCheckbox.vue.js +8 -8
- package/dist/style.css +1 -1
- package/dist/v2/blocks/operation-block/helpers/build-request-body.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/build-request-body.js +28 -19
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts.map +1 -1
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.js +1 -1
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue2.js +1 -1
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts.map +1 -1
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +18 -18
- package/dist/v2/blocks/request-block/helpers/get-default-headers.js +1 -1
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.d.ts.map +1 -1
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +2 -2
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue2.js +19 -19
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts.map +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +26 -26
- package/dist/v2/components/callout/Callout.vue.d.ts +17 -0
- package/dist/v2/components/callout/Callout.vue.d.ts.map +1 -0
- package/dist/v2/components/callout/Callout.vue.js +7 -0
- package/dist/v2/components/callout/Callout.vue2.js +43 -0
- package/dist/v2/components/data-table/DataTableCheckbox.vue.d.ts.map +1 -1
- package/dist/v2/components/data-table/DataTableCheckbox.vue.js +8 -8
- package/dist/v2/components/sidebar/Sidebar.vue.d.ts +2 -2
- package/dist/v2/components/sidebar/Sidebar.vue.d.ts.map +1 -1
- package/dist/v2/components/sidebar/Sidebar.vue.js +40 -41
- package/dist/v2/components/sidebar/SidebarMenu.vue.d.ts +2 -2
- package/dist/v2/components/sidebar/SidebarMenu.vue.d.ts.map +1 -1
- package/dist/v2/components/sidebar/SidebarMenu.vue.js +6 -6
- package/dist/v2/features/app/App.vue.d.ts +6 -3
- package/dist/v2/features/app/App.vue.d.ts.map +1 -1
- package/dist/v2/features/app/App.vue.js +87 -86
- package/dist/v2/features/app/app-events.d.ts +1 -1
- package/dist/v2/features/app/app-events.d.ts.map +1 -1
- package/dist/v2/features/app/app-events.js +10 -10
- package/dist/v2/features/app/app-state.d.ts +77 -96
- package/dist/v2/features/app/app-state.d.ts.map +1 -1
- package/dist/v2/features/app/app-state.js +339 -322
- package/dist/v2/features/app/components/AppSidebar.vue.d.ts +2 -2
- package/dist/v2/features/app/components/AppSidebar.vue.d.ts.map +1 -1
- package/dist/v2/features/app/components/AppSidebar.vue.js +3 -3
- package/dist/v2/features/app/components/DesktopTabs.vue.d.ts.map +1 -1
- package/dist/v2/features/app/components/DesktopTabs.vue.js +1 -1
- package/dist/v2/features/app/helpers/create-api-client-app.d.ts +2 -2
- package/dist/v2/features/app/helpers/create-api-client-app.d.ts.map +1 -1
- package/dist/v2/features/app/helpers/create-api-client-app.js +9 -9
- package/dist/v2/features/app/helpers/filter-workspaces.d.ts +49 -0
- package/dist/v2/features/app/helpers/filter-workspaces.d.ts.map +1 -0
- package/dist/v2/features/app/helpers/filter-workspaces.js +5 -0
- package/dist/v2/features/app/helpers/get-route-param.d.ts +7 -0
- package/dist/v2/features/app/helpers/get-route-param.d.ts.map +1 -0
- package/dist/v2/features/app/helpers/get-route-param.js +9 -0
- package/dist/v2/features/app/helpers/group-workspaces.d.ts +24 -0
- package/dist/v2/features/app/helpers/group-workspaces.d.ts.map +1 -0
- package/dist/v2/features/app/helpers/group-workspaces.js +23 -0
- package/dist/v2/features/app/index.d.ts +1 -1
- package/dist/v2/features/app/index.d.ts.map +1 -1
- package/dist/v2/features/app/index.js +12 -12
- package/dist/v2/features/collection/DocumentCollection.vue.d.ts.map +1 -1
- package/dist/v2/features/collection/DocumentCollection.vue.js +72 -65
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.d.ts +29 -2
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.d.ts.map +1 -1
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +110 -106
- package/dist/v2/features/command-palette/helpers/load-document-from-source.d.ts +5 -1
- package/dist/v2/features/command-palette/helpers/load-document-from-source.d.ts.map +1 -1
- package/dist/v2/features/command-palette/helpers/load-document-from-source.js +41 -23
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +41 -8
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
- package/dist/v2/features/command-palette/index.d.ts +1 -2
- package/dist/v2/features/command-palette/index.d.ts.map +1 -1
- package/dist/v2/features/command-palette/index.js +4 -6
- package/dist/v2/features/operation/Operation.vue.js +1 -1
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.d.ts.map +1 -1
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +2 -2
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue2.js +24 -23
- package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +1 -1
- package/package.json +10 -10
- package/dist/v2/features/app/components/WebTopNav.vue.d.ts +0 -41
- package/dist/v2/features/app/components/WebTopNav.vue.d.ts.map +0 -1
- package/dist/v2/features/app/components/WebTopNav.vue.js +0 -27
- package/dist/v2/features/app/components/WebTopNav.vue2.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type WorkspaceGroup } from '@scalar/components';
|
|
2
2
|
import type { SidebarState } from '@scalar/sidebar';
|
|
3
3
|
import type { WorkspaceStore } from '@scalar/workspace-store/client';
|
|
4
4
|
import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
|
|
@@ -29,7 +29,7 @@ type __VLS_Props = {
|
|
|
29
29
|
* The list of all available workspaces.
|
|
30
30
|
* Used to render options for workspace switching and selection.
|
|
31
31
|
*/
|
|
32
|
-
workspaces:
|
|
32
|
+
workspaces: WorkspaceGroup[];
|
|
33
33
|
/**
|
|
34
34
|
* The workspace event bus for handling workspace-level events.
|
|
35
35
|
* Used for triggering and responding to workspace changes and actions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/components/AppSidebar.vue"],"names":[],"mappings":"AAkeA,OAAO,EAML,KAAK,
|
|
1
|
+
{"version":3,"file":"AppSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/components/AppSidebar.vue"],"names":[],"mappings":"AAkeA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAO3B,OAAO,KAAK,EAA6B,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAUhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,MAAM,EAAE,YAAY,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAE1C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,eAAe,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C;;;OAGG;IACH,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B;;;OAGG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;;OAGG;IACH,KAAK,EAAE,cAAc,CAAA;CACtB,CAAC;AAgBJ,KAAK,WAAW,GAAG;IACjB,oEAAoE;IACpE,kBAAkB,CAAC,IAAI,OAAO,CAAA;CAC/B,CAAC;AAmLF,KAAK,iBAAiB,GAAG,WAAW,GAAG;IACvC,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACtB,CAAC;AAqfF,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;kFAOnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAQ1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./AppSidebar.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import a from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = /* @__PURE__ */ a(o, [["__scopeId", "data-v-6a79a4d6"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
m as default
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopTabs.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/components/DesktopTabs.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DesktopTabs.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/components/DesktopTabs.vue"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oEAAoE,CAAA;AAK7F,KAAK,WAAW,GAAG;IACjB,iBAAiB;IACjB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC;;AAmJF,wBAMG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as v, computed as d, createElementBlock as l, openBlock as n, createElementVNode as h, Fragment as T, renderList as p, createBlock as C, createVNode as k, unref as g } from "vue";
|
|
2
2
|
import { ScalarIcon as f } from "@scalar/components";
|
|
3
3
|
import B from "./DesktopTab.vue.js";
|
|
4
|
-
const y = { class: "mac:pl-[72px] t-app__top-nav flex h-10 items-center gap-2 px-2" }, U = /* @__PURE__ */ v({
|
|
4
|
+
const y = { class: "mac:pl-[72px] t-app__top-nav z-1 flex h-10 items-center gap-2 px-2" }, U = /* @__PURE__ */ v({
|
|
5
5
|
__name: "DesktopTabs",
|
|
6
6
|
props: {
|
|
7
7
|
tabs: {},
|
|
@@ -20,9 +20,9 @@ export declare const createAppRouter: (layout: CreateApiClientOptions["layout"])
|
|
|
20
20
|
/**
|
|
21
21
|
* Create the API Client with router and passes in the workspace store as a prop
|
|
22
22
|
*/
|
|
23
|
-
export declare const createApiClientApp: (el: HTMLElement | null, { layout, plugins }: CreateApiClientOptions) => {
|
|
23
|
+
export declare const createApiClientApp: (el: HTMLElement | null, { layout, plugins }: CreateApiClientOptions) => Promise<{
|
|
24
24
|
app: import("vue").App<Element>;
|
|
25
25
|
state: import("../../../../v2/features/app/app-state.js").AppState;
|
|
26
|
-
} | undefined
|
|
26
|
+
} | undefined>;
|
|
27
27
|
export {};
|
|
28
28
|
//# sourceMappingURL=create-api-client-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-api-client-app.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/helpers/create-api-client-app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,KAAK,sBAAsB,GAAG;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,sBAAsB,CAAC,QAAQ,CAAC,gCAQvE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"create-api-client-app.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/helpers/create-api-client-app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,KAAK,sBAAsB,GAAG;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,sBAAsB,CAAC,QAAQ,CAAC,gCAQvE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,IAAI,WAAW,GAAG,IAAI,EACtB,qBAAiC,sBAAsB;;;cAgCxD,CAAA"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { createApp as
|
|
2
|
-
import { createRouter as p, createWebHistory as
|
|
3
|
-
import
|
|
1
|
+
import { createApp as n } from "vue";
|
|
2
|
+
import { createRouter as p, createWebHistory as s, createWebHashHistory as l } from "vue-router";
|
|
3
|
+
import u from "../App.vue.js";
|
|
4
4
|
/* empty css */
|
|
5
|
-
import {
|
|
6
|
-
import { ROUTES as
|
|
5
|
+
import { createAppState as d } from "../app-state.js";
|
|
6
|
+
import { ROUTES as c } from "./routes.js";
|
|
7
7
|
import { useCommandPaletteState as f } from "../../command-palette/hooks/use-command-palette-state.js";
|
|
8
|
-
const A = (t) => t === "web" ? p({ history:
|
|
9
|
-
const o = A(r), a = d(o),
|
|
8
|
+
const A = (t) => t === "web" ? p({ history: s(), routes: c }) : p({ history: l(), routes: c }), P = async (t, { layout: r = "desktop", plugins: i }) => {
|
|
9
|
+
const o = A(r), a = await d({ router: o }), m = f(), e = n(u, {
|
|
10
10
|
layout: r,
|
|
11
11
|
plugins: i,
|
|
12
12
|
getAppState: () => a,
|
|
13
|
-
getCommandPaletteState: () =>
|
|
13
|
+
getCommandPaletteState: () => m
|
|
14
14
|
});
|
|
15
15
|
if (e.use(o), !t) {
|
|
16
16
|
console.error(
|
|
@@ -26,6 +26,6 @@ const A = (t) => t === "web" ? p({ history: n(), routes: m }) : p({ history: u()
|
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
export {
|
|
29
|
-
|
|
29
|
+
P as createApiClientApp,
|
|
30
30
|
A as createAppRouter
|
|
31
31
|
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filters workspaces to show only those accessible to the current team.
|
|
3
|
+
*
|
|
4
|
+
* A workspace is accessible if:
|
|
5
|
+
* - Its teamUid matches the current team, OR
|
|
6
|
+
* - Its teamUid is 'local' (local workspaces are always accessible)
|
|
7
|
+
*
|
|
8
|
+
* @param workspaces - Array of workspaces to filter
|
|
9
|
+
* @param currentTeamUid - The currently active team identifier
|
|
10
|
+
* @returns Filtered array of workspaces accessible to the current team
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const workspaces = [
|
|
15
|
+
* { id: '1', teamUid: 'local', name: 'Local' },
|
|
16
|
+
* { id: '2', teamUid: 'team-a', name: 'Team A' },
|
|
17
|
+
* { id: '3', teamUid: 'team-b', name: 'Team B' },
|
|
18
|
+
* ]
|
|
19
|
+
*
|
|
20
|
+
* filterWorkspacesByTeam(workspaces, 'team-a')
|
|
21
|
+
* // => [{ id: '1', teamUid: 'local' }, { id: '2', teamUid: 'team-a' }]
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const filterWorkspacesByTeam: <T extends {
|
|
25
|
+
teamUid: string;
|
|
26
|
+
}>(workspaces: T[], currentTeamUid: string) => T[];
|
|
27
|
+
/**
|
|
28
|
+
* Checks if a workspace can be loaded by the current team.
|
|
29
|
+
*
|
|
30
|
+
* A workspace can be loaded if:
|
|
31
|
+
* - Its teamUid matches the current team, OR
|
|
32
|
+
* - Its teamUid is 'local' (local workspaces are always accessible)
|
|
33
|
+
*
|
|
34
|
+
* This is used during route changes to prevent users from accessing
|
|
35
|
+
* workspaces that do not belong to their active team.
|
|
36
|
+
*
|
|
37
|
+
* @param workspaceTeamUid - The team identifier of the workspace to check
|
|
38
|
+
* @param currentTeamUid - The currently active team identifier
|
|
39
|
+
* @returns true if the workspace can be loaded, false otherwise
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* canLoadWorkspace('team-a', 'team-a') // => true
|
|
44
|
+
* canLoadWorkspace('local', 'team-a') // => true
|
|
45
|
+
* canLoadWorkspace('team-b', 'team-a') // => false
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const canLoadWorkspace: (workspaceTeamUid: string, currentTeamUid: string) => boolean;
|
|
49
|
+
//# sourceMappingURL=filter-workspaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-workspaces.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/helpers/filter-workspaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,YAAY,CAAC,EAAE,EAAE,gBAAgB,MAAM,KAAG,CAAC,EAEhH,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB,GAAI,kBAAkB,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAEnF,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HttpMethod } from '@scalar/helpers/http/http-methods';
|
|
2
|
+
import type { RouteLocationNormalizedGeneric } from 'vue-router';
|
|
3
|
+
import type { ScalarClientAppRouteParams } from '../../../../v2/features/app/helpers/routes.js';
|
|
4
|
+
/** Extracts a string parameter from the route */
|
|
5
|
+
export declare function getRouteParam(paramName: 'method', route: RouteLocationNormalizedGeneric | null): HttpMethod | undefined;
|
|
6
|
+
export declare function getRouteParam(paramName: Exclude<ScalarClientAppRouteParams, 'method'>, route: RouteLocationNormalizedGeneric | null): string | undefined;
|
|
7
|
+
//# sourceMappingURL=get-route-param.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-route-param.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/helpers/get-route-param.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAElF,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,CAAA;AACxH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,OAAO,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EACxD,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAC3C,MAAM,GAAG,SAAS,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { WorkspaceGroup } from '@scalar/components';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a workspace with team information.
|
|
4
|
+
* Used to group workspaces by team or local status.
|
|
5
|
+
*/
|
|
6
|
+
export type WorkspaceItem = {
|
|
7
|
+
/** Unique identifier for the workspace. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Display name of the workspace. */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Team identifier. Use 'local' for local workspaces. */
|
|
12
|
+
teamUid: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Groups workspaces into team and local categories.
|
|
16
|
+
* Team workspaces are listed first (if not viewing local workspaces),
|
|
17
|
+
* followed by local workspaces.
|
|
18
|
+
*
|
|
19
|
+
* @param workspaces - Array of workspaces to group
|
|
20
|
+
* @param currentTeamUid - Current team identifier ('local' for local team)
|
|
21
|
+
* @returns Array of workspace groups with labels and options
|
|
22
|
+
*/
|
|
23
|
+
export declare function groupWorkspacesByTeam(workspaces: WorkspaceItem[], currentTeamUid: string): WorkspaceGroup[];
|
|
24
|
+
//# sourceMappingURL=group-workspaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-workspaces.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/app/helpers/group-workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE7E;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAA;IACV,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,cAAc,EAAE,CAsC3G"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function p(n, t) {
|
|
2
|
+
const a = n.reduce((e, o) => {
|
|
3
|
+
const l = o.teamUid;
|
|
4
|
+
return e[l] || (e[l] = []), e[l].push({
|
|
5
|
+
id: o.id,
|
|
6
|
+
label: o.label
|
|
7
|
+
}), e;
|
|
8
|
+
}, {}), s = [];
|
|
9
|
+
if (t !== "local") {
|
|
10
|
+
const e = a[t] ?? [];
|
|
11
|
+
e.length > 0 && s.push({
|
|
12
|
+
label: "Team Workspaces",
|
|
13
|
+
options: e
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return s.push({
|
|
17
|
+
label: "Local Workspaces",
|
|
18
|
+
options: a.local ?? []
|
|
19
|
+
}), s;
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
p as groupWorkspacesByTeam
|
|
23
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type AppState,
|
|
1
|
+
export { type AppState, createAppState } from '../../../v2/features/app/app-state.js';
|
|
2
2
|
export { default as CreateWorkspaceModal } from '../../../v2/features/app/components/CreateWorkspaceModal.vue.js';
|
|
3
3
|
export { default as CommandActionForm } from '../../../v2/features/command-palette/components/CommandActionForm.vue.js';
|
|
4
4
|
export { default as CommandActionInput } from '../../../v2/features/command-palette/components/CommandActionInput.vue.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uDAAuD,CAAA;AACvG,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gEAAgE,CAAA;AAC7G,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iEAAiE,CAAA;AAC/G,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,GACvB,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createAppState as a } from "./app-state.js";
|
|
2
2
|
import { default as p } from "./components/CreateWorkspaceModal.vue.js";
|
|
3
3
|
import { default as f } from "../command-palette/components/CommandActionForm.vue.js";
|
|
4
|
-
import { default as
|
|
5
|
-
import { baseClientActions as
|
|
6
|
-
import { default as
|
|
4
|
+
import { default as s } from "../command-palette/components/CommandActionInput.vue.js";
|
|
5
|
+
import { baseClientActions as d, baseRoutes as i, useCommandPaletteState as u } from "../command-palette/hooks/use-command-palette-state.js";
|
|
6
|
+
import { default as c } from "./App.vue.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
import { createApiClientApp as
|
|
8
|
+
import { createApiClientApp as C, createAppRouter as b } from "./helpers/create-api-client-app.js";
|
|
9
9
|
export {
|
|
10
|
-
|
|
10
|
+
c as ClientApp,
|
|
11
11
|
f as CommandActionForm,
|
|
12
|
-
|
|
12
|
+
s as CommandActionInput,
|
|
13
13
|
p as CreateWorkspaceModal,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
d as baseClientActions,
|
|
15
|
+
i as baseRoutes,
|
|
16
|
+
C as createApiClientApp,
|
|
17
17
|
b as createAppRouter,
|
|
18
|
-
a as
|
|
19
|
-
|
|
18
|
+
a as createAppState,
|
|
19
|
+
u as useCommandPaletteState
|
|
20
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentCollection.vue.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/collection/DocumentCollection.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DocumentCollection.vue.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/collection/DocumentCollection.vue"],"names":[],"mappings":"AAwJA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAMlE;;;;;;;GAOG;;AACH,wBA6VC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { LibraryIcon as
|
|
5
|
-
import { RouterView as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
1
|
+
import { defineComponent as y, computed as p, createElementBlock as c, openBlock as u, createElementVNode as t, createVNode as o, createBlock as f, createCommentVNode as g, withCtx as l, unref as s, resolveDynamicComponent as h, mergeProps as k } from "vue";
|
|
2
|
+
import { ScalarButton as i } from "@scalar/components";
|
|
3
|
+
import { ScalarIconFloppyDisk as b } from "@scalar/icons";
|
|
4
|
+
import { LibraryIcon as w } from "@scalar/icons/library";
|
|
5
|
+
import { RouterView as _ } from "vue-router";
|
|
6
|
+
import C from "../../../components/IconSelector.vue.js";
|
|
7
|
+
import S from "../../components/callout/Callout.vue.js";
|
|
8
|
+
import V from "./components/LabelInput.vue.js";
|
|
9
|
+
import B from "./components/Tabs.vue.js";
|
|
10
|
+
const D = { class: "custom-scroll h-full" }, N = {
|
|
10
11
|
key: 0,
|
|
11
12
|
class: "w-full md:mx-auto md:max-w-[720px]"
|
|
12
|
-
},
|
|
13
|
+
}, z = ["aria-label"], I = { class: "flex flex-row items-center gap-2" }, U = { class: "group relative ml-1.25" }, $ = { class: "px-1.5 py-8" }, j = {
|
|
13
14
|
key: 1,
|
|
14
15
|
class: "flex w-full flex-1 items-center justify-center"
|
|
15
|
-
},
|
|
16
|
+
}, E = {
|
|
16
17
|
name: "DocumentCollection"
|
|
17
|
-
},
|
|
18
|
-
...
|
|
18
|
+
}, H = /* @__PURE__ */ y({
|
|
19
|
+
...E,
|
|
19
20
|
props: {
|
|
20
21
|
documentSlug: {},
|
|
21
22
|
document: {},
|
|
@@ -31,66 +32,72 @@ const I = { class: "custom-scroll h-full" }, N = {
|
|
|
31
32
|
plugins: {}
|
|
32
33
|
},
|
|
33
34
|
setup(a) {
|
|
34
|
-
const n = a,
|
|
35
|
+
const n = a, m = p(() => n.document?.info?.title || "Untitled Document"), d = p(
|
|
35
36
|
() => n.document?.["x-scalar-icon"] || "interface-content-folder"
|
|
36
|
-
),
|
|
37
|
+
), x = () => {
|
|
37
38
|
n.workspaceStore.revertDocumentChanges(n.documentSlug);
|
|
38
|
-
},
|
|
39
|
+
}, v = () => {
|
|
39
40
|
n.workspaceStore.saveDocument(n.documentSlug);
|
|
40
41
|
};
|
|
41
|
-
return (
|
|
42
|
-
a.document ? (u(),
|
|
42
|
+
return (L, e) => (u(), c("div", D, [
|
|
43
|
+
a.document ? (u(), c("div", N, [
|
|
43
44
|
t("div", {
|
|
44
|
-
"aria-label": `title: ${
|
|
45
|
+
"aria-label": `title: ${m.value}`,
|
|
45
46
|
class: "mx-auto flex h-fit w-full flex-col gap-2 pt-6 pb-3 md:mx-auto md:max-w-[720px]"
|
|
46
47
|
}, [
|
|
47
|
-
a.document["x-scalar-is-dirty"] ? (u(),
|
|
48
|
+
a.document?.["x-scalar-is-dirty"] ? (u(), f(S, {
|
|
48
49
|
key: 0,
|
|
49
|
-
|
|
50
|
+
class: "mb-5",
|
|
51
|
+
type: "warning"
|
|
50
52
|
}, {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
53
|
+
actions: l(() => [
|
|
54
|
+
o(s(i), {
|
|
55
|
+
class: "text-c-2 hover:text-c-1 flex items-center gap-2",
|
|
56
|
+
size: "xs",
|
|
57
|
+
type: "button",
|
|
58
|
+
variant: "outlined",
|
|
59
|
+
onClick: x
|
|
60
|
+
}, {
|
|
61
|
+
default: l(() => [...e[2] || (e[2] = [
|
|
62
|
+
t("span", null, "Undo", -1)
|
|
63
|
+
])]),
|
|
64
|
+
_: 1
|
|
65
|
+
}),
|
|
66
|
+
o(s(i), {
|
|
67
|
+
class: "text-c-btn flex items-center gap-2",
|
|
68
|
+
size: "xs",
|
|
69
|
+
type: "button",
|
|
70
|
+
variant: "solid",
|
|
71
|
+
onClick: v
|
|
72
|
+
}, {
|
|
73
|
+
default: l(() => [
|
|
74
|
+
o(s(b), {
|
|
75
|
+
size: "sm",
|
|
76
|
+
thickness: "1.5"
|
|
77
|
+
}),
|
|
78
|
+
e[3] || (e[3] = t("span", null, "Save", -1))
|
|
79
|
+
]),
|
|
80
|
+
_: 1
|
|
81
|
+
})
|
|
82
|
+
]),
|
|
83
|
+
default: l(() => [
|
|
84
|
+
e[4] || (e[4] = t("p", null, " You have unsaved changes. Save your work to keep your changes, or undo to revert them. ", -1))
|
|
78
85
|
]),
|
|
79
86
|
_: 1
|
|
80
|
-
})) :
|
|
81
|
-
t("div",
|
|
82
|
-
o(
|
|
87
|
+
})) : g("", !0),
|
|
88
|
+
t("div", I, [
|
|
89
|
+
o(C, {
|
|
83
90
|
modelValue: d.value,
|
|
84
91
|
placement: "bottom-start",
|
|
85
92
|
"onUpdate:modelValue": e[0] || (e[0] = (r) => a.eventBus.emit("document:update:icon", r))
|
|
86
93
|
}, {
|
|
87
|
-
default:
|
|
88
|
-
o(
|
|
94
|
+
default: l(() => [
|
|
95
|
+
o(s(i), {
|
|
89
96
|
class: "hover:bg-b-2 aspect-square h-7 w-7 cursor-pointer rounded border border-transparent p-0 hover:border-inherit",
|
|
90
97
|
variant: "ghost"
|
|
91
98
|
}, {
|
|
92
|
-
default:
|
|
93
|
-
o(
|
|
99
|
+
default: l(() => [
|
|
100
|
+
o(s(w), {
|
|
94
101
|
class: "text-c-2 size-5",
|
|
95
102
|
src: d.value,
|
|
96
103
|
"stroke-width": "2"
|
|
@@ -102,25 +109,25 @@ const I = { class: "custom-scroll h-full" }, N = {
|
|
|
102
109
|
_: 1
|
|
103
110
|
}, 8, ["modelValue"])
|
|
104
111
|
]),
|
|
105
|
-
t("div",
|
|
106
|
-
o(
|
|
112
|
+
t("div", U, [
|
|
113
|
+
o(V, {
|
|
107
114
|
class: "text-xl font-bold",
|
|
108
115
|
inputId: "documentName",
|
|
109
|
-
modelValue:
|
|
116
|
+
modelValue: m.value,
|
|
110
117
|
"onUpdate:modelValue": e[1] || (e[1] = (r) => a.eventBus.emit("document:update:info", { title: r }))
|
|
111
118
|
}, null, 8, ["modelValue"])
|
|
112
119
|
])
|
|
113
|
-
], 8,
|
|
114
|
-
o(
|
|
120
|
+
], 8, z),
|
|
121
|
+
o(B, { type: "document" }),
|
|
115
122
|
t("div", $, [
|
|
116
|
-
o(
|
|
117
|
-
default:
|
|
118
|
-
(u(),
|
|
123
|
+
o(s(_), null, {
|
|
124
|
+
default: l(({ Component: r }) => [
|
|
125
|
+
(u(), f(h(r), k(n, { collectionType: "document" }), null, 16))
|
|
119
126
|
]),
|
|
120
127
|
_: 1
|
|
121
128
|
})
|
|
122
129
|
])
|
|
123
|
-
])) : (u(),
|
|
130
|
+
])) : (u(), c("div", j, [...e[5] || (e[5] = [
|
|
124
131
|
t("div", { class: "flex h-full flex-col items-center justify-center" }, [
|
|
125
132
|
t("h1", { class: "text-2xl font-bold" }, "Document not found"),
|
|
126
133
|
t("p", { class: "text-gray-500" }, " The document you are looking for does not exist. ")
|
|
@@ -130,5 +137,5 @@ const I = { class: "custom-scroll h-full" }, N = {
|
|
|
130
137
|
}
|
|
131
138
|
});
|
|
132
139
|
export {
|
|
133
|
-
|
|
140
|
+
H as default
|
|
134
141
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LoaderPlugin } from '@scalar/json-magic/bundle';
|
|
1
2
|
import { type WorkspaceStore } from '@scalar/workspace-store/client';
|
|
2
3
|
import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
|
|
3
4
|
/**
|
|
@@ -17,12 +18,25 @@ import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
|
|
|
17
18
|
* @back="handleBack"
|
|
18
19
|
* @open-command="handleOpenCommand"
|
|
19
20
|
* />
|
|
21
|
+
*
|
|
22
|
+
* @example Custom file upload button
|
|
23
|
+
* <CommandPaletteImport
|
|
24
|
+
* :workspaceStore="workspaceStore"
|
|
25
|
+
* @close="handleClose">
|
|
26
|
+
* <template #fileUpload="{ import: importDocument }">
|
|
27
|
+
* <button @click="() => importDocument(source, 'file')">
|
|
28
|
+
* Custom Upload
|
|
29
|
+
* </button>
|
|
30
|
+
* </template>
|
|
31
|
+
* </CommandPaletteImport>
|
|
20
32
|
*/
|
|
21
|
-
declare const _default: import("vue").DefineComponent<{
|
|
33
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
22
34
|
/** The workspace store for adding documents */
|
|
23
35
|
workspaceStore: WorkspaceStore;
|
|
24
36
|
/** Event bus for emitting operation creation events */
|
|
25
37
|
eventBus: WorkspaceEventBus;
|
|
38
|
+
/** Loader plugin for file import */
|
|
39
|
+
fileLoader?: LoaderPlugin;
|
|
26
40
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
27
41
|
close: () => any;
|
|
28
42
|
back: (keyboardEvent: KeyboardEvent) => any;
|
|
@@ -31,9 +45,22 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
31
45
|
workspaceStore: WorkspaceStore;
|
|
32
46
|
/** Event bus for emitting operation creation events */
|
|
33
47
|
eventBus: WorkspaceEventBus;
|
|
48
|
+
/** Loader plugin for file import */
|
|
49
|
+
fileLoader?: LoaderPlugin;
|
|
34
50
|
}> & Readonly<{
|
|
35
51
|
onClose?: (() => any) | undefined;
|
|
36
52
|
onBack?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
|
|
37
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any
|
|
53
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
54
|
+
/** Slot for custom file upload component that can trigger import */
|
|
55
|
+
fileUpload(props: {
|
|
56
|
+
/** Function to trigger import with source content and type */
|
|
57
|
+
import: (source: string, type: "file" | "raw") => Promise<void>;
|
|
58
|
+
}): void;
|
|
59
|
+
}>;
|
|
38
60
|
export default _default;
|
|
61
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
62
|
+
new (): {
|
|
63
|
+
$slots: S;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
39
66
|
//# sourceMappingURL=CommandPaletteImport.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPaletteImport.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteImport.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommandPaletteImport.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteImport.vue"],"names":[],"mappings":"AAyXA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAoBvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;IAGD,+CAA+C;oBAC/B,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,oCAAoC;iBACvB,YAAY;;;;;IALzB,+CAA+C;oBAC/B,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,oCAAoC;iBACvB,YAAY;;;;;IAazB,oEAAoE;sBAClD;QAChB,8DAA8D;QAC9D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAChE,GAAG,IAAI;;AAxBV,wBA2eC;AAOD,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|