@scalar/api-client 0.1.21 → 0.2.1

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 (66) hide show
  1. package/dist/components/ApiClient/Request/RequestBody.vue.d.ts +0 -6
  2. package/dist/components/ApiClient/Request/RequestBody.vue.d.ts.map +1 -1
  3. package/dist/components/ApiClient/Response/ResponseHeaders.vue.d.ts.map +1 -1
  4. package/dist/components/CodeMirror/CodeMirror.vue.d.ts.map +1 -1
  5. package/dist/components/SimpleTable/SimpleCell.vue.d.ts.map +1 -1
  6. package/dist/components/SimpleTable/SimpleHeader.vue.d.ts.map +1 -1
  7. package/dist/components/SimpleTable/SimpleRow.vue.d.ts.map +1 -1
  8. package/dist/components/SimpleTable/SimpleTable.vue.d.ts.map +1 -1
  9. package/dist/fixtures/index.d.ts +1 -1
  10. package/dist/fixtures/index.d.ts.map +1 -1
  11. package/dist/helpers/sendRequest.d.ts.map +1 -1
  12. package/dist/index.js +98 -60
  13. package/package.json +7 -9
  14. package/src/components/ApiClient/AddressBar.vue +462 -0
  15. package/src/components/ApiClient/ApiClient.vue +266 -0
  16. package/src/components/ApiClient/Request/Request.vue +271 -0
  17. package/src/components/ApiClient/Request/RequestAuth.vue +221 -0
  18. package/src/components/ApiClient/Request/RequestBody.vue +39 -0
  19. package/src/components/ApiClient/Request/RequestHeaders.vue +24 -0
  20. package/src/components/ApiClient/Request/RequestQuery.vue +25 -0
  21. package/src/components/ApiClient/Request/RequestVariables.vue +25 -0
  22. package/src/components/ApiClient/Request/index.ts +1 -0
  23. package/src/components/ApiClient/RequestHistory.vue +114 -0
  24. package/src/components/ApiClient/RequestHistoryItem.vue +59 -0
  25. package/src/components/ApiClient/Response/Copilot.vue.bak +385 -0
  26. package/src/components/ApiClient/Response/Response.vue +120 -0
  27. package/src/components/ApiClient/Response/ResponseBody.vue +23 -0
  28. package/src/components/ApiClient/Response/ResponseHeaders.vue +52 -0
  29. package/src/components/ApiClient/Response/ResponseMetaInformation.vue +58 -0
  30. package/src/components/ApiClient/Response/index.ts +1 -0
  31. package/src/components/ApiClient/index.ts +1 -0
  32. package/src/components/CodeMirror/CodeMirror.vue +232 -0
  33. package/src/components/CodeMirror/extensions/variables.ts +41 -0
  34. package/src/components/CodeMirror/index.ts +1 -0
  35. package/src/components/CollapsibleSection/CollapsibleSection.vue +149 -0
  36. package/src/components/CollapsibleSection/index.ts +1 -0
  37. package/src/components/FlowModal.vue +133 -0
  38. package/src/components/Grid/Grid.vue +511 -0
  39. package/src/components/Grid/SimpleGrid.vue +33 -0
  40. package/src/components/Grid/index.ts +2 -0
  41. package/src/components/HelpfulLink.vue +19 -0
  42. package/src/components/SimpleTable/SimpleCell.vue +47 -0
  43. package/src/components/SimpleTable/SimpleHeader.vue +17 -0
  44. package/src/components/SimpleTable/SimpleRow.vue +14 -0
  45. package/src/components/SimpleTable/SimpleTable.vue +13 -0
  46. package/src/components/SimpleTable/index.ts +4 -0
  47. package/src/fixtures/httpHeaders.ts +530 -0
  48. package/src/fixtures/httpStatusCodes.ts +259 -0
  49. package/src/fixtures/index.ts +6 -0
  50. package/src/helpers/createPlaceholderRequest.ts +16 -0
  51. package/src/helpers/generateParameters.ts +19 -0
  52. package/src/helpers/generateRequest.ts +26 -0
  53. package/src/helpers/index.ts +5 -0
  54. package/src/helpers/mapFromArray.ts +16 -0
  55. package/src/helpers/sendRequest.ts +94 -0
  56. package/src/hooks/index.ts +2 -0
  57. package/src/hooks/useCopilot.ts +64 -0
  58. package/src/hooks/useOperation.test.ts +7 -0
  59. package/src/hooks/useOperation.ts +43 -0
  60. package/src/index.ts +9 -0
  61. package/src/stores/apiClientRequestStore.ts +103 -0
  62. package/src/stores/apiClientStore.ts +57 -0
  63. package/src/stores/index.ts +5 -0
  64. package/src/types.ts +181 -0
  65. package/dist/index2.js +0 -4
  66. package/dist/style.css +0 -1550
@@ -5,9 +5,6 @@ declare const _default: import("vue").DefineComponent<{
5
5
  formData: {
6
6
  type: import("vue").PropType<any[]>;
7
7
  };
8
- requestBody: {
9
- type: import("vue").PropType<any>;
10
- };
11
8
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
12
9
  body: {
13
10
  type: import("vue").PropType<string>;
@@ -15,9 +12,6 @@ declare const _default: import("vue").DefineComponent<{
15
12
  formData: {
16
13
  type: import("vue").PropType<any[]>;
17
14
  };
18
- requestBody: {
19
- type: import("vue").PropType<any>;
20
- };
21
15
  }>>, {}, {}>;
22
16
  export default _default;
23
17
  //# sourceMappingURL=RequestBody.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBody.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Request/RequestBody.vue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkIA,wBAAkD"}
1
+ {"version":3,"file":"RequestBody.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Request/RequestBody.vue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiIA,wBAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseHeaders.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseHeaders.vue.ts"],"names":[],"mappings":";;;;;;;;;;;AAwKA,wBAAkD"}
1
+ {"version":3,"file":"ResponseHeaders.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseHeaders.vue.ts"],"names":[],"mappings":";;;;;;;;;;;AAmLA,wBAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeMirror.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CodeMirror/CodeMirror.vue.ts"],"names":[],"mappings":"AA6DA,KAAK,QAAQ,GACT,OAAO,GACP,GAAG,GACH,SAAS,GACT,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,GAAG,GACH,MAAM,GACN,OAAO,GACP,OAAO,GACP,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+KT,wBAAkD"}
1
+ {"version":3,"file":"CodeMirror.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CodeMirror/CodeMirror.vue.ts"],"names":[],"mappings":"AA+EA,KAAK,QAAQ,GACT,OAAO,GACP,GAAG,GACH,SAAS,GACT,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,GAAG,GACH,MAAM,GACN,OAAO,GACP,OAAO,GACP,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4JT,wBAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleCell.vue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,wBAA8G;AAU9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"SimpleCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleCell.vue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,wBAA8G;AAU9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleHeader.vue.ts"],"names":[],"mappings":";;;AA8DA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"SimpleHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleHeader.vue.ts"],"names":[],"mappings":";;;AAgEA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleRow.vue.ts"],"names":[],"mappings":";;;AAwDA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"SimpleRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleRow.vue.ts"],"names":[],"mappings":";;;AA2DA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTable.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleTable.vue.ts"],"names":[],"mappings":";;;AAwDA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"SimpleTable.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleTable/SimpleTable.vue.ts"],"names":[],"mappings":";;;AA0DA,wBAA8G;AAE9G,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -1,3 +1,3 @@
1
- export { default as httpHeaders } from './httpHeaders';
1
+ export { httpHeaders, type HttpHeader } from './httpHeaders';
2
2
  export { default as httpStatusCodes, type HttpStatusCode, type HttpStatusCodes, } from './httpStatusCodes';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendRequest.d.ts","sourceRoot":"","sources":["../../src/helpers/sendRequest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EAGnB,aAAa,EACd,MAAM,UAAU,CAAA;AAUjB;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6D/B"}
1
+ {"version":3,"file":"sendRequest.d.ts","sourceRoot":"","sources":["../../src/helpers/sendRequest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EAEnB,aAAa,EACd,MAAM,UAAU,CAAA;AAcjB;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiE/B"}
package/dist/index.js CHANGED
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("/** Basics */\n.scalar-api-client__codemirror__wrapper {\n width: 100%;\n display: flex;\n align-items: stretch;\n}\n.scalar-api-client__codemirror {\n flex-grow: 1;\n max-width: 100%;\n}\n.scalar-api-client__codemirror.ͼw {\n background-color: var(--theme-background-1);\n}\n.scalar-api-client__codemirror--read-only.ͼw {\n background-color: var(--theme-background-2);\n}\n\n/** URL input */\n.scalar-api-client__url-input {\n font-weight: var(--theme-semibold);\n}\n.scalar-api-client__url-input .cm-scroller {\n padding-left: 6px;\n}\n.scalar-api-client__url-input .ͼ1 .cm-scroller {\n align-items: center !important;\n}\n.scalar-api-client__variable {\n color: var(--scalar-api-client-color);\n}\n\n.modal-layout[data-v-3f4ab567] {\n position: fixed;\n width: 100vw;\n height: 100vh;\n top: 0;\n left: 0;\n z-index: 1001;\n background: rgba(0, 0, 0, 0.44);\n padding: 20px;\n opacity: 0;\n animation: modal-fade-3f4ab567 0.2s forwards;\n}\n.modal-body[data-v-3f4ab567] {\n padding: 24px 12px 18px 24px;\n max-height: calc(100vh - 240px);\n background: var(--theme-background-1);\n border-radius: var(--theme-radius-lg);\n font-family: var(--theme-font);\n}\n.modal[data-v-3f4ab567] {\n margin: 80px auto 0;\n position: relative;\n background: var(--theme-background-2);\n border-radius: var(--theme-radius-lg);\n color: var(--theme-color-1);\n width: 100%;\n text-align: left;\n line-height: 1.4;\n opacity: 0;\n transform: scale(0.98);\n animation: modal-pop-3f4ab567 0.15s 0.15s forwards;\n display: flex;\n flex-direction: column;\n}\n.modal-content-large[data-v-3f4ab567] {\n max-width: 800px;\n}\n.modal-content-normal[data-v-3f4ab567] {\n max-width: 640px;\n}\n.modal-content-small[data-v-3f4ab567] {\n max-width: 480px;\n}\n@keyframes modal-fade-3f4ab567 {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n@keyframes modal-pop-3f4ab567 {\n0% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n transform: scale(1);\n}\n}\n.modal-header[data-v-3f4ab567] {\n padding: 12px 24px;\n color: var(--theme-color-1);\n font-size: var(--theme-font-size-4);\n text-align: left;\n font-weight: 600;\n border-radius: var(--theme-radius-lg) var(--theme-radius-lg) 0 0;\n}\n\n.navtable-mock {\n background-repeat: repeat;\n width: 100%;\n background-image: linear-gradient(\n 0deg,\n var(--theme-border-color) 1px,\n --theme-background-1 1px\n );\n background-size: 31px 31px;\n background-position: center 1px;\n flex: 1;\n position: relative;\n}\n.navtable-mock .navtable-item {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n background: transparent;\n border-top: none;\n}\n.radio {\n height: 16px;\n width: 16px;\n background: transparent;\n border: var(--border);\n flex-shrink: 0;\n margin-right: 6px;\n margin-left: 4px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n}\n.radio:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.navtable-item__active .radio:after {\n content: '';\n width: 5px;\n height: 8px;\n border: solid white;\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translate3d(-0.5px, -1px, 0);\n}\n.radio.post {\n background: var(--theme-post-color);\n}\n.radio.delete {\n background: var(--theme-delete-color);\n}\n.radio.patch {\n background: var(--theme-patch-color);\n}\n.radio.get {\n background: var(--theme-get-color);\n}\n.radio.put {\n background: var(--theme-put-color);\n}\n\n.scalar-api-client__address-bar {\n width: 100%;\n padding: 12px 12px 10px 12px;\n display: flex;\n align-items: center;\n position: relative;\n background: var(--theme-background-1);\n}\n.scalar-api-client__url-form {\n display: flex;\n width: 100%;\n align-items: stretch;\n border-radius: var(--theme-radius-lg);\n}\n.scalar-api-client__field {\n border: 1px solid var(--theme-border-color);\n border-right: 0;\n border-radius: var(--theme-radius-lg) 0 0 var(--theme-radius-lg);\n display: flex;\n align-items: stretch;\n width: 100%;\n}\n.scalar-api-client__address-bar-data {\n width: 100%;\n}\n.scalar-api-client__address-bar-data-meta {\n display: flex;\n margin-top: 5px;\n}\n.scalar-api-client__request-type {\n display: flex;\n align-items: center;\n background: var(--theme-background-2);\n color: var(--theme-color-disabled);\n appearance: none;\n -webkit-appearance: none;\n padding: 0 12px;\n border-right: 1px solid var(--theme-border-color);\n border-radius: var(--theme-radius-lg) 0 0 var(--theme-radius-lg);\n position: relative;\n}\n.scalar-api-client__request-type span {\n font-family: var(--theme-font-code);\n font-size: 500;\n font-size: 12px;\n text-transform: uppercase;\n}\n.scalar-api-client__request-type svg {\n margin-left: 6px;\n width: 8px;\n}\n.scalar-api-client__request-type i {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n margin-right: 6px;\n text-align: center;\n line-height: 18px;\n font-style: normal;\n flex-shrink: 0;\n display: inline-block;\n color: var(--theme-color-disabled);\n background: var(--scalar-api-client-color);\n}\n.meta-request-break {\n margin: 0 5px;\n}\n.scalar-api-client__history {\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n color: var(--theme-color-2);\n display: flex;\n align-items: center;\n border-radius: var(--theme-radius-lg);\n height: 100%;\n}\n.scalar-api-client__send-request-button[type='submit'] {\n font-size: var(--theme-mini);\n letter-spacing: 0.25px;\n line-height: 30px;\n font-weight: var(--theme-semibold);\n color: white;\n border: none;\n white-space: nowrap;\n padding: 0 10px;\n text-transform: uppercase;\n cursor: pointer;\n outline: none;\n border-radius: 0 var(--theme-radius-lg) var(--theme-radius-lg) 0;\n background: var(--scalar-api-client-color);\n /** #087f5b */\n display: flex;\n align-items: center;\n}\n.scalar-api-client__send-request-button svg {\n width: 12px;\n height: 12px;\n margin-right: 6px;\n}\n.scalar-api-client__send-request-button--loading {\n font-size: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 127px;\n}\n.scalar-api-client__send-request-button--loading svg {\n display: none;\n}\n.scalar-api-client__send-request-button--loading:before {\n content: '';\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-top: 1px solid white;\n animation: urlloader 0.45s linear infinite;\n background: transparent;\n width: 14px;\n height: 14px;\n margin-left: 0;\n margin-right: 9px;\n border-radius: 50%;\n}\n.scalar-api-client__send-request-button--loading:after {\n content: 'Loading';\n font-size: 12px;\n}\n@keyframes urlloader {\n0% {\n transform: rotate(0deg);\n}\nto {\n transform: rotate(1turn);\n}\n}\n.scalar-api-client__history-toggle {\n padding: 0 9px;\n line-height: 30px;\n color: var(--theme-color-disabled);\n font-size: var(--theme-mini);\n letter-spacing: 0.125px;\n font-weight: var(--theme-semibold);\n text-transform: uppercase;\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n white-space: nowrap;\n border: 1px solid var(--theme-border-color);\n margin-left: 12px;\n border-radius: var(--theme-radius-lg);\n}\n.scalar-api-client__history-toggle:hover {\n background: var(--theme-background-2);\n}\n.scalar-api-client__history-toggle svg {\n height: 13px;\n width: 13px;\n margin-right: 6px;\n color: var(--theme-color-disabled);\n}\n.scalar-api-client__address-bar-close {\n fill: var(--theme-color-disabled);\n margin-left: 12px;\n height: 24px;\n}\n.scalar-api-client__address-bar-close:hover {\n cursor: pointer;\n fill: var(--theme-color-1);\n}\n.scalar-api-client__address-bar__content {\n width: 640px;\n height: 100%;\n background: var(--theme-background-1);\n position: fixed;\n top: 0;\n right: 0;\n z-index: 1000;\n transform: translate3d(640px, 0, 0);\n opacity: 0;\n transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1),\n opacity 0.01s ease-in-out 0.5s;\n pointer-events: none;\n}\n.scalar-api-client__address-bar-content-item {\n height: 100vh;\n max-height: 100vh;\n overflow: auto;\n}\n.scalar-api-client__address-bar__on {\n z-index: 100000;\n}\n.scalar-api-client__address-bar__on .scalar-api-client__address-bar__content {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n pointer-events: all;\n transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);\n}\n.scalar-api-client__address-bar__on .scalar-api-client__address-bar__close {\n opacity: 1;\n pointer-events: all;\n cursor: pointer;\n}\n.scalar-api-client__address-bar .navtable-item__active {\n background: var(--theme-background-2);\n cursor: default;\n}\n.scalar-api-client__address-bar .navtable-item__active .radio:before {\n display: none;\n}\n.navigation-back {\n stroke: var(--theme-color-2);\n cursor: pointer;\n}\n.navigation-back:hover {\n stroke: var(--theme-color-1);\n}\n.scalar-api-client__address-bar__close {\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n /* background: rgba(0,0,0,.55);\n */\n pointer-events: none;\n opacity: 0;\n transition: all 0.1s ease-in-out;\n z-index: 1000;\n}\n.navtable-item-request span {\n padding: 8px 9px 8px 0;\n border: none;\n outline: none;\n font-size: 12px;\n color: var(--theme-color-1);\n width: 100%;\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.navtable-item-request span em {\n text-transform: uppercase;\n font-style: normal;\n font-family: var(--theme-font-code);\n font-size: 11px;\n margin-right: 6px;\n font-weight: var(--theme-bold);\n color: var(--theme-color-disabled);\n}\n.navtable-item-time {\n font-size: 12px;\n color: var(--theme-color-1);\n text-transform: capitalize;\n padding: 0 9px;\n}\n@media screen and (max-width: 720px) {\n.scalar-api-client__history-toggle span,\n .scalar-api-client__send-request-button span {\n display: none;\n}\n.scalar-api-client__history-toggle svg,\n .scalar-api-client__send-request-button svg {\n margin-right: 0;\n}\n.scalar-api-client__history-toggle,\n .scalar-api-client__send-request-button {\n height: 31.5px;\n width: 31.5px;\n}\n}\n\n.scalar-api-client__item {\n border-radius: var(--theme-radius-lg);\n margin-bottom: 6px;\n background: var(--theme-background-2);\n box-shadow: var(--shadow1);\n position: relative;\n}\n.scalar-api-client__item button {\n background-color: transparent;\n text-align: left;\n}\n.scalar-api-client__item:hover {\n cursor: pointer;\n}\n.scalar-api-client__item--open {\n background: var(--theme-background-2);\n}\n.scalar-api-client__item--open:focus-within {\n box-shadow: var(--shadow1);\n}\n.scalar-api-client__item--open .scalar-api-client__item__content {\n display: flex;\n}\n.scalar-api-client__item--open:hover {\n cursor: default;\n}\n.scalar-api-client__item--open .scalar-api-client__toggle__icon {\n transform: rotate(90deg);\n}\n.scalar-api-client__toggle {\n padding: 6px 12px;\n min-height: 37px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n width: 100%;\n}\n.scalar-api-client__item .scalar-api-client__item__title {\n color: var(--theme-color-1);\n font-size: var(--theme-small);\n font-weight: var(--theme-bold);\n user-select: none;\n flex: 1;\n}\n.scalar-api-client__item .scalar-api-client__item__title:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: block;\n}\n.scalar-api-client__item .scalar-api-client__toggle__icon {\n width: 10px;\n margin-right: 6px;\n color: var(--theme-color-1);\n}\n.scalar-api-client__item__options {\n position: relative;\n}\n.scalar-api-client__item__options span {\n background: var(--theme-background-3);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 12px;\n pointer-events: none;\n color: var(--theme-color-2);\n border: 1px solid var(--theme-border-color);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.scalar-api-client__item__options span svg {\n width: 9px;\n height: 9px;\n margin-left: 3px;\n}\n.scalar-api-client__item__options select {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n\n.table {\n border: 1px solid var(--theme-border-color);\n background: transparent;\n border-radius: var(--theme-radius-lg);\n width: 100%;\n}\n.table-row {\n border-bottom: 1px solid var(--theme-border-color);\n display: flex;\n position: relative;\n}\n.table-row__add {\n border-radius: 0 0 var(--theme-radius-lg) var(--theme-radius-lg);\n border-bottom: none;\n}\n.table-row.required-parameter .table-row-item:nth-of-type(2):after {\n content: 'Required';\n position: absolute;\n top: 4px;\n right: 0;\n padding: 5px 9px 5px 6px;\n font-weight: var(--theme-semibold);\n font-size: 12px;\n background: var(--theme-background-2);\n box-shadow: -2px 0 4px var(--theme-background-2);\n}\n.table-row.required-parameter\n .table-row-item:nth-of-type(2):focus-within:after {\n display: none;\n}\n.table-row:last-of-type {\n border-bottom: none;\n}\n.table-row__active {\n border-radius: 0 0 var(--theme-radius-lg) var(--theme-radius-lg);\n}\n.table-row-drag {\n width: 20px;\n flex-shrink: 0;\n border-right: 1px solid var(--theme-border-color);\n align-items: center;\n justify-content: center;\n display: none;\n}\n.table-row-drag svg {\n width: 6px;\n fill: var(--theme-color-disabled);\n}\n.table-row-drag .table-row-drag-add {\n width: 8px;\n}\n.table-row-item {\n width: 100%;\n border-right: 1px solid var(--theme-border-color);\n position: relative;\n}\n.table-row-item-menu {\n position: absolute;\n right: 12px;\n background: var(--theme-background-3);\n border: 1px solid var(--theme-border-color);\n width: 24px;\n height: 24px;\n top: 50%;\n transform: translate3d(0, -50%, 0);\n border-radius: var(--theme-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n cursor: pointer;\n}\n.table-row-item input:focus + .table-row-item-menu,\n.table-row-item:hover .table-row-item-menu {\n opacity: 1;\n}\n.table-row-item-menu svg {\n height: 12px;\n width: initial;\n fill: var(--theme-color-disabled);\n}\n.table-row-item input {\n border: none;\n appearance: none;\n outline: none;\n padding: 9px;\n width: 100%;\n color: var(--theme-color-1);\n font-size: 12px;\n}\n.table-row-item input[disabled] {\n background: transparent;\n font-family: var(--theme-font-code);\n}\n.table-row-item input:focus {\n background: var(--theme-background-2);\n}\n.table-row-item label {\n background: transparent;\n text-transform: uppercase;\n display: block;\n padding: 9px;\n font-weight: var(--theme-bold);\n color: var(--theme-color-disabled);\n font-size: 12px;\n}\n.table-row-meta {\n overflow: hidden;\n flex-shrink: 0;\n transition: all 0.15s ease-in-out;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n user-select: none;\n}\n.table-row-meta-check {\n width: 18px;\n height: 18px;\n border-radius: var(--theme-radius-lg);\n background: rgba(47, 177, 228, 0.1);\n}\n.table-row-meta svg {\n width: 13px;\n height: 13px;\n margin: 0 1px;\n color: var(--theme-color-disabled);\n cursor: pointer;\n}\n.table-row-meta svg:hover {\n color: var(--theme-color-2);\n}\n.meta-check {\n display: flex;\n position: relative;\n cursor: pointer;\n align-items: center;\n font-size: 12px;\n border-radius: var(--theme-radius-lg);\n user-select: none;\n margin: 0 1px;\n transition: all 0.15s ease-in-out;\n}\n.meta-check input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n}\n.meta-checkmark {\n height: 15px;\n width: 15px;\n background: var(--theme-background-1);\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n.meta-check .meta-checkmark:after {\n content: '';\n display: none;\n width: 5px;\n height: 8px;\n border: solid var(--theme-color-1);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translate3d(0, -1px, 0);\n}\n.meta-check input:checked ~ .meta-checkmark:after {\n display: block;\n}\n\n.navtable {\n width: 100%;\n}\n.navtable-follow {\n background-color: black;\n color: white;\n font-size: 9px;\n padding: 6px;\n display: -webkit-box;\n max-width: 250px;\n -webkit-line-clamp: 12;\n border-radius: 3px;\n -webkit-box-orient: vertical;\n overflow: hidden;\n line-height: 1.24;\n transform: translate3d(10px, 0, 0);\n}\n.navtable-follow:after {\n content: '';\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 6px;\n background-color: black;\n}\n.navtable-follow * {\n font-family: var(--theme-font-code) !important;\n}\n.navtable-table {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 381px;\n}\n.navtable-item {\n display: flex;\n position: relative;\n color: var(--theme-color-1);\n border-top: 1px solid var(--theme-border-color);\n font-weight: var(--theme-semibold);\n}\n.navtable-item > div {\n word-wrap: break-word;\n}\n.navtable-item > div:not(:first-child) {\n border-left: 1px solid var(--theme-border-color);\n}\n.navtable-item-action {\n color: var(--theme-color-2);\n font-size: 12px;\n font-weight: var(--theme-bold);\n background: var(--scalar-api-client-bg3);\n border: none;\n border-radius: 30px;\n appearance: none;\n max-height: 25px;\n margin-left: 12px;\n margin-right: 6px;\n padding: 4px 8px;\n outline: none;\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.15s ease-in-out;\n white-space: nowrap;\n position: relative;\n}\n.navtable-item-action:hover {\n color: var(--theme-color-1);\n background: var(--scalar-api-client-gradient);\n box-shadow: 0 0 0 1px var(--theme-border-color);\n}\n.navtable-item-action:focus {\n background: var(--theme-background-2);\n}\n.navtable-item:hover,\n.navtable-item:focus-within .navtable-item-action {\n opacity: 1;\n}\n.navtable-item-add {\n display: flex;\n align-items: center;\n padding: 9px;\n font-weight: var(--theme-bold);\n outline: none;\n border: none;\n appearance: none;\n background: transparent;\n color: var(--theme-color-1);\n}\n.navtable-item-add:hover {\n background: var(--theme-background-2);\n cursor: pointer;\n}\n.navtable-item-25 {\n width: 25%;\n font-size: 12px;\n display: flex;\n align-items: center;\n}\n.navtable-item-33 {\n width: 33.33333%;\n display: flex;\n font-size: 12px;\n align-items: center;\n}\n.navtable-item-66 {\n width: 66.6666%;\n display: flex;\n font-size: 12px;\n align-items: center;\n}\n.navtable-item-75 {\n width: 75%;\n display: flex;\n align-items: center;\n}\n.navtable-item-75:focus-within {\n background: var(--theme-background-2);\n}\n.navtable-item-40 {\n width: 40%;\n display: flex;\n align-items: center;\n}\n.navtable-item-20 {\n width: 20%;\n display: flex;\n align-items: center;\n}\n.navtable-item-50 {\n width: 50%;\n display: flex;\n align-items: center;\n}\n.navtable-item-50:focus-within {\n background: var(--theme-background-2);\n}\n.navtable-item p {\n padding: 9px;\n}\n.navtable-item input {\n padding: 12px 6px;\n border: none;\n outline: none;\n appearance: none;\n font-size: 12px;\n color: var(--theme-color-1);\n background: transparent;\n width: 100%;\n}\n.navtable-item input:focus {\n background: var(--theme-background-2);\n}\n.navtable-item-select {\n position: relative;\n}\n.navtable-item-select select {\n background: transparent;\n outline: none;\n border: none;\n font-size: 12px;\n appearance: none;\n width: 100%;\n padding: 12px 6px;\n top: 0;\n position: relative;\n cursor: pointer;\n color: var(--theme-color-2);\n}\n.navtable-item-select svg {\n position: absolute;\n right: 6px;\n color: var(--theme-color-ghost);\n width: 6px;\n top: 12px;\n pointer-events: none;\n}\n.navtable-item .option {\n padding: 12px 6px;\n font-size: 12px;\n color: var(--theme-color-1);\n width: 100%;\n}\n.navtable-item label {\n color: var(--theme-color-disabled);\n font-size: 12px;\n font-weight: var(--theme-bold);\n text-transform: uppercase;\n padding: 9px;\n display: block;\n width: 100%;\n}\n.navtable-item-response {\n padding: 0 9px;\n}\n.navtable-item-response span {\n font-size: 12px;\n display: flex;\n align-items: center;\n margin-right: 6px;\n min-width: 50px;\n}\n.scalar-api-client__status--1xx:before,\n.scalar-api-client__status--2xx:before,\n.scalar-api-client__status--3xx:before,\n.scalar-api-client__status--4xx:before,\n.scalar-api-client__status--5xx:before,\n.scalar-api-client__status--6xx:before {\n content: '';\n width: 12px;\n height: 12px;\n border-radius: 50%;\n margin-right: 4px;\n background: var(--theme-background-2);\n}\n.scalar-api-client__status--2xx:before {\n background: green;\n}\n.scalar-api-client__status--3xx:before {\n background: orange;\n}\n.scalar-api-client__status--4xx:before {\n background: red;\n}\n.navtable-item-response span:empty {\n display: none;\n}\n.simpletable.navtable {\n padding: 0;\n}\n.simpletable.navtable .navtable-item-66,\n.simpletable.navtable .navtable-item-33 {\n display: block;\n}\n.simpletable.navtable .navtable-table {\n height: fit-content;\n}\n\n.scalar-api-client__main__left {\n width: 50%;\n border-right: 1px solid var(--theme-border-color);\n padding: 0 0 12px 12px;\n}\n@media screen and (max-width: 820px) {\n.scalar-api-client__main__left {\n width: 100%;\n border-right: none;\n}\n}\n.scalar-api-client__item__content {\n flex-flow: wrap;\n padding: 0 12px 12px;\n border-radius: 3px;\n color: var(--theme-color-disabled);\n font-size: 12px;\n margin-top: -3px;\n justify-content: space-between;\n}\n.scalar-api-client__item__content .cm-s-default {\n border: 1px solid var(--theme-border-color);\n border-radius: var(--theme-radius-lg);\n}\n.scalar-api-client__item__content .scalar-api-client__item__content--code {\n width: 100%;\n max-height: calc(100vh - 200px);\n overflow: auto;\n}\n.scalar-api-client__item__content .cm-scroller {\n border: 1px solid var(--theme-border-color);\n border-radius: 3px;\n}\n.scalar-api-client__item__content .cm-editor {\n outline: none !important;\n}\n.scalar-api-client__item__content .cm-editor .cm-gutters {\n background: transparent;\n}\n.scalar-api-client__item__content .cm-scroll {\n background: transparent;\n}\n.scalar-api-client__item__content .cm-editor * {\n font-size: 11px;\n}\n.scalar-api-client__item__content .cm-editor .cm-line {\n color: var(--theme-color-1);\n}\n.scalar-api-client__item__content-button {\n width: 100%;\n appearance: none;\n border: none;\n outline: none;\n font-size: 12px;\n background: var(--scalar-api-client-color) !important;\n text-align: center;\n font-weight: var(--theme-bold);\n padding: 12px;\n text-transform: uppercase;\n border-radius: var(--theme-radius-lg);\n color: white;\n cursor: pointer;\n}\n.scalar-api-client__item__content__split {\n justify-content: space-between;\n}\n.scalar-collapsible-section-flex {\n width: 100%;\n}\n.input {\n background: var(--theme-background-2);\n border: 1px solid var(--theme-border-color);\n border-radius: 3px;\n position: relative;\n width: 100%;\n text-align: left;\n margin-bottom: 6px;\n}\n.input__half {\n width: calc(50% - 3px);\n}\n.input:focus-within {\n background: var(--theme-background-3);\n}\n.input label,\n.input input {\n padding: 12px;\n border: 0;\n outline: none;\n font-size: 12px;\n color: var(--theme-color-1);\n width: 100%;\n background: transparent;\n appearance: none;\n -webkit-appearance: none;\n left: 0;\n}\n.input label {\n position: absolute;\n color: var(--theme-color-2);\n}\n.input input {\n opacity: 0;\n position: relative;\n z-index: 99;\n padding: 18px 12px 6px 12px;\n}\n.input input:not(:placeholder-shown),\n.input:focus-within input {\n opacity: 1;\n}\n.input input:not(:placeholder-shown) + label,\n.input:focus-within label {\n font-size: 10px;\n top: -6px;\n color: var(--theme-color-1);\n}\n.input input:not(:placeholder-shown) + label {\n color: var(--theme-color-2);\n}\n.select {\n background: --theme-background-1;\n border-radius: var(--theme-radius-lg);\n font-size: 12px;\n border: 1px solid var(--theme-border-color);\n width: 100%;\n position: relative;\n margin-bottom: 6px;\n}\n.select:focus-within {\n background: var(--theme-background-3);\n}\n.select:hover {\n background: var(--theme-background-3);\n}\n.select svg {\n position: absolute;\n right: 12px;\n pointer-events: none;\n color: var(--theme-color-2);\n width: 6px;\n top: 10px;\n}\n.select label {\n display: block;\n font-size: 10px;\n color: var(--theme-color-2);\n position: absolute;\n left: 12px;\n top: 6px;\n}\n.select select {\n background: transparent;\n outline: none;\n border: none;\n -webkit-appearance: none;\n font-size: 12px;\n color: var(--theme-color-1);\n appearance: none;\n width: 100%;\n padding: 18px 12px 6px 12px;\n top: 0;\n position: relative;\n cursor: pointer;\n}\n.check {\n display: flex;\n position: relative;\n cursor: pointer;\n align-items: center;\n font-size: 12px;\n border: 1px solid var(--theme-border-color);\n border-radius: 3px;\n padding: 10px 12px;\n user-select: none;\n width: 100%;\n}\n.check p {\n color: var(--theme-color-2);\n}\n.check input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n}\n.checkmark {\n height: 15px;\n width: 15px;\n background: var(--theme-background-3);\n margin-right: 10px;\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n.check input:checked ~ p {\n color: var(--theme-color-1);\n}\n.check .checkmark:after {\n content: '';\n display: none;\n width: 5px;\n height: 8px;\n border: solid var(--theme-color-disabled);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg) translate3d(0, -1px, 0);\n}\n.check input:checked ~ .checkmark:after {\n display: block;\n}\n.scalar-api-client__main__scroll-container {\n height: calc(100vh - 320px);\n}\n.scalar-api-client__request-name {\n outline: none;\n border: none;\n appearance: none;\n -webkit-appearance: none;\n color: var(--theme-color-disabled);\n border-radius: var(--theme-radius-lg);\n font-size: var(--theme-mini);\n font-weight: var(--theme-bold);\n width: 100%;\n background: transparent;\n}\n\na[data-v-7a2c7da8] {\n text-decoration: underline;\n text-decoration-color: var(--theme-border-color);\n text-underline-offset: 2px;\n cursor: help;\n}\n\n.simple-cell[data-v-8d5b42b4] {\n border-right: 1px solid var(--theme-border-color);\n position: relative;\n padding: 0.75em;\n color: var(--theme-color-1);\n white-space: nowrap;\n}\n.simple-cell[data-v-8d5b42b4]:last-of-type {\n border-right: none;\n}\n.simple-cell.wrap[data-v-8d5b42b4] {\n white-space: normal;\n}\n.simple-cell.strong[data-v-8d5b42b4] {\n font-weight: var(--theme-semibold);\n}\n\n.simple-header[data-v-e94ec977] {\n color: var(--theme-color-disabled);\n font-weight: var(--theme-bold);\n text-transform: uppercase;\n}\n\n.simple-row[data-v-959f27bd] {\n border-top: 1px solid var(--theme-border-color);\n}\n.simple-row[data-v-959f27bd]:last-of-type {\n border-bottom: 1px solid var(--theme-border-color);\n}\n\n.simple-table[data-v-3b6be9e1] {\n display: table;\n width: 100%;\n margin: 1em 0;\n}\n\n.scalar-api-client__main__right {\n width: 50%;\n padding: 0 0 12px 12px;\n}\n@media screen and (max-width: 820px) {\n.scalar-api-client__main__right {\n width: 100%;\n border-right: none;\n}\n}\n.scalar-api-client__main__right :deep(.scalar-copilot__header-button) {\n position: absolute;\n top: 6px;\n right: 12px;\n}\n:root {\n --app-header-height: 50px;\n --theme-border-width: 1px;\n --theme-radius: 3px;\n --theme-radius-lg: 6px;\n --theme-radius-xl: 8px;\n\n --theme-header-height: 50px;\n --theme-sidebar-width: 250px;\n --theme-toc-width: 250px;\n\n /* TYPOGRAPHY ------------------------------------ */\n --theme-font: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n --theme-font-code: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono',\n 'Droid Sans Mono', 'Source Code Pro', monospace;\n\n /** Font sizes for rendered text content (editor styles or static content) */\n --theme-heading-1: 40px; /* Editor Page heading */\n --theme-page-description: 24px;\n --theme-heading-2: 24px; /* Editor section headings */\n --theme-heading-3: 20px;\n --theme-heading-4: 16px;\n --theme-heading-5: 16px;\n --theme-heading-6: 16px;\n\n --theme-paragraph: 16px;\n --theme-small: 14px;\n --theme-mini: 13px;\n --theme-micro: 12px;\n --theme-bold: 600;\n --theme-semibold: 500;\n --theme-regular: 400;\n\n /* Font sizes for interactive applications (not rendered text content) */\n --theme-font-size-1: 24px;\n --theme-font-size-2: 16px;\n --theme-font-size-3: 14px;\n --theme-font-size-4: 13px;\n --theme-font-size-5: 12px;\n\n --theme-line-height-1: 32px;\n --theme-line-height-2: 24px;\n --theme-line-height-3: 20px;\n --theme-line-height-4: 18px;\n --theme-line-height-5: 16px;\n\n --theme-font-medium: 500;\n --theme-font-bold: 700;\n\n /* let's clean these up please :) */\n --scalar-api-reference-theme-header-height: 0;\n --scalar-api-reference-theme-sidebar-width: 250px;\n --scalar-api-reference-theme-toc-width: 250px;\n --scalar-api-reference-app-header-height: 100px;\n --scalar-api-reference-col-width-1: 250px;\n --scalar-api-reference-col-width-2: calc(50% - 150px);\n --scalar-api-reference-col-width-3: calc(50% - 150px);\n --scalar-api-reference-document-height: 100vh;\n --scalar-api-reference-full-height: 100%;\n}\n@media (max-width: 460px) {\n:root {\n --theme-font-size-1: 22px;\n --theme-font-size-2: 14px;\n --theme-font-size-3: 12px;\n}\n}\n@media (max-width: 720px) {\n:root {\n --theme-heading-1: 24px;\n --theme-page-description: 20px;\n}\n}\n.light-mode {\n color-scheme: light;\n --theme-color-1: #2a2f45;\n --theme-color-2: #757575;\n --theme-color-3: #8e8e8e;\n --theme-color-disabled: #b4b1b1;\n --theme-color-ghost: #a7a7a7;\n --theme-color-accent: #0099ff;\n --theme-background-1: #fff;\n --theme-background-2: #f6f6f6;\n --theme-background-3: #e7e7e7;\n --theme-background-4: rgba(0, 0, 0, 0.06);\n --theme-background-accent: #8ab4f81f;\n\n --theme-border-color: rgba(0, 0, 0, 0.1);\n --theme-scrollbar-color: rgba(0, 0, 0, 0.18);\n --theme-scrollbar-color-active: rgba(0, 0, 0, 0.36);\n --theme-lifted-brightness: 1;\n --theme-backdrop-brightness: 1;\n\n --theme-shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.11);\n --theme-shadow-2: rgba(0, 0, 0, 0.08) 0px 13px 20px 0px,\n rgba(0, 0, 0, 0.08) 0px 3px 8px 0px, #eeeeed 0px 0 0 1px;\n\n --theme-button-1: rgb(49 53 56);\n --theme-button-1-color: #fff;\n --theme-button-1-hover: rgb(28 31 33);\n\n --theme-error-color: #ae262f;\n --theme-warning-color: #d89c6a;\n --theme-success-color: #26ae42;\n\n /* REST API Client Colors */\n --theme-post-color: #00a67d;\n --theme-post-background: #00a67d1a;\n --theme-delete-color: #ef0006;\n --theme-delete-background: #ef00061a;\n --theme-patch-color: #b2b062;\n --theme-patch-background: #ffe6001a;\n --theme-get-color: #0082d0;\n --theme-get-background: #0082d01a;\n --theme-put-color: #f3830e;\n --theme-put-background: #f3830e1a;\n\n /* Misc Scalar Branding */\n --scalar-brand: #faf6e9;\n}\n.dark-mode {\n color-scheme: dark;\n --theme-color-1: rgba(255, 255, 255, 0.9);\n --theme-color-2: rgba(255, 255, 255, 0.62);\n --theme-color-3: rgba(255, 255, 255, 0.44);\n --theme-color-disabled: rgba(255, 255, 255, 0.34);\n --theme-color-ghost: rgba(255, 255, 255, 0.26);\n --theme-color-accent: #8ab4f8;\n --theme-background-1: #1a1a1a;\n --theme-background-2: #252525;\n --theme-background-3: #323232;\n --theme-background-4: rgba(255, 255, 255, 0.06);\n --theme-background-accent: #8ab4f81f;\n\n --theme-border-color: rgba(255, 255, 255, 0.1);\n --theme-scrollbar-color: rgba(255, 255, 255, 0.24);\n --theme-scrollbar-color-active: rgba(255, 255, 255, 0.48);\n --theme-lifted-brightness: 1.45;\n --theme-backdrop-brightness: 0.5;\n\n --theme-shadow-1: 0 1px 3px 0 rgb(0, 0, 0, 0.1);\n --theme-shadow-2: rgba(15, 15, 15, 0.2) 0px 3px 6px,\n rgba(15, 15, 15, 0.4) 0px 9px 24px, 0 0 0 1px rgba(255, 255, 255, 0.1);\n\n --theme-button-1: #f6f6f6;\n --theme-button-1-color: #000;\n --theme-button-1-hover: #e7e7e7;\n\n --theme-error-color: #ff0011;\n --theme-success-color: #26ae42;\n\n /* REST API Client Colors */\n --theme-post-color: #7ee787;\n --theme-post-background: #7ee78714;\n --theme-delete-color: #e77e7e;\n --theme-delete-background: #e77e7e24;\n --theme-patch-color: #b2b062;\n --theme-patch-background: #b2b06229;\n --theme-get-color: #79c0ff;\n --theme-get-background: #79c0ff21;\n --theme-put-color: #e9950c;\n --theme-put-background: #e9950c21;\n\n /* Misc Scalar Branding */\n --scalar-brand: #8b7256;\n}\n\n.scalar-api-client {\n background: var(--theme-background-1);\n position: relative;\n height: 100%;\n overflow: hidden !important;\n display: flex;\n flex-direction: column;\n font-family: var(--theme-font);\n}\n@media screen and (max-width: 1000px) {\n.scalar-api-client {\n width: 100%;\n}\n}\n.scalar-api-client pre {\n font-family: var(--theme-font-code);\n}\n.scalar-api-client--post {\n --scalar-api-client-color: var(--theme-post-color);\n --scalar-api-client-background: var(--theme-post-background);\n}\n.scalar-api-client--delete {\n --scalar-api-client-color: var(--theme-delete-color);\n --scalar-api-client-background: var(--theme-delete-background);\n}\n.scalar-api-client--patch {\n --scalar-api-client-color: var(--theme-patch-color);\n --scalar-api-client-background: var(--theme-patch-background);\n}\n.scalar-api-client--get {\n --scalar-api-client-color: var(--theme-get-color);\n --scalar-api-client-background: var(--theme-get-background);\n}\n.scalar-api-client--put {\n --scalar-api-client-color: var(--theme-put-color);\n --scalar-api-client-background: var(--theme-put-background);\n}\n.scalar-api-client__mobile-navigation {\n padding: 12px 12px 0 12px;\n display: flex;\n font-size: var(--theme-small);\n color: var(--theme-color-2);\n font-weight: var(--theme-bold);\n}\n.scalar-api-client__mobile-navigation__toggle {\n appearance: none;\n margin-right: 9px;\n cursor: pointer;\n}\n.scalar-api-client__mobile-navigation--active {\n color: var(--theme-color-1);\n}\n.scalar-api-client__mobile-navigation--active:hover {\n cursor: pointer;\n}\n.scalar-api-client__main {\n display: flex;\n height: 100%;\n min-height: 0;\n background: var(--theme-background-1);\n border-top: 1px solid var(--theme-border-color);\n}\n@media screen and (max-width: 820px) {\n.scalar-api-client__main {\n display: block;\n}\n}\n\n/** TODO: Consider to make a Column component */\n.scalar-api-client__main__content {\n padding: 12px;\n background: var(--theme-background-1);\n top: 0;\n position: sticky;\n z-index: 100;\n}\n.scalar-api-client__main__content label {\n font-size: var(--theme-small);\n color: var(--theme-color-1);\n font-weight: var(--theme-bold);\n display: flex;\n align-items: center;\n}\n@media screen and (max-width: 820px) {\n.scalar-api-client__main__content {\n padding: 0 0 12px 0;\n}\n.scalar-api-client__main__content label {\n display: none;\n}\n}\n.meta {\n display: flex;\n font-size: var(--theme-font-size-2);\n font-weight: var(--theme-font-size-2);\n color: var(--scalar-api-client-color2);\n}\n.meta-item svg {\n fill: var(--theme-color-ghost);\n height: 14px;\n width: 14px;\n margin-right: 6px;\n}\n.meta-item {\n display: flex;\n align-items: center;\n margin-right: 12px;\n white-space: nowrap;\n font-weight: var(--theme-bold);\n font-size: 12px;\n color: var(--theme-color-disabled);\n padding: 3px 0;\n}\n.meta-item__input {\n padding: 3px 0;\n background: transparent;\n width: 100%;\n margin-right: 0;\n}\n.types {\n margin: auto;\n width: 580px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-flow: wrap;\n}\n.types-heading {\n width: 100%;\n text-align: center;\n}\n.types-heading b {\n font-size: 42px;\n}\n.types-heading p {\n margin-bottom: 20px;\n margin-top: 12px;\n font-size: 24px;\n}\n.scalar-api-client__empty-state {\n border: 1px dashed var(--theme-border-color);\n width: 100%;\n text-align: center;\n font-size: var(--theme-small);\n padding: 20px;\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  var __defProp = Object.defineProperty;
2
14
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
15
  var __publicField = (obj, key, value) => {
@@ -1139,7 +1151,8 @@ function useKeyboardEvent({
1139
1151
  withShift = false,
1140
1152
  withCtrlCmd = false,
1141
1153
  withAlt = false,
1142
- ignoreInputElements = false
1154
+ ignoreInputElements = false,
1155
+ active = () => true
1143
1156
  }) {
1144
1157
  const targetEl = computed(() => (element == null ? void 0 : element.value) || "document");
1145
1158
  const keys = keyList.map((k2) => k2.toLocaleLowerCase());
@@ -1152,20 +1165,28 @@ function useKeyboardEvent({
1152
1165
  (withShift ? event.shiftKey : !event.shiftKey) && // Check for alt key
1153
1166
  (withAlt ? event.altKey : !event.altKey) && // Check whether or not to ignore inputs
1154
1167
  (!ignoreInputElements || !isInput) && // Check for key match
1155
- keys.includes(event.key.toLocaleLowerCase())
1168
+ keys.includes(event.key.toLocaleLowerCase()) && // Check if it’s currently active
1169
+ active()
1156
1170
  ) {
1157
1171
  event.preventDefault();
1158
1172
  handler(event);
1159
1173
  }
1160
1174
  };
1161
1175
  onMounted(() => {
1162
- watchEffect(() => {
1163
- const target = targetEl.value === "document" ? document : targetEl.value;
1164
- target.removeEventListener(type, eventHandler);
1165
- if (target) {
1166
- target.addEventListener(type, eventHandler);
1167
- }
1168
- });
1176
+ watch(
1177
+ targetEl,
1178
+ (value, prevValue) => {
1179
+ const prevTarget = prevValue === "document" ? document : prevValue;
1180
+ if (prevTarget) {
1181
+ prevTarget.removeEventListener(type, eventHandler);
1182
+ }
1183
+ const target = value === "document" ? document : value;
1184
+ if (target) {
1185
+ target.addEventListener(type, eventHandler);
1186
+ }
1187
+ },
1188
+ { immediate: true }
1189
+ );
1169
1190
  });
1170
1191
  const keyboardShortcut = {
1171
1192
  keyList,
@@ -11922,23 +11943,28 @@ const templateEngine = nunjucks.configure({
11922
11943
  variableEnd: "}"
11923
11944
  }
11924
11945
  });
11946
+ const defaultHeaders = {
11947
+ "User-Agent": "Scalar API Client"
11948
+ };
11925
11949
  async function sendRequest(request, proxyUrl) {
11926
- const fullUrl = `${request.url}${request.path}`;
11927
11950
  const method = request.type.toUpperCase();
11928
- const headers = [];
11951
+ const fullUrl = `${request.url}${request.path}`;
11952
+ const headers = {
11953
+ ...defaultHeaders,
11954
+ ...mapFromArray(request.headers, "name", "value")
11955
+ };
11929
11956
  const auth = {
11930
11957
  type: "none"
11931
11958
  };
11932
11959
  const variables2 = mapFromArray(request.parameters, "name", "value");
11933
11960
  const renderedURL = templateEngine.renderString(fullUrl, variables2);
11934
11961
  const startTime = Date.now();
11935
- const axiosHeaders = headers;
11936
11962
  const requestOptions = {
11937
11963
  method,
11938
11964
  url: renderedURL,
11939
11965
  auth,
11940
- headers: axiosHeaders,
11941
- data: null
11966
+ headers,
11967
+ data: request.body
11942
11968
  };
11943
11969
  const config = {
11944
11970
  method: "POST",
@@ -11946,13 +11972,16 @@ async function sendRequest(request, proxyUrl) {
11946
11972
  data: requestOptions
11947
11973
  };
11948
11974
  console.info(`${requestOptions.method} ${requestOptions.url}`);
11949
- const response = await axios$1(config).then((res) => ({
11950
- ...res.data,
11951
- error: false
11952
- })).catch((err) => ({
11953
- error: true,
11954
- ...err == null ? void 0 : err.response
11955
- }));
11975
+ const response = (
11976
+ // @ts-ignore
11977
+ await axios$1(config).then((res) => ({
11978
+ ...res.data,
11979
+ error: false
11980
+ })).catch((err) => ({
11981
+ error: true,
11982
+ ...err == null ? void 0 : err.response
11983
+ }))
11984
+ );
11956
11985
  return !response.error ? {
11957
11986
  sentTime: Date.now(),
11958
11987
  request,
@@ -16299,7 +16328,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
16299
16328
  handler: send
16300
16329
  });
16301
16330
  const onChange = (value) => {
16302
- if (activeRequest2.url === value) {
16331
+ if (activeRequest2.url + activeRequest2.path === value) {
16303
16332
  return;
16304
16333
  }
16305
16334
  setActiveRequest2({ ...activeRequest2, url: value });
@@ -16319,8 +16348,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
16319
16348
  createVNode(unref(_sfc_main$n), {
16320
16349
  class: "scalar-api-client__url-input",
16321
16350
  content: formattedUrl.value,
16322
- readOnly: unref(readOnly2),
16323
16351
  disableEnter: true,
16352
+ readOnly: unref(readOnly2),
16324
16353
  withVariables: true,
16325
16354
  withoutTheme: true,
16326
16355
  onChange
@@ -16866,30 +16895,32 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16866
16895
  __name: "RequestBody",
16867
16896
  props: {
16868
16897
  body: {},
16869
- formData: {},
16870
- requestBody: {}
16898
+ formData: {}
16871
16899
  },
16872
16900
  setup(__props) {
16901
+ const { activeRequest: activeRequest2, setActiveRequest: setActiveRequest2 } = useApiClientRequestStore();
16902
+ const updateActiveRequest = (value) => {
16903
+ if (activeRequest2.body !== value) {
16904
+ setActiveRequest2({
16905
+ ...activeRequest2,
16906
+ body: value
16907
+ });
16908
+ }
16909
+ };
16873
16910
  return (_ctx, _cache) => {
16874
16911
  return openBlock(), createBlock(unref(_sfc_main$i), { title: "Body" }, {
16875
- default: withCtx(() => {
16876
- var _a, _b, _c, _d;
16877
- return [
16878
- _ctx.body && _ctx.body.length === 0 && _ctx.formData && _ctx.formData.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$c, "No Body")) : _ctx.formData && _ctx.formData.length > 0 ? (openBlock(), createBlock(unref(_sfc_main$g), {
16879
- key: 1,
16880
- items: _ctx.formData
16881
- }, null, 8, ["items"])) : (openBlock(), createBlock(unref(_sfc_main$n), {
16882
- key: 2,
16883
- content: ((_b = (_a = _ctx.requestBody) == null ? void 0 : _a.content) == null ? void 0 : _b.active.examples.default) ? JSON.stringify(
16884
- (_d = (_c = _ctx.requestBody) == null ? void 0 : _c.content) == null ? void 0 : _d.active.examples.default,
16885
- null,
16886
- 2
16887
- ) : "{}",
16888
- languages: ["json"],
16889
- lineNumbers: true
16890
- }, null, 8, ["content"]))
16891
- ];
16892
- }),
16912
+ default: withCtx(() => [
16913
+ _ctx.body && _ctx.body.length === 0 && _ctx.formData && _ctx.formData.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$c, "No Body")) : _ctx.formData && _ctx.formData.length > 0 ? (openBlock(), createBlock(unref(_sfc_main$g), {
16914
+ key: 1,
16915
+ items: _ctx.formData
16916
+ }, null, 8, ["items"])) : (openBlock(), createBlock(unref(_sfc_main$n), {
16917
+ key: 2,
16918
+ content: unref(activeRequest2).body,
16919
+ languages: ["json"],
16920
+ lineNumbers: true,
16921
+ onChange: updateActiveRequest
16922
+ }, null, 8, ["content"]))
16923
+ ]),
16893
16924
  _: 1
16894
16925
  });
16895
16926
  };
@@ -17855,50 +17886,52 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
17855
17886
  href: _ctx.href
17856
17887
  }, {
17857
17888
  default: withCtx(() => [
17858
- renderSlot(_ctx.$slots, "default")
17889
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17859
17890
  ]),
17860
17891
  _: 3
17861
- }, 8, ["href"])) : renderSlot(_ctx.$slots, "default", { key: 1 })
17892
+ }, 8, ["href"])) : renderSlot(_ctx.$slots, "default", { key: 1 }, void 0, true)
17862
17893
  ], 2);
17863
17894
  };
17864
17895
  }
17865
17896
  });
17866
- const SimpleCell_vue_vue_type_style_index_0_lang = "";
17897
+ const SimpleCell_vue_vue_type_style_index_0_scoped_8d5b42b4_lang = "";
17898
+ const SimpleCell = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-8d5b42b4"]]);
17867
17899
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17868
17900
  __name: "SimpleHeader",
17869
17901
  setup(__props) {
17870
17902
  return (_ctx, _cache) => {
17871
- return openBlock(), createBlock(_sfc_main$7, {
17903
+ return openBlock(), createBlock(SimpleCell, {
17872
17904
  as: "th",
17873
17905
  class: "simple-header"
17874
17906
  }, {
17875
17907
  default: withCtx(() => [
17876
- renderSlot(_ctx.$slots, "default")
17908
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17877
17909
  ]),
17878
17910
  _: 3
17879
17911
  });
17880
17912
  };
17881
17913
  }
17882
17914
  });
17883
- const SimpleHeader_vue_vue_type_style_index_0_lang = "";
17884
- const SimpleRow_vue_vue_type_style_index_0_lang = "";
17915
+ const SimpleHeader_vue_vue_type_style_index_0_scoped_e94ec977_lang = "";
17916
+ const SimpleHeader = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-e94ec977"]]);
17917
+ const SimpleRow_vue_vue_type_style_index_0_scoped_959f27bd_lang = "";
17885
17918
  const _sfc_main$5 = {};
17886
17919
  const _hoisted_1$5 = { class: "simple-row" };
17887
17920
  function _sfc_render$1(_ctx, _cache) {
17888
17921
  return openBlock(), createElementBlock("tr", _hoisted_1$5, [
17889
- renderSlot(_ctx.$slots, "default")
17922
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17890
17923
  ]);
17891
17924
  }
17892
- const SimpleRow = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$1]]);
17893
- const SimpleTable_vue_vue_type_style_index_0_lang = "";
17925
+ const SimpleRow = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$1], ["__scopeId", "data-v-959f27bd"]]);
17926
+ const SimpleTable_vue_vue_type_style_index_0_scoped_3b6be9e1_lang = "";
17894
17927
  const _sfc_main$4 = {};
17895
17928
  const _hoisted_1$4 = { class: "simple-table" };
17896
17929
  function _sfc_render(_ctx, _cache) {
17897
17930
  return openBlock(), createElementBlock("table", _hoisted_1$4, [
17898
- renderSlot(_ctx.$slots, "default")
17931
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17899
17932
  ]);
17900
17933
  }
17901
- const SimpleTable = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render]]);
17934
+ const SimpleTable = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render], ["__scopeId", "data-v-3b6be9e1"]]);
17902
17935
  const _hoisted_1$3 = {
17903
17936
  key: 1,
17904
17937
  class: "scalar-api-client__empty-state"
@@ -17915,6 +17948,11 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17915
17948
  return header2.name.toLowerCase() === headerName.toLowerCase();
17916
17949
  })) == null ? void 0 : _a.url;
17917
17950
  };
17951
+ const formatHeaderName = (headerName) => {
17952
+ return headerName.split("-").map((word) => {
17953
+ return word.charAt(0).toUpperCase() + word.slice(1);
17954
+ }).join("-");
17955
+ };
17918
17956
  return (_ctx, _cache) => {
17919
17957
  return openBlock(), createBlock(unref(_sfc_main$i), { title: "Headers" }, {
17920
17958
  default: withCtx(() => [
@@ -17922,13 +17960,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17922
17960
  default: withCtx(() => [
17923
17961
  createVNode(unref(SimpleRow), null, {
17924
17962
  default: withCtx(() => [
17925
- createVNode(unref(_sfc_main$6), null, {
17963
+ createVNode(unref(SimpleHeader), null, {
17926
17964
  default: withCtx(() => [
17927
17965
  createTextVNode("Key")
17928
17966
  ]),
17929
17967
  _: 1
17930
17968
  }),
17931
- createVNode(unref(_sfc_main$6), null, {
17969
+ createVNode(unref(SimpleHeader), null, {
17932
17970
  default: withCtx(() => [
17933
17971
  createTextVNode("Value")
17934
17972
  ]),
@@ -17942,17 +17980,17 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17942
17980
  key: header2.name
17943
17981
  }, {
17944
17982
  default: withCtx(() => [
17945
- createVNode(unref(_sfc_main$7), {
17983
+ createVNode(unref(SimpleCell), {
17946
17984
  href: getDocumentationUrlForHttpHeader(header2.name),
17947
17985
  strong: true,
17948
17986
  wrap: false
17949
17987
  }, {
17950
17988
  default: withCtx(() => [
17951
- createTextVNode(toDisplayString(header2.name), 1)
17989
+ createTextVNode(toDisplayString(formatHeaderName(header2.name)), 1)
17952
17990
  ]),
17953
17991
  _: 2
17954
17992
  }, 1032, ["href"]),
17955
- createVNode(unref(_sfc_main$7), null, {
17993
+ createVNode(unref(SimpleCell), null, {
17956
17994
  default: withCtx(() => [
17957
17995
  createTextVNode(toDisplayString(header2.value), 1)
17958
17996
  ]),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scalar/api-client",
3
- "version": "0.1.21",
3
+ "version": "0.2.1",
4
4
  "author": "Scalar",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -8,17 +8,14 @@
8
8
  },
9
9
  "type": "module",
10
10
  "files": [
11
+ "src",
11
12
  "dist"
12
13
  ],
13
14
  "main": "./dist/index.js",
14
15
  "module": "./dist/index.js",
15
16
  "exports": {
16
- ".": {
17
- "import": "./dist/index.js"
18
- },
19
- "./style.css": {
20
- "import": "./dist/style.css"
21
- }
17
+ "development": "./src/index.ts",
18
+ "import": "./dist/index.js"
22
19
  },
23
20
  "types": "dist/index.d.ts",
24
21
  "dependencies": {
@@ -44,13 +41,14 @@
44
41
  "pretty-bytes": "6.1.0",
45
42
  "pretty-ms": "8.0.0",
46
43
  "tippy.js": "6.3.7",
47
- "@scalar/use-codemirror": "0.1.4",
48
- "@scalar/use-keyboard-event": "0.1.4"
44
+ "@scalar/use-codemirror": "0.2.0",
45
+ "@scalar/use-keyboard-event": "0.2.1"
49
46
  },
50
47
  "devDependencies": {
51
48
  "@vitejs/plugin-vue": "4.2.3",
52
49
  "tsc-alias": "1.8.6",
53
50
  "vite": "4.4.8",
51
+ "vite-plugin-css-injected-by-js": "^3.3.0",
54
52
  "vitest": "0.34.1",
55
53
  "vue-tsc": "1.8.8"
56
54
  },