@scalar/api-client 2.42.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1501) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +82 -74
  3. package/dist/components/HttpMethod/HttpMethod.vue.d.ts +3 -3
  4. package/dist/components/HttpMethod/HttpMethod.vue.d.ts.map +1 -1
  5. package/dist/components/HttpMethod/HttpMethod.vue.js +1 -1
  6. package/dist/components/HttpMethod/HttpMethod.vue.js.map +1 -1
  7. package/dist/components/HttpMethod/HttpMethod.vue.script.js +3 -2
  8. package/dist/components/HttpMethod/HttpMethod.vue.script.js.map +1 -1
  9. package/dist/components/IconSelector.vue.script.js +1 -1
  10. package/dist/components/Server/index.d.ts +0 -2
  11. package/dist/components/Server/index.d.ts.map +1 -1
  12. package/dist/components/Server/index.js +1 -3
  13. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.d.ts +2 -2
  14. package/dist/hooks/{useFileDialog.d.ts → use-file-dialog.d.ts} +3 -2
  15. package/dist/hooks/use-file-dialog.d.ts.map +1 -0
  16. package/dist/hooks/{useFileDialog.js → use-file-dialog.js} +2 -2
  17. package/dist/hooks/use-file-dialog.js.map +1 -0
  18. package/dist/index.d.ts +0 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +0 -5
  21. package/dist/monacoeditorwork/editor.worker.bundle.js +222 -366
  22. package/dist/monacoeditorwork/json.worker.bundle.js +388 -501
  23. package/dist/monacoeditorwork/yaml.worker.bundle.js +14567 -22937
  24. package/dist/style.css +6059 -7674
  25. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +4 -1
  26. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts.map +1 -1
  27. package/dist/v2/blocks/operation-block/OperationBlock.vue.js.map +1 -1
  28. package/dist/v2/blocks/operation-block/OperationBlock.vue.script.js +13 -10
  29. package/dist/v2/blocks/operation-block/OperationBlock.vue.script.js.map +1 -1
  30. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +1 -1
  31. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts.map +1 -1
  32. package/dist/v2/blocks/operation-block/components/Header.vue.js +1 -1
  33. package/dist/v2/blocks/operation-block/components/Header.vue.js.map +1 -1
  34. package/dist/v2/blocks/operation-block/components/Header.vue.script.js +2 -2
  35. package/dist/v2/blocks/operation-block/components/Header.vue.script.js.map +1 -1
  36. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.d.ts.map +1 -0
  37. package/dist/{components → v2/blocks/operation-block/components}/OpenApiClientButton.vue.js +3 -3
  38. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.js.map +1 -0
  39. package/dist/{components → v2/blocks/operation-block/components}/OpenApiClientButton.vue.script.js +6 -7
  40. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.script.js.map +1 -0
  41. package/dist/v2/blocks/operation-block/helpers/decode-buffer.js +3 -3
  42. package/dist/v2/blocks/operation-block/helpers/decode-buffer.js.map +1 -1
  43. package/dist/v2/blocks/operation-block/helpers/response-cache.d.ts +1 -1
  44. package/dist/v2/blocks/operation-block/helpers/response-cache.d.ts.map +1 -1
  45. package/dist/v2/blocks/operation-block/helpers/response-cache.js.map +1 -1
  46. package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
  47. package/dist/v2/blocks/operation-block/helpers/send-request.d.ts.map +1 -1
  48. package/dist/v2/blocks/operation-block/helpers/send-request.js +25 -4
  49. package/dist/v2/blocks/operation-block/helpers/send-request.js.map +1 -1
  50. package/dist/v2/blocks/operation-block/index.d.ts +1 -0
  51. package/dist/v2/blocks/operation-block/index.d.ts.map +1 -1
  52. package/dist/v2/blocks/operation-block/index.js +2 -1
  53. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts.map +1 -1
  54. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js +1 -1
  55. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js.map +1 -1
  56. package/dist/{views/Components/CodeSnippet → v2/blocks/operation-code-sample}/helpers/get-snippet.d.ts +1 -1
  57. package/dist/v2/blocks/operation-code-sample/helpers/get-snippet.d.ts.map +1 -0
  58. package/dist/{views/Components/CodeSnippet → v2/blocks/operation-code-sample}/helpers/get-snippet.js +2 -3
  59. package/dist/v2/blocks/operation-code-sample/helpers/get-snippet.js.map +1 -0
  60. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-server-url.js +1 -1
  61. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -1
  62. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts.map +1 -1
  63. package/dist/v2/blocks/request-block/RequestBlock.vue.js +1 -1
  64. package/dist/v2/blocks/request-block/RequestBlock.vue.js.map +1 -1
  65. package/dist/v2/blocks/request-block/RequestBlock.vue.script.js +4 -1
  66. package/dist/v2/blocks/request-block/RequestBlock.vue.script.js.map +1 -1
  67. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +1 -1
  68. package/dist/v2/blocks/request-block/components/RequestBody.vue.js.map +1 -1
  69. package/dist/v2/blocks/request-block/components/RequestBody.vue.script.js +2 -2
  70. package/dist/v2/blocks/request-block/components/RequestBody.vue.script.js.map +1 -1
  71. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js.map +1 -1
  72. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.script.js +1 -1
  73. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.script.js.map +1 -1
  74. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +6 -6
  75. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts.map +1 -1
  76. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts +6 -6
  77. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts.map +1 -1
  78. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
  79. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +1 -1
  80. package/dist/v2/blocks/request-block/helpers/get-default-headers.js.map +1 -1
  81. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +2 -2
  82. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts.map +1 -1
  83. package/dist/v2/blocks/response-block/ResponseBlock.vue.js +1 -1
  84. package/dist/v2/blocks/response-block/ResponseBlock.vue.js.map +1 -1
  85. package/dist/v2/blocks/response-block/ResponseBlock.vue.script.js +1 -1
  86. package/dist/v2/blocks/response-block/ResponseBlock.vue.script.js.map +1 -1
  87. package/dist/v2/blocks/response-block/components/Headers.vue.d.ts.map +1 -1
  88. package/dist/v2/blocks/response-block/components/Headers.vue.js.map +1 -1
  89. package/dist/v2/blocks/response-block/components/Headers.vue.script.js +11 -13
  90. package/dist/v2/blocks/response-block/components/Headers.vue.script.js.map +1 -1
  91. package/dist/v2/blocks/response-block/components/ResponseBody.vue.script.js +1 -1
  92. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js.map +1 -1
  93. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.script.js +1 -1
  94. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.script.js.map +1 -1
  95. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
  96. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts.map +1 -1
  97. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +1 -1
  98. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js.map +1 -1
  99. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.script.js.map +1 -1
  100. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.script.js +1 -1
  101. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.d.ts.map +1 -1
  102. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js.map +1 -1
  103. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.script.js +2 -1
  104. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.script.js.map +1 -1
  105. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.d.ts.map +1 -1
  106. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js.map +1 -1
  107. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.script.js +35 -12
  108. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.script.js.map +1 -1
  109. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +3 -3
  110. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts.map +1 -1
  111. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +1 -1
  112. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js.map +1 -1
  113. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.script.js.map +1 -1
  114. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.d.ts +1 -1
  115. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.d.ts.map +1 -1
  116. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js.map +1 -1
  117. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.script.js +1 -1
  118. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.script.js.map +1 -1
  119. package/dist/v2/blocks/response-block/helpers/get-content-length.d.ts +1 -1
  120. package/dist/v2/blocks/response-block/helpers/get-content-length.d.ts.map +1 -1
  121. package/dist/v2/blocks/response-block/helpers/get-content-length.js.map +1 -1
  122. package/dist/v2/blocks/response-block/helpers/media-types.d.ts +1 -1
  123. package/dist/v2/blocks/response-block/helpers/media-types.d.ts.map +1 -1
  124. package/dist/v2/blocks/response-block/helpers/media-types.js +10 -1
  125. package/dist/v2/blocks/response-block/helpers/media-types.js.map +1 -1
  126. package/dist/v2/blocks/response-block/helpers/process-response-body.d.ts +1 -2
  127. package/dist/v2/blocks/response-block/helpers/process-response-body.d.ts.map +1 -1
  128. package/dist/v2/blocks/response-block/helpers/process-response-body.js +2 -2
  129. package/dist/v2/blocks/response-block/helpers/process-response-body.js.map +1 -1
  130. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
  131. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts.map +1 -1
  132. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +1 -1
  133. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js.map +1 -1
  134. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.script.js +16 -4
  135. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.script.js.map +1 -1
  136. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +1 -1
  137. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js.map +1 -1
  138. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.script.js +2 -2
  139. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.script.js.map +1 -1
  140. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -0
  141. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts.map +1 -1
  142. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js.map +1 -1
  143. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.script.js +4 -1
  144. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.script.js.map +1 -1
  145. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.d.ts +2 -2
  146. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +31 -6
  147. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts.map +1 -1
  148. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js.map +1 -1
  149. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.script.js +6 -8
  150. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.script.js.map +1 -1
  151. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.d.ts.map +1 -1
  152. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +1 -1
  153. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js.map +1 -1
  154. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.script.js +5 -5
  155. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.script.js.map +1 -1
  156. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js.map +1 -1
  157. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.script.js +3 -3
  158. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.script.js.map +1 -1
  159. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js.map +1 -1
  160. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.script.js +1 -1
  161. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.script.js.map +1 -1
  162. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +3 -0
  163. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts.map +1 -1
  164. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js.map +1 -1
  165. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.script.js +6 -3
  166. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.script.js.map +1 -1
  167. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
  168. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +3 -0
  169. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts.map +1 -1
  170. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js.map +1 -1
  171. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.script.js +4 -1
  172. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.script.js.map +1 -1
  173. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
  174. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts.map +1 -1
  175. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.js.map +1 -1
  176. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +1 -1
  177. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts.map +1 -1
  178. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +3 -3
  179. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js.map +1 -1
  180. package/dist/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.d.ts +11 -0
  181. package/dist/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.d.ts.map +1 -0
  182. package/dist/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.js +18 -0
  183. package/dist/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.js.map +1 -0
  184. package/dist/v2/components/code-input/CodeInput.vue.d.ts +4 -3
  185. package/dist/v2/components/code-input/CodeInput.vue.d.ts.map +1 -1
  186. package/dist/v2/components/code-input/CodeInput.vue.js +1 -1
  187. package/dist/v2/components/code-input/CodeInput.vue.js.map +1 -1
  188. package/dist/v2/components/code-input/CodeInput.vue.script.js +8 -0
  189. package/dist/v2/components/code-input/CodeInput.vue.script.js.map +1 -1
  190. package/dist/{views/Collection/CollectionNavigation.vue.d.ts → v2/components/code-input/PillTooltipHost.vue.d.ts} +3 -2
  191. package/dist/v2/components/code-input/PillTooltipHost.vue.d.ts.map +1 -0
  192. package/dist/v2/components/code-input/PillTooltipHost.vue.js +7 -0
  193. package/dist/v2/components/code-input/PillTooltipHost.vue.js.map +1 -0
  194. package/dist/v2/components/code-input/PillTooltipHost.vue.script.js +40 -0
  195. package/dist/v2/components/code-input/PillTooltipHost.vue.script.js.map +1 -0
  196. package/dist/v2/components/code-input/code-variable-widget.d.ts +1 -0
  197. package/dist/v2/components/code-input/code-variable-widget.d.ts.map +1 -1
  198. package/dist/v2/components/code-input/code-variable-widget.js +33 -20
  199. package/dist/v2/components/code-input/code-variable-widget.js.map +1 -1
  200. package/dist/v2/components/code-input/pill-context.d.ts +11 -0
  201. package/dist/v2/components/code-input/pill-context.d.ts.map +1 -0
  202. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +3 -3
  203. package/dist/v2/components/data-table/DataTableInput.vue.d.ts.map +1 -1
  204. package/dist/v2/components/layout/CollapsibleSection.vue.d.ts.map +1 -1
  205. package/dist/v2/components/layout/CollapsibleSection.vue.js.map +1 -1
  206. package/dist/v2/components/layout/CollapsibleSection.vue.script.js +5 -2
  207. package/dist/v2/components/layout/CollapsibleSection.vue.script.js.map +1 -1
  208. package/dist/v2/components/modals/DeleteModal.vue.d.ts +2 -2
  209. package/dist/v2/components/modals/ModalClientContainer.vue.d.ts +2 -2
  210. package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
  211. package/dist/v2/components/server/ServerDropdown.vue.d.ts.map +1 -1
  212. package/dist/v2/components/server/ServerDropdown.vue.js.map +1 -1
  213. package/dist/v2/components/server/ServerDropdown.vue.script.js.map +1 -1
  214. package/dist/v2/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  215. package/dist/v2/components/sidebar/Sidebar.vue.js.map +1 -1
  216. package/dist/v2/components/sidebar/Sidebar.vue.script.js +10 -5
  217. package/dist/v2/components/sidebar/Sidebar.vue.script.js.map +1 -1
  218. package/dist/v2/constants.js +1 -1
  219. package/dist/v2/features/app/App.vue.script.js +1 -1
  220. package/dist/v2/features/app/app-events.d.ts.map +1 -1
  221. package/dist/v2/features/app/app-events.js +8 -0
  222. package/dist/v2/features/app/app-events.js.map +1 -1
  223. package/dist/v2/features/app/app-state.js +6 -6
  224. package/dist/v2/features/app/components/AppSidebar.vue.d.ts.map +1 -1
  225. package/dist/v2/features/app/components/AppSidebar.vue.js +1 -1
  226. package/dist/v2/features/app/components/AppSidebar.vue.js.map +1 -1
  227. package/dist/v2/features/app/components/AppSidebar.vue.script.js +21 -12
  228. package/dist/v2/features/app/components/AppSidebar.vue.script.js.map +1 -1
  229. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.d.ts.map +1 -1
  230. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js.map +1 -1
  231. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.script.js +4 -4
  232. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.script.js.map +1 -1
  233. package/dist/v2/features/app/components/DesktopTab.vue.d.ts +4 -4
  234. package/dist/v2/features/app/components/DesktopTab.vue.d.ts.map +1 -1
  235. package/dist/v2/features/app/components/DesktopTab.vue.js +1 -1
  236. package/dist/v2/features/app/components/DesktopTab.vue.js.map +1 -1
  237. package/dist/v2/features/app/components/DesktopTab.vue.script.js +2 -2
  238. package/dist/v2/features/app/components/DesktopTab.vue.script.js.map +1 -1
  239. package/dist/v2/features/app/components/SidebarItemMenu.vue.d.ts +3 -0
  240. package/dist/v2/features/app/components/SidebarItemMenu.vue.d.ts.map +1 -1
  241. package/dist/v2/features/app/components/SidebarItemMenu.vue.js.map +1 -1
  242. package/dist/v2/features/app/components/SidebarItemMenu.vue.script.js +30 -30
  243. package/dist/v2/features/app/components/SidebarItemMenu.vue.script.js.map +1 -1
  244. package/dist/v2/features/app/helpers/create-temp-operation.d.ts +14 -0
  245. package/dist/v2/features/app/helpers/create-temp-operation.d.ts.map +1 -0
  246. package/dist/v2/features/app/helpers/create-temp-operation.js +52 -0
  247. package/dist/v2/features/app/helpers/create-temp-operation.js.map +1 -0
  248. package/dist/v2/features/app/helpers/routes.d.ts +2 -2
  249. package/dist/v2/features/app/helpers/routes.d.ts.map +1 -1
  250. package/dist/v2/features/app/helpers/routes.js +11 -5
  251. package/dist/v2/features/app/helpers/routes.js.map +1 -1
  252. package/dist/v2/features/app/index.js +2 -2
  253. package/dist/v2/features/collection/DocumentCollection.vue.script.js +1 -1
  254. package/dist/v2/features/collection/OperationCollection.vue.script.js +1 -1
  255. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +1 -1
  256. package/dist/v2/features/collection/components/Runner/components/Runner.vue.d.ts +16 -0
  257. package/dist/v2/features/collection/components/Runner/components/Runner.vue.d.ts.map +1 -0
  258. package/dist/v2/features/collection/components/Runner/components/Runner.vue.js +7 -0
  259. package/dist/v2/features/collection/components/Runner/components/Runner.vue.js.map +1 -0
  260. package/dist/v2/features/collection/components/Runner/components/Runner.vue.script.js +220 -0
  261. package/dist/v2/features/collection/components/Runner/components/Runner.vue.script.js.map +1 -0
  262. package/dist/{components/Sidebar/SidebarButton.vue.d.ts → v2/features/collection/components/Runner/components/RunnerCard.vue.d.ts} +8 -6
  263. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.d.ts.map +1 -0
  264. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.js +7 -0
  265. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.js.map +1 -0
  266. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.script.js +45 -0
  267. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.script.js.map +1 -0
  268. package/dist/{components/Form/LabelInput.vue.d.ts → v2/features/collection/components/Runner/components/RunnerOrderItem.vue.d.ts} +12 -8
  269. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.d.ts.map +1 -0
  270. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.js +7 -0
  271. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.js.map +1 -0
  272. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.script.js +73 -0
  273. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.script.js.map +1 -0
  274. package/dist/{components/AddressBar/AddressBarHistory.vue.d.ts → v2/features/collection/components/Runner/components/RunnerResultRow.vue.d.ts} +11 -5
  275. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.d.ts.map +1 -0
  276. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.js +7 -0
  277. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.js.map +1 -0
  278. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.script.js +124 -0
  279. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.script.js.map +1 -0
  280. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.d.ts +17 -0
  281. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.d.ts.map +1 -0
  282. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.js +7 -0
  283. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.js.map +1 -0
  284. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.script.js +126 -0
  285. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.script.js.map +1 -0
  286. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.d.ts +18 -0
  287. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.d.ts.map +1 -0
  288. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.js +7 -0
  289. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.js.map +1 -0
  290. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.script.js +180 -0
  291. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.script.js.map +1 -0
  292. package/dist/{components/Sidebar/Actions/EditSidebarListElement.vue.d.ts → v2/features/collection/components/Runner/components/RunnerTreeExample.vue.d.ts} +6 -5
  293. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.d.ts.map +1 -0
  294. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.js +7 -0
  295. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.js.map +1 -0
  296. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.script.js +44 -0
  297. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.script.js.map +1 -0
  298. package/dist/{components/DataTable/DataTableText.vue.d.ts → v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.d.ts} +6 -4
  299. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.d.ts.map +1 -0
  300. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.js +7 -0
  301. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.js.map +1 -0
  302. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.script.js +53 -0
  303. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.script.js.map +1 -0
  304. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.d.ts +23 -0
  305. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.d.ts.map +1 -0
  306. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.js +7 -0
  307. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.js.map +1 -0
  308. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.script.js +75 -0
  309. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.script.js.map +1 -0
  310. package/dist/v2/features/collection/components/Runner/hooks/index.d.ts +3 -0
  311. package/dist/v2/features/collection/components/Runner/hooks/index.d.ts.map +1 -0
  312. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.d.ts +73 -0
  313. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.d.ts.map +1 -0
  314. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.js +190 -0
  315. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.js.map +1 -0
  316. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.d.ts +46 -0
  317. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.d.ts.map +1 -0
  318. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.js +114 -0
  319. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.js.map +1 -0
  320. package/dist/v2/features/collection/components/Runner/index.d.ts +2 -0
  321. package/dist/v2/features/collection/components/Runner/index.d.ts.map +1 -0
  322. package/dist/v2/features/collection/components/Tabs.vue.d.ts.map +1 -1
  323. package/dist/v2/features/collection/components/Tabs.vue.js.map +1 -1
  324. package/dist/v2/features/collection/components/Tabs.vue.script.js +3 -2
  325. package/dist/v2/features/collection/components/Tabs.vue.script.js.map +1 -1
  326. package/dist/v2/features/command-palette/TheCommandPalette.vue.script.js +2 -2
  327. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js.map +1 -1
  328. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.script.js +3 -3
  329. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.script.js.map +1 -1
  330. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.script.js +1 -1
  331. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +1 -1
  332. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js.map +1 -1
  333. package/dist/{libs → v2/features/command-palette/helpers}/parse-curl.d.ts +2 -2
  334. package/dist/v2/features/command-palette/helpers/parse-curl.d.ts.map +1 -0
  335. package/dist/{libs → v2/features/command-palette/helpers}/parse-curl.js +1 -1
  336. package/dist/v2/features/command-palette/helpers/parse-curl.js.map +1 -0
  337. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +1 -1
  338. package/dist/v2/features/command-palette/index.d.ts +2 -0
  339. package/dist/v2/features/command-palette/index.d.ts.map +1 -1
  340. package/dist/v2/features/command-palette/index.js +3 -1
  341. package/dist/v2/features/editor/helpers/configure-language-support.js +3 -3
  342. package/dist/v2/features/editor/helpers/configure-language-support.js.map +1 -1
  343. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +1 -1
  344. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts.map +1 -1
  345. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +1 -1
  346. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js.map +1 -1
  347. package/dist/v2/features/editor/helpers/json/json-ast.d.ts +1 -1
  348. package/dist/v2/features/editor/helpers/json/json-ast.d.ts.map +1 -1
  349. package/dist/v2/features/editor/helpers/json/json-ast.js +1 -1
  350. package/dist/v2/features/editor/helpers/json/json-ast.js.map +1 -1
  351. package/dist/v2/features/editor/helpers/theme/load-css-variables.d.ts +1 -1
  352. package/dist/v2/features/editor/hooks/use-editor-markers.d.ts.map +1 -1
  353. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.d.ts.map +1 -1
  354. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js.map +1 -1
  355. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.script.js +4 -4
  356. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.script.js.map +1 -1
  357. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.d.ts +5 -0
  358. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.d.ts.map +1 -1
  359. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js.map +1 -1
  360. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.script.js +70 -13
  361. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.script.js.map +1 -1
  362. package/dist/v2/features/modal/Modal.vue.d.ts +8 -3
  363. package/dist/v2/features/modal/Modal.vue.d.ts.map +1 -1
  364. package/dist/v2/features/modal/Modal.vue.js.map +1 -1
  365. package/dist/v2/features/modal/Modal.vue.script.js +1 -1
  366. package/dist/v2/features/modal/Modal.vue.script.js.map +1 -1
  367. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +4 -3
  368. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts.map +1 -1
  369. package/dist/v2/features/modal/helpers/create-api-client-modal.js +12 -3
  370. package/dist/v2/features/modal/helpers/create-api-client-modal.js.map +1 -1
  371. package/dist/v2/features/modal/helpers/types.d.ts +8 -0
  372. package/dist/v2/features/modal/helpers/types.d.ts.map +1 -0
  373. package/dist/v2/features/modal/index.d.ts +1 -0
  374. package/dist/v2/features/modal/index.d.ts.map +1 -1
  375. package/dist/v2/features/operation/Operation.vue.d.ts +3 -3
  376. package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
  377. package/dist/v2/features/operation/Operation.vue.js.map +1 -1
  378. package/dist/v2/features/operation/Operation.vue.script.js +3 -1
  379. package/dist/v2/features/operation/Operation.vue.script.js.map +1 -1
  380. package/dist/v2/features/settings/CollectionSettings.vue.script.js +1 -1
  381. package/dist/v2/features/settings/components/Appearance.vue.d.ts +2 -2
  382. package/dist/v2/helpers/safe-run.d.ts +10 -0
  383. package/dist/v2/helpers/safe-run.d.ts.map +1 -0
  384. package/dist/v2/helpers/safe-run.js +19 -0
  385. package/dist/v2/helpers/safe-run.js.map +1 -0
  386. package/package.json +149 -170
  387. package/dist/assets/keycap.ascii.virtual.js +0 -6
  388. package/dist/assets/keycap.ascii.virtual.js.map +0 -1
  389. package/dist/components/AddressBar/AddressBar.vue.d.ts +0 -20
  390. package/dist/components/AddressBar/AddressBar.vue.d.ts.map +0 -1
  391. package/dist/components/AddressBar/AddressBar.vue.js +0 -9
  392. package/dist/components/AddressBar/AddressBar.vue.js.map +0 -1
  393. package/dist/components/AddressBar/AddressBar.vue.script.js +0 -204
  394. package/dist/components/AddressBar/AddressBar.vue.script.js.map +0 -1
  395. package/dist/components/AddressBar/AddressBarHistory.vue.d.ts.map +0 -1
  396. package/dist/components/AddressBar/AddressBarHistory.vue.js +0 -9
  397. package/dist/components/AddressBar/AddressBarHistory.vue.js.map +0 -1
  398. package/dist/components/AddressBar/AddressBarHistory.vue.script.js +0 -85
  399. package/dist/components/AddressBar/AddressBarHistory.vue.script.js.map +0 -1
  400. package/dist/components/AddressBar/httpStatusCodeColors.d.ts +0 -22
  401. package/dist/components/AddressBar/httpStatusCodeColors.d.ts.map +0 -1
  402. package/dist/components/AddressBar/httpStatusCodeColors.js +0 -20
  403. package/dist/components/AddressBar/httpStatusCodeColors.js.map +0 -1
  404. package/dist/components/AddressBar/index.d.ts +0 -2
  405. package/dist/components/AddressBar/index.d.ts.map +0 -1
  406. package/dist/components/AddressBar/index.js +0 -2
  407. package/dist/components/CodeInput/CodeInput.vue.d.ts +0 -101
  408. package/dist/components/CodeInput/CodeInput.vue.d.ts.map +0 -1
  409. package/dist/components/CodeInput/CodeInput.vue.js +0 -10
  410. package/dist/components/CodeInput/CodeInput.vue.js.map +0 -1
  411. package/dist/components/CodeInput/CodeInput.vue.script.js +0 -294
  412. package/dist/components/CodeInput/CodeInput.vue.script.js.map +0 -1
  413. package/dist/components/CodeInput/codeVariableWidget.d.ts +0 -17
  414. package/dist/components/CodeInput/codeVariableWidget.d.ts.map +0 -1
  415. package/dist/components/CodeInput/codeVariableWidget.js +0 -135
  416. package/dist/components/CodeInput/codeVariableWidget.js.map +0 -1
  417. package/dist/components/CodeInput/index.d.ts +0 -2
  418. package/dist/components/CodeInput/index.d.ts.map +0 -1
  419. package/dist/components/CodeInput/index.js +0 -2
  420. package/dist/components/CommandPalette/CommandActionForm.vue.d.ts +0 -31
  421. package/dist/components/CommandPalette/CommandActionForm.vue.d.ts.map +0 -1
  422. package/dist/components/CommandPalette/CommandActionForm.vue.js +0 -7
  423. package/dist/components/CommandPalette/CommandActionForm.vue.js.map +0 -1
  424. package/dist/components/CommandPalette/CommandActionForm.vue.script.js +0 -42
  425. package/dist/components/CommandPalette/CommandActionForm.vue.script.js.map +0 -1
  426. package/dist/components/CommandPalette/CommandActionInput.vue.d.ts +0 -15
  427. package/dist/components/CommandPalette/CommandActionInput.vue.d.ts.map +0 -1
  428. package/dist/components/CommandPalette/CommandActionInput.vue.js +0 -7
  429. package/dist/components/CommandPalette/CommandActionInput.vue.js.map +0 -1
  430. package/dist/components/CommandPalette/CommandActionInput.vue.script.js +0 -55
  431. package/dist/components/CommandPalette/CommandActionInput.vue.script.js.map +0 -1
  432. package/dist/components/CommandPalette/CommandPaletteCollection.vue.d.ts +0 -10
  433. package/dist/components/CommandPalette/CommandPaletteCollection.vue.d.ts.map +0 -1
  434. package/dist/components/CommandPalette/CommandPaletteCollection.vue.js +0 -7
  435. package/dist/components/CommandPalette/CommandPaletteCollection.vue.js.map +0 -1
  436. package/dist/components/CommandPalette/CommandPaletteCollection.vue.script.js +0 -78
  437. package/dist/components/CommandPalette/CommandPaletteCollection.vue.script.js.map +0 -1
  438. package/dist/components/CommandPalette/CommandPaletteExample.vue.d.ts +0 -16
  439. package/dist/components/CommandPalette/CommandPaletteExample.vue.d.ts.map +0 -1
  440. package/dist/components/CommandPalette/CommandPaletteExample.vue.js +0 -7
  441. package/dist/components/CommandPalette/CommandPaletteExample.vue.js.map +0 -1
  442. package/dist/components/CommandPalette/CommandPaletteExample.vue.script.js +0 -104
  443. package/dist/components/CommandPalette/CommandPaletteExample.vue.script.js.map +0 -1
  444. package/dist/components/CommandPalette/CommandPaletteImport.vue.d.ts +0 -10
  445. package/dist/components/CommandPalette/CommandPaletteImport.vue.d.ts.map +0 -1
  446. package/dist/components/CommandPalette/CommandPaletteImport.vue.js +0 -7
  447. package/dist/components/CommandPalette/CommandPaletteImport.vue.js.map +0 -1
  448. package/dist/components/CommandPalette/CommandPaletteImport.vue.script.js +0 -181
  449. package/dist/components/CommandPalette/CommandPaletteImport.vue.script.js.map +0 -1
  450. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.d.ts +0 -20
  451. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.d.ts.map +0 -1
  452. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js +0 -9
  453. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js.map +0 -1
  454. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.script.js +0 -108
  455. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.script.js.map +0 -1
  456. package/dist/components/CommandPalette/CommandPaletteServer.vue.d.ts +0 -16
  457. package/dist/components/CommandPalette/CommandPaletteServer.vue.d.ts.map +0 -1
  458. package/dist/components/CommandPalette/CommandPaletteServer.vue.js +0 -7
  459. package/dist/components/CommandPalette/CommandPaletteServer.vue.js.map +0 -1
  460. package/dist/components/CommandPalette/CommandPaletteServer.vue.script.js +0 -108
  461. package/dist/components/CommandPalette/CommandPaletteServer.vue.script.js.map +0 -1
  462. package/dist/components/CommandPalette/CommandPaletteTag.vue.d.ts +0 -10
  463. package/dist/components/CommandPalette/CommandPaletteTag.vue.d.ts.map +0 -1
  464. package/dist/components/CommandPalette/CommandPaletteTag.vue.js +0 -7
  465. package/dist/components/CommandPalette/CommandPaletteTag.vue.js.map +0 -1
  466. package/dist/components/CommandPalette/CommandPaletteTag.vue.script.js +0 -70
  467. package/dist/components/CommandPalette/CommandPaletteTag.vue.script.js.map +0 -1
  468. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.d.ts +0 -10
  469. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.d.ts.map +0 -1
  470. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js +0 -7
  471. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js.map +0 -1
  472. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.script.js +0 -49
  473. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.script.js.map +0 -1
  474. package/dist/components/CommandPalette/TheCommandPalette.vue.d.ts +0 -217
  475. package/dist/components/CommandPalette/TheCommandPalette.vue.d.ts.map +0 -1
  476. package/dist/components/CommandPalette/TheCommandPalette.vue.js +0 -9
  477. package/dist/components/CommandPalette/TheCommandPalette.vue.js.map +0 -1
  478. package/dist/components/CommandPalette/TheCommandPalette.vue.script.js +0 -323
  479. package/dist/components/CommandPalette/TheCommandPalette.vue.script.js.map +0 -1
  480. package/dist/components/CommandPalette/WatchModeToggle.vue.d.ts +0 -14
  481. package/dist/components/CommandPalette/WatchModeToggle.vue.d.ts.map +0 -1
  482. package/dist/components/CommandPalette/WatchModeToggle.vue.js +0 -7
  483. package/dist/components/CommandPalette/WatchModeToggle.vue.js.map +0 -1
  484. package/dist/components/CommandPalette/WatchModeToggle.vue.script.js +0 -40
  485. package/dist/components/CommandPalette/WatchModeToggle.vue.script.js.map +0 -1
  486. package/dist/components/CommandPalette/index.d.ts +0 -2
  487. package/dist/components/CommandPalette/index.d.ts.map +0 -1
  488. package/dist/components/CommandPalette/index.js +0 -2
  489. package/dist/components/DataTable/DataTable.vue.d.ts +0 -23
  490. package/dist/components/DataTable/DataTable.vue.d.ts.map +0 -1
  491. package/dist/components/DataTable/DataTable.vue.js +0 -7
  492. package/dist/components/DataTable/DataTable.vue.js.map +0 -1
  493. package/dist/components/DataTable/DataTable.vue.script.js +0 -30
  494. package/dist/components/DataTable/DataTable.vue.script.js.map +0 -1
  495. package/dist/components/DataTable/DataTableCell.vue.d.ts +0 -20
  496. package/dist/components/DataTable/DataTableCell.vue.d.ts.map +0 -1
  497. package/dist/components/DataTable/DataTableCell.vue.js +0 -7
  498. package/dist/components/DataTable/DataTableCell.vue.js.map +0 -1
  499. package/dist/components/DataTable/DataTableCell.vue.script.js +0 -21
  500. package/dist/components/DataTable/DataTableCell.vue.script.js.map +0 -1
  501. package/dist/components/DataTable/DataTableCheckbox.vue.d.ts +0 -15
  502. package/dist/components/DataTable/DataTableCheckbox.vue.d.ts.map +0 -1
  503. package/dist/components/DataTable/DataTableCheckbox.vue.js +0 -7
  504. package/dist/components/DataTable/DataTableCheckbox.vue.js.map +0 -1
  505. package/dist/components/DataTable/DataTableCheckbox.vue.script.js +0 -43
  506. package/dist/components/DataTable/DataTableCheckbox.vue.script.js.map +0 -1
  507. package/dist/components/DataTable/DataTableHeader.vue.d.ts +0 -14
  508. package/dist/components/DataTable/DataTableHeader.vue.d.ts.map +0 -1
  509. package/dist/components/DataTable/DataTableHeader.vue.js +0 -7
  510. package/dist/components/DataTable/DataTableHeader.vue.js.map +0 -1
  511. package/dist/components/DataTable/DataTableHeader.vue.script.js +0 -20
  512. package/dist/components/DataTable/DataTableHeader.vue.script.js.map +0 -1
  513. package/dist/components/DataTable/DataTableInput.vue.d.ts +0 -54
  514. package/dist/components/DataTable/DataTableInput.vue.d.ts.map +0 -1
  515. package/dist/components/DataTable/DataTableInput.vue.js +0 -9
  516. package/dist/components/DataTable/DataTableInput.vue.js.map +0 -1
  517. package/dist/components/DataTable/DataTableInput.vue.script.js +0 -164
  518. package/dist/components/DataTable/DataTableInput.vue.script.js.map +0 -1
  519. package/dist/components/DataTable/DataTableInputSelect.vue.d.ts +0 -17
  520. package/dist/components/DataTable/DataTableInputSelect.vue.d.ts.map +0 -1
  521. package/dist/components/DataTable/DataTableInputSelect.vue.js +0 -7
  522. package/dist/components/DataTable/DataTableInputSelect.vue.js.map +0 -1
  523. package/dist/components/DataTable/DataTableInputSelect.vue.script.js +0 -150
  524. package/dist/components/DataTable/DataTableInputSelect.vue.script.js.map +0 -1
  525. package/dist/components/DataTable/DataTableRow.vue.d.ts +0 -14
  526. package/dist/components/DataTable/DataTableRow.vue.d.ts.map +0 -1
  527. package/dist/components/DataTable/DataTableRow.vue.js +0 -13
  528. package/dist/components/DataTable/DataTableRow.vue.js.map +0 -1
  529. package/dist/components/DataTable/DataTableText.vue.d.ts.map +0 -1
  530. package/dist/components/DataTable/DataTableText.vue.js +0 -7
  531. package/dist/components/DataTable/DataTableText.vue.js.map +0 -1
  532. package/dist/components/DataTable/DataTableText.vue.script.js +0 -20
  533. package/dist/components/DataTable/DataTableText.vue.script.js.map +0 -1
  534. package/dist/components/DataTable/index.d.ts +0 -9
  535. package/dist/components/DataTable/index.d.ts.map +0 -1
  536. package/dist/components/DataTable/index.js +0 -9
  537. package/dist/components/EmptyState.vue.d.ts +0 -4
  538. package/dist/components/EmptyState.vue.d.ts.map +0 -1
  539. package/dist/components/EmptyState.vue.js +0 -9
  540. package/dist/components/EmptyState.vue.js.map +0 -1
  541. package/dist/components/EmptyState.vue.script.js +0 -41
  542. package/dist/components/EmptyState.vue.script.js.map +0 -1
  543. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.d.ts +0 -4
  544. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.d.ts.map +0 -1
  545. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js +0 -7
  546. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js.map +0 -1
  547. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.script.js +0 -111
  548. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.script.js.map +0 -1
  549. package/dist/components/Form/Form.vue.d.ts +0 -26
  550. package/dist/components/Form/Form.vue.d.ts.map +0 -1
  551. package/dist/components/Form/Form.vue.js +0 -7
  552. package/dist/components/Form/Form.vue.js.map +0 -1
  553. package/dist/components/Form/Form.vue.script.js +0 -82
  554. package/dist/components/Form/Form.vue.script.js.map +0 -1
  555. package/dist/components/Form/LabelInput.vue.d.ts.map +0 -1
  556. package/dist/components/Form/LabelInput.vue.js +0 -9
  557. package/dist/components/Form/LabelInput.vue.js.map +0 -1
  558. package/dist/components/Form/LabelInput.vue.script.js +0 -39
  559. package/dist/components/Form/LabelInput.vue.script.js.map +0 -1
  560. package/dist/components/HttpMethod/index.js +0 -2
  561. package/dist/components/ImportCollection/DropEventListener.vue.d.ts +0 -8
  562. package/dist/components/ImportCollection/DropEventListener.vue.d.ts.map +0 -1
  563. package/dist/components/ImportCollection/DropEventListener.vue.js +0 -7
  564. package/dist/components/ImportCollection/DropEventListener.vue.js.map +0 -1
  565. package/dist/components/ImportCollection/DropEventListener.vue.script.js +0 -91
  566. package/dist/components/ImportCollection/DropEventListener.vue.script.js.map +0 -1
  567. package/dist/components/ImportCollection/ImportCollectionListener.vue.d.ts +0 -14
  568. package/dist/components/ImportCollection/ImportCollectionListener.vue.d.ts.map +0 -1
  569. package/dist/components/ImportCollection/ImportCollectionListener.vue.js +0 -7
  570. package/dist/components/ImportCollection/ImportCollectionListener.vue.js.map +0 -1
  571. package/dist/components/ImportCollection/ImportCollectionListener.vue.script.js +0 -102
  572. package/dist/components/ImportCollection/ImportCollectionListener.vue.script.js.map +0 -1
  573. package/dist/components/ImportCollection/ImportCollectionModal.vue.d.ts +0 -13
  574. package/dist/components/ImportCollection/ImportCollectionModal.vue.d.ts.map +0 -1
  575. package/dist/components/ImportCollection/ImportCollectionModal.vue.js +0 -8
  576. package/dist/components/ImportCollection/ImportCollectionModal.vue.js.map +0 -1
  577. package/dist/components/ImportCollection/ImportCollectionModal.vue.script.js +0 -206
  578. package/dist/components/ImportCollection/ImportCollectionModal.vue.script.js.map +0 -1
  579. package/dist/components/ImportCollection/ImportNowButton.vue.d.ts +0 -13
  580. package/dist/components/ImportCollection/ImportNowButton.vue.d.ts.map +0 -1
  581. package/dist/components/ImportCollection/ImportNowButton.vue.js +0 -7
  582. package/dist/components/ImportCollection/ImportNowButton.vue.js.map +0 -1
  583. package/dist/components/ImportCollection/ImportNowButton.vue.script.js +0 -82
  584. package/dist/components/ImportCollection/ImportNowButton.vue.script.js.map +0 -1
  585. package/dist/components/ImportCollection/PasteEventListener.vue.d.ts +0 -8
  586. package/dist/components/ImportCollection/PasteEventListener.vue.d.ts.map +0 -1
  587. package/dist/components/ImportCollection/PasteEventListener.vue.js +0 -7
  588. package/dist/components/ImportCollection/PasteEventListener.vue.js.map +0 -1
  589. package/dist/components/ImportCollection/PasteEventListener.vue.script.js +0 -31
  590. package/dist/components/ImportCollection/PasteEventListener.vue.script.js.map +0 -1
  591. package/dist/components/ImportCollection/PrefetchError.vue.d.ts +0 -7
  592. package/dist/components/ImportCollection/PrefetchError.vue.d.ts.map +0 -1
  593. package/dist/components/ImportCollection/PrefetchError.vue.js +0 -7
  594. package/dist/components/ImportCollection/PrefetchError.vue.js.map +0 -1
  595. package/dist/components/ImportCollection/PrefetchError.vue.script.js +0 -32
  596. package/dist/components/ImportCollection/PrefetchError.vue.script.js.map +0 -1
  597. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.d.ts +0 -8
  598. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.d.ts.map +0 -1
  599. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js +0 -7
  600. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js.map +0 -1
  601. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.script.js +0 -21
  602. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.script.js.map +0 -1
  603. package/dist/components/ImportCollection/WorkspaceSelector.vue.d.ts +0 -4
  604. package/dist/components/ImportCollection/WorkspaceSelector.vue.d.ts.map +0 -1
  605. package/dist/components/ImportCollection/WorkspaceSelector.vue.js +0 -7
  606. package/dist/components/ImportCollection/WorkspaceSelector.vue.js.map +0 -1
  607. package/dist/components/ImportCollection/WorkspaceSelector.vue.script.js +0 -114
  608. package/dist/components/ImportCollection/WorkspaceSelector.vue.script.js.map +0 -1
  609. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.d.ts +0 -39
  610. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.d.ts.map +0 -1
  611. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js +0 -109
  612. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js.map +0 -1
  613. package/dist/components/ImportCollection/index.d.ts +0 -2
  614. package/dist/components/ImportCollection/index.d.ts.map +0 -1
  615. package/dist/components/ImportCollection/index.js +0 -2
  616. package/dist/components/ImportCollection/utils/get-openapi-version.d.ts +0 -5
  617. package/dist/components/ImportCollection/utils/get-openapi-version.d.ts.map +0 -1
  618. package/dist/components/ImportCollection/utils/get-openapi-version.js +0 -26
  619. package/dist/components/ImportCollection/utils/get-openapi-version.js.map +0 -1
  620. package/dist/components/ImportCollection/utils/import-collection.d.ts +0 -12
  621. package/dist/components/ImportCollection/utils/import-collection.d.ts.map +0 -1
  622. package/dist/components/ImportCollection/utils/import-collection.js +0 -23
  623. package/dist/components/ImportCollection/utils/import-collection.js.map +0 -1
  624. package/dist/components/ImportCollection/utils/is-document.d.ts +0 -3
  625. package/dist/components/ImportCollection/utils/is-document.d.ts.map +0 -1
  626. package/dist/components/ImportCollection/utils/is-document.js +0 -12
  627. package/dist/components/ImportCollection/utils/is-document.js.map +0 -1
  628. package/dist/components/ImportCollection/utils/is-url.d.ts +0 -5
  629. package/dist/components/ImportCollection/utils/is-url.d.ts.map +0 -1
  630. package/dist/components/ImportCollection/utils/is-url.js +0 -14
  631. package/dist/components/ImportCollection/utils/is-url.js.map +0 -1
  632. package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +0 -6
  633. package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts.map +0 -1
  634. package/dist/components/ImportCollection/utils/workspace-store-is-empty.js +0 -13
  635. package/dist/components/ImportCollection/utils/workspace-store-is-empty.js.map +0 -1
  636. package/dist/components/OpenApiClientButton.vue.d.ts.map +0 -1
  637. package/dist/components/OpenApiClientButton.vue.js.map +0 -1
  638. package/dist/components/OpenApiClientButton.vue.script.js.map +0 -1
  639. package/dist/components/Search/useSearch.d.ts +0 -33
  640. package/dist/components/Search/useSearch.d.ts.map +0 -1
  641. package/dist/components/Search/useSearch.js +0 -110
  642. package/dist/components/Search/useSearch.js.map +0 -1
  643. package/dist/components/Server/ServerDropdown.vue.d.ts +0 -12
  644. package/dist/components/Server/ServerDropdown.vue.d.ts.map +0 -1
  645. package/dist/components/Server/ServerDropdown.vue.js +0 -7
  646. package/dist/components/Server/ServerDropdown.vue.js.map +0 -1
  647. package/dist/components/Server/ServerDropdown.vue.script.js +0 -133
  648. package/dist/components/Server/ServerDropdown.vue.script.js.map +0 -1
  649. package/dist/components/Server/ServerDropdownItem.vue.d.ts +0 -19
  650. package/dist/components/Server/ServerDropdownItem.vue.d.ts.map +0 -1
  651. package/dist/components/Server/ServerDropdownItem.vue.js +0 -9
  652. package/dist/components/Server/ServerDropdownItem.vue.js.map +0 -1
  653. package/dist/components/Server/ServerDropdownItem.vue.script.js +0 -90
  654. package/dist/components/Server/ServerDropdownItem.vue.script.js.map +0 -1
  655. package/dist/components/Server/ServerSelector.vue.d.ts +0 -17
  656. package/dist/components/Server/ServerSelector.vue.d.ts.map +0 -1
  657. package/dist/components/Server/ServerSelector.vue.js +0 -7
  658. package/dist/components/Server/ServerSelector.vue.js.map +0 -1
  659. package/dist/components/Server/ServerSelector.vue.script.js +0 -87
  660. package/dist/components/Server/ServerSelector.vue.script.js.map +0 -1
  661. package/dist/components/SideNav/DownloadAppButton.vue.d.ts +0 -4
  662. package/dist/components/SideNav/DownloadAppButton.vue.d.ts.map +0 -1
  663. package/dist/components/SideNav/DownloadAppButton.vue.js +0 -9
  664. package/dist/components/SideNav/DownloadAppButton.vue.js.map +0 -1
  665. package/dist/components/SideNav/DownloadAppButton.vue.script.js +0 -31
  666. package/dist/components/SideNav/DownloadAppButton.vue.script.js.map +0 -1
  667. package/dist/components/SideNav/SideHelp.vue.d.ts +0 -4
  668. package/dist/components/SideNav/SideHelp.vue.d.ts.map +0 -1
  669. package/dist/components/SideNav/SideHelp.vue.js +0 -7
  670. package/dist/components/SideNav/SideHelp.vue.js.map +0 -1
  671. package/dist/components/SideNav/SideHelp.vue.script.js +0 -102
  672. package/dist/components/SideNav/SideHelp.vue.script.js.map +0 -1
  673. package/dist/components/SideNav/SideNav.vue.d.ts +0 -4
  674. package/dist/components/SideNav/SideNav.vue.d.ts.map +0 -1
  675. package/dist/components/SideNav/SideNav.vue.js +0 -7
  676. package/dist/components/SideNav/SideNav.vue.js.map +0 -1
  677. package/dist/components/SideNav/SideNav.vue.script.js +0 -80
  678. package/dist/components/SideNav/SideNav.vue.script.js.map +0 -1
  679. package/dist/components/SideNav/SideNavGroup.vue.d.ts +0 -14
  680. package/dist/components/SideNav/SideNavGroup.vue.d.ts.map +0 -1
  681. package/dist/components/SideNav/SideNavGroup.vue.js +0 -7
  682. package/dist/components/SideNav/SideNavGroup.vue.js.map +0 -1
  683. package/dist/components/SideNav/SideNavGroup.vue.script.js +0 -16
  684. package/dist/components/SideNav/SideNavGroup.vue.script.js.map +0 -1
  685. package/dist/components/SideNav/SideNavLink.vue.d.ts +0 -23
  686. package/dist/components/SideNav/SideNavLink.vue.d.ts.map +0 -1
  687. package/dist/components/SideNav/SideNavLink.vue.js +0 -7
  688. package/dist/components/SideNav/SideNavLink.vue.js.map +0 -1
  689. package/dist/components/SideNav/SideNavLink.vue.script.js +0 -32
  690. package/dist/components/SideNav/SideNavLink.vue.script.js.map +0 -1
  691. package/dist/components/SideNav/SideNavRouterLink.vue.d.ts +0 -21
  692. package/dist/components/SideNav/SideNavRouterLink.vue.d.ts.map +0 -1
  693. package/dist/components/SideNav/SideNavRouterLink.vue.js +0 -7
  694. package/dist/components/SideNav/SideNavRouterLink.vue.js.map +0 -1
  695. package/dist/components/SideNav/SideNavRouterLink.vue.script.js +0 -34
  696. package/dist/components/SideNav/SideNavRouterLink.vue.script.js.map +0 -1
  697. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.d.ts +0 -14
  698. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.d.ts.map +0 -1
  699. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +0 -7
  700. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js.map +0 -1
  701. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.script.js +0 -56
  702. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.script.js.map +0 -1
  703. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.d.ts.map +0 -1
  704. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +0 -7
  705. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js.map +0 -1
  706. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.script.js +0 -31
  707. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.script.js.map +0 -1
  708. package/dist/components/Sidebar/Sidebar.vue.d.ts +0 -23
  709. package/dist/components/Sidebar/Sidebar.vue.d.ts.map +0 -1
  710. package/dist/components/Sidebar/Sidebar.vue.js +0 -9
  711. package/dist/components/Sidebar/Sidebar.vue.js.map +0 -1
  712. package/dist/components/Sidebar/Sidebar.vue.script.js +0 -71
  713. package/dist/components/Sidebar/Sidebar.vue.script.js.map +0 -1
  714. package/dist/components/Sidebar/SidebarButton.vue.d.ts.map +0 -1
  715. package/dist/components/Sidebar/SidebarButton.vue.js +0 -7
  716. package/dist/components/Sidebar/SidebarButton.vue.js.map +0 -1
  717. package/dist/components/Sidebar/SidebarButton.vue.script.js +0 -36
  718. package/dist/components/Sidebar/SidebarButton.vue.script.js.map +0 -1
  719. package/dist/components/Sidebar/SidebarList.vue.d.ts +0 -14
  720. package/dist/components/Sidebar/SidebarList.vue.d.ts.map +0 -1
  721. package/dist/components/Sidebar/SidebarList.vue.js +0 -13
  722. package/dist/components/Sidebar/SidebarList.vue.js.map +0 -1
  723. package/dist/components/Sidebar/SidebarListElement.vue.d.ts +0 -44
  724. package/dist/components/Sidebar/SidebarListElement.vue.d.ts.map +0 -1
  725. package/dist/components/Sidebar/SidebarListElement.vue.js +0 -10
  726. package/dist/components/Sidebar/SidebarListElement.vue.js.map +0 -1
  727. package/dist/components/Sidebar/SidebarListElement.vue.script.js +0 -128
  728. package/dist/components/Sidebar/SidebarListElement.vue.script.js.map +0 -1
  729. package/dist/components/Sidebar/SidebarListElementActions.vue.d.ts +0 -21
  730. package/dist/components/Sidebar/SidebarListElementActions.vue.d.ts.map +0 -1
  731. package/dist/components/Sidebar/SidebarListElementActions.vue.js +0 -7
  732. package/dist/components/Sidebar/SidebarListElementActions.vue.js.map +0 -1
  733. package/dist/components/Sidebar/SidebarListElementActions.vue.script.js +0 -97
  734. package/dist/components/Sidebar/SidebarListElementActions.vue.script.js.map +0 -1
  735. package/dist/components/Sidebar/SidebarToggle.vue.d.ts +0 -4
  736. package/dist/components/Sidebar/SidebarToggle.vue.d.ts.map +0 -1
  737. package/dist/components/Sidebar/SidebarToggle.vue.js +0 -7
  738. package/dist/components/Sidebar/SidebarToggle.vue.js.map +0 -1
  739. package/dist/components/Sidebar/SidebarToggle.vue.script.js +0 -47
  740. package/dist/components/Sidebar/SidebarToggle.vue.script.js.map +0 -1
  741. package/dist/components/Sidebar/index.d.ts +0 -2
  742. package/dist/components/Sidebar/index.d.ts.map +0 -1
  743. package/dist/components/Sidebar/index.js +0 -2
  744. package/dist/components/TopNav/TopNav.vue.d.ts +0 -10
  745. package/dist/components/TopNav/TopNav.vue.d.ts.map +0 -1
  746. package/dist/components/TopNav/TopNav.vue.js +0 -7
  747. package/dist/components/TopNav/TopNav.vue.js.map +0 -1
  748. package/dist/components/TopNav/TopNav.vue.script.js +0 -232
  749. package/dist/components/TopNav/TopNav.vue.script.js.map +0 -1
  750. package/dist/components/TopNav/TopNavItem.vue.d.ts +0 -24
  751. package/dist/components/TopNav/TopNavItem.vue.d.ts.map +0 -1
  752. package/dist/components/TopNav/TopNavItem.vue.js +0 -9
  753. package/dist/components/TopNav/TopNavItem.vue.js.map +0 -1
  754. package/dist/components/TopNav/TopNavItem.vue.script.js +0 -129
  755. package/dist/components/TopNav/TopNavItem.vue.script.js.map +0 -1
  756. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.d.ts +0 -33
  757. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.d.ts.map +0 -1
  758. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js +0 -7
  759. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js.map +0 -1
  760. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.script.js +0 -84
  761. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.script.js.map +0 -1
  762. package/dist/components/ViewLayout/index.d.ts +0 -2
  763. package/dist/components/ViewLayout/index.d.ts.map +0 -1
  764. package/dist/components/ViewLayout/index.js +0 -2
  765. package/dist/components/index.d.ts +0 -4
  766. package/dist/components/index.d.ts.map +0 -1
  767. package/dist/components/index.js +0 -4
  768. package/dist/constants.d.ts +0 -26
  769. package/dist/constants.d.ts.map +0 -1
  770. package/dist/constants.js +0 -27
  771. package/dist/constants.js.map +0 -1
  772. package/dist/data/httpHeaders.d.ts +0 -7
  773. package/dist/data/httpHeaders.d.ts.map +0 -1
  774. package/dist/data/httpHeaders.js +0 -539
  775. package/dist/data/httpHeaders.js.map +0 -1
  776. package/dist/hooks/index.d.ts +0 -5
  777. package/dist/hooks/index.d.ts.map +0 -1
  778. package/dist/hooks/index.js +0 -5
  779. package/dist/hooks/useClientConfig.d.ts +0 -198
  780. package/dist/hooks/useClientConfig.d.ts.map +0 -1
  781. package/dist/hooks/useClientConfig.js +0 -23
  782. package/dist/hooks/useClientConfig.js.map +0 -1
  783. package/dist/hooks/useFileDialog.d.ts.map +0 -1
  784. package/dist/hooks/useFileDialog.js.map +0 -1
  785. package/dist/hooks/useLayout.d.ts +0 -17
  786. package/dist/hooks/useLayout.d.ts.map +0 -1
  787. package/dist/hooks/useLayout.js +0 -13
  788. package/dist/hooks/useLayout.js.map +0 -1
  789. package/dist/hooks/useResponseBody.d.ts +0 -19
  790. package/dist/hooks/useResponseBody.d.ts.map +0 -1
  791. package/dist/hooks/useResponseBody.js +0 -32
  792. package/dist/hooks/useResponseBody.js.map +0 -1
  793. package/dist/hooks/useSidebar.d.ts +0 -26
  794. package/dist/hooks/useSidebar.d.ts.map +0 -1
  795. package/dist/hooks/useSidebar.js +0 -36
  796. package/dist/hooks/useSidebar.js.map +0 -1
  797. package/dist/layouts/App/ApiClientApp.vue.d.ts +0 -14
  798. package/dist/layouts/App/ApiClientApp.vue.d.ts.map +0 -1
  799. package/dist/layouts/App/ApiClientApp.vue.js +0 -8
  800. package/dist/layouts/App/ApiClientApp.vue.js.map +0 -1
  801. package/dist/layouts/App/ApiClientApp.vue.script.js +0 -80
  802. package/dist/layouts/App/ApiClientApp.vue.script.js.map +0 -1
  803. package/dist/layouts/App/MainLayout.vue.d.ts +0 -14
  804. package/dist/layouts/App/MainLayout.vue.d.ts.map +0 -1
  805. package/dist/layouts/App/MainLayout.vue.js +0 -7
  806. package/dist/layouts/App/MainLayout.vue.js.map +0 -1
  807. package/dist/layouts/App/MainLayout.vue.script.js +0 -22
  808. package/dist/layouts/App/MainLayout.vue.script.js.map +0 -1
  809. package/dist/layouts/App/create-api-client-app.d.ts +0 -4059
  810. package/dist/layouts/App/create-api-client-app.d.ts.map +0 -1
  811. package/dist/layouts/App/create-api-client-app.js +0 -36
  812. package/dist/layouts/App/create-api-client-app.js.map +0 -1
  813. package/dist/layouts/App/hotkeys.d.ts +0 -6
  814. package/dist/layouts/App/hotkeys.d.ts.map +0 -1
  815. package/dist/layouts/App/hotkeys.js +0 -74
  816. package/dist/layouts/App/hotkeys.js.map +0 -1
  817. package/dist/layouts/App/index.d.ts +0 -3
  818. package/dist/layouts/App/index.d.ts.map +0 -1
  819. package/dist/layouts/App/index.js +0 -3
  820. package/dist/layouts/Modal/ApiClientModal.vue.d.ts +0 -4
  821. package/dist/layouts/Modal/ApiClientModal.vue.d.ts.map +0 -1
  822. package/dist/layouts/Modal/ApiClientModal.vue.js +0 -7
  823. package/dist/layouts/Modal/ApiClientModal.vue.js.map +0 -1
  824. package/dist/layouts/Modal/ApiClientModal.vue.script.js +0 -41
  825. package/dist/layouts/Modal/ApiClientModal.vue.script.js.map +0 -1
  826. package/dist/layouts/Modal/create-api-client-modal.d.ts +0 -12
  827. package/dist/layouts/Modal/create-api-client-modal.d.ts.map +0 -1
  828. package/dist/layouts/Modal/create-api-client-modal.js +0 -34
  829. package/dist/layouts/Modal/create-api-client-modal.js.map +0 -1
  830. package/dist/layouts/Modal/index.d.ts +0 -3
  831. package/dist/layouts/Modal/index.d.ts.map +0 -1
  832. package/dist/layouts/Modal/index.js +0 -2
  833. package/dist/layouts/Web/ApiClientWeb.vue.d.ts +0 -4
  834. package/dist/layouts/Web/ApiClientWeb.vue.d.ts.map +0 -1
  835. package/dist/layouts/Web/ApiClientWeb.vue.js +0 -8
  836. package/dist/layouts/Web/ApiClientWeb.vue.js.map +0 -1
  837. package/dist/layouts/Web/ApiClientWeb.vue.script.js +0 -68
  838. package/dist/layouts/Web/ApiClientWeb.vue.script.js.map +0 -1
  839. package/dist/layouts/Web/create-api-client-web.d.ts +0 -4056
  840. package/dist/layouts/Web/create-api-client-web.d.ts.map +0 -1
  841. package/dist/layouts/Web/create-api-client-web.js +0 -33
  842. package/dist/layouts/Web/create-api-client-web.js.map +0 -1
  843. package/dist/layouts/Web/index.d.ts +0 -3
  844. package/dist/layouts/Web/index.d.ts.map +0 -1
  845. package/dist/layouts/Web/index.js +0 -3
  846. package/dist/libs/create-client.d.ts +0 -4127
  847. package/dist/libs/create-client.d.ts.map +0 -1
  848. package/dist/libs/create-client.js +0 -178
  849. package/dist/libs/create-client.js.map +0 -1
  850. package/dist/libs/electron.d.ts +0 -5
  851. package/dist/libs/electron.d.ts.map +0 -1
  852. package/dist/libs/electron.js +0 -9
  853. package/dist/libs/electron.js.map +0 -1
  854. package/dist/libs/env-helpers.d.ts +0 -17
  855. package/dist/libs/env-helpers.d.ts.map +0 -1
  856. package/dist/libs/env-helpers.js +0 -9
  857. package/dist/libs/env-helpers.js.map +0 -1
  858. package/dist/libs/environment-parser.d.ts +0 -8
  859. package/dist/libs/environment-parser.d.ts.map +0 -1
  860. package/dist/libs/environment-parser.js +0 -19
  861. package/dist/libs/environment-parser.js.map +0 -1
  862. package/dist/libs/errors.d.ts +0 -23
  863. package/dist/libs/errors.d.ts.map +0 -1
  864. package/dist/libs/errors.js +0 -34
  865. package/dist/libs/errors.js.map +0 -1
  866. package/dist/libs/event-bus.d.ts +0 -41
  867. package/dist/libs/event-bus.d.ts.map +0 -1
  868. package/dist/libs/event-bus.js +0 -43
  869. package/dist/libs/event-bus.js.map +0 -1
  870. package/dist/libs/extractAttachmentFilename.d.ts +0 -5
  871. package/dist/libs/extractAttachmentFilename.d.ts.map +0 -1
  872. package/dist/libs/extractAttachmentFilename.js +0 -23
  873. package/dist/libs/extractAttachmentFilename.js.map +0 -1
  874. package/dist/libs/find-request.d.ts +0 -75
  875. package/dist/libs/find-request.d.ts.map +0 -1
  876. package/dist/libs/find-request.js +0 -40
  877. package/dist/libs/find-request.js.map +0 -1
  878. package/dist/libs/get-request-uid-by-path-method.d.ts +0 -7
  879. package/dist/libs/get-request-uid-by-path-method.d.ts.map +0 -1
  880. package/dist/libs/get-request-uid-by-path-method.js +0 -19
  881. package/dist/libs/get-request-uid-by-path-method.js.map +0 -1
  882. package/dist/libs/getOpenApiDocumentDetails.d.ts +0 -10
  883. package/dist/libs/getOpenApiDocumentDetails.d.ts.map +0 -1
  884. package/dist/libs/getOpenApiDocumentDetails.js +0 -45
  885. package/dist/libs/getOpenApiDocumentDetails.js.map +0 -1
  886. package/dist/libs/hot-keys.d.ts +0 -35
  887. package/dist/libs/hot-keys.d.ts.map +0 -1
  888. package/dist/libs/hot-keys.js +0 -92
  889. package/dist/libs/hot-keys.js.map +0 -1
  890. package/dist/libs/importers/curl.d.ts +0 -27
  891. package/dist/libs/importers/curl.d.ts.map +0 -1
  892. package/dist/libs/importers/curl.js +0 -54
  893. package/dist/libs/importers/curl.js.map +0 -1
  894. package/dist/libs/importers/index.d.ts +0 -2
  895. package/dist/libs/importers/index.d.ts.map +0 -1
  896. package/dist/libs/importers/index.js +0 -2
  897. package/dist/libs/index.d.ts +0 -15
  898. package/dist/libs/index.d.ts.map +0 -1
  899. package/dist/libs/index.js +0 -17
  900. package/dist/libs/isUrl.d.ts +0 -3
  901. package/dist/libs/isUrl.d.ts.map +0 -1
  902. package/dist/libs/isUrl.js +0 -12
  903. package/dist/libs/isUrl.js.map +0 -1
  904. package/dist/libs/local-storage.d.ts +0 -9
  905. package/dist/libs/local-storage.d.ts.map +0 -1
  906. package/dist/libs/local-storage.js +0 -40
  907. package/dist/libs/local-storage.js.map +0 -1
  908. package/dist/libs/normalize-headers.d.ts +0 -14
  909. package/dist/libs/normalize-headers.d.ts.map +0 -1
  910. package/dist/libs/normalize-headers.js +0 -55
  911. package/dist/libs/normalize-headers.js.map +0 -1
  912. package/dist/libs/parse-curl.d.ts.map +0 -1
  913. package/dist/libs/parse-curl.js.map +0 -1
  914. package/dist/libs/postman.d.ts +0 -11
  915. package/dist/libs/postman.d.ts.map +0 -1
  916. package/dist/libs/postman.js +0 -40
  917. package/dist/libs/postman.js.map +0 -1
  918. package/dist/libs/send-request/build-request-security.d.ts +0 -19
  919. package/dist/libs/send-request/build-request-security.d.ts.map +0 -1
  920. package/dist/libs/send-request/build-request-security.js +0 -41
  921. package/dist/libs/send-request/build-request-security.js.map +0 -1
  922. package/dist/libs/send-request/create-fetch-body.d.ts +0 -18
  923. package/dist/libs/send-request/create-fetch-body.d.ts.map +0 -1
  924. package/dist/libs/send-request/create-fetch-body.js +0 -44
  925. package/dist/libs/send-request/create-fetch-body.js.map +0 -1
  926. package/dist/libs/send-request/create-fetch-headers.d.ts +0 -4
  927. package/dist/libs/send-request/create-fetch-headers.d.ts.map +0 -1
  928. package/dist/libs/send-request/create-fetch-headers.js +0 -15
  929. package/dist/libs/send-request/create-fetch-headers.js.map +0 -1
  930. package/dist/libs/send-request/create-fetch-query-params.d.ts +0 -11
  931. package/dist/libs/send-request/create-fetch-query-params.d.ts.map +0 -1
  932. package/dist/libs/send-request/create-fetch-query-params.js +0 -43
  933. package/dist/libs/send-request/create-fetch-query-params.js.map +0 -1
  934. package/dist/libs/send-request/create-request-operation.d.ts +0 -32
  935. package/dist/libs/send-request/create-request-operation.d.ts.map +0 -1
  936. package/dist/libs/send-request/create-request-operation.js +0 -172
  937. package/dist/libs/send-request/create-request-operation.js.map +0 -1
  938. package/dist/libs/send-request/decode-buffer.d.ts +0 -3
  939. package/dist/libs/send-request/decode-buffer.d.ts.map +0 -1
  940. package/dist/libs/send-request/decode-buffer.js +0 -13
  941. package/dist/libs/send-request/decode-buffer.js.map +0 -1
  942. package/dist/libs/send-request/index.d.ts +0 -4
  943. package/dist/libs/send-request/index.d.ts.map +0 -1
  944. package/dist/libs/send-request/index.js +0 -4
  945. package/dist/libs/send-request/set-request-cookies.d.ts +0 -27
  946. package/dist/libs/send-request/set-request-cookies.d.ts.map +0 -1
  947. package/dist/libs/send-request/set-request-cookies.js +0 -82
  948. package/dist/libs/send-request/set-request-cookies.js.map +0 -1
  949. package/dist/libs/string-template.d.ts +0 -21
  950. package/dist/libs/string-template.d.ts.map +0 -1
  951. package/dist/libs/string-template.js +0 -64
  952. package/dist/libs/string-template.js.map +0 -1
  953. package/dist/libs/validate-parameters.d.ts +0 -14
  954. package/dist/libs/validate-parameters.d.ts.map +0 -1
  955. package/dist/libs/validate-parameters.js +0 -35
  956. package/dist/libs/validate-parameters.js.map +0 -1
  957. package/dist/plugins/hooks/usePluginManager.d.ts +0 -8
  958. package/dist/plugins/hooks/usePluginManager.d.ts.map +0 -1
  959. package/dist/plugins/hooks/usePluginManager.js +0 -16
  960. package/dist/plugins/hooks/usePluginManager.js.map +0 -1
  961. package/dist/plugins/index.d.ts +0 -3
  962. package/dist/plugins/index.d.ts.map +0 -1
  963. package/dist/plugins/index.js +0 -3
  964. package/dist/plugins/plugin-manager.d.ts +0 -34
  965. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  966. package/dist/plugins/plugin-manager.js +0 -38
  967. package/dist/plugins/plugin-manager.js.map +0 -1
  968. package/dist/routes.d.ts +0 -19
  969. package/dist/routes.d.ts.map +0 -1
  970. package/dist/routes.js +0 -225
  971. package/dist/routes.js.map +0 -1
  972. package/dist/store/active-entities.d.ts +0 -387
  973. package/dist/store/active-entities.d.ts.map +0 -1
  974. package/dist/store/active-entities.js +0 -139
  975. package/dist/store/active-entities.js.map +0 -1
  976. package/dist/store/collections.d.ts +0 -625
  977. package/dist/store/collections.d.ts.map +0 -1
  978. package/dist/store/collections.js +0 -76
  979. package/dist/store/collections.js.map +0 -1
  980. package/dist/store/cookies.d.ts +0 -69
  981. package/dist/store/cookies.d.ts.map +0 -1
  982. package/dist/store/cookies.js +0 -16
  983. package/dist/store/cookies.js.map +0 -1
  984. package/dist/store/environment.d.ts +0 -75
  985. package/dist/store/environment.d.ts.map +0 -1
  986. package/dist/store/environment.js +0 -38
  987. package/dist/store/environment.js.map +0 -1
  988. package/dist/store/events.d.ts +0 -35
  989. package/dist/store/events.d.ts.map +0 -1
  990. package/dist/store/events.js +0 -17
  991. package/dist/store/events.js.map +0 -1
  992. package/dist/store/import-spec.d.ts +0 -38
  993. package/dist/store/import-spec.d.ts.map +0 -1
  994. package/dist/store/import-spec.js +0 -56
  995. package/dist/store/import-spec.js.map +0 -1
  996. package/dist/store/index.d.ts +0 -3
  997. package/dist/store/index.d.ts.map +0 -1
  998. package/dist/store/index.js +0 -3
  999. package/dist/store/request-example.d.ts +0 -1022
  1000. package/dist/store/request-example.d.ts.map +0 -1
  1001. package/dist/store/request-example.js +0 -43
  1002. package/dist/store/request-example.js.map +0 -1
  1003. package/dist/store/requests.d.ts +0 -675
  1004. package/dist/store/requests.d.ts.map +0 -1
  1005. package/dist/store/requests.js +0 -104
  1006. package/dist/store/requests.js.map +0 -1
  1007. package/dist/store/router-params.d.ts +0 -18
  1008. package/dist/store/router-params.d.ts.map +0 -1
  1009. package/dist/store/router-params.js +0 -27
  1010. package/dist/store/router-params.js.map +0 -1
  1011. package/dist/store/security-schemes.d.ts +0 -942
  1012. package/dist/store/security-schemes.d.ts.map +0 -1
  1013. package/dist/store/security-schemes.js +0 -45
  1014. package/dist/store/security-schemes.js.map +0 -1
  1015. package/dist/store/servers.d.ts +0 -122
  1016. package/dist/store/servers.d.ts.map +0 -1
  1017. package/dist/store/servers.js +0 -41
  1018. package/dist/store/servers.js.map +0 -1
  1019. package/dist/store/store-context.d.ts +0 -26
  1020. package/dist/store/store-context.d.ts.map +0 -1
  1021. package/dist/store/store.d.ts +0 -4055
  1022. package/dist/store/store.d.ts.map +0 -1
  1023. package/dist/store/store.js +0 -180
  1024. package/dist/store/store.js.map +0 -1
  1025. package/dist/store/tags.d.ts +0 -176
  1026. package/dist/store/tags.d.ts.map +0 -1
  1027. package/dist/store/tags.js +0 -54
  1028. package/dist/store/tags.js.map +0 -1
  1029. package/dist/store/workspace.d.ts +0 -232
  1030. package/dist/store/workspace.d.ts.map +0 -1
  1031. package/dist/store/workspace.js +0 -57
  1032. package/dist/store/workspace.js.map +0 -1
  1033. package/dist/types/index.d.ts +0 -2
  1034. package/dist/types/index.d.ts.map +0 -1
  1035. package/dist/types/index.js +0 -0
  1036. package/dist/views/Collection/Collection.vue.d.ts +0 -4
  1037. package/dist/views/Collection/Collection.vue.d.ts.map +0 -1
  1038. package/dist/views/Collection/Collection.vue.js +0 -7
  1039. package/dist/views/Collection/Collection.vue.js.map +0 -1
  1040. package/dist/views/Collection/Collection.vue.script.js +0 -46
  1041. package/dist/views/Collection/Collection.vue.script.js.map +0 -1
  1042. package/dist/views/Collection/CollectionAuthentication.vue.d.ts +0 -4
  1043. package/dist/views/Collection/CollectionAuthentication.vue.d.ts.map +0 -1
  1044. package/dist/views/Collection/CollectionAuthentication.vue.js +0 -9
  1045. package/dist/views/Collection/CollectionAuthentication.vue.js.map +0 -1
  1046. package/dist/views/Collection/CollectionAuthentication.vue.script.js +0 -52
  1047. package/dist/views/Collection/CollectionAuthentication.vue.script.js.map +0 -1
  1048. package/dist/views/Collection/CollectionCookies.vue.d.ts +0 -4
  1049. package/dist/views/Collection/CollectionCookies.vue.d.ts.map +0 -1
  1050. package/dist/views/Collection/CollectionCookies.vue.js +0 -7
  1051. package/dist/views/Collection/CollectionCookies.vue.js.map +0 -1
  1052. package/dist/views/Collection/CollectionCookies.vue.script.js +0 -18
  1053. package/dist/views/Collection/CollectionCookies.vue.script.js.map +0 -1
  1054. package/dist/views/Collection/CollectionEnvironment.vue.d.ts +0 -4
  1055. package/dist/views/Collection/CollectionEnvironment.vue.d.ts.map +0 -1
  1056. package/dist/views/Collection/CollectionEnvironment.vue.js +0 -8
  1057. package/dist/views/Collection/CollectionEnvironment.vue.js.map +0 -1
  1058. package/dist/views/Collection/CollectionEnvironment.vue.script.js +0 -238
  1059. package/dist/views/Collection/CollectionEnvironment.vue.script.js.map +0 -1
  1060. package/dist/views/Collection/CollectionInfoForm.vue.d.ts +0 -4
  1061. package/dist/views/Collection/CollectionInfoForm.vue.d.ts.map +0 -1
  1062. package/dist/views/Collection/CollectionInfoForm.vue.js +0 -9
  1063. package/dist/views/Collection/CollectionInfoForm.vue.js.map +0 -1
  1064. package/dist/views/Collection/CollectionInfoForm.vue.script.js +0 -73
  1065. package/dist/views/Collection/CollectionInfoForm.vue.script.js.map +0 -1
  1066. package/dist/views/Collection/CollectionNavigation.vue.d.ts.map +0 -1
  1067. package/dist/views/Collection/CollectionNavigation.vue.js +0 -7
  1068. package/dist/views/Collection/CollectionNavigation.vue.js.map +0 -1
  1069. package/dist/views/Collection/CollectionNavigation.vue.script.js +0 -75
  1070. package/dist/views/Collection/CollectionNavigation.vue.script.js.map +0 -1
  1071. package/dist/views/Collection/CollectionOverview.vue.d.ts +0 -4
  1072. package/dist/views/Collection/CollectionOverview.vue.d.ts.map +0 -1
  1073. package/dist/views/Collection/CollectionOverview.vue.js +0 -7
  1074. package/dist/views/Collection/CollectionOverview.vue.js.map +0 -1
  1075. package/dist/views/Collection/CollectionOverview.vue.script.js +0 -42
  1076. package/dist/views/Collection/CollectionOverview.vue.script.js.map +0 -1
  1077. package/dist/views/Collection/CollectionScripts.vue.d.ts +0 -4
  1078. package/dist/views/Collection/CollectionScripts.vue.d.ts.map +0 -1
  1079. package/dist/views/Collection/CollectionScripts.vue.js +0 -7
  1080. package/dist/views/Collection/CollectionScripts.vue.js.map +0 -1
  1081. package/dist/views/Collection/CollectionScripts.vue.script.js +0 -18
  1082. package/dist/views/Collection/CollectionScripts.vue.script.js.map +0 -1
  1083. package/dist/views/Collection/CollectionServerForm.vue.d.ts +0 -11
  1084. package/dist/views/Collection/CollectionServerForm.vue.d.ts.map +0 -1
  1085. package/dist/views/Collection/CollectionServerForm.vue.js +0 -7
  1086. package/dist/views/Collection/CollectionServerForm.vue.js.map +0 -1
  1087. package/dist/views/Collection/CollectionServerForm.vue.script.js +0 -76
  1088. package/dist/views/Collection/CollectionServerForm.vue.script.js.map +0 -1
  1089. package/dist/views/Collection/CollectionServers.vue.d.ts +0 -4
  1090. package/dist/views/Collection/CollectionServers.vue.d.ts.map +0 -1
  1091. package/dist/views/Collection/CollectionServers.vue.js +0 -7
  1092. package/dist/views/Collection/CollectionServers.vue.js.map +0 -1
  1093. package/dist/views/Collection/CollectionServers.vue.script.js +0 -95
  1094. package/dist/views/Collection/CollectionServers.vue.script.js.map +0 -1
  1095. package/dist/views/Collection/CollectionSettings.vue.d.ts +0 -4
  1096. package/dist/views/Collection/CollectionSettings.vue.d.ts.map +0 -1
  1097. package/dist/views/Collection/CollectionSettings.vue.js +0 -7
  1098. package/dist/views/Collection/CollectionSettings.vue.js.map +0 -1
  1099. package/dist/views/Collection/CollectionSettings.vue.script.js +0 -87
  1100. package/dist/views/Collection/CollectionSettings.vue.script.js.map +0 -1
  1101. package/dist/views/Collection/CollectionSync.vue.d.ts +0 -4
  1102. package/dist/views/Collection/CollectionSync.vue.d.ts.map +0 -1
  1103. package/dist/views/Collection/CollectionSync.vue.js +0 -7
  1104. package/dist/views/Collection/CollectionSync.vue.js.map +0 -1
  1105. package/dist/views/Collection/CollectionSync.vue.script.js +0 -18
  1106. package/dist/views/Collection/CollectionSync.vue.script.js.map +0 -1
  1107. package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +0 -14
  1108. package/dist/views/Collection/components/EnvironmentForm.vue.d.ts.map +0 -1
  1109. package/dist/views/Collection/components/EnvironmentForm.vue.js +0 -9
  1110. package/dist/views/Collection/components/EnvironmentForm.vue.js.map +0 -1
  1111. package/dist/views/Collection/components/EnvironmentForm.vue.script.js +0 -284
  1112. package/dist/views/Collection/components/EnvironmentForm.vue.script.js.map +0 -1
  1113. package/dist/views/Collection/components/MarkdownInput.vue.d.ts +0 -17
  1114. package/dist/views/Collection/components/MarkdownInput.vue.d.ts.map +0 -1
  1115. package/dist/views/Collection/components/MarkdownInput.vue.js +0 -9
  1116. package/dist/views/Collection/components/MarkdownInput.vue.js.map +0 -1
  1117. package/dist/views/Collection/components/MarkdownInput.vue.script.js +0 -92
  1118. package/dist/views/Collection/components/MarkdownInput.vue.script.js.map +0 -1
  1119. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +0 -16
  1120. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts.map +0 -1
  1121. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js +0 -7
  1122. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js.map +0 -1
  1123. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.script.js +0 -74
  1124. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.script.js.map +0 -1
  1125. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.d.ts +0 -28
  1126. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.d.ts.map +0 -1
  1127. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js +0 -66
  1128. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js.map +0 -1
  1129. package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +0 -16
  1130. package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts.map +0 -1
  1131. package/dist/views/Components/CodeSnippet/helpers/get-har-request.js +0 -86
  1132. package/dist/views/Components/CodeSnippet/helpers/get-har-request.js.map +0 -1
  1133. package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts.map +0 -1
  1134. package/dist/views/Components/CodeSnippet/helpers/get-snippet.js.map +0 -1
  1135. package/dist/views/Components/CodeSnippet/index.d.ts +0 -5
  1136. package/dist/views/Components/CodeSnippet/index.d.ts.map +0 -1
  1137. package/dist/views/Components/CodeSnippet/index.js +0 -5
  1138. package/dist/views/Cookies/CookieForm.vue.d.ts +0 -4
  1139. package/dist/views/Cookies/CookieForm.vue.d.ts.map +0 -1
  1140. package/dist/views/Cookies/CookieForm.vue.js +0 -7
  1141. package/dist/views/Cookies/CookieForm.vue.js.map +0 -1
  1142. package/dist/views/Cookies/CookieForm.vue.script.js +0 -50
  1143. package/dist/views/Cookies/CookieForm.vue.script.js.map +0 -1
  1144. package/dist/views/Cookies/CookieModal.vue.d.ts +0 -22
  1145. package/dist/views/Cookies/CookieModal.vue.d.ts.map +0 -1
  1146. package/dist/views/Cookies/CookieModal.vue.js +0 -9
  1147. package/dist/views/Cookies/CookieModal.vue.js.map +0 -1
  1148. package/dist/views/Cookies/CookieModal.vue.script.js +0 -83
  1149. package/dist/views/Cookies/CookieModal.vue.script.js.map +0 -1
  1150. package/dist/views/Cookies/CookieRaw.vue.d.ts +0 -4
  1151. package/dist/views/Cookies/CookieRaw.vue.d.ts.map +0 -1
  1152. package/dist/views/Cookies/Cookies.vue.d.ts +0 -4
  1153. package/dist/views/Cookies/Cookies.vue.d.ts.map +0 -1
  1154. package/dist/views/Cookies/Cookies.vue.js +0 -7
  1155. package/dist/views/Cookies/Cookies.vue.js.map +0 -1
  1156. package/dist/views/Cookies/Cookies.vue.script.js +0 -156
  1157. package/dist/views/Cookies/Cookies.vue.script.js.map +0 -1
  1158. package/dist/views/Environment/Environment.vue.d.ts +0 -4
  1159. package/dist/views/Environment/Environment.vue.d.ts.map +0 -1
  1160. package/dist/views/Environment/Environment.vue.js +0 -7
  1161. package/dist/views/Environment/Environment.vue.js.map +0 -1
  1162. package/dist/views/Environment/Environment.vue.script.js +0 -384
  1163. package/dist/views/Environment/Environment.vue.script.js.map +0 -1
  1164. package/dist/views/Environment/EnvironmentColorModal.vue.d.ts +0 -15
  1165. package/dist/views/Environment/EnvironmentColorModal.vue.d.ts.map +0 -1
  1166. package/dist/views/Environment/EnvironmentColorModal.vue.js +0 -7
  1167. package/dist/views/Environment/EnvironmentColorModal.vue.js.map +0 -1
  1168. package/dist/views/Environment/EnvironmentColorModal.vue.script.js +0 -47
  1169. package/dist/views/Environment/EnvironmentColorModal.vue.script.js.map +0 -1
  1170. package/dist/views/Environment/EnvironmentColors.vue.d.ts +0 -14
  1171. package/dist/views/Environment/EnvironmentColors.vue.d.ts.map +0 -1
  1172. package/dist/views/Environment/EnvironmentColors.vue.js +0 -7
  1173. package/dist/views/Environment/EnvironmentColors.vue.js.map +0 -1
  1174. package/dist/views/Environment/EnvironmentColors.vue.script.js +0 -126
  1175. package/dist/views/Environment/EnvironmentColors.vue.script.js.map +0 -1
  1176. package/dist/views/Environment/EnvironmentModal.vue.d.ts +0 -27
  1177. package/dist/views/Environment/EnvironmentModal.vue.d.ts.map +0 -1
  1178. package/dist/views/Environment/EnvironmentModal.vue.js +0 -7
  1179. package/dist/views/Environment/EnvironmentModal.vue.js.map +0 -1
  1180. package/dist/views/Environment/EnvironmentModal.vue.script.js +0 -122
  1181. package/dist/views/Environment/EnvironmentModal.vue.script.js.map +0 -1
  1182. package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +0 -22
  1183. package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts.map +0 -1
  1184. package/dist/views/Environment/EnvironmentVariableDropdown.vue.js +0 -7
  1185. package/dist/views/Environment/EnvironmentVariableDropdown.vue.js.map +0 -1
  1186. package/dist/views/Environment/EnvironmentVariableDropdown.vue.script.js +0 -133
  1187. package/dist/views/Environment/EnvironmentVariableDropdown.vue.script.js.map +0 -1
  1188. package/dist/views/Environment/handle-drag.d.ts +0 -13
  1189. package/dist/views/Environment/handle-drag.d.ts.map +0 -1
  1190. package/dist/views/Environment/handle-drag.js +0 -38
  1191. package/dist/views/Environment/handle-drag.js.map +0 -1
  1192. package/dist/views/Request/Request.vue.d.ts +0 -21
  1193. package/dist/views/Request/Request.vue.d.ts.map +0 -1
  1194. package/dist/views/Request/Request.vue.js +0 -9
  1195. package/dist/views/Request/Request.vue.js.map +0 -1
  1196. package/dist/views/Request/Request.vue.script.js +0 -117
  1197. package/dist/views/Request/Request.vue.script.js.map +0 -1
  1198. package/dist/views/Request/RequestRoot.vue.d.ts +0 -14
  1199. package/dist/views/Request/RequestRoot.vue.d.ts.map +0 -1
  1200. package/dist/views/Request/RequestRoot.vue.js +0 -9
  1201. package/dist/views/Request/RequestRoot.vue.js.map +0 -1
  1202. package/dist/views/Request/RequestRoot.vue.script.js +0 -158
  1203. package/dist/views/Request/RequestRoot.vue.script.js.map +0 -1
  1204. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.d.ts +0 -22
  1205. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.d.ts.map +0 -1
  1206. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js +0 -7
  1207. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js.map +0 -1
  1208. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.script.js +0 -52
  1209. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.script.js.map +0 -1
  1210. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +0 -31
  1211. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts.map +0 -1
  1212. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js +0 -7
  1213. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js.map +0 -1
  1214. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.script.js +0 -214
  1215. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.script.js.map +0 -1
  1216. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +0 -10
  1217. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts.map +0 -1
  1218. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js +0 -7
  1219. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js.map +0 -1
  1220. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.script.js +0 -106
  1221. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.script.js.map +0 -1
  1222. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +0 -222
  1223. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts.map +0 -1
  1224. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js +0 -9
  1225. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js.map +0 -1
  1226. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.script.js +0 -216
  1227. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.script.js.map +0 -1
  1228. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +0 -220
  1229. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts.map +0 -1
  1230. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js +0 -9
  1231. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js.map +0 -1
  1232. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.script.js +0 -116
  1233. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.script.js.map +0 -1
  1234. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +0 -43
  1235. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts.map +0 -1
  1236. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js +0 -7
  1237. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js.map +0 -1
  1238. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.script.js +0 -73
  1239. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.script.js.map +0 -1
  1240. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +0 -31
  1241. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts.map +0 -1
  1242. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js +0 -7
  1243. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js.map +0 -1
  1244. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.script.js +0 -205
  1245. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.script.js.map +0 -1
  1246. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +0 -9
  1247. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts.map +0 -1
  1248. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js +0 -39
  1249. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js.map +0 -1
  1250. package/dist/views/Request/RequestSection/RequestAuth/index.d.ts +0 -4
  1251. package/dist/views/Request/RequestSection/RequestAuth/index.d.ts.map +0 -1
  1252. package/dist/views/Request/RequestSection/RequestAuth/index.js +0 -4
  1253. package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +0 -16
  1254. package/dist/views/Request/RequestSection/RequestBody.vue.d.ts.map +0 -1
  1255. package/dist/views/Request/RequestSection/RequestBody.vue.js +0 -9
  1256. package/dist/views/Request/RequestSection/RequestBody.vue.js.map +0 -1
  1257. package/dist/views/Request/RequestSection/RequestBody.vue.script.js +0 -477
  1258. package/dist/views/Request/RequestSection/RequestBody.vue.script.js.map +0 -1
  1259. package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +0 -15
  1260. package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts.map +0 -1
  1261. package/dist/views/Request/RequestSection/RequestCodeExample.vue.js +0 -9
  1262. package/dist/views/Request/RequestSection/RequestCodeExample.vue.js.map +0 -1
  1263. package/dist/views/Request/RequestSection/RequestCodeExample.vue.script.js +0 -187
  1264. package/dist/views/Request/RequestSection/RequestCodeExample.vue.script.js.map +0 -1
  1265. package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +0 -25
  1266. package/dist/views/Request/RequestSection/RequestParams.vue.d.ts.map +0 -1
  1267. package/dist/views/Request/RequestSection/RequestParams.vue.js +0 -7
  1268. package/dist/views/Request/RequestSection/RequestParams.vue.js.map +0 -1
  1269. package/dist/views/Request/RequestSection/RequestParams.vue.script.js +0 -180
  1270. package/dist/views/Request/RequestSection/RequestParams.vue.script.js.map +0 -1
  1271. package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +0 -18
  1272. package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts.map +0 -1
  1273. package/dist/views/Request/RequestSection/RequestPathParams.vue.js +0 -7
  1274. package/dist/views/Request/RequestSection/RequestPathParams.vue.js.map +0 -1
  1275. package/dist/views/Request/RequestSection/RequestPathParams.vue.script.js +0 -115
  1276. package/dist/views/Request/RequestSection/RequestPathParams.vue.script.js.map +0 -1
  1277. package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +0 -20
  1278. package/dist/views/Request/RequestSection/RequestSection.vue.d.ts.map +0 -1
  1279. package/dist/views/Request/RequestSection/RequestSection.vue.js +0 -9
  1280. package/dist/views/Request/RequestSection/RequestSection.vue.js.map +0 -1
  1281. package/dist/views/Request/RequestSection/RequestSection.vue.script.js +0 -297
  1282. package/dist/views/Request/RequestSection/RequestSection.vue.script.js.map +0 -1
  1283. package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +0 -47
  1284. package/dist/views/Request/RequestSection/RequestTable.vue.d.ts.map +0 -1
  1285. package/dist/views/Request/RequestSection/RequestTable.vue.js +0 -9
  1286. package/dist/views/Request/RequestSection/RequestTable.vue.js.map +0 -1
  1287. package/dist/views/Request/RequestSection/RequestTable.vue.script.js +0 -266
  1288. package/dist/views/Request/RequestSection/RequestTable.vue.script.js.map +0 -1
  1289. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.d.ts +0 -8
  1290. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.d.ts.map +0 -1
  1291. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js +0 -9
  1292. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js.map +0 -1
  1293. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.script.js +0 -64
  1294. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.script.js.map +0 -1
  1295. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.d.ts +0 -6
  1296. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.d.ts.map +0 -1
  1297. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js +0 -38
  1298. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js.map +0 -1
  1299. package/dist/views/Request/RequestSection/helpers/getting-started.d.ts +0 -6
  1300. package/dist/views/Request/RequestSection/helpers/getting-started.d.ts.map +0 -1
  1301. package/dist/views/Request/RequestSection/helpers/getting-started.js +0 -17
  1302. package/dist/views/Request/RequestSection/helpers/getting-started.js.map +0 -1
  1303. package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +0 -8
  1304. package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts.map +0 -1
  1305. package/dist/views/Request/RequestSection/helpers/update-scheme.js +0 -22
  1306. package/dist/views/Request/RequestSection/helpers/update-scheme.js.map +0 -1
  1307. package/dist/views/Request/RequestSection/index.d.ts +0 -3
  1308. package/dist/views/Request/RequestSection/index.d.ts.map +0 -1
  1309. package/dist/views/Request/RequestSection/index.js +0 -3
  1310. package/dist/views/Request/RequestSidebar.vue.d.ts +0 -16
  1311. package/dist/views/Request/RequestSidebar.vue.d.ts.map +0 -1
  1312. package/dist/views/Request/RequestSidebar.vue.js +0 -9
  1313. package/dist/views/Request/RequestSidebar.vue.js.map +0 -1
  1314. package/dist/views/Request/RequestSidebar.vue.script.js +0 -307
  1315. package/dist/views/Request/RequestSidebar.vue.script.js.map +0 -1
  1316. package/dist/views/Request/RequestSidebarItem.vue.d.ts +0 -43
  1317. package/dist/views/Request/RequestSidebarItem.vue.d.ts.map +0 -1
  1318. package/dist/views/Request/RequestSidebarItem.vue.js +0 -10
  1319. package/dist/views/Request/RequestSidebarItem.vue.js.map +0 -1
  1320. package/dist/views/Request/RequestSidebarItem.vue.script.js +0 -475
  1321. package/dist/views/Request/RequestSidebarItem.vue.script.js.map +0 -1
  1322. package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +0 -16
  1323. package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts.map +0 -1
  1324. package/dist/views/Request/RequestSidebarItemMenu.vue.js +0 -9
  1325. package/dist/views/Request/RequestSidebarItemMenu.vue.js.map +0 -1
  1326. package/dist/views/Request/RequestSidebarItemMenu.vue.script.js +0 -222
  1327. package/dist/views/Request/RequestSidebarItemMenu.vue.script.js.map +0 -1
  1328. package/dist/views/Request/RequestSubpageHeader.vue.d.ts +0 -22
  1329. package/dist/views/Request/RequestSubpageHeader.vue.d.ts.map +0 -1
  1330. package/dist/views/Request/RequestSubpageHeader.vue.js +0 -9
  1331. package/dist/views/Request/RequestSubpageHeader.vue.js.map +0 -1
  1332. package/dist/views/Request/RequestSubpageHeader.vue.script.js +0 -92
  1333. package/dist/views/Request/RequestSubpageHeader.vue.script.js.map +0 -1
  1334. package/dist/views/Request/ResponseSection/RequestHeaders.vue.d.ts +0 -12
  1335. package/dist/views/Request/ResponseSection/RequestHeaders.vue.d.ts.map +0 -1
  1336. package/dist/views/Request/ResponseSection/RequestHeaders.vue.js +0 -7
  1337. package/dist/views/Request/ResponseSection/RequestHeaders.vue.js.map +0 -1
  1338. package/dist/views/Request/ResponseSection/RequestHeaders.vue.script.js +0 -77
  1339. package/dist/views/Request/ResponseSection/RequestHeaders.vue.script.js.map +0 -1
  1340. package/dist/views/Request/ResponseSection/ResponseBody.vue.d.ts +0 -14
  1341. package/dist/views/Request/ResponseSection/ResponseBody.vue.d.ts.map +0 -1
  1342. package/dist/views/Request/ResponseSection/ResponseBody.vue.js +0 -9
  1343. package/dist/views/Request/ResponseSection/ResponseBody.vue.js.map +0 -1
  1344. package/dist/views/Request/ResponseSection/ResponseBody.vue.script.js +0 -91
  1345. package/dist/views/Request/ResponseSection/ResponseBody.vue.script.js.map +0 -1
  1346. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.d.ts +0 -9
  1347. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.d.ts.map +0 -1
  1348. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js +0 -7
  1349. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js.map +0 -1
  1350. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.script.js +0 -35
  1351. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.script.js.map +0 -1
  1352. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.d.ts +0 -14
  1353. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.d.ts.map +0 -1
  1354. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js +0 -14
  1355. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js.map +0 -1
  1356. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +0 -11
  1357. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts.map +0 -1
  1358. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js +0 -9
  1359. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js.map +0 -1
  1360. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.script.js +0 -64
  1361. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.script.js.map +0 -1
  1362. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.d.ts +0 -9
  1363. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.d.ts.map +0 -1
  1364. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +0 -9
  1365. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js.map +0 -1
  1366. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.script.js +0 -54
  1367. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.script.js.map +0 -1
  1368. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.d.ts +0 -7
  1369. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.d.ts.map +0 -1
  1370. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js +0 -7
  1371. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js.map +0 -1
  1372. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.script.js +0 -85
  1373. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.script.js.map +0 -1
  1374. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.d.ts +0 -11
  1375. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.d.ts.map +0 -1
  1376. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js +0 -7
  1377. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js.map +0 -1
  1378. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.script.js +0 -25
  1379. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.script.js.map +0 -1
  1380. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.d.ts +0 -13
  1381. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.d.ts.map +0 -1
  1382. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js +0 -8
  1383. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js.map +0 -1
  1384. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.script.js +0 -51
  1385. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.script.js.map +0 -1
  1386. package/dist/views/Request/ResponseSection/ResponseCookies.vue.d.ts +0 -11
  1387. package/dist/views/Request/ResponseSection/ResponseCookies.vue.d.ts.map +0 -1
  1388. package/dist/views/Request/ResponseSection/ResponseCookies.vue.js +0 -7
  1389. package/dist/views/Request/ResponseSection/ResponseCookies.vue.js.map +0 -1
  1390. package/dist/views/Request/ResponseSection/ResponseCookies.vue.script.js +0 -39
  1391. package/dist/views/Request/ResponseSection/ResponseCookies.vue.script.js.map +0 -1
  1392. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.d.ts +0 -12
  1393. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.d.ts.map +0 -1
  1394. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js +0 -9
  1395. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js.map +0 -1
  1396. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.script.js +0 -98
  1397. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.script.js.map +0 -1
  1398. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.d.ts +0 -12
  1399. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.d.ts.map +0 -1
  1400. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js +0 -7
  1401. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js.map +0 -1
  1402. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.script.js +0 -77
  1403. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.script.js.map +0 -1
  1404. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.d.ts +0 -4
  1405. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.d.ts.map +0 -1
  1406. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js +0 -9
  1407. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js.map +0 -1
  1408. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.script.js +0 -44
  1409. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.script.js.map +0 -1
  1410. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.d.ts +0 -8
  1411. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.d.ts.map +0 -1
  1412. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js +0 -7
  1413. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js.map +0 -1
  1414. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.script.js +0 -64
  1415. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.script.js.map +0 -1
  1416. package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +0 -15
  1417. package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts.map +0 -1
  1418. package/dist/views/Request/ResponseSection/ResponseSection.vue.js +0 -9
  1419. package/dist/views/Request/ResponseSection/ResponseSection.vue.js.map +0 -1
  1420. package/dist/views/Request/ResponseSection/ResponseSection.vue.script.js +0 -206
  1421. package/dist/views/Request/ResponseSection/ResponseSection.vue.script.js.map +0 -1
  1422. package/dist/views/Request/ResponseSection/index.d.ts +0 -3
  1423. package/dist/views/Request/ResponseSection/index.d.ts.map +0 -1
  1424. package/dist/views/Request/ResponseSection/index.js +0 -3
  1425. package/dist/views/Request/components/WorkspaceDropdown.vue.d.ts +0 -4
  1426. package/dist/views/Request/components/WorkspaceDropdown.vue.d.ts.map +0 -1
  1427. package/dist/views/Request/components/WorkspaceDropdown.vue.js +0 -7
  1428. package/dist/views/Request/components/WorkspaceDropdown.vue.js.map +0 -1
  1429. package/dist/views/Request/components/WorkspaceDropdown.vue.script.js +0 -182
  1430. package/dist/views/Request/components/WorkspaceDropdown.vue.script.js.map +0 -1
  1431. package/dist/views/Request/components/index.d.ts +0 -2
  1432. package/dist/views/Request/components/index.d.ts.map +0 -1
  1433. package/dist/views/Request/components/index.js +0 -2
  1434. package/dist/views/Request/consts/index.d.ts +0 -3
  1435. package/dist/views/Request/consts/index.d.ts.map +0 -1
  1436. package/dist/views/Request/consts/index.js +0 -3
  1437. package/dist/views/Request/consts/mediaTypes.d.ts +0 -20
  1438. package/dist/views/Request/consts/mediaTypes.d.ts.map +0 -1
  1439. package/dist/views/Request/consts/mediaTypes.js +0 -231
  1440. package/dist/views/Request/consts/mediaTypes.js.map +0 -1
  1441. package/dist/views/Request/consts/new-auth-options.d.ts +0 -107
  1442. package/dist/views/Request/consts/new-auth-options.d.ts.map +0 -1
  1443. package/dist/views/Request/consts/new-auth-options.js +0 -90
  1444. package/dist/views/Request/consts/new-auth-options.js.map +0 -1
  1445. package/dist/views/Request/handle-drag.d.ts +0 -9
  1446. package/dist/views/Request/handle-drag.d.ts.map +0 -1
  1447. package/dist/views/Request/handle-drag.js +0 -51
  1448. package/dist/views/Request/handle-drag.js.map +0 -1
  1449. package/dist/views/Request/hooks/useOpenApiWatcher.d.ts +0 -9
  1450. package/dist/views/Request/hooks/useOpenApiWatcher.d.ts.map +0 -1
  1451. package/dist/views/Request/hooks/useOpenApiWatcher.js +0 -96
  1452. package/dist/views/Request/hooks/useOpenApiWatcher.js.map +0 -1
  1453. package/dist/views/Request/libs/auth.d.ts +0 -27
  1454. package/dist/views/Request/libs/auth.d.ts.map +0 -1
  1455. package/dist/views/Request/libs/auth.js +0 -74
  1456. package/dist/views/Request/libs/auth.js.map +0 -1
  1457. package/dist/views/Request/libs/index.d.ts +0 -4
  1458. package/dist/views/Request/libs/index.d.ts.map +0 -1
  1459. package/dist/views/Request/libs/index.js +0 -4
  1460. package/dist/views/Request/libs/oauth2.d.ts +0 -43
  1461. package/dist/views/Request/libs/oauth2.d.ts.map +0 -1
  1462. package/dist/views/Request/libs/oauth2.js +0 -178
  1463. package/dist/views/Request/libs/oauth2.js.map +0 -1
  1464. package/dist/views/Request/libs/request.d.ts +0 -21
  1465. package/dist/views/Request/libs/request.d.ts.map +0 -1
  1466. package/dist/views/Request/libs/request.js +0 -46
  1467. package/dist/views/Request/libs/request.js.map +0 -1
  1468. package/dist/views/Request/libs/watch-mode.d.ts +0 -60
  1469. package/dist/views/Request/libs/watch-mode.d.ts.map +0 -1
  1470. package/dist/views/Request/libs/watch-mode.js +0 -375
  1471. package/dist/views/Request/libs/watch-mode.js.map +0 -1
  1472. package/dist/views/Request/types/index.d.ts +0 -2
  1473. package/dist/views/Request/types/index.d.ts.map +0 -1
  1474. package/dist/views/Request/types/index.js +0 -0
  1475. package/dist/views/Request/types/sidebar-item.d.ts +0 -30
  1476. package/dist/views/Request/types/sidebar-item.d.ts.map +0 -1
  1477. package/dist/views/Settings/Settings.vue.d.ts +0 -5
  1478. package/dist/views/Settings/Settings.vue.d.ts.map +0 -1
  1479. package/dist/views/Settings/Settings.vue.js +0 -7
  1480. package/dist/views/Settings/Settings.vue.js.map +0 -1
  1481. package/dist/views/Settings/Settings.vue.script.js +0 -28
  1482. package/dist/views/Settings/Settings.vue.script.js.map +0 -1
  1483. package/dist/views/Settings/SettingsGeneral.vue.d.ts +0 -4
  1484. package/dist/views/Settings/SettingsGeneral.vue.d.ts.map +0 -1
  1485. package/dist/views/Settings/SettingsGeneral.vue.js +0 -7
  1486. package/dist/views/Settings/SettingsGeneral.vue.js.map +0 -1
  1487. package/dist/views/Settings/SettingsGeneral.vue.script.js +0 -241
  1488. package/dist/views/Settings/SettingsGeneral.vue.script.js.map +0 -1
  1489. package/dist/views/Settings/components/SettingsAppearance.vue.d.ts +0 -4
  1490. package/dist/views/Settings/components/SettingsAppearance.vue.d.ts.map +0 -1
  1491. package/dist/views/Settings/components/SettingsAppearance.vue.js +0 -7
  1492. package/dist/views/Settings/components/SettingsAppearance.vue.js.map +0 -1
  1493. package/dist/views/Settings/components/SettingsAppearance.vue.script.js +0 -62
  1494. package/dist/views/Settings/components/SettingsAppearance.vue.script.js.map +0 -1
  1495. package/dist/views/Settings/components/SettingsSection.vue.d.ts +0 -15
  1496. package/dist/views/Settings/components/SettingsSection.vue.d.ts.map +0 -1
  1497. package/dist/views/Settings/components/SettingsSection.vue.js +0 -7
  1498. package/dist/views/Settings/components/SettingsSection.vue.js.map +0 -1
  1499. package/dist/views/Settings/components/SettingsSection.vue.script.js +0 -27
  1500. package/dist/views/Settings/components/SettingsSection.vue.script.js.map +0 -1
  1501. /package/dist/{components → v2/blocks/operation-block/components}/OpenApiClientButton.vue.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","names":[],"sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/helpers/oauth.ts"],"sourcesContent":["import { replaceEnvVariables, replacePathVariables } from '@scalar/helpers/regex/replace-variables'\nimport { isRelativePath } from '@scalar/helpers/url/is-relative-path'\nimport { makeUrlAbsolute } from '@scalar/helpers/url/make-url-absolute'\nimport { shouldUseProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport type { OAuthFlowsObjectSecret } from '@scalar/workspace-store/request-example'\nimport { getServerVariables } from '@scalar/workspace-store/request-example'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { encode, fromUint8Array } from 'js-base64'\n\nimport type { ErrorResponse } from '@/libs/errors'\n\n/** Oauth2 security schemes which are not implicit */\ntype NonImplicitFlows = Omit<OAuthFlowsObjectSecret, 'implicit'>\n\ntype PKCEState = {\n codeVerifier: string\n codeChallenge: string\n codeChallengeMethod: string\n}\n\nexport type OAuth2Tokens = {\n accessToken: string\n refreshToken?: string\n}\n\nconst getServerUrl = (activeServer: ServerObject | null, environmentVariables: Record<string, string> = {}) => {\n return replaceEnvVariables(\n replacePathVariables(activeServer?.url ?? '', getServerVariables(activeServer)),\n environmentVariables,\n )\n}\n\nconst getActiveServerBase = (activeServer: ServerObject | null, environmentVariables: Record<string, string> = {}) => {\n const serverUrl = getServerUrl(activeServer, environmentVariables)\n\n if (!serverUrl) {\n return {}\n }\n\n if (isRelativePath(serverUrl)) {\n return typeof window === 'undefined' ? {} : { basePath: serverUrl }\n }\n\n return { baseUrl: serverUrl }\n}\n\n/**\n * Generates a random string for PKCE code verifier\n *\n * @see https://www.rfc-editor.org/rfc/rfc7636#page-8\n */\nconst generateCodeVerifier = (): string => {\n // Generate 32 random bytes\n const buffer = new Uint8Array(32)\n crypto.getRandomValues(buffer)\n\n // Base64URL encode the bytes\n return fromUint8Array(buffer, true)\n}\n\n/**\n * Creates a code challenge from the code verifier\n */\nconst generateCodeChallenge = async (verifier: string, encoding: 'SHA-256' | 'plain'): Promise<string> => {\n if (encoding === 'plain') {\n return verifier\n }\n\n // If crypto.subtle.digest is not a function, we cannot use SHA-256\n if (typeof crypto?.subtle?.digest !== 'function') {\n console.warn('SHA-256 is only supported when using https, using a plain text code challenge instead.')\n return verifier\n }\n\n // ASCII encoding is just taking the lower 8 bits of each character\n const encoder = new TextEncoder()\n const data = encoder.encode(verifier)\n const digest = await crypto.subtle.digest('SHA-256', data)\n\n // Base64URL encode the bytes\n return fromUint8Array(new Uint8Array(digest), true)\n}\n\n/**\n * Authorize oauth2 flow\n *\n * @returns the resolved oauth2 tokens\n */\nexport const authorizeOauth2 = async (\n flows: OAuthFlowsObjectSecret,\n type: keyof OAuthFlowsObjectSecret,\n selectedScopes: string[],\n /** We use the active server to set a base for relative redirect uris */\n activeServer: ServerObject | null,\n /** If we want to use the proxy */\n proxyUrl: string,\n /** Flattened environment variables used to resolve server URL templates like `{protocol}` */\n environmentVariables: Record<string, string> = {},\n): Promise<ErrorResponse<OAuth2Tokens>> => {\n const flow = flows[type]\n\n try {\n if (!flow) {\n return [new Error('Flow not found'), null]\n }\n\n const scopes = selectedScopes.join(' ')\n\n // Client Credentials or Password Flow\n if (type === 'clientCredentials' || type === 'password') {\n return authorizeServers(\n flows,\n type,\n scopes,\n {\n proxyUrl,\n },\n activeServer,\n environmentVariables,\n )\n }\n\n // Generate a random state string with the length of 8 characters\n const state = (Math.random() + 1).toString(36).substring(2, 10)\n\n const authorizationUrl = makeUrlAbsolute(\n flows[type]!['x-scalar-secret-auth-url'] ?? flows[type]!.authorizationUrl,\n getActiveServerBase(activeServer, environmentVariables),\n )\n\n const url = new URL(authorizationUrl)\n\n /** Special PKCE state */\n let pkce: PKCEState | null = null\n\n // Params unique to the flows\n if (type === 'implicit') {\n url.searchParams.set('response_type', 'token')\n } else if (type === 'authorizationCode') {\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n\n url.searchParams.set('response_type', 'code')\n\n // PKCE\n if (typedFlow['x-usePkce'] !== 'no') {\n const codeVerifier = generateCodeVerifier()\n const codeChallenge = await generateCodeChallenge(codeVerifier, typedFlow['x-usePkce'])\n\n // Set state for later verification\n pkce = {\n codeVerifier,\n codeChallenge,\n codeChallengeMethod: typedFlow['x-usePkce'] === 'SHA-256' ? 'S256' : 'plain',\n }\n\n // Set the code challenge and method on the url\n url.searchParams.set('code_challenge', codeChallenge)\n url.searchParams.set('code_challenge_method', pkce.codeChallengeMethod)\n }\n }\n\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n\n // Handle relative redirect uris\n if (typedFlow['x-scalar-secret-redirect-uri'].startsWith('/')) {\n const baseUrl =\n getServerUrl(activeServer, environmentVariables) || window.location.origin + window.location.pathname\n const redirectUri = new URL(typedFlow['x-scalar-secret-redirect-uri'], baseUrl).toString()\n\n url.searchParams.set('redirect_uri', redirectUri)\n } else {\n url.searchParams.set('redirect_uri', typedFlow['x-scalar-secret-redirect-uri'])\n }\n\n if (flow['x-scalar-security-query']) {\n Object.keys(flow['x-scalar-security-query']).forEach((key: string): void => {\n const value = flow['x-scalar-security-query']?.[key]\n if (!value) {\n return\n }\n url.searchParams.set(key, value)\n })\n }\n\n // Common to all flows\n url.searchParams.set('client_id', flow['x-scalar-secret-client-id'])\n url.searchParams.set('state', state)\n if (scopes) {\n url.searchParams.set('scope', scopes)\n }\n\n const windowFeatures = 'left=100,top=100,width=800,height=600'\n const authWindow = window.open(url, 'openAuth2Window', windowFeatures)\n\n // Open up a window and poll until closed or we have the data we want\n if (authWindow) {\n // We need to return a promise here due to the setInterval\n return new Promise<ErrorResponse<OAuth2Tokens>>((resolve) => {\n const checkWindowClosed = setInterval(() => {\n let accessToken: string | null = null\n let refreshToken: string | null = null\n let code: string | null = null\n let error: string | null = null\n let errorDescription: string | null = null\n\n try {\n const urlParams = new URL(authWindow.location.href).searchParams\n const tokenName = flow['x-tokenName'] || 'access_token'\n accessToken = urlParams.get(tokenName)\n refreshToken = urlParams.get('refresh_token')\n code = urlParams.get('code')\n\n error = urlParams.get('error')\n errorDescription = urlParams.get('error_description')\n\n // We may get the properties in a hash\n const hashParams = new URLSearchParams(authWindow.location.href.split('#')[1])\n accessToken ||= hashParams.get(tokenName)\n refreshToken ||= hashParams.get('refresh_token')\n code ||= hashParams.get('code')\n error ||= hashParams.get('error')\n errorDescription ||= hashParams.get('error_description')\n } catch (_e) {\n // Ignore CORS error from popup\n }\n\n // The window has closed OR we have what we are looking for so we stop polling\n if (authWindow.closed || accessToken || code || error) {\n clearInterval(checkWindowClosed)\n authWindow.close()\n\n if (error) {\n resolve([new Error(`OAuth error: ${error}${errorDescription ? ` (${errorDescription})` : ''}`), null])\n }\n\n // Implicit Flow\n else if (accessToken) {\n // State is a hash fragment and cannot be found through search params\n const _state = authWindow.location.href.match(/state=([^&]*)/)?.[1]\n\n if (_state === state) {\n resolve([null, { accessToken, ...(refreshToken ? { refreshToken } : {}) }])\n } else {\n resolve([new Error('State mismatch'), null])\n }\n }\n\n // Authorization Code Server Flow\n else if (code && type === 'authorizationCode') {\n const _state = new URL(authWindow.location.href).searchParams.get('state')\n\n if (_state === state) {\n // biome-ignore lint/nursery/noFloatingPromises: output of authorizeServers must be returned\n authorizeServers(\n flows,\n type,\n scopes,\n {\n code,\n pkce,\n proxyUrl,\n },\n activeServer,\n environmentVariables,\n ).then(resolve)\n } else {\n resolve([new Error('State mismatch'), null])\n }\n }\n // User closed window without authorizing\n else {\n clearInterval(checkWindowClosed)\n resolve([new Error('Window was closed without granting authorization'), null])\n }\n }\n }, 200)\n })\n }\n return [new Error('Failed to open auth window'), null]\n } catch (_) {\n return [new Error('Failed to authorize oauth2 flow'), null]\n }\n}\n\n/**\n * Makes the BE authorization call to grab the token server to server\n * Used for clientCredentials and authorizationCode\n */\nconst authorizeServers = async (\n flows: NonImplicitFlows,\n type: keyof NonImplicitFlows,\n scopes: string,\n {\n code,\n pkce,\n proxyUrl,\n }: {\n code?: string\n pkce?: PKCEState | null\n proxyUrl?: string\n } = {},\n activeServer: ServerObject | null,\n environmentVariables: Record<string, string> = {},\n): Promise<ErrorResponse<OAuth2Tokens>> => {\n const flow = flows[type]\n\n if (!flow) {\n return [new Error('OAuth2 flow was not defined'), null]\n }\n\n const formData = new URLSearchParams()\n\n // Only client credentials and password flows support scopes in the token request\n if (scopes && (type === 'clientCredentials' || type === 'password')) {\n formData.set('scope', scopes)\n }\n\n /** Where to add the credentials */\n const addCredentialsToBody = flow['x-scalar-credentials-location'] === 'body'\n const hasClientSecret = Boolean(flow['x-scalar-secret-client-secret'])\n /**\n * Public authorization-code clients still need client_id in the token body.\n * We only send it implicitly for that case to avoid conflicting with Basic auth.\n */\n const shouldSendClientIdInBody = addCredentialsToBody || (type === 'authorizationCode' && !hasClientSecret)\n\n if (shouldSendClientIdInBody) {\n formData.set('client_id', flow['x-scalar-secret-client-id'])\n }\n if (addCredentialsToBody && hasClientSecret) {\n formData.set('client_secret', flow['x-scalar-secret-client-secret'])\n }\n if ('x-scalar-secret-redirect-uri' in flow && flow['x-scalar-secret-redirect-uri']) {\n formData.set('redirect_uri', flow['x-scalar-secret-redirect-uri'])\n }\n\n // Authorization Code\n if (code) {\n formData.set('code', code)\n formData.set('grant_type', 'authorization_code')\n\n // PKCE\n if (pkce) {\n formData.set('code_verifier', pkce.codeVerifier)\n }\n }\n // Password\n else if (type === 'password') {\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n formData.set('grant_type', 'password')\n formData.set('username', typedFlow['x-scalar-secret-username'])\n formData.set('password', typedFlow['x-scalar-secret-password'])\n }\n // Client Credentials\n else {\n formData.set('grant_type', 'client_credentials')\n }\n\n // Additional request body parameters\n if (flow['x-scalar-security-body']) {\n Object.entries(flow['x-scalar-security-body']).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n formData.set(key, String(value))\n }\n })\n }\n\n try {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n }\n\n // Add client id + secret to headers for confidential clients.\n if (!addCredentialsToBody && hasClientSecret) {\n headers.Authorization = `Basic ${encode(`${flow['x-scalar-secret-client-id']}:${flow['x-scalar-secret-client-secret']}`)}`\n }\n\n // Check if we should use the proxy\n const tokenUrl = makeUrlAbsolute(\n flow['x-scalar-secret-token-url'] ?? flow.tokenUrl,\n getActiveServerBase(activeServer, environmentVariables),\n )\n const url = shouldUseProxy(proxyUrl, tokenUrl)\n ? `${proxyUrl}?${new URLSearchParams([['scalar_url', tokenUrl]]).toString()}`\n : tokenUrl\n\n // Make the call\n const resp = await fetch(url, {\n method: 'POST',\n headers,\n body: formData,\n })\n const responseData = await resp.json()\n\n // Use custom token name if specified, otherwise default to access_token\n const tokenName = flow['x-tokenName'] || 'access_token'\n const accessToken = responseData[tokenName]\n const refreshToken = responseData.refresh_token\n\n return [null, { accessToken, ...(typeof refreshToken === 'string' ? { refreshToken } : {}) }]\n } catch {\n return [new Error('Failed to get an access token. Please check your credentials.'), null]\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","names":[],"sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/helpers/oauth.ts"],"sourcesContent":["import type { ErrorResponse } from '@scalar/helpers/errors/normalize-error'\nimport { replaceEnvVariables, replacePathVariables } from '@scalar/helpers/regex/replace-variables'\nimport { isRelativePath } from '@scalar/helpers/url/is-relative-path'\nimport { makeUrlAbsolute } from '@scalar/helpers/url/make-url-absolute'\nimport { shouldUseProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport type { OAuthFlowsObjectSecret } from '@scalar/workspace-store/request-example'\nimport { getServerVariables } from '@scalar/workspace-store/request-example'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { encode, fromUint8Array } from 'js-base64'\n\n/** Oauth2 security schemes which are not implicit */\ntype NonImplicitFlows = Omit<OAuthFlowsObjectSecret, 'implicit'>\n\ntype PKCEState = {\n codeVerifier: string\n codeChallenge: string\n codeChallengeMethod: string\n}\n\nexport type OAuth2Tokens = {\n accessToken: string\n refreshToken?: string\n}\n\nconst getServerUrl = (activeServer: ServerObject | null, environmentVariables: Record<string, string> = {}) => {\n return replaceEnvVariables(\n replacePathVariables(activeServer?.url ?? '', getServerVariables(activeServer)),\n environmentVariables,\n )\n}\n\nconst getActiveServerBase = (activeServer: ServerObject | null, environmentVariables: Record<string, string> = {}) => {\n const serverUrl = getServerUrl(activeServer, environmentVariables)\n\n if (!serverUrl) {\n return {}\n }\n\n if (isRelativePath(serverUrl)) {\n return typeof window === 'undefined' ? {} : { basePath: serverUrl }\n }\n\n return { baseUrl: serverUrl }\n}\n\n/**\n * Generates a random string for PKCE code verifier\n *\n * @see https://www.rfc-editor.org/rfc/rfc7636#page-8\n */\nconst generateCodeVerifier = (): string => {\n // Generate 32 random bytes\n const buffer = new Uint8Array(32)\n crypto.getRandomValues(buffer)\n\n // Base64URL encode the bytes\n return fromUint8Array(buffer, true)\n}\n\n/**\n * Creates a code challenge from the code verifier\n */\nconst generateCodeChallenge = async (verifier: string, encoding: 'SHA-256' | 'plain'): Promise<string> => {\n if (encoding === 'plain') {\n return verifier\n }\n\n // If crypto.subtle.digest is not a function, we cannot use SHA-256\n if (typeof crypto?.subtle?.digest !== 'function') {\n console.warn('SHA-256 is only supported when using https, using a plain text code challenge instead.')\n return verifier\n }\n\n // ASCII encoding is just taking the lower 8 bits of each character\n const encoder = new TextEncoder()\n const data = encoder.encode(verifier)\n const digest = await crypto.subtle.digest('SHA-256', data)\n\n // Base64URL encode the bytes\n return fromUint8Array(new Uint8Array(digest), true)\n}\n\n/**\n * Authorize oauth2 flow\n *\n * @returns the resolved oauth2 tokens\n */\nexport const authorizeOauth2 = async (\n flows: OAuthFlowsObjectSecret,\n type: keyof OAuthFlowsObjectSecret,\n selectedScopes: string[],\n /** We use the active server to set a base for relative redirect uris */\n activeServer: ServerObject | null,\n /** If we want to use the proxy */\n proxyUrl: string,\n /** Flattened environment variables used to resolve server URL templates like `{protocol}` */\n environmentVariables: Record<string, string> = {},\n): Promise<ErrorResponse<OAuth2Tokens>> => {\n const flow = flows[type]\n\n try {\n if (!flow) {\n return [new Error('Flow not found'), null]\n }\n\n const scopes = selectedScopes.join(' ')\n\n // Client Credentials or Password Flow\n if (type === 'clientCredentials' || type === 'password') {\n return authorizeServers(\n flows,\n type,\n scopes,\n {\n proxyUrl,\n },\n activeServer,\n environmentVariables,\n )\n }\n\n // Generate a random state string with the length of 8 characters\n const state = (Math.random() + 1).toString(36).substring(2, 10)\n\n const authorizationUrl = makeUrlAbsolute(\n flows[type]!['x-scalar-secret-auth-url'] ?? flows[type]!.authorizationUrl,\n getActiveServerBase(activeServer, environmentVariables),\n )\n\n const url = new URL(authorizationUrl)\n\n /** Special PKCE state */\n let pkce: PKCEState | null = null\n\n // Params unique to the flows\n if (type === 'implicit') {\n url.searchParams.set('response_type', 'token')\n } else if (type === 'authorizationCode') {\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n\n url.searchParams.set('response_type', 'code')\n\n // PKCE\n if (typedFlow['x-usePkce'] !== 'no') {\n const codeVerifier = generateCodeVerifier()\n const codeChallenge = await generateCodeChallenge(codeVerifier, typedFlow['x-usePkce'])\n\n // Set state for later verification\n pkce = {\n codeVerifier,\n codeChallenge,\n codeChallengeMethod: typedFlow['x-usePkce'] === 'SHA-256' ? 'S256' : 'plain',\n }\n\n // Set the code challenge and method on the url\n url.searchParams.set('code_challenge', codeChallenge)\n url.searchParams.set('code_challenge_method', pkce.codeChallengeMethod)\n }\n }\n\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n\n // Handle relative redirect uris\n if (typedFlow['x-scalar-secret-redirect-uri'].startsWith('/')) {\n const baseUrl =\n getServerUrl(activeServer, environmentVariables) || window.location.origin + window.location.pathname\n const redirectUri = new URL(typedFlow['x-scalar-secret-redirect-uri'], baseUrl).toString()\n\n url.searchParams.set('redirect_uri', redirectUri)\n } else {\n url.searchParams.set('redirect_uri', typedFlow['x-scalar-secret-redirect-uri'])\n }\n\n if (flow['x-scalar-security-query']) {\n Object.keys(flow['x-scalar-security-query']).forEach((key: string): void => {\n const value = flow['x-scalar-security-query']?.[key]\n if (!value) {\n return\n }\n url.searchParams.set(key, value)\n })\n }\n\n // Common to all flows\n url.searchParams.set('client_id', flow['x-scalar-secret-client-id'])\n url.searchParams.set('state', state)\n if (scopes) {\n url.searchParams.set('scope', scopes)\n }\n\n const windowFeatures = 'left=100,top=100,width=800,height=600'\n const authWindow = window.open(url, 'openAuth2Window', windowFeatures)\n\n // Open up a window and poll until closed or we have the data we want\n if (authWindow) {\n // We need to return a promise here due to the setInterval\n return new Promise<ErrorResponse<OAuth2Tokens>>((resolve) => {\n const checkWindowClosed = setInterval(() => {\n let accessToken: string | null = null\n let refreshToken: string | null = null\n let code: string | null = null\n let error: string | null = null\n let errorDescription: string | null = null\n\n try {\n const urlParams = new URL(authWindow.location.href).searchParams\n const tokenName = flow['x-tokenName'] || 'access_token'\n accessToken = urlParams.get(tokenName)\n refreshToken = urlParams.get('refresh_token')\n code = urlParams.get('code')\n\n error = urlParams.get('error')\n errorDescription = urlParams.get('error_description')\n\n // We may get the properties in a hash\n const hashParams = new URLSearchParams(authWindow.location.href.split('#')[1])\n accessToken ||= hashParams.get(tokenName)\n refreshToken ||= hashParams.get('refresh_token')\n code ||= hashParams.get('code')\n error ||= hashParams.get('error')\n errorDescription ||= hashParams.get('error_description')\n } catch (_e) {\n // Ignore CORS error from popup\n }\n\n // The window has closed OR we have what we are looking for so we stop polling\n if (authWindow.closed || accessToken || code || error) {\n clearInterval(checkWindowClosed)\n authWindow.close()\n\n if (error) {\n resolve([new Error(`OAuth error: ${error}${errorDescription ? ` (${errorDescription})` : ''}`), null])\n }\n\n // Implicit Flow\n else if (accessToken) {\n // State is a hash fragment and cannot be found through search params\n const _state = authWindow.location.href.match(/state=([^&]*)/)?.[1]\n\n if (_state === state) {\n resolve([null, { accessToken, ...(refreshToken ? { refreshToken } : {}) }])\n } else {\n resolve([new Error('State mismatch'), null])\n }\n }\n\n // Authorization Code Server Flow\n else if (code && type === 'authorizationCode') {\n const _state = new URL(authWindow.location.href).searchParams.get('state')\n\n if (_state === state) {\n // biome-ignore lint/nursery/noFloatingPromises: output of authorizeServers must be returned\n authorizeServers(\n flows,\n type,\n scopes,\n {\n code,\n pkce,\n proxyUrl,\n },\n activeServer,\n environmentVariables,\n ).then(resolve)\n } else {\n resolve([new Error('State mismatch'), null])\n }\n }\n // User closed window without authorizing\n else {\n clearInterval(checkWindowClosed)\n resolve([new Error('Window was closed without granting authorization'), null])\n }\n }\n }, 200)\n })\n }\n return [new Error('Failed to open auth window'), null]\n } catch (_) {\n return [new Error('Failed to authorize oauth2 flow'), null]\n }\n}\n\n/**\n * Makes the BE authorization call to grab the token server to server\n * Used for clientCredentials and authorizationCode\n */\nconst authorizeServers = async (\n flows: NonImplicitFlows,\n type: keyof NonImplicitFlows,\n scopes: string,\n {\n code,\n pkce,\n proxyUrl,\n }: {\n code?: string\n pkce?: PKCEState | null\n proxyUrl?: string\n } = {},\n activeServer: ServerObject | null,\n environmentVariables: Record<string, string> = {},\n): Promise<ErrorResponse<OAuth2Tokens>> => {\n const flow = flows[type]\n\n if (!flow) {\n return [new Error('OAuth2 flow was not defined'), null]\n }\n\n const formData = new URLSearchParams()\n\n // Only client credentials and password flows support scopes in the token request\n if (scopes && (type === 'clientCredentials' || type === 'password')) {\n formData.set('scope', scopes)\n }\n\n /** Where to add the credentials */\n const addCredentialsToBody = flow['x-scalar-credentials-location'] === 'body'\n const hasClientSecret = Boolean(flow['x-scalar-secret-client-secret'])\n /**\n * Public authorization-code clients still need client_id in the token body.\n * We only send it implicitly for that case to avoid conflicting with Basic auth.\n */\n const shouldSendClientIdInBody = addCredentialsToBody || (type === 'authorizationCode' && !hasClientSecret)\n\n if (shouldSendClientIdInBody) {\n formData.set('client_id', flow['x-scalar-secret-client-id'])\n }\n if (addCredentialsToBody && hasClientSecret) {\n formData.set('client_secret', flow['x-scalar-secret-client-secret'])\n }\n if ('x-scalar-secret-redirect-uri' in flow && flow['x-scalar-secret-redirect-uri']) {\n formData.set('redirect_uri', flow['x-scalar-secret-redirect-uri'])\n }\n\n // Authorization Code\n if (code) {\n formData.set('code', code)\n formData.set('grant_type', 'authorization_code')\n\n // PKCE\n if (pkce) {\n formData.set('code_verifier', pkce.codeVerifier)\n }\n }\n // Password\n else if (type === 'password') {\n const typedFlow = flows[type]! // Safe to assert due to earlier check\n formData.set('grant_type', 'password')\n formData.set('username', typedFlow['x-scalar-secret-username'])\n formData.set('password', typedFlow['x-scalar-secret-password'])\n }\n // Client Credentials\n else {\n formData.set('grant_type', 'client_credentials')\n }\n\n // Additional request body parameters\n if (flow['x-scalar-security-body']) {\n Object.entries(flow['x-scalar-security-body']).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n formData.set(key, String(value))\n }\n })\n }\n\n try {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n }\n\n // Add client id + secret to headers for confidential clients.\n if (!addCredentialsToBody && hasClientSecret) {\n headers.Authorization = `Basic ${encode(`${flow['x-scalar-secret-client-id']}:${flow['x-scalar-secret-client-secret']}`)}`\n }\n\n // Check if we should use the proxy\n const tokenUrl = makeUrlAbsolute(\n flow['x-scalar-secret-token-url'] ?? flow.tokenUrl,\n getActiveServerBase(activeServer, environmentVariables),\n )\n const url = shouldUseProxy(proxyUrl, tokenUrl)\n ? `${proxyUrl}?${new URLSearchParams([['scalar_url', tokenUrl]]).toString()}`\n : tokenUrl\n\n // Make the call\n const resp = await fetch(url, {\n method: 'POST',\n headers,\n body: formData,\n })\n const responseData = await resp.json()\n\n // Use custom token name if specified, otherwise default to access_token\n const tokenName = flow['x-tokenName'] || 'access_token'\n const accessToken = responseData[tokenName]\n const refreshToken = responseData.refresh_token\n\n return [null, { accessToken, ...(typeof refreshToken === 'string' ? { refreshToken } : {}) }]\n } catch {\n return [new Error('Failed to get an access token. Please check your credentials.'), null]\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ApiClientConfiguration } from '@scalar/types/api-reference';
2
+ /**
3
+ * Resolve the default OAuth2 redirect URI.
4
+ *
5
+ * Priority:
6
+ * 1. Explicit oauth2RedirectUri config override.
7
+ * 2. Empty string in non-browser and file:// contexts.
8
+ * 3. Browser origin + pathname fallback.
9
+ */
10
+ export declare const resolveDefaultOAuth2RedirectUri: (config: Pick<ApiClientConfiguration, "oauth2RedirectUri">) => string;
11
+ //# sourceMappingURL=resolve-default-oauth2-redirect-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-default-oauth2-redirect-url.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAAI,QAAQ,IAAI,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,KAAG,MAU3G,CAAA"}
@@ -0,0 +1,18 @@
1
+ //#region src/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.ts
2
+ /**
3
+ * Resolve the default OAuth2 redirect URI.
4
+ *
5
+ * Priority:
6
+ * 1. Explicit oauth2RedirectUri config override.
7
+ * 2. Empty string in non-browser and file:// contexts.
8
+ * 3. Browser origin + pathname fallback.
9
+ */
10
+ var resolveDefaultOAuth2RedirectUri = (config) => {
11
+ if (config.oauth2RedirectUri) return config.oauth2RedirectUri;
12
+ if (typeof window === "undefined" || window.location.protocol === "file:") return "";
13
+ return window.location.origin + window.location.pathname;
14
+ };
15
+ //#endregion
16
+ export { resolveDefaultOAuth2RedirectUri };
17
+
18
+ //# sourceMappingURL=resolve-default-oauth2-redirect-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-default-oauth2-redirect-url.js","names":[],"sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/helpers/resolve-default-oauth2-redirect-url.ts"],"sourcesContent":["import type { ApiClientConfiguration } from '@scalar/types/api-reference'\n\n/**\n * Resolve the default OAuth2 redirect URI.\n *\n * Priority:\n * 1. Explicit oauth2RedirectUri config override.\n * 2. Empty string in non-browser and file:// contexts.\n * 3. Browser origin + pathname fallback.\n */\nexport const resolveDefaultOAuth2RedirectUri = (config: Pick<ApiClientConfiguration, 'oauth2RedirectUri'>): string => {\n if (config.oauth2RedirectUri) {\n return config.oauth2RedirectUri\n }\n\n if (typeof window === 'undefined' || window.location.protocol === 'file:') {\n return ''\n }\n\n return window.location.origin + window.location.pathname\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,mCAAmC,WAAsE;AACpH,KAAI,OAAO,kBACT,QAAO,OAAO;AAGhB,KAAI,OAAO,WAAW,eAAe,OAAO,SAAS,aAAa,QAChE,QAAO;AAGT,QAAO,OAAO,SAAS,SAAS,OAAO,SAAS"}
@@ -11,7 +11,8 @@ export type CodeInputModelValue = string | number | boolean | Array<string | num
11
11
  * - Select mode: Dropdown for enums, booleans, or examples
12
12
  * - Editor mode: CodeMirror with environment variable support
13
13
  *
14
- * Type `{{` to trigger environment variable autocomplete when an environment is provided.
14
+ * Type `{{` to trigger autocomplete for environment variables and runtime context functions
15
+ * (for example `{{$guid}}`) when an environment is provided.
15
16
  * It takes in any data but always will emit a string value,
16
17
  * this string should then be parsed in accordance to the schema or content type.
17
18
  *
@@ -102,7 +103,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
102
103
  cursorPosition: () => number | undefined;
103
104
  serializeValue: (value: CodeInputModelValue) => string;
104
105
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
105
- submit: (value: string, event: KeyboardEvent | FocusEvent) => any;
106
+ submit: (value: string, event: FocusEvent | KeyboardEvent) => any;
106
107
  "update:modelValue": (value: string) => any;
107
108
  blur: (value: string, event: FocusEvent) => any;
108
109
  navigate: (route: {
@@ -164,7 +165,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
164
165
  /** Put a linethrough on the input text */
165
166
  linethrough?: boolean;
166
167
  }> & Readonly<{
167
- onSubmit?: ((value: string, event: KeyboardEvent | FocusEvent) => any) | undefined;
168
+ onSubmit?: ((value: string, event: FocusEvent | KeyboardEvent) => any) | undefined;
168
169
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
169
170
  onBlur?: ((value: string, event: FocusEvent) => any) | undefined;
170
171
  onNavigate?: ((route: {
@@ -1 +1 @@
1
- {"version":3,"file":"CodeInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import CodeInput_vue_vue_type_script_setup_true_lang_default from "./CodeInput.v
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  //#region src/v2/components/code-input/CodeInput.vue
6
- var CodeInput_default = /* @__PURE__ */ _plugin_vue_export_helper_default(CodeInput_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3ac22ad4"]]);
6
+ var CodeInput_default = /* @__PURE__ */ _plugin_vue_export_helper_default(CodeInput_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-167b1bd5"]]);
7
7
  //#endregion
8
8
  export { CodeInput_default as default };
9
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"CodeInput.vue.js","names":[],"sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type CodeInputModelValue =\n | string\n | number\n | boolean\n | Array<string | number | boolean>\n | Record<string, unknown>\n\n/**\n * CodeInput\n *\n * A versatile input component that adapts its rendering based on props:\n * - Disabled mode: Read-only text display\n * - Select mode: Dropdown for enums, booleans, or examples\n * - Editor mode: CodeMirror with environment variable support\n *\n * Type `{{` to trigger environment variable autocomplete when an environment is provided.\n * It takes in any data but always will emit a string value,\n * this string should then be parsed in accordance to the schema or content type.\n *\n * @example\n * ```vue\n * <!-- Basic input with environment variables -->\n * <CodeInput v-model=\"value\" :environment=\"env\" />\n *\n * <!-- Boolean select -->\n * <CodeInput v-model=\"flag\" type=\"boolean\" />\n *\n * <!-- JSON editor with linting -->\n * <CodeInput v-model=\"data\" language=\"json\" :lint=\"true\" />\n * ```\n */\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport DataTableInputSelect from '@/v2/components/data-table/DataTableInputSelect.vue'\nimport EnvironmentVariableDropdown from '@/v2/features/environments/components/EnvironmentVariablesDropdown.vue'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nimport { backspaceCommand, pillPlugin } from './code-variable-widget'\n\ntype Props = {\n modelValue: CodeInputModelValue\n /** Environment for variable substitution. Pass undefined to disable environment variables */\n environment: XScalarEnvironment | undefined\n /** Type of the input value, affects rendering mode for booleans */\n type?: string | string[]\n /** Render as disabled text display */\n disabled?: boolean\n /** Show error styling */\n error?: boolean\n /** Layout context affects styling and behavior */\n layout?: ClientLayout\n /** Predefined enum values, triggers select mode */\n enum?: string[]\n /** Example values, triggers select mode */\n examples?: string[]\n /** Default value to show in select mode */\n default?: Props['modelValue']\n /** Allow null in boolean select options */\n nullable?: boolean\n /** Placeholder text for empty input */\n placeholder?: string\n /** Show required indicator */\n required?: boolean\n /** Enable color picker extension */\n colorPicker?: boolean\n /** Show line numbers in editor */\n lineNumbers?: boolean\n /** Enable linting */\n lint?: boolean\n /** Enable line wrapping */\n lineWrapping?: boolean\n /** CodeMirror language mode */\n language?: CodeMirrorLanguage\n /** Additional CodeMirror extensions */\n extensions?: Extension[]\n /** Disable tab key for indentation */\n disableTabIndent?: boolean\n /** Disable enter key */\n disableEnter?: boolean\n /** Disable automatic bracket closing */\n disableCloseBrackets?: boolean\n /** Emit submit event on blur */\n emitOnBlur?: boolean\n /** Enable environment variable pills */\n withVariables?: boolean\n /** Emit change event even if the value is the same */\n alwaysEmitChange?: boolean\n /** Custom change handler, prevents default emit */\n handleFieldChange?: (value: string) => void\n /** Custom submit handler, prevents default emit */\n handleFieldSubmit?: (value: string) => void\n /** Put a linethrough on the input text */\n linethrough?: boolean\n}\n\nconst {\n modelValue,\n environment,\n type,\n disabled = false,\n error = false,\n layout = 'desktop',\n enum: enumProp,\n examples,\n default: defaultProp,\n nullable = false,\n placeholder,\n required,\n colorPicker = false,\n lineNumbers = false,\n lint = false,\n lineWrapping = false,\n language,\n extensions = [],\n disableTabIndent = false,\n disableEnter = false,\n disableCloseBrackets = false,\n emitOnBlur = true,\n alwaysEmitChange = false,\n withVariables = true,\n handleFieldChange,\n handleFieldSubmit,\n} = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'submit': [value: string, event: KeyboardEvent | FocusEvent]\n 'navigate': [route: { page: 'document'; path: 'environment' }]\n 'blur': [value: string, event: FocusEvent]\n}>()\n\n// ---------------------------------------------------------------------------\n// Component identity and focus state\n\nconst attrs = useAttrs() as { id?: string }\nconst componentId = attrs.id || `id-${nanoid()}`\nconst isFocused = ref(false)\n\n// ---------------------------------------------------------------------------\n// Rendering mode detection\n\n/**\n * Determines if we should render a select dropdown for boolean types.\n */\nconst isBooleanMode = computed((): boolean => {\n if (enumProp?.length) {\n return false\n }\n return type === 'boolean' || (Array.isArray(type) && type.includes('boolean'))\n})\n\n/**\n * Options for boolean select mode.\n */\nconst booleanOptions = computed((): string[] =>\n nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\n/**\n * Default type when dealing with type arrays.\n * Finds the first non-null type.\n */\nconst defaultType = computed((): string | undefined => {\n if (Array.isArray(type)) {\n return type.find((t) => t !== 'null') ?? 'string'\n }\n return type\n})\n\n// ---------------------------------------------------------------------------\n// Event handlers\n\n/**\n * Handles value changes during typing.\n */\nconst handleChange = (value: string): void => {\n if (!alwaysEmitChange && value === serializeValue(modelValue)) {\n return\n }\n\n // Use custom handler or emit update\n if (handleFieldChange) {\n handleFieldChange(value)\n } else {\n emit('update:modelValue', value)\n }\n}\n\n/**\n * Handles form submission (enter key or blur with emitOnBlur).\n */\nconst handleSubmit = (\n value: string,\n event: KeyboardEvent | FocusEvent,\n): void => {\n if (handleFieldSubmit) {\n handleFieldSubmit(value)\n } else {\n emit('submit', value, event)\n }\n}\n\n/**\n * Handles input blur event.\n */\nconst handleBlur = (value: string, event: FocusEvent): void => {\n isFocused.value = false\n\n if (emitOnBlur && modelValue) {\n handleSubmit(value, event)\n }\n\n emit('blur', value, event)\n}\n\n/**\n * Handles model value updates from select components.\n */\nconst handleSelectChange = (value: string): void =>\n emit('update:modelValue', value)\n\n// ---------------------------------------------------------------------------\n// CodeMirror setup\n\n/**\n * Build extensions array.\n * Note: Extensions are not reactive after initialization.\n */\nconst buildExtensions = (): Extension[] => {\n const extensionsList: Extension[] = [...extensions]\n\n if (colorPicker) {\n extensionsList.push(colorPickerExtension)\n }\n\n return extensionsList\n}\n\n/**\n * Reactive pill plugin for environment variable visualization.\n */\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment,\n isReadOnly: layout === 'modal',\n }),\n)\n\n/**\n * Combined extensions for CodeMirror.\n */\nconst codeMirrorExtensions = computed((): Extension[] => [\n ...buildExtensions(),\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\n/** Converts the model value to a string for CodeMirror */\nconst serializeValue = (value: CodeInputModelValue): string => {\n if (typeof value === 'string') {\n return value\n }\n return JSON.stringify(value)\n}\n\nconst { codeMirror, setCodeMirrorContent } = useCodeMirror({\n content: toRef(() => serializeValue(modelValue)),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => {\n isFocused.value = true\n },\n onBlur: handleBlur,\n codeMirrorRef,\n disableTabIndent: toRef(() => disableTabIndent),\n disableEnter: toRef(() => disableEnter),\n disableCloseBrackets: toRef(() => disableCloseBrackets),\n lineNumbers: toRef(() => lineNumbers),\n language: toRef(() => language),\n lint: toRef(() => lint),\n extensions: codeMirrorExtensions,\n placeholder: toRef(() => placeholder),\n})\n\n/**\n * Handle autofocus attribute.\n */\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\n// ---------------------------------------------------------------------------\n// Environment variable dropdown\n\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n/**\n * Determines if the environment variable dropdown should be visible.\n */\nconst displayVariablesDropdown = computed((): boolean => {\n return (\n showDropdown.value &&\n withVariables &&\n layout !== 'modal' &&\n Boolean(environment)\n )\n})\n\n// ---------------------------------------------------------------------------\n// Keyboard event handling\n\n/**\n * Handles keyboard navigation for dropdown and form submission.\n */\nconst handleKeyDown = (key: string, event: KeyboardEvent): void => {\n if (showDropdown.value) {\n if (key === 'down' || key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey(key)\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n return\n }\n\n if (key === 'escape' && !disableTabIndent) {\n event.stopPropagation()\n }\n\n if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '', event)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n\ndefineExpose({\n /**\n * Focus the codemirror element\n *\n * @param cursorAtEnd boolean place the cursor at the end of the input\n */\n focus: (position?: 'start' | 'end' | number) => {\n if (!codeMirror.value) {\n return\n }\n codeMirror.value.focus()\n\n if (!isDefined(position)) {\n return\n }\n\n const anchor = (() => {\n if (position === 'start') {\n return 0\n }\n if (position === 'end') {\n return codeMirror.value.state.doc.length\n }\n return position\n })()\n\n // Move the cursor to the specified position\n codeMirror.value.dispatch({\n selection: { anchor },\n scrollIntoView: true,\n })\n },\n isFocused,\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n codeMirrorRef,\n modelValue,\n setCodeMirrorContent,\n cursorPosition: () => codeMirror.value?.state.selection.main.head,\n serializeValue,\n})\n</script>\n\n<template>\n <!-- Disabled mode: read-only text display -->\n <div\n v-if=\"disabled\"\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"{\n 'font-code pr-2 pl-1 text-base': layout === 'modal',\n 'px-2': layout !== 'modal',\n 'line-through': linethrough,\n }\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n\n <!-- Enum mode: select dropdown with predefined values -->\n <DataTableInputSelect\n v-else-if=\"enumProp?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"enumProp\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Boolean mode: select dropdown with true/false (and optionally null) -->\n <DataTableInputSelect\n v-else-if=\"isBooleanMode\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Examples mode: select dropdown with example values -->\n <DataTableInputSelect\n v-else-if=\"examples?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"examples\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Editor mode: CodeMirror with environment variable support -->\n <div\n v-else\n :id=\"componentId\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n 'line-through': linethrough,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <!-- Tab exit hint (shown when focused) -->\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n\n <!-- Warning slot (positioned absolutely) -->\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n\n <!-- Icon slot (positioned absolutely) -->\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n\n <!-- Required indicator -->\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n\n <!-- Environment variable autocomplete dropdown -->\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown && environment\"\n ref=\"dropdownRef\"\n :dropdownPosition=\"dropdownPosition\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @redirect=\"emit('navigate', { page: 'document', path: 'environment' })\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n */\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n color: var(--scalar-color-1) !important;\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n}\n.light-mode .cm-pill {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"CodeInput.vue.js","names":[],"sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type CodeInputModelValue =\n | string\n | number\n | boolean\n | Array<string | number | boolean>\n | Record<string, unknown>\n\n/**\n * CodeInput\n *\n * A versatile input component that adapts its rendering based on props:\n * - Disabled mode: Read-only text display\n * - Select mode: Dropdown for enums, booleans, or examples\n * - Editor mode: CodeMirror with environment variable support\n *\n * Type `{{` to trigger autocomplete for environment variables and runtime context functions\n * (for example `{{$guid}}`) when an environment is provided.\n * It takes in any data but always will emit a string value,\n * this string should then be parsed in accordance to the schema or content type.\n *\n * @example\n * ```vue\n * <!-- Basic input with environment variables -->\n * <CodeInput v-model=\"value\" :environment=\"env\" />\n *\n * <!-- Boolean select -->\n * <CodeInput v-model=\"flag\" type=\"boolean\" />\n *\n * <!-- JSON editor with linting -->\n * <CodeInput v-model=\"data\" language=\"json\" :lint=\"true\" />\n * ```\n */\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport {\n CONTEXT_FUNCTION_NAMES,\n getContextFunctionComment,\n isContextFunctionName,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport DataTableInputSelect from '@/v2/components/data-table/DataTableInputSelect.vue'\nimport EnvironmentVariableDropdown from '@/v2/features/environments/components/EnvironmentVariablesDropdown.vue'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nimport { backspaceCommand, pillPlugin } from './code-variable-widget'\n\ntype Props = {\n modelValue: CodeInputModelValue\n /** Environment for variable substitution. Pass undefined to disable environment variables */\n environment: XScalarEnvironment | undefined\n /** Type of the input value, affects rendering mode for booleans */\n type?: string | string[]\n /** Render as disabled text display */\n disabled?: boolean\n /** Show error styling */\n error?: boolean\n /** Layout context affects styling and behavior */\n layout?: ClientLayout\n /** Predefined enum values, triggers select mode */\n enum?: string[]\n /** Example values, triggers select mode */\n examples?: string[]\n /** Default value to show in select mode */\n default?: Props['modelValue']\n /** Allow null in boolean select options */\n nullable?: boolean\n /** Placeholder text for empty input */\n placeholder?: string\n /** Show required indicator */\n required?: boolean\n /** Enable color picker extension */\n colorPicker?: boolean\n /** Show line numbers in editor */\n lineNumbers?: boolean\n /** Enable linting */\n lint?: boolean\n /** Enable line wrapping */\n lineWrapping?: boolean\n /** CodeMirror language mode */\n language?: CodeMirrorLanguage\n /** Additional CodeMirror extensions */\n extensions?: Extension[]\n /** Disable tab key for indentation */\n disableTabIndent?: boolean\n /** Disable enter key */\n disableEnter?: boolean\n /** Disable automatic bracket closing */\n disableCloseBrackets?: boolean\n /** Emit submit event on blur */\n emitOnBlur?: boolean\n /** Enable environment variable pills */\n withVariables?: boolean\n /** Emit change event even if the value is the same */\n alwaysEmitChange?: boolean\n /** Custom change handler, prevents default emit */\n handleFieldChange?: (value: string) => void\n /** Custom submit handler, prevents default emit */\n handleFieldSubmit?: (value: string) => void\n /** Put a linethrough on the input text */\n linethrough?: boolean\n}\n\nconst {\n modelValue,\n environment,\n type,\n disabled = false,\n error = false,\n layout = 'desktop',\n enum: enumProp,\n examples,\n default: defaultProp,\n nullable = false,\n placeholder,\n required,\n colorPicker = false,\n lineNumbers = false,\n lint = false,\n lineWrapping = false,\n language,\n extensions = [],\n disableTabIndent = false,\n disableEnter = false,\n disableCloseBrackets = false,\n emitOnBlur = true,\n alwaysEmitChange = false,\n withVariables = true,\n handleFieldChange,\n handleFieldSubmit,\n} = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'submit': [value: string, event: KeyboardEvent | FocusEvent]\n 'navigate': [route: { page: 'document'; path: 'environment' }]\n 'blur': [value: string, event: FocusEvent]\n}>()\n\n// ---------------------------------------------------------------------------\n// Component identity and focus state\n\nconst attrs = useAttrs() as { id?: string }\nconst componentId = attrs.id || `id-${nanoid()}`\nconst isFocused = ref(false)\n\n// ---------------------------------------------------------------------------\n// Rendering mode detection\n\n/**\n * Determines if we should render a select dropdown for boolean types.\n */\nconst isBooleanMode = computed((): boolean => {\n if (enumProp?.length) {\n return false\n }\n return type === 'boolean' || (Array.isArray(type) && type.includes('boolean'))\n})\n\n/**\n * Options for boolean select mode.\n */\nconst booleanOptions = computed((): string[] =>\n nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\n/**\n * Default type when dealing with type arrays.\n * Finds the first non-null type.\n */\nconst defaultType = computed((): string | undefined => {\n if (Array.isArray(type)) {\n return type.find((t) => t !== 'null') ?? 'string'\n }\n return type\n})\n\n// ---------------------------------------------------------------------------\n// Event handlers\n\n/**\n * Handles value changes during typing.\n */\nconst handleChange = (value: string): void => {\n if (!alwaysEmitChange && value === serializeValue(modelValue)) {\n return\n }\n\n // Use custom handler or emit update\n if (handleFieldChange) {\n handleFieldChange(value)\n } else {\n emit('update:modelValue', value)\n }\n}\n\n/**\n * Handles form submission (enter key or blur with emitOnBlur).\n */\nconst handleSubmit = (\n value: string,\n event: KeyboardEvent | FocusEvent,\n): void => {\n if (handleFieldSubmit) {\n handleFieldSubmit(value)\n } else {\n emit('submit', value, event)\n }\n}\n\n/**\n * Handles input blur event.\n */\nconst handleBlur = (value: string, event: FocusEvent): void => {\n isFocused.value = false\n\n if (emitOnBlur && modelValue) {\n handleSubmit(value, event)\n }\n\n emit('blur', value, event)\n}\n\n/**\n * Handles model value updates from select components.\n */\nconst handleSelectChange = (value: string): void =>\n emit('update:modelValue', value)\n\n// ---------------------------------------------------------------------------\n// CodeMirror setup\n\n/**\n * Build extensions array.\n * Note: Extensions are not reactive after initialization.\n */\nconst buildExtensions = (): Extension[] => {\n const extensionsList: Extension[] = [...extensions]\n\n if (colorPicker) {\n extensionsList.push(colorPickerExtension)\n }\n\n return extensionsList\n}\n\n/**\n * Reactive pill plugin for environment variable visualization.\n */\nconst contextFunctionDropdownItems = computed(() =>\n CONTEXT_FUNCTION_NAMES.map((key) => ({\n key,\n description: getContextFunctionComment(key),\n })),\n)\n\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment,\n isContextFunctionName,\n isReadOnly: layout === 'modal',\n }),\n)\n\n/**\n * Combined extensions for CodeMirror.\n */\nconst codeMirrorExtensions = computed((): Extension[] => [\n ...buildExtensions(),\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\n/** Converts the model value to a string for CodeMirror */\nconst serializeValue = (value: CodeInputModelValue): string => {\n if (typeof value === 'string') {\n return value\n }\n return JSON.stringify(value)\n}\n\nconst { codeMirror, setCodeMirrorContent } = useCodeMirror({\n content: toRef(() => serializeValue(modelValue)),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => {\n isFocused.value = true\n },\n onBlur: handleBlur,\n codeMirrorRef,\n disableTabIndent: toRef(() => disableTabIndent),\n disableEnter: toRef(() => disableEnter),\n disableCloseBrackets: toRef(() => disableCloseBrackets),\n lineNumbers: toRef(() => lineNumbers),\n language: toRef(() => language),\n lint: toRef(() => lint),\n extensions: codeMirrorExtensions,\n placeholder: toRef(() => placeholder),\n})\n\n/**\n * Handle autofocus attribute.\n */\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\n// ---------------------------------------------------------------------------\n// Environment variable dropdown\n\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n/**\n * Determines if the environment variable dropdown should be visible.\n */\nconst displayVariablesDropdown = computed((): boolean => {\n return (\n showDropdown.value &&\n withVariables &&\n layout !== 'modal' &&\n Boolean(environment)\n )\n})\n\n// ---------------------------------------------------------------------------\n// Keyboard event handling\n\n/**\n * Handles keyboard navigation for dropdown and form submission.\n */\nconst handleKeyDown = (key: string, event: KeyboardEvent): void => {\n if (showDropdown.value) {\n if (key === 'down' || key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey(key)\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n return\n }\n\n if (key === 'escape' && !disableTabIndent) {\n event.stopPropagation()\n }\n\n if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '', event)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n\ndefineExpose({\n /**\n * Focus the codemirror element\n *\n * @param cursorAtEnd boolean place the cursor at the end of the input\n */\n focus: (position?: 'start' | 'end' | number) => {\n if (!codeMirror.value) {\n return\n }\n codeMirror.value.focus()\n\n if (!isDefined(position)) {\n return\n }\n\n const anchor = (() => {\n if (position === 'start') {\n return 0\n }\n if (position === 'end') {\n return codeMirror.value.state.doc.length\n }\n return position\n })()\n\n // Move the cursor to the specified position\n codeMirror.value.dispatch({\n selection: { anchor },\n scrollIntoView: true,\n })\n },\n isFocused,\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n codeMirrorRef,\n modelValue,\n setCodeMirrorContent,\n cursorPosition: () => codeMirror.value?.state.selection.main.head,\n serializeValue,\n})\n</script>\n\n<template>\n <!-- Disabled mode: read-only text display -->\n <div\n v-if=\"disabled\"\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"{\n 'font-code pr-2 pl-1 text-base': layout === 'modal',\n 'px-2': layout !== 'modal',\n 'line-through': linethrough,\n }\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n\n <!-- Enum mode: select dropdown with predefined values -->\n <DataTableInputSelect\n v-else-if=\"enumProp?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"enumProp\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Boolean mode: select dropdown with true/false (and optionally null) -->\n <DataTableInputSelect\n v-else-if=\"isBooleanMode\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Examples mode: select dropdown with example values -->\n <DataTableInputSelect\n v-else-if=\"examples?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"examples\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Editor mode: CodeMirror with environment variable support -->\n <div\n v-else\n :id=\"componentId\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n 'line-through': linethrough,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <!-- Tab exit hint (shown when focused) -->\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n\n <!-- Warning slot (positioned absolutely) -->\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n\n <!-- Icon slot (positioned absolutely) -->\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n\n <!-- Required indicator -->\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n\n <!-- Environment variable autocomplete dropdown -->\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown && environment\"\n ref=\"dropdownRef\"\n :contextFunctionItems=\"contextFunctionDropdownItems\"\n :dropdownPosition=\"dropdownPosition\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @redirect=\"emit('navigate', { page: 'document', path: 'environment' })\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n */\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n color: var(--scalar-color-1) !important;\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n}\n.light-mode .cm-pill {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill--context-fn {\n border: 1px dashed color-mix(in srgb, var(--scalar-color-3), transparent 35%);\n padding: 0px 8px;\n}\n.light-mode .cm-pill--context-fn {\n background: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 40%\n ) !important;\n}\n.dark-mode .cm-pill--context-fn {\n background: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 55%\n ) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n"],"mappings":""}
@@ -2,6 +2,7 @@ import DataTableInputSelect_default from "../data-table/DataTableInputSelect.vue
2
2
  import EnvironmentVariablesDropdown_default from "../../features/environments/components/EnvironmentVariablesDropdown.vue.js";
3
3
  import { backspaceCommand, pillPlugin } from "./code-variable-widget.js";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderSlot, toDisplayString, toRef, unref, useAttrs, watch, withKeys, withModifiers } from "vue";
5
+ import { CONTEXT_FUNCTION_NAMES, getContextFunctionComment, isContextFunctionName } from "@scalar/workspace-store/request-example";
5
6
  import { isDefined } from "@scalar/helpers/array/is-defined";
6
7
  import { colorPicker, useCodeMirror, useDropdown } from "@scalar/use-codemirror";
7
8
  import { nanoid } from "nanoid";
@@ -181,8 +182,13 @@ var CodeInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
181
182
  /**
182
183
  * Reactive pill plugin for environment variable visualization.
183
184
  */
185
+ const contextFunctionDropdownItems = computed(() => CONTEXT_FUNCTION_NAMES.map((key) => ({
186
+ key,
187
+ description: getContextFunctionComment(key)
188
+ })));
184
189
  const pillPluginExtension = computed(() => pillPlugin({
185
190
  environment: __props.environment,
191
+ isContextFunctionName,
186
192
  isReadOnly: __props.layout === "modal"
187
193
  }));
188
194
  /**
@@ -361,6 +367,7 @@ var CodeInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
361
367
  key: 8,
362
368
  ref_key: "dropdownRef",
363
369
  ref: dropdownRef,
370
+ contextFunctionItems: contextFunctionDropdownItems.value,
364
371
  dropdownPosition: dropdownPosition.value,
365
372
  environment: __props.environment,
366
373
  query: dropdownQuery.value,
@@ -370,6 +377,7 @@ var CodeInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
370
377
  })),
371
378
  onSelect: unref(handleDropdownSelect)
372
379
  }, null, 8, [
380
+ "contextFunctionItems",
373
381
  "dropdownPosition",
374
382
  "environment",
375
383
  "query",
@@ -1 +1 @@
1
- {"version":3,"file":"CodeInput.vue.script.js","names":["$attrs","$slots"],"sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type CodeInputModelValue =\n | string\n | number\n | boolean\n | Array<string | number | boolean>\n | Record<string, unknown>\n\n/**\n * CodeInput\n *\n * A versatile input component that adapts its rendering based on props:\n * - Disabled mode: Read-only text display\n * - Select mode: Dropdown for enums, booleans, or examples\n * - Editor mode: CodeMirror with environment variable support\n *\n * Type `{{` to trigger environment variable autocomplete when an environment is provided.\n * It takes in any data but always will emit a string value,\n * this string should then be parsed in accordance to the schema or content type.\n *\n * @example\n * ```vue\n * <!-- Basic input with environment variables -->\n * <CodeInput v-model=\"value\" :environment=\"env\" />\n *\n * <!-- Boolean select -->\n * <CodeInput v-model=\"flag\" type=\"boolean\" />\n *\n * <!-- JSON editor with linting -->\n * <CodeInput v-model=\"data\" language=\"json\" :lint=\"true\" />\n * ```\n */\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport DataTableInputSelect from '@/v2/components/data-table/DataTableInputSelect.vue'\nimport EnvironmentVariableDropdown from '@/v2/features/environments/components/EnvironmentVariablesDropdown.vue'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nimport { backspaceCommand, pillPlugin } from './code-variable-widget'\n\ntype Props = {\n modelValue: CodeInputModelValue\n /** Environment for variable substitution. Pass undefined to disable environment variables */\n environment: XScalarEnvironment | undefined\n /** Type of the input value, affects rendering mode for booleans */\n type?: string | string[]\n /** Render as disabled text display */\n disabled?: boolean\n /** Show error styling */\n error?: boolean\n /** Layout context affects styling and behavior */\n layout?: ClientLayout\n /** Predefined enum values, triggers select mode */\n enum?: string[]\n /** Example values, triggers select mode */\n examples?: string[]\n /** Default value to show in select mode */\n default?: Props['modelValue']\n /** Allow null in boolean select options */\n nullable?: boolean\n /** Placeholder text for empty input */\n placeholder?: string\n /** Show required indicator */\n required?: boolean\n /** Enable color picker extension */\n colorPicker?: boolean\n /** Show line numbers in editor */\n lineNumbers?: boolean\n /** Enable linting */\n lint?: boolean\n /** Enable line wrapping */\n lineWrapping?: boolean\n /** CodeMirror language mode */\n language?: CodeMirrorLanguage\n /** Additional CodeMirror extensions */\n extensions?: Extension[]\n /** Disable tab key for indentation */\n disableTabIndent?: boolean\n /** Disable enter key */\n disableEnter?: boolean\n /** Disable automatic bracket closing */\n disableCloseBrackets?: boolean\n /** Emit submit event on blur */\n emitOnBlur?: boolean\n /** Enable environment variable pills */\n withVariables?: boolean\n /** Emit change event even if the value is the same */\n alwaysEmitChange?: boolean\n /** Custom change handler, prevents default emit */\n handleFieldChange?: (value: string) => void\n /** Custom submit handler, prevents default emit */\n handleFieldSubmit?: (value: string) => void\n /** Put a linethrough on the input text */\n linethrough?: boolean\n}\n\nconst {\n modelValue,\n environment,\n type,\n disabled = false,\n error = false,\n layout = 'desktop',\n enum: enumProp,\n examples,\n default: defaultProp,\n nullable = false,\n placeholder,\n required,\n colorPicker = false,\n lineNumbers = false,\n lint = false,\n lineWrapping = false,\n language,\n extensions = [],\n disableTabIndent = false,\n disableEnter = false,\n disableCloseBrackets = false,\n emitOnBlur = true,\n alwaysEmitChange = false,\n withVariables = true,\n handleFieldChange,\n handleFieldSubmit,\n} = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'submit': [value: string, event: KeyboardEvent | FocusEvent]\n 'navigate': [route: { page: 'document'; path: 'environment' }]\n 'blur': [value: string, event: FocusEvent]\n}>()\n\n// ---------------------------------------------------------------------------\n// Component identity and focus state\n\nconst attrs = useAttrs() as { id?: string }\nconst componentId = attrs.id || `id-${nanoid()}`\nconst isFocused = ref(false)\n\n// ---------------------------------------------------------------------------\n// Rendering mode detection\n\n/**\n * Determines if we should render a select dropdown for boolean types.\n */\nconst isBooleanMode = computed((): boolean => {\n if (enumProp?.length) {\n return false\n }\n return type === 'boolean' || (Array.isArray(type) && type.includes('boolean'))\n})\n\n/**\n * Options for boolean select mode.\n */\nconst booleanOptions = computed((): string[] =>\n nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\n/**\n * Default type when dealing with type arrays.\n * Finds the first non-null type.\n */\nconst defaultType = computed((): string | undefined => {\n if (Array.isArray(type)) {\n return type.find((t) => t !== 'null') ?? 'string'\n }\n return type\n})\n\n// ---------------------------------------------------------------------------\n// Event handlers\n\n/**\n * Handles value changes during typing.\n */\nconst handleChange = (value: string): void => {\n if (!alwaysEmitChange && value === serializeValue(modelValue)) {\n return\n }\n\n // Use custom handler or emit update\n if (handleFieldChange) {\n handleFieldChange(value)\n } else {\n emit('update:modelValue', value)\n }\n}\n\n/**\n * Handles form submission (enter key or blur with emitOnBlur).\n */\nconst handleSubmit = (\n value: string,\n event: KeyboardEvent | FocusEvent,\n): void => {\n if (handleFieldSubmit) {\n handleFieldSubmit(value)\n } else {\n emit('submit', value, event)\n }\n}\n\n/**\n * Handles input blur event.\n */\nconst handleBlur = (value: string, event: FocusEvent): void => {\n isFocused.value = false\n\n if (emitOnBlur && modelValue) {\n handleSubmit(value, event)\n }\n\n emit('blur', value, event)\n}\n\n/**\n * Handles model value updates from select components.\n */\nconst handleSelectChange = (value: string): void =>\n emit('update:modelValue', value)\n\n// ---------------------------------------------------------------------------\n// CodeMirror setup\n\n/**\n * Build extensions array.\n * Note: Extensions are not reactive after initialization.\n */\nconst buildExtensions = (): Extension[] => {\n const extensionsList: Extension[] = [...extensions]\n\n if (colorPicker) {\n extensionsList.push(colorPickerExtension)\n }\n\n return extensionsList\n}\n\n/**\n * Reactive pill plugin for environment variable visualization.\n */\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment,\n isReadOnly: layout === 'modal',\n }),\n)\n\n/**\n * Combined extensions for CodeMirror.\n */\nconst codeMirrorExtensions = computed((): Extension[] => [\n ...buildExtensions(),\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\n/** Converts the model value to a string for CodeMirror */\nconst serializeValue = (value: CodeInputModelValue): string => {\n if (typeof value === 'string') {\n return value\n }\n return JSON.stringify(value)\n}\n\nconst { codeMirror, setCodeMirrorContent } = useCodeMirror({\n content: toRef(() => serializeValue(modelValue)),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => {\n isFocused.value = true\n },\n onBlur: handleBlur,\n codeMirrorRef,\n disableTabIndent: toRef(() => disableTabIndent),\n disableEnter: toRef(() => disableEnter),\n disableCloseBrackets: toRef(() => disableCloseBrackets),\n lineNumbers: toRef(() => lineNumbers),\n language: toRef(() => language),\n lint: toRef(() => lint),\n extensions: codeMirrorExtensions,\n placeholder: toRef(() => placeholder),\n})\n\n/**\n * Handle autofocus attribute.\n */\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\n// ---------------------------------------------------------------------------\n// Environment variable dropdown\n\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n/**\n * Determines if the environment variable dropdown should be visible.\n */\nconst displayVariablesDropdown = computed((): boolean => {\n return (\n showDropdown.value &&\n withVariables &&\n layout !== 'modal' &&\n Boolean(environment)\n )\n})\n\n// ---------------------------------------------------------------------------\n// Keyboard event handling\n\n/**\n * Handles keyboard navigation for dropdown and form submission.\n */\nconst handleKeyDown = (key: string, event: KeyboardEvent): void => {\n if (showDropdown.value) {\n if (key === 'down' || key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey(key)\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n return\n }\n\n if (key === 'escape' && !disableTabIndent) {\n event.stopPropagation()\n }\n\n if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '', event)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n\ndefineExpose({\n /**\n * Focus the codemirror element\n *\n * @param cursorAtEnd boolean place the cursor at the end of the input\n */\n focus: (position?: 'start' | 'end' | number) => {\n if (!codeMirror.value) {\n return\n }\n codeMirror.value.focus()\n\n if (!isDefined(position)) {\n return\n }\n\n const anchor = (() => {\n if (position === 'start') {\n return 0\n }\n if (position === 'end') {\n return codeMirror.value.state.doc.length\n }\n return position\n })()\n\n // Move the cursor to the specified position\n codeMirror.value.dispatch({\n selection: { anchor },\n scrollIntoView: true,\n })\n },\n isFocused,\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n codeMirrorRef,\n modelValue,\n setCodeMirrorContent,\n cursorPosition: () => codeMirror.value?.state.selection.main.head,\n serializeValue,\n})\n</script>\n\n<template>\n <!-- Disabled mode: read-only text display -->\n <div\n v-if=\"disabled\"\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"{\n 'font-code pr-2 pl-1 text-base': layout === 'modal',\n 'px-2': layout !== 'modal',\n 'line-through': linethrough,\n }\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n\n <!-- Enum mode: select dropdown with predefined values -->\n <DataTableInputSelect\n v-else-if=\"enumProp?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"enumProp\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Boolean mode: select dropdown with true/false (and optionally null) -->\n <DataTableInputSelect\n v-else-if=\"isBooleanMode\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Examples mode: select dropdown with example values -->\n <DataTableInputSelect\n v-else-if=\"examples?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"examples\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Editor mode: CodeMirror with environment variable support -->\n <div\n v-else\n :id=\"componentId\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n 'line-through': linethrough,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <!-- Tab exit hint (shown when focused) -->\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n\n <!-- Warning slot (positioned absolutely) -->\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n\n <!-- Icon slot (positioned absolutely) -->\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n\n <!-- Required indicator -->\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n\n <!-- Environment variable autocomplete dropdown -->\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown && environment\"\n ref=\"dropdownRef\"\n :dropdownPosition=\"dropdownPosition\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @redirect=\"emit('navigate', { page: 'document', path: 'environment' })\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n */\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n color: var(--scalar-color-1) !important;\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n}\n.light-mode .cm-pill {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"CodeInput.vue.script.js","names":["$attrs","$slots"],"sources":["../../../../src/v2/components/code-input/CodeInput.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type CodeInputModelValue =\n | string\n | number\n | boolean\n | Array<string | number | boolean>\n | Record<string, unknown>\n\n/**\n * CodeInput\n *\n * A versatile input component that adapts its rendering based on props:\n * - Disabled mode: Read-only text display\n * - Select mode: Dropdown for enums, booleans, or examples\n * - Editor mode: CodeMirror with environment variable support\n *\n * Type `{{` to trigger autocomplete for environment variables and runtime context functions\n * (for example `{{$guid}}`) when an environment is provided.\n * It takes in any data but always will emit a string value,\n * this string should then be parsed in accordance to the schema or content type.\n *\n * @example\n * ```vue\n * <!-- Basic input with environment variables -->\n * <CodeInput v-model=\"value\" :environment=\"env\" />\n *\n * <!-- Boolean select -->\n * <CodeInput v-model=\"flag\" type=\"boolean\" />\n *\n * <!-- JSON editor with linting -->\n * <CodeInput v-model=\"data\" language=\"json\" :lint=\"true\" />\n * ```\n */\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport {\n CONTEXT_FUNCTION_NAMES,\n getContextFunctionComment,\n isContextFunctionName,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport DataTableInputSelect from '@/v2/components/data-table/DataTableInputSelect.vue'\nimport EnvironmentVariableDropdown from '@/v2/features/environments/components/EnvironmentVariablesDropdown.vue'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nimport { backspaceCommand, pillPlugin } from './code-variable-widget'\n\ntype Props = {\n modelValue: CodeInputModelValue\n /** Environment for variable substitution. Pass undefined to disable environment variables */\n environment: XScalarEnvironment | undefined\n /** Type of the input value, affects rendering mode for booleans */\n type?: string | string[]\n /** Render as disabled text display */\n disabled?: boolean\n /** Show error styling */\n error?: boolean\n /** Layout context affects styling and behavior */\n layout?: ClientLayout\n /** Predefined enum values, triggers select mode */\n enum?: string[]\n /** Example values, triggers select mode */\n examples?: string[]\n /** Default value to show in select mode */\n default?: Props['modelValue']\n /** Allow null in boolean select options */\n nullable?: boolean\n /** Placeholder text for empty input */\n placeholder?: string\n /** Show required indicator */\n required?: boolean\n /** Enable color picker extension */\n colorPicker?: boolean\n /** Show line numbers in editor */\n lineNumbers?: boolean\n /** Enable linting */\n lint?: boolean\n /** Enable line wrapping */\n lineWrapping?: boolean\n /** CodeMirror language mode */\n language?: CodeMirrorLanguage\n /** Additional CodeMirror extensions */\n extensions?: Extension[]\n /** Disable tab key for indentation */\n disableTabIndent?: boolean\n /** Disable enter key */\n disableEnter?: boolean\n /** Disable automatic bracket closing */\n disableCloseBrackets?: boolean\n /** Emit submit event on blur */\n emitOnBlur?: boolean\n /** Enable environment variable pills */\n withVariables?: boolean\n /** Emit change event even if the value is the same */\n alwaysEmitChange?: boolean\n /** Custom change handler, prevents default emit */\n handleFieldChange?: (value: string) => void\n /** Custom submit handler, prevents default emit */\n handleFieldSubmit?: (value: string) => void\n /** Put a linethrough on the input text */\n linethrough?: boolean\n}\n\nconst {\n modelValue,\n environment,\n type,\n disabled = false,\n error = false,\n layout = 'desktop',\n enum: enumProp,\n examples,\n default: defaultProp,\n nullable = false,\n placeholder,\n required,\n colorPicker = false,\n lineNumbers = false,\n lint = false,\n lineWrapping = false,\n language,\n extensions = [],\n disableTabIndent = false,\n disableEnter = false,\n disableCloseBrackets = false,\n emitOnBlur = true,\n alwaysEmitChange = false,\n withVariables = true,\n handleFieldChange,\n handleFieldSubmit,\n} = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'submit': [value: string, event: KeyboardEvent | FocusEvent]\n 'navigate': [route: { page: 'document'; path: 'environment' }]\n 'blur': [value: string, event: FocusEvent]\n}>()\n\n// ---------------------------------------------------------------------------\n// Component identity and focus state\n\nconst attrs = useAttrs() as { id?: string }\nconst componentId = attrs.id || `id-${nanoid()}`\nconst isFocused = ref(false)\n\n// ---------------------------------------------------------------------------\n// Rendering mode detection\n\n/**\n * Determines if we should render a select dropdown for boolean types.\n */\nconst isBooleanMode = computed((): boolean => {\n if (enumProp?.length) {\n return false\n }\n return type === 'boolean' || (Array.isArray(type) && type.includes('boolean'))\n})\n\n/**\n * Options for boolean select mode.\n */\nconst booleanOptions = computed((): string[] =>\n nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\n/**\n * Default type when dealing with type arrays.\n * Finds the first non-null type.\n */\nconst defaultType = computed((): string | undefined => {\n if (Array.isArray(type)) {\n return type.find((t) => t !== 'null') ?? 'string'\n }\n return type\n})\n\n// ---------------------------------------------------------------------------\n// Event handlers\n\n/**\n * Handles value changes during typing.\n */\nconst handleChange = (value: string): void => {\n if (!alwaysEmitChange && value === serializeValue(modelValue)) {\n return\n }\n\n // Use custom handler or emit update\n if (handleFieldChange) {\n handleFieldChange(value)\n } else {\n emit('update:modelValue', value)\n }\n}\n\n/**\n * Handles form submission (enter key or blur with emitOnBlur).\n */\nconst handleSubmit = (\n value: string,\n event: KeyboardEvent | FocusEvent,\n): void => {\n if (handleFieldSubmit) {\n handleFieldSubmit(value)\n } else {\n emit('submit', value, event)\n }\n}\n\n/**\n * Handles input blur event.\n */\nconst handleBlur = (value: string, event: FocusEvent): void => {\n isFocused.value = false\n\n if (emitOnBlur && modelValue) {\n handleSubmit(value, event)\n }\n\n emit('blur', value, event)\n}\n\n/**\n * Handles model value updates from select components.\n */\nconst handleSelectChange = (value: string): void =>\n emit('update:modelValue', value)\n\n// ---------------------------------------------------------------------------\n// CodeMirror setup\n\n/**\n * Build extensions array.\n * Note: Extensions are not reactive after initialization.\n */\nconst buildExtensions = (): Extension[] => {\n const extensionsList: Extension[] = [...extensions]\n\n if (colorPicker) {\n extensionsList.push(colorPickerExtension)\n }\n\n return extensionsList\n}\n\n/**\n * Reactive pill plugin for environment variable visualization.\n */\nconst contextFunctionDropdownItems = computed(() =>\n CONTEXT_FUNCTION_NAMES.map((key) => ({\n key,\n description: getContextFunctionComment(key),\n })),\n)\n\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment,\n isContextFunctionName,\n isReadOnly: layout === 'modal',\n }),\n)\n\n/**\n * Combined extensions for CodeMirror.\n */\nconst codeMirrorExtensions = computed((): Extension[] => [\n ...buildExtensions(),\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\n/** Converts the model value to a string for CodeMirror */\nconst serializeValue = (value: CodeInputModelValue): string => {\n if (typeof value === 'string') {\n return value\n }\n return JSON.stringify(value)\n}\n\nconst { codeMirror, setCodeMirrorContent } = useCodeMirror({\n content: toRef(() => serializeValue(modelValue)),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => {\n isFocused.value = true\n },\n onBlur: handleBlur,\n codeMirrorRef,\n disableTabIndent: toRef(() => disableTabIndent),\n disableEnter: toRef(() => disableEnter),\n disableCloseBrackets: toRef(() => disableCloseBrackets),\n lineNumbers: toRef(() => lineNumbers),\n language: toRef(() => language),\n lint: toRef(() => lint),\n extensions: codeMirrorExtensions,\n placeholder: toRef(() => placeholder),\n})\n\n/**\n * Handle autofocus attribute.\n */\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\n// ---------------------------------------------------------------------------\n// Environment variable dropdown\n\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n/**\n * Determines if the environment variable dropdown should be visible.\n */\nconst displayVariablesDropdown = computed((): boolean => {\n return (\n showDropdown.value &&\n withVariables &&\n layout !== 'modal' &&\n Boolean(environment)\n )\n})\n\n// ---------------------------------------------------------------------------\n// Keyboard event handling\n\n/**\n * Handles keyboard navigation for dropdown and form submission.\n */\nconst handleKeyDown = (key: string, event: KeyboardEvent): void => {\n if (showDropdown.value) {\n if (key === 'down' || key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey(key)\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n return\n }\n\n if (key === 'escape' && !disableTabIndent) {\n event.stopPropagation()\n }\n\n if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '', event)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n\ndefineExpose({\n /**\n * Focus the codemirror element\n *\n * @param cursorAtEnd boolean place the cursor at the end of the input\n */\n focus: (position?: 'start' | 'end' | number) => {\n if (!codeMirror.value) {\n return\n }\n codeMirror.value.focus()\n\n if (!isDefined(position)) {\n return\n }\n\n const anchor = (() => {\n if (position === 'start') {\n return 0\n }\n if (position === 'end') {\n return codeMirror.value.state.doc.length\n }\n return position\n })()\n\n // Move the cursor to the specified position\n codeMirror.value.dispatch({\n selection: { anchor },\n scrollIntoView: true,\n })\n },\n isFocused,\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n codeMirrorRef,\n modelValue,\n setCodeMirrorContent,\n cursorPosition: () => codeMirror.value?.state.selection.main.head,\n serializeValue,\n})\n</script>\n\n<template>\n <!-- Disabled mode: read-only text display -->\n <div\n v-if=\"disabled\"\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"{\n 'font-code pr-2 pl-1 text-base': layout === 'modal',\n 'px-2': layout !== 'modal',\n 'line-through': linethrough,\n }\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n\n <!-- Enum mode: select dropdown with predefined values -->\n <DataTableInputSelect\n v-else-if=\"enumProp?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"enumProp\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Boolean mode: select dropdown with true/false (and optionally null) -->\n <DataTableInputSelect\n v-else-if=\"isBooleanMode\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Examples mode: select dropdown with example values -->\n <DataTableInputSelect\n v-else-if=\"examples?.length\"\n :default=\"defaultProp\"\n :modelValue=\"modelValue\"\n :value=\"examples\"\n @update:modelValue=\"handleSelectChange\" />\n\n <!-- Editor mode: CodeMirror with environment variable support -->\n <div\n v-else\n :id=\"componentId\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n 'line-through': linethrough,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <!-- Tab exit hint (shown when focused) -->\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n\n <!-- Warning slot (positioned absolutely) -->\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n\n <!-- Icon slot (positioned absolutely) -->\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n\n <!-- Required indicator -->\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n\n <!-- Environment variable autocomplete dropdown -->\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown && environment\"\n ref=\"dropdownRef\"\n :contextFunctionItems=\"contextFunctionDropdownItems\"\n :dropdownPosition=\"dropdownPosition\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @redirect=\"emit('navigate', { page: 'document', path: 'environment' })\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n */\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n color: var(--scalar-color-1) !important;\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n}\n.light-mode .cm-pill {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill--context-fn {\n border: 1px dashed color-mix(in srgb, var(--scalar-color-3), transparent 35%);\n padding: 0px 8px;\n}\n.light-mode .cm-pill--context-fn {\n background: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 40%\n ) !important;\n}\n.dark-mode .cm-pill--context-fn {\n background: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 55%\n ) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import type { PillContext } from './pill-context';
1
2
  type __VLS_Props = {
2
- isSticky: boolean;
3
+ context: PillContext;
3
4
  };
4
5
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
6
  declare const _default: typeof __VLS_export;
6
7
  export default _default;
7
- //# sourceMappingURL=CollectionNavigation.vue.d.ts.map
8
+ //# sourceMappingURL=PillTooltipHost.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillTooltipHost.vue.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/code-input/PillTooltipHost.vue"],"names":[],"mappings":"AAqEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,WAAW,CAAA;CACrB,CAAC;AA8EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,7 @@
1
+ import PillTooltipHost_vue_vue_type_script_setup_true_lang_default from "./PillTooltipHost.vue.script.js";
2
+ //#region src/v2/components/code-input/PillTooltipHost.vue
3
+ var PillTooltipHost_default = PillTooltipHost_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { PillTooltipHost_default as default };
6
+
7
+ //# sourceMappingURL=PillTooltipHost.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillTooltipHost.vue.js","names":[],"sources":["../../../../src/v2/components/code-input/PillTooltipHost.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useTooltip } from '@scalar/components'\nimport { computed, h, ref, render } from 'vue'\n\nimport type { PillContext } from './pill-context'\n\nconst props = defineProps<{\n context: PillContext\n}>()\n\ndefineOptions({ name: 'PillTooltipHost' })\n\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst isContextFn = props.context.type === 'contextFunction'\n\nconst contextTooltipHtml = computed(() => {\n if (!isContextFn || typeof document === 'undefined') {\n return ''\n }\n const el = document.createElement('div')\n render(\n h('div', { class: 'flex flex-col gap-1.5 text-left' }, [\n h('span', {}, props.context.details),\n h(\n 'div',\n { class: 'text-[color:var(--scalar-color-3)] text-[10px] font-normal' },\n 'Computed at request execution',\n ),\n ]),\n el,\n )\n return el.innerHTML\n})\n\nconst environmentTooltipText = computed(() =>\n props.context.type === 'environment' ? props.context.value : '',\n)\n\nuseTooltip({\n content: isContextFn ? contextTooltipHtml : environmentTooltipText,\n contentTarget: isContextFn ? 'innerHTML' : 'textContent',\n delay: 0,\n placement: 'bottom-start',\n offset: 6,\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n\n<template>\n <div\n ref=\"wrapperRef\"\n class=\"contents\">\n <div class=\"flex items-center gap-1 whitespace-nowrap\">\n <span>{{\n props.context.type === 'environment'\n ? props.context.name\n : props.context.identifier\n }}</span>\n </div>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { computed, createElementBlock, createElementVNode, defineComponent, h, openBlock, ref, render, toDisplayString } from "vue";
2
+ import { useTooltip } from "@scalar/components";
3
+ //#region src/v2/components/code-input/PillTooltipHost.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = { class: "flex items-center gap-1 whitespace-nowrap" };
5
+ var PillTooltipHost_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
6
+ name: "PillTooltipHost",
7
+ __name: "PillTooltipHost",
8
+ props: { context: {} },
9
+ setup(__props) {
10
+ const props = __props;
11
+ const wrapperRef = ref(null);
12
+ const isContextFn = props.context.type === "contextFunction";
13
+ const contextTooltipHtml = computed(() => {
14
+ if (!isContextFn || typeof document === "undefined") return "";
15
+ const el = document.createElement("div");
16
+ render(h("div", { class: "flex flex-col gap-1.5 text-left" }, [h("span", {}, props.context.details), h("div", { class: "text-[color:var(--scalar-color-3)] text-[10px] font-normal" }, "Computed at request execution")]), el);
17
+ return el.innerHTML;
18
+ });
19
+ const environmentTooltipText = computed(() => props.context.type === "environment" ? props.context.value : "");
20
+ useTooltip({
21
+ content: isContextFn ? contextTooltipHtml : environmentTooltipText,
22
+ contentTarget: isContextFn ? "innerHTML" : "textContent",
23
+ delay: 0,
24
+ placement: "bottom-start",
25
+ offset: 6,
26
+ targetRef: computed(() => wrapperRef.value?.children?.[0] || wrapperRef.value || void 0)
27
+ });
28
+ return (_ctx, _cache) => {
29
+ return openBlock(), createElementBlock("div", {
30
+ ref_key: "wrapperRef",
31
+ ref: wrapperRef,
32
+ class: "contents"
33
+ }, [createElementVNode("div", _hoisted_1, [createElementVNode("span", null, toDisplayString(props.context.type === "environment" ? props.context.name : props.context.identifier), 1)])], 512);
34
+ };
35
+ }
36
+ });
37
+ //#endregion
38
+ export { PillTooltipHost_vue_vue_type_script_setup_true_lang_default as default };
39
+
40
+ //# sourceMappingURL=PillTooltipHost.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillTooltipHost.vue.script.js","names":[],"sources":["../../../../src/v2/components/code-input/PillTooltipHost.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useTooltip } from '@scalar/components'\nimport { computed, h, ref, render } from 'vue'\n\nimport type { PillContext } from './pill-context'\n\nconst props = defineProps<{\n context: PillContext\n}>()\n\ndefineOptions({ name: 'PillTooltipHost' })\n\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst isContextFn = props.context.type === 'contextFunction'\n\nconst contextTooltipHtml = computed(() => {\n if (!isContextFn || typeof document === 'undefined') {\n return ''\n }\n const el = document.createElement('div')\n render(\n h('div', { class: 'flex flex-col gap-1.5 text-left' }, [\n h('span', {}, props.context.details),\n h(\n 'div',\n { class: 'text-[color:var(--scalar-color-3)] text-[10px] font-normal' },\n 'Computed at request execution',\n ),\n ]),\n el,\n )\n return el.innerHTML\n})\n\nconst environmentTooltipText = computed(() =>\n props.context.type === 'environment' ? props.context.value : '',\n)\n\nuseTooltip({\n content: isContextFn ? contextTooltipHtml : environmentTooltipText,\n contentTarget: isContextFn ? 'innerHTML' : 'textContent',\n delay: 0,\n placement: 'bottom-start',\n offset: 6,\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n\n<template>\n <div\n ref=\"wrapperRef\"\n class=\"contents\">\n <div class=\"flex items-center gap-1 whitespace-nowrap\">\n <span>{{\n props.context.type === 'environment'\n ? props.context.name\n : props.context.identifier\n }}</span>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;EAMA,MAAM,QAAQ;EAMd,MAAM,aAAa,IAAwB,KAAI;EAC/C,MAAM,cAAc,MAAM,QAAQ,SAAS;EAE3C,MAAM,qBAAqB,eAAe;AACxC,OAAI,CAAC,eAAe,OAAO,aAAa,YACtC,QAAO;GAET,MAAM,KAAK,SAAS,cAAc,MAAK;AACvC,UACE,EAAE,OAAO,EAAE,OAAO,mCAAmC,EAAE,CACrD,EAAE,QAAQ,EAAE,EAAE,MAAM,QAAQ,QAAQ,EACpC,EACE,OACA,EAAE,OAAO,8DAA8D,EACvE,gCACD,CACF,CAAC,EACF,GACF;AACA,UAAO,GAAG;IACX;EAED,MAAM,yBAAyB,eAC7B,MAAM,QAAQ,SAAS,gBAAgB,MAAM,QAAQ,QAAQ,GAC/D;AAEA,aAAW;GACT,SAAS,cAAc,qBAAqB;GAC5C,eAAe,cAAc,cAAc;GAC3C,OAAO;GACP,WAAW;GACX,QAAQ;GACR,WAAW,eACH,WAAW,OAAO,WAAW,MAAM,WAAW,SAAS,KAAA,EAC9D;GACF,CAAA;;uBAIC,mBAUM,OAAA;aATA;IAAJ,KAAI;IACJ,OAAM;OACN,mBAMM,OANN,YAMM,CALJ,mBAIS,QAAA,MAAA,gBAHP,MAAM,QAAQ,SAAI,gBAA+B,MAAM,QAAQ,OAAiB,MAAM,QAAQ,WAAU,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA"}
@@ -7,6 +7,7 @@ import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensi
7
7
  export declare const pillPlugin: (props: {
8
8
  environment: XScalarEnvironment | undefined;
9
9
  isReadOnly: boolean | undefined;
10
+ isContextFunctionName?: (name: string) => boolean;
10
11
  }) => ViewPlugin<{
11
12
  decorations: DecorationSet;
12
13
  lastEnvironment: XScalarEnvironment | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"code-variable-widget.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/code-input/code-variable-widget.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,aAAa,EAClB,UAAU,EAEV,UAAU,EACV,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AAyFnH;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO;IAAE,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE;iBAG/F,aAAa;qBACT,kBAAkB,GAAG,SAAS;mBAOhC,UAAU,GAAG,IAAI;2BAcT,UAAU,GAAG,aAAa;EAsCpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,uCAoC3B,CAAA"}
1
+ {"version":3,"file":"code-variable-widget.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/code-input/code-variable-widget.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAClB,UAAU,EAEV,UAAU,EACV,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AAmGnH;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO;IAChC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAC3C,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAClD;iBAGkB,aAAa;qBACT,kBAAkB,GAAG,SAAS;mBAOhC,UAAU,GAAG,IAAI;2BAcT,UAAU,GAAG,aAAa;EAyCpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,uCAoC3B,CAAA"}