@scalar/api-client 2.27.1 → 2.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/dist/components/ViewLayout/ViewLayoutSection.vue.d.ts.map +1 -1
  3. package/dist/components/ViewLayout/ViewLayoutSection.vue.js +1 -1
  4. package/dist/libs/local-storage.js +3 -3
  5. package/dist/style.css +1 -1
  6. package/dist/v2/blocks/request-block/RequestBlock.vue.js +1 -1
  7. package/dist/v2/blocks/request-block/RequestBlock.vue2.js +21 -21
  8. package/dist/v2/blocks/request-block/components/RequestBody.vue.d.ts.map +1 -1
  9. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +2 -2
  10. package/dist/v2/blocks/request-block/components/RequestBody.vue2.js +67 -75
  11. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +2 -0
  12. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts.map +1 -1
  13. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts +2 -0
  14. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts.map +1 -1
  15. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +1 -1
  16. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
  17. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +20 -19
  18. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +2 -0
  19. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts.map +1 -1
  20. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +42 -40
  21. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts.map +1 -1
  22. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +5 -5
  23. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.d.ts +3 -1
  24. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.d.ts.map +1 -1
  25. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.js +35 -35
  26. package/dist/v2/components/code-input/CodeInput.vue.d.ts.map +1 -1
  27. package/dist/v2/components/code-input/CodeInput.vue.js +2 -2
  28. package/dist/v2/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  29. package/dist/v2/components/sidebar/Sidebar.vue.js +1 -1
  30. package/dist/v2/features/app/App.vue.d.ts.map +1 -1
  31. package/dist/v2/features/app/App.vue.js +70 -70
  32. package/dist/v2/features/app/app-events.d.ts +2 -1
  33. package/dist/v2/features/app/app-events.d.ts.map +1 -1
  34. package/dist/v2/features/app/app-events.js +89 -64
  35. package/dist/v2/features/app/app-state.d.ts +4 -2
  36. package/dist/v2/features/app/app-state.d.ts.map +1 -1
  37. package/dist/v2/features/app/app-state.js +185 -156
  38. package/dist/v2/features/app/components/AppSidebar.vue.d.ts.map +1 -1
  39. package/dist/v2/features/app/components/AppSidebar.vue.js +1 -1
  40. package/dist/v2/features/app/components/AppSidebar.vue2.js +48 -47
  41. package/dist/v2/features/app/components/DesktopTabs.vue.d.ts.map +1 -1
  42. package/dist/v2/features/app/components/DesktopTabs.vue.js +4 -4
  43. package/dist/v2/features/app/components/DownloadAppButton.vue.d.ts.map +1 -1
  44. package/dist/v2/features/app/components/DownloadAppButton.vue.js +1 -1
  45. package/dist/v2/features/app/components/DownloadAppButton.vue2.js +9 -9
  46. package/dist/v2/features/app/components/SidebarItemMenu.vue.d.ts.map +1 -1
  47. package/dist/v2/features/app/components/SidebarItemMenu.vue.js +71 -43
  48. package/dist/v2/features/app/helpers/routes.js +11 -11
  49. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -6
  50. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts.map +1 -1
  51. package/dist/v2/features/collection/WorkspaceCollection.vue.js +38 -20
  52. package/dist/v2/features/collection/components/Authentication.vue.d.ts.map +1 -1
  53. package/dist/v2/features/collection/components/Authentication.vue.js +2 -2
  54. package/dist/v2/features/collection/components/Authentication.vue2.js +20 -16
  55. package/dist/v2/features/collection/components/LabelInput.vue.d.ts +3 -0
  56. package/dist/v2/features/collection/components/LabelInput.vue.d.ts.map +1 -1
  57. package/dist/v2/features/collection/components/LabelInput.vue.js +2 -2
  58. package/dist/v2/features/collection/components/LabelInput.vue2.js +20 -16
  59. package/dist/v2/features/collection/components/Settings.vue.d.ts.map +1 -1
  60. package/dist/v2/features/collection/components/Settings.vue.js +18 -14
  61. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.d.ts +7 -2
  62. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.d.ts.map +1 -1
  63. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +70 -71
  64. package/dist/v2/features/command-palette/components/{CommandPaletteDocument.vue.d.ts → CommandPaletteOpenApiDocument.vue.d.ts} +3 -3
  65. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.d.ts.map +1 -0
  66. package/dist/v2/features/command-palette/components/{CommandPaletteDocument.vue.js → CommandPaletteOpenApiDocument.vue.js} +15 -15
  67. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue2.js +4 -0
  68. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.d.ts +2 -2
  69. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.d.ts.map +1 -1
  70. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +10 -10
  71. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.d.ts +27 -5
  72. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.d.ts.map +1 -1
  73. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +80 -53
  74. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +34 -9
  75. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
  76. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +50 -44
  77. package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
  78. package/dist/v2/features/operation/Operation.vue.js +19 -15
  79. package/dist/v2/helpers/get-active-proxy-url.d.ts +18 -0
  80. package/dist/v2/helpers/get-active-proxy-url.d.ts.map +1 -0
  81. package/dist/v2/helpers/get-active-proxy-url.js +5 -0
  82. package/dist/v2/workspace-events.d.ts.map +1 -1
  83. package/dist/v2/workspace-events.js +123 -113
  84. package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +1 -1
  85. package/package.json +18 -18
  86. package/dist/v2/features/command-palette/components/CommandPaletteDocument.vue.d.ts.map +0 -1
  87. package/dist/v2/features/command-palette/components/CommandPaletteDocument.vue2.js +0 -4
@@ -1,25 +1,25 @@
1
- import { defineComponent as k, ref as i, computed as d, createBlock as V, openBlock as x, withCtx as t, createVNode as n, createTextVNode as B, unref as f } from "vue";
1
+ import { defineComponent as k, ref as i, computed as d, createBlock as V, openBlock as x, withCtx as t, createVNode as u, createTextVNode as B, unref as p } from "vue";
2
2
  import { ScalarButton as D } from "@scalar/components";
3
3
  import { LibraryIcon as N } from "@scalar/icons/library";
4
4
  import { useRouter as S } from "vue-router";
5
5
  import w from "../../../../components/IconSelector.vue.js";
6
6
  import C from "./CommandActionForm.vue.js";
7
7
  import $ from "./CommandActionInput.vue.js";
8
- const y = {}, L = /* @__PURE__ */ k({
8
+ const y = {}, A = /* @__PURE__ */ k({
9
9
  ...y,
10
- __name: "CommandPaletteDocument",
10
+ __name: "CommandPaletteOpenApiDocument",
11
11
  props: {
12
12
  workspaceStore: {},
13
13
  eventBus: {}
14
14
  },
15
15
  emits: ["close", "back"],
16
- setup(l, { emit: p }) {
17
- const c = p, v = S(), m = i(""), o = d(() => m.value.trim()), a = i("interface-content-folder"), s = d(() => !o.value || l.workspaceStore.workspace.documents[o.value] !== void 0), b = () => {
16
+ setup(l, { emit: f }) {
17
+ const c = f, v = S(), m = i(""), o = d(() => m.value.trim()), a = i("interface-content-folder"), s = d(() => !o.value || l.workspaceStore.workspace.documents[o.value] !== void 0), b = () => {
18
18
  s.value || (l.eventBus.emit("document:create:empty-document", {
19
19
  name: o.value,
20
20
  icon: a.value,
21
- callback: (u) => {
22
- u && v.push({
21
+ callback: (n) => {
22
+ n && v.push({
23
23
  name: "document.overview",
24
24
  params: {
25
25
  documentSlug: o.value
@@ -27,26 +27,26 @@ const y = {}, L = /* @__PURE__ */ k({
27
27
  });
28
28
  }
29
29
  }), c("close"));
30
- }, _ = (u) => {
31
- c("back", u);
30
+ }, _ = (n) => {
31
+ c("back", n);
32
32
  };
33
- return (u, e) => (x(), V(C, {
33
+ return (n, e) => (x(), V(C, {
34
34
  disabled: s.value,
35
35
  onSubmit: b
36
36
  }, {
37
37
  options: t(() => [
38
- n(w, {
38
+ u(w, {
39
39
  modelValue: a.value,
40
40
  "onUpdate:modelValue": e[1] || (e[1] = (r) => a.value = r),
41
41
  placement: "bottom-start"
42
42
  }, {
43
43
  default: t(() => [
44
- n(f(D), {
44
+ u(p(D), {
45
45
  class: "aspect-square h-auto px-0",
46
46
  variant: "outlined"
47
47
  }, {
48
48
  default: t(() => [
49
- n(f(N), {
49
+ u(p(N), {
50
50
  class: "text-c-2 size-4 stroke-[1.75]",
51
51
  src: a.value
52
52
  }, null, 8, ["src"])
@@ -61,7 +61,7 @@ const y = {}, L = /* @__PURE__ */ k({
61
61
  B("Create Document", -1)
62
62
  ])]),
63
63
  default: t(() => [
64
- n($, {
64
+ u($, {
65
65
  modelValue: m.value,
66
66
  "onUpdate:modelValue": e[0] || (e[0] = (r) => m.value = r),
67
67
  label: "Document Name",
@@ -74,5 +74,5 @@ const y = {}, L = /* @__PURE__ */ k({
74
74
  }
75
75
  });
76
76
  export {
77
- L as default
77
+ A as default
78
78
  };
@@ -0,0 +1,4 @@
1
+ import f from "./CommandPaletteOpenApiDocument.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -26,7 +26,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
26
26
  /** Event bus for emitting operation creation events */
27
27
  eventBus: WorkspaceEventBus;
28
28
  /** Preselected document id to create the request in */
29
- documentId?: string;
29
+ documentName?: string;
30
30
  /** Preselected tag id to add the request to (optional) */
31
31
  tagId?: string;
32
32
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
@@ -38,7 +38,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
38
38
  /** Event bus for emitting operation creation events */
39
39
  eventBus: WorkspaceEventBus;
40
40
  /** Preselected document id to create the request in */
41
- documentId?: string;
41
+ documentName?: string;
42
42
  /** Preselected tag id to add the request to (optional) */
43
43
  tagId?: string;
44
44
  }> & Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPaletteRequest.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteRequest.vue"],"names":[],"mappings":"AA+WA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAUvE;;;;;;;;;;;;;;;;;GAiBG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAEhB,iEAAiE;oBACjD,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,uDAAuD;iBAC1C,MAAM;IACnB,0DAA0D;YAClD,MAAM;;;;;IAPd,iEAAiE;oBACjD,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,uDAAuD;iBAC1C,MAAM;IACnB,0DAA0D;YAClD,MAAM;;;;kFAslBZ,CAAC"}
1
+ {"version":3,"file":"CommandPaletteRequest.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteRequest.vue"],"names":[],"mappings":"AA+WA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAUvE;;;;;;;;;;;;;;;;;GAiBG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAEhB,iEAAiE;oBACjD,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,uDAAuD;mBACxC,MAAM;IACrB,0DAA0D;YAClD,MAAM;;;;;IAPd,iEAAiE;oBACjD,cAAc;IAC9B,uDAAuD;cAC7C,iBAAiB;IAC3B,uDAAuD;mBACxC,MAAM;IACrB,0DAA0D;YAClD,MAAM;;;;kFAslBZ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as U, ref as p, computed as v, watch as O, createBlock as h, openBlock as m, withCtx as o, createVNode as s, createTextVNode as H, createElementVNode as r, unref as n, normalizeClass as T, toDisplayString as w, createCommentVNode as L, createElementBlock as V, Fragment as _, renderList as I } from "vue";
1
+ import { defineComponent as U, ref as p, computed as v, watch as O, createBlock as h, openBlock as m, withCtx as o, createVNode as s, createTextVNode as H, createElementVNode as r, unref as n, normalizeClass as N, toDisplayString as w, createCommentVNode as L, createElementBlock as T, Fragment as V, renderList as _ } from "vue";
2
2
  import { ScalarListbox as W, ScalarButton as k, ScalarIcon as S, ScalarDropdown as y, ScalarDropdownItem as z } from "@scalar/components";
3
3
  import { HTTP_METHODS as F } from "@scalar/helpers/http/http-methods";
4
4
  import { useRouter as A } from "vue-router";
@@ -12,12 +12,12 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
12
12
  props: {
13
13
  workspaceStore: {},
14
14
  eventBus: {},
15
- documentId: {},
15
+ documentName: {},
16
16
  tagId: {}
17
17
  },
18
18
  emits: ["close", "back"],
19
- setup(u, { emit: N }) {
20
- const g = N, $ = A(), b = p("/"), c = v(() => b.value.trim()), x = v(
19
+ setup(u, { emit: $ }) {
20
+ const g = $, I = A(), b = p("/"), c = v(() => b.value.trim()), x = v(
21
21
  () => Object.entries(u.workspaceStore.workspace.documents).map(
22
22
  ([e, a]) => ({
23
23
  id: e,
@@ -29,7 +29,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
29
29
  label: e.toUpperCase(),
30
30
  method: e
31
31
  })), t = p(
32
- u.documentId ? x.value.find((e) => e.id === u.documentId) : x.value[0] ?? void 0
32
+ u.documentName ? x.value.find((e) => e.id === u.documentName) : x.value[0] ?? void 0
33
33
  ), i = p(
34
34
  C.find((e) => e.method === "get")
35
35
  ), f = v(() => {
@@ -70,7 +70,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
70
70
  if (a) {
71
71
  u.workspaceStore.buildSidebar(t.value?.id ?? "");
72
72
  const l = c.value.startsWith("/") ? c.value : `/${c.value}`;
73
- $.push({
73
+ I.push({
74
74
  name: "example",
75
75
  params: {
76
76
  documentSlug: t.value?.id,
@@ -103,7 +103,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
103
103
  }, {
104
104
  default: o(() => [
105
105
  r("span", {
106
- class: T(t.value ? "text-c-1 truncate" : "text-c-3")
106
+ class: N(t.value ? "text-c-1 truncate" : "text-c-3")
107
107
  }, w(t.value ? t.value.label : "Select Document"), 3),
108
108
  s(n(S), {
109
109
  class: "text-c-3",
@@ -122,7 +122,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
122
122
  }, {
123
123
  items: o(() => [
124
124
  r("div", X, [
125
- (m(!0), V(_, null, I(n(C), (l) => (m(), h(n(z), {
125
+ (m(!0), T(V, null, _(n(C), (l) => (m(), h(n(z), {
126
126
  key: l.id,
127
127
  class: "flex h-7 w-full items-center justify-center px-1",
128
128
  onClick: (M) => j(l)
@@ -165,7 +165,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
165
165
  }, {
166
166
  items: o(() => [
167
167
  r("div", Y, [
168
- (m(!0), V(_, null, I(f.value, (l) => (m(), h(n(z), {
168
+ (m(!0), T(V, null, _(f.value, (l) => (m(), h(n(z), {
169
169
  key: l.id,
170
170
  class: "flex h-7 w-full items-center px-1",
171
171
  onClick: (M) => q(l)
@@ -185,7 +185,7 @@ const K = { class: "flex flex-1 gap-1" }, Q = { class: "flex items-center gap-2"
185
185
  }, {
186
186
  default: o(() => [
187
187
  r("span", {
188
- class: T(d.value ? "text-c-1 truncate" : "text-c-3")
188
+ class: N(d.value ? "text-c-1 truncate" : "text-c-3")
189
189
  }, w(d.value ? d.value.label : "Select Tag (Optional)"), 3),
190
190
  s(n(S), {
191
191
  class: "text-c-3",
@@ -1,21 +1,39 @@
1
1
  import type { WorkspaceStore } from '@scalar/workspace-store/client';
2
2
  import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
3
+ import type { TraversedTag } from '@scalar/workspace-store/schemas/navigation';
3
4
  /**
4
5
  * Command Palette Tag Component
5
6
  *
6
- * Provides a form for creating a new tag in a document (collection).
7
+ * Provides a form for creating or editing a tag in a document (collection).
7
8
  * Tags are used to organize and group related API operations.
8
9
  *
9
- * Validates that the tag name does not already exist in the selected document
10
- * to prevent duplicates.
10
+ * When `tag` is provided, the component enters edit mode where:
11
+ * - The name input is pre-filled with the current tag name
12
+ * - The collection selector is hidden (tag already belongs to a document)
13
+ * - A cancel button is shown to close the modal without saving
14
+ * - Back navigation is disabled (cannot go back with backspace)
15
+ * - Submitting emits an 'edit' event instead of creating a new tag
16
+ *
17
+ * In create mode, validates that the tag name does not already exist
18
+ * in the selected document to prevent duplicates.
11
19
  *
12
20
  * @example
21
+ * // Create mode
13
22
  * <CommandPaletteTag
14
23
  * :workspaceStore="workspaceStore"
15
24
  * :eventBus="eventBus"
16
25
  * @close="handleClose"
17
26
  * @back="handleBack"
18
27
  * />
28
+ *
29
+ * // Edit mode
30
+ * <CommandPaletteTag
31
+ * :workspaceStore="workspaceStore"
32
+ * :eventBus="eventBus"
33
+ * :tag="tag"
34
+ * @close="handleClose"
35
+ * @edit="handleEdit"
36
+ * />
19
37
  */
20
38
  declare const _default: typeof __VLS_export;
21
39
  export default _default;
@@ -25,7 +43,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
25
43
  /** Event bus for emitting tag creation events */
26
44
  eventBus: WorkspaceEventBus;
27
45
  /** Preselected document id to create the tag in */
28
- documentId?: string;
46
+ documentName?: string;
47
+ /** When provided, the component enters edit mode with this name pre-filled */
48
+ tag?: TraversedTag;
29
49
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
30
50
  close: () => any;
31
51
  back: (keyboardEvent: KeyboardEvent) => any;
@@ -35,7 +55,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
35
55
  /** Event bus for emitting tag creation events */
36
56
  eventBus: WorkspaceEventBus;
37
57
  /** Preselected document id to create the tag in */
38
- documentId?: string;
58
+ documentName?: string;
59
+ /** When provided, the component enters edit mode with this name pre-filled */
60
+ tag?: TraversedTag;
39
61
  }> & Readonly<{
40
62
  onClose?: (() => any) | undefined;
41
63
  onBack?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPaletteTag.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteTag.vue"],"names":[],"mappings":"AA4JA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAOvE;;;;;;;;;;;;;;;;GAgBG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAEhB,2DAA2D;oBAC3C,cAAc;IAC9B,iDAAiD;cACvC,iBAAiB;IAC3B,mDAAmD;iBACtC,MAAM;;;;;IALnB,2DAA2D;oBAC3C,cAAc;IAC9B,iDAAiD;cACvC,iBAAiB;IAC3B,mDAAmD;iBACtC,MAAM;;;;kFAmOjB,CAAC"}
1
+ {"version":3,"file":"CommandPaletteTag.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/components/CommandPaletteTag.vue"],"names":[],"mappings":"AA4NA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAO9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAEhB,2DAA2D;oBAC3C,cAAc;IAC9B,iDAAiD;cACvC,iBAAiB;IAC3B,mDAAmD;mBACpC,MAAM;IACrB,8EAA8E;UACxE,YAAY;;;;;IAPlB,2DAA2D;oBAC3C,cAAc;IAC9B,iDAAiD;cACvC,iBAAiB;IAC3B,mDAAmD;mBACpC,MAAM;IACrB,8EAA8E;UACxE,YAAY;;;;kFAsShB,CAAC"}
@@ -1,60 +1,76 @@
1
- import { defineComponent as g, ref as f, computed as i, createBlock as k, openBlock as S, withCtx as l, createVNode as n, createTextVNode as w, unref as c, createElementVNode as V, normalizeClass as C, toDisplayString as B } from "vue";
2
- import { ScalarListbox as D, ScalarButton as N, ScalarIcon as T } from "@scalar/components";
3
- import I from "./CommandActionForm.vue.js";
4
- import h from "./CommandActionInput.vue.js";
5
- const j = {
1
+ import { defineComponent as D, computed as i, ref as x, createBlock as v, openBlock as f, withCtx as o, createVNode as g, createTextVNode as k, toDisplayString as N, createCommentVNode as C, unref as c, createElementVNode as T, normalizeClass as y } from "vue";
2
+ import { ScalarListbox as h, ScalarButton as S, ScalarIcon as U } from "@scalar/components";
3
+ import j from "./CommandActionForm.vue.js";
4
+ import z from "./CommandActionInput.vue.js";
5
+ const E = {
6
6
  name: "CommandPaletteTag"
7
- }, E = /* @__PURE__ */ g({
8
- ...j,
7
+ }, M = /* @__PURE__ */ D({
8
+ ...E,
9
9
  props: {
10
10
  workspaceStore: {},
11
11
  eventBus: {},
12
- documentId: {}
12
+ documentName: {},
13
+ tag: {}
13
14
  },
14
15
  emits: ["close", "back"],
15
- setup(o, { emit: p }) {
16
- const d = p, u = f(""), m = i(() => u.value.trim()), s = i(
17
- () => Object.entries(o.workspaceStore.workspace.documents).map(
18
- ([e, t]) => ({
19
- id: e,
20
- label: t.info.title || e
16
+ setup(e, { emit: p }) {
17
+ const m = p, n = i(() => e.tag !== void 0), s = x(e.tag?.name ?? ""), u = i(() => s.value.trim()), r = i(
18
+ () => Object.entries(e.workspaceStore.workspace.documents).map(
19
+ ([a, l]) => ({
20
+ id: a,
21
+ label: l.info.title || a
21
22
  })
22
23
  )
23
- ), a = f(
24
- o.documentId ? s.value.find((e) => e.id === o.documentId) : s.value[0] ?? void 0
25
- ), v = i(() => {
26
- if (!m.value || !a.value)
27
- return !0;
28
- const e = o.workspaceStore.workspace.documents[a.value.id];
29
- return !!(!e || e.tags?.some((t) => t.name === m.value));
30
- }), b = () => {
31
- v.value || !a.value || (o.eventBus.emit("tag:create:tag", {
32
- name: m.value,
33
- documentName: a.value.id
34
- }), d("close"));
35
- }, x = (e) => {
36
- d("back", e);
24
+ ), t = x(
25
+ e.documentName ? r.value.find((a) => a.id === e.documentName) : r.value[0] ?? void 0
26
+ ), b = i(() => {
27
+ const a = e.workspaceStore.workspace.documents[t.value?.id ?? ""];
28
+ return !!(!u.value || !t.value || !a || n.value && u.value === e.tag?.name || a.tags?.some((l) => l.name === u.value));
29
+ }), w = () => {
30
+ if (!(b.value || !t.value)) {
31
+ if (n.value && e.tag) {
32
+ e.eventBus.emit(
33
+ "tag:edit:tag",
34
+ {
35
+ tag: e.tag,
36
+ documentName: t.value.id,
37
+ newName: u.value
38
+ },
39
+ { skipUnpackProxy: !0 }
40
+ ), m("close");
41
+ return;
42
+ }
43
+ e.eventBus.emit("tag:create:tag", {
44
+ name: u.value,
45
+ documentName: t.value.id
46
+ }), m("close");
47
+ }
48
+ }, V = (a) => {
49
+ n.value || m("back", a);
50
+ }, B = () => {
51
+ m("close");
37
52
  };
38
- return (e, t) => (S(), k(I, {
39
- disabled: v.value,
40
- onSubmit: b
53
+ return (a, l) => (f(), v(j, {
54
+ disabled: b.value,
55
+ onSubmit: w
41
56
  }, {
42
- options: l(() => [
43
- n(c(D), {
44
- modelValue: a.value,
45
- "onUpdate:modelValue": t[1] || (t[1] = (r) => a.value = r),
46
- options: s.value
57
+ options: o(() => [
58
+ n.value ? C("", !0) : (f(), v(c(h), {
59
+ key: 0,
60
+ modelValue: t.value,
61
+ "onUpdate:modelValue": l[1] || (l[1] = (d) => t.value = d),
62
+ options: r.value
47
63
  }, {
48
- default: l(() => [
49
- n(c(N), {
64
+ default: o(() => [
65
+ g(c(S), {
50
66
  class: "hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs",
51
67
  variant: "outlined"
52
68
  }, {
53
- default: l(() => [
54
- V("span", {
55
- class: C(a.value ? "text-c-1" : "text-c-3")
56
- }, B(a.value ? a.value.label : "Select Collection"), 3),
57
- n(c(T), {
69
+ default: o(() => [
70
+ T("span", {
71
+ class: y(t.value ? "text-c-1" : "text-c-3")
72
+ }, N(t.value ? t.value.label : "Select Collection"), 3),
73
+ g(c(U), {
58
74
  class: "text-c-3",
59
75
  icon: "ChevronDown",
60
76
  size: "md"
@@ -64,18 +80,29 @@ const j = {
64
80
  })
65
81
  ]),
66
82
  _: 1
67
- }, 8, ["modelValue", "options"])
83
+ }, 8, ["modelValue", "options"])),
84
+ n.value ? (f(), v(c(S), {
85
+ key: 1,
86
+ class: "max-h-8 px-3 text-xs",
87
+ variant: "outlined",
88
+ onClick: B
89
+ }, {
90
+ default: o(() => [...l[2] || (l[2] = [
91
+ k(" Cancel ", -1)
92
+ ])]),
93
+ _: 1
94
+ })) : C("", !0)
95
+ ]),
96
+ submit: o(() => [
97
+ k(N(n.value ? "Save" : "Create Tag"), 1)
68
98
  ]),
69
- submit: l(() => [...t[2] || (t[2] = [
70
- w("Create Tag", -1)
71
- ])]),
72
- default: l(() => [
73
- n(h, {
74
- modelValue: u.value,
75
- "onUpdate:modelValue": t[0] || (t[0] = (r) => u.value = r),
99
+ default: o(() => [
100
+ g(z, {
101
+ modelValue: s.value,
102
+ "onUpdate:modelValue": l[0] || (l[0] = (d) => s.value = d),
76
103
  label: "Tag Name",
77
104
  placeholder: "Tag Name",
78
- onDelete: x
105
+ onDelete: V
79
106
  }, null, 8, ["modelValue"])
80
107
  ]),
81
108
  _: 1
@@ -83,5 +110,5 @@ const j = {
83
110
  }
84
111
  });
85
112
  export {
86
- E as default
113
+ M as default
87
114
  };
@@ -86,7 +86,7 @@ export type CommandPaletteState = {
86
86
  * palette.open()
87
87
  *
88
88
  * // Open with a specific command
89
- * palette.open('create-document')
89
+ * palette.open('create-openapi-document')
90
90
  *
91
91
  * // Open with command props
92
92
  * palette.open('import-curl-command', { curl: 'curl https://api.example.com' })
@@ -177,8 +177,8 @@ export declare const baseClientActions: [{
177
177
  };
178
178
  });
179
179
  }, {
180
- readonly id: "create-document";
181
- readonly name: "Create Document";
180
+ readonly id: "create-openapi-document";
181
+ readonly name: "Create OpenAPI Document";
182
182
  readonly component: import("vue").DefineComponent<{
183
183
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
184
184
  eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
@@ -215,14 +215,16 @@ export declare const baseClientActions: [{
215
215
  readonly component: import("vue").DefineComponent<{
216
216
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
217
217
  eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
218
- documentId?: string;
218
+ documentName?: string;
219
+ tag?: import("@scalar/workspace-store/schemas/navigation").TraversedTag;
219
220
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
220
221
  close: () => any;
221
222
  back: (keyboardEvent: KeyboardEvent) => any;
222
223
  }, string, import("vue").PublicProps, Readonly<{
223
224
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
224
225
  eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
225
- documentId?: string;
226
+ documentName?: string;
227
+ tag?: import("@scalar/workspace-store/schemas/navigation").TraversedTag;
226
228
  }> & Readonly<{
227
229
  onClose?: (() => any) | undefined;
228
230
  onBack?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
@@ -250,7 +252,7 @@ export declare const baseClientActions: [{
250
252
  readonly component: import("vue").DefineComponent<{
251
253
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
252
254
  eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
253
- documentId?: string;
255
+ documentName?: string;
254
256
  tagId?: string;
255
257
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
256
258
  close: () => any;
@@ -258,7 +260,7 @@ export declare const baseClientActions: [{
258
260
  }, string, import("vue").PublicProps, Readonly<{
259
261
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
260
262
  eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
261
- documentId?: string;
263
+ documentName?: string;
262
264
  tagId?: string;
263
265
  }> & Readonly<{
264
266
  onClose?: (() => any) | undefined;
@@ -286,14 +288,16 @@ export declare const baseClientActions: [{
286
288
  readonly name: "Add Example";
287
289
  readonly component: import("vue").DefineComponent<{
288
290
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
289
- documentId?: string;
291
+ eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
292
+ documentName?: string;
290
293
  operationId?: string;
291
294
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
292
295
  close: () => any;
293
296
  back: (keyboardEvent: KeyboardEvent) => any;
294
297
  }, string, import("vue").PublicProps, Readonly<{
295
298
  workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
296
- documentId?: string;
299
+ eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
300
+ documentName?: string;
297
301
  operationId?: string;
298
302
  }> & Readonly<{
299
303
  onClose?: (() => any) | undefined;
@@ -335,6 +339,27 @@ export declare const baseClientActions: [{
335
339
  onClose?: (() => any) | undefined;
336
340
  onBack?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
337
341
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
342
+ }, {
343
+ readonly id: "edit-tag";
344
+ readonly name: "Edit Tag";
345
+ readonly hidden: true;
346
+ readonly component: import("vue").DefineComponent<{
347
+ workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
348
+ eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
349
+ documentName?: string;
350
+ tag?: import("@scalar/workspace-store/schemas/navigation").TraversedTag;
351
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
352
+ close: () => any;
353
+ back: (keyboardEvent: KeyboardEvent) => any;
354
+ }, string, import("vue").PublicProps, Readonly<{
355
+ workspaceStore: import("@scalar/workspace-store/client").WorkspaceStore;
356
+ eventBus: import("@scalar/workspace-store/events").WorkspaceEventBus;
357
+ documentName?: string;
358
+ tag?: import("@scalar/workspace-store/schemas/navigation").TraversedTag;
359
+ }> & Readonly<{
360
+ onClose?: (() => any) | undefined;
361
+ onBack?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
362
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
338
363
  }];
339
364
  export {};
340
365
  //# sourceMappingURL=use-command-palette-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-command-palette-state.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/hooks/use-command-palette-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-command-palette-state.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/command-palette/hooks/use-command-palette-state.ts"],"names":[],"mappings":"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"}