@scalar/api-client 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (904) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/dist/components/HttpMethod/HttpMethod.vue.js +1 -1
  3. package/dist/components/HttpMethod/index.js +2 -0
  4. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.d.ts.map +1 -0
  5. package/dist/components/{ScalarAsciiArt.vue.js → ScalarAsciiArt/ScalarAsciiArt.vue.js} +3 -3
  6. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.js.map +1 -0
  7. package/dist/components/{ScalarAsciiArt.vue.script.js → ScalarAsciiArt/ScalarAsciiArt.vue.script.js} +1 -1
  8. package/dist/components/ScalarAsciiArt/ScalarAsciiArt.vue.script.js.map +1 -0
  9. package/dist/components/ScalarAsciiArt/index.d.ts +2 -0
  10. package/dist/components/ScalarAsciiArt/index.d.ts.map +1 -0
  11. package/dist/components/ScalarAsciiArt/index.js +2 -0
  12. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.d.ts +2 -2
  13. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.d.ts +2 -2
  14. package/dist/components/Sidebar/index.d.ts +2 -0
  15. package/dist/components/Sidebar/index.d.ts.map +1 -0
  16. package/dist/components/Sidebar/index.js +2 -0
  17. package/dist/components/ViewLayout/index.d.ts +4 -0
  18. package/dist/components/ViewLayout/index.d.ts.map +1 -0
  19. package/dist/components/ViewLayout/index.js +4 -0
  20. package/dist/plugins/posthog/index.d.ts.map +1 -1
  21. package/dist/plugins/posthog/index.js +21 -12
  22. package/dist/plugins/posthog/index.js.map +1 -1
  23. package/dist/plugins/posthog/sanitize-event-payload.d.ts +25 -0
  24. package/dist/plugins/posthog/sanitize-event-payload.d.ts.map +1 -0
  25. package/dist/plugins/posthog/sanitize-event-payload.js +136 -0
  26. package/dist/plugins/posthog/sanitize-event-payload.js.map +1 -0
  27. package/dist/style.css +218 -1638
  28. package/dist/types/index.d.ts +3 -0
  29. package/dist/types/index.d.ts.map +1 -0
  30. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts.map +1 -1
  31. package/dist/v2/blocks/operation-block/OperationBlock.vue.js.map +1 -1
  32. package/dist/v2/blocks/operation-block/OperationBlock.vue.script.js +72 -32
  33. package/dist/v2/blocks/operation-block/OperationBlock.vue.script.js.map +1 -1
  34. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
  35. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts.map +1 -1
  36. package/dist/v2/blocks/operation-block/components/Header.vue.js +1 -1
  37. package/dist/v2/blocks/operation-block/components/Header.vue.js.map +1 -1
  38. package/dist/v2/blocks/operation-block/components/Header.vue.script.js +3 -3
  39. package/dist/v2/blocks/operation-block/components/Header.vue.script.js.map +1 -1
  40. package/dist/v2/blocks/operation-block/components/OpenApiClientButton.vue.js +1 -1
  41. package/dist/v2/blocks/operation-block/index.d.ts +1 -0
  42. package/dist/v2/blocks/operation-block/index.d.ts.map +1 -1
  43. package/dist/v2/blocks/operation-block/index.js +2 -1
  44. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.script.js +1 -1
  45. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
  46. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts.map +1 -1
  47. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js +15 -9
  48. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js.map +1 -1
  49. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts.map +1 -1
  50. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js +9 -7
  51. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js.map +1 -1
  52. package/dist/v2/blocks/operation-code-sample/index.d.ts +1 -0
  53. package/dist/v2/blocks/operation-code-sample/index.d.ts.map +1 -1
  54. package/dist/v2/blocks/operation-code-sample/index.js +2 -1
  55. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts.map +1 -1
  56. package/dist/v2/blocks/request-block/RequestBlock.vue.js +1 -1
  57. package/dist/v2/blocks/request-block/RequestBlock.vue.js.map +1 -1
  58. package/dist/v2/blocks/request-block/RequestBlock.vue.script.js +30 -17
  59. package/dist/v2/blocks/request-block/RequestBlock.vue.script.js.map +1 -1
  60. package/dist/v2/blocks/request-block/components/RequestBody.vue.d.ts.map +1 -1
  61. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +1 -1
  62. package/dist/v2/blocks/request-block/components/RequestBody.vue.js.map +1 -1
  63. package/dist/v2/blocks/request-block/components/RequestBody.vue.script.js +43 -10
  64. package/dist/v2/blocks/request-block/components/RequestBody.vue.script.js.map +1 -1
  65. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.script.js +2 -2
  66. package/dist/v2/blocks/request-block/components/RequestParams.vue.d.ts +2 -2
  67. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +2 -2
  68. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts +4 -2
  69. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.d.ts.map +1 -1
  70. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js.map +1 -1
  71. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.script.js +2 -2
  72. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.script.js.map +1 -1
  73. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.d.ts.map +1 -1
  74. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js.map +1 -1
  75. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.script.js +4 -1
  76. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.script.js.map +1 -1
  77. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +2 -1
  78. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts.map +1 -1
  79. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +42 -13
  80. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js.map +1 -1
  81. package/dist/v2/blocks/request-block/helpers/create-parameter-rows.d.ts +14 -0
  82. package/dist/v2/blocks/request-block/helpers/create-parameter-rows.d.ts.map +1 -0
  83. package/dist/v2/blocks/request-block/helpers/create-parameter-rows.js +136 -0
  84. package/dist/v2/blocks/request-block/helpers/create-parameter-rows.js.map +1 -0
  85. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.js +1 -1
  86. package/dist/v2/blocks/response-block/ResponseBlock.vue.script.js +1 -1
  87. package/dist/v2/blocks/response-block/components/ResponseBody.vue.d.ts.map +1 -1
  88. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +1 -1
  89. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js.map +1 -1
  90. package/dist/v2/blocks/response-block/components/ResponseBody.vue.script.js +12 -10
  91. package/dist/v2/blocks/response-block/components/ResponseBody.vue.script.js.map +1 -1
  92. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +2 -0
  93. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts.map +1 -1
  94. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +1 -1
  95. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js.map +1 -1
  96. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.script.js +17 -4
  97. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.script.js.map +1 -1
  98. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.d.ts +3 -1
  99. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.d.ts.map +1 -1
  100. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +1 -1
  101. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js.map +1 -1
  102. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.script.js +21 -9
  103. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.script.js.map +1 -1
  104. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +2 -2
  105. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts.map +1 -1
  106. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +1 -1
  107. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js.map +1 -1
  108. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.script.js +2 -2
  109. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.script.js.map +1 -1
  110. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.d.ts.map +1 -1
  111. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +1 -1
  112. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js.map +1 -1
  113. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.script.js +1 -0
  114. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.script.js.map +1 -1
  115. package/dist/v2/blocks/response-block/helpers/media-types.d.ts +1 -1
  116. package/dist/v2/blocks/response-block/helpers/media-types.d.ts.map +1 -1
  117. package/dist/v2/blocks/response-block/helpers/media-types.js +14 -7
  118. package/dist/v2/blocks/response-block/helpers/media-types.js.map +1 -1
  119. package/dist/v2/blocks/response-block/helpers/prettify-jsonc-string.d.ts +6 -0
  120. package/dist/v2/blocks/response-block/helpers/prettify-jsonc-string.d.ts.map +1 -0
  121. package/dist/v2/blocks/response-block/helpers/prettify-jsonc-string.js +22 -0
  122. package/dist/v2/blocks/response-block/helpers/prettify-jsonc-string.js.map +1 -0
  123. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
  124. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts.map +1 -1
  125. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +1 -1
  126. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js.map +1 -1
  127. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.script.js +124 -91
  128. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.script.js.map +1 -1
  129. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.script.js +1 -1
  130. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.d.ts +2 -2
  131. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +30 -20
  132. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts.map +1 -1
  133. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js.map +1 -1
  134. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.script.js +43 -21
  135. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.script.js.map +1 -1
  136. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.d.ts +15 -2
  137. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.d.ts.map +1 -1
  138. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +1 -3
  139. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js.map +1 -1
  140. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.script.js +74 -28
  141. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.script.js.map +1 -1
  142. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.d.ts +30 -20
  143. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.d.ts.map +1 -1
  144. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js.map +1 -1
  145. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.script.js +190 -72
  146. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.script.js.map +1 -1
  147. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts.map +1 -1
  148. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js.map +1 -1
  149. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.script.js +7 -1
  150. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.script.js.map +1 -1
  151. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +26 -10
  152. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts.map +1 -1
  153. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js.map +1 -1
  154. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.script.js +25 -3
  155. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.script.js.map +1 -1
  156. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts.map +1 -1
  157. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +12 -3
  158. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js.map +1 -1
  159. package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts +1 -0
  160. package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts.map +1 -1
  161. package/dist/v2/components/code-input/CodeInput.vue.d.ts +4 -4
  162. package/dist/v2/components/code-input/CodeInput.vue.script.js +1 -1
  163. package/dist/v2/components/code-input/code-variable-widget.js +1 -1
  164. package/dist/v2/components/forms/ConfirmationForm.vue.d.ts +2 -2
  165. package/dist/v2/components/modals/DeleteModal.vue.d.ts +2 -2
  166. package/dist/v2/components/server/ServerDropdown.vue.d.ts +2 -2
  167. package/dist/v2/components/server/ServerDropdown.vue.js.map +1 -1
  168. package/dist/v2/components/server/ServerDropdown.vue.script.js +1 -1
  169. package/dist/v2/components/server/ServerDropdown.vue.script.js.map +1 -1
  170. package/dist/v2/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  171. package/dist/v2/components/sidebar/Sidebar.vue.js.map +1 -1
  172. package/dist/v2/components/sidebar/Sidebar.vue.script.js +4 -3
  173. package/dist/v2/components/sidebar/Sidebar.vue.script.js.map +1 -1
  174. package/dist/v2/constants.js +1 -1
  175. package/dist/v2/features/command-palette/components/CommandActionForm.vue.d.ts +2 -2
  176. package/dist/v2/features/command-palette/components/CommandActionInput.vue.d.ts +2 -2
  177. package/dist/v2/features/command-palette/index.d.ts +0 -2
  178. package/dist/v2/features/command-palette/index.d.ts.map +1 -1
  179. package/dist/v2/features/command-palette/index.js +1 -3
  180. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.d.ts +2 -2
  181. package/dist/v2/features/modal/Modal.vue.d.ts +5 -7
  182. package/dist/v2/features/modal/Modal.vue.d.ts.map +1 -1
  183. package/dist/v2/features/modal/Modal.vue.js.map +1 -1
  184. package/dist/v2/features/modal/Modal.vue.script.js +3 -3
  185. package/dist/v2/features/modal/Modal.vue.script.js.map +1 -1
  186. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +1 -1
  187. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts.map +1 -1
  188. package/dist/v2/features/modal/helpers/create-api-client-modal.js +8 -3
  189. package/dist/v2/features/modal/helpers/create-api-client-modal.js.map +1 -1
  190. package/dist/v2/features/modal/helpers/resolve-route-parameters.d.ts +5 -1
  191. package/dist/v2/features/modal/helpers/resolve-route-parameters.d.ts.map +1 -1
  192. package/dist/v2/features/modal/helpers/resolve-route-parameters.js +15 -4
  193. package/dist/v2/features/modal/helpers/resolve-route-parameters.js.map +1 -1
  194. package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts.map +1 -1
  195. package/dist/v2/features/modal/hooks/use-modal-sidebar.js +5 -1
  196. package/dist/v2/features/modal/hooks/use-modal-sidebar.js.map +1 -1
  197. package/dist/v2/features/modal/index.js +1 -1
  198. package/dist/v2/features/modal/modal-events.d.ts.map +1 -1
  199. package/dist/v2/features/modal/modal-events.js +10 -6
  200. package/dist/v2/features/modal/modal-events.js.map +1 -1
  201. package/dist/v2/features/operation/Operation.vue.d.ts +35 -3
  202. package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
  203. package/dist/v2/features/operation/Operation.vue.js.map +1 -1
  204. package/dist/v2/features/operation/Operation.vue.script.js +1 -9
  205. package/dist/v2/features/operation/Operation.vue.script.js.map +1 -1
  206. package/dist/v2/helpers/handle-hotkeys.d.ts.map +1 -1
  207. package/dist/v2/helpers/handle-hotkeys.js +4 -0
  208. package/dist/v2/helpers/handle-hotkeys.js.map +1 -1
  209. package/dist/v2/helpers/test-utils.d.ts +2 -0
  210. package/dist/v2/helpers/test-utils.d.ts.map +1 -1
  211. package/dist/v2/helpers/test-utils.js +18 -0
  212. package/dist/v2/helpers/test-utils.js.map +1 -0
  213. package/dist/v2/hooks/index.d.ts +2 -0
  214. package/dist/v2/hooks/index.d.ts.map +1 -0
  215. package/dist/v2/hooks/index.js +2 -0
  216. package/dist/v2/types/options.d.ts +1 -1
  217. package/dist/v2/types/options.d.ts.map +1 -1
  218. package/dist/v2/workspace-events.d.ts.map +1 -1
  219. package/dist/v2/workspace-events.js +2 -0
  220. package/dist/v2/workspace-events.js.map +1 -1
  221. package/dist/vue-styles.css +108 -658
  222. package/package.json +67 -96
  223. package/dist/components/IconSelector.vue.d.ts +0 -27
  224. package/dist/components/IconSelector.vue.d.ts.map +0 -1
  225. package/dist/components/IconSelector.vue.js +0 -7
  226. package/dist/components/IconSelector.vue.js.map +0 -1
  227. package/dist/components/IconSelector.vue.script.js +0 -65
  228. package/dist/components/IconSelector.vue.script.js.map +0 -1
  229. package/dist/components/ImportCollection/IntegrationLogo.vue.d.ts +0 -7
  230. package/dist/components/ImportCollection/IntegrationLogo.vue.d.ts.map +0 -1
  231. package/dist/components/ImportCollection/IntegrationLogo.vue.js +0 -7
  232. package/dist/components/ImportCollection/IntegrationLogo.vue.js.map +0 -1
  233. package/dist/components/ImportCollection/IntegrationLogo.vue.script.js +0 -50
  234. package/dist/components/ImportCollection/IntegrationLogo.vue.script.js.map +0 -1
  235. package/dist/components/ScalarAsciiArt.vue.d.ts.map +0 -1
  236. package/dist/components/ScalarAsciiArt.vue.js.map +0 -1
  237. package/dist/components/ScalarAsciiArt.vue.script.js.map +0 -1
  238. package/dist/index.d.ts +0 -2
  239. package/dist/index.d.ts.map +0 -1
  240. package/dist/monacoeditorwork/editor.worker.bundle.js +0 -14319
  241. package/dist/monacoeditorwork/json.worker.bundle.js +0 -22098
  242. package/dist/monacoeditorwork/yaml.worker.bundle.js +0 -38414
  243. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +0 -42
  244. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +0 -1
  245. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +0 -61
  246. package/dist/v2/blocks/request-block/helpers/get-default-headers.js.map +0 -1
  247. package/dist/v2/features/app/App.vue.d.ts +0 -75
  248. package/dist/v2/features/app/App.vue.d.ts.map +0 -1
  249. package/dist/v2/features/app/App.vue.js +0 -8
  250. package/dist/v2/features/app/App.vue.js.map +0 -1
  251. package/dist/v2/features/app/App.vue.script.js +0 -282
  252. package/dist/v2/features/app/App.vue.script.js.map +0 -1
  253. package/dist/v2/features/app/app-events.d.ts +0 -20
  254. package/dist/v2/features/app/app-events.d.ts.map +0 -1
  255. package/dist/v2/features/app/app-events.js +0 -254
  256. package/dist/v2/features/app/app-events.js.map +0 -1
  257. package/dist/v2/features/app/app-state.d.ts +0 -156
  258. package/dist/v2/features/app/app-state.d.ts.map +0 -1
  259. package/dist/v2/features/app/app-state.js +0 -717
  260. package/dist/v2/features/app/app-state.js.map +0 -1
  261. package/dist/v2/features/app/components/AppHeader.vue.d.ts +0 -43
  262. package/dist/v2/features/app/components/AppHeader.vue.d.ts.map +0 -1
  263. package/dist/v2/features/app/components/AppHeader.vue.js +0 -7
  264. package/dist/v2/features/app/components/AppHeader.vue.js.map +0 -1
  265. package/dist/v2/features/app/components/AppHeader.vue.script.js +0 -52
  266. package/dist/v2/features/app/components/AppHeader.vue.script.js.map +0 -1
  267. package/dist/v2/features/app/components/AppHeaderActions.vue.d.ts +0 -32
  268. package/dist/v2/features/app/components/AppHeaderActions.vue.d.ts.map +0 -1
  269. package/dist/v2/features/app/components/AppHeaderActions.vue.js +0 -7
  270. package/dist/v2/features/app/components/AppHeaderActions.vue.js.map +0 -1
  271. package/dist/v2/features/app/components/AppHeaderActions.vue.script.js +0 -170
  272. package/dist/v2/features/app/components/AppHeaderActions.vue.script.js.map +0 -1
  273. package/dist/v2/features/app/components/AppSidebar.vue.d.ts +0 -39
  274. package/dist/v2/features/app/components/AppSidebar.vue.d.ts.map +0 -1
  275. package/dist/v2/features/app/components/AppSidebar.vue.js +0 -9
  276. package/dist/v2/features/app/components/AppSidebar.vue.js.map +0 -1
  277. package/dist/v2/features/app/components/AppSidebar.vue.script.js +0 -470
  278. package/dist/v2/features/app/components/AppSidebar.vue.script.js.map +0 -1
  279. package/dist/v2/features/app/components/CreateVersionModal.vue.d.ts +0 -28
  280. package/dist/v2/features/app/components/CreateVersionModal.vue.d.ts.map +0 -1
  281. package/dist/v2/features/app/components/CreateVersionModal.vue.js +0 -7
  282. package/dist/v2/features/app/components/CreateVersionModal.vue.js.map +0 -1
  283. package/dist/v2/features/app/components/CreateVersionModal.vue.script.js +0 -84
  284. package/dist/v2/features/app/components/CreateVersionModal.vue.script.js.map +0 -1
  285. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.d.ts +0 -16
  286. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.d.ts.map +0 -1
  287. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js +0 -7
  288. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js.map +0 -1
  289. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.script.js +0 -58
  290. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.script.js.map +0 -1
  291. package/dist/v2/features/app/components/DesktopTab.vue.d.ts +0 -27
  292. package/dist/v2/features/app/components/DesktopTab.vue.d.ts.map +0 -1
  293. package/dist/v2/features/app/components/DesktopTab.vue.js +0 -9
  294. package/dist/v2/features/app/components/DesktopTab.vue.js.map +0 -1
  295. package/dist/v2/features/app/components/DesktopTab.vue.script.js +0 -121
  296. package/dist/v2/features/app/components/DesktopTab.vue.script.js.map +0 -1
  297. package/dist/v2/features/app/components/DesktopTabs.vue.d.ts +0 -14
  298. package/dist/v2/features/app/components/DesktopTabs.vue.d.ts.map +0 -1
  299. package/dist/v2/features/app/components/DesktopTabs.vue.js +0 -7
  300. package/dist/v2/features/app/components/DesktopTabs.vue.js.map +0 -1
  301. package/dist/v2/features/app/components/DesktopTabs.vue.script.js +0 -75
  302. package/dist/v2/features/app/components/DesktopTabs.vue.script.js.map +0 -1
  303. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.d.ts +0 -25
  304. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.d.ts.map +0 -1
  305. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.js +0 -9
  306. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.js.map +0 -1
  307. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.script.js +0 -345
  308. package/dist/v2/features/app/components/DocumentBreadcrumb.vue.script.js.map +0 -1
  309. package/dist/v2/features/app/components/DocumentSyncIndicator.vue.d.ts +0 -16
  310. package/dist/v2/features/app/components/DocumentSyncIndicator.vue.d.ts.map +0 -1
  311. package/dist/v2/features/app/components/PublishDocumentModal.vue.d.ts +0 -77
  312. package/dist/v2/features/app/components/PublishDocumentModal.vue.d.ts.map +0 -1
  313. package/dist/v2/features/app/components/PublishDocumentModal.vue.js +0 -7
  314. package/dist/v2/features/app/components/PublishDocumentModal.vue.js.map +0 -1
  315. package/dist/v2/features/app/components/PublishDocumentModal.vue.script.js +0 -209
  316. package/dist/v2/features/app/components/PublishDocumentModal.vue.script.js.map +0 -1
  317. package/dist/v2/features/app/components/SidebarDocument.vue.d.ts +0 -45
  318. package/dist/v2/features/app/components/SidebarDocument.vue.d.ts.map +0 -1
  319. package/dist/v2/features/app/components/SidebarDocument.vue.js +0 -7
  320. package/dist/v2/features/app/components/SidebarDocument.vue.js.map +0 -1
  321. package/dist/v2/features/app/components/SidebarDocument.vue.script.js +0 -137
  322. package/dist/v2/features/app/components/SidebarDocument.vue.script.js.map +0 -1
  323. package/dist/v2/features/app/components/SidebarItemMenu.vue.d.ts +0 -26
  324. package/dist/v2/features/app/components/SidebarItemMenu.vue.d.ts.map +0 -1
  325. package/dist/v2/features/app/components/SidebarItemMenu.vue.js +0 -7
  326. package/dist/v2/features/app/components/SidebarItemMenu.vue.js.map +0 -1
  327. package/dist/v2/features/app/components/SidebarItemMenu.vue.script.js +0 -175
  328. package/dist/v2/features/app/components/SidebarItemMenu.vue.script.js.map +0 -1
  329. package/dist/v2/features/app/components/SplashScreen.vue.d.ts +0 -4
  330. package/dist/v2/features/app/components/SplashScreen.vue.d.ts.map +0 -1
  331. package/dist/v2/features/app/components/SplashScreen.vue.js +0 -9
  332. package/dist/v2/features/app/components/SplashScreen.vue.js.map +0 -1
  333. package/dist/v2/features/app/components/SplashScreen.vue.script.js +0 -20
  334. package/dist/v2/features/app/components/SplashScreen.vue.script.js.map +0 -1
  335. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.d.ts +0 -18
  336. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.d.ts.map +0 -1
  337. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.js +0 -9
  338. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.js.map +0 -1
  339. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.script.js +0 -136
  340. package/dist/v2/features/app/components/SyncConflictResolutionEditor.vue.script.js.map +0 -1
  341. package/dist/v2/features/app/components/index.d.ts +0 -2
  342. package/dist/v2/features/app/components/index.d.ts.map +0 -1
  343. package/dist/v2/features/app/components/index.js +0 -2
  344. package/dist/v2/features/app/helpers/check-version-conflict.d.ts +0 -54
  345. package/dist/v2/features/app/helpers/check-version-conflict.d.ts.map +0 -1
  346. package/dist/v2/features/app/helpers/check-version-conflict.js +0 -82
  347. package/dist/v2/features/app/helpers/check-version-conflict.js.map +0 -1
  348. package/dist/v2/features/app/helpers/compute-version-status.d.ts +0 -45
  349. package/dist/v2/features/app/helpers/compute-version-status.d.ts.map +0 -1
  350. package/dist/v2/features/app/helpers/compute-version-status.js +0 -18
  351. package/dist/v2/features/app/helpers/compute-version-status.js.map +0 -1
  352. package/dist/v2/features/app/helpers/create-api-client-app.d.ts +0 -59
  353. package/dist/v2/features/app/helpers/create-api-client-app.d.ts.map +0 -1
  354. package/dist/v2/features/app/helpers/create-api-client-app.js +0 -55
  355. package/dist/v2/features/app/helpers/create-api-client-app.js.map +0 -1
  356. package/dist/v2/features/app/helpers/create-draft-registry-document.d.ts +0 -39
  357. package/dist/v2/features/app/helpers/create-draft-registry-document.d.ts.map +0 -1
  358. package/dist/v2/features/app/helpers/create-draft-registry-document.js +0 -64
  359. package/dist/v2/features/app/helpers/create-draft-registry-document.js.map +0 -1
  360. package/dist/v2/features/app/helpers/create-temp-operation.d.ts +0 -14
  361. package/dist/v2/features/app/helpers/create-temp-operation.d.ts.map +0 -1
  362. package/dist/v2/features/app/helpers/create-temp-operation.js +0 -52
  363. package/dist/v2/features/app/helpers/create-temp-operation.js.map +0 -1
  364. package/dist/v2/features/app/helpers/detect-document-conflicts.d.ts +0 -26
  365. package/dist/v2/features/app/helpers/detect-document-conflicts.d.ts.map +0 -1
  366. package/dist/v2/features/app/helpers/detect-document-conflicts.js +0 -27
  367. package/dist/v2/features/app/helpers/detect-document-conflicts.js.map +0 -1
  368. package/dist/v2/features/app/helpers/filter-workspaces.d.ts +0 -49
  369. package/dist/v2/features/app/helpers/filter-workspaces.d.ts.map +0 -1
  370. package/dist/v2/features/app/helpers/filter-workspaces.js +0 -55
  371. package/dist/v2/features/app/helpers/filter-workspaces.js.map +0 -1
  372. package/dist/v2/features/app/helpers/get-route-param.d.ts +0 -7
  373. package/dist/v2/features/app/helpers/get-route-param.d.ts.map +0 -1
  374. package/dist/v2/features/app/helpers/get-route-param.js +0 -12
  375. package/dist/v2/features/app/helpers/get-route-param.js.map +0 -1
  376. package/dist/v2/features/app/helpers/group-workspaces.d.ts +0 -44
  377. package/dist/v2/features/app/helpers/group-workspaces.d.ts.map +0 -1
  378. package/dist/v2/features/app/helpers/group-workspaces.js +0 -53
  379. package/dist/v2/features/app/helpers/group-workspaces.js.map +0 -1
  380. package/dist/v2/features/app/helpers/load-registry-document.d.ts +0 -24
  381. package/dist/v2/features/app/helpers/load-registry-document.d.ts.map +0 -1
  382. package/dist/v2/features/app/helpers/load-registry-document.js +0 -47
  383. package/dist/v2/features/app/helpers/load-registry-document.js.map +0 -1
  384. package/dist/v2/features/app/helpers/registry-error-messages.d.ts +0 -23
  385. package/dist/v2/features/app/helpers/registry-error-messages.d.ts.map +0 -1
  386. package/dist/v2/features/app/helpers/registry-error-messages.js +0 -63
  387. package/dist/v2/features/app/helpers/registry-error-messages.js.map +0 -1
  388. package/dist/v2/features/app/helpers/routes.d.ts +0 -184
  389. package/dist/v2/features/app/helpers/routes.d.ts.map +0 -1
  390. package/dist/v2/features/app/helpers/routes.js +0 -153
  391. package/dist/v2/features/app/helpers/routes.js.map +0 -1
  392. package/dist/v2/features/app/helpers/version-status-presentation.d.ts +0 -24
  393. package/dist/v2/features/app/helpers/version-status-presentation.d.ts.map +0 -1
  394. package/dist/v2/features/app/helpers/version-status-presentation.js +0 -43
  395. package/dist/v2/features/app/helpers/version-status-presentation.js.map +0 -1
  396. package/dist/v2/features/app/hooks/use-active-document-version.d.ts +0 -42
  397. package/dist/v2/features/app/hooks/use-active-document-version.d.ts.map +0 -1
  398. package/dist/v2/features/app/hooks/use-active-document-version.js +0 -60
  399. package/dist/v2/features/app/hooks/use-active-document-version.js.map +0 -1
  400. package/dist/v2/features/app/hooks/use-document-filter.d.ts +0 -38
  401. package/dist/v2/features/app/hooks/use-document-filter.d.ts.map +0 -1
  402. package/dist/v2/features/app/hooks/use-document-filter.js +0 -63
  403. package/dist/v2/features/app/hooks/use-document-filter.js.map +0 -1
  404. package/dist/v2/features/app/hooks/use-document-sync.d.ts +0 -126
  405. package/dist/v2/features/app/hooks/use-document-sync.d.ts.map +0 -1
  406. package/dist/v2/features/app/hooks/use-document-sync.js +0 -448
  407. package/dist/v2/features/app/hooks/use-document-sync.js.map +0 -1
  408. package/dist/v2/features/app/hooks/use-document-watcher.d.ts +0 -30
  409. package/dist/v2/features/app/hooks/use-document-watcher.d.ts.map +0 -1
  410. package/dist/v2/features/app/hooks/use-document-watcher.js +0 -168
  411. package/dist/v2/features/app/hooks/use-document-watcher.js.map +0 -1
  412. package/dist/v2/features/app/hooks/use-network-status.d.ts +0 -29
  413. package/dist/v2/features/app/hooks/use-network-status.d.ts.map +0 -1
  414. package/dist/v2/features/app/hooks/use-network-status.js +0 -58
  415. package/dist/v2/features/app/hooks/use-network-status.js.map +0 -1
  416. package/dist/v2/features/app/hooks/use-sidebar-context-menu.d.ts +0 -17258
  417. package/dist/v2/features/app/hooks/use-sidebar-context-menu.d.ts.map +0 -1
  418. package/dist/v2/features/app/hooks/use-sidebar-context-menu.js +0 -107
  419. package/dist/v2/features/app/hooks/use-sidebar-context-menu.js.map +0 -1
  420. package/dist/v2/features/app/hooks/use-sidebar-documents.d.ts +0 -119
  421. package/dist/v2/features/app/hooks/use-sidebar-documents.d.ts.map +0 -1
  422. package/dist/v2/features/app/hooks/use-sidebar-documents.js +0 -219
  423. package/dist/v2/features/app/hooks/use-sidebar-documents.js.map +0 -1
  424. package/dist/v2/features/app/hooks/use-theme.d.ts +0 -56
  425. package/dist/v2/features/app/hooks/use-theme.d.ts.map +0 -1
  426. package/dist/v2/features/app/hooks/use-theme.js +0 -94
  427. package/dist/v2/features/app/hooks/use-theme.js.map +0 -1
  428. package/dist/v2/features/app/hooks/use-version-conflict-check.d.ts +0 -35
  429. package/dist/v2/features/app/hooks/use-version-conflict-check.d.ts.map +0 -1
  430. package/dist/v2/features/app/hooks/use-version-conflict-check.js +0 -62
  431. package/dist/v2/features/app/hooks/use-version-conflict-check.js.map +0 -1
  432. package/dist/v2/features/app/index.d.ts +0 -10
  433. package/dist/v2/features/app/index.d.ts.map +0 -1
  434. package/dist/v2/features/app/index.js +0 -8
  435. package/dist/v2/features/collection/DocumentCollection.vue.d.ts +0 -13
  436. package/dist/v2/features/collection/DocumentCollection.vue.d.ts.map +0 -1
  437. package/dist/v2/features/collection/DocumentCollection.vue.js +0 -8
  438. package/dist/v2/features/collection/DocumentCollection.vue.js.map +0 -1
  439. package/dist/v2/features/collection/DocumentCollection.vue.script.js +0 -112
  440. package/dist/v2/features/collection/DocumentCollection.vue.script.js.map +0 -1
  441. package/dist/v2/features/collection/OperationCollection.vue.d.ts +0 -6
  442. package/dist/v2/features/collection/OperationCollection.vue.d.ts.map +0 -1
  443. package/dist/v2/features/collection/OperationCollection.vue.js +0 -7
  444. package/dist/v2/features/collection/OperationCollection.vue.js.map +0 -1
  445. package/dist/v2/features/collection/OperationCollection.vue.script.js +0 -95
  446. package/dist/v2/features/collection/OperationCollection.vue.script.js.map +0 -1
  447. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +0 -6
  448. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts.map +0 -1
  449. package/dist/v2/features/collection/WorkspaceCollection.vue.js +0 -7
  450. package/dist/v2/features/collection/WorkspaceCollection.vue.js.map +0 -1
  451. package/dist/v2/features/collection/WorkspaceCollection.vue.script.js +0 -74
  452. package/dist/v2/features/collection/WorkspaceCollection.vue.script.js.map +0 -1
  453. package/dist/v2/features/collection/components/Authentication.vue.d.ts +0 -16
  454. package/dist/v2/features/collection/components/Authentication.vue.d.ts.map +0 -1
  455. package/dist/v2/features/collection/components/Authentication.vue.js +0 -9
  456. package/dist/v2/features/collection/components/Authentication.vue.js.map +0 -1
  457. package/dist/v2/features/collection/components/Authentication.vue.script.js +0 -174
  458. package/dist/v2/features/collection/components/Authentication.vue.script.js.map +0 -1
  459. package/dist/v2/features/collection/components/Cookies.vue.d.ts +0 -21
  460. package/dist/v2/features/collection/components/Cookies.vue.d.ts.map +0 -1
  461. package/dist/v2/features/collection/components/Cookies.vue.js +0 -7
  462. package/dist/v2/features/collection/components/Cookies.vue.js.map +0 -1
  463. package/dist/v2/features/collection/components/Cookies.vue.script.js +0 -58
  464. package/dist/v2/features/collection/components/Cookies.vue.script.js.map +0 -1
  465. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.d.ts +0 -12
  466. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.d.ts.map +0 -1
  467. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.js +0 -9
  468. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.js.map +0 -1
  469. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.script.js +0 -174
  470. package/dist/v2/features/collection/components/DocumentScriptsEditors.vue.script.js.map +0 -1
  471. package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +0 -16
  472. package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts.map +0 -1
  473. package/dist/v2/features/collection/components/Editor/Editor.vue.js +0 -9
  474. package/dist/v2/features/collection/components/Editor/Editor.vue.js.map +0 -1
  475. package/dist/v2/features/collection/components/Editor/Editor.vue.script.js +0 -361
  476. package/dist/v2/features/collection/components/Editor/Editor.vue.script.js.map +0 -1
  477. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.d.ts +0 -19
  478. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.d.ts.map +0 -1
  479. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js +0 -7
  480. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js.map +0 -1
  481. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.script.js +0 -69
  482. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.script.js.map +0 -1
  483. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.d.ts +0 -16
  484. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.d.ts.map +0 -1
  485. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js +0 -7
  486. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js.map +0 -1
  487. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.script.js +0 -91
  488. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.script.js.map +0 -1
  489. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.d.ts +0 -12
  490. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.d.ts.map +0 -1
  491. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js +0 -22
  492. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js.map +0 -1
  493. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.d.ts +0 -11
  494. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.d.ts.map +0 -1
  495. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js +0 -17
  496. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js.map +0 -1
  497. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.d.ts +0 -7
  498. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.d.ts.map +0 -1
  499. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js +0 -17
  500. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js.map +0 -1
  501. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.d.ts +0 -10
  502. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.d.ts.map +0 -1
  503. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +0 -34
  504. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js.map +0 -1
  505. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.d.ts +0 -10
  506. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.d.ts.map +0 -1
  507. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js +0 -18
  508. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js.map +0 -1
  509. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.d.ts +0 -15
  510. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.d.ts.map +0 -1
  511. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js +0 -36
  512. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js.map +0 -1
  513. package/dist/v2/features/collection/components/Editor/index.d.ts +0 -2
  514. package/dist/v2/features/collection/components/Editor/index.d.ts.map +0 -1
  515. package/dist/v2/features/collection/components/Editor/index.js +0 -2
  516. package/dist/v2/features/collection/components/Environment.vue.d.ts +0 -21
  517. package/dist/v2/features/collection/components/Environment.vue.d.ts.map +0 -1
  518. package/dist/v2/features/collection/components/Environment.vue.js +0 -7
  519. package/dist/v2/features/collection/components/Environment.vue.js.map +0 -1
  520. package/dist/v2/features/collection/components/Environment.vue.script.js +0 -61
  521. package/dist/v2/features/collection/components/Environment.vue.script.js.map +0 -1
  522. package/dist/v2/features/collection/components/Form.vue.d.ts +0 -29
  523. package/dist/v2/features/collection/components/Form.vue.d.ts.map +0 -1
  524. package/dist/v2/features/collection/components/Form.vue.js +0 -7
  525. package/dist/v2/features/collection/components/Form.vue.js.map +0 -1
  526. package/dist/v2/features/collection/components/Form.vue.script.js +0 -78
  527. package/dist/v2/features/collection/components/Form.vue.script.js.map +0 -1
  528. package/dist/v2/features/collection/components/GetStarted.vue.d.ts +0 -21
  529. package/dist/v2/features/collection/components/GetStarted.vue.d.ts.map +0 -1
  530. package/dist/v2/features/collection/components/GetStarted.vue.js +0 -7
  531. package/dist/v2/features/collection/components/GetStarted.vue.js.map +0 -1
  532. package/dist/v2/features/collection/components/GetStarted.vue.script.js +0 -144
  533. package/dist/v2/features/collection/components/GetStarted.vue.script.js.map +0 -1
  534. package/dist/v2/features/collection/components/LabelInput.vue.d.ts +0 -18
  535. package/dist/v2/features/collection/components/LabelInput.vue.d.ts.map +0 -1
  536. package/dist/v2/features/collection/components/LabelInput.vue.js +0 -9
  537. package/dist/v2/features/collection/components/LabelInput.vue.js.map +0 -1
  538. package/dist/v2/features/collection/components/LabelInput.vue.script.js +0 -38
  539. package/dist/v2/features/collection/components/LabelInput.vue.script.js.map +0 -1
  540. package/dist/v2/features/collection/components/Overview.vue.d.ts +0 -16
  541. package/dist/v2/features/collection/components/Overview.vue.d.ts.map +0 -1
  542. package/dist/v2/features/collection/components/Overview.vue.js +0 -9
  543. package/dist/v2/features/collection/components/Overview.vue.js.map +0 -1
  544. package/dist/v2/features/collection/components/Overview.vue.script.js +0 -204
  545. package/dist/v2/features/collection/components/Overview.vue.script.js.map +0 -1
  546. package/dist/v2/features/collection/components/Runner/components/Runner.vue.d.ts +0 -16
  547. package/dist/v2/features/collection/components/Runner/components/Runner.vue.d.ts.map +0 -1
  548. package/dist/v2/features/collection/components/Runner/components/Runner.vue.js +0 -7
  549. package/dist/v2/features/collection/components/Runner/components/Runner.vue.js.map +0 -1
  550. package/dist/v2/features/collection/components/Runner/components/Runner.vue.script.js +0 -223
  551. package/dist/v2/features/collection/components/Runner/components/Runner.vue.script.js.map +0 -1
  552. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.d.ts +0 -20
  553. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.d.ts.map +0 -1
  554. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.js +0 -7
  555. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.js.map +0 -1
  556. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.script.js +0 -45
  557. package/dist/v2/features/collection/components/Runner/components/RunnerCard.vue.script.js.map +0 -1
  558. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.d.ts +0 -19
  559. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.d.ts.map +0 -1
  560. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.js +0 -7
  561. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.js.map +0 -1
  562. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.script.js +0 -73
  563. package/dist/v2/features/collection/components/Runner/components/RunnerOrderItem.vue.script.js.map +0 -1
  564. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.d.ts +0 -16
  565. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.d.ts.map +0 -1
  566. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.js +0 -7
  567. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.js.map +0 -1
  568. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.script.js +0 -124
  569. package/dist/v2/features/collection/components/Runner/components/RunnerResultRow.vue.script.js.map +0 -1
  570. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.d.ts +0 -17
  571. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.d.ts.map +0 -1
  572. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.js +0 -7
  573. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.js.map +0 -1
  574. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.script.js +0 -126
  575. package/dist/v2/features/collection/components/Runner/components/RunnerResults.vue.script.js.map +0 -1
  576. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.d.ts +0 -18
  577. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.d.ts.map +0 -1
  578. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.js +0 -7
  579. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.js.map +0 -1
  580. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.script.js +0 -180
  581. package/dist/v2/features/collection/components/Runner/components/RunnerTree.vue.script.js.map +0 -1
  582. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.d.ts +0 -14
  583. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.d.ts.map +0 -1
  584. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.js +0 -7
  585. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.js.map +0 -1
  586. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.script.js +0 -44
  587. package/dist/v2/features/collection/components/Runner/components/RunnerTreeExample.vue.script.js.map +0 -1
  588. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.d.ts +0 -19
  589. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.d.ts.map +0 -1
  590. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.js +0 -7
  591. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.js.map +0 -1
  592. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.script.js +0 -53
  593. package/dist/v2/features/collection/components/Runner/components/RunnerTreeGroup.vue.script.js.map +0 -1
  594. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.d.ts +0 -23
  595. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.d.ts.map +0 -1
  596. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.js +0 -7
  597. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.js.map +0 -1
  598. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.script.js +0 -75
  599. package/dist/v2/features/collection/components/Runner/components/RunnerTreeOperation.vue.script.js.map +0 -1
  600. package/dist/v2/features/collection/components/Runner/hooks/index.d.ts +0 -3
  601. package/dist/v2/features/collection/components/Runner/hooks/index.d.ts.map +0 -1
  602. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.d.ts +0 -75
  603. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.d.ts.map +0 -1
  604. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.js +0 -191
  605. package/dist/v2/features/collection/components/Runner/hooks/use-runner-execution.js.map +0 -1
  606. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.d.ts +0 -46
  607. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.d.ts.map +0 -1
  608. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.js +0 -114
  609. package/dist/v2/features/collection/components/Runner/hooks/use-runner-selection.js.map +0 -1
  610. package/dist/v2/features/collection/components/Runner/index.d.ts +0 -2
  611. package/dist/v2/features/collection/components/Runner/index.d.ts.map +0 -1
  612. package/dist/v2/features/collection/components/Scripts.vue.d.ts +0 -16
  613. package/dist/v2/features/collection/components/Scripts.vue.d.ts.map +0 -1
  614. package/dist/v2/features/collection/components/Scripts.vue.js +0 -7
  615. package/dist/v2/features/collection/components/Scripts.vue.js.map +0 -1
  616. package/dist/v2/features/collection/components/Scripts.vue.script.js +0 -49
  617. package/dist/v2/features/collection/components/Scripts.vue.script.js.map +0 -1
  618. package/dist/v2/features/collection/components/Servers.vue.d.ts +0 -16
  619. package/dist/v2/features/collection/components/Servers.vue.d.ts.map +0 -1
  620. package/dist/v2/features/collection/components/Servers.vue.js +0 -7
  621. package/dist/v2/features/collection/components/Servers.vue.js.map +0 -1
  622. package/dist/v2/features/collection/components/Servers.vue.script.js +0 -219
  623. package/dist/v2/features/collection/components/Servers.vue.script.js.map +0 -1
  624. package/dist/v2/features/collection/components/Settings.vue.d.ts +0 -16
  625. package/dist/v2/features/collection/components/Settings.vue.d.ts.map +0 -1
  626. package/dist/v2/features/collection/components/Settings.vue.js +0 -7
  627. package/dist/v2/features/collection/components/Settings.vue.js.map +0 -1
  628. package/dist/v2/features/collection/components/Settings.vue.script.js +0 -81
  629. package/dist/v2/features/collection/components/Settings.vue.script.js.map +0 -1
  630. package/dist/v2/features/collection/components/Tabs.vue.d.ts +0 -8
  631. package/dist/v2/features/collection/components/Tabs.vue.d.ts.map +0 -1
  632. package/dist/v2/features/collection/components/Tabs.vue.js +0 -7
  633. package/dist/v2/features/collection/components/Tabs.vue.js.map +0 -1
  634. package/dist/v2/features/collection/components/Tabs.vue.script.js +0 -55
  635. package/dist/v2/features/collection/components/Tabs.vue.script.js.map +0 -1
  636. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.d.ts +0 -12
  637. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.d.ts.map +0 -1
  638. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js +0 -19
  639. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js.map +0 -1
  640. package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts +0 -42
  641. package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts.map +0 -1
  642. package/dist/v2/features/command-palette/TheCommandPalette.vue.js +0 -9
  643. package/dist/v2/features/command-palette/TheCommandPalette.vue.js.map +0 -1
  644. package/dist/v2/features/command-palette/TheCommandPalette.vue.script.js +0 -189
  645. package/dist/v2/features/command-palette/TheCommandPalette.vue.script.js.map +0 -1
  646. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.d.ts +0 -49
  647. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.d.ts.map +0 -1
  648. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +0 -7
  649. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js.map +0 -1
  650. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.script.js +0 -207
  651. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.script.js.map +0 -1
  652. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.d.ts +0 -53
  653. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.d.ts.map +0 -1
  654. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +0 -7
  655. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js.map +0 -1
  656. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.script.js +0 -225
  657. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.script.js.map +0 -1
  658. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.d.ts +0 -44
  659. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.d.ts.map +0 -1
  660. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js +0 -9
  661. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js.map +0 -1
  662. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.script.js +0 -125
  663. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.script.js.map +0 -1
  664. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.d.ts +0 -30
  665. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.d.ts.map +0 -1
  666. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.js +0 -7
  667. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.js.map +0 -1
  668. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.script.js +0 -156
  669. package/dist/v2/features/command-palette/components/CommandPaletteImportPostman.vue.script.js.map +0 -1
  670. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.d.ts +0 -37
  671. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.d.ts.map +0 -1
  672. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js +0 -7
  673. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js.map +0 -1
  674. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.script.js +0 -105
  675. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.script.js.map +0 -1
  676. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.d.ts +0 -48
  677. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.d.ts.map +0 -1
  678. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +0 -7
  679. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js.map +0 -1
  680. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.script.js +0 -226
  681. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.script.js.map +0 -1
  682. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.d.ts +0 -65
  683. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.d.ts.map +0 -1
  684. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +0 -7
  685. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js.map +0 -1
  686. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.script.js +0 -126
  687. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.script.js.map +0 -1
  688. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.d.ts +0 -58
  689. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.d.ts.map +0 -1
  690. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.js +0 -9
  691. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.js.map +0 -1
  692. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.script.js +0 -142
  693. package/dist/v2/features/command-palette/components/PostmanImportPreview.vue.script.js.map +0 -1
  694. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.d.ts +0 -23
  695. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.d.ts.map +0 -1
  696. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.js +0 -9
  697. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.js.map +0 -1
  698. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.script.js +0 -138
  699. package/dist/v2/features/command-palette/components/PostmanRequestTreeRow.vue.script.js.map +0 -1
  700. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.d.ts +0 -34
  701. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.d.ts.map +0 -1
  702. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js +0 -7
  703. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js.map +0 -1
  704. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.script.js +0 -39
  705. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.script.js.map +0 -1
  706. package/dist/v2/features/command-palette/helpers/generate-unique-slug.d.ts +0 -20
  707. package/dist/v2/features/command-palette/helpers/generate-unique-slug.d.ts.map +0 -1
  708. package/dist/v2/features/command-palette/helpers/generate-unique-slug.js +0 -33
  709. package/dist/v2/features/command-palette/helpers/generate-unique-slug.js.map +0 -1
  710. package/dist/v2/features/command-palette/helpers/get-merge-key.d.ts +0 -11
  711. package/dist/v2/features/command-palette/helpers/get-merge-key.d.ts.map +0 -1
  712. package/dist/v2/features/command-palette/helpers/get-merge-key.js +0 -32
  713. package/dist/v2/features/command-palette/helpers/get-merge-key.js.map +0 -1
  714. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.d.ts +0 -24
  715. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.d.ts.map +0 -1
  716. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js +0 -56
  717. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js.map +0 -1
  718. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.d.ts +0 -24
  719. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.d.ts.map +0 -1
  720. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js +0 -22
  721. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js.map +0 -1
  722. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.d.ts +0 -26
  723. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.d.ts.map +0 -1
  724. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +0 -119
  725. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js.map +0 -1
  726. package/dist/v2/features/command-palette/helpers/get-postman-convert-options.d.ts +0 -14
  727. package/dist/v2/features/command-palette/helpers/get-postman-convert-options.d.ts.map +0 -1
  728. package/dist/v2/features/command-palette/helpers/get-postman-convert-options.js +0 -19
  729. package/dist/v2/features/command-palette/helpers/get-postman-convert-options.js.map +0 -1
  730. package/dist/v2/features/command-palette/helpers/get-postman-document-details.d.ts +0 -28
  731. package/dist/v2/features/command-palette/helpers/get-postman-document-details.d.ts.map +0 -1
  732. package/dist/v2/features/command-palette/helpers/get-postman-document-details.js +0 -36
  733. package/dist/v2/features/command-palette/helpers/get-postman-document-details.js.map +0 -1
  734. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.d.ts +0 -30
  735. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.d.ts.map +0 -1
  736. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js +0 -70
  737. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js.map +0 -1
  738. package/dist/v2/features/command-palette/helpers/load-document-from-source.d.ts +0 -20
  739. package/dist/v2/features/command-palette/helpers/load-document-from-source.d.ts.map +0 -1
  740. package/dist/v2/features/command-palette/helpers/load-document-from-source.js +0 -71
  741. package/dist/v2/features/command-palette/helpers/load-document-from-source.js.map +0 -1
  742. package/dist/v2/features/command-palette/helpers/parse-curl.d.ts +0 -14
  743. package/dist/v2/features/command-palette/helpers/parse-curl.d.ts.map +0 -1
  744. package/dist/v2/features/command-palette/helpers/parse-curl.js +0 -106
  745. package/dist/v2/features/command-palette/helpers/parse-curl.js.map +0 -1
  746. package/dist/v2/features/command-palette/helpers/postman-request-collisions.d.ts +0 -11
  747. package/dist/v2/features/command-palette/helpers/postman-request-collisions.d.ts.map +0 -1
  748. package/dist/v2/features/command-palette/helpers/postman-request-collisions.js +0 -35
  749. package/dist/v2/features/command-palette/helpers/postman-request-collisions.js.map +0 -1
  750. package/dist/v2/features/command-palette/helpers/postman-request-tree.d.ts +0 -41
  751. package/dist/v2/features/command-palette/helpers/postman-request-tree.d.ts.map +0 -1
  752. package/dist/v2/features/command-palette/helpers/postman-request-tree.js +0 -139
  753. package/dist/v2/features/command-palette/helpers/postman-request-tree.js.map +0 -1
  754. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +0 -426
  755. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +0 -1
  756. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +0 -207
  757. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js.map +0 -1
  758. package/dist/v2/features/editor/config.d.ts +0 -16
  759. package/dist/v2/features/editor/config.d.ts.map +0 -1
  760. package/dist/v2/features/editor/config.js +0 -19
  761. package/dist/v2/features/editor/config.js.map +0 -1
  762. package/dist/v2/features/editor/helpers/configure-language-support.d.ts +0 -13
  763. package/dist/v2/features/editor/helpers/configure-language-support.d.ts.map +0 -1
  764. package/dist/v2/features/editor/helpers/configure-language-support.js +0 -48
  765. package/dist/v2/features/editor/helpers/configure-language-support.js.map +0 -1
  766. package/dist/v2/features/editor/helpers/ensure-monaco-environment.d.ts +0 -6
  767. package/dist/v2/features/editor/helpers/ensure-monaco-environment.d.ts.map +0 -1
  768. package/dist/v2/features/editor/helpers/ensure-monaco-environment.js +0 -21
  769. package/dist/v2/features/editor/helpers/ensure-monaco-environment.js.map +0 -1
  770. package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +0 -12
  771. package/dist/v2/features/editor/helpers/json/create-json-model.d.ts.map +0 -1
  772. package/dist/v2/features/editor/helpers/json/create-json-model.js +0 -31
  773. package/dist/v2/features/editor/helpers/json/create-json-model.js.map +0 -1
  774. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +0 -14
  775. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts.map +0 -1
  776. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +0 -22
  777. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js.map +0 -1
  778. package/dist/v2/features/editor/helpers/json/json-ast.d.ts +0 -12
  779. package/dist/v2/features/editor/helpers/json/json-ast.d.ts.map +0 -1
  780. package/dist/v2/features/editor/helpers/json/json-ast.js +0 -32
  781. package/dist/v2/features/editor/helpers/json/json-ast.js.map +0 -1
  782. package/dist/v2/features/editor/helpers/json/json-pointer-links.d.ts +0 -15
  783. package/dist/v2/features/editor/helpers/json/json-pointer-links.d.ts.map +0 -1
  784. package/dist/v2/features/editor/helpers/json/json-pointer-links.js +0 -104
  785. package/dist/v2/features/editor/helpers/json/json-pointer-links.js.map +0 -1
  786. package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts +0 -7
  787. package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts.map +0 -1
  788. package/dist/v2/features/editor/helpers/json/json-pointer-path.js +0 -27
  789. package/dist/v2/features/editor/helpers/json/json-pointer-path.js.map +0 -1
  790. package/dist/v2/features/editor/helpers/model.d.ts +0 -9
  791. package/dist/v2/features/editor/helpers/model.d.ts.map +0 -1
  792. package/dist/v2/features/editor/helpers/range-to-whole-line.d.ts +0 -14
  793. package/dist/v2/features/editor/helpers/range-to-whole-line.d.ts.map +0 -1
  794. package/dist/v2/features/editor/helpers/range-to-whole-line.js +0 -27
  795. package/dist/v2/features/editor/helpers/range-to-whole-line.js.map +0 -1
  796. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.d.ts +0 -16
  797. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.d.ts.map +0 -1
  798. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js +0 -84
  799. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js.map +0 -1
  800. package/dist/v2/features/editor/helpers/theme/load-css-variables.d.ts +0 -36
  801. package/dist/v2/features/editor/helpers/theme/load-css-variables.d.ts.map +0 -1
  802. package/dist/v2/features/editor/helpers/theme/load-css-variables.js +0 -117
  803. package/dist/v2/features/editor/helpers/theme/load-css-variables.js.map +0 -1
  804. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +0 -13
  805. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts.map +0 -1
  806. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js +0 -32
  807. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js.map +0 -1
  808. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +0 -19
  809. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts.map +0 -1
  810. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js +0 -70
  811. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js.map +0 -1
  812. package/dist/v2/features/editor/hooks/use-editor-markers.d.ts +0 -152
  813. package/dist/v2/features/editor/hooks/use-editor-markers.d.ts.map +0 -1
  814. package/dist/v2/features/editor/hooks/use-editor-markers.js +0 -37
  815. package/dist/v2/features/editor/hooks/use-editor-markers.js.map +0 -1
  816. package/dist/v2/features/editor/hooks/use-editor.d.ts +0 -39
  817. package/dist/v2/features/editor/hooks/use-editor.d.ts.map +0 -1
  818. package/dist/v2/features/editor/hooks/use-editor.js +0 -133
  819. package/dist/v2/features/editor/hooks/use-editor.js.map +0 -1
  820. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +0 -16
  821. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts.map +0 -1
  822. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js +0 -45
  823. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js.map +0 -1
  824. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.d.ts +0 -77
  825. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.d.ts.map +0 -1
  826. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js +0 -396
  827. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js.map +0 -1
  828. package/dist/v2/features/editor/index.d.ts +0 -5
  829. package/dist/v2/features/editor/index.d.ts.map +0 -1
  830. package/dist/v2/features/editor/index.js +0 -5
  831. package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js +0 -51
  832. package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js.map +0 -1
  833. package/dist/v2/features/global-cookies/components/CookiesTable.vue.d.ts +0 -10
  834. package/dist/v2/features/global-cookies/components/CookiesTable.vue.d.ts.map +0 -1
  835. package/dist/v2/features/global-cookies/components/CookiesTable.vue.js +0 -9
  836. package/dist/v2/features/global-cookies/components/CookiesTable.vue.js.map +0 -1
  837. package/dist/v2/features/global-cookies/components/CookiesTable.vue.script.js +0 -188
  838. package/dist/v2/features/global-cookies/components/CookiesTable.vue.script.js.map +0 -1
  839. package/dist/v2/features/global-cookies/index.d.ts +0 -2
  840. package/dist/v2/features/global-cookies/index.d.ts.map +0 -1
  841. package/dist/v2/features/global-cookies/index.js +0 -2
  842. package/dist/v2/features/settings/CollectionSettings.vue.d.ts +0 -28
  843. package/dist/v2/features/settings/CollectionSettings.vue.d.ts.map +0 -1
  844. package/dist/v2/features/settings/CollectionSettings.vue.js +0 -7
  845. package/dist/v2/features/settings/CollectionSettings.vue.js.map +0 -1
  846. package/dist/v2/features/settings/CollectionSettings.vue.script.js +0 -229
  847. package/dist/v2/features/settings/CollectionSettings.vue.script.js.map +0 -1
  848. package/dist/v2/features/settings/DocumentSettings.vue.d.ts +0 -20
  849. package/dist/v2/features/settings/DocumentSettings.vue.d.ts.map +0 -1
  850. package/dist/v2/features/settings/DocumentSettings.vue.js +0 -7
  851. package/dist/v2/features/settings/DocumentSettings.vue.js.map +0 -1
  852. package/dist/v2/features/settings/DocumentSettings.vue.script.js +0 -92
  853. package/dist/v2/features/settings/DocumentSettings.vue.script.js.map +0 -1
  854. package/dist/v2/features/settings/components/Appearance.vue.d.ts +0 -11
  855. package/dist/v2/features/settings/components/Appearance.vue.d.ts.map +0 -1
  856. package/dist/v2/features/settings/components/Appearance.vue.js +0 -7
  857. package/dist/v2/features/settings/components/Appearance.vue.js.map +0 -1
  858. package/dist/v2/features/settings/components/Appearance.vue.script.js +0 -63
  859. package/dist/v2/features/settings/components/Appearance.vue.script.js.map +0 -1
  860. package/dist/v2/features/settings/components/Section.vue.d.ts +0 -16
  861. package/dist/v2/features/settings/components/Section.vue.d.ts.map +0 -1
  862. package/dist/v2/features/settings/components/Section.vue.js +0 -7
  863. package/dist/v2/features/settings/components/Section.vue.js.map +0 -1
  864. package/dist/v2/features/settings/components/Section.vue.script.js +0 -30
  865. package/dist/v2/features/settings/components/Section.vue.script.js.map +0 -1
  866. package/dist/v2/features/settings/helpers/get-theme-colors.d.ts +0 -10
  867. package/dist/v2/features/settings/helpers/get-theme-colors.d.ts.map +0 -1
  868. package/dist/v2/features/settings/helpers/get-theme-colors.js +0 -68
  869. package/dist/v2/features/settings/helpers/get-theme-colors.js.map +0 -1
  870. package/dist/v2/features/settings/index.d.ts +0 -3
  871. package/dist/v2/features/settings/index.d.ts.map +0 -1
  872. package/dist/v2/features/settings/index.js +0 -3
  873. package/dist/v2/helpers/download-document.d.ts +0 -2
  874. package/dist/v2/helpers/download-document.d.ts.map +0 -1
  875. package/dist/v2/helpers/download-document.js +0 -42
  876. package/dist/v2/helpers/download-document.js.map +0 -1
  877. package/dist/v2/helpers/drag-handle-factory.d.ts +0 -16
  878. package/dist/v2/helpers/drag-handle-factory.d.ts.map +0 -1
  879. package/dist/v2/helpers/drag-handle-factory.js +0 -258
  880. package/dist/v2/helpers/drag-handle-factory.js.map +0 -1
  881. package/dist/v2/helpers/get-tab-details.d.ts +0 -43
  882. package/dist/v2/helpers/get-tab-details.d.ts.map +0 -1
  883. package/dist/v2/helpers/get-tab-details.js +0 -54
  884. package/dist/v2/helpers/get-tab-details.js.map +0 -1
  885. package/dist/v2/helpers/is-url.d.ts +0 -2
  886. package/dist/v2/helpers/is-url.d.ts.map +0 -1
  887. package/dist/v2/helpers/is-url.js +0 -9
  888. package/dist/v2/helpers/is-url.js.map +0 -1
  889. package/dist/v2/helpers/safe-run.d.ts +0 -34
  890. package/dist/v2/helpers/safe-run.d.ts.map +0 -1
  891. package/dist/v2/helpers/safe-run.js +0 -43
  892. package/dist/v2/helpers/safe-run.js.map +0 -1
  893. package/dist/v2/helpers/storage.d.ts +0 -31
  894. package/dist/v2/helpers/storage.d.ts.map +0 -1
  895. package/dist/v2/helpers/storage.js +0 -37
  896. package/dist/v2/helpers/storage.js.map +0 -1
  897. package/dist/v2/hooks/use-color-mode.d.ts +0 -20
  898. package/dist/v2/hooks/use-color-mode.d.ts.map +0 -1
  899. package/dist/v2/hooks/use-color-mode.js +0 -72
  900. package/dist/v2/hooks/use-color-mode.js.map +0 -1
  901. package/dist/v2/types/configuration.d.ts +0 -278
  902. package/dist/v2/types/configuration.d.ts.map +0 -1
  903. /package/dist/components/{ScalarAsciiArt.vue.d.ts → ScalarAsciiArt/ScalarAsciiArt.vue.d.ts} +0 -0
  904. /package/dist/{index.js → types/index.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBody.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { CONTENT_TYPES } from '@scalar/helpers/http/content-types'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport {\n getExampleFromBody,\n getSelectedBodyContentType,\n} from '@scalar/workspace-store/request-example'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n RequestBodyObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useFileDialog } from '@/hooks/use-file-dialog'\nimport RequestBodyForm from '@/v2/blocks/request-block/components/RequestBodyForm.vue'\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\n\nconst {\n requestBody,\n exampleKey,\n environment,\n requestBodyCompositionSelection,\n title,\n} = defineProps<{\n /** Request body */\n requestBody?: RequestBodyObject\n /** Currently selected example key for the current operation */\n exampleKey: string\n /** Display title */\n title: string\n /** Selected environment */\n environment: XScalarEnvironment\n /** Selected anyOf/oneOf request-body variants keyed by schema path */\n requestBodyCompositionSelection?: Record<string, number>\n}>()\n\nconst emits = defineEmits<{\n (e: 'update:contentType', payload: { value: string }): void\n /** We use this event to update raw values */\n (\n e: 'update:value',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:value'],\n 'payload' | 'contentType'\n >,\n ): void\n /** We use this event when updating form data only */\n (\n e: 'update:formValue',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:formValue'],\n 'payload' | 'contentType'\n >,\n ): void\n}>()\n\n// Map a content type to a language for the code editor\nconst contentTypeToLanguageMap = {\n 'application/json': 'json',\n 'application/xml': 'xml',\n 'application/yaml': 'yaml',\n} as const\n\n/** Selected content type with default */\nconst selectedContentType = computed(\n () => getSelectedBodyContentType(requestBody, exampleKey) ?? 'none',\n)\n\n/** Convert content types to options for the dropdown */\nconst contentTypeOptions = objectEntries(CONTENT_TYPES).map(([id, label]) => ({\n id,\n label,\n}))\n\nconst selectedContentTypeModel = computed<{ id: string; label: string }>({\n get: () => {\n const found = contentTypeOptions.find(\n (it) => it.id === selectedContentType.value,\n )\n return found ?? contentTypeOptions.at(-1)!\n },\n set: (v) => {\n emits('update:contentType', { value: v.id })\n },\n})\n\nfunction handleFileUpload(callback: (file: File) => void) {\n const { open } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n callback(file)\n }\n },\n multiple: false,\n accept: '*/*',\n })\n open()\n}\n\n/** Dereferenced example */\nconst example = computed(\n () =>\n requestBody &&\n getExampleFromBody(\n requestBody,\n selectedContentType.value,\n exampleKey,\n requestBodyCompositionSelection,\n ),\n)\n\n/** Convert the example value to a string for the code editor */\nconst bodyValue = computed(() => {\n if (!example.value) {\n return ''\n }\n\n const value = example.value.value\n if (typeof value === 'string') {\n return value\n }\n\n return JSON.stringify(value, null, 2)\n})\n\n/** Resolved schema for the request body */\nconst bodySchema = computed<SchemaObject | undefined>(() => {\n return resolve.schema(\n requestBody?.content?.[selectedContentType.value]?.schema,\n )\n})\n</script>\n<template>\n <CollapsibleSection>\n <template #title>{{ title }}</template>\n <DataTable\n :columns=\"['']\"\n presentational>\n <DataTableHeader\n class=\"relative col-span-full flex h-8 cursor-pointer items-center justify-between border-r-0 !p-0\">\n <ScalarListbox\n v-model=\"selectedContentTypeModel\"\n :options=\"contentTypeOptions\"\n teleport>\n <ScalarButton\n class=\"text-c-2 hover:text-c-1 flex h-full w-fit gap-1.5 px-3 font-normal\"\n fullWidth\n variant=\"ghost\">\n <span>{{\n CONTENT_TYPES[\n selectedContentType as keyof typeof CONTENT_TYPES\n ] ?? selectedContentType\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </DataTableHeader>\n <DataTableRow>\n <!-- No Body -->\n <template v-if=\"selectedContentType === 'none'\">\n <div\n class=\"text-c-3 flex min-h-10 w-full items-center justify-center border-t p-2 text-sm\">\n <span>No Body</span>\n </div>\n </template>\n\n <!-- Binary File -->\n <template\n v-else-if=\"selectedContentType === 'application/octet-stream'\">\n <div\n class=\"flex items-center justify-center overflow-hidden border-t p-1.5\">\n <template\n v-if=\"\n getFileName(unpackProxyObject(example?.value)) !== undefined\n \">\n <span\n class=\"text-c-2 w-full max-w-full overflow-hidden rounded border px-1.5 py-1 text-xs whitespace-nowrap\">\n {{ getFileName(unpackProxyObject(example?.value)) }}\n </span>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 ml-1 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n emits('update:value', {\n payload: undefined,\n contentType: selectedContentType,\n })\n \">\n Delete\n </ScalarButton>\n </template>\n <template v-else>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n () =>\n handleFileUpload((file) =>\n emits('update:value', {\n payload: file,\n contentType: selectedContentType,\n }),\n )\n \">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </template>\n </div>\n </template>\n\n <!-- Form Data / URL Encoded -->\n <template\n v-else-if=\"\n selectedContentType === 'multipart/form-data' ||\n selectedContentType === 'application/x-www-form-urlencoded'\n \">\n <RequestBodyForm\n :bodySchema\n :environment\n :example\n :selectedContentType\n @update:formValue=\"\n (payload) =>\n emits('update:formValue', {\n payload,\n contentType: selectedContentType,\n })\n \" />\n </template>\n\n <!-- Code/Other -->\n <template v-else>\n <CodeInput\n class=\"border-t px-3\"\n content=\"\"\n :environment=\"environment\"\n :language=\"\n contentTypeToLanguageMap[\n selectedContentType as keyof typeof contentTypeToLanguageMap\n ] ?? 'plaintext'\n \"\n lineNumbers\n lint\n :modelValue=\"bodyValue\"\n withFakeData\n @update:modelValue=\"\n (value) =>\n emits('update:value', {\n payload: value,\n contentType: selectedContentType,\n })\n \" />\n </template>\n </DataTableRow>\n </DataTable>\n </CollapsibleSection>\n</template>\n<style scoped>\n:deep(.cm-content) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"RequestBody.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { CONTENT_TYPES } from '@scalar/helpers/http/content-types'\nimport { parseMimeType } from '@scalar/helpers/http/mime-type'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport {\n getExampleFromBody,\n getSelectedBodyContentType,\n} from '@scalar/workspace-store/request-example'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n RequestBodyObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useFileDialog } from '@/hooks/use-file-dialog'\nimport RequestBodyForm from '@/v2/blocks/request-block/components/RequestBodyForm.vue'\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\n\nconst {\n requestBody,\n exampleKey,\n environment,\n requestBodyCompositionSelection,\n title,\n} = defineProps<{\n /** Request body */\n requestBody?: RequestBodyObject\n /** Currently selected example key for the current operation */\n exampleKey: string\n /** Display title */\n title: string\n /** Selected environment */\n environment: XScalarEnvironment\n /** Selected anyOf/oneOf request-body variants keyed by schema path */\n requestBodyCompositionSelection?: Record<string, number>\n}>()\n\nconst emits = defineEmits<{\n (e: 'update:contentType', payload: { value: string }): void\n /** We use this event to update raw values */\n (\n e: 'update:value',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:value'],\n 'payload' | 'contentType'\n >,\n ): void\n /** We use this event when updating form data only */\n (\n e: 'update:formValue',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:formValue'],\n 'payload' | 'contentType'\n >,\n ): void\n}>()\n\n// Map a content type to a language for the code editor\nconst contentTypeToLanguageMap = {\n 'application/json': 'json',\n 'application/xml': 'xml',\n 'application/yaml': 'yaml',\n} as const\n\n/** Selected content type with default */\nconst selectedContentType = computed(\n () => getSelectedBodyContentType(requestBody, exampleKey) ?? 'none',\n)\n\n/**\n * Strips MIME parameters (such as `charset=utf-8`) for dropdown labels, aligned with how we treat\n * media types elsewhere (see api-reference `normalizeMimeType` / WHATWG essence).\n */\nconst contentTypeLabel = (raw: string): string => parseMimeType(raw).essence\n\n/**\n * Build the dropdown options for the content type selector.\n *\n * The list is composed of two groups:\n * 1. The built-in content types we ship friendly labels for (JSON, XML, Multipart Form, etc.).\n * 2. Any additional content types defined on the OpenAPI request body that are not in the built-in list\n * (for example `text/csv`, `application/pdf`, vendor types like `application/vnd.api+json`, ...).\n *\n * The OpenAPI-defined extras are appended at the bottom so the well-known options stay on top, and\n * users can always pick the exact content type the operation actually accepts.\n */\nconst contentTypeOptions = computed<{ id: string; label: string }[]>(() => {\n const builtIn = objectEntries(CONTENT_TYPES).map(([id, label]) => ({\n id,\n label,\n }))\n\n const extras = Object.keys(requestBody?.content ?? {})\n .filter((type) => {\n if (type in CONTENT_TYPES) {\n return false\n }\n // Same essence as a built-in (e.g. `application/json; charset=utf-8`) — do not duplicate the row.\n return !(contentTypeLabel(type) in CONTENT_TYPES)\n })\n .map((type) => ({ id: type, label: contentTypeLabel(type) }))\n\n return [...builtIn, ...extras]\n})\n\nconst selectedContentTypeModel = computed<{ id: string; label: string }>({\n get: () => {\n const found = contentTypeOptions.value.find(\n (it) => it.id === selectedContentType.value,\n )\n if (found) {\n return found\n }\n\n const essence = contentTypeLabel(selectedContentType.value)\n const friendly =\n CONTENT_TYPES[essence as keyof typeof CONTENT_TYPES] ?? essence\n\n return {\n id: selectedContentType.value,\n label: friendly,\n }\n },\n set: (v) => {\n emits('update:contentType', { value: v.id })\n },\n})\n\nfunction handleFileUpload(callback: (file: File) => void) {\n const { open } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n callback(file)\n }\n },\n multiple: false,\n accept: '*/*',\n })\n open()\n}\n\n/** Dereferenced example */\nconst example = computed(\n () =>\n requestBody &&\n getExampleFromBody(\n requestBody,\n selectedContentType.value,\n exampleKey,\n requestBodyCompositionSelection,\n ),\n)\n\n/** Convert the example value to a string for the code editor */\nconst bodyValue = computed(() => {\n if (!example.value) {\n return ''\n }\n\n const value = example.value.value\n if (typeof value === 'string') {\n return value\n }\n\n return JSON.stringify(value, null, 2)\n})\n\n/** Resolved schema for the request body */\nconst bodySchema = computed<SchemaObject | undefined>(() => {\n return resolve.schema(\n requestBody?.content?.[selectedContentType.value]?.schema,\n )\n})\n</script>\n<template>\n <CollapsibleSection>\n <template #title>{{ title }}</template>\n <DataTable\n :columns=\"['']\"\n presentational>\n <DataTableHeader\n class=\"relative col-span-full flex h-8 cursor-pointer items-center justify-between border-r-0 !p-0\">\n <ScalarListbox\n v-model=\"selectedContentTypeModel\"\n :options=\"contentTypeOptions\"\n teleport>\n <ScalarButton\n class=\"text-c-2 hover:text-c-1 flex h-full w-fit gap-1.5 px-3 font-normal\"\n fullWidth\n variant=\"ghost\">\n <span>{{ selectedContentTypeModel.label }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </DataTableHeader>\n <DataTableRow>\n <!-- No Body -->\n <template v-if=\"selectedContentType === 'none'\">\n <div\n class=\"text-c-3 flex min-h-10 w-full items-center justify-center border-t p-2 text-sm\">\n <span>No Body</span>\n </div>\n </template>\n\n <!-- Binary File -->\n <template\n v-else-if=\"selectedContentType === 'application/octet-stream'\">\n <div\n class=\"flex items-center justify-center overflow-hidden border-t p-1.5\">\n <template\n v-if=\"\n getFileName(unpackProxyObject(example?.value)) !== undefined\n \">\n <span\n class=\"text-c-2 w-full max-w-full overflow-hidden rounded border px-1.5 py-1 text-xs whitespace-nowrap\">\n {{ getFileName(unpackProxyObject(example?.value)) }}\n </span>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 ml-1 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n emits('update:value', {\n payload: undefined,\n contentType: selectedContentType,\n })\n \">\n Delete\n </ScalarButton>\n </template>\n <template v-else>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n () =>\n handleFileUpload((file) =>\n emits('update:value', {\n payload: file,\n contentType: selectedContentType,\n }),\n )\n \">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </template>\n </div>\n </template>\n\n <!-- Form Data / URL Encoded -->\n <template\n v-else-if=\"\n selectedContentType === 'multipart/form-data' ||\n selectedContentType === 'application/x-www-form-urlencoded'\n \">\n <RequestBodyForm\n :bodySchema\n :environment\n :example\n :selectedContentType\n @update:formValue=\"\n (payload) =>\n emits('update:formValue', {\n payload,\n contentType: selectedContentType,\n })\n \" />\n </template>\n\n <!-- Code/Other -->\n <template v-else>\n <CodeInput\n class=\"border-t px-3\"\n content=\"\"\n :environment=\"environment\"\n :language=\"\n contentTypeToLanguageMap[\n selectedContentType as keyof typeof contentTypeToLanguageMap\n ] ?? 'plaintext'\n \"\n lineNumbers\n lint\n :modelValue=\"bodyValue\"\n withFakeData\n @update:modelValue=\"\n (value) =>\n emits('update:value', {\n payload: value,\n contentType: selectedContentType,\n })\n \" />\n </template>\n </DataTableRow>\n </DataTable>\n </CollapsibleSection>\n</template>\n<style scoped>\n:deep(.cm-content) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":""}
@@ -1,17 +1,18 @@
1
1
  import { useFileDialog } from "../../../../hooks/use-file-dialog.js";
2
- import { getFileName } from "../helpers/files.js";
3
2
  import CodeInput_default from "../../../components/code-input/CodeInput.vue.js";
4
3
  import DataTable_default from "../../../components/data-table/DataTable.vue.js";
5
4
  import DataTableHeader_default from "../../../components/data-table/DataTableHeader.vue.js";
6
5
  import DataTableRow_default from "../../../components/data-table/DataTableRow.vue.js";
6
+ import { getFileName } from "../helpers/files.js";
7
7
  import RequestBodyForm_default from "./RequestBodyForm.vue.js";
8
8
  import CollapsibleSection_default from "../../../components/layout/CollapsibleSection.vue.js";
9
9
  import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, toDisplayString, unref, withCtx } from "vue";
10
10
  import { ScalarButton, ScalarIcon, ScalarListbox } from "@scalar/components";
11
+ import { objectEntries } from "@scalar/helpers/object/object-entries";
11
12
  import { getExampleFromBody, getSelectedBodyContentType } from "@scalar/workspace-store/request-example";
13
+ import { parseMimeType } from "@scalar/helpers/http/mime-type";
12
14
  import { unpackProxyObject } from "@scalar/workspace-store/helpers/unpack-proxy";
13
15
  import { CONTENT_TYPES } from "@scalar/helpers/http/content-types";
14
- import { objectEntries } from "@scalar/helpers/object/object-entries";
15
16
  import { resolve } from "@scalar/workspace-store/resolve";
16
17
  //#region src/v2/blocks/request-block/components/RequestBody.vue?vue&type=script&setup=true&lang.ts
17
18
  var _hoisted_1 = {
@@ -46,14 +47,46 @@ var RequestBody_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
46
47
  };
47
48
  /** Selected content type with default */
48
49
  const selectedContentType = computed(() => getSelectedBodyContentType(__props.requestBody, __props.exampleKey) ?? "none");
49
- /** Convert content types to options for the dropdown */
50
- const contentTypeOptions = objectEntries(CONTENT_TYPES).map(([id, label]) => ({
51
- id,
52
- label
53
- }));
50
+ /**
51
+ * Strips MIME parameters (such as `charset=utf-8`) for dropdown labels, aligned with how we treat
52
+ * media types elsewhere (see api-reference `normalizeMimeType` / WHATWG essence).
53
+ */
54
+ const contentTypeLabel = (raw) => parseMimeType(raw).essence;
55
+ /**
56
+ * Build the dropdown options for the content type selector.
57
+ *
58
+ * The list is composed of two groups:
59
+ * 1. The built-in content types we ship friendly labels for (JSON, XML, Multipart Form, etc.).
60
+ * 2. Any additional content types defined on the OpenAPI request body that are not in the built-in list
61
+ * (for example `text/csv`, `application/pdf`, vendor types like `application/vnd.api+json`, ...).
62
+ *
63
+ * The OpenAPI-defined extras are appended at the bottom so the well-known options stay on top, and
64
+ * users can always pick the exact content type the operation actually accepts.
65
+ */
66
+ const contentTypeOptions = computed(() => {
67
+ const builtIn = objectEntries(CONTENT_TYPES).map(([id, label]) => ({
68
+ id,
69
+ label
70
+ }));
71
+ const extras = Object.keys(__props.requestBody?.content ?? {}).filter((type) => {
72
+ if (type in CONTENT_TYPES) return false;
73
+ return !(contentTypeLabel(type) in CONTENT_TYPES);
74
+ }).map((type) => ({
75
+ id: type,
76
+ label: contentTypeLabel(type)
77
+ }));
78
+ return [...builtIn, ...extras];
79
+ });
54
80
  const selectedContentTypeModel = computed({
55
81
  get: () => {
56
- return contentTypeOptions.find((it) => it.id === selectedContentType.value) ?? contentTypeOptions.at(-1);
82
+ const found = contentTypeOptions.value.find((it) => it.id === selectedContentType.value);
83
+ if (found) return found;
84
+ const essence = contentTypeLabel(selectedContentType.value);
85
+ const friendly = CONTENT_TYPES[essence] ?? essence;
86
+ return {
87
+ id: selectedContentType.value,
88
+ label: friendly
89
+ };
57
90
  },
58
91
  set: (v) => {
59
92
  emits("update:contentType", { value: v.id });
@@ -94,7 +127,7 @@ var RequestBody_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
94
127
  default: withCtx(() => [createVNode(unref(ScalarListbox), {
95
128
  modelValue: selectedContentTypeModel.value,
96
129
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedContentTypeModel.value = $event),
97
- options: unref(contentTypeOptions),
130
+ options: contentTypeOptions.value,
98
131
  teleport: ""
99
132
  }, {
100
133
  default: withCtx(() => [createVNode(unref(ScalarButton), {
@@ -102,7 +135,7 @@ var RequestBody_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
102
135
  fullWidth: "",
103
136
  variant: "ghost"
104
137
  }, {
105
- default: withCtx(() => [createElementVNode("span", null, toDisplayString(unref(CONTENT_TYPES)[selectedContentType.value] ?? selectedContentType.value), 1), createVNode(unref(ScalarIcon), {
138
+ default: withCtx(() => [createElementVNode("span", null, toDisplayString(selectedContentTypeModel.value.label), 1), createVNode(unref(ScalarIcon), {
106
139
  icon: "ChevronDown",
107
140
  size: "md"
108
141
  })]),
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBody.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { CONTENT_TYPES } from '@scalar/helpers/http/content-types'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport {\n getExampleFromBody,\n getSelectedBodyContentType,\n} from '@scalar/workspace-store/request-example'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n RequestBodyObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useFileDialog } from '@/hooks/use-file-dialog'\nimport RequestBodyForm from '@/v2/blocks/request-block/components/RequestBodyForm.vue'\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\n\nconst {\n requestBody,\n exampleKey,\n environment,\n requestBodyCompositionSelection,\n title,\n} = defineProps<{\n /** Request body */\n requestBody?: RequestBodyObject\n /** Currently selected example key for the current operation */\n exampleKey: string\n /** Display title */\n title: string\n /** Selected environment */\n environment: XScalarEnvironment\n /** Selected anyOf/oneOf request-body variants keyed by schema path */\n requestBodyCompositionSelection?: Record<string, number>\n}>()\n\nconst emits = defineEmits<{\n (e: 'update:contentType', payload: { value: string }): void\n /** We use this event to update raw values */\n (\n e: 'update:value',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:value'],\n 'payload' | 'contentType'\n >,\n ): void\n /** We use this event when updating form data only */\n (\n e: 'update:formValue',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:formValue'],\n 'payload' | 'contentType'\n >,\n ): void\n}>()\n\n// Map a content type to a language for the code editor\nconst contentTypeToLanguageMap = {\n 'application/json': 'json',\n 'application/xml': 'xml',\n 'application/yaml': 'yaml',\n} as const\n\n/** Selected content type with default */\nconst selectedContentType = computed(\n () => getSelectedBodyContentType(requestBody, exampleKey) ?? 'none',\n)\n\n/** Convert content types to options for the dropdown */\nconst contentTypeOptions = objectEntries(CONTENT_TYPES).map(([id, label]) => ({\n id,\n label,\n}))\n\nconst selectedContentTypeModel = computed<{ id: string; label: string }>({\n get: () => {\n const found = contentTypeOptions.find(\n (it) => it.id === selectedContentType.value,\n )\n return found ?? contentTypeOptions.at(-1)!\n },\n set: (v) => {\n emits('update:contentType', { value: v.id })\n },\n})\n\nfunction handleFileUpload(callback: (file: File) => void) {\n const { open } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n callback(file)\n }\n },\n multiple: false,\n accept: '*/*',\n })\n open()\n}\n\n/** Dereferenced example */\nconst example = computed(\n () =>\n requestBody &&\n getExampleFromBody(\n requestBody,\n selectedContentType.value,\n exampleKey,\n requestBodyCompositionSelection,\n ),\n)\n\n/** Convert the example value to a string for the code editor */\nconst bodyValue = computed(() => {\n if (!example.value) {\n return ''\n }\n\n const value = example.value.value\n if (typeof value === 'string') {\n return value\n }\n\n return JSON.stringify(value, null, 2)\n})\n\n/** Resolved schema for the request body */\nconst bodySchema = computed<SchemaObject | undefined>(() => {\n return resolve.schema(\n requestBody?.content?.[selectedContentType.value]?.schema,\n )\n})\n</script>\n<template>\n <CollapsibleSection>\n <template #title>{{ title }}</template>\n <DataTable\n :columns=\"['']\"\n presentational>\n <DataTableHeader\n class=\"relative col-span-full flex h-8 cursor-pointer items-center justify-between border-r-0 !p-0\">\n <ScalarListbox\n v-model=\"selectedContentTypeModel\"\n :options=\"contentTypeOptions\"\n teleport>\n <ScalarButton\n class=\"text-c-2 hover:text-c-1 flex h-full w-fit gap-1.5 px-3 font-normal\"\n fullWidth\n variant=\"ghost\">\n <span>{{\n CONTENT_TYPES[\n selectedContentType as keyof typeof CONTENT_TYPES\n ] ?? selectedContentType\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </DataTableHeader>\n <DataTableRow>\n <!-- No Body -->\n <template v-if=\"selectedContentType === 'none'\">\n <div\n class=\"text-c-3 flex min-h-10 w-full items-center justify-center border-t p-2 text-sm\">\n <span>No Body</span>\n </div>\n </template>\n\n <!-- Binary File -->\n <template\n v-else-if=\"selectedContentType === 'application/octet-stream'\">\n <div\n class=\"flex items-center justify-center overflow-hidden border-t p-1.5\">\n <template\n v-if=\"\n getFileName(unpackProxyObject(example?.value)) !== undefined\n \">\n <span\n class=\"text-c-2 w-full max-w-full overflow-hidden rounded border px-1.5 py-1 text-xs whitespace-nowrap\">\n {{ getFileName(unpackProxyObject(example?.value)) }}\n </span>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 ml-1 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n emits('update:value', {\n payload: undefined,\n contentType: selectedContentType,\n })\n \">\n Delete\n </ScalarButton>\n </template>\n <template v-else>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n () =>\n handleFileUpload((file) =>\n emits('update:value', {\n payload: file,\n contentType: selectedContentType,\n }),\n )\n \">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </template>\n </div>\n </template>\n\n <!-- Form Data / URL Encoded -->\n <template\n v-else-if=\"\n selectedContentType === 'multipart/form-data' ||\n selectedContentType === 'application/x-www-form-urlencoded'\n \">\n <RequestBodyForm\n :bodySchema\n :environment\n :example\n :selectedContentType\n @update:formValue=\"\n (payload) =>\n emits('update:formValue', {\n payload,\n contentType: selectedContentType,\n })\n \" />\n </template>\n\n <!-- Code/Other -->\n <template v-else>\n <CodeInput\n class=\"border-t px-3\"\n content=\"\"\n :environment=\"environment\"\n :language=\"\n contentTypeToLanguageMap[\n selectedContentType as keyof typeof contentTypeToLanguageMap\n ] ?? 'plaintext'\n \"\n lineNumbers\n lint\n :modelValue=\"bodyValue\"\n withFakeData\n @update:modelValue=\"\n (value) =>\n emits('update:value', {\n payload: value,\n contentType: selectedContentType,\n })\n \" />\n </template>\n </DataTableRow>\n </DataTable>\n </CollapsibleSection>\n</template>\n<style scoped>\n:deep(.cm-content) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RequestBody.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarListbox } from '@scalar/components'\nimport { CONTENT_TYPES } from '@scalar/helpers/http/content-types'\nimport { parseMimeType } from '@scalar/helpers/http/mime-type'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport {\n getExampleFromBody,\n getSelectedBodyContentType,\n} from '@scalar/workspace-store/request-example'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n RequestBodyObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useFileDialog } from '@/hooks/use-file-dialog'\nimport RequestBodyForm from '@/v2/blocks/request-block/components/RequestBodyForm.vue'\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTable,\n DataTableHeader,\n DataTableRow,\n} from '@/v2/components/data-table'\nimport { CollapsibleSection } from '@/v2/components/layout'\n\nconst {\n requestBody,\n exampleKey,\n environment,\n requestBodyCompositionSelection,\n title,\n} = defineProps<{\n /** Request body */\n requestBody?: RequestBodyObject\n /** Currently selected example key for the current operation */\n exampleKey: string\n /** Display title */\n title: string\n /** Selected environment */\n environment: XScalarEnvironment\n /** Selected anyOf/oneOf request-body variants keyed by schema path */\n requestBodyCompositionSelection?: Record<string, number>\n}>()\n\nconst emits = defineEmits<{\n (e: 'update:contentType', payload: { value: string }): void\n /** We use this event to update raw values */\n (\n e: 'update:value',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:value'],\n 'payload' | 'contentType'\n >,\n ): void\n /** We use this event when updating form data only */\n (\n e: 'update:formValue',\n payload: Pick<\n ApiReferenceEvents['operation:update:requestBody:formValue'],\n 'payload' | 'contentType'\n >,\n ): void\n}>()\n\n// Map a content type to a language for the code editor\nconst contentTypeToLanguageMap = {\n 'application/json': 'json',\n 'application/xml': 'xml',\n 'application/yaml': 'yaml',\n} as const\n\n/** Selected content type with default */\nconst selectedContentType = computed(\n () => getSelectedBodyContentType(requestBody, exampleKey) ?? 'none',\n)\n\n/**\n * Strips MIME parameters (such as `charset=utf-8`) for dropdown labels, aligned with how we treat\n * media types elsewhere (see api-reference `normalizeMimeType` / WHATWG essence).\n */\nconst contentTypeLabel = (raw: string): string => parseMimeType(raw).essence\n\n/**\n * Build the dropdown options for the content type selector.\n *\n * The list is composed of two groups:\n * 1. The built-in content types we ship friendly labels for (JSON, XML, Multipart Form, etc.).\n * 2. Any additional content types defined on the OpenAPI request body that are not in the built-in list\n * (for example `text/csv`, `application/pdf`, vendor types like `application/vnd.api+json`, ...).\n *\n * The OpenAPI-defined extras are appended at the bottom so the well-known options stay on top, and\n * users can always pick the exact content type the operation actually accepts.\n */\nconst contentTypeOptions = computed<{ id: string; label: string }[]>(() => {\n const builtIn = objectEntries(CONTENT_TYPES).map(([id, label]) => ({\n id,\n label,\n }))\n\n const extras = Object.keys(requestBody?.content ?? {})\n .filter((type) => {\n if (type in CONTENT_TYPES) {\n return false\n }\n // Same essence as a built-in (e.g. `application/json; charset=utf-8`) — do not duplicate the row.\n return !(contentTypeLabel(type) in CONTENT_TYPES)\n })\n .map((type) => ({ id: type, label: contentTypeLabel(type) }))\n\n return [...builtIn, ...extras]\n})\n\nconst selectedContentTypeModel = computed<{ id: string; label: string }>({\n get: () => {\n const found = contentTypeOptions.value.find(\n (it) => it.id === selectedContentType.value,\n )\n if (found) {\n return found\n }\n\n const essence = contentTypeLabel(selectedContentType.value)\n const friendly =\n CONTENT_TYPES[essence as keyof typeof CONTENT_TYPES] ?? essence\n\n return {\n id: selectedContentType.value,\n label: friendly,\n }\n },\n set: (v) => {\n emits('update:contentType', { value: v.id })\n },\n})\n\nfunction handleFileUpload(callback: (file: File) => void) {\n const { open } = useFileDialog({\n onChange: (files) => {\n const file = files?.[0]\n if (file) {\n callback(file)\n }\n },\n multiple: false,\n accept: '*/*',\n })\n open()\n}\n\n/** Dereferenced example */\nconst example = computed(\n () =>\n requestBody &&\n getExampleFromBody(\n requestBody,\n selectedContentType.value,\n exampleKey,\n requestBodyCompositionSelection,\n ),\n)\n\n/** Convert the example value to a string for the code editor */\nconst bodyValue = computed(() => {\n if (!example.value) {\n return ''\n }\n\n const value = example.value.value\n if (typeof value === 'string') {\n return value\n }\n\n return JSON.stringify(value, null, 2)\n})\n\n/** Resolved schema for the request body */\nconst bodySchema = computed<SchemaObject | undefined>(() => {\n return resolve.schema(\n requestBody?.content?.[selectedContentType.value]?.schema,\n )\n})\n</script>\n<template>\n <CollapsibleSection>\n <template #title>{{ title }}</template>\n <DataTable\n :columns=\"['']\"\n presentational>\n <DataTableHeader\n class=\"relative col-span-full flex h-8 cursor-pointer items-center justify-between border-r-0 !p-0\">\n <ScalarListbox\n v-model=\"selectedContentTypeModel\"\n :options=\"contentTypeOptions\"\n teleport>\n <ScalarButton\n class=\"text-c-2 hover:text-c-1 flex h-full w-fit gap-1.5 px-3 font-normal\"\n fullWidth\n variant=\"ghost\">\n <span>{{ selectedContentTypeModel.label }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n </ScalarListbox>\n </DataTableHeader>\n <DataTableRow>\n <!-- No Body -->\n <template v-if=\"selectedContentType === 'none'\">\n <div\n class=\"text-c-3 flex min-h-10 w-full items-center justify-center border-t p-2 text-sm\">\n <span>No Body</span>\n </div>\n </template>\n\n <!-- Binary File -->\n <template\n v-else-if=\"selectedContentType === 'application/octet-stream'\">\n <div\n class=\"flex items-center justify-center overflow-hidden border-t p-1.5\">\n <template\n v-if=\"\n getFileName(unpackProxyObject(example?.value)) !== undefined\n \">\n <span\n class=\"text-c-2 w-full max-w-full overflow-hidden rounded border px-1.5 py-1 text-xs whitespace-nowrap\">\n {{ getFileName(unpackProxyObject(example?.value)) }}\n </span>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 ml-1 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n emits('update:value', {\n payload: undefined,\n contentType: selectedContentType,\n })\n \">\n Delete\n </ScalarButton>\n </template>\n <template v-else>\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 border-0 shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"\n () =>\n handleFileUpload((file) =>\n emits('update:value', {\n payload: file,\n contentType: selectedContentType,\n }),\n )\n \">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </template>\n </div>\n </template>\n\n <!-- Form Data / URL Encoded -->\n <template\n v-else-if=\"\n selectedContentType === 'multipart/form-data' ||\n selectedContentType === 'application/x-www-form-urlencoded'\n \">\n <RequestBodyForm\n :bodySchema\n :environment\n :example\n :selectedContentType\n @update:formValue=\"\n (payload) =>\n emits('update:formValue', {\n payload,\n contentType: selectedContentType,\n })\n \" />\n </template>\n\n <!-- Code/Other -->\n <template v-else>\n <CodeInput\n class=\"border-t px-3\"\n content=\"\"\n :environment=\"environment\"\n :language=\"\n contentTypeToLanguageMap[\n selectedContentType as keyof typeof contentTypeToLanguageMap\n ] ?? 'plaintext'\n \"\n lineNumbers\n lint\n :modelValue=\"bodyValue\"\n withFakeData\n @update:modelValue=\"\n (value) =>\n emits('update:value', {\n payload: value,\n contentType: selectedContentType,\n })\n \" />\n </template>\n </DataTableRow>\n </DataTable>\n </CollapsibleSection>\n</template>\n<style scoped>\n:deep(.cm-content) {\n font-size: var(--scalar-small);\n}\n</style>\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
+ import DataTable_default from "../../../components/data-table/DataTable.vue.js";
2
+ import DataTableRow_default from "../../../components/data-table/DataTableRow.vue.js";
1
3
  import { findClient } from "../../operation-code-sample/helpers/find-client.js";
2
4
  import { getClients } from "../../operation-code-sample/helpers/get-clients.js";
3
5
  import { getCustomCodeSamples } from "../../operation-code-sample/helpers/get-custom-code-samples.js";
4
6
  import { getSecrets } from "../../operation-code-sample/helpers/get-secrets.js";
5
7
  import { generateCodeSnippet } from "../../operation-code-sample/helpers/generate-code-snippet.js";
6
- import DataTable_default from "../../../components/data-table/DataTable.vue.js";
7
- import DataTableRow_default from "../../../components/data-table/DataTableRow.vue.js";
8
8
  import CollapsibleSection_default from "../../../components/layout/CollapsibleSection.vue.js";
9
9
  import { computed, createBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, toDisplayString, unref, vShow, watch, withCtx, withDirectives } from "vue";
10
10
  import { ScalarButton, ScalarCodeBlock, ScalarCombobox, ScalarErrorBoundary } from "@scalar/components";
@@ -18,7 +18,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
18
18
  }) => any;
19
19
  upsert: (index: number, payload: {
20
20
  name: string;
21
- value: string;
21
+ value: string | Record<string, unknown>;
22
22
  isDisabled: boolean;
23
23
  }) => any;
24
24
  deleteAll: () => any;
@@ -28,7 +28,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
28
28
  }) => any) | undefined;
29
29
  onUpsert?: ((index: number, payload: {
30
30
  name: string;
31
- value: string;
31
+ value: string | Record<string, unknown>;
32
32
  isDisabled: boolean;
33
33
  }) => any) | undefined;
34
34
  onDeleteAll?: (() => any) | undefined;
@@ -31,7 +31,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
31
31
  exampleName: string;
32
32
  } | {
33
33
  page: "operation";
34
- path: "overview" | "servers" | "authentication";
34
+ path: "overview" | "servers" | "authentication" | "editor";
35
35
  operationPath: string;
36
36
  method: import("@scalar/helpers/http/http-methods").HttpMethod;
37
37
  documentSlug?: string;
@@ -65,7 +65,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
65
65
  exampleName: string;
66
66
  } | {
67
67
  page: "operation";
68
- path: "overview" | "servers" | "authentication";
68
+ path: "overview" | "servers" | "authentication" | "editor";
69
69
  operationPath: string;
70
70
  method: import("@scalar/helpers/http/http-methods").HttpMethod;
71
71
  documentSlug?: string;
@@ -25,6 +25,8 @@ export type TableRow = {
25
25
  isOverridden?: boolean;
26
26
  /** Track the original parameter so we can update it */
27
27
  originalParameter?: ParameterObject;
28
+ /** Path to a value inside the original parameter example for expanded object parameters */
29
+ sourceParameterValuePath?: string[];
28
30
  };
29
31
  type __VLS_Props = {
30
32
  data: TableRow;
@@ -55,7 +57,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
55
57
  exampleName: string;
56
58
  } | {
57
59
  page: "operation";
58
- path: "overview" | "servers" | "authentication";
60
+ path: "overview" | "servers" | "authentication" | "editor";
59
61
  operationPath: string;
60
62
  method: import("@scalar/helpers/http/http-methods").HttpMethod;
61
63
  documentSlug?: string;
@@ -89,7 +91,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
89
91
  exampleName: string;
90
92
  } | {
91
93
  page: "operation";
92
- path: "overview" | "servers" | "authentication";
94
+ path: "overview" | "servers" | "authentication" | "editor";
93
95
  operationPath: string;
94
96
  method: import("@scalar/helpers/http/http-methods").HttpMethod;
95
97
  documentSlug?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableRow.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"names":[],"mappings":"AAoTA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAcrE,MAAM,MAAM,QAAQ,GAAG;IACrB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAC/C,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,eAAe,CAAA;CACpC,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,kBAAkB,CAAA;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAC;AAomBF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;cAvlBG,MAAM;eAAS,MAAM,GAAG,IAAI;oBAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAjD,MAAM;eAAS,MAAM,GAAG,IAAI;oBAAc,OAAO;;;;;kFA0lBpE,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"RequestTableRow.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"names":[],"mappings":"AAsTA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAcrE,MAAM,MAAM,QAAQ,GAAG;IACrB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAC/C,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,2FAA2F;IAC3F,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;CACpC,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,kBAAkB,CAAA;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAC;AAomBF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;cAvlBG,MAAM;eAAS,MAAM,GAAG,IAAI;oBAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAjD,MAAM;eAAS,MAAM,GAAG,IAAI;oBAAc,OAAO;;;;;kFA0lBpE,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableRow.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarIconButton } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconTrash } from '@scalar/icons'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n ParameterObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, ref, watch } from 'vue'\n\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTableCell,\n DataTableCheckbox,\n DataTableRow,\n} from '@/v2/components/data-table'\n\nimport RequestTableTooltip from './RequestTableTooltip.vue'\n\nexport type TableRow = {\n /** The parameter or field name/key */\n name: string\n /** The parameter value, can be a string, file, or null */\n value: string | File | null\n /** Optional description for the parameter */\n description?: string\n /** Optional route for global parameters (e.g., cookies shared across workspace) */\n globalRoute?: ApiReferenceEvents['ui:navigate']\n /** Whether the parameter is disabled/inactive */\n isDisabled?: boolean\n /** OpenAPI schema object with type, validation rules, examples, etc. */\n schema?: SchemaObject\n /** Whether the parameter is required */\n isRequired?: boolean\n /**\n * Whether the parameter is readonly and can not be modifies directly\n * User can still override the parameter which is going to show up with the linethrough style\n */\n isReadonly?: boolean\n /** Whether the parameter is overridden later on */\n isOverridden?: boolean\n /** Track the original parameter so we can update it */\n originalParameter?: ParameterObject\n}\n\nconst {\n data,\n environment,\n hasCheckboxDisabled,\n invalidParams,\n showUploadButton,\n} = defineProps<{\n data: TableRow\n hasCheckboxDisabled?: boolean\n invalidParams?: Set<string>\n label?: string\n environment: XScalarEnvironment\n showUploadButton?: boolean\n}>()\n\nconst emit = defineEmits<{\n (\n e: 'upsertRow',\n payload: { name: string; value: string | File; isDisabled: boolean },\n ): void\n (e: 'deleteRow'): void\n (e: 'uploadFile'): void\n (e: 'removeFile'): void\n (e: 'navigate', route: NonNullable<TableRow['globalRoute']>): void\n}>()\n\n/**\n * Track local state for the row\n *\n * Now this is required because of the way we get default values from the schema.\n * If we have a default value in data.value, then we update isDisabled to true. We lose the default value since now\n * we have an example where value: ''. This is why we need to track the local state and update all of the params at the\n * same time.\n */\nconst name = ref<string>(data.name ?? '')\nconst value = ref<string | File>(unpackProxyObject(data.value) ?? '')\nconst isDisabled = ref<boolean>(data.isDisabled ?? false)\n\n// Keep the above state synced with the data prop\nwatch(\n () => data.name,\n (newName) => (name.value = newName ?? ''),\n)\nwatch(\n () => data.value,\n (newValue) => (value.value = unpackProxyObject(newValue) ?? ''),\n)\nwatch(\n () => data.isDisabled,\n (newIsDisabled) => (isDisabled.value = newIsDisabled ?? false),\n)\n\n/** Check if the value is a File instance */\nconst isFile = computed(() => value.value instanceof File)\n\n/** Display value handles File instances and shows filename instead */\nconst displayValue = computed(\n () =>\n (isFile.value\n ? getFileName(value.value as File)\n : (value.value as string)) ?? '',\n)\n\nconst defaultValue = computed(() => data.schema?.default as string)\n\n/** See if we can extract enum values from the schema */\nconst enumValue = computed<string[]>(() => {\n if (!data.schema) {\n return []\n }\n\n // Grab the enum from the schema\n if (data.schema.enum) {\n return data.schema.enum.map((item) => String(item))\n }\n\n // Grab the enum from the items schema\n if ('items' in data.schema) {\n const resolved = resolve.schema(data.schema.items)\n if (resolved?.enum) {\n return resolved.enum.map((item) => String(item))\n }\n }\n\n return []\n})\n\nconst minimumValue = computed(() =>\n data.schema && 'minimum' in data.schema ? data.schema.minimum : undefined,\n)\nconst maximumValue = computed(() =>\n data.schema && 'maximum' in data.schema ? data.schema.maximum : undefined,\n)\nconst typeValue = computed(() =>\n data.schema && 'type' in data.schema ? data.schema.type : undefined,\n)\n\nconst validationResult = computed(() =>\n validateParameter(data.schema, value.value),\n)\n\n/** Handle row updates while preserving existing properties */\nconst handleUpdateRow = (\n payload: Partial<{ name: string; value: string; isDisabled: boolean }>,\n): void => {\n // Update our local state\n if (payload.name !== undefined) {\n name.value = payload.name\n }\n if (payload.value !== undefined) {\n value.value = payload.value\n }\n\n // Is disabled should always be false unless you explicitly set it to true\n isDisabled.value = payload.isDisabled ?? false\n\n // Emit all of the local state\n emit('upsertRow', {\n name: name.value,\n value: value.value,\n isDisabled: isDisabled.value,\n })\n}\n</script>\n\n<template>\n <DataTableRow\n :id=\"data.name\"\n :class=\"{\n alert: validationResult.ok === false,\n error: validationResult.ok === false && invalidParams?.has(data.name),\n }\">\n <DataTableCheckbox\n class=\"!border-r\"\n :disabled=\"hasCheckboxDisabled ?? false\"\n :modelValue=\"!isDisabled\"\n @update:modelValue=\"(v) => handleUpdateRow({ isDisabled: !v })\" />\n\n <!-- Name -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Key`\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :environment=\"environment\"\n lineWrapping\n :modelValue=\"name\"\n placeholder=\"Key\"\n :required=\"Boolean(data.isRequired)\"\n @navigate=\"(route) => emit('navigate', route)\"\n @selectVariable=\"(v: string) => handleUpdateRow({ name: v })\"\n @update:modelValue=\"(v) => handleUpdateRow({ name: v })\" />\n </DataTableCell>\n\n <!-- Value -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Value`\"\n class=\"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10\"\n :default=\"defaultValue\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :enum=\"enumValue\"\n :environment=\"environment\"\n :examples=\"\n data.schema?.examples?.map((example) => String(example)) ?? []\n \"\n :linethrough=\"data.isOverridden\"\n lineWrapping\n :max=\"maximumValue\"\n :min=\"minimumValue\"\n :modelValue=\"displayValue\"\n placeholder=\"Value\"\n :type=\"typeValue\"\n withFakeData\n @navigate=\"(route) => emit('navigate', route)\"\n @update:modelValue=\"(v) => handleUpdateRow({ value: v })\">\n <template #icon>\n <ScalarButton\n v-if=\"\n Boolean(data.name || value) &&\n !data.isRequired &&\n data.isReadonly !== true\n \"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('deleteRow')\">\n <ScalarIconTrash class=\"size-3.5\" />\n </ScalarButton>\n\n <ScalarIconButton\n v-if=\"data.globalRoute !== undefined\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 h-fit\"\n :icon=\"ScalarIconGlobe\"\n label=\"Global cookies are shared across the whole workspace. Click to navigate.\"\n size=\"xs\"\n tooltip=\"top\"\n variant=\"ghost\"\n @click=\"emit('navigate', data.globalRoute)\" />\n\n <RequestTableTooltip\n v-if=\"data.isReadonly\"\n description=\"This is a readonly property and you can not modify it! If you want to change it you have to override it or disable it using the checkbox\"\n :value=\"null\" />\n <RequestTableTooltip\n v-else-if=\"data.schema\"\n :description=\"data.description\"\n :schema=\"data.schema\"\n :value />\n </template>\n </CodeInput>\n </DataTableCell>\n\n <!-- File upload -->\n <DataTableCell\n v-if=\"showUploadButton\"\n class=\"group/upload flex items-center justify-center whitespace-nowrap\">\n <template v-if=\"isFile\">\n <div\n class=\"text-c-2 filemask flex w-full max-w-[100%] items-center justify-center overflow-hidden p-1\">\n <span>{{ displayValue }}</span>\n </div>\n <button\n class=\"bg-b-2 mt-1 block rounded p-0.5 text-center text-xs font-medium md:pointer-events-none md:absolute md:inset-x-1 md:top-1/2 md:mt-0 md:-translate-y-1/2 md:opacity-0 md:group-hover/upload:pointer-events-auto md:group-hover/upload:opacity-100\"\n type=\"button\"\n @click=\"emit('removeFile')\">\n Delete\n </button>\n </template>\n <template v-else>\n <div class=\"p-0.5\">\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 h-fit border-0 py-px shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"emit('uploadFile')\">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </div>\n </template>\n </DataTableCell>\n </DataTableRow>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RequestTableRow.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarIconButton } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconTrash } from '@scalar/icons'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n ParameterObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, ref, watch } from 'vue'\n\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTableCell,\n DataTableCheckbox,\n DataTableRow,\n} from '@/v2/components/data-table'\n\nimport RequestTableTooltip from './RequestTableTooltip.vue'\n\nexport type TableRow = {\n /** The parameter or field name/key */\n name: string\n /** The parameter value, can be a string, file, or null */\n value: string | File | null\n /** Optional description for the parameter */\n description?: string\n /** Optional route for global parameters (e.g., cookies shared across workspace) */\n globalRoute?: ApiReferenceEvents['ui:navigate']\n /** Whether the parameter is disabled/inactive */\n isDisabled?: boolean\n /** OpenAPI schema object with type, validation rules, examples, etc. */\n schema?: SchemaObject\n /** Whether the parameter is required */\n isRequired?: boolean\n /**\n * Whether the parameter is readonly and can not be modifies directly\n * User can still override the parameter which is going to show up with the linethrough style\n */\n isReadonly?: boolean\n /** Whether the parameter is overridden later on */\n isOverridden?: boolean\n /** Track the original parameter so we can update it */\n originalParameter?: ParameterObject\n /** Path to a value inside the original parameter example for expanded object parameters */\n sourceParameterValuePath?: string[]\n}\n\nconst {\n data,\n environment,\n hasCheckboxDisabled,\n invalidParams,\n showUploadButton,\n} = defineProps<{\n data: TableRow\n hasCheckboxDisabled?: boolean\n invalidParams?: Set<string>\n label?: string\n environment: XScalarEnvironment\n showUploadButton?: boolean\n}>()\n\nconst emit = defineEmits<{\n (\n e: 'upsertRow',\n payload: { name: string; value: string | File; isDisabled: boolean },\n ): void\n (e: 'deleteRow'): void\n (e: 'uploadFile'): void\n (e: 'removeFile'): void\n (e: 'navigate', route: NonNullable<TableRow['globalRoute']>): void\n}>()\n\n/**\n * Track local state for the row\n *\n * Now this is required because of the way we get default values from the schema.\n * If we have a default value in data.value, then we update isDisabled to true. We lose the default value since now\n * we have an example where value: ''. This is why we need to track the local state and update all of the params at the\n * same time.\n */\nconst name = ref<string>(data.name ?? '')\nconst value = ref<string | File>(unpackProxyObject(data.value) ?? '')\nconst isDisabled = ref<boolean>(data.isDisabled ?? false)\n\n// Keep the above state synced with the data prop\nwatch(\n () => data.name,\n (newName) => (name.value = newName ?? ''),\n)\nwatch(\n () => data.value,\n (newValue) => (value.value = unpackProxyObject(newValue) ?? ''),\n)\nwatch(\n () => data.isDisabled,\n (newIsDisabled) => (isDisabled.value = newIsDisabled ?? false),\n)\n\n/** Check if the value is a File instance */\nconst isFile = computed(() => value.value instanceof File)\n\n/** Display value handles File instances and shows filename instead */\nconst displayValue = computed(\n () =>\n (isFile.value\n ? getFileName(value.value as File)\n : (value.value as string)) ?? '',\n)\n\nconst defaultValue = computed(() => data.schema?.default as string)\n\n/** See if we can extract enum values from the schema */\nconst enumValue = computed<string[]>(() => {\n if (!data.schema) {\n return []\n }\n\n // Grab the enum from the schema\n if (data.schema.enum) {\n return data.schema.enum.map((item) => String(item))\n }\n\n // Grab the enum from the items schema\n if ('items' in data.schema) {\n const resolved = resolve.schema(data.schema.items)\n if (resolved?.enum) {\n return resolved.enum.map((item) => String(item))\n }\n }\n\n return []\n})\n\nconst minimumValue = computed(() =>\n data.schema && 'minimum' in data.schema ? data.schema.minimum : undefined,\n)\nconst maximumValue = computed(() =>\n data.schema && 'maximum' in data.schema ? data.schema.maximum : undefined,\n)\nconst typeValue = computed(() =>\n data.schema && 'type' in data.schema ? data.schema.type : undefined,\n)\n\nconst validationResult = computed(() =>\n validateParameter(data.schema, value.value),\n)\n\n/** Handle row updates while preserving existing properties */\nconst handleUpdateRow = (\n payload: Partial<{ name: string; value: string; isDisabled: boolean }>,\n): void => {\n // Update our local state\n if (payload.name !== undefined) {\n name.value = payload.name\n }\n if (payload.value !== undefined) {\n value.value = payload.value\n }\n\n // Is disabled should always be false unless you explicitly set it to true\n isDisabled.value = payload.isDisabled ?? false\n\n // Emit all of the local state\n emit('upsertRow', {\n name: name.value,\n value: value.value,\n isDisabled: isDisabled.value,\n })\n}\n</script>\n\n<template>\n <DataTableRow\n :id=\"data.name\"\n :class=\"{\n alert: validationResult.ok === false,\n error: validationResult.ok === false && invalidParams?.has(data.name),\n }\">\n <DataTableCheckbox\n class=\"!border-r\"\n :disabled=\"hasCheckboxDisabled ?? false\"\n :modelValue=\"!isDisabled\"\n @update:modelValue=\"(v) => handleUpdateRow({ isDisabled: !v })\" />\n\n <!-- Name -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Key`\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :environment=\"environment\"\n lineWrapping\n :modelValue=\"name\"\n placeholder=\"Key\"\n :required=\"Boolean(data.isRequired)\"\n @navigate=\"(route) => emit('navigate', route)\"\n @selectVariable=\"(v: string) => handleUpdateRow({ name: v })\"\n @update:modelValue=\"(v) => handleUpdateRow({ name: v })\" />\n </DataTableCell>\n\n <!-- Value -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Value`\"\n class=\"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10\"\n :default=\"defaultValue\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :enum=\"enumValue\"\n :environment=\"environment\"\n :examples=\"\n data.schema?.examples?.map((example) => String(example)) ?? []\n \"\n :linethrough=\"data.isOverridden\"\n lineWrapping\n :max=\"maximumValue\"\n :min=\"minimumValue\"\n :modelValue=\"displayValue\"\n placeholder=\"Value\"\n :type=\"typeValue\"\n withFakeData\n @navigate=\"(route) => emit('navigate', route)\"\n @update:modelValue=\"(v) => handleUpdateRow({ value: v })\">\n <template #icon>\n <ScalarButton\n v-if=\"\n Boolean(data.name || value) &&\n !data.isRequired &&\n data.isReadonly !== true\n \"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('deleteRow')\">\n <ScalarIconTrash class=\"size-3.5\" />\n </ScalarButton>\n\n <ScalarIconButton\n v-if=\"data.globalRoute !== undefined\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 h-fit\"\n :icon=\"ScalarIconGlobe\"\n label=\"Global cookies are shared across the whole workspace. Click to navigate.\"\n size=\"xs\"\n tooltip=\"top\"\n variant=\"ghost\"\n @click=\"emit('navigate', data.globalRoute)\" />\n\n <RequestTableTooltip\n v-if=\"data.isReadonly\"\n description=\"This is a readonly property and you can not modify it! If you want to change it you have to override it or disable it using the checkbox\"\n :value=\"null\" />\n <RequestTableTooltip\n v-else-if=\"data.schema\"\n :description=\"data.description\"\n :schema=\"data.schema\"\n :value />\n </template>\n </CodeInput>\n </DataTableCell>\n\n <!-- File upload -->\n <DataTableCell\n v-if=\"showUploadButton\"\n class=\"group/upload flex items-center justify-center whitespace-nowrap\">\n <template v-if=\"isFile\">\n <div\n class=\"text-c-2 filemask flex w-full max-w-[100%] items-center justify-center overflow-hidden p-1\">\n <span>{{ displayValue }}</span>\n </div>\n <button\n class=\"bg-b-2 mt-1 block rounded p-0.5 text-center text-xs font-medium md:pointer-events-none md:absolute md:inset-x-1 md:top-1/2 md:mt-0 md:-translate-y-1/2 md:opacity-0 md:group-hover/upload:pointer-events-auto md:group-hover/upload:opacity-100\"\n type=\"button\"\n @click=\"emit('removeFile')\">\n Delete\n </button>\n </template>\n <template v-else>\n <div class=\"p-0.5\">\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 h-fit border-0 py-px shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"emit('uploadFile')\">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </div>\n </template>\n </DataTableCell>\n </DataTableRow>\n</template>\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
- import { getFileName } from "../helpers/files.js";
2
- import { validateParameter } from "../helpers/validate-parameter.js";
3
1
  import CodeInput_default from "../../../components/code-input/CodeInput.vue.js";
4
2
  import DataTableCell_default from "../../../components/data-table/DataTableCell.vue.js";
5
3
  import DataTableCheckbox_default from "../../../components/data-table/DataTableCheckbox.vue.js";
6
4
  import DataTableRow_default from "../../../components/data-table/DataTableRow.vue.js";
5
+ import { getFileName } from "../helpers/files.js";
6
+ import { validateParameter } from "../helpers/validate-parameter.js";
7
7
  import RequestTableTooltip_default from "./RequestTableTooltip.vue.js";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, toDisplayString, unref, watch, withCtx } from "vue";
9
9
  import { ScalarButton, ScalarIcon, ScalarIconButton } from "@scalar/components";
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableRow.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarIconButton } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconTrash } from '@scalar/icons'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n ParameterObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, ref, watch } from 'vue'\n\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTableCell,\n DataTableCheckbox,\n DataTableRow,\n} from '@/v2/components/data-table'\n\nimport RequestTableTooltip from './RequestTableTooltip.vue'\n\nexport type TableRow = {\n /** The parameter or field name/key */\n name: string\n /** The parameter value, can be a string, file, or null */\n value: string | File | null\n /** Optional description for the parameter */\n description?: string\n /** Optional route for global parameters (e.g., cookies shared across workspace) */\n globalRoute?: ApiReferenceEvents['ui:navigate']\n /** Whether the parameter is disabled/inactive */\n isDisabled?: boolean\n /** OpenAPI schema object with type, validation rules, examples, etc. */\n schema?: SchemaObject\n /** Whether the parameter is required */\n isRequired?: boolean\n /**\n * Whether the parameter is readonly and can not be modifies directly\n * User can still override the parameter which is going to show up with the linethrough style\n */\n isReadonly?: boolean\n /** Whether the parameter is overridden later on */\n isOverridden?: boolean\n /** Track the original parameter so we can update it */\n originalParameter?: ParameterObject\n}\n\nconst {\n data,\n environment,\n hasCheckboxDisabled,\n invalidParams,\n showUploadButton,\n} = defineProps<{\n data: TableRow\n hasCheckboxDisabled?: boolean\n invalidParams?: Set<string>\n label?: string\n environment: XScalarEnvironment\n showUploadButton?: boolean\n}>()\n\nconst emit = defineEmits<{\n (\n e: 'upsertRow',\n payload: { name: string; value: string | File; isDisabled: boolean },\n ): void\n (e: 'deleteRow'): void\n (e: 'uploadFile'): void\n (e: 'removeFile'): void\n (e: 'navigate', route: NonNullable<TableRow['globalRoute']>): void\n}>()\n\n/**\n * Track local state for the row\n *\n * Now this is required because of the way we get default values from the schema.\n * If we have a default value in data.value, then we update isDisabled to true. We lose the default value since now\n * we have an example where value: ''. This is why we need to track the local state and update all of the params at the\n * same time.\n */\nconst name = ref<string>(data.name ?? '')\nconst value = ref<string | File>(unpackProxyObject(data.value) ?? '')\nconst isDisabled = ref<boolean>(data.isDisabled ?? false)\n\n// Keep the above state synced with the data prop\nwatch(\n () => data.name,\n (newName) => (name.value = newName ?? ''),\n)\nwatch(\n () => data.value,\n (newValue) => (value.value = unpackProxyObject(newValue) ?? ''),\n)\nwatch(\n () => data.isDisabled,\n (newIsDisabled) => (isDisabled.value = newIsDisabled ?? false),\n)\n\n/** Check if the value is a File instance */\nconst isFile = computed(() => value.value instanceof File)\n\n/** Display value handles File instances and shows filename instead */\nconst displayValue = computed(\n () =>\n (isFile.value\n ? getFileName(value.value as File)\n : (value.value as string)) ?? '',\n)\n\nconst defaultValue = computed(() => data.schema?.default as string)\n\n/** See if we can extract enum values from the schema */\nconst enumValue = computed<string[]>(() => {\n if (!data.schema) {\n return []\n }\n\n // Grab the enum from the schema\n if (data.schema.enum) {\n return data.schema.enum.map((item) => String(item))\n }\n\n // Grab the enum from the items schema\n if ('items' in data.schema) {\n const resolved = resolve.schema(data.schema.items)\n if (resolved?.enum) {\n return resolved.enum.map((item) => String(item))\n }\n }\n\n return []\n})\n\nconst minimumValue = computed(() =>\n data.schema && 'minimum' in data.schema ? data.schema.minimum : undefined,\n)\nconst maximumValue = computed(() =>\n data.schema && 'maximum' in data.schema ? data.schema.maximum : undefined,\n)\nconst typeValue = computed(() =>\n data.schema && 'type' in data.schema ? data.schema.type : undefined,\n)\n\nconst validationResult = computed(() =>\n validateParameter(data.schema, value.value),\n)\n\n/** Handle row updates while preserving existing properties */\nconst handleUpdateRow = (\n payload: Partial<{ name: string; value: string; isDisabled: boolean }>,\n): void => {\n // Update our local state\n if (payload.name !== undefined) {\n name.value = payload.name\n }\n if (payload.value !== undefined) {\n value.value = payload.value\n }\n\n // Is disabled should always be false unless you explicitly set it to true\n isDisabled.value = payload.isDisabled ?? false\n\n // Emit all of the local state\n emit('upsertRow', {\n name: name.value,\n value: value.value,\n isDisabled: isDisabled.value,\n })\n}\n</script>\n\n<template>\n <DataTableRow\n :id=\"data.name\"\n :class=\"{\n alert: validationResult.ok === false,\n error: validationResult.ok === false && invalidParams?.has(data.name),\n }\">\n <DataTableCheckbox\n class=\"!border-r\"\n :disabled=\"hasCheckboxDisabled ?? false\"\n :modelValue=\"!isDisabled\"\n @update:modelValue=\"(v) => handleUpdateRow({ isDisabled: !v })\" />\n\n <!-- Name -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Key`\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :environment=\"environment\"\n lineWrapping\n :modelValue=\"name\"\n placeholder=\"Key\"\n :required=\"Boolean(data.isRequired)\"\n @navigate=\"(route) => emit('navigate', route)\"\n @selectVariable=\"(v: string) => handleUpdateRow({ name: v })\"\n @update:modelValue=\"(v) => handleUpdateRow({ name: v })\" />\n </DataTableCell>\n\n <!-- Value -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Value`\"\n class=\"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10\"\n :default=\"defaultValue\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :enum=\"enumValue\"\n :environment=\"environment\"\n :examples=\"\n data.schema?.examples?.map((example) => String(example)) ?? []\n \"\n :linethrough=\"data.isOverridden\"\n lineWrapping\n :max=\"maximumValue\"\n :min=\"minimumValue\"\n :modelValue=\"displayValue\"\n placeholder=\"Value\"\n :type=\"typeValue\"\n withFakeData\n @navigate=\"(route) => emit('navigate', route)\"\n @update:modelValue=\"(v) => handleUpdateRow({ value: v })\">\n <template #icon>\n <ScalarButton\n v-if=\"\n Boolean(data.name || value) &&\n !data.isRequired &&\n data.isReadonly !== true\n \"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('deleteRow')\">\n <ScalarIconTrash class=\"size-3.5\" />\n </ScalarButton>\n\n <ScalarIconButton\n v-if=\"data.globalRoute !== undefined\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 h-fit\"\n :icon=\"ScalarIconGlobe\"\n label=\"Global cookies are shared across the whole workspace. Click to navigate.\"\n size=\"xs\"\n tooltip=\"top\"\n variant=\"ghost\"\n @click=\"emit('navigate', data.globalRoute)\" />\n\n <RequestTableTooltip\n v-if=\"data.isReadonly\"\n description=\"This is a readonly property and you can not modify it! If you want to change it you have to override it or disable it using the checkbox\"\n :value=\"null\" />\n <RequestTableTooltip\n v-else-if=\"data.schema\"\n :description=\"data.description\"\n :schema=\"data.schema\"\n :value />\n </template>\n </CodeInput>\n </DataTableCell>\n\n <!-- File upload -->\n <DataTableCell\n v-if=\"showUploadButton\"\n class=\"group/upload flex items-center justify-center whitespace-nowrap\">\n <template v-if=\"isFile\">\n <div\n class=\"text-c-2 filemask flex w-full max-w-[100%] items-center justify-center overflow-hidden p-1\">\n <span>{{ displayValue }}</span>\n </div>\n <button\n class=\"bg-b-2 mt-1 block rounded p-0.5 text-center text-xs font-medium md:pointer-events-none md:absolute md:inset-x-1 md:top-1/2 md:mt-0 md:-translate-y-1/2 md:opacity-0 md:group-hover/upload:pointer-events-auto md:group-hover/upload:opacity-100\"\n type=\"button\"\n @click=\"emit('removeFile')\">\n Delete\n </button>\n </template>\n <template v-else>\n <div class=\"p-0.5\">\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 h-fit border-0 py-px shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"emit('uploadFile')\">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </div>\n </template>\n </DataTableCell>\n </DataTableRow>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RequestTableRow.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarIcon, ScalarIconButton } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconTrash } from '@scalar/icons'\nimport type { ApiReferenceEvents } from '@scalar/workspace-store/events'\nimport { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type {\n ParameterObject,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, ref, watch } from 'vue'\n\nimport { getFileName } from '@/v2/blocks/request-block/helpers/files'\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\nimport { CodeInput } from '@/v2/components/code-input'\nimport {\n DataTableCell,\n DataTableCheckbox,\n DataTableRow,\n} from '@/v2/components/data-table'\n\nimport RequestTableTooltip from './RequestTableTooltip.vue'\n\nexport type TableRow = {\n /** The parameter or field name/key */\n name: string\n /** The parameter value, can be a string, file, or null */\n value: string | File | null\n /** Optional description for the parameter */\n description?: string\n /** Optional route for global parameters (e.g., cookies shared across workspace) */\n globalRoute?: ApiReferenceEvents['ui:navigate']\n /** Whether the parameter is disabled/inactive */\n isDisabled?: boolean\n /** OpenAPI schema object with type, validation rules, examples, etc. */\n schema?: SchemaObject\n /** Whether the parameter is required */\n isRequired?: boolean\n /**\n * Whether the parameter is readonly and can not be modifies directly\n * User can still override the parameter which is going to show up with the linethrough style\n */\n isReadonly?: boolean\n /** Whether the parameter is overridden later on */\n isOverridden?: boolean\n /** Track the original parameter so we can update it */\n originalParameter?: ParameterObject\n /** Path to a value inside the original parameter example for expanded object parameters */\n sourceParameterValuePath?: string[]\n}\n\nconst {\n data,\n environment,\n hasCheckboxDisabled,\n invalidParams,\n showUploadButton,\n} = defineProps<{\n data: TableRow\n hasCheckboxDisabled?: boolean\n invalidParams?: Set<string>\n label?: string\n environment: XScalarEnvironment\n showUploadButton?: boolean\n}>()\n\nconst emit = defineEmits<{\n (\n e: 'upsertRow',\n payload: { name: string; value: string | File; isDisabled: boolean },\n ): void\n (e: 'deleteRow'): void\n (e: 'uploadFile'): void\n (e: 'removeFile'): void\n (e: 'navigate', route: NonNullable<TableRow['globalRoute']>): void\n}>()\n\n/**\n * Track local state for the row\n *\n * Now this is required because of the way we get default values from the schema.\n * If we have a default value in data.value, then we update isDisabled to true. We lose the default value since now\n * we have an example where value: ''. This is why we need to track the local state and update all of the params at the\n * same time.\n */\nconst name = ref<string>(data.name ?? '')\nconst value = ref<string | File>(unpackProxyObject(data.value) ?? '')\nconst isDisabled = ref<boolean>(data.isDisabled ?? false)\n\n// Keep the above state synced with the data prop\nwatch(\n () => data.name,\n (newName) => (name.value = newName ?? ''),\n)\nwatch(\n () => data.value,\n (newValue) => (value.value = unpackProxyObject(newValue) ?? ''),\n)\nwatch(\n () => data.isDisabled,\n (newIsDisabled) => (isDisabled.value = newIsDisabled ?? false),\n)\n\n/** Check if the value is a File instance */\nconst isFile = computed(() => value.value instanceof File)\n\n/** Display value handles File instances and shows filename instead */\nconst displayValue = computed(\n () =>\n (isFile.value\n ? getFileName(value.value as File)\n : (value.value as string)) ?? '',\n)\n\nconst defaultValue = computed(() => data.schema?.default as string)\n\n/** See if we can extract enum values from the schema */\nconst enumValue = computed<string[]>(() => {\n if (!data.schema) {\n return []\n }\n\n // Grab the enum from the schema\n if (data.schema.enum) {\n return data.schema.enum.map((item) => String(item))\n }\n\n // Grab the enum from the items schema\n if ('items' in data.schema) {\n const resolved = resolve.schema(data.schema.items)\n if (resolved?.enum) {\n return resolved.enum.map((item) => String(item))\n }\n }\n\n return []\n})\n\nconst minimumValue = computed(() =>\n data.schema && 'minimum' in data.schema ? data.schema.minimum : undefined,\n)\nconst maximumValue = computed(() =>\n data.schema && 'maximum' in data.schema ? data.schema.maximum : undefined,\n)\nconst typeValue = computed(() =>\n data.schema && 'type' in data.schema ? data.schema.type : undefined,\n)\n\nconst validationResult = computed(() =>\n validateParameter(data.schema, value.value),\n)\n\n/** Handle row updates while preserving existing properties */\nconst handleUpdateRow = (\n payload: Partial<{ name: string; value: string; isDisabled: boolean }>,\n): void => {\n // Update our local state\n if (payload.name !== undefined) {\n name.value = payload.name\n }\n if (payload.value !== undefined) {\n value.value = payload.value\n }\n\n // Is disabled should always be false unless you explicitly set it to true\n isDisabled.value = payload.isDisabled ?? false\n\n // Emit all of the local state\n emit('upsertRow', {\n name: name.value,\n value: value.value,\n isDisabled: isDisabled.value,\n })\n}\n</script>\n\n<template>\n <DataTableRow\n :id=\"data.name\"\n :class=\"{\n alert: validationResult.ok === false,\n error: validationResult.ok === false && invalidParams?.has(data.name),\n }\">\n <DataTableCheckbox\n class=\"!border-r\"\n :disabled=\"hasCheckboxDisabled ?? false\"\n :modelValue=\"!isDisabled\"\n @update:modelValue=\"(v) => handleUpdateRow({ isDisabled: !v })\" />\n\n <!-- Name -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Key`\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :environment=\"environment\"\n lineWrapping\n :modelValue=\"name\"\n placeholder=\"Key\"\n :required=\"Boolean(data.isRequired)\"\n @navigate=\"(route) => emit('navigate', route)\"\n @selectVariable=\"(v: string) => handleUpdateRow({ name: v })\"\n @update:modelValue=\"(v) => handleUpdateRow({ name: v })\" />\n </DataTableCell>\n\n <!-- Value -->\n <DataTableCell>\n <CodeInput\n :aria-label=\"`${label} Value`\"\n class=\"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10\"\n :default=\"defaultValue\"\n disableCloseBrackets\n :disabled=\"data.isReadonly\"\n disableEnter\n disableTabIndent\n :enum=\"enumValue\"\n :environment=\"environment\"\n :examples=\"\n data.schema?.examples?.map((example) => String(example)) ?? []\n \"\n :linethrough=\"data.isOverridden\"\n lineWrapping\n :max=\"maximumValue\"\n :min=\"minimumValue\"\n :modelValue=\"displayValue\"\n placeholder=\"Value\"\n :type=\"typeValue\"\n withFakeData\n @navigate=\"(route) => emit('navigate', route)\"\n @update:modelValue=\"(v) => handleUpdateRow({ value: v })\">\n <template #icon>\n <ScalarButton\n v-if=\"\n Boolean(data.name || value) &&\n !data.isRequired &&\n data.isReadonly !== true\n \"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex\"\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('deleteRow')\">\n <ScalarIconTrash class=\"size-3.5\" />\n </ScalarButton>\n\n <ScalarIconButton\n v-if=\"data.globalRoute !== undefined\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 z-context -mr-0.5 h-fit\"\n :icon=\"ScalarIconGlobe\"\n label=\"Global cookies are shared across the whole workspace. Click to navigate.\"\n size=\"xs\"\n tooltip=\"top\"\n variant=\"ghost\"\n @click=\"emit('navigate', data.globalRoute)\" />\n\n <RequestTableTooltip\n v-if=\"data.isReadonly\"\n description=\"This is a readonly property and you can not modify it! If you want to change it you have to override it or disable it using the checkbox\"\n :value=\"null\" />\n <RequestTableTooltip\n v-else-if=\"data.schema\"\n :description=\"data.description\"\n :schema=\"data.schema\"\n :value />\n </template>\n </CodeInput>\n </DataTableCell>\n\n <!-- File upload -->\n <DataTableCell\n v-if=\"showUploadButton\"\n class=\"group/upload flex items-center justify-center whitespace-nowrap\">\n <template v-if=\"isFile\">\n <div\n class=\"text-c-2 filemask flex w-full max-w-[100%] items-center justify-center overflow-hidden p-1\">\n <span>{{ displayValue }}</span>\n </div>\n <button\n class=\"bg-b-2 mt-1 block rounded p-0.5 text-center text-xs font-medium md:pointer-events-none md:absolute md:inset-x-1 md:top-1/2 md:mt-0 md:-translate-y-1/2 md:opacity-0 md:group-hover/upload:pointer-events-auto md:group-hover/upload:opacity-100\"\n type=\"button\"\n @click=\"emit('removeFile')\">\n Delete\n </button>\n </template>\n <template v-else>\n <div class=\"p-0.5\">\n <ScalarButton\n class=\"bg-b-2 hover:bg-b-3 text-c-2 h-fit border-0 py-px shadow-none\"\n size=\"sm\"\n variant=\"outlined\"\n @click=\"emit('uploadFile')\">\n <span>Select File</span>\n <ScalarIcon\n class=\"ml-1\"\n icon=\"Upload\"\n size=\"xs\"\n thickness=\"2.5\" />\n </ScalarButton>\n </div>\n </template>\n </DataTableCell>\n </DataTableRow>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableTooltip.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"names":[],"mappings":"AAsEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAKhG,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC;AA8KF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"RequestTableTooltip.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"names":[],"mappings":"AAuEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAKhG,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC;AAgLF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableTooltip.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown, ScalarPopover } from '@scalar/components'\nimport { ScalarIconInfo, ScalarIconWarning } from '@scalar/icons'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\n\nconst { schema, value, description } = defineProps<{\n schema?: SchemaObject\n value: string | File | null\n description?: string\n}>()\n\nconst invalidParameterMessage = computed(() => validateParameter(schema, value))\nconst isInvalid = computed(() => invalidParameterMessage.value.ok === false)\n</script>\n<template>\n <ScalarPopover\n :offset=\"4\"\n placement=\"left\"\n teleport>\n <button\n :aria-label=\"isInvalid ? 'Input is invalid' : 'More Information'\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 rounded p-1\"\n :role=\"isInvalid ? 'alert' : 'none'\"\n type=\"button\">\n <ScalarIconWarning\n v-if=\"isInvalid\"\n class=\"text-orange size-3.5 brightness-90 hover:brightness-75\" />\n <ScalarIconInfo\n v-else\n class=\"text-c-2 hover:text-c-1 size-3.5\" />\n </button>\n <template #popover>\n <div\n class=\"w-content text-xxs text-c-1 grid min-w-48 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none *:max-w-64\">\n <div\n v-if=\"invalidParameterMessage.ok === false\"\n class=\"text-error-1\">\n {{ invalidParameterMessage.message }}\n </div>\n <div\n v-else-if=\"\n schema &&\n ('type' in schema ||\n 'format' in schema ||\n 'minimum' in schema ||\n 'maximum' in schema ||\n 'default' in schema)\n \"\n class=\"schema text-c-2 truncate *:not-first:before:content-['_·_']\">\n <span v-if=\"'type' in schema\">{{ schema.type }}</span>\n <span v-if=\"'format' in schema\">{{ schema.format }}</span>\n <span v-if=\"'minimum' in schema\">min: {{ schema.minimum }}</span>\n <span v-if=\"'maximum' in schema\">max: {{ schema.maximum }}</span>\n <span v-if=\"'default' in schema\">default: {{ schema.default }}</span>\n </div>\n <ScalarMarkdown\n v-if=\"description && !isInvalid\"\n :value=\"description\" />\n </div>\n </template>\n </ScalarPopover>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RequestTableTooltip.vue.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown, ScalarPopover } from '@scalar/components'\nimport { ScalarIconInfo, ScalarIconWarning } from '@scalar/icons'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\n\nconst { schema, value, description } = defineProps<{\n schema?: SchemaObject\n value: string | File | null\n description?: string\n}>()\n\nconst invalidParameterMessage = computed(() => validateParameter(schema, value))\nconst isInvalid = computed(() => invalidParameterMessage.value.ok === false)\n</script>\n<template>\n <ScalarPopover\n :offset=\"4\"\n placement=\"left\"\n teleport>\n <button\n :aria-label=\"isInvalid ? 'Input is invalid' : 'More Information'\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 rounded p-1\"\n :role=\"isInvalid ? 'alert' : 'none'\"\n type=\"button\">\n <ScalarIconWarning\n v-if=\"isInvalid\"\n class=\"text-orange size-3.5 brightness-90 hover:brightness-75\" />\n <ScalarIconInfo\n v-else\n class=\"text-c-2 hover:text-c-1 size-3.5\" />\n </button>\n <template #popover>\n <div\n class=\"text-xxs text-c-1 grid w-fit max-w-xs min-w-0 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none break-words\"\n data-testid=\"request-table-tooltip-content\">\n <div\n v-if=\"invalidParameterMessage.ok === false\"\n class=\"text-error-1\">\n {{ invalidParameterMessage.message }}\n </div>\n <div\n v-else-if=\"\n schema &&\n ('type' in schema ||\n 'format' in schema ||\n 'minimum' in schema ||\n 'maximum' in schema ||\n 'default' in schema)\n \"\n class=\"schema text-c-2 truncate *:not-first:before:content-['_·_']\">\n <span v-if=\"'type' in schema\">{{ schema.type }}</span>\n <span v-if=\"'format' in schema\">{{ schema.format }}</span>\n <span v-if=\"'minimum' in schema\">min: {{ schema.minimum }}</span>\n <span v-if=\"'maximum' in schema\">max: {{ schema.maximum }}</span>\n <span v-if=\"'default' in schema\">default: {{ schema.default }}</span>\n </div>\n <ScalarMarkdown\n v-if=\"description && !isInvalid\"\n :value=\"description\" />\n </div>\n </template>\n </ScalarPopover>\n</template>\n"],"mappings":""}
@@ -4,7 +4,10 @@ import { ScalarMarkdown, ScalarPopover } from "@scalar/components";
4
4
  import { ScalarIconInfo, ScalarIconWarning } from "@scalar/icons";
5
5
  //#region src/v2/blocks/request-block/components/RequestTableTooltip.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = ["aria-label", "role"];
7
- var _hoisted_2 = { class: "w-content text-xxs text-c-1 grid min-w-48 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none *:max-w-64" };
7
+ var _hoisted_2 = {
8
+ class: "text-xxs text-c-1 grid w-fit max-w-xs min-w-0 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none break-words",
9
+ "data-testid": "request-table-tooltip-content"
10
+ };
8
11
  var _hoisted_3 = {
9
12
  key: 0,
10
13
  class: "text-error-1"
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTableTooltip.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown, ScalarPopover } from '@scalar/components'\nimport { ScalarIconInfo, ScalarIconWarning } from '@scalar/icons'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\n\nconst { schema, value, description } = defineProps<{\n schema?: SchemaObject\n value: string | File | null\n description?: string\n}>()\n\nconst invalidParameterMessage = computed(() => validateParameter(schema, value))\nconst isInvalid = computed(() => invalidParameterMessage.value.ok === false)\n</script>\n<template>\n <ScalarPopover\n :offset=\"4\"\n placement=\"left\"\n teleport>\n <button\n :aria-label=\"isInvalid ? 'Input is invalid' : 'More Information'\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 rounded p-1\"\n :role=\"isInvalid ? 'alert' : 'none'\"\n type=\"button\">\n <ScalarIconWarning\n v-if=\"isInvalid\"\n class=\"text-orange size-3.5 brightness-90 hover:brightness-75\" />\n <ScalarIconInfo\n v-else\n class=\"text-c-2 hover:text-c-1 size-3.5\" />\n </button>\n <template #popover>\n <div\n class=\"w-content text-xxs text-c-1 grid min-w-48 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none *:max-w-64\">\n <div\n v-if=\"invalidParameterMessage.ok === false\"\n class=\"text-error-1\">\n {{ invalidParameterMessage.message }}\n </div>\n <div\n v-else-if=\"\n schema &&\n ('type' in schema ||\n 'format' in schema ||\n 'minimum' in schema ||\n 'maximum' in schema ||\n 'default' in schema)\n \"\n class=\"schema text-c-2 truncate *:not-first:before:content-['_·_']\">\n <span v-if=\"'type' in schema\">{{ schema.type }}</span>\n <span v-if=\"'format' in schema\">{{ schema.format }}</span>\n <span v-if=\"'minimum' in schema\">min: {{ schema.minimum }}</span>\n <span v-if=\"'maximum' in schema\">max: {{ schema.maximum }}</span>\n <span v-if=\"'default' in schema\">default: {{ schema.default }}</span>\n </div>\n <ScalarMarkdown\n v-if=\"description && !isInvalid\"\n :value=\"description\" />\n </div>\n </template>\n </ScalarPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcA,MAAM,0BAA0B,eAAe,kBAAkB,QAAA,QAAQ,QAAA,MAAM,CAAA;EAC/E,MAAM,YAAY,eAAe,wBAAwB,MAAM,OAAO,MAAK;;uBAGzE,YA6CgB,MAAA,cAAA,EAAA;IA5Cb,QAAQ;IACT,WAAU;IACV,UAAA;;IAaW,SAAO,cA2BV,CA1BN,mBA0BM,OA1BN,YA0BM,CAvBI,wBAAA,MAAwB,OAAE,SAAA,WAAA,EADlC,mBAIM,OAJN,YAIM,gBADD,wBAAA,MAAwB,QAAO,EAAA,EAAA,IAGV,QAAA,WAAA,UAAiC,QAAA,UAAA,YAAoC,QAAA,UAAA,aAAqC,QAAA,UAAA,aAAqC,QAAA,UAAA,aAAqC,QAAA,WAAA,WAAA,EAD9M,mBAeM,OAfN,YAeM;eALkB,QAAA,UAAA,WAAA,EAAtB,mBAAsD,QAAA,YAAA,gBAArB,QAAA,OAAO,KAAI,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;iBACpB,QAAA,UAAA,WAAA,EAAxB,mBAA0D,QAAA,YAAA,gBAAvB,QAAA,OAAO,OAAM,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBACvB,QAAA,UAAA,WAAA,EAAzB,mBAAiE,QAAA,YAAhC,UAAK,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBAC9B,QAAA,UAAA,WAAA,EAAzB,mBAAiE,QAAA,YAAhC,UAAK,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBAC9B,QAAA,UAAA,WAAA,EAAzB,mBAAqE,QAAA,YAApC,cAAS,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;wCAGrD,QAAA,eAAW,CAAK,UAAA,SAAA,WAAA,EADxB,YAEyB,MAAA,eAAA,EAAA;;KAAtB,OAAO,QAAA;;2BA3BL,CAXT,mBAWS,UAAA;KAVN,cAAY,UAAA,QAAS,qBAAA;KACtB,OAAM;KACL,MAAM,UAAA,QAAS,UAAA;KAChB,MAAK;QAEG,UAAA,SAAA,WAAA,EADR,YAEmE,MAAA,kBAAA,EAAA;;KAAjE,OAAM;wBACR,YAE6C,MAAA,eAAA,EAAA;;KAA3C,OAAM"}
1
+ {"version":3,"file":"RequestTableTooltip.vue.script.js","names":[],"sources":["../../../../../src/v2/blocks/request-block/components/RequestTableTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown, ScalarPopover } from '@scalar/components'\nimport { ScalarIconInfo, ScalarIconWarning } from '@scalar/icons'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { validateParameter } from '@/v2/blocks/request-block/helpers/validate-parameter'\n\nconst { schema, value, description } = defineProps<{\n schema?: SchemaObject\n value: string | File | null\n description?: string\n}>()\n\nconst invalidParameterMessage = computed(() => validateParameter(schema, value))\nconst isInvalid = computed(() => invalidParameterMessage.value.ok === false)\n</script>\n<template>\n <ScalarPopover\n :offset=\"4\"\n placement=\"left\"\n teleport>\n <button\n :aria-label=\"isInvalid ? 'Input is invalid' : 'More Information'\"\n class=\"text-c-2 hover:text-c-1 hover:bg-b-2 rounded p-1\"\n :role=\"isInvalid ? 'alert' : 'none'\"\n type=\"button\">\n <ScalarIconWarning\n v-if=\"isInvalid\"\n class=\"text-orange size-3.5 brightness-90 hover:brightness-75\" />\n <ScalarIconInfo\n v-else\n class=\"text-c-2 hover:text-c-1 size-3.5\" />\n </button>\n <template #popover>\n <div\n class=\"text-xxs text-c-1 grid w-fit max-w-xs min-w-0 gap-1.5 rounded px-1.5 pt-2 pb-1.5 leading-none break-words\"\n data-testid=\"request-table-tooltip-content\">\n <div\n v-if=\"invalidParameterMessage.ok === false\"\n class=\"text-error-1\">\n {{ invalidParameterMessage.message }}\n </div>\n <div\n v-else-if=\"\n schema &&\n ('type' in schema ||\n 'format' in schema ||\n 'minimum' in schema ||\n 'maximum' in schema ||\n 'default' in schema)\n \"\n class=\"schema text-c-2 truncate *:not-first:before:content-['_·_']\">\n <span v-if=\"'type' in schema\">{{ schema.type }}</span>\n <span v-if=\"'format' in schema\">{{ schema.format }}</span>\n <span v-if=\"'minimum' in schema\">min: {{ schema.minimum }}</span>\n <span v-if=\"'maximum' in schema\">max: {{ schema.maximum }}</span>\n <span v-if=\"'default' in schema\">default: {{ schema.default }}</span>\n </div>\n <ScalarMarkdown\n v-if=\"description && !isInvalid\"\n :value=\"description\" />\n </div>\n </template>\n </ScalarPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcA,MAAM,0BAA0B,eAAe,kBAAkB,QAAA,QAAQ,QAAA,MAAM,CAAA;EAC/E,MAAM,YAAY,eAAe,wBAAwB,MAAM,OAAO,MAAK;;uBAGzE,YA8CgB,MAAA,cAAA,EAAA;IA7Cb,QAAQ;IACT,WAAU;IACV,UAAA;;IAaW,SAAO,cA4BV,CA3BN,mBA2BM,OA3BN,YA2BM,CAvBI,wBAAA,MAAwB,OAAE,SAAA,WAAA,EADlC,mBAIM,OAJN,YAIM,gBADD,wBAAA,MAAwB,QAAO,EAAA,EAAA,IAGV,QAAA,WAAA,UAAiC,QAAA,UAAA,YAAoC,QAAA,UAAA,aAAqC,QAAA,UAAA,aAAqC,QAAA,UAAA,aAAqC,QAAA,WAAA,WAAA,EAD9M,mBAeM,OAfN,YAeM;eALkB,QAAA,UAAA,WAAA,EAAtB,mBAAsD,QAAA,YAAA,gBAArB,QAAA,OAAO,KAAI,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;iBACpB,QAAA,UAAA,WAAA,EAAxB,mBAA0D,QAAA,YAAA,gBAAvB,QAAA,OAAO,OAAM,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBACvB,QAAA,UAAA,WAAA,EAAzB,mBAAiE,QAAA,YAAhC,UAAK,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBAC9B,QAAA,UAAA,WAAA,EAAzB,mBAAiE,QAAA,YAAhC,UAAK,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;kBAC9B,QAAA,UAAA,WAAA,EAAzB,mBAAqE,QAAA,YAApC,cAAS,gBAAG,QAAA,OAAO,QAAO,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;wCAGrD,QAAA,eAAW,CAAK,UAAA,SAAA,WAAA,EADxB,YAEyB,MAAA,eAAA,EAAA;;KAAtB,OAAO,QAAA;;2BA5BL,CAXT,mBAWS,UAAA;KAVN,cAAY,UAAA,QAAS,qBAAA;KACtB,OAAM;KACL,MAAM,UAAA,QAAS,UAAA;KAChB,MAAK;QAEG,UAAA,SAAA,WAAA,EADR,YAEmE,MAAA,kBAAA,EAAA;;KAAjE,OAAM;wBACR,YAE6C,MAAA,eAAA,EAAA;;KAA3C,OAAM"}
@@ -2,10 +2,11 @@ import type { OperationExampleMeta, WorkspaceEventBus } from '@scalar/workspace-
2
2
  import type { TableRow } from '../../../../v2/blocks/request-block/components/RequestTableRow.vue.js';
3
3
  type ParameterType = 'path' | 'cookie' | 'header' | 'query';
4
4
  /** Create parameter event handlers for a given type */
5
- export declare const createParameterHandlers: (type: ParameterType, eventBus: WorkspaceEventBus, meta: OperationExampleMeta, { context, defaultParameters, globalParameters, }: {
5
+ export declare const createParameterHandlers: (type: ParameterType, eventBus: WorkspaceEventBus, meta: OperationExampleMeta, { context, defaultParameters, globalParameters, onDeleteExpandedRow, }: {
6
6
  context: TableRow[];
7
7
  defaultParameters?: number;
8
8
  globalParameters?: number;
9
+ onDeleteExpandedRow?: (row: TableRow) => void;
9
10
  }) => {
10
11
  delete: (payload: {
11
12
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"create-parameter-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/helpers/create-parameter-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAA;AAExF,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3D,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,GAClC,MAAM,aAAa,EACnB,UAAU,iBAAiB,EAC3B,MAAM,oBAAoB,EAC1B,mDAIG;IACD,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;sBAKmB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;oBAqBnB,MAAM,WAAW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;CA+BxF,CAAA"}
1
+ {"version":3,"file":"create-parameter-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/request-block/helpers/create-parameter-handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAA;AAExF,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAmC3D,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,GAClC,MAAM,aAAa,EACnB,UAAU,iBAAiB,EAC3B,MAAM,oBAAoB,EAC1B,wEAKG;IACD,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC9C;sBAKmB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;oBAuCnB,MAAM,WAAW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;CAoCxF,CAAA"}