@scalar/api-client 3.23.2 → 3.23.5

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 (532) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/assets/{computer.ascii.virtual.js → computer.ascii_raw.js} +1 -1
  3. package/dist/assets/computer.ascii_raw.js.map +1 -0
  4. package/dist/components/HelpfulLink.vue.js +1 -1
  5. package/dist/components/HelpfulLink.vue.js.map +1 -1
  6. package/dist/components/{HelpfulLink.vue.script.js → HelpfulLink.vue_vue_type_script_setup_true_lang.js} +1 -1
  7. package/dist/components/HelpfulLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  8. package/dist/components/HttpMethod/HttpMethod.vue.js +2 -2
  9. package/dist/components/HttpMethod/HttpMethod.vue.js.map +1 -1
  10. package/dist/components/HttpMethod/{HttpMethod.vue.script.js → HttpMethod.vue_vue_type_script_setup_true_lang.js} +1 -1
  11. package/dist/components/HttpMethod/HttpMethod.vue_vue_type_script_setup_true_lang.js.map +1 -0
  12. package/dist/components/HttpMethod/index.js +1 -2
  13. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.js +2 -2
  14. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.js.map +1 -1
  15. package/dist/components/ScalarAsciiArt/{ScalarAsciiArt.vue.script.js → ScalarAsciiArt.vue_vue_type_script_setup_true_lang.js} +1 -1
  16. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue_vue_type_script_setup_true_lang.js.map +1 -0
  17. package/dist/components/ScalarAsciiArt/index.js +1 -2
  18. package/dist/components/SectionFilter.vue.js +2 -2
  19. package/dist/components/SectionFilter.vue.js.map +1 -1
  20. package/dist/components/{SectionFilter.vue.script.js → SectionFilter.vue_vue_type_script_setup_true_lang.js} +1 -1
  21. package/dist/components/SectionFilter.vue_vue_type_script_setup_true_lang.js.map +1 -0
  22. package/dist/components/SectionFilterButton.vue.js +1 -1
  23. package/dist/components/SectionFilterButton.vue.js.map +1 -1
  24. package/dist/components/{SectionFilterButton.vue.script.js → SectionFilterButton.vue_vue_type_script_setup_true_lang.js} +1 -1
  25. package/dist/components/SectionFilterButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  26. package/dist/components/Server/ServerVariablesForm.vue.d.ts +13 -2
  27. package/dist/components/Server/ServerVariablesForm.vue.d.ts.map +1 -1
  28. package/dist/components/Server/ServerVariablesForm.vue.js +1 -1
  29. package/dist/components/Server/ServerVariablesForm.vue.js.map +1 -1
  30. package/dist/components/Server/{ServerVariablesForm.vue.script.js → ServerVariablesForm.vue_vue_type_script_setup_true_lang.js} +19 -7
  31. package/dist/components/Server/ServerVariablesForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  32. package/dist/components/Server/ServerVariablesSelect.vue.d.ts +2 -0
  33. package/dist/components/Server/ServerVariablesSelect.vue.d.ts.map +1 -1
  34. package/dist/components/Server/ServerVariablesSelect.vue.js +1 -1
  35. package/dist/components/Server/ServerVariablesSelect.vue.js.map +1 -1
  36. package/dist/components/Server/{ServerVariablesSelect.vue.script.js → ServerVariablesSelect.vue_vue_type_script_setup_true_lang.js} +5 -3
  37. package/dist/components/Server/ServerVariablesSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  38. package/dist/components/Server/ServerVariablesTextbox.vue.js +1 -1
  39. package/dist/components/Server/ServerVariablesTextbox.vue.js.map +1 -1
  40. package/dist/components/Server/{ServerVariablesTextbox.vue.script.js → ServerVariablesTextbox.vue_vue_type_script_setup_true_lang.js} +1 -1
  41. package/dist/components/Server/ServerVariablesTextbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  42. package/dist/components/Server/index.js +1 -2
  43. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +1 -1
  44. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js.map +1 -1
  45. package/dist/components/Sidebar/Actions/{DeleteSidebarListElement.vue.script.js → DeleteSidebarListElement.vue_vue_type_script_setup_true_lang.js} +1 -1
  46. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue_vue_type_script_setup_true_lang.js.map +1 -0
  47. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +1 -1
  48. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js.map +1 -1
  49. package/dist/components/Sidebar/Actions/{SidebarListElementForm.vue.script.js → SidebarListElementForm.vue_vue_type_script_setup_true_lang.js} +1 -1
  50. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  51. package/dist/components/Sidebar/index.js +1 -2
  52. package/dist/components/ViewLayout/ViewLayout.vue.js +1 -1
  53. package/dist/components/ViewLayout/ViewLayout.vue.js.map +1 -1
  54. package/dist/components/ViewLayout/{ViewLayout.vue.script.js → ViewLayout.vue_vue_type_script_setup_true_lang.js} +1 -1
  55. package/dist/components/ViewLayout/ViewLayout.vue_vue_type_script_setup_true_lang.js.map +1 -0
  56. package/dist/components/ViewLayout/ViewLayoutContent.vue.js.map +1 -1
  57. package/dist/components/ViewLayout/ViewLayoutSection.vue.js +1 -1
  58. package/dist/components/ViewLayout/ViewLayoutSection.vue.js.map +1 -1
  59. package/dist/components/ViewLayout/{ViewLayoutSection.vue.script.js → ViewLayoutSection.vue_vue_type_script_setup_true_lang.js} +1 -1
  60. package/dist/components/ViewLayout/ViewLayoutSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  61. package/dist/style.css +137 -107
  62. package/dist/types/index.d.ts +2 -2
  63. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +2 -2
  64. package/dist/v2/blocks/operation-block/OperationBlock.vue.js +1 -1
  65. package/dist/v2/blocks/operation-block/OperationBlock.vue.js.map +1 -1
  66. package/dist/v2/blocks/operation-block/{OperationBlock.vue.script.js → OperationBlock.vue_vue_type_script_setup_true_lang.js} +3 -2
  67. package/dist/v2/blocks/operation-block/{OperationBlock.vue.script.js.map → OperationBlock.vue_vue_type_script_setup_true_lang.js.map} +1 -1
  68. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
  69. package/dist/v2/blocks/operation-block/components/Header.vue.js +2 -2
  70. package/dist/v2/blocks/operation-block/components/Header.vue.js.map +1 -1
  71. package/dist/v2/blocks/operation-block/components/{Header.vue.script.js → Header.vue_vue_type_script_setup_true_lang.js} +1 -1
  72. package/dist/v2/blocks/operation-block/components/Header.vue_vue_type_script_setup_true_lang.js.map +1 -0
  73. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.js +2 -2
  74. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.js.map +1 -1
  75. package/dist/v2/blocks/operation-block/components/{OpenApiClientButton.vue.script.js → OpenApiClientButton.vue_vue_type_script_setup_true_lang.js} +1 -1
  76. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  77. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
  78. package/dist/v2/blocks/operation-block/helpers/response-cache.d.ts +1 -1
  79. package/dist/v2/blocks/operation-block/helpers/send-request.js +2 -1
  80. package/dist/v2/blocks/operation-block/helpers/send-request.js.map +1 -1
  81. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +2 -2
  82. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts.map +1 -1
  83. package/dist/v2/blocks/request-block/RequestBlock.vue.js +3 -3
  84. package/dist/v2/blocks/request-block/RequestBlock.vue.js.map +1 -1
  85. package/dist/v2/blocks/request-block/{RequestBlock.vue.script.js → RequestBlock.vue_vue_type_script_setup_true_lang.js} +4 -3
  86. package/dist/v2/blocks/request-block/RequestBlock.vue_vue_type_script_setup_true_lang.js.map +1 -0
  87. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +2 -2
  88. package/dist/v2/blocks/request-block/components/RequestBody.vue.js.map +1 -1
  89. package/dist/v2/blocks/request-block/components/{RequestBody.vue.script.js → RequestBody.vue_vue_type_script_setup_true_lang.js} +9 -2
  90. package/dist/v2/blocks/request-block/components/RequestBody.vue_vue_type_script_setup_true_lang.js.map +1 -0
  91. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js +1 -1
  92. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js.map +1 -1
  93. package/dist/v2/blocks/request-block/components/{RequestBodyForm.vue.script.js → RequestBodyForm.vue_vue_type_script_setup_true_lang.js} +1 -1
  94. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  95. package/dist/v2/blocks/request-block/components/RequestBodyStructured.vue.js +1 -1
  96. package/dist/v2/blocks/request-block/components/RequestBodyStructured.vue.js.map +1 -1
  97. package/dist/v2/blocks/request-block/components/{RequestBodyStructured.vue.script.js → RequestBodyStructured.vue_vue_type_script_setup_true_lang.js} +1 -1
  98. package/dist/v2/blocks/request-block/components/RequestBodyStructured.vue_vue_type_script_setup_true_lang.js.map +1 -0
  99. package/dist/v2/blocks/request-block/components/RequestBodyViewToggle.vue.js +1 -1
  100. package/dist/v2/blocks/request-block/components/RequestBodyViewToggle.vue.js.map +1 -1
  101. package/dist/v2/blocks/request-block/components/{RequestBodyViewToggle.vue.script.js → RequestBodyViewToggle.vue_vue_type_script_setup_true_lang.js} +1 -1
  102. package/dist/v2/blocks/request-block/components/RequestBodyViewToggle.vue_vue_type_script_setup_true_lang.js.map +1 -0
  103. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +1 -1
  104. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js.map +1 -1
  105. package/dist/v2/blocks/request-block/components/{RequestCodeSnippet.vue.script.js → RequestCodeSnippet.vue_vue_type_script_setup_true_lang.js} +1 -1
  106. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue_vue_type_script_setup_true_lang.js.map +1 -0
  107. package/dist/v2/blocks/request-block/components/RequestParams.vue.js +1 -1
  108. package/dist/v2/blocks/request-block/components/RequestParams.vue.js.map +1 -1
  109. package/dist/v2/blocks/request-block/components/{RequestParams.vue.script.js → RequestParams.vue_vue_type_script_setup_true_lang.js} +1 -1
  110. package/dist/v2/blocks/request-block/components/RequestParams.vue_vue_type_script_setup_true_lang.js.map +1 -0
  111. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
  112. package/dist/v2/blocks/request-block/components/RequestTable.vue.js +2 -2
  113. package/dist/v2/blocks/request-block/components/RequestTable.vue.js.map +1 -1
  114. package/dist/v2/blocks/request-block/components/{RequestTable.vue.script.js → RequestTable.vue_vue_type_script_setup_true_lang.js} +1 -1
  115. package/dist/v2/blocks/request-block/components/RequestTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  116. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js +1 -1
  117. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js.map +1 -1
  118. package/dist/v2/blocks/request-block/components/{RequestTableRow.vue.script.js → RequestTableRow.vue_vue_type_script_setup_true_lang.js} +1 -1
  119. package/dist/v2/blocks/request-block/components/RequestTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  120. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js +1 -1
  121. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js.map +1 -1
  122. package/dist/v2/blocks/request-block/components/{RequestTableTooltip.vue.script.js → RequestTableTooltip.vue_vue_type_script_setup_true_lang.js} +1 -1
  123. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  124. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
  125. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +2 -1
  126. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js.map +1 -1
  127. package/dist/v2/blocks/request-block/helpers/fold-structured-body-rows.d.ts +1 -1
  128. package/dist/v2/blocks/request-block/helpers/fold-structured-body-rows.js +2 -1
  129. package/dist/v2/blocks/request-block/helpers/fold-structured-body-rows.js.map +1 -1
  130. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
  131. package/dist/v2/blocks/request-block/helpers/get-structured-body-rows.d.ts +1 -1
  132. package/dist/v2/blocks/request-block/helpers/structured-body-codec.js.map +1 -1
  133. package/dist/v2/blocks/request-block/index.js +1 -2
  134. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +2 -2
  135. package/dist/v2/blocks/response-block/ResponseBlock.vue.js +2 -2
  136. package/dist/v2/blocks/response-block/ResponseBlock.vue.js.map +1 -1
  137. package/dist/v2/blocks/response-block/{ResponseBlock.vue.script.js → ResponseBlock.vue_vue_type_script_setup_true_lang.js} +1 -1
  138. package/dist/v2/blocks/response-block/ResponseBlock.vue_vue_type_script_setup_true_lang.js.map +1 -0
  139. package/dist/v2/blocks/response-block/components/Headers.vue.js +1 -1
  140. package/dist/v2/blocks/response-block/components/Headers.vue.js.map +1 -1
  141. package/dist/v2/blocks/response-block/components/{Headers.vue.script.js → Headers.vue_vue_type_script_setup_true_lang.js} +1 -1
  142. package/dist/v2/blocks/response-block/components/Headers.vue_vue_type_script_setup_true_lang.js.map +1 -0
  143. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +2 -2
  144. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js.map +1 -1
  145. package/dist/v2/blocks/response-block/components/{ResponseBody.vue.script.js → ResponseBody.vue_vue_type_script_setup_true_lang.js} +1 -1
  146. package/dist/v2/blocks/response-block/components/ResponseBody.vue_vue_type_script_setup_true_lang.js.map +1 -0
  147. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js +1 -1
  148. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js.map +1 -1
  149. package/dist/v2/blocks/response-block/components/{ResponseBodyDownload.vue.script.js → ResponseBodyDownload.vue_vue_type_script_setup_true_lang.js} +1 -1
  150. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue_vue_type_script_setup_true_lang.js.map +1 -0
  151. package/dist/v2/blocks/response-block/components/ResponseBodyInfo.vue.js.map +1 -1
  152. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
  153. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +2 -2
  154. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js.map +1 -1
  155. package/dist/v2/blocks/response-block/components/{ResponseBodyPreview.vue.script.js → ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js} +1 -1
  156. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js.map +1 -0
  157. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +2 -2
  158. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js.map +1 -1
  159. package/dist/v2/blocks/response-block/components/{ResponseBodyRaw.vue.script.js → ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js} +1 -1
  160. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js.map +1 -0
  161. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js +1 -1
  162. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js.map +1 -1
  163. package/dist/v2/blocks/response-block/components/{ResponseBodyStreaming.vue.script.js → ResponseBodyStreaming.vue_vue_type_script_setup_true_lang.js} +2 -2
  164. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue_vue_type_script_setup_true_lang.js.map +1 -0
  165. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js +1 -1
  166. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js.map +1 -1
  167. package/dist/v2/blocks/response-block/components/{ResponseBodyToggle.vue.script.js → ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js} +1 -1
  168. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js.map +1 -0
  169. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js +2 -2
  170. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js.map +1 -1
  171. package/dist/v2/blocks/response-block/components/{ResponseBodyVirtual.vue.script.js → ResponseBodyVirtual.vue_vue_type_script_setup_true_lang.js} +1 -1
  172. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue_vue_type_script_setup_true_lang.js.map +1 -0
  173. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js +1 -1
  174. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js.map +1 -1
  175. package/dist/v2/blocks/response-block/components/{ResponseCookies.vue.script.js → ResponseCookies.vue_vue_type_script_setup_true_lang.js} +1 -1
  176. package/dist/v2/blocks/response-block/components/ResponseCookies.vue_vue_type_script_setup_true_lang.js.map +1 -0
  177. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
  178. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +2 -2
  179. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js.map +1 -1
  180. package/dist/v2/blocks/response-block/components/{ResponseEmpty.vue.script.js → ResponseEmpty.vue_vue_type_script_setup_true_lang.js} +2 -2
  181. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue_vue_type_script_setup_true_lang.js.map +1 -0
  182. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +2 -2
  183. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js.map +1 -1
  184. package/dist/v2/blocks/response-block/components/{ResponseLoadingOverlay.vue.script.js → ResponseLoadingOverlay.vue_vue_type_script_setup_true_lang.js} +1 -1
  185. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -0
  186. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.d.ts +1 -1
  187. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js +1 -1
  188. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js.map +1 -1
  189. package/dist/v2/blocks/response-block/components/{ResponseMetaInformation.vue.script.js → ResponseMetaInformation.vue_vue_type_script_setup_true_lang.js} +1 -1
  190. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue_vue_type_script_setup_true_lang.js.map +1 -0
  191. package/dist/v2/blocks/response-block/helpers/get-content-length.d.ts +1 -1
  192. package/dist/v2/blocks/response-block/helpers/process-response-body.js +2 -1
  193. package/dist/v2/blocks/response-block/helpers/process-response-body.js.map +1 -1
  194. package/dist/v2/blocks/response-block/helpers/response-stream-multipart.js +1 -1
  195. package/dist/v2/blocks/response-block/helpers/response-stream-multipart.js.map +1 -1
  196. package/dist/v2/blocks/response-block/helpers/response-stream.js +1 -1
  197. package/dist/v2/blocks/response-block/helpers/response-stream.js.map +1 -1
  198. package/dist/v2/blocks/response-block/index.js +1 -2
  199. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +1 -1
  200. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +2 -2
  201. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js.map +1 -1
  202. package/dist/v2/blocks/scalar-address-bar-block/components/{AddressBar.vue.script.js → AddressBar.vue_vue_type_script_setup_true_lang.js} +1 -1
  203. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  204. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +2 -2
  205. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js.map +1 -1
  206. package/dist/v2/blocks/scalar-address-bar-block/components/{AddressBarHistory.vue.script.js → AddressBarHistory.vue_vue_type_script_setup_true_lang.js} +1 -1
  207. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue_vue_type_script_setup_true_lang.js.map +1 -0
  208. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js +1 -1
  209. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js.map +1 -1
  210. package/dist/v2/blocks/scalar-address-bar-block/components/{EnvironmentSelector.vue.script.js → EnvironmentSelector.vue_vue_type_script_setup_true_lang.js} +1 -1
  211. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue_vue_type_script_setup_true_lang.js.map +1 -0
  212. package/dist/v2/blocks/scalar-address-bar-block/components/httpStatusCodeColors.js.map +1 -1
  213. package/dist/v2/blocks/scalar-address-bar-block/index.js +1 -2
  214. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -3
  215. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +1 -1
  216. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js.map +1 -1
  217. package/dist/v2/blocks/scalar-auth-selector-block/components/{AuthSelector.vue.script.js → AuthSelector.vue_vue_type_script_setup_true_lang.js} +1 -1
  218. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue_vue_type_script_setup_true_lang.js.map +1 -0
  219. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js +1 -1
  220. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js.map +1 -1
  221. package/dist/v2/blocks/scalar-auth-selector-block/components/{DeleteRequestAuthModal.vue.script.js → DeleteRequestAuthModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  222. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  223. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
  224. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +1 -1
  225. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js.map +1 -1
  226. package/dist/v2/blocks/scalar-auth-selector-block/components/{OAuth2.vue.script.js → OAuth2.vue_vue_type_script_setup_true_lang.js} +1 -1
  227. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue_vue_type_script_setup_true_lang.js.map +1 -0
  228. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2Metadata.vue.d.ts +1 -1
  229. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2Metadata.vue.js +1 -1
  230. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2Metadata.vue.js.map +1 -1
  231. package/dist/v2/blocks/scalar-auth-selector-block/components/{OAuth2Metadata.vue.script.js → OAuth2Metadata.vue_vue_type_script_setup_true_lang.js} +1 -1
  232. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2Metadata.vue_vue_type_script_setup_true_lang.js.map +1 -0
  233. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +1 -1
  234. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js.map +1 -1
  235. package/dist/v2/blocks/scalar-auth-selector-block/components/{OAuthScopesAddModal.vue.script.js → OAuthScopesAddModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  236. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  237. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +2 -2
  238. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js.map +1 -1
  239. package/dist/v2/blocks/scalar-auth-selector-block/components/{OAuthScopesInput.vue.script.js → OAuthScopesInput.vue_vue_type_script_setup_true_lang.js} +1 -1
  240. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  241. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.d.ts +1 -1
  242. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js +1 -1
  243. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js.map +1 -1
  244. package/dist/v2/blocks/scalar-auth-selector-block/components/{OpenIDConnect.vue.script.js → OpenIDConnect.vue_vue_type_script_setup_true_lang.js} +1 -1
  245. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  246. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
  247. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js +1 -1
  248. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js.map +1 -1
  249. package/dist/v2/blocks/scalar-auth-selector-block/components/{RequestAuthDataTable.vue.script.js → RequestAuthDataTable.vue_vue_type_script_setup_true_lang.js} +1 -1
  250. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  251. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
  252. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js +1 -1
  253. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js.map +1 -1
  254. package/dist/v2/blocks/scalar-auth-selector-block/components/{RequestAuthDataTableInput.vue.script.js → RequestAuthDataTableInput.vue_vue_type_script_setup_true_lang.js} +1 -1
  255. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  256. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js +1 -1
  257. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js.map +1 -1
  258. package/dist/v2/blocks/scalar-auth-selector-block/components/{RequestAuthTab.vue.script.js → RequestAuthTab.vue_vue_type_script_setup_true_lang.js} +1 -1
  259. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  260. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-oauth2-metadata.d.ts +1 -1
  261. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-oauth2-metadata.js.map +1 -1
  262. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
  263. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth-device-authorization.d.ts +1 -1
  264. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +1 -1
  265. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +7 -5
  266. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js.map +1 -1
  267. package/dist/v2/blocks/scalar-auth-selector-block/helpers/run-oauth2-authorize.d.ts +2 -2
  268. package/dist/v2/blocks/scalar-auth-selector-block/helpers/run-oauth2-authorize.js +3 -2
  269. package/dist/v2/blocks/scalar-auth-selector-block/helpers/run-oauth2-authorize.js.map +1 -1
  270. package/dist/v2/blocks/scalar-auth-selector-block/index.js +1 -2
  271. package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
  272. package/dist/v2/components/code-input/CodeInput.vue.js +3 -3
  273. package/dist/v2/components/code-input/CodeInput.vue.js.map +1 -1
  274. package/dist/v2/components/code-input/{CodeInput.vue.script.js → CodeInput.vue_vue_type_script_setup_true_lang.js} +1 -1
  275. package/dist/v2/components/code-input/CodeInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  276. package/dist/v2/components/code-input/CodeInputLite.vue.d.ts +1 -1
  277. package/dist/v2/components/code-input/CodeInputLite.vue.js +3 -3
  278. package/dist/v2/components/code-input/CodeInputLite.vue.js.map +1 -1
  279. package/dist/v2/components/code-input/{CodeInputLite.vue.script.js → CodeInputLite.vue_vue_type_script_setup_true_lang.js} +4 -2
  280. package/dist/v2/components/code-input/CodeInputLite.vue_vue_type_script_setup_true_lang.js.map +1 -0
  281. package/dist/v2/components/code-input/PillTooltipHost.vue.d.ts +1 -1
  282. package/dist/v2/components/code-input/PillTooltipHost.vue.js +1 -1
  283. package/dist/v2/components/code-input/PillTooltipHost.vue.js.map +1 -1
  284. package/dist/v2/components/code-input/{PillTooltipHost.vue.script.js → PillTooltipHost.vue_vue_type_script_setup_true_lang.js} +1 -1
  285. package/dist/v2/components/code-input/PillTooltipHost.vue_vue_type_script_setup_true_lang.js.map +1 -0
  286. package/dist/v2/components/code-input/code-variable-widget.d.ts +2 -2
  287. package/dist/v2/components/code-input/code-variable-widget.d.ts.map +1 -1
  288. package/dist/v2/components/code-input/code-variable-widget.js.map +1 -1
  289. package/dist/v2/components/context-menu/ContextMenu.vue.js +2 -2
  290. package/dist/v2/components/context-menu/ContextMenu.vue.js.map +1 -1
  291. package/dist/v2/components/context-menu/{ContextMenu.vue.script.js → ContextMenu.vue_vue_type_script_setup_true_lang.js} +1 -1
  292. package/dist/v2/components/context-menu/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  293. package/dist/v2/components/context-menu/index.js +1 -2
  294. package/dist/v2/components/data-table/DataTable.vue.js +1 -1
  295. package/dist/v2/components/data-table/DataTable.vue.js.map +1 -1
  296. package/dist/v2/components/data-table/{DataTable.vue.script.js → DataTable.vue_vue_type_script_setup_true_lang.js} +1 -1
  297. package/dist/v2/components/data-table/DataTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  298. package/dist/v2/components/data-table/DataTableCell.vue.js +1 -1
  299. package/dist/v2/components/data-table/DataTableCell.vue.js.map +1 -1
  300. package/dist/v2/components/data-table/{DataTableCell.vue.script.js → DataTableCell.vue_vue_type_script_setup_true_lang.js} +1 -1
  301. package/dist/v2/components/data-table/DataTableCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
  302. package/dist/v2/components/data-table/DataTableCheckbox.vue.js +1 -1
  303. package/dist/v2/components/data-table/DataTableCheckbox.vue.js.map +1 -1
  304. package/dist/v2/components/data-table/{DataTableCheckbox.vue.script.js → DataTableCheckbox.vue_vue_type_script_setup_true_lang.js} +1 -1
  305. package/dist/v2/components/data-table/DataTableCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  306. package/dist/v2/components/data-table/DataTableHeader.vue.js +1 -1
  307. package/dist/v2/components/data-table/DataTableHeader.vue.js.map +1 -1
  308. package/dist/v2/components/data-table/{DataTableHeader.vue.script.js → DataTableHeader.vue_vue_type_script_setup_true_lang.js} +1 -1
  309. package/dist/v2/components/data-table/DataTableHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
  310. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
  311. package/dist/v2/components/data-table/DataTableInput.vue.js +2 -2
  312. package/dist/v2/components/data-table/DataTableInput.vue.js.map +1 -1
  313. package/dist/v2/components/data-table/{DataTableInput.vue.script.js → DataTableInput.vue_vue_type_script_setup_true_lang.js} +1 -1
  314. package/dist/v2/components/data-table/DataTableInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  315. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
  316. package/dist/v2/components/data-table/DataTableInputSelect.vue.js +1 -1
  317. package/dist/v2/components/data-table/DataTableInputSelect.vue.js.map +1 -1
  318. package/dist/v2/components/data-table/{DataTableInputSelect.vue.script.js → DataTableInputSelect.vue_vue_type_script_setup_true_lang.js} +1 -1
  319. package/dist/v2/components/data-table/DataTableInputSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  320. package/dist/v2/components/data-table/DataTableRow.vue.js.map +1 -1
  321. package/dist/v2/components/data-table/DataTableText.vue.js +1 -1
  322. package/dist/v2/components/data-table/DataTableText.vue.js.map +1 -1
  323. package/dist/v2/components/data-table/{DataTableText.vue.script.js → DataTableText.vue_vue_type_script_setup_true_lang.js} +1 -1
  324. package/dist/v2/components/data-table/DataTableText.vue_vue_type_script_setup_true_lang.js.map +1 -0
  325. package/dist/v2/components/forms/ConfirmationForm.vue.js +1 -1
  326. package/dist/v2/components/forms/ConfirmationForm.vue.js.map +1 -1
  327. package/dist/v2/components/forms/{ConfirmationForm.vue.script.js → ConfirmationForm.vue_vue_type_script_setup_true_lang.js} +1 -1
  328. package/dist/v2/components/forms/ConfirmationForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  329. package/dist/v2/components/forms/index.js +1 -2
  330. package/dist/v2/components/layout/CollapsibleSection.vue.js +1 -1
  331. package/dist/v2/components/layout/CollapsibleSection.vue.js.map +1 -1
  332. package/dist/v2/components/layout/{CollapsibleSection.vue.script.js → CollapsibleSection.vue_vue_type_script_setup_true_lang.js} +1 -1
  333. package/dist/v2/components/layout/CollapsibleSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  334. package/dist/v2/components/layout/ValueEmitter.vue.js +1 -1
  335. package/dist/v2/components/layout/ValueEmitter.vue.js.map +1 -1
  336. package/dist/v2/components/layout/{ValueEmitter.vue.script.js → ValueEmitter.vue_vue_type_script_setup_true_lang.js} +1 -1
  337. package/dist/v2/components/layout/ValueEmitter.vue_vue_type_script_setup_true_lang.js.map +1 -0
  338. package/dist/v2/components/modals/DeleteModal.vue.js +1 -1
  339. package/dist/v2/components/modals/DeleteModal.vue.js.map +1 -1
  340. package/dist/v2/components/modals/{DeleteModal.vue.script.js → DeleteModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  341. package/dist/v2/components/modals/DeleteModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  342. package/dist/v2/components/modals/ModalClientContainer.vue.js +2 -2
  343. package/dist/v2/components/modals/ModalClientContainer.vue.js.map +1 -1
  344. package/dist/v2/components/modals/{ModalClientContainer.vue.script.js → ModalClientContainer.vue_vue_type_script_setup_true_lang.js} +1 -1
  345. package/dist/v2/components/modals/ModalClientContainer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  346. package/dist/v2/components/modals/index.js +1 -2
  347. package/dist/v2/components/resize/Resize.vue.js +3 -3
  348. package/dist/v2/components/resize/Resize.vue.js.map +1 -1
  349. package/dist/v2/components/resize/{Resize.vue.script.js → Resize.vue_vue_type_script_setup_true_lang.js} +1 -1
  350. package/dist/v2/components/resize/Resize.vue_vue_type_script_setup_true_lang.js.map +1 -0
  351. package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
  352. package/dist/v2/components/server/ServerDropdown.vue.js +1 -1
  353. package/dist/v2/components/server/ServerDropdown.vue.js.map +1 -1
  354. package/dist/v2/components/server/{ServerDropdown.vue.script.js → ServerDropdown.vue_vue_type_script_setup_true_lang.js} +1 -1
  355. package/dist/v2/components/server/ServerDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  356. package/dist/v2/components/server/ServerDropdownItem.vue.js +2 -2
  357. package/dist/v2/components/server/ServerDropdownItem.vue.js.map +1 -1
  358. package/dist/v2/components/server/{ServerDropdownItem.vue.script.js → ServerDropdownItem.vue_vue_type_script_setup_true_lang.js} +1 -1
  359. package/dist/v2/components/server/ServerDropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  360. package/dist/v2/components/server/index.js +1 -2
  361. package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
  362. package/dist/v2/components/sidebar/Sidebar.vue.js +1 -1
  363. package/dist/v2/components/sidebar/Sidebar.vue.js.map +1 -1
  364. package/dist/v2/components/sidebar/{Sidebar.vue.script.js → Sidebar.vue_vue_type_script_setup_true_lang.js} +1 -1
  365. package/dist/v2/components/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  366. package/dist/v2/components/sidebar/SidebarMenu.vue.js +1 -1
  367. package/dist/v2/components/sidebar/SidebarMenu.vue.js.map +1 -1
  368. package/dist/v2/components/sidebar/{SidebarMenu.vue.script.js → SidebarMenu.vue_vue_type_script_setup_true_lang.js} +1 -1
  369. package/dist/v2/components/sidebar/SidebarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  370. package/dist/v2/components/sidebar/SidebarToggle.vue.js +2 -2
  371. package/dist/v2/components/sidebar/SidebarToggle.vue.js.map +1 -1
  372. package/dist/v2/components/sidebar/{SidebarToggle.vue.script.js → SidebarToggle.vue_vue_type_script_setup_true_lang.js} +1 -1
  373. package/dist/v2/components/sidebar/SidebarToggle.vue_vue_type_script_setup_true_lang.js.map +1 -0
  374. package/dist/v2/constants.js +1 -1
  375. package/dist/v2/features/command-palette/components/CommandActionForm.vue.js +1 -1
  376. package/dist/v2/features/command-palette/components/CommandActionForm.vue.js.map +1 -1
  377. package/dist/v2/features/command-palette/components/{CommandActionForm.vue.script.js → CommandActionForm.vue_vue_type_script_setup_true_lang.js} +1 -1
  378. package/dist/v2/features/command-palette/components/CommandActionForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  379. package/dist/v2/features/command-palette/components/CommandActionInput.vue.js +1 -1
  380. package/dist/v2/features/command-palette/components/CommandActionInput.vue.js.map +1 -1
  381. package/dist/v2/features/command-palette/components/{CommandActionInput.vue.script.js → CommandActionInput.vue_vue_type_script_setup_true_lang.js} +1 -1
  382. package/dist/v2/features/command-palette/components/CommandActionInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  383. package/dist/v2/features/environments/EnvironmentsList.vue.js +1 -1
  384. package/dist/v2/features/environments/EnvironmentsList.vue.js.map +1 -1
  385. package/dist/v2/features/environments/{EnvironmentsList.vue.script.js → EnvironmentsList.vue_vue_type_script_setup_true_lang.js} +1 -1
  386. package/dist/v2/features/environments/EnvironmentsList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  387. package/dist/v2/features/environments/components/Environment.vue.js +1 -1
  388. package/dist/v2/features/environments/components/Environment.vue.js.map +1 -1
  389. package/dist/v2/features/environments/components/{Environment.vue.script.js → Environment.vue_vue_type_script_setup_true_lang.js} +1 -1
  390. package/dist/v2/features/environments/components/Environment.vue_vue_type_script_setup_true_lang.js.map +1 -0
  391. package/dist/v2/features/environments/components/EnvironmentColors.vue.js +1 -1
  392. package/dist/v2/features/environments/components/EnvironmentColors.vue.js.map +1 -1
  393. package/dist/v2/features/environments/components/{EnvironmentColors.vue.script.js → EnvironmentColors.vue_vue_type_script_setup_true_lang.js} +1 -1
  394. package/dist/v2/features/environments/components/EnvironmentColors.vue_vue_type_script_setup_true_lang.js.map +1 -0
  395. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js +1 -1
  396. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js.map +1 -1
  397. package/dist/v2/features/environments/components/{EnvironmentCreateModal.vue.script.js → EnvironmentCreateModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  398. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  399. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js +1 -1
  400. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js.map +1 -1
  401. package/dist/v2/features/environments/components/{EnvironmentDeleteModal.vue.script.js → EnvironmentDeleteModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  402. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  403. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js +1 -1
  404. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js.map +1 -1
  405. package/dist/v2/features/environments/components/{EnvironmentVariablesDropdown.vue.script.js → EnvironmentVariablesDropdown.vue_vue_type_script_setup_true_lang.js} +1 -1
  406. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  407. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js +2 -2
  408. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js.map +1 -1
  409. package/dist/v2/features/environments/components/{EnvironmentVariablesTable.vue.script.js → EnvironmentVariablesTable.vue_vue_type_script_setup_true_lang.js} +1 -1
  410. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  411. package/dist/v2/features/environments/index.js +1 -2
  412. package/dist/v2/features/modal/Modal.vue.d.ts +2 -2
  413. package/dist/v2/features/modal/Modal.vue.js +1 -1
  414. package/dist/v2/features/modal/Modal.vue.js.map +1 -1
  415. package/dist/v2/features/modal/{Modal.vue.script.js → Modal.vue_vue_type_script_setup_true_lang.js} +1 -1
  416. package/dist/v2/features/modal/Modal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  417. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
  418. package/dist/v2/features/modal/helpers/create-api-client-modal.js.map +1 -1
  419. package/dist/v2/features/modal/helpers/map-hidden-clients-config.js.map +1 -1
  420. package/dist/v2/features/modal/helpers/types.d.ts +1 -1
  421. package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
  422. package/dist/v2/features/modal/index.d.ts +1 -1
  423. package/dist/v2/features/modal/modal-events.d.ts +1 -1
  424. package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
  425. package/dist/v2/features/operation/Operation.vue.js +1 -1
  426. package/dist/v2/features/operation/Operation.vue.js.map +1 -1
  427. package/dist/v2/features/operation/{Operation.vue.script.js → Operation.vue_vue_type_script_setup_true_lang.js} +1 -1
  428. package/dist/v2/features/operation/Operation.vue_vue_type_script_setup_true_lang.js.map +1 -0
  429. package/dist/v2/features/operation/index.js +1 -2
  430. package/dist/v2/features/search/components/DocumentSearchModal.vue.js +2 -2
  431. package/dist/v2/features/search/components/DocumentSearchModal.vue.js.map +1 -1
  432. package/dist/v2/features/search/components/{DocumentSearchModal.vue.script.js → DocumentSearchModal.vue_vue_type_script_setup_true_lang.js} +1 -1
  433. package/dist/v2/features/search/components/DocumentSearchModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  434. package/dist/v2/features/search/components/SearchResult.vue.d.ts +1 -1
  435. package/dist/v2/features/search/components/SearchResult.vue.js +1 -1
  436. package/dist/v2/features/search/components/SearchResult.vue.js.map +1 -1
  437. package/dist/v2/features/search/components/{SearchResult.vue.script.js → SearchResult.vue_vue_type_script_setup_true_lang.js} +1 -1
  438. package/dist/v2/features/search/components/SearchResult.vue_vue_type_script_setup_true_lang.js.map +1 -0
  439. package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
  440. package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
  441. package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
  442. package/dist/v2/hooks/index.js +1 -2
  443. package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
  444. package/dist/v2/types/options.d.ts +2 -2
  445. package/dist/vue-styles.css +6 -6
  446. package/package.json +31 -31
  447. package/dist/assets/computer.ascii.virtual.js.map +0 -1
  448. package/dist/components/HelpfulLink.vue.script.js.map +0 -1
  449. package/dist/components/HttpMethod/HttpMethod.vue.script.js.map +0 -1
  450. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.script.js.map +0 -1
  451. package/dist/components/SectionFilter.vue.script.js.map +0 -1
  452. package/dist/components/SectionFilterButton.vue.script.js.map +0 -1
  453. package/dist/components/Server/ServerVariablesForm.vue.script.js.map +0 -1
  454. package/dist/components/Server/ServerVariablesSelect.vue.script.js.map +0 -1
  455. package/dist/components/Server/ServerVariablesTextbox.vue.script.js.map +0 -1
  456. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.script.js.map +0 -1
  457. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.script.js.map +0 -1
  458. package/dist/components/ViewLayout/ViewLayout.vue.script.js.map +0 -1
  459. package/dist/components/ViewLayout/ViewLayoutSection.vue.script.js.map +0 -1
  460. package/dist/v2/blocks/operation-block/components/Header.vue.script.js.map +0 -1
  461. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.script.js.map +0 -1
  462. package/dist/v2/blocks/request-block/RequestBlock.vue.script.js.map +0 -1
  463. package/dist/v2/blocks/request-block/components/RequestBody.vue.script.js.map +0 -1
  464. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.script.js.map +0 -1
  465. package/dist/v2/blocks/request-block/components/RequestBodyStructured.vue.script.js.map +0 -1
  466. package/dist/v2/blocks/request-block/components/RequestBodyViewToggle.vue.script.js.map +0 -1
  467. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.script.js.map +0 -1
  468. package/dist/v2/blocks/request-block/components/RequestParams.vue.script.js.map +0 -1
  469. package/dist/v2/blocks/request-block/components/RequestTable.vue.script.js.map +0 -1
  470. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.script.js.map +0 -1
  471. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.script.js.map +0 -1
  472. package/dist/v2/blocks/response-block/ResponseBlock.vue.script.js.map +0 -1
  473. package/dist/v2/blocks/response-block/components/Headers.vue.script.js.map +0 -1
  474. package/dist/v2/blocks/response-block/components/ResponseBody.vue.script.js.map +0 -1
  475. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.script.js.map +0 -1
  476. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.script.js.map +0 -1
  477. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.script.js.map +0 -1
  478. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.script.js.map +0 -1
  479. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.script.js.map +0 -1
  480. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.script.js.map +0 -1
  481. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.script.js.map +0 -1
  482. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.script.js.map +0 -1
  483. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.script.js.map +0 -1
  484. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.script.js.map +0 -1
  485. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.script.js.map +0 -1
  486. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.script.js.map +0 -1
  487. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.script.js.map +0 -1
  488. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.script.js.map +0 -1
  489. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.script.js.map +0 -1
  490. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.script.js.map +0 -1
  491. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2Metadata.vue.script.js.map +0 -1
  492. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.script.js.map +0 -1
  493. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.script.js.map +0 -1
  494. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.script.js.map +0 -1
  495. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.script.js.map +0 -1
  496. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.script.js.map +0 -1
  497. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.script.js.map +0 -1
  498. package/dist/v2/components/code-input/CodeInput.vue.script.js.map +0 -1
  499. package/dist/v2/components/code-input/CodeInputLite.vue.script.js.map +0 -1
  500. package/dist/v2/components/code-input/PillTooltipHost.vue.script.js.map +0 -1
  501. package/dist/v2/components/context-menu/ContextMenu.vue.script.js.map +0 -1
  502. package/dist/v2/components/data-table/DataTable.vue.script.js.map +0 -1
  503. package/dist/v2/components/data-table/DataTableCell.vue.script.js.map +0 -1
  504. package/dist/v2/components/data-table/DataTableCheckbox.vue.script.js.map +0 -1
  505. package/dist/v2/components/data-table/DataTableHeader.vue.script.js.map +0 -1
  506. package/dist/v2/components/data-table/DataTableInput.vue.script.js.map +0 -1
  507. package/dist/v2/components/data-table/DataTableInputSelect.vue.script.js.map +0 -1
  508. package/dist/v2/components/data-table/DataTableText.vue.script.js.map +0 -1
  509. package/dist/v2/components/forms/ConfirmationForm.vue.script.js.map +0 -1
  510. package/dist/v2/components/layout/CollapsibleSection.vue.script.js.map +0 -1
  511. package/dist/v2/components/layout/ValueEmitter.vue.script.js.map +0 -1
  512. package/dist/v2/components/modals/DeleteModal.vue.script.js.map +0 -1
  513. package/dist/v2/components/modals/ModalClientContainer.vue.script.js.map +0 -1
  514. package/dist/v2/components/resize/Resize.vue.script.js.map +0 -1
  515. package/dist/v2/components/server/ServerDropdown.vue.script.js.map +0 -1
  516. package/dist/v2/components/server/ServerDropdownItem.vue.script.js.map +0 -1
  517. package/dist/v2/components/sidebar/Sidebar.vue.script.js.map +0 -1
  518. package/dist/v2/components/sidebar/SidebarMenu.vue.script.js.map +0 -1
  519. package/dist/v2/components/sidebar/SidebarToggle.vue.script.js.map +0 -1
  520. package/dist/v2/features/command-palette/components/CommandActionForm.vue.script.js.map +0 -1
  521. package/dist/v2/features/command-palette/components/CommandActionInput.vue.script.js.map +0 -1
  522. package/dist/v2/features/environments/EnvironmentsList.vue.script.js.map +0 -1
  523. package/dist/v2/features/environments/components/Environment.vue.script.js.map +0 -1
  524. package/dist/v2/features/environments/components/EnvironmentColors.vue.script.js.map +0 -1
  525. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.script.js.map +0 -1
  526. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.script.js.map +0 -1
  527. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.script.js.map +0 -1
  528. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.script.js.map +0 -1
  529. package/dist/v2/features/modal/Modal.vue.script.js.map +0 -1
  530. package/dist/v2/features/operation/Operation.vue.script.js.map +0 -1
  531. package/dist/v2/features/search/components/DocumentSearchModal.vue.script.js.map +0 -1
  532. package/dist/v2/features/search/components/SearchResult.vue.script.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBody.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ClientPlugin } from '@scalar/oas-utils/helpers'\nimport type { CodeMirrorLanguage } from '@scalar/use-codemirror'\nimport { computed, ref } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { resolveResponseBodyHandler } from '@/v2/blocks/response-block/helpers/resolve-response-body-handler'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyPreview from './ResponseBodyPreview.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\nimport ResponseBodyToggle from './ResponseBodyToggle.vue'\n\nconst {\n data,\n headers,\n plugins = [],\n} = defineProps<{\n title: string\n layout: 'client' | 'reference'\n data: unknown\n headers: { name: string; value: string }[]\n plugins?: ClientPlugin[]\n}>()\n\nconst { translate } = useLocalization()\n\n/** Preview / Raw toggle */\nconst toggle = ref(true)\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n\nconst mimeEssence = computed(() => responseBody.value.mimeType.essence)\n\nconst mediaConfig = computed(() => getMediaTypeConfig(mimeEssence.value))\n\nconst pluginHandler = computed(() =>\n resolveResponseBodyHandler(mimeEssence.value, plugins),\n)\n\nconst hasRaw = computed(\n () =>\n !!pluginHandler.value?.rawComponent ||\n !!pluginHandler.value?.decode ||\n !!mediaConfig.value?.raw,\n)\n\nconst hasPreview = computed(\n () => !!pluginHandler.value?.previewComponent || !!mediaConfig.value?.preview,\n)\n\nconst showToggle = computed(() => hasRaw.value && hasPreview.value)\n\nconst showPreview = computed(() => toggle.value || !showToggle.value)\nconst showRaw = computed(() => !toggle.value || !showToggle.value)\n\nconst rawLanguage = computed(\n () => pluginHandler.value?.language ?? mediaConfig.value?.language,\n)\n</script>\n<template>\n <CollapsibleSection\n class=\"max-h-content overflow-y-hidden\"\n :isStatic=\"layout === 'reference'\">\n <template #title>{{ title }}</template>\n <template\n v-if=\"data && responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div\n v-if=\"data\"\n class=\"bg-b-1 flex max-h-[calc(100%-32px)] flex-col overflow-hidden\">\n <div\n class=\"box-content flex min-h-8 items-center justify-between border-y px-3\">\n <span class=\"text-xxs font-code leading-5\">\n {{ mimeEssence }}\n </span>\n <ResponseBodyToggle\n v-if=\"showToggle\"\n v-model=\"toggle\" />\n </div>\n\n <!-- Plugin custom preview component -->\n <component\n :is=\"pluginHandler.previewComponent\"\n v-if=\"pluginHandler?.previewComponent && hasPreview && showPreview\"\n :key=\"`plugin-preview-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\"\n :dataUrl=\"responseBody.dataUrl\" />\n <!-- Default preview renderer (JSON, image, video, HTML object, …) -->\n <ResponseBodyPreview\n v-else-if=\"mediaConfig?.preview && showPreview\"\n :key=\"`preview-${responseBody.dataUrl}`\"\n :alpha=\"mediaConfig.alpha\"\n :content=\"data\"\n :mode=\"mediaConfig.preview\"\n :src=\"responseBody.dataUrl\"\n :type=\"mimeEssence\" />\n\n <!-- Plugin custom raw component -->\n <component\n :is=\"pluginHandler.rawComponent\"\n v-if=\"pluginHandler?.rawComponent && hasRaw && showRaw\"\n :key=\"`plugin-raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\" />\n <!-- Default raw: exact decoded body (no JSON pretty-print) -->\n <ResponseBodyRaw\n v-else-if=\"hasRaw && showRaw && !pluginHandler?.rawComponent\"\n :key=\"`raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :language=\"rawLanguage as CodeMirrorLanguage\" />\n\n <ResponseBodyInfo v-if=\"!hasRaw && !hasPreview\">\n {{ translate('apiClient.responseBody.binaryFile') }}\n </ResponseBodyInfo>\n </div>\n </CollapsibleSection>\n</template>\n<style scoped>\n.scalar-code-block :deep(.hljs *) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBody.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ClientPlugin } from '@scalar/oas-utils/helpers'\nimport type { CodeMirrorLanguage } from '@scalar/use-codemirror'\nimport { computed, ref } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { resolveResponseBodyHandler } from '@/v2/blocks/response-block/helpers/resolve-response-body-handler'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyPreview from './ResponseBodyPreview.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\nimport ResponseBodyToggle from './ResponseBodyToggle.vue'\n\nconst {\n data,\n headers,\n plugins = [],\n} = defineProps<{\n title: string\n layout: 'client' | 'reference'\n data: unknown\n headers: { name: string; value: string }[]\n plugins?: ClientPlugin[]\n}>()\n\nconst { translate } = useLocalization()\n\n/** Preview / Raw toggle */\nconst toggle = ref(true)\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n\nconst mimeEssence = computed(() => responseBody.value.mimeType.essence)\n\nconst mediaConfig = computed(() => getMediaTypeConfig(mimeEssence.value))\n\nconst pluginHandler = computed(() =>\n resolveResponseBodyHandler(mimeEssence.value, plugins),\n)\n\nconst hasRaw = computed(\n () =>\n !!pluginHandler.value?.rawComponent ||\n !!pluginHandler.value?.decode ||\n !!mediaConfig.value?.raw,\n)\n\nconst hasPreview = computed(\n () => !!pluginHandler.value?.previewComponent || !!mediaConfig.value?.preview,\n)\n\nconst showToggle = computed(() => hasRaw.value && hasPreview.value)\n\nconst showPreview = computed(() => toggle.value || !showToggle.value)\nconst showRaw = computed(() => !toggle.value || !showToggle.value)\n\nconst rawLanguage = computed(\n () => pluginHandler.value?.language ?? mediaConfig.value?.language,\n)\n</script>\n<template>\n <CollapsibleSection\n class=\"max-h-content overflow-y-hidden\"\n :isStatic=\"layout === 'reference'\">\n <template #title>{{ title }}</template>\n <template\n v-if=\"data && responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div\n v-if=\"data\"\n class=\"bg-b-1 flex max-h-[calc(100%-32px)] flex-col overflow-hidden\">\n <div\n class=\"box-content flex min-h-8 items-center justify-between border-y px-3\">\n <span class=\"text-xxs font-code leading-5\">\n {{ mimeEssence }}\n </span>\n <ResponseBodyToggle\n v-if=\"showToggle\"\n v-model=\"toggle\" />\n </div>\n\n <!-- Plugin custom preview component -->\n <component\n :is=\"pluginHandler.previewComponent\"\n v-if=\"pluginHandler?.previewComponent && hasPreview && showPreview\"\n :key=\"`plugin-preview-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\"\n :dataUrl=\"responseBody.dataUrl\" />\n <!-- Default preview renderer (JSON, image, video, HTML object, …) -->\n <ResponseBodyPreview\n v-else-if=\"mediaConfig?.preview && showPreview\"\n :key=\"`preview-${responseBody.dataUrl}`\"\n :alpha=\"mediaConfig.alpha\"\n :content=\"data\"\n :mode=\"mediaConfig.preview\"\n :src=\"responseBody.dataUrl\"\n :type=\"mimeEssence\" />\n\n <!-- Plugin custom raw component -->\n <component\n :is=\"pluginHandler.rawComponent\"\n v-if=\"pluginHandler?.rawComponent && hasRaw && showRaw\"\n :key=\"`plugin-raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\" />\n <!-- Default raw: exact decoded body (no JSON pretty-print) -->\n <ResponseBodyRaw\n v-else-if=\"hasRaw && showRaw && !pluginHandler?.rawComponent\"\n :key=\"`raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :language=\"rawLanguage as CodeMirrorLanguage\" />\n\n <ResponseBodyInfo v-if=\"!hasRaw && !hasPreview\">\n {{ translate('apiClient.responseBody.binaryFile') }}\n </ResponseBodyInfo>\n </div>\n </CollapsibleSection>\n</template>\n<style scoped>\n.scalar-code-block :deep(.hljs *) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":""}
@@ -111,4 +111,4 @@ var ResponseBody_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
111
111
  //#endregion
112
112
  export { ResponseBody_vue_vue_type_script_setup_true_lang_default as default };
113
113
 
114
- //# sourceMappingURL=ResponseBody.vue.script.js.map
114
+ //# sourceMappingURL=ResponseBody.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBody.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","CollapsibleSection","_createSlots","_withCtx","_createTextVNode","_toDisplayString","_createElementBlock","_createElementVNode","ResponseBodyToggle","_createCommentVNode","_resolveDynamicComponent","ResponseBodyPreview","ResponseBodyRaw","ResponseBodyInfo","_createVNode","ResponseBodyDownload"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ClientPlugin } from '@scalar/oas-utils/helpers'\nimport type { CodeMirrorLanguage } from '@scalar/use-codemirror'\nimport { computed, ref } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { resolveResponseBodyHandler } from '@/v2/blocks/response-block/helpers/resolve-response-body-handler'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyPreview from './ResponseBodyPreview.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\nimport ResponseBodyToggle from './ResponseBodyToggle.vue'\n\nconst {\n data,\n headers,\n plugins = [],\n} = defineProps<{\n title: string\n layout: 'client' | 'reference'\n data: unknown\n headers: { name: string; value: string }[]\n plugins?: ClientPlugin[]\n}>()\n\nconst { translate } = useLocalization()\n\n/** Preview / Raw toggle */\nconst toggle = ref(true)\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n\nconst mimeEssence = computed(() => responseBody.value.mimeType.essence)\n\nconst mediaConfig = computed(() => getMediaTypeConfig(mimeEssence.value))\n\nconst pluginHandler = computed(() =>\n resolveResponseBodyHandler(mimeEssence.value, plugins),\n)\n\nconst hasRaw = computed(\n () =>\n !!pluginHandler.value?.rawComponent ||\n !!pluginHandler.value?.decode ||\n !!mediaConfig.value?.raw,\n)\n\nconst hasPreview = computed(\n () => !!pluginHandler.value?.previewComponent || !!mediaConfig.value?.preview,\n)\n\nconst showToggle = computed(() => hasRaw.value && hasPreview.value)\n\nconst showPreview = computed(() => toggle.value || !showToggle.value)\nconst showRaw = computed(() => !toggle.value || !showToggle.value)\n\nconst rawLanguage = computed(\n () => pluginHandler.value?.language ?? mediaConfig.value?.language,\n)\n</script>\n<template>\n <CollapsibleSection\n class=\"max-h-content overflow-y-hidden\"\n :isStatic=\"layout === 'reference'\">\n <template #title>{{ title }}</template>\n <template\n v-if=\"data && responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div\n v-if=\"data\"\n class=\"bg-b-1 flex max-h-[calc(100%-32px)] flex-col overflow-hidden\">\n <div\n class=\"box-content flex min-h-8 items-center justify-between border-y px-3\">\n <span class=\"text-xxs font-code leading-5\">\n {{ mimeEssence }}\n </span>\n <ResponseBodyToggle\n v-if=\"showToggle\"\n v-model=\"toggle\" />\n </div>\n\n <!-- Plugin custom preview component -->\n <component\n :is=\"pluginHandler.previewComponent\"\n v-if=\"pluginHandler?.previewComponent && hasPreview && showPreview\"\n :key=\"`plugin-preview-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\"\n :dataUrl=\"responseBody.dataUrl\" />\n <!-- Default preview renderer (JSON, image, video, HTML object, …) -->\n <ResponseBodyPreview\n v-else-if=\"mediaConfig?.preview && showPreview\"\n :key=\"`preview-${responseBody.dataUrl}`\"\n :alpha=\"mediaConfig.alpha\"\n :content=\"data\"\n :mode=\"mediaConfig.preview\"\n :src=\"responseBody.dataUrl\"\n :type=\"mimeEssence\" />\n\n <!-- Plugin custom raw component -->\n <component\n :is=\"pluginHandler.rawComponent\"\n v-if=\"pluginHandler?.rawComponent && hasRaw && showRaw\"\n :key=\"`plugin-raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :contentType=\"mimeEssence\" />\n <!-- Default raw: exact decoded body (no JSON pretty-print) -->\n <ResponseBodyRaw\n v-else-if=\"hasRaw && showRaw && !pluginHandler?.rawComponent\"\n :key=\"`raw-${responseBody.dataUrl}`\"\n :content=\"data\"\n :language=\"rawLanguage as CodeMirrorLanguage\" />\n\n <ResponseBodyInfo v-if=\"!hasRaw && !hasPreview\">\n {{ translate('apiClient.responseBody.binaryFile') }}\n </ResponseBodyInfo>\n </div>\n </CollapsibleSection>\n</template>\n<style scoped>\n.scalar-code-block :deep(.hljs *) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BA,MAAM,EAAE,cAAc,gBAAgB;;EAGtC,MAAM,SAAS,IAAI,IAAI;EAEvB,MAAM,eAAe,eACnB,oBAAoB;GAClB,MAAG,QAAA;GACH,SAAM,QAAA;EACR,CAAC,CACH;EAEA,MAAM,cAAc,eAAe,aAAa,MAAM,SAAS,OAAO;EAEtE,MAAM,cAAc,eAAe,mBAAmB,YAAY,KAAK,CAAC;EAExE,MAAM,gBAAgB,eACpB,2BAA2B,YAAY,OAAO,QAAA,OAAO,CACvD;EAEA,MAAM,SAAS,eAEX,CAAC,CAAC,cAAc,OAAO,gBACvB,CAAC,CAAC,cAAc,OAAO,UACvB,CAAC,CAAC,YAAY,OAAO,GACzB;EAEA,MAAM,aAAa,eACX,CAAC,CAAC,cAAc,OAAO,oBAAoB,CAAC,CAAC,YAAY,OAAO,OACxE;EAEA,MAAM,aAAa,eAAe,OAAO,SAAS,WAAW,KAAK;EAElE,MAAM,cAAc,eAAe,OAAO,SAAS,CAAC,WAAW,KAAK;EACpE,MAAM,UAAU,eAAe,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK;EAEjE,MAAM,cAAc,eACZ,cAAc,OAAO,YAAY,YAAY,OAAO,QAC5D;;GAGE,OAAAA,UAAA,GAAAC,YA6DqBC,MAAAC,0BAAA,GAAA;IA5DnB,OAAM;IACL,UAAU,QAAA,WAAM;;IACN,OAAKE,cAAY,CAARC,gBAAAC,gBAAA,QAAA,KAAK,GAAA,CAAA,C;IASzB,SAAAF,cAgDM,CA/CE,QAAA,QADRL,UAAA,GAAAQ,mBAgDM,OAhDN,YAgDM;KA7CJC,mBAQM,OARN,YAQM,CANJA,mBAEO,QAFP,YAEOF,gBADF,YAAA,KAAW,GAAA,CAAA,GAGR,WAAA,SADRP,UAAA,GAAAC,YAEqBS,4BAAA;;MAAV,YAAA,OAAA;MAAA,uBAAA,OAAA,OAAA,OAAA,MAAA,WAAA,OAAM,QAAA;;KAMX,cAAA,OAAe,oBAAoB,WAAA,SAAc,YAAA,SAFzDV,UAAA,GAAAC,YAMoCW,wBAL7B,cAAA,MAAc,gBAAgB,GAAA;MAElC,KAAG,kBAAoB,aAAA,MAAa;MACpC,SAAS,QAAA;MACT,aAAa,YAAA;MACb,SAAS,aAAA,MAAa;;;;;K,MAGZ,YAAA,OAAa,WAAW,YAAA,SADrCZ,UAAA,GAAAC,YAOwBY,6BAAA;MALrB,KAAG,WAAa,aAAA,MAAa;MAC7B,OAAO,YAAA,MAAY;MACnB,SAAS,QAAA;MACT,MAAM,YAAA,MAAY;MAClB,KAAK,aAAA,MAAa;MAClB,MAAM,YAAA;;;;;;;;KAKD,cAAA,OAAe,gBAAgB,OAAA,SAAU,QAAA,SAFjDb,UAAA,GAAAC,YAK+BW,wBAJxB,cAAA,MAAc,YAAY,GAAA;MAE9B,KAAG,cAAgB,aAAA,MAAa;MAChC,SAAS,QAAA;MACT,aAAa,YAAA;K,2CAGH,OAAA,SAAU,QAAA,SAAO,CAAK,cAAA,OAAe,gBADlDZ,UAAA,GAAAC,YAIkDa,yBAAA;MAF/C,KAAG,OAAS,aAAA,MAAa;MACzB,SAAS,QAAA;MACT,UAAU,YAAA;;KAEY,CAAA,OAAA,SAAM,CAAK,WAAA,SAApCd,UAAA,GAAAC,YAEmBc,0BAAA,EAAA,KAAA,EAAA,GAAA;MADjB,SAAAV,cAAoD,CAAjDC,gBAAAC,gBAAAL,MAAA,SAAA,CAAS,CAAA,mCAAA,CAAA,GAAA,CAAA,C;;;;;G,IArDR,QAAA,QAAQ,aAAA,MAAa,U;IAC1B,MAAA;IACD,IAAAG,cAG2C,CAH3CW,YAG2CC,8BAAA;KAFxC,UAAU,aAAA,MAAa;KACvB,MAAM,aAAA,MAAa;KACnB,MAAM,aAAA,MAAa,UAAU"}
@@ -1,4 +1,4 @@
1
- import ResponseBodyDownload_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyDownload.vue.script.js";
1
+ import ResponseBodyDownload_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyDownload.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/v2/blocks/response-block/components/ResponseBodyDownload.vue
3
3
  var ResponseBodyDownload_default = ResponseBodyDownload_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyDownload.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyDownload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { computed } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { useLocalization } from '@/v2/features/localization'\n\nconst props = defineProps<{\n href: string\n type?: string\n filename?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst filenameExtension = computed(() => {\n const extension =\n getMediaTypeConfig(props.type ?? '')?.extension ?? '.unknown'\n return props.filename ? props.filename : `response${extension}`\n})\n</script>\n<template>\n <a\n :aria-label=\"translate('apiClient.responseBodyDownload.download')\"\n class=\"text-c-3 text-xxs hover:bg-b-3 flex items-center gap-1 rounded px-1.5 py-0.5 no-underline\"\n :download=\"`${filenameExtension}`\"\n :href=\"href\"\n @click.stop>\n <ScalarIcon\n icon=\"Download\"\n size=\"xs\" />\n <span>\n <span>{{ translate('apiClient.responseBodyDownload.label') }}</span>\n <span class=\"sr-only\">{{\n translate('apiClient.responseBodyDownload.body')\n }}</span>\n </span>\n </a>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyDownload.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyDownload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { computed } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { useLocalization } from '@/v2/features/localization'\n\nconst props = defineProps<{\n href: string\n type?: string\n filename?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst filenameExtension = computed(() => {\n const extension =\n getMediaTypeConfig(props.type ?? '')?.extension ?? '.unknown'\n return props.filename ? props.filename : `response${extension}`\n})\n</script>\n<template>\n <a\n :aria-label=\"translate('apiClient.responseBodyDownload.download')\"\n class=\"text-c-3 text-xxs hover:bg-b-3 flex items-center gap-1 rounded px-1.5 py-0.5 no-underline\"\n :download=\"`${filenameExtension}`\"\n :href=\"href\"\n @click.stop>\n <ScalarIcon\n icon=\"Download\"\n size=\"xs\" />\n <span>\n <span>{{ translate('apiClient.responseBodyDownload.label') }}</span>\n <span class=\"sr-only\">{{\n translate('apiClient.responseBodyDownload.body')\n }}</span>\n </span>\n </a>\n</template>\n"],"mappings":""}
@@ -40,4 +40,4 @@ var ResponseBodyDownload_vue_vue_type_script_setup_true_lang_default = /*@__PURE
40
40
  //#endregion
41
41
  export { ResponseBodyDownload_vue_vue_type_script_setup_true_lang_default as default };
42
42
 
43
- //# sourceMappingURL=ResponseBodyDownload.vue.script.js.map
43
+ //# sourceMappingURL=ResponseBodyDownload.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyDownload.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_unref","_withModifiers","_createVNode","_createElementVNode","_toDisplayString"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyDownload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { computed } from 'vue'\n\nimport { getMediaTypeConfig } from '@/v2/blocks/response-block/helpers/media-types'\nimport { useLocalization } from '@/v2/features/localization'\n\nconst props = defineProps<{\n href: string\n type?: string\n filename?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst filenameExtension = computed(() => {\n const extension =\n getMediaTypeConfig(props.type ?? '')?.extension ?? '.unknown'\n return props.filename ? props.filename : `response${extension}`\n})\n</script>\n<template>\n <a\n :aria-label=\"translate('apiClient.responseBodyDownload.download')\"\n class=\"text-c-3 text-xxs hover:bg-b-3 flex items-center gap-1 rounded px-1.5 py-0.5 no-underline\"\n :download=\"`${filenameExtension}`\"\n :href=\"href\"\n @click.stop>\n <ScalarIcon\n icon=\"Download\"\n size=\"xs\" />\n <span>\n <span>{{ translate('apiClient.responseBodyDownload.label') }}</span>\n <span class=\"sr-only\">{{\n translate('apiClient.responseBodyDownload.body')\n }}</span>\n </span>\n </a>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EAMd,MAAM,EAAE,cAAc,gBAAgB;EAEtC,MAAM,oBAAoB,eAAe;GACvC,MAAM,YACJ,mBAAmB,MAAM,QAAQ,EAAE,CAAC,EAAE,aAAa;GACrD,OAAO,MAAM,WAAW,MAAM,WAAW,WAAW;EACtD,CAAC;;GAGC,OAAAA,UAAA,GAAAC,mBAeI,KAAA;IAdD,cAAYC,MAAA,SAAA,CAAS,CAAA,yCAAA;IACtB,OAAM;IACL,UAAQ,GAAK,kBAAA;IACb,MAAM,QAAA;IACN,SAAK,OAAA,OAAA,OAAA,KAAAC,oBAAN,CAAA,GAAW,CAAA,MAAA,CAAA;G,IACXC,YAEcF,MAAA,UAAA,GAAA;IADZ,MAAK;IACL,MAAK;G,IACPG,mBAKO,QAAA,MAAA,CAJLA,mBAAoE,QAAA,MAAAC,gBAA3DJ,MAAA,SAAA,CAAS,CAAA,sCAAA,CAAA,GAAA,CAAA,GAClBG,mBAES,QAFT,YAESC,gBADPJ,MAAA,SAAA,CAAS,CAAA,qCAAA,CAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyInfo.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyInfo.vue"],"sourcesContent":["<template>\n <div class=\"flex justify-center px-2 py-3\">\n <div class=\"text-c-3 p-2 text-sm\"><slot /></div>\n </div>\n</template>\n"],"mappings":";;;;mBACO,OAAM,gCAA+B;mBACnC,OAAM,uBAAsB;;qBADnC,mBAEM,OAFN,YAEM,CADJ,mBAAgD,OAAhD,YAAgD,CAAd,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ResponseBodyInfo.vue.js","names":["_openBlock","_createElementBlock","_createElementVNode","_renderSlot"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyInfo.vue"],"sourcesContent":["<template>\n <div class=\"flex justify-center px-2 py-3\">\n <div class=\"text-c-3 p-2 text-sm\"><slot /></div>\n </div>\n</template>\n"],"mappings":";;;;AACO,IAAA,aAAA,EAAA,OAAM,gCAA+B;AACnC,IAAA,aAAA,EAAA,OAAM,uBAAsB;;CADnC,OAAAA,UAAA,GAAAC,mBAEM,OAFN,YAEM,CADJC,mBAAgD,OAAhD,YAAgD,CAAdC,WAAQ,KAAA,QAAA,SAAA,C"}
@@ -1,4 +1,4 @@
1
- import { type MediaPreview } from '../../../../v2/blocks/response-block/helpers/media-types.js';
1
+ import { type MediaPreview } from '../helpers/media-types.js';
2
2
  type __VLS_Props = {
3
3
  src: string;
4
4
  type: string;
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
- import ResponseBodyPreview_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyPreview.vue.script.js";
3
- /* empty css */
2
+ import ResponseBodyPreview_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/v2/blocks/response-block/components/ResponseBodyPreview.vue
5
5
  var ResponseBodyPreview_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ResponseBodyPreview_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a9193a63"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyPreview.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyPreview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nimport { type MediaPreview } from '@/v2/blocks/response-block/helpers/media-types'\nimport { prettifyNdjson } from '@/v2/blocks/response-block/helpers/prettify-ndjson'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\n\nconst {\n src,\n type,\n mode,\n alpha = false,\n content,\n} = defineProps<{\n src: string\n type: string\n mode: MediaPreview\n alpha?: boolean | undefined\n /** Decoded body; used when `mode` is `json` for pretty-printed preview (no JSON.parse round-trip). */\n content?: unknown\n}>()\n\nconst { translate } = useLocalization()\n\nconst jsonPreviewContent = computed((): string => {\n const value = content\n if (typeof value === 'string') {\n return value\n }\n if (value == null) {\n return ''\n }\n return String(value)\n})\n\n/** NDJSON pretty-printed one record per block for the `ndjson` preview. */\nconst ndjsonPreviewContent = computed((): string =>\n prettifyNdjson(jsonPreviewContent.value),\n)\n\n/**\n * Validates the `src` against an allow-list of safe protocols before it is\n * passed to a rendering element. This blocks XSS vectors such as\n * `javascript:` and `vbscript:` URIs and also prevents accidentally embedding\n * a `data:text/html` payload that could execute script in the app origin.\n *\n * Allowed:\n * - `blob:` (the standard case — generated client-side by `URL.createObjectURL`)\n * - `http:` / `https:`\n * - `data:` URIs whose MIME type is a known safe media kind\n * (`image/*`, `video/*`, `audio/*`, `application/pdf`, `application/octet-stream`)\n *\n * Anything else (including malformed or relative URLs) collapses to an empty\n * string so the template falls back to the \"Preview unavailable\" message.\n */\nconst safeSrc = computed((): string => {\n if (!src) {\n return ''\n }\n\n if (/^data:/i.test(src)) {\n // The MIME type must be one of the known safe kinds AND be terminated by\n // `;` (parameters / `;base64`) or `,` (start of the payload). Anchoring\n // at the terminator prevents prefix-matching tricks like\n // `data:image/png-but-actually-html,…`.\n return /^data:(?:(?:image|video|audio)\\/[a-z0-9.+-]+|application\\/pdf|application\\/octet-stream)[;,]/i.test(\n src,\n )\n ? src\n : ''\n }\n\n try {\n const parsed = new URL(src)\n if (\n parsed.protocol === 'blob:' ||\n parsed.protocol === 'http:' ||\n parsed.protocol === 'https:'\n ) {\n return src\n }\n } catch {\n // Malformed or relative URL — refuse to render.\n }\n\n return ''\n})\n\nconst error = ref(false)\n\n/**\n * Whether the embedded document is a PDF.\n *\n * PDFs are rendered by the browser's own PDF engine (e.g. PDFium), which runs\n * in an isolated context that cannot reach this app's origin — its DOM,\n * cookies or storage. A PDF's embedded JavaScript therefore cannot be used to\n * attack us, and a strict `sandbox=\"\"` does not confine that engine; it only\n * prevents Chromium from loading the PDF viewer at all (it boots as a scripted\n * extension page), leaving the user with a blank frame. So PDFs are rendered\n * without the `sandbox` attribute, matching the original `<object>` behaviour.\n *\n * Everything else that reaches the iframe (notably `text/html`, the genuine\n * XSS vector) keeps the strict empty sandbox.\n */\nconst isPdf = computed(\n (): boolean => type.trim().toLowerCase() === 'application/pdf',\n)\n\nwatch(\n () => src,\n () => (error.value = false),\n)\n</script>\n<template>\n <ResponseBodyRaw\n v-if=\"mode === 'json'\"\n :content=\"jsonPreviewContent\"\n language=\"json\"\n prettyPrintJson />\n <ResponseBodyRaw\n v-else-if=\"mode === 'ndjson'\"\n :content=\"ndjsonPreviewContent\"\n language=\"json\" />\n <div\n v-else-if=\"!error && safeSrc\"\n class=\"flex justify-center overflow-auto rounded-b\"\n :class=\"{ 'bg-preview p-2': alpha }\">\n <img\n v-if=\"mode === 'image'\"\n class=\"h-full max-w-full\"\n :class=\"{ rounded: alpha }\"\n referrerpolicy=\"no-referrer\"\n :src=\"safeSrc\"\n @error=\"error = true\" />\n <video\n v-else-if=\"mode === 'video'\"\n autoplay\n controls\n referrerpolicy=\"no-referrer\"\n width=\"100%\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </video>\n <audio\n v-else-if=\"mode === 'audio'\"\n class=\"my-12\"\n controls\n referrerpolicy=\"no-referrer\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </audio>\n <!--\n `<object>` would execute scripts inside the embedded document in the\n app's origin, so we render arbitrary previews inside an `<iframe>`\n instead. Non-PDF documents (notably `text/html`) get an empty `sandbox`\n attribute, which disables scripts, forms, popups and same-origin access.\n PDFs are exempted (see `isPdf` above): the empty sandbox does not confine\n the browser's PDF engine, it only stops the viewer from loading at all.\n\n Note: an `error` event on `<iframe>` is not reliably fired for failed\n navigations — browsers usually fire `load` even when the response is\n blank or an error page, and a cross-origin sandboxed frame cannot be\n introspected from JavaScript. There is therefore no useful runtime\n fallback for an unreachable URL; the URL allow-list above is what\n keeps unsafe content out in the first place.\n -->\n <iframe\n v-else\n class=\"aspect-[4/3] w-full border-0\"\n referrerpolicy=\"no-referrer\"\n :sandbox=\"isPdf ? undefined : ''\"\n :src=\"safeSrc\" />\n </div>\n <ResponseBodyInfo v-else>\n {{ translate('apiClient.responseBodyPreview.previewUnavailable') }}\n </ResponseBodyInfo>\n</template>\n<style scoped>\n.light-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n.dark-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyPreview.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyPreview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nimport { type MediaPreview } from '@/v2/blocks/response-block/helpers/media-types'\nimport { prettifyNdjson } from '@/v2/blocks/response-block/helpers/prettify-ndjson'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\n\nconst {\n src,\n type,\n mode,\n alpha = false,\n content,\n} = defineProps<{\n src: string\n type: string\n mode: MediaPreview\n alpha?: boolean | undefined\n /** Decoded body; used when `mode` is `json` for pretty-printed preview (no JSON.parse round-trip). */\n content?: unknown\n}>()\n\nconst { translate } = useLocalization()\n\nconst jsonPreviewContent = computed((): string => {\n const value = content\n if (typeof value === 'string') {\n return value\n }\n if (value == null) {\n return ''\n }\n return String(value)\n})\n\n/** NDJSON pretty-printed one record per block for the `ndjson` preview. */\nconst ndjsonPreviewContent = computed((): string =>\n prettifyNdjson(jsonPreviewContent.value),\n)\n\n/**\n * Validates the `src` against an allow-list of safe protocols before it is\n * passed to a rendering element. This blocks XSS vectors such as\n * `javascript:` and `vbscript:` URIs and also prevents accidentally embedding\n * a `data:text/html` payload that could execute script in the app origin.\n *\n * Allowed:\n * - `blob:` (the standard case — generated client-side by `URL.createObjectURL`)\n * - `http:` / `https:`\n * - `data:` URIs whose MIME type is a known safe media kind\n * (`image/*`, `video/*`, `audio/*`, `application/pdf`, `application/octet-stream`)\n *\n * Anything else (including malformed or relative URLs) collapses to an empty\n * string so the template falls back to the \"Preview unavailable\" message.\n */\nconst safeSrc = computed((): string => {\n if (!src) {\n return ''\n }\n\n if (/^data:/i.test(src)) {\n // The MIME type must be one of the known safe kinds AND be terminated by\n // `;` (parameters / `;base64`) or `,` (start of the payload). Anchoring\n // at the terminator prevents prefix-matching tricks like\n // `data:image/png-but-actually-html,…`.\n return /^data:(?:(?:image|video|audio)\\/[a-z0-9.+-]+|application\\/pdf|application\\/octet-stream)[;,]/i.test(\n src,\n )\n ? src\n : ''\n }\n\n try {\n const parsed = new URL(src)\n if (\n parsed.protocol === 'blob:' ||\n parsed.protocol === 'http:' ||\n parsed.protocol === 'https:'\n ) {\n return src\n }\n } catch {\n // Malformed or relative URL — refuse to render.\n }\n\n return ''\n})\n\nconst error = ref(false)\n\n/**\n * Whether the embedded document is a PDF.\n *\n * PDFs are rendered by the browser's own PDF engine (e.g. PDFium), which runs\n * in an isolated context that cannot reach this app's origin — its DOM,\n * cookies or storage. A PDF's embedded JavaScript therefore cannot be used to\n * attack us, and a strict `sandbox=\"\"` does not confine that engine; it only\n * prevents Chromium from loading the PDF viewer at all (it boots as a scripted\n * extension page), leaving the user with a blank frame. So PDFs are rendered\n * without the `sandbox` attribute, matching the original `<object>` behaviour.\n *\n * Everything else that reaches the iframe (notably `text/html`, the genuine\n * XSS vector) keeps the strict empty sandbox.\n */\nconst isPdf = computed(\n (): boolean => type.trim().toLowerCase() === 'application/pdf',\n)\n\nwatch(\n () => src,\n () => (error.value = false),\n)\n</script>\n<template>\n <ResponseBodyRaw\n v-if=\"mode === 'json'\"\n :content=\"jsonPreviewContent\"\n language=\"json\"\n prettyPrintJson />\n <ResponseBodyRaw\n v-else-if=\"mode === 'ndjson'\"\n :content=\"ndjsonPreviewContent\"\n language=\"json\" />\n <div\n v-else-if=\"!error && safeSrc\"\n class=\"flex justify-center overflow-auto rounded-b\"\n :class=\"{ 'bg-preview p-2': alpha }\">\n <img\n v-if=\"mode === 'image'\"\n class=\"h-full max-w-full\"\n :class=\"{ rounded: alpha }\"\n referrerpolicy=\"no-referrer\"\n :src=\"safeSrc\"\n @error=\"error = true\" />\n <video\n v-else-if=\"mode === 'video'\"\n autoplay\n controls\n referrerpolicy=\"no-referrer\"\n width=\"100%\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </video>\n <audio\n v-else-if=\"mode === 'audio'\"\n class=\"my-12\"\n controls\n referrerpolicy=\"no-referrer\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </audio>\n <!--\n `<object>` would execute scripts inside the embedded document in the\n app's origin, so we render arbitrary previews inside an `<iframe>`\n instead. Non-PDF documents (notably `text/html`) get an empty `sandbox`\n attribute, which disables scripts, forms, popups and same-origin access.\n PDFs are exempted (see `isPdf` above): the empty sandbox does not confine\n the browser's PDF engine, it only stops the viewer from loading at all.\n\n Note: an `error` event on `<iframe>` is not reliably fired for failed\n navigations — browsers usually fire `load` even when the response is\n blank or an error page, and a cross-origin sandboxed frame cannot be\n introspected from JavaScript. There is therefore no useful runtime\n fallback for an unreachable URL; the URL allow-list above is what\n keeps unsafe content out in the first place.\n -->\n <iframe\n v-else\n class=\"aspect-[4/3] w-full border-0\"\n referrerpolicy=\"no-referrer\"\n :sandbox=\"isPdf ? undefined : ''\"\n :src=\"safeSrc\" />\n </div>\n <ResponseBodyInfo v-else>\n {{ translate('apiClient.responseBodyPreview.previewUnavailable') }}\n </ResponseBodyInfo>\n</template>\n<style scoped>\n.light-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n.dark-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n</style>\n"],"mappings":""}
@@ -125,4 +125,4 @@ var ResponseBodyPreview_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
125
125
  //#endregion
126
126
  export { ResponseBodyPreview_vue_vue_type_script_setup_true_lang_default as default };
127
127
 
128
- //# sourceMappingURL=ResponseBodyPreview.vue.script.js.map
128
+ //# sourceMappingURL=ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","ResponseBodyRaw","_createElementBlock","_normalizeClass","_createElementVNode","ResponseBodyInfo","_withCtx","_createTextVNode","_toDisplayString","_unref"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyPreview.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\n\nimport { type MediaPreview } from '@/v2/blocks/response-block/helpers/media-types'\nimport { prettifyNdjson } from '@/v2/blocks/response-block/helpers/prettify-ndjson'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyInfo from './ResponseBodyInfo.vue'\nimport ResponseBodyRaw from './ResponseBodyRaw.vue'\n\nconst {\n src,\n type,\n mode,\n alpha = false,\n content,\n} = defineProps<{\n src: string\n type: string\n mode: MediaPreview\n alpha?: boolean | undefined\n /** Decoded body; used when `mode` is `json` for pretty-printed preview (no JSON.parse round-trip). */\n content?: unknown\n}>()\n\nconst { translate } = useLocalization()\n\nconst jsonPreviewContent = computed((): string => {\n const value = content\n if (typeof value === 'string') {\n return value\n }\n if (value == null) {\n return ''\n }\n return String(value)\n})\n\n/** NDJSON pretty-printed one record per block for the `ndjson` preview. */\nconst ndjsonPreviewContent = computed((): string =>\n prettifyNdjson(jsonPreviewContent.value),\n)\n\n/**\n * Validates the `src` against an allow-list of safe protocols before it is\n * passed to a rendering element. This blocks XSS vectors such as\n * `javascript:` and `vbscript:` URIs and also prevents accidentally embedding\n * a `data:text/html` payload that could execute script in the app origin.\n *\n * Allowed:\n * - `blob:` (the standard case — generated client-side by `URL.createObjectURL`)\n * - `http:` / `https:`\n * - `data:` URIs whose MIME type is a known safe media kind\n * (`image/*`, `video/*`, `audio/*`, `application/pdf`, `application/octet-stream`)\n *\n * Anything else (including malformed or relative URLs) collapses to an empty\n * string so the template falls back to the \"Preview unavailable\" message.\n */\nconst safeSrc = computed((): string => {\n if (!src) {\n return ''\n }\n\n if (/^data:/i.test(src)) {\n // The MIME type must be one of the known safe kinds AND be terminated by\n // `;` (parameters / `;base64`) or `,` (start of the payload). Anchoring\n // at the terminator prevents prefix-matching tricks like\n // `data:image/png-but-actually-html,…`.\n return /^data:(?:(?:image|video|audio)\\/[a-z0-9.+-]+|application\\/pdf|application\\/octet-stream)[;,]/i.test(\n src,\n )\n ? src\n : ''\n }\n\n try {\n const parsed = new URL(src)\n if (\n parsed.protocol === 'blob:' ||\n parsed.protocol === 'http:' ||\n parsed.protocol === 'https:'\n ) {\n return src\n }\n } catch {\n // Malformed or relative URL — refuse to render.\n }\n\n return ''\n})\n\nconst error = ref(false)\n\n/**\n * Whether the embedded document is a PDF.\n *\n * PDFs are rendered by the browser's own PDF engine (e.g. PDFium), which runs\n * in an isolated context that cannot reach this app's origin — its DOM,\n * cookies or storage. A PDF's embedded JavaScript therefore cannot be used to\n * attack us, and a strict `sandbox=\"\"` does not confine that engine; it only\n * prevents Chromium from loading the PDF viewer at all (it boots as a scripted\n * extension page), leaving the user with a blank frame. So PDFs are rendered\n * without the `sandbox` attribute, matching the original `<object>` behaviour.\n *\n * Everything else that reaches the iframe (notably `text/html`, the genuine\n * XSS vector) keeps the strict empty sandbox.\n */\nconst isPdf = computed(\n (): boolean => type.trim().toLowerCase() === 'application/pdf',\n)\n\nwatch(\n () => src,\n () => (error.value = false),\n)\n</script>\n<template>\n <ResponseBodyRaw\n v-if=\"mode === 'json'\"\n :content=\"jsonPreviewContent\"\n language=\"json\"\n prettyPrintJson />\n <ResponseBodyRaw\n v-else-if=\"mode === 'ndjson'\"\n :content=\"ndjsonPreviewContent\"\n language=\"json\" />\n <div\n v-else-if=\"!error && safeSrc\"\n class=\"flex justify-center overflow-auto rounded-b\"\n :class=\"{ 'bg-preview p-2': alpha }\">\n <img\n v-if=\"mode === 'image'\"\n class=\"h-full max-w-full\"\n :class=\"{ rounded: alpha }\"\n referrerpolicy=\"no-referrer\"\n :src=\"safeSrc\"\n @error=\"error = true\" />\n <video\n v-else-if=\"mode === 'video'\"\n autoplay\n controls\n referrerpolicy=\"no-referrer\"\n width=\"100%\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </video>\n <audio\n v-else-if=\"mode === 'audio'\"\n class=\"my-12\"\n controls\n referrerpolicy=\"no-referrer\"\n @error=\"error = true\">\n <source\n :src=\"safeSrc\"\n :type=\"type\" />\n </audio>\n <!--\n `<object>` would execute scripts inside the embedded document in the\n app's origin, so we render arbitrary previews inside an `<iframe>`\n instead. Non-PDF documents (notably `text/html`) get an empty `sandbox`\n attribute, which disables scripts, forms, popups and same-origin access.\n PDFs are exempted (see `isPdf` above): the empty sandbox does not confine\n the browser's PDF engine, it only stops the viewer from loading at all.\n\n Note: an `error` event on `<iframe>` is not reliably fired for failed\n navigations — browsers usually fire `load` even when the response is\n blank or an error page, and a cross-origin sandboxed frame cannot be\n introspected from JavaScript. There is therefore no useful runtime\n fallback for an unreachable URL; the URL allow-list above is what\n keeps unsafe content out in the first place.\n -->\n <iframe\n v-else\n class=\"aspect-[4/3] w-full border-0\"\n referrerpolicy=\"no-referrer\"\n :sandbox=\"isPdf ? undefined : ''\"\n :src=\"safeSrc\" />\n </div>\n <ResponseBodyInfo v-else>\n {{ translate('apiClient.responseBodyPreview.previewUnavailable') }}\n </ResponseBodyInfo>\n</template>\n<style scoped>\n.light-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n.dark-mode .bg-preview {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E\");\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAyBA,MAAM,EAAE,cAAc,gBAAgB;EAEtC,MAAM,qBAAqB,eAAuB;GAChD,MAAM,QAAQ,QAAA;GACd,IAAI,OAAO,UAAU,UACnB,OAAO;GAET,IAAI,SAAS,MACX,OAAO;GAET,OAAO,OAAO,KAAK;EACrB,CAAC;;EAGD,MAAM,uBAAuB,eAC3B,eAAe,mBAAmB,KAAK,CACzC;;;;;;;;;;;;;;;;EAiBA,MAAM,UAAU,eAAuB;GACrC,IAAI,CAAC,QAAA,KACH,OAAO;GAGT,IAAI,UAAU,KAAK,QAAA,GAAG,GAKpB,OAAO,gGAAgG,KACrG,QAAA,GACF,IACI,QAAA,MACA;GAGN,IAAI;IACF,MAAM,SAAS,IAAI,IAAI,QAAA,GAAG;IAC1B,IACE,OAAO,aAAa,WACpB,OAAO,aAAa,WACpB,OAAO,aAAa,UAEpB,OAAO,QAAA;GAEX,QAAQ,CAER;GAEA,OAAO;EACT,CAAC;EAED,MAAM,QAAQ,IAAI,KAAK;;;;;;;;;;;;;;;EAgBvB,MAAM,QAAQ,eACG,QAAA,KAAK,KAAK,CAAC,CAAC,YAAY,MAAM,iBAC/C;EAEA,YACQ,QAAA,WACC,MAAM,QAAQ,KACvB;;GAIU,OAAA,QAAA,SAAI,UADZA,UAAA,GAAAC,YAIoBC,yBAAA;;IAFjB,SAAS,mBAAA;IACV,UAAS;IACT,iBAAA;G,4BAEW,QAAA,SAAI,YADjBF,UAAA,GAAAC,YAGoBC,yBAAA;;IADjB,SAAS,qBAAA;IACV,UAAS;G,4BAEG,CAAA,MAAA,SAAS,QAAA,SADvBF,UAAA,GAAAG,mBAqDM,OAAA;;IAnDJ,OAAKC,eAAA,CAAC,+CAA6C,EAAA,kBACvB,QAAA,MAAK,CAAA,CAAA;G,IAEzB,QAAA,SAAI,WADZJ,UAAA,GAAAG,mBAM0B,OAAA;;IAJxB,OAAKC,eAAA,CAAC,qBAAmB,EAAA,SACN,QAAA,MAAK,CAAA,CAAA;IACxB,gBAAe;IACd,KAAK,QAAA;IACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,QAAK;G,4BAEF,QAAA,SAAI,WADjBJ,UAAA,GAAAG,mBAUQ,SAAA;;IARN,UAAA;IACA,UAAA;IACA,gBAAe;IACf,OAAM;IACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,QAAK;G,IACbE,mBAEiB,UAAA;IADd,KAAK,QAAA;IACL,MAAM,QAAA;G,iCAGE,QAAA,SAAI,WADjBL,UAAA,GAAAG,mBASQ,SAAA;;IAPN,OAAM;IACN,UAAA;IACA,gBAAe;IACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,QAAK;G,IACbE,mBAEiB,UAAA;IADd,KAAK,QAAA;IACL,MAAM,QAAA;G,kCAiBXL,UAAA,GAAAG,mBAKmB,UAAA;;IAHjB,OAAM;IACN,gBAAe;IACd,SAAS,MAAA,QAAQ,KAAA,IAAS;IAC1B,KAAK,QAAA;G,kCAEVH,UAAA,GAAAC,YAEmBK,0BAAA,EAAA,KAAA,EAAA,GAAA;IADjB,SAAAC,cAAmE,CAAhEC,gBAAAC,gBAAAC,MAAA,SAAA,CAAS,CAAA,kDAAA,CAAA,GAAA,CAAA,C"}
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
- import ResponseBodyRaw_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyRaw.vue.script.js";
3
- /* empty css */
2
+ import ResponseBodyRaw_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/v2/blocks/response-block/components/ResponseBodyRaw.vue
5
5
  var ResponseBodyRaw_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ResponseBodyRaw_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-973d48ca"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyRaw.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyRaw.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarCodeBlockCopy } from '@scalar/components/code-block'\nimport { ScalarIconButton } from '@scalar/components/icon-button'\nimport { ScalarIconArrowElbowDownLeft } from '@scalar/icons'\nimport {\n EditorView,\n useCodeMirror,\n type CodeMirrorLanguage,\n} from '@scalar/use-codemirror'\nimport { computed, ref, toRef, useId } from 'vue'\n\nimport { prettifyJsoncString } from '@/v2/blocks/response-block/helpers/prettify-jsonc-string'\n\nconst props = defineProps<{\n content: unknown\n language: CodeMirrorLanguage | undefined\n /** When true, JSON/JSONC strings are pretty-printed for the Preview tab (wire bytes stay unchanged in Raw). */\n prettyPrintJson?: boolean\n}>()\n\nconst codeMirrorRef = ref<HTMLDivElement | null>(null)\n/** Base id for the code block */\nconst id = useId()\n\nconst isLineWrapping = ref(false)\n\nconst displayContent = computed((): string => {\n const { content, language, prettyPrintJson = false } = props\n if (typeof content !== 'string') {\n if (content == null) {\n return ''\n }\n return String(content)\n }\n if (prettyPrintJson && language === 'json') {\n return prettifyJsoncString(content)\n }\n return content\n})\n\nconst extensions = computed(() =>\n isLineWrapping.value ? [EditorView.lineWrapping] : [],\n)\n\nconst { codeMirror } = useCodeMirror({\n codeMirrorRef,\n readOnly: true,\n lineNumbers: true,\n content: toRef(displayContent),\n language: toRef(() => props.language),\n forceFoldGutter: true,\n extensions,\n})\n\n// Function to get current content\nconst getCurrentContent = () => {\n return codeMirror.value?.state.doc.toString() || ''\n}\n\nconst toggleLineWrapping = (): void => {\n isLineWrapping.value = !isLineWrapping.value\n}\n</script>\n<template>\n <div\n class=\"scalar-code-block group/code-block relative grid min-h-0 overflow-hidden p-px outline-none has-focus-visible:outline\"\n data-testid=\"response-body-raw\">\n <div\n class=\"custom-scroll relative pr-1\"\n tabindex=\"0\">\n <!-- CodeMirror container -->\n <div ref=\"codeMirrorRef\" />\n </div>\n <!-- Action buttons -->\n <div\n v-if=\"getCurrentContent()\"\n class=\"absolute top-2 right-2 flex items-center gap-1.5 opacity-0 transition-opacity duration-150 group-hover/code-block:opacity-100 group-has-focus-visible/code-block:opacity-100\">\n <ScalarIconButton\n :aria-label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n :aria-pressed=\"isLineWrapping\"\n class=\"bg-b-2 text-c-2 hover:text-c-1 absolute right-18\"\n :icon=\"ScalarIconArrowElbowDownLeft\"\n :label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n size=\"sm\"\n tooltip\n variant=\"ghost\"\n @click=\"toggleLineWrapping\" />\n <ScalarCodeBlockCopy\n :aria-controls=\"id\"\n :content=\"getCurrentContent()\" />\n </div>\n </div>\n</template>\n<style scoped>\n:deep(.cm-editor) {\n background-color: transparent;\n font-size: var(--scalar-small);\n outline: none;\n}\n\n:deep(.cm-gutters) {\n background-color: var(--scalar-background-1);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n}\n\n:deep(.cm-scroller) {\n overflow: auto;\n min-width: 100%;\n}\n\n:deep(.cm-lineWrapping .cm-line) {\n word-break: break-all;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyRaw.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyRaw.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarCodeBlockCopy } from '@scalar/components/code-block'\nimport { ScalarIconButton } from '@scalar/components/icon-button'\nimport { ScalarIconArrowElbowDownLeft } from '@scalar/icons'\nimport {\n EditorView,\n useCodeMirror,\n type CodeMirrorLanguage,\n} from '@scalar/use-codemirror'\nimport { computed, ref, toRef, useId } from 'vue'\n\nimport { prettifyJsoncString } from '@/v2/blocks/response-block/helpers/prettify-jsonc-string'\n\nconst props = defineProps<{\n content: unknown\n language: CodeMirrorLanguage | undefined\n /** When true, JSON/JSONC strings are pretty-printed for the Preview tab (wire bytes stay unchanged in Raw). */\n prettyPrintJson?: boolean\n}>()\n\nconst codeMirrorRef = ref<HTMLDivElement | null>(null)\n/** Base id for the code block */\nconst id = useId()\n\nconst isLineWrapping = ref(false)\n\nconst displayContent = computed((): string => {\n const { content, language, prettyPrintJson = false } = props\n if (typeof content !== 'string') {\n if (content == null) {\n return ''\n }\n return String(content)\n }\n if (prettyPrintJson && language === 'json') {\n return prettifyJsoncString(content)\n }\n return content\n})\n\nconst extensions = computed(() =>\n isLineWrapping.value ? [EditorView.lineWrapping] : [],\n)\n\nconst { codeMirror } = useCodeMirror({\n codeMirrorRef,\n readOnly: true,\n lineNumbers: true,\n content: toRef(displayContent),\n language: toRef(() => props.language),\n forceFoldGutter: true,\n extensions,\n})\n\n// Function to get current content\nconst getCurrentContent = () => {\n return codeMirror.value?.state.doc.toString() || ''\n}\n\nconst toggleLineWrapping = (): void => {\n isLineWrapping.value = !isLineWrapping.value\n}\n</script>\n<template>\n <div\n class=\"scalar-code-block group/code-block relative grid min-h-0 overflow-hidden p-px outline-none has-focus-visible:outline\"\n data-testid=\"response-body-raw\">\n <div\n class=\"custom-scroll relative pr-1\"\n tabindex=\"0\">\n <!-- CodeMirror container -->\n <div ref=\"codeMirrorRef\" />\n </div>\n <!-- Action buttons -->\n <div\n v-if=\"getCurrentContent()\"\n class=\"absolute top-2 right-2 flex items-center gap-1.5 opacity-0 transition-opacity duration-150 group-hover/code-block:opacity-100 group-has-focus-visible/code-block:opacity-100\">\n <ScalarIconButton\n :aria-label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n :aria-pressed=\"isLineWrapping\"\n class=\"bg-b-2 text-c-2 hover:text-c-1 absolute right-18\"\n :icon=\"ScalarIconArrowElbowDownLeft\"\n :label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n size=\"sm\"\n tooltip\n variant=\"ghost\"\n @click=\"toggleLineWrapping\" />\n <ScalarCodeBlockCopy\n :aria-controls=\"id\"\n :content=\"getCurrentContent()\" />\n </div>\n </div>\n</template>\n<style scoped>\n:deep(.cm-editor) {\n background-color: transparent;\n font-size: var(--scalar-small);\n outline: none;\n}\n\n:deep(.cm-gutters) {\n background-color: var(--scalar-background-1);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n}\n\n:deep(.cm-scroller) {\n overflow: auto;\n min-width: 100%;\n}\n\n:deep(.cm-lineWrapping .cm-line) {\n word-break: break-all;\n}\n</style>\n"],"mappings":""}
@@ -84,4 +84,4 @@ var ResponseBodyRaw_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
84
84
  //#endregion
85
85
  export { ResponseBodyRaw_vue_vue_type_script_setup_true_lang_default as default };
86
86
 
87
- //# sourceMappingURL=ResponseBodyRaw.vue.script.js.map
87
+ //# sourceMappingURL=ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createElementVNode","_createVNode","_unref","_createCommentVNode"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyRaw.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarCodeBlockCopy } from '@scalar/components/code-block'\nimport { ScalarIconButton } from '@scalar/components/icon-button'\nimport { ScalarIconArrowElbowDownLeft } from '@scalar/icons'\nimport {\n EditorView,\n useCodeMirror,\n type CodeMirrorLanguage,\n} from '@scalar/use-codemirror'\nimport { computed, ref, toRef, useId } from 'vue'\n\nimport { prettifyJsoncString } from '@/v2/blocks/response-block/helpers/prettify-jsonc-string'\n\nconst props = defineProps<{\n content: unknown\n language: CodeMirrorLanguage | undefined\n /** When true, JSON/JSONC strings are pretty-printed for the Preview tab (wire bytes stay unchanged in Raw). */\n prettyPrintJson?: boolean\n}>()\n\nconst codeMirrorRef = ref<HTMLDivElement | null>(null)\n/** Base id for the code block */\nconst id = useId()\n\nconst isLineWrapping = ref(false)\n\nconst displayContent = computed((): string => {\n const { content, language, prettyPrintJson = false } = props\n if (typeof content !== 'string') {\n if (content == null) {\n return ''\n }\n return String(content)\n }\n if (prettyPrintJson && language === 'json') {\n return prettifyJsoncString(content)\n }\n return content\n})\n\nconst extensions = computed(() =>\n isLineWrapping.value ? [EditorView.lineWrapping] : [],\n)\n\nconst { codeMirror } = useCodeMirror({\n codeMirrorRef,\n readOnly: true,\n lineNumbers: true,\n content: toRef(displayContent),\n language: toRef(() => props.language),\n forceFoldGutter: true,\n extensions,\n})\n\n// Function to get current content\nconst getCurrentContent = () => {\n return codeMirror.value?.state.doc.toString() || ''\n}\n\nconst toggleLineWrapping = (): void => {\n isLineWrapping.value = !isLineWrapping.value\n}\n</script>\n<template>\n <div\n class=\"scalar-code-block group/code-block relative grid min-h-0 overflow-hidden p-px outline-none has-focus-visible:outline\"\n data-testid=\"response-body-raw\">\n <div\n class=\"custom-scroll relative pr-1\"\n tabindex=\"0\">\n <!-- CodeMirror container -->\n <div ref=\"codeMirrorRef\" />\n </div>\n <!-- Action buttons -->\n <div\n v-if=\"getCurrentContent()\"\n class=\"absolute top-2 right-2 flex items-center gap-1.5 opacity-0 transition-opacity duration-150 group-hover/code-block:opacity-100 group-has-focus-visible/code-block:opacity-100\">\n <ScalarIconButton\n :aria-label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n :aria-pressed=\"isLineWrapping\"\n class=\"bg-b-2 text-c-2 hover:text-c-1 absolute right-18\"\n :icon=\"ScalarIconArrowElbowDownLeft\"\n :label=\"isLineWrapping ? 'Disable line wrap' : 'Wrap lines'\"\n size=\"sm\"\n tooltip\n variant=\"ghost\"\n @click=\"toggleLineWrapping\" />\n <ScalarCodeBlockCopy\n :aria-controls=\"id\"\n :content=\"getCurrentContent()\" />\n </div>\n </div>\n</template>\n<style scoped>\n:deep(.cm-editor) {\n background-color: transparent;\n font-size: var(--scalar-small);\n outline: none;\n}\n\n:deep(.cm-gutters) {\n background-color: var(--scalar-background-1);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n}\n\n:deep(.cm-scroller) {\n overflow: auto;\n min-width: 100%;\n}\n\n:deep(.cm-lineWrapping .cm-line) {\n word-break: break-all;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAaA,MAAM,QAAQ;EAOd,MAAM,gBAAgB,IAA2B,IAAI;;EAErD,MAAM,KAAK,MAAM;EAEjB,MAAM,iBAAiB,IAAI,KAAK;EAEhC,MAAM,iBAAiB,eAAuB;GAC5C,MAAM,EAAE,SAAS,UAAU,kBAAkB,UAAU;GACvD,IAAI,OAAO,YAAY,UAAU;IAC/B,IAAI,WAAW,MACb,OAAO;IAET,OAAO,OAAO,OAAO;GACvB;GACA,IAAI,mBAAmB,aAAa,QAClC,OAAO,oBAAoB,OAAO;GAEpC,OAAO;EACT,CAAC;EAED,MAAM,aAAa,eACjB,eAAe,QAAQ,CAAC,WAAW,YAAY,IAAI,CAAC,CACtD;EAEA,MAAM,EAAE,eAAe,cAAc;GACnC;GACA,UAAU;GACV,aAAa;GACb,SAAS,MAAM,cAAc;GAC7B,UAAU,YAAY,MAAM,QAAQ;GACpC,iBAAiB;GACjB;EACF,CAAC;EAGD,MAAM,0BAA0B;GAC9B,OAAO,WAAW,OAAO,MAAM,IAAI,SAAS,KAAK;EACnD;EAEA,MAAM,2BAAiC;GACrC,eAAe,QAAQ,CAAC,eAAe;EACzC;;GAGE,OAAAA,UAAA,GAAAC,mBA2BM,OA3BN,YA2BM,CAxBJC,mBAKM,OALN,YAKM,CADJA,mBAA2B,OAAA;IAAlB,SAAA;IAAJ,KAAI;G,iBAIH,kBAAiB,KADzBF,UAAA,GAAAC,mBAgBM,OAhBN,YAgBM,CAbJE,YASgCC,MAAA,gBAAA,GAAA;IAR7B,cAAY,eAAA,QAAc,sBAAA;IAC1B,gBAAc,eAAA;IACf,OAAM;IACL,MAAMA,MAAA,4BAAA;IACN,OAAO,eAAA,QAAc,sBAAA;IACtB,MAAK;IACL,SAAA;IACA,SAAQ;IACP,SAAO;;;;;;G,IACVD,YAEmCC,MAAA,mBAAA,GAAA;IADhC,iBAAeA,MAAA,EAAA;IACf,SAAS,kBAAiB"}
@@ -1,4 +1,4 @@
1
- import ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyStreaming.vue.script.js";
1
+ import ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyStreaming.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/v2/blocks/response-block/components/ResponseBodyStreaming.vue
3
3
  var ResponseBodyStreaming_default = ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyStreaming.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyStreaming.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarLoading, useLoadingState } from '@scalar/components/loading'\nimport { formatBytes } from '@scalar/helpers/formatters/format-bytes'\nimport { getUtf8ByteLength } from '@scalar/helpers/string/get-utf8-byte-length'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { nextTick, onBeforeUnmount, ref, watch } from 'vue'\n\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport { createResponseStreamParser } from '../helpers/response-stream'\n\nconst { reader, contentType = 'text/event-stream' } = defineProps<{\n reader: ReadableStreamDefaultReader<Uint8Array>\n contentType?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst loader = useLoadingState()\nconst textContent = ref('')\nconst receivedBytes = ref(0)\nconst { copyToClipboard } = useClipboard()\nlet downloadUrl: string | undefined\n\nconst clearDownload = (): void => {\n if (downloadUrl) {\n URL.revokeObjectURL(downloadUrl)\n downloadUrl = undefined\n }\n}\n\n/** Export only the bounded displayed transcript, without retaining another raw body. */\nconst downloadText = (): void => {\n clearDownload()\n downloadUrl = URL.createObjectURL(\n new Blob([textContent.value], { type: 'text/plain;charset=utf-8' }),\n )\n const link = document.createElement('a')\n link.href = downloadUrl\n link.download = 'response-stream.txt'\n link.click()\n}\nconst errorRef = ref<Error | null>(null)\nconst contentContainer = ref<HTMLElement | null>(null)\nlet currentReader: ReadableStreamDefaultReader<Uint8Array> | null = null\n\n/** Bound the text retained by a connection that can stay open indefinitely. */\nconst MAX_DISPLAY_SIZE = 16 * 1024 * 1024\n\nwatch(textContent, async () => {\n await nextTick()\n if (contentContainer.value) {\n contentContainer.value.scrollTop = contentContainer.value.scrollHeight\n }\n})\n\nconst cancelReader = (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): void => {\n void Promise.resolve(streamReader.cancel()).catch(() => {\n // A failed or disconnected stream can already be closed when the user cancels.\n })\n}\n\nconst readStream = async (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): Promise<void> => {\n try {\n let displayedBytes = 0\n const parser = createResponseStreamParser(contentType, (text) => {\n displayedBytes += getUtf8ByteLength(text)\n if (displayedBytes > MAX_DISPLAY_SIZE) {\n throw new Error(\n 'Stream display reached its 16 MiB limit. Cancelled further reading.',\n )\n }\n textContent.value += text\n })\n while (currentReader === streamReader) {\n const { done, value } = await streamReader.read()\n if (currentReader !== streamReader) {\n return\n }\n if (done) {\n parser.finish()\n void loader.clear()\n return\n }\n receivedBytes.value += value.byteLength\n parser.push(value)\n }\n } catch (error) {\n if (currentReader === streamReader) {\n console.error('Error reading stream:', error)\n errorRef.value = error instanceof Error ? error : new Error(String(error))\n cancelReader(streamReader)\n void loader.clear()\n }\n } finally {\n streamReader.releaseLock()\n }\n}\n\nconst stopStreaming = (): void => {\n const previous = currentReader\n currentReader = null\n if (previous) {\n cancelReader(previous)\n }\n void loader.clear()\n}\n\nconst startStreaming = (): void => {\n stopStreaming()\n currentReader = reader\n loader.start()\n clearDownload()\n receivedBytes.value = 0\n textContent.value = ''\n errorRef.value = null\n void readStream(reader)\n}\n\nwatch(() => reader, startStreaming, { immediate: true })\nonBeforeUnmount(() => {\n stopStreaming()\n clearDownload()\n})\n</script>\n\n<template>\n <CollapsibleSection class=\"max-h-content overflow-y-hidden\">\n <template #title>\n <div class=\"flex w-full items-center justify-between\">\n <div>\n {{ translate('apiClient.responseBodyStreaming.body') }}\n <span class=\"text-c-2 ml-2 text-xs\">\n {{ formatBytes(receivedBytes) }} received\n </span>\n </div>\n <div\n v-if=\"loader.isLoading\"\n class=\"mr-2 flex items-center gap-2\">\n <ScalarLoading\n :loadingState=\"loader\"\n size=\"xs\" />\n <span class=\"text-c-2\">{{\n translate('apiClient.responseBodyStreaming.listening')\n }}</span>\n </div>\n </div>\n </template>\n <template #actions>\n <ScalarButton\n v-if=\"loader.isLoading\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"stopStreaming\">\n {{ translate('apiClient.responseBodyStreaming.cancel') }}\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"copyToClipboard(textContent)\">\n Copy text\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"downloadText\">\n Download text\n </ScalarButton>\n </template>\n\n <div\n ref=\"contentContainer\"\n class=\"text-xxs font-code h-full overflow-auto leading-6 whitespace-pre-wrap\">\n <template v-if=\"errorRef\">\n <div class=\"text-red bg-b-danger sticky top-0 border-b p-2\">\n {{ errorRef.message }}\n </div>\n </template>\n <template v-if=\"textContent\">\n <div class=\"p-2\">\n {{ textContent }}\n </div>\n </template>\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyStreaming.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyStreaming.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarLoading, useLoadingState } from '@scalar/components/loading'\nimport { formatBytes } from '@scalar/helpers/formatters/format-bytes'\nimport { getUtf8ByteLength } from '@scalar/helpers/string/get-utf8-byte-length'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { nextTick, onBeforeUnmount, ref, watch } from 'vue'\n\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport { createResponseStreamParser } from '../helpers/response-stream'\n\nconst { reader, contentType = 'text/event-stream' } = defineProps<{\n reader: ReadableStreamDefaultReader<Uint8Array>\n contentType?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst loader = useLoadingState()\nconst textContent = ref('')\nconst receivedBytes = ref(0)\nconst { copyToClipboard } = useClipboard()\nlet downloadUrl: string | undefined\n\nconst clearDownload = (): void => {\n if (downloadUrl) {\n URL.revokeObjectURL(downloadUrl)\n downloadUrl = undefined\n }\n}\n\n/** Export only the bounded displayed transcript, without retaining another raw body. */\nconst downloadText = (): void => {\n clearDownload()\n downloadUrl = URL.createObjectURL(\n new Blob([textContent.value], { type: 'text/plain;charset=utf-8' }),\n )\n const link = document.createElement('a')\n link.href = downloadUrl\n link.download = 'response-stream.txt'\n link.click()\n}\nconst errorRef = ref<Error | null>(null)\nconst contentContainer = ref<HTMLElement | null>(null)\nlet currentReader: ReadableStreamDefaultReader<Uint8Array> | null = null\n\n/** Bound the text retained by a connection that can stay open indefinitely. */\nconst MAX_DISPLAY_SIZE = 16 * 1024 * 1024\n\nwatch(textContent, async () => {\n await nextTick()\n if (contentContainer.value) {\n contentContainer.value.scrollTop = contentContainer.value.scrollHeight\n }\n})\n\nconst cancelReader = (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): void => {\n void Promise.resolve(streamReader.cancel()).catch(() => {\n // A failed or disconnected stream can already be closed when the user cancels.\n })\n}\n\nconst readStream = async (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): Promise<void> => {\n try {\n let displayedBytes = 0\n const parser = createResponseStreamParser(contentType, (text) => {\n displayedBytes += getUtf8ByteLength(text)\n if (displayedBytes > MAX_DISPLAY_SIZE) {\n throw new Error(\n 'Stream display reached its 16 MiB limit. Cancelled further reading.',\n )\n }\n textContent.value += text\n })\n while (currentReader === streamReader) {\n const { done, value } = await streamReader.read()\n if (currentReader !== streamReader) {\n return\n }\n if (done) {\n parser.finish()\n void loader.clear()\n return\n }\n receivedBytes.value += value.byteLength\n parser.push(value)\n }\n } catch (error) {\n if (currentReader === streamReader) {\n console.error('Error reading stream:', error)\n errorRef.value = error instanceof Error ? error : new Error(String(error))\n cancelReader(streamReader)\n void loader.clear()\n }\n } finally {\n streamReader.releaseLock()\n }\n}\n\nconst stopStreaming = (): void => {\n const previous = currentReader\n currentReader = null\n if (previous) {\n cancelReader(previous)\n }\n void loader.clear()\n}\n\nconst startStreaming = (): void => {\n stopStreaming()\n currentReader = reader\n loader.start()\n clearDownload()\n receivedBytes.value = 0\n textContent.value = ''\n errorRef.value = null\n void readStream(reader)\n}\n\nwatch(() => reader, startStreaming, { immediate: true })\nonBeforeUnmount(() => {\n stopStreaming()\n clearDownload()\n})\n</script>\n\n<template>\n <CollapsibleSection class=\"max-h-content overflow-y-hidden\">\n <template #title>\n <div class=\"flex w-full items-center justify-between\">\n <div>\n {{ translate('apiClient.responseBodyStreaming.body') }}\n <span class=\"text-c-2 ml-2 text-xs\">\n {{ formatBytes(receivedBytes) }} received\n </span>\n </div>\n <div\n v-if=\"loader.isLoading\"\n class=\"mr-2 flex items-center gap-2\">\n <ScalarLoading\n :loadingState=\"loader\"\n size=\"xs\" />\n <span class=\"text-c-2\">{{\n translate('apiClient.responseBodyStreaming.listening')\n }}</span>\n </div>\n </div>\n </template>\n <template #actions>\n <ScalarButton\n v-if=\"loader.isLoading\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"stopStreaming\">\n {{ translate('apiClient.responseBodyStreaming.cancel') }}\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"copyToClipboard(textContent)\">\n Copy text\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"downloadText\">\n Download text\n </ScalarButton>\n </template>\n\n <div\n ref=\"contentContainer\"\n class=\"text-xxs font-code h-full overflow-auto leading-6 whitespace-pre-wrap\">\n <template v-if=\"errorRef\">\n <div class=\"text-red bg-b-danger sticky top-0 border-b p-2\">\n {{ errorRef.message }}\n </div>\n </template>\n <template v-if=\"textContent\">\n <div class=\"p-2\">\n {{ textContent }}\n </div>\n </template>\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":""}
@@ -23,7 +23,7 @@ var _hoisted_6 = {
23
23
  key: 1,
24
24
  class: "p-2"
25
25
  };
26
- var MAX_DISPLAY_SIZE = 16 * 1024 * 1024;
26
+ var MAX_DISPLAY_SIZE = 16777216;
27
27
  var ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
28
28
  __name: "ResponseBodyStreaming",
29
29
  props: {
@@ -162,4 +162,4 @@ var ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default = /*@__PUR
162
162
  //#endregion
163
163
  export { ResponseBodyStreaming_vue_vue_type_script_setup_true_lang_default as default };
164
164
 
165
- //# sourceMappingURL=ResponseBodyStreaming.vue.script.js.map
165
+ //# sourceMappingURL=ResponseBodyStreaming.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyStreaming.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","CollapsibleSection","_withCtx","_createElementVNode","_createTextVNode","_toDisplayString","_createElementBlock","_createVNode","_createCommentVNode"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyStreaming.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarLoading, useLoadingState } from '@scalar/components/loading'\nimport { formatBytes } from '@scalar/helpers/formatters/format-bytes'\nimport { getUtf8ByteLength } from '@scalar/helpers/string/get-utf8-byte-length'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { nextTick, onBeforeUnmount, ref, watch } from 'vue'\n\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport { createResponseStreamParser } from '../helpers/response-stream'\n\nconst { reader, contentType = 'text/event-stream' } = defineProps<{\n reader: ReadableStreamDefaultReader<Uint8Array>\n contentType?: string\n}>()\n\nconst { translate } = useLocalization()\n\nconst loader = useLoadingState()\nconst textContent = ref('')\nconst receivedBytes = ref(0)\nconst { copyToClipboard } = useClipboard()\nlet downloadUrl: string | undefined\n\nconst clearDownload = (): void => {\n if (downloadUrl) {\n URL.revokeObjectURL(downloadUrl)\n downloadUrl = undefined\n }\n}\n\n/** Export only the bounded displayed transcript, without retaining another raw body. */\nconst downloadText = (): void => {\n clearDownload()\n downloadUrl = URL.createObjectURL(\n new Blob([textContent.value], { type: 'text/plain;charset=utf-8' }),\n )\n const link = document.createElement('a')\n link.href = downloadUrl\n link.download = 'response-stream.txt'\n link.click()\n}\nconst errorRef = ref<Error | null>(null)\nconst contentContainer = ref<HTMLElement | null>(null)\nlet currentReader: ReadableStreamDefaultReader<Uint8Array> | null = null\n\n/** Bound the text retained by a connection that can stay open indefinitely. */\nconst MAX_DISPLAY_SIZE = 16 * 1024 * 1024\n\nwatch(textContent, async () => {\n await nextTick()\n if (contentContainer.value) {\n contentContainer.value.scrollTop = contentContainer.value.scrollHeight\n }\n})\n\nconst cancelReader = (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): void => {\n void Promise.resolve(streamReader.cancel()).catch(() => {\n // A failed or disconnected stream can already be closed when the user cancels.\n })\n}\n\nconst readStream = async (\n streamReader: ReadableStreamDefaultReader<Uint8Array>,\n): Promise<void> => {\n try {\n let displayedBytes = 0\n const parser = createResponseStreamParser(contentType, (text) => {\n displayedBytes += getUtf8ByteLength(text)\n if (displayedBytes > MAX_DISPLAY_SIZE) {\n throw new Error(\n 'Stream display reached its 16 MiB limit. Cancelled further reading.',\n )\n }\n textContent.value += text\n })\n while (currentReader === streamReader) {\n const { done, value } = await streamReader.read()\n if (currentReader !== streamReader) {\n return\n }\n if (done) {\n parser.finish()\n void loader.clear()\n return\n }\n receivedBytes.value += value.byteLength\n parser.push(value)\n }\n } catch (error) {\n if (currentReader === streamReader) {\n console.error('Error reading stream:', error)\n errorRef.value = error instanceof Error ? error : new Error(String(error))\n cancelReader(streamReader)\n void loader.clear()\n }\n } finally {\n streamReader.releaseLock()\n }\n}\n\nconst stopStreaming = (): void => {\n const previous = currentReader\n currentReader = null\n if (previous) {\n cancelReader(previous)\n }\n void loader.clear()\n}\n\nconst startStreaming = (): void => {\n stopStreaming()\n currentReader = reader\n loader.start()\n clearDownload()\n receivedBytes.value = 0\n textContent.value = ''\n errorRef.value = null\n void readStream(reader)\n}\n\nwatch(() => reader, startStreaming, { immediate: true })\nonBeforeUnmount(() => {\n stopStreaming()\n clearDownload()\n})\n</script>\n\n<template>\n <CollapsibleSection class=\"max-h-content overflow-y-hidden\">\n <template #title>\n <div class=\"flex w-full items-center justify-between\">\n <div>\n {{ translate('apiClient.responseBodyStreaming.body') }}\n <span class=\"text-c-2 ml-2 text-xs\">\n {{ formatBytes(receivedBytes) }} received\n </span>\n </div>\n <div\n v-if=\"loader.isLoading\"\n class=\"mr-2 flex items-center gap-2\">\n <ScalarLoading\n :loadingState=\"loader\"\n size=\"xs\" />\n <span class=\"text-c-2\">{{\n translate('apiClient.responseBodyStreaming.listening')\n }}</span>\n </div>\n </div>\n </template>\n <template #actions>\n <ScalarButton\n v-if=\"loader.isLoading\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"stopStreaming\">\n {{ translate('apiClient.responseBodyStreaming.cancel') }}\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"copyToClipboard(textContent)\">\n Copy text\n </ScalarButton>\n <ScalarButton\n v-if=\"textContent\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"downloadText\">\n Download text\n </ScalarButton>\n </template>\n\n <div\n ref=\"contentContainer\"\n class=\"text-xxs font-code h-full overflow-auto leading-6 whitespace-pre-wrap\">\n <template v-if=\"errorRef\">\n <div class=\"text-red bg-b-danger sticky top-0 border-b p-2\">\n {{ errorRef.message }}\n </div>\n </template>\n <template v-if=\"textContent\">\n <div class=\"p-2\">\n {{ textContent }}\n </div>\n </template>\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,IAAM,mBAAmB;;;;;;;;EA/BzB,MAAM,EAAE,cAAc,gBAAgB;EAEtC,MAAM,SAAS,gBAAgB;EAC/B,MAAM,cAAc,IAAI,EAAE;EAC1B,MAAM,gBAAgB,IAAI,CAAC;EAC3B,MAAM,EAAE,oBAAoB,aAAa;EACzC,IAAI;EAEJ,MAAM,sBAA4B;GAChC,IAAI,aAAa;IACf,IAAI,gBAAgB,WAAW;IAC/B,cAAc,KAAA;GAChB;EACF;;EAGA,MAAM,qBAA2B;GAC/B,cAAc;GACd,cAAc,IAAI,gBAChB,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG,EAAE,MAAM,2BAA2B,CAAC,CACpE;GACA,MAAM,OAAO,SAAS,cAAc,GAAG;GACvC,KAAK,OAAO;GACZ,KAAK,WAAW;GAChB,KAAK,MAAM;EACb;EACA,MAAM,WAAW,IAAkB,IAAI;EACvC,MAAM,mBAAmB,IAAwB,IAAI;EACrD,IAAI,gBAAgE;;EAKpE,MAAM,aAAa,YAAY;GAC7B,MAAM,SAAS;GACf,IAAI,iBAAiB,OACnB,iBAAiB,MAAM,YAAY,iBAAiB,MAAM;EAE9D,CAAC;EAED,MAAM,gBACJ,iBACS;GACT,QAAa,QAAQ,aAAa,OAAO,CAAC,CAAC,CAAC,YAAY,CAExD,CAAC;EACH;EAEA,MAAM,aAAa,OACjB,iBACkB;GAClB,IAAI;IACF,IAAI,iBAAiB;IACrB,MAAM,SAAS,2BAA2B,QAAA,cAAc,SAAS;KAC/D,kBAAkB,kBAAkB,IAAI;KACxC,IAAI,iBAAiB,kBACnB,MAAM,IAAI,MACR,qEACF;KAEF,YAAY,SAAS;IACvB,CAAC;IACD,OAAO,kBAAkB,cAAc;KACrC,MAAM,EAAE,MAAM,UAAU,MAAM,aAAa,KAAK;KAChD,IAAI,kBAAkB,cACpB;KAEF,IAAI,MAAM;MACR,OAAO,OAAO;MACd,OAAY,MAAM;MAClB;KACF;KACA,cAAc,SAAS,MAAM;KAC7B,OAAO,KAAK,KAAK;IACnB;GACF,SAAS,OAAO;IACd,IAAI,kBAAkB,cAAc;KAClC,QAAQ,MAAM,yBAAyB,KAAK;KAC5C,SAAS,QAAQ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;KACzE,aAAa,YAAY;KACzB,OAAY,MAAM;IACpB;GACF,UAAU;IACR,aAAa,YAAY;GAC3B;EACF;EAEA,MAAM,sBAA4B;GAChC,MAAM,WAAW;GACjB,gBAAgB;GAChB,IAAI,UACF,aAAa,QAAQ;GAEvB,OAAY,MAAM;EACpB;EAEA,MAAM,uBAA6B;GACjC,cAAc;GACd,gBAAgB,QAAA;GAChB,OAAO,MAAM;GACb,cAAc;GACd,cAAc,QAAQ;GACtB,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,WAAgB,QAAA,MAAM;EACxB;EAEA,YAAY,QAAA,QAAQ,gBAAgB,EAAE,WAAW,KAAK,CAAC;EACvD,sBAAsB;GACpB,cAAc;GACd,cAAc;EAChB,CAAC;;GAIC,OAAAA,UAAA,GAAAC,YA2DqBC,MAAAC,0BAAA,GAAA,EA3DD,OAAM,kCAAiC,GAAA;IAC9C,OAAKC,cAkBR,CAjBNC,mBAiBM,OAjBN,YAiBM,CAhBJA,mBAKM,OAAA,MAAA,CAJDC,gBAAAC,gBAAAL,MAAA,SAAA,CAAS,CAAA,sCAAA,CAAA,IAA2C,KACvD,CAAA,GAAAG,mBAEO,QAFP,YAEOE,gBADFL,MAAA,WAAA,CAAW,CAAC,cAAA,KAAa,CAAA,IAAI,cAClC,CAAA,C,IAGMA,MAAA,MAAA,CAAM,CAAC,aADfF,UAAA,GAAAQ,mBASM,OATN,YASM,CANJC,YAEcP,MAAA,aAAA,GAAA;KADX,cAAcA,MAAA,MAAA;KACf,MAAK;I,+BACPG,mBAES,QAFT,YAESE,gBADPL,MAAA,SAAA,CAAS,CAAA,2CAAA,CAAA,GAAA,CAAA,C;IAKN,SAAOE,cAOD;KALPF,MAAA,MAAA,CAAM,CAAC,aADfF,UAAA,GAAAC,YAMeC,MAAA,YAAA,GAAA;;MAJb,MAAK;MACL,SAAQ;MACP,SAAO;;MACR,SAAAE,cAAyD,CAAtDE,gBAAAC,gBAAAL,MAAA,SAAA,CAAS,CAAA,wCAAA,CAAA,GAAA,CAAA,C;;;KAGN,YAAA,SADRF,UAAA,GAAAC,YAMeC,MAAA,YAAA,GAAA;;MAJb,MAAK;MACL,SAAQ;MACP,SAAK,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,eAAA,CAAe,CAAC,YAAA,KAAW;;MAAG,SAAAE,cAExC,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAFwCE,gBAAA,eAExC,EAAA,C;;;KAEQ,YAAA,SADRN,UAAA,GAAAC,YAMeC,MAAA,YAAA,GAAA;;MAJb,MAAK;MACL,SAAQ;MACP,SAAO;;MAAc,SAAAE,cAExB,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAFwBE,gBAAA,mBAExB,EAAA,C;;;;IAGF,SAAAF,cAaM,CAbNC,mBAaM,OAAA;KAZA,SAAA;KAAJ,KAAI;KACJ,OAAM;I,IACU,SAAA,SACdL,UAAA,GAAAQ,mBAEM,OAFN,YAEMD,gBADD,SAAA,MAAS,OAAO,GAAA,CAAA,K,8BAGP,YAAA,SACdP,UAAA,GAAAQ,mBAEM,OAFN,YAEMD,gBADD,YAAA,KAAW,GAAA,CAAA,K"}
@@ -1,4 +1,4 @@
1
- import ResponseBodyToggle_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyToggle.vue.script.js";
1
+ import ResponseBodyToggle_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/v2/blocks/response-block/components/ResponseBodyToggle.vue
3
3
  var ResponseBodyToggle_default = ResponseBodyToggle_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyToggle.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyToggle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n modelValue: boolean\n}>()\n\ndefineEmits<{\n (e: 'update:modelValue', v: boolean): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div\n class=\"text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5\">\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', true)\">\n {{ translate('apiClient.responseBodyToggle.preview') }}\n </button>\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': !modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', false)\">\n {{ translate('apiClient.responseBodyToggle.raw') }}\n </button>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyToggle.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyToggle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n modelValue: boolean\n}>()\n\ndefineEmits<{\n (e: 'update:modelValue', v: boolean): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div\n class=\"text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5\">\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', true)\">\n {{ translate('apiClient.responseBodyToggle.preview') }}\n </button>\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': !modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', false)\">\n {{ translate('apiClient.responseBodyToggle.raw') }}\n </button>\n </div>\n</template>\n"],"mappings":""}
@@ -24,4 +24,4 @@ var ResponseBodyToggle_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
24
24
  //#endregion
25
25
  export { ResponseBodyToggle_vue_vue_type_script_setup_true_lang_default as default };
26
26
 
27
- //# sourceMappingURL=ResponseBodyToggle.vue.script.js.map
27
+ //# sourceMappingURL=ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js","names":["$emit","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_withModifiers","_toDisplayString","_unref"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyToggle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n modelValue: boolean\n}>()\n\ndefineEmits<{\n (e: 'update:modelValue', v: boolean): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div\n class=\"text-c-3 text-xxs -my-1 flex justify-center gap-0.5 rounded p-0.5\">\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', true)\">\n {{ translate('apiClient.responseBodyToggle.preview') }}\n </button>\n <button\n class=\"hover:bg-b-3 rounded px-1\"\n :class=\"{ 'bg-b-3 text-c-1 cursor-default': !modelValue }\"\n type=\"button\"\n @click.stop=\"$emit('update:modelValue', false)\">\n {{ translate('apiClient.responseBodyToggle.raw') }}\n </button>\n </div>\n</template>\n"],"mappings":";;;;;;;;;EAWA,MAAM,EAAE,cAAc,gBAAgB;;GAGpC,OAAAC,UAAA,GAAAC,mBAgBM,OAhBN,YAgBM,CAdJC,mBAMS,UAAA;IALP,OAAKC,eAAA,CAAC,6BAA2B,EAAA,kCACW,QAAA,WAAU,CAAA,CAAA;IACtD,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,KAAAC,eAAA,WAAOL,KAAAA,MAAK,qBAAA,IAAA,GAAA,CAAA,MAAA,CAAA;GACf,GAAAM,gBAAAC,MAAA,SAAA,CAAS,CAAA,sCAAA,CAAA,GAAA,CAAA,GAEdJ,mBAMS,UAAA;IALP,OAAKC,eAAA,CAAC,6BAA2B,EAAA,kCAAA,CACY,QAAA,WAAU,CAAA,CAAA;IACvD,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,KAAAC,eAAA,WAAOL,KAAAA,MAAK,qBAAA,KAAA,GAAA,CAAA,MAAA,CAAA;GACf,GAAAM,gBAAAC,MAAA,SAAA,CAAS,CAAA,kCAAA,CAAA,GAAA,CAAA,C"}
@@ -1,5 +1,5 @@
1
- import ResponseBodyVirtual_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyVirtual.vue.script.js";
2
- /* empty css */
1
+ import ResponseBodyVirtual_vue_vue_type_script_setup_true_lang_default from "./ResponseBodyVirtual.vue_vue_type_script_setup_true_lang.js";
2
+ /* empty css */
3
3
  //#region src/v2/blocks/response-block/components/ResponseBodyVirtual.vue
4
4
  var ResponseBodyVirtual_default = ResponseBodyVirtual_vue_vue_type_script_setup_true_lang_default;
5
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBodyVirtual.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyVirtual.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarVirtualText } from '@scalar/components/virtual-text'\nimport { formatJsonOrYamlString } from '@scalar/oas-utils/helpers'\nimport { computed } from 'vue'\n\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\n\nconst { content, data, headers } = defineProps<{\n content: string\n data: unknown\n headers: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n\nconst textContent = computed(() => formatJsonOrYamlString(content))\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n</script>\n\n<template>\n <CollapsibleSection class=\"!max-h-100% response-body-virtual overflow-x-auto\">\n <template #title>\n {{ translate('apiClient.responseBodyVirtual.body') }}\n </template>\n <template\n v-if=\"responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div class=\"font-code text-xxs rounded-t border-x border-t px-2.5 py-1.5\">\n {{ translate('apiClient.responseBodyVirtual.largeBodyHint') }}\n </div>\n <ScalarVirtualText\n containerClass=\"custom-scroll scalar-code-block border rounded-b flex flex-1 max-h-screen\"\n contentClass=\"language-plaintext whitespace-pre font-code text-base\"\n :lineHeight=\"20\"\n searchable\n :text=\"textContent\" />\n </CollapsibleSection>\n</template>\n\n<style>\n.response-body-virtual[data-headlessui-state='open'],\n.response-body-virtual[data-headlessui-state='open'] .diclosure-panel {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseBodyVirtual.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyVirtual.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarVirtualText } from '@scalar/components/virtual-text'\nimport { formatJsonOrYamlString } from '@scalar/oas-utils/helpers'\nimport { computed } from 'vue'\n\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\n\nconst { content, data, headers } = defineProps<{\n content: string\n data: unknown\n headers: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n\nconst textContent = computed(() => formatJsonOrYamlString(content))\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n</script>\n\n<template>\n <CollapsibleSection class=\"!max-h-100% response-body-virtual overflow-x-auto\">\n <template #title>\n {{ translate('apiClient.responseBodyVirtual.body') }}\n </template>\n <template\n v-if=\"responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div class=\"font-code text-xxs rounded-t border-x border-t px-2.5 py-1.5\">\n {{ translate('apiClient.responseBodyVirtual.largeBodyHint') }}\n </div>\n <ScalarVirtualText\n containerClass=\"custom-scroll scalar-code-block border rounded-b flex flex-1 max-h-screen\"\n contentClass=\"language-plaintext whitespace-pre font-code text-base\"\n :lineHeight=\"20\"\n searchable\n :text=\"textContent\" />\n </CollapsibleSection>\n</template>\n\n<style>\n.response-body-virtual[data-headlessui-state='open'],\n.response-body-virtual[data-headlessui-state='open'] .diclosure-panel {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n</style>\n"],"mappings":""}
@@ -51,4 +51,4 @@ var ResponseBodyVirtual_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
51
51
  //#endregion
52
52
  export { ResponseBodyVirtual_vue_vue_type_script_setup_true_lang_default as default };
53
53
 
54
- //# sourceMappingURL=ResponseBodyVirtual.vue.script.js.map
54
+ //# sourceMappingURL=ResponseBodyVirtual.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseBodyVirtual.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","CollapsibleSection","_createSlots","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode","_createVNode","ResponseBodyDownload"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseBodyVirtual.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarVirtualText } from '@scalar/components/virtual-text'\nimport { formatJsonOrYamlString } from '@scalar/oas-utils/helpers'\nimport { computed } from 'vue'\n\nimport { processResponseBody } from '@/v2/blocks/response-block/helpers/process-response-body'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\nimport ResponseBodyDownload from './ResponseBodyDownload.vue'\n\nconst { content, data, headers } = defineProps<{\n content: string\n data: unknown\n headers: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n\nconst textContent = computed(() => formatJsonOrYamlString(content))\n\nconst responseBody = computed(() =>\n processResponseBody({\n data,\n headers,\n }),\n)\n</script>\n\n<template>\n <CollapsibleSection class=\"!max-h-100% response-body-virtual overflow-x-auto\">\n <template #title>\n {{ translate('apiClient.responseBodyVirtual.body') }}\n </template>\n <template\n v-if=\"responseBody.dataUrl\"\n #actions>\n <ResponseBodyDownload\n :filename=\"responseBody.attachmentFilename\"\n :href=\"responseBody.dataUrl\"\n :type=\"responseBody.mimeType?.essence\" />\n </template>\n <div class=\"font-code text-xxs rounded-t border-x border-t px-2.5 py-1.5\">\n {{ translate('apiClient.responseBodyVirtual.largeBodyHint') }}\n </div>\n <ScalarVirtualText\n containerClass=\"custom-scroll scalar-code-block border rounded-b flex flex-1 max-h-screen\"\n contentClass=\"language-plaintext whitespace-pre font-code text-base\"\n :lineHeight=\"20\"\n searchable\n :text=\"textContent\" />\n </CollapsibleSection>\n</template>\n\n<style>\n.response-body-virtual[data-headlessui-state='open'],\n.response-body-virtual[data-headlessui-state='open'] .diclosure-panel {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;EAiBA,MAAM,EAAE,cAAc,gBAAgB;EAEtC,MAAM,cAAc,eAAe,uBAAuB,QAAA,OAAO,CAAC;EAElE,MAAM,eAAe,eACnB,oBAAoB;GAClB,MAAG,QAAA;GACH,SAAM,QAAA;EACR,CAAC,CACH;;GAIE,OAAAA,UAAA,GAAAC,YAqBqBC,MAAAC,0BAAA,GAAA,EArBD,OAAM,oDAAmD,GAAAC,YAAA;IAChE,OAAKC,cACuC,CAAlDC,gBAAAC,gBAAAL,MAAA,SAAA,CAAS,CAAA,oCAAA,CAAA,GAAA,CAAA,C;IAUd,SAAAG,cAEM,CAFNG,mBAEM,OAFN,YAEMD,gBADDL,MAAA,SAAA,CAAS,CAAA,6CAAA,CAAA,GAAA,CAAA,GAEdO,YAKwBP,MAAA,iBAAA,GAAA;KAJtB,gBAAe;KACf,cAAa;KACZ,YAAY;KACb,YAAA;KACC,MAAM,YAAA;;;G,IAfD,aAAA,MAAa,U;IAClB,MAAA;IACD,IAAAG,cAG2C,CAH3CI,YAG2CC,8BAAA;KAFxC,UAAU,aAAA,MAAa;KACvB,MAAM,aAAA,MAAa;KACnB,MAAM,aAAA,MAAa,UAAU"}
@@ -1,4 +1,4 @@
1
- import ResponseCookies_vue_vue_type_script_setup_true_lang_default from "./ResponseCookies.vue.script.js";
1
+ import ResponseCookies_vue_vue_type_script_setup_true_lang_default from "./ResponseCookies.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/v2/blocks/response-block/components/ResponseCookies.vue
3
3
  var ResponseCookies_default = ResponseCookies_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseCookies.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseCookies.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n DataTableText,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n cookies: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <CollapsibleSection\n class=\"overflow-auto\"\n :defaultOpen=\"false\"\n :itemCount=\"cookies.length\">\n <template #title>\n {{ translate('apiClient.responseCookies.cookies') }}\n </template>\n <div\n v-if=\"cookies.length\"\n class=\"max-h-[calc(100%-32px)] overflow-y-auto\">\n <DataTable\n :columns=\"['minmax(auto, min-content)', 'minmax(50%, 1fr)']\"\n scroll>\n <DataTableRow class=\"sr-only !block\">\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieName') }}\n </DataTableHeader>\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieValue') }}\n </DataTableHeader>\n </DataTableRow>\n <DataTableRow\n v-for=\"(item, index) in cookies\"\n :key=\"item.name\"\n class=\"group/row text-c-1\">\n <DataTableText\n class=\"bg-b-1 sticky left-0 z-1 max-w-full\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.name\" />\n <DataTableText\n class=\"z-0\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.value\" />\n </DataTableRow>\n </DataTable>\n </div>\n <!-- Empty state -->\n <div\n v-else\n class=\"text-c-3 bg-b-1 flex min-h-[64px] items-center justify-center border-t px-4 text-sm\">\n {{ translate('apiClient.responseCookies.noCookies') }}\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseCookies.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseCookies.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n DataTableText,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n cookies: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <CollapsibleSection\n class=\"overflow-auto\"\n :defaultOpen=\"false\"\n :itemCount=\"cookies.length\">\n <template #title>\n {{ translate('apiClient.responseCookies.cookies') }}\n </template>\n <div\n v-if=\"cookies.length\"\n class=\"max-h-[calc(100%-32px)] overflow-y-auto\">\n <DataTable\n :columns=\"['minmax(auto, min-content)', 'minmax(50%, 1fr)']\"\n scroll>\n <DataTableRow class=\"sr-only !block\">\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieName') }}\n </DataTableHeader>\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieValue') }}\n </DataTableHeader>\n </DataTableRow>\n <DataTableRow\n v-for=\"(item, index) in cookies\"\n :key=\"item.name\"\n class=\"group/row text-c-1\">\n <DataTableText\n class=\"bg-b-1 sticky left-0 z-1 max-w-full\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.name\" />\n <DataTableText\n class=\"z-0\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.value\" />\n </DataTableRow>\n </DataTable>\n </div>\n <!-- Empty state -->\n <div\n v-else\n class=\"text-c-3 bg-b-1 flex min-h-[64px] items-center justify-center border-t px-4 text-sm\">\n {{ translate('apiClient.responseCookies.noCookies') }}\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":""}
@@ -64,4 +64,4 @@ var ResponseCookies_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
64
64
  //#endregion
65
65
  export { ResponseCookies_vue_vue_type_script_setup_true_lang_default as default };
66
66
 
67
- //# sourceMappingURL=ResponseCookies.vue.script.js.map
67
+ //# sourceMappingURL=ResponseCookies.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseCookies.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","CollapsibleSection","_withCtx","_createTextVNode","_toDisplayString","_createElementBlock","_createVNode","DataTable","DataTableRow","DataTableHeader","_Fragment","_renderList","DataTableText","_normalizeClass"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseCookies.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n DataTableText,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\nimport { useLocalization } from '@/v2/features/localization'\n\ndefineProps<{\n cookies: { name: string; value: string }[]\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <CollapsibleSection\n class=\"overflow-auto\"\n :defaultOpen=\"false\"\n :itemCount=\"cookies.length\">\n <template #title>\n {{ translate('apiClient.responseCookies.cookies') }}\n </template>\n <div\n v-if=\"cookies.length\"\n class=\"max-h-[calc(100%-32px)] overflow-y-auto\">\n <DataTable\n :columns=\"['minmax(auto, min-content)', 'minmax(50%, 1fr)']\"\n scroll>\n <DataTableRow class=\"sr-only !block\">\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieName') }}\n </DataTableHeader>\n <DataTableHeader>\n {{ translate('apiClient.responseCookies.cookieValue') }}\n </DataTableHeader>\n </DataTableRow>\n <DataTableRow\n v-for=\"(item, index) in cookies\"\n :key=\"item.name\"\n class=\"group/row text-c-1\">\n <DataTableText\n class=\"bg-b-1 sticky left-0 z-1 max-w-full\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.name\" />\n <DataTableText\n class=\"z-0\"\n :class=\"{ 'border-t-0': index === 0 }\"\n :text=\"item.value\" />\n </DataTableRow>\n </DataTable>\n </div>\n <!-- Empty state -->\n <div\n v-else\n class=\"text-c-3 bg-b-1 flex min-h-[64px] items-center justify-center border-t px-4 text-sm\">\n {{ translate('apiClient.responseCookies.noCookies') }}\n </div>\n </CollapsibleSection>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAcA,MAAM,EAAE,cAAc,gBAAgB;;GAGpC,OAAAA,UAAA,GAAAC,YA0CqBC,MAAAC,0BAAA,GAAA;IAzCnB,OAAM;IACL,aAAa;IACb,WAAW,QAAA,QAAQ;;IACT,OAAKC,cACsC,CAAjDC,gBAAAC,gBAAAJ,MAAA,SAAA,CAAS,CAAA,mCAAA,CAAA,GAAA,CAAA,C;IAEd,SAAAE,cA4BM,CA3BE,QAAA,QAAQ,UADhBJ,UAAA,GAAAO,mBA4BM,OA5BN,YA4BM,CAzBJC,YAwBYN,MAAAO,iBAAA,GAAA;KAvBT,SAAS,CAAA,6BAAA,kBAAA;KACV,QAAA;;KACA,SAAAL,cAOe,CAPfI,YAOeN,MAAAQ,oBAAA,GAAA,EAPD,OAAM,iBAAgB,GAAA;MAClC,SAAAN,cAEkB,CAFlBI,YAEkBN,MAAAS,uBAAA,GAAA,MAAA;OADhB,SAAAP,cAAuD,CAApDC,gBAAAC,gBAAAJ,MAAA,SAAA,CAAS,CAAA,sCAAA,CAAA,GAAA,CAAA,C;;M,IAEdM,YAEkBN,MAAAS,uBAAA,GAAA,MAAA;OADhB,SAAAP,cAAwD,CAArDC,gBAAAC,gBAAAJ,MAAA,SAAA,CAAS,CAAA,uCAAA,CAAA,GAAA,CAAA,C;;;;K,KAGhBF,UAAA,IAAA,GAAAO,mBAYeK,UAAA,MAAAC,WAXW,QAAA,UAAhB,MAAM,UAAK;MADrB,OAAAb,UAAA,GAAAC,YAYeC,MAAAQ,oBAAA,GAAA;OAVZ,KAAK,KAAK;OACX,OAAM;;OACN,SAAAN,cAGsB,CAHtBI,YAGsBN,MAAAY,qBAAA,GAAA;QAFpB,OAAKC,eAAA,CAAC,uCAAqC,EAAA,cACnB,UAAK,EAAA,CAAA,CAAA;QAC5B,MAAM,KAAK;O,gCACdP,YAGuBN,MAAAY,qBAAA,GAAA;QAFrB,OAAKC,eAAA,CAAC,OAAK,EAAA,cACa,UAAK,EAAA,CAAA,CAAA;QAC5B,MAAM,KAAK;;;;;;I,SAKpBf,UAAA,GAAAO,mBAIM,OAJN,YAIMD,gBADDJ,MAAA,SAAA,CAAS,CAAA,qCAAA,CAAA,GAAA,CAAA,E"}
@@ -1,4 +1,4 @@
1
- import type { ClientLayout } from '../../../../v2/types/layout';
1
+ import type { ClientLayout } from '../../../types/layout.js';
2
2
  type __VLS_Props = {
3
3
  /** Wait for the selected external request example before sending. */
4
4
  executionDisabled?: boolean;
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
- import ResponseEmpty_vue_vue_type_script_setup_true_lang_default from "./ResponseEmpty.vue.script.js";
3
- /* empty css */
2
+ import ResponseEmpty_vue_vue_type_script_setup_true_lang_default from "./ResponseEmpty.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/v2/blocks/response-block/components/ResponseEmpty.vue
5
5
  var ResponseEmpty_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ResponseEmpty_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8ed574de"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseEmpty.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarHotkey } from '@scalar/components/hotkey'\n\nimport Computer from '@/assets/computer.ascii?raw'\nimport { ScalarAsciiArt } from '@/components/ScalarAsciiArt'\nimport { useLocalization } from '@/v2/features/localization'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nconst { totalPerformedRequests, layout, appVersion } = defineProps<{\n /** Wait for the selected external request example before sending. */\n executionDisabled?: boolean\n /** Client layout */\n layout: ClientLayout\n /** Total number of performed requests */\n totalPerformedRequests: number\n /** Application version */\n appVersion: string\n}>()\n\nconst emits = defineEmits<{\n (e: 'addRequest'): void\n (e: 'sendRequest'): void\n (e: 'openCommandPalette'): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div class=\"flex-center relative flex flex-1 flex-col gap-6 p-2 capitalize\">\n <div\n class=\"flex h-[calc(100%_-_50px)] flex-col items-center justify-center\"\n :class=\"{\n 'hidden opacity-0': totalPerformedRequests > 0 && layout !== 'modal',\n }\">\n <div\n v-if=\"layout !== 'modal'\"\n class=\"scalar-version-number\">\n {{\n translate('apiClient.responseEmpty.version', { version: appVersion })\n }}\n <div class=\"mt-2\">\n <a\n href=\"https://github.com/scalar/scalar/issues/2669\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.roadmap') }}</a\n >\n </div>\n </div>\n <a\n class=\"gitbook-show scalar-version-number\"\n href=\"https://www.scalar.com\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.poweredByScalarcom') }}</a\n >\n <ScalarAsciiArt\n :art=\"Computer\"\n class=\"text-c-3\" />\n </div>\n\n <div\n class=\"text-c-3 right-4 mt-auto flex w-full flex-col items-end gap-2 text-sm\">\n <button\n v-if=\"layout !== 'modal'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('openCommandPalette')\">\n {{ translate('apiClient.responseEmpty.getStarted')\n }}<ScalarHotkey\n hotkey=\"k\"\n :modifier=\"['default']\" />\n </button>\n <button\n v-if=\"layout === 'desktop'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('addRequest')\">\n {{ translate('apiClient.responseEmpty.newRequest')\n }}<ScalarHotkey hotkey=\"N\" />\n </button>\n <button\n class=\"flex items-center gap-1.5\"\n :disabled=\"executionDisabled\"\n type=\"button\"\n @click=\"emits('sendRequest')\">\n {{ translate('apiClient.responseEmpty.sendRequest')\n }}<ScalarHotkey hotkey=\"↵\" />\n </button>\n </div>\n </div>\n</template>\n<style scoped>\n.scalar-version-number {\n transform: skew(0deg, 13deg);\n width: 76px;\n height: 76px;\n position: absolute;\n margin-left: -36px;\n font-size: 8px;\n font-family: var(--scalar-font-code);\n line-height: 11px;\n margin-top: -113px;\n border-radius: 9px 9px 16px 12px;\n box-shadow: inset 2px 0px 0 2px var(--scalar-background-2);\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-transform: initial;\n text-decoration-color: var(--scalar-color-3);\n}\n.scalar-version-number a {\n font-weight: bold;\n font-weight: bold;\n background: var(--scalar-background-2);\n padding: 2px 4px;\n border-radius: 3px;\n text-decoration: none;\n border: 0.5px solid var(--scalar-border-color);\n}\n\n.gitbook-show {\n display: none;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseEmpty.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarHotkey } from '@scalar/components/hotkey'\n\nimport Computer from '@/assets/computer.ascii?raw'\nimport { ScalarAsciiArt } from '@/components/ScalarAsciiArt'\nimport { useLocalization } from '@/v2/features/localization'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nconst { totalPerformedRequests, layout, appVersion } = defineProps<{\n /** Wait for the selected external request example before sending. */\n executionDisabled?: boolean\n /** Client layout */\n layout: ClientLayout\n /** Total number of performed requests */\n totalPerformedRequests: number\n /** Application version */\n appVersion: string\n}>()\n\nconst emits = defineEmits<{\n (e: 'addRequest'): void\n (e: 'sendRequest'): void\n (e: 'openCommandPalette'): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div class=\"flex-center relative flex flex-1 flex-col gap-6 p-2 capitalize\">\n <div\n class=\"flex h-[calc(100%_-_50px)] flex-col items-center justify-center\"\n :class=\"{\n 'hidden opacity-0': totalPerformedRequests > 0 && layout !== 'modal',\n }\">\n <div\n v-if=\"layout !== 'modal'\"\n class=\"scalar-version-number\">\n {{\n translate('apiClient.responseEmpty.version', { version: appVersion })\n }}\n <div class=\"mt-2\">\n <a\n href=\"https://github.com/scalar/scalar/issues/2669\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.roadmap') }}</a\n >\n </div>\n </div>\n <a\n class=\"gitbook-show scalar-version-number\"\n href=\"https://www.scalar.com\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.poweredByScalarcom') }}</a\n >\n <ScalarAsciiArt\n :art=\"Computer\"\n class=\"text-c-3\" />\n </div>\n\n <div\n class=\"text-c-3 right-4 mt-auto flex w-full flex-col items-end gap-2 text-sm\">\n <button\n v-if=\"layout !== 'modal'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('openCommandPalette')\">\n {{ translate('apiClient.responseEmpty.getStarted')\n }}<ScalarHotkey\n hotkey=\"k\"\n :modifier=\"['default']\" />\n </button>\n <button\n v-if=\"layout === 'desktop'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('addRequest')\">\n {{ translate('apiClient.responseEmpty.newRequest')\n }}<ScalarHotkey hotkey=\"N\" />\n </button>\n <button\n class=\"flex items-center gap-1.5\"\n :disabled=\"executionDisabled\"\n type=\"button\"\n @click=\"emits('sendRequest')\">\n {{ translate('apiClient.responseEmpty.sendRequest')\n }}<ScalarHotkey hotkey=\"↵\" />\n </button>\n </div>\n </div>\n</template>\n<style scoped>\n.scalar-version-number {\n transform: skew(0deg, 13deg);\n width: 76px;\n height: 76px;\n position: absolute;\n margin-left: -36px;\n font-size: 8px;\n font-family: var(--scalar-font-code);\n line-height: 11px;\n margin-top: -113px;\n border-radius: 9px 9px 16px 12px;\n box-shadow: inset 2px 0px 0 2px var(--scalar-background-2);\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-transform: initial;\n text-decoration-color: var(--scalar-color-3);\n}\n.scalar-version-number a {\n font-weight: bold;\n font-weight: bold;\n background: var(--scalar-background-2);\n padding: 2px 4px;\n border-radius: 3px;\n text-decoration: none;\n border: 0.5px solid var(--scalar-border-color);\n}\n\n.gitbook-show {\n display: none;\n}\n</style>\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { useLocalization } from "../../../features/localization/index.js";
2
2
  import ScalarAsciiArt_default from "../../../../components/ScalarAsciiArt/ScalarAsciiArt.vue.js";
3
- import computer_default from "../../../../assets/computer.ascii.virtual.js";
3
+ import computer_default from "../../../../assets/computer.ascii_raw.js";
4
4
  import { createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref } from "vue";
5
5
  import { ScalarHotkey } from "@scalar/components/hotkey";
6
6
  //#region src/v2/blocks/response-block/components/ResponseEmpty.vue?vue&type=script&setup=true&lang.ts
@@ -74,4 +74,4 @@ var ResponseEmpty_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
74
74
  //#endregion
75
75
  export { ResponseEmpty_vue_vue_type_script_setup_true_lang_default as default };
76
76
 
77
- //# sourceMappingURL=ResponseEmpty.vue.script.js.map
77
+ //# sourceMappingURL=ResponseEmpty.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseEmpty.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_unref","_createCommentVNode","_createVNode","ScalarAsciiArt","Computer"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarHotkey } from '@scalar/components/hotkey'\n\nimport Computer from '@/assets/computer.ascii?raw'\nimport { ScalarAsciiArt } from '@/components/ScalarAsciiArt'\nimport { useLocalization } from '@/v2/features/localization'\nimport type { ClientLayout } from '@/v2/types/layout'\n\nconst { totalPerformedRequests, layout, appVersion } = defineProps<{\n /** Wait for the selected external request example before sending. */\n executionDisabled?: boolean\n /** Client layout */\n layout: ClientLayout\n /** Total number of performed requests */\n totalPerformedRequests: number\n /** Application version */\n appVersion: string\n}>()\n\nconst emits = defineEmits<{\n (e: 'addRequest'): void\n (e: 'sendRequest'): void\n (e: 'openCommandPalette'): void\n}>()\n\nconst { translate } = useLocalization()\n</script>\n<template>\n <div class=\"flex-center relative flex flex-1 flex-col gap-6 p-2 capitalize\">\n <div\n class=\"flex h-[calc(100%_-_50px)] flex-col items-center justify-center\"\n :class=\"{\n 'hidden opacity-0': totalPerformedRequests > 0 && layout !== 'modal',\n }\">\n <div\n v-if=\"layout !== 'modal'\"\n class=\"scalar-version-number\">\n {{\n translate('apiClient.responseEmpty.version', { version: appVersion })\n }}\n <div class=\"mt-2\">\n <a\n href=\"https://github.com/scalar/scalar/issues/2669\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.roadmap') }}</a\n >\n </div>\n </div>\n <a\n class=\"gitbook-show scalar-version-number\"\n href=\"https://www.scalar.com\"\n target=\"_blank\"\n >{{ translate('apiClient.responseEmpty.poweredByScalarcom') }}</a\n >\n <ScalarAsciiArt\n :art=\"Computer\"\n class=\"text-c-3\" />\n </div>\n\n <div\n class=\"text-c-3 right-4 mt-auto flex w-full flex-col items-end gap-2 text-sm\">\n <button\n v-if=\"layout !== 'modal'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('openCommandPalette')\">\n {{ translate('apiClient.responseEmpty.getStarted')\n }}<ScalarHotkey\n hotkey=\"k\"\n :modifier=\"['default']\" />\n </button>\n <button\n v-if=\"layout === 'desktop'\"\n class=\"flex items-center gap-1.5\"\n type=\"button\"\n @click=\"emits('addRequest')\">\n {{ translate('apiClient.responseEmpty.newRequest')\n }}<ScalarHotkey hotkey=\"N\" />\n </button>\n <button\n class=\"flex items-center gap-1.5\"\n :disabled=\"executionDisabled\"\n type=\"button\"\n @click=\"emits('sendRequest')\">\n {{ translate('apiClient.responseEmpty.sendRequest')\n }}<ScalarHotkey hotkey=\"↵\" />\n </button>\n </div>\n </div>\n</template>\n<style scoped>\n.scalar-version-number {\n transform: skew(0deg, 13deg);\n width: 76px;\n height: 76px;\n position: absolute;\n margin-left: -36px;\n font-size: 8px;\n font-family: var(--scalar-font-code);\n line-height: 11px;\n margin-top: -113px;\n border-radius: 9px 9px 16px 12px;\n box-shadow: inset 2px 0px 0 2px var(--scalar-background-2);\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-transform: initial;\n text-decoration-color: var(--scalar-color-3);\n}\n.scalar-version-number a {\n font-weight: bold;\n font-weight: bold;\n background: var(--scalar-background-2);\n padding: 2px 4px;\n border-radius: 3px;\n text-decoration: none;\n border: 0.5px solid var(--scalar-border-color);\n}\n\n.gitbook-show {\n display: none;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA,MAAM,QAAQ;EAMd,MAAM,EAAE,cAAc,gBAAgB;;GAGpC,OAAAA,UAAA,GAAAC,mBA4DM,OA5DN,YA4DM,CA3DJC,mBA4BM,OAAA,EA3BJ,OAAKC,eAAA,CAAC,mEAAiE,EACjC,oBAAA,QAAA,yBAAsB,KAAQ,QAAA,WAAM,Q;IAIlE,QAAA,WAAM,WADdH,UAAA,GAAAC,mBAaM,OAbN,YAaM,CATFG,gBAAAC,gBAAAC,MAAA,SAAA,CAAS,CAAA,mCAAA,EAAA,SAA+C,QAAA,WAAU,CAAA,CAAA,IAClE,KACF,CAAA,GAAAJ,mBAMM,OANN,YAMM,CALJA,mBAIC,KAJD,YAICG,gBADKC,MAAA,SAAA,CAAS,CAAA,iCAAA,CAAA,GAAA,CAAA,C;IAInBJ,mBAKC,KALD,YAKCG,gBADKC,MAAA,SAAA,CAAS,CAAA,4CAAA,CAAA,GAAA,CAAA;IAEfE,YAEqBF,MAAAG,sBAAA,GAAA;KADlB,KAAKH,MAAAI,gBAAA;KACN,OAAM;;G,OAGVR,mBA4BM,OA5BN,YA4BM;IAzBI,QAAA,WAAM,WADdF,UAAA,GAAAC,mBASS,UAAA;;KAPP,OAAM;KACN,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAK,oBAAA;I,IACVG,gBAAAC,gBAAAC,MAAA,SAAA,CAAS,CAAA,oCAAA,CAAA,GAAA,CAAA,GACVE,YAE0BF,MAAA,YAAA,GAAA;KAD1B,QAAO;KACN,UAAU,CAAA,SAAA;;IAGP,QAAA,WAAM,aADdN,UAAA,GAAAC,mBAOS,UAAA;;KALP,OAAM;KACN,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAK,YAAA;I,IACVG,gBAAAC,gBAAAC,MAAA,SAAA,CAAS,CAAA,oCAAA,CAAA,GAAA,CAAA,GACVE,YAA2BF,MAAA,YAAA,GAAA,EAAb,QAAO,IAAG,CAAA,C;IAE5BJ,mBAOS,UAAA;KANP,OAAM;KACL,UAAU,QAAA;KACX,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAK,aAAA;I,IACVE,gBAAAC,gBAAAC,MAAA,SAAA,CAAS,CAAA,qCAAA,CAAA,GAAA,CAAA,GACVE,YAA2BF,MAAA,YAAA,GAAA,EAAb,QAAO,IAAG,CAAA,C"}
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
- import ResponseLoadingOverlay_vue_vue_type_script_setup_true_lang_default from "./ResponseLoadingOverlay.vue.script.js";
3
- /* empty css */
2
+ import ResponseLoadingOverlay_vue_vue_type_script_setup_true_lang_default from "./ResponseLoadingOverlay.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/v2/blocks/response-block/components/ResponseLoadingOverlay.vue
5
5
  var ResponseLoadingOverlay_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ResponseLoadingOverlay_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-28d73262"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseLoadingOverlay.vue.js","names":[],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseLoadingOverlay.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarLoading, useLoadingState } from '@scalar/components/loading'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { onBeforeUnmount, onMounted, ref } from 'vue'\n\nimport { useLocalization } from '@/v2/features/localization'\n\nconst { eventBus } = defineProps<{\n /** Workspace event bus */\n eventBus: WorkspaceEventBus\n}>()\n\nconst { translate } = useLocalization()\n\nconst loader = useLoadingState()\nconst timeout = ref<ReturnType<typeof setTimeout>>()\n\nconst startLoading = () => {\n // Replace any pending delayed start so overlapping `hooks:on:request:sent` events\n // (rapid send, navigation, double submit) cannot leave an orphaned timer that\n // calls `loader.start()` after the matching request already completed.\n clearTimeout(timeout.value)\n timeout.value = setTimeout(() => loader.start(), 1000)\n}\n\nconst stopLoading = () => {\n clearTimeout(timeout.value)\n timeout.value = undefined\n void loader.clear()\n}\n\nonMounted(() => {\n eventBus.on('hooks:on:request:sent', startLoading)\n eventBus.on('hooks:on:request:complete', stopLoading)\n})\n\nonBeforeUnmount(() => {\n eventBus.off('hooks:on:request:sent', startLoading)\n eventBus.off('hooks:on:request:complete', stopLoading)\n stopLoading()\n})\n</script>\n<template>\n <Transition>\n <div\n v-if=\"loader.isActive\"\n class=\"bg-b-1 z-overlay absolute inset-0 flex flex-col items-center justify-center gap-6\">\n <ScalarLoading\n class=\"text-c-3\"\n :loader\n size=\"3xl\" />\n <ScalarButton\n variant=\"ghost\"\n @click=\"eventBus.emit('operation:cancel:request')\">\n {{ translate('apiClient.responseLoadingOverlay.cancel') }}\n </ScalarButton>\n </div>\n </Transition>\n</template>\n<style scoped>\n.v-enter-active {\n transition: opacity 0.5s ease;\n}\n\n.v-enter-from {\n opacity: 0;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ResponseLoadingOverlay.vue.js","names":["_sfc_main"],"sources":["../../../../../src/v2/blocks/response-block/components/ResponseLoadingOverlay.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarLoading, useLoadingState } from '@scalar/components/loading'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { onBeforeUnmount, onMounted, ref } from 'vue'\n\nimport { useLocalization } from '@/v2/features/localization'\n\nconst { eventBus } = defineProps<{\n /** Workspace event bus */\n eventBus: WorkspaceEventBus\n}>()\n\nconst { translate } = useLocalization()\n\nconst loader = useLoadingState()\nconst timeout = ref<ReturnType<typeof setTimeout>>()\n\nconst startLoading = () => {\n // Replace any pending delayed start so overlapping `hooks:on:request:sent` events\n // (rapid send, navigation, double submit) cannot leave an orphaned timer that\n // calls `loader.start()` after the matching request already completed.\n clearTimeout(timeout.value)\n timeout.value = setTimeout(() => loader.start(), 1000)\n}\n\nconst stopLoading = () => {\n clearTimeout(timeout.value)\n timeout.value = undefined\n void loader.clear()\n}\n\nonMounted(() => {\n eventBus.on('hooks:on:request:sent', startLoading)\n eventBus.on('hooks:on:request:complete', stopLoading)\n})\n\nonBeforeUnmount(() => {\n eventBus.off('hooks:on:request:sent', startLoading)\n eventBus.off('hooks:on:request:complete', stopLoading)\n stopLoading()\n})\n</script>\n<template>\n <Transition>\n <div\n v-if=\"loader.isActive\"\n class=\"bg-b-1 z-overlay absolute inset-0 flex flex-col items-center justify-center gap-6\">\n <ScalarLoading\n class=\"text-c-3\"\n :loader\n size=\"3xl\" />\n <ScalarButton\n variant=\"ghost\"\n @click=\"eventBus.emit('operation:cancel:request')\">\n {{ translate('apiClient.responseLoadingOverlay.cancel') }}\n </ScalarButton>\n </div>\n </Transition>\n</template>\n<style scoped>\n.v-enter-active {\n transition: opacity 0.5s ease;\n}\n\n.v-enter-from {\n opacity: 0;\n}\n</style>\n"],"mappings":""}
@@ -53,4 +53,4 @@ var ResponseLoadingOverlay_vue_vue_type_script_setup_true_lang_default = /*@__PU
53
53
  //#endregion
54
54
  export { ResponseLoadingOverlay_vue_vue_type_script_setup_true_lang_default as default };
55
55
 
56
- //# sourceMappingURL=ResponseLoadingOverlay.vue.script.js.map
56
+ //# sourceMappingURL=ResponseLoadingOverlay.vue_vue_type_script_setup_true_lang.js.map